/* ══════════════════════════════════════════════════════════════
   Triple Crown — Schedule system (Marquee home section + Stack page)
   Shared by index.html (#tcsSchedHome) and events.html (#tcsSchedPage).
   Data + render in js/schedule.js. Uses the site brand vars.
   ══════════════════════════════════════════════════════════════ */
.tcs-sched{max-width:1280px;margin:0 auto;padding:0 28px}
.tcs-sched--page{padding-top:8px}

/* section header */
.tcs-shead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px;flex-wrap:wrap}
.tcs-shead__e{font-family:var(--font-body,'Rajdhani',sans-serif);font-size:11px;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--red);margin-bottom:9px}
.tcs-shead__n{font-family:var(--font-display,'VANGO',sans-serif);font-size:clamp(34px,5vw,64px);line-height:.88;text-transform:uppercase;color:var(--text)}
.tcs-shead__link{font-family:var(--font-body,'Rajdhani',sans-serif);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);transition:color .2s;margin-bottom:6px}
.tcs-shead__link:hover{color:var(--red)}

/* ── Feature card (Marquee) — next race + every stack row ── */
/* Card background is status-driven: done = Makita teal, next = TCS red, upcoming = dark grey.
   --cardc carries that colour into the photo-blend gradient so the seam matches. */
.tcs-feat{display:grid;grid-template-columns:1.05fr 1fr;border:1px solid rgba(255,255,255,.1);--cardc:#17191c;background:#17191c;text-decoration:none;color:var(--text)}
.tcs-feat--done{--cardc:#0d2b2f;background:linear-gradient(135deg,#11383d 0%,#0d2b2f 52%,#0a2225 100%)}
.tcs-feat--next{--cardc:#00909e;background:linear-gradient(135deg,#00a6b6 0%,#00909e 48%,#007e8b 100%)}
.tcs-feat--up{--cardc:#17191c;background:#17191c}
.tcs-feat--sm{grid-template-columns:.92fr 1fr}
.tcs-feat__img{position:relative;min-height:300px;background-size:cover;background-position:center}
.tcs-feat--sm .tcs-feat__img{min-height:240px}
.tcs-feat__img::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 54%,var(--cardc,#17191c))}
.tcs-feat__tag{position:absolute;top:18px;left:18px;display:inline-flex;align-items:center;gap:8px;font-family:var(--font-body,'Rajdhani',sans-serif);font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:var(--red);padding:6px 12px;z-index:2}
.tcs-feat__tag--done{background:rgba(0,144,158,.2);color:#3cc6d4;border:1px solid rgba(0,144,158,.55)}
.tcs-feat__tag .d{width:7px;height:7px;border-radius:50%;background:#fff;animation:tcsPulse 1.5s infinite}
.tcs-feat__body{padding:34px 38px;display:flex;flex-direction:column;justify-content:center}
.tcs-feat--sm .tcs-feat__body{padding:28px 34px}
.tcs-feat__r{font-family:var(--font-mono,'Space Mono',monospace);font-size:11px;letter-spacing:.2em;color:var(--text-3);text-transform:uppercase;margin-bottom:9px}
.tcs-feat__v{font-family:var(--font-display,'VANGO',sans-serif);font-size:clamp(30px,3.6vw,52px);line-height:.9;text-transform:uppercase}
.tcs-feat--sm .tcs-feat__v{font-size:clamp(26px,3vw,42px)}
.tcs-feat__loc{font-family:var(--font-body,'Rajdhani',sans-serif);font-size:13px;letter-spacing:.05em;color:var(--text-2);text-transform:uppercase;margin-top:8px}
.tcs-feat__pod{font-family:var(--font-body,'Rajdhani',sans-serif);font-size:13px;color:var(--text-2);margin-top:13px;letter-spacing:.02em}
.tcs-feat__pod b{color:var(--red,#eb2127);font-weight:700}
.tcs-feat__pod .c{color:var(--red);font-family:var(--font-mono,'Space Mono',monospace);font-size:10px;letter-spacing:.05em}
.tcs-feat__cd{display:flex;gap:16px;margin:18px 0 20px}
.tcs-feat__cd .n{font-family:var(--font-display,'VANGO',sans-serif);font-size:36px;line-height:1;color:var(--text)}
.tcs-feat__cd .l{font-family:var(--font-mono,'Space Mono',monospace);font-size:9px;letter-spacing:.1em;color:var(--text-3);text-transform:uppercase}
/* Race-day: the countdown becomes a live "RACE DAY" badge */
.tcs-feat__cd.is-raceday{align-items:center}
.tcs-feat__raceday{display:inline-flex;align-items:center;gap:14px;font-family:var(--font-display,'VANGO',sans-serif);font-size:clamp(34px,4vw,52px);line-height:1;color:var(--red,#eb2127);text-transform:uppercase;letter-spacing:.01em}
.tcs-feat__raceday::before{content:'';width:14px;height:14px;border-radius:50%;background:var(--red,#eb2127);box-shadow:0 0 0 0 rgba(235,33,39,.6);animation:tcsRaceDayPulse 1.6s infinite}
@keyframes tcsRaceDayPulse{0%{box-shadow:0 0 0 0 rgba(235,33,39,.6)}70%{box-shadow:0 0 0 13px rgba(235,33,39,0)}100%{box-shadow:0 0 0 0 rgba(235,33,39,0)}}
@media(prefers-reduced-motion:reduce){.tcs-feat__raceday::before{animation:none}}
.tcs-feat__act{display:flex;gap:10px;flex-wrap:wrap;align-items:stretch;margin-top:6px}
.tcs-feat__act .btn{font-size:12px}
/* "Live on Ryde TV" badge — replaces the old Watch Live button on the next-race card */
.tcs-feat__live{display:inline-flex;align-items:center;gap:8px;padding:0 13px;border:1px solid rgba(255,255,255,.22);border-radius:4px;font-family:var(--font-body,'Rajdhani',sans-serif);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.82);transition:border-color .2s,background .2s,color .2s}
.tcs-feat__live:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.06);color:#fff}
.tcs-feat__live-dot{width:7px;height:7px;border-radius:50%;background:var(--red,#eb2127);animation:tcsPulse 1.5s infinite;flex-shrink:0}
.tcs-feat__live img{height:15px;width:auto;display:block}
/* "Rewatch on Ryde TV" — completed-round variant (play glyph, no live pulse) */
.tcs-feat__live--rewatch .tcs-feat__rewatch-ico{font-size:9px;color:#fff;flex-shrink:0}

/* ── Hover-preview host (desktop): featured card swaps per ribbon tab ── */
.tcs-feat-host{position:relative;display:flex;flex-direction:column}
.tcs-feat-host>.tcs-feat{flex:1}
.tcs-feat-host .tcs-feat{animation:tcsFeatIn .22s ease}
@keyframes tcsFeatIn{from{opacity:.25}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.tcs-feat-host .tcs-feat{animation:none}}
@media(max-width:820px){
  .tcs-feat,.tcs-feat--sm{grid-template-columns:1fr}
  .tcs-feat__img{min-height:200px}
  .tcs-feat__img::after{background:linear-gradient(0deg,var(--cardc,#17191c),transparent 55%)}
}

/* ── Ribbon (home: 8 rounds at a glance) ── */
.tcs-ribbon{display:grid;grid-template-columns:repeat(8,1fr);gap:1px;background:rgba(0,0,0,.32);border:1px solid rgba(0,0,0,.32);margin-top:1px}
.tcs-rib{background:#1a1c1f;padding:14px;display:flex;flex-direction:column;gap:4px;transition:filter .18s,background .18s;text-decoration:none}
.tcs-rib--done{background:#0d2b2f}
.tcs-rib--next{background:#00909e}
.tcs-rib--up{background:#1a1c1f}
.tcs-rib:hover{filter:brightness(1.14)}
.tcs-rib__r{font-family:var(--font-mono,'Space Mono',monospace);font-size:11px;color:rgba(255,255,255,.8);display:flex;justify-content:space-between}
/* status markers: completed check = Makita teal, up-next dot = TCS red */
.tcs-rib--done .tcs-rib__r .s{color:#3cc6d4;font-weight:700}
.tcs-rib--next .tcs-rib__r .s{color:var(--red,#eb2127);text-shadow:0 0 6px rgba(235,33,39,.55)}
/* every round number (R1, R2, …) in TCS red, all statuses */
.tcs-rib__r span:first-child{color:var(--red,#eb2127)}
/* active (hover-previewed) tab keeps a lifted state while you mouse to the card */
.tcs-rib.is-active{filter:brightness(1.16);box-shadow:inset 0 3px 0 rgba(255,255,255,.6)}
.tcs-rib__v{font-family:var(--font-heading,'Tungsten',sans-serif);font-size:15px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;line-height:1;color:var(--text)}
.tcs-rib__d{font-family:var(--font-mono,'Space Mono',monospace);font-size:10px;color:var(--text-2)}
@media(max-width:820px){.tcs-ribbon{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.tcs-ribbon{grid-template-columns:1fr}}

/* ── Stage label + stack ── */
.tcs-stagelab{font-family:var(--font-heading,'Tungsten',sans-serif);font-size:12px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--red);margin:36px 0 16px;display:flex;align-items:center;gap:12px}
.tcs-stagelab .ln{flex:1;height:1px;background:rgba(0,144,158,.22)}
.tcs-stagelab .rr{font-family:var(--font-mono,'Space Mono',monospace);font-size:10px;color:var(--text-3);letter-spacing:.05em}
.tcs-stack>.tcs-feat,.tcs-stack>.tcs-feat--sm{margin-bottom:14px}
.tcs-feat--finale{box-shadow:inset 3px 0 0 var(--red)}

@keyframes tcsPulse{0%{box-shadow:0 0 0 0 rgba(235,33,39,.5)}70%{box-shadow:0 0 0 8px rgba(235,33,39,0)}100%{box-shadow:0 0 0 0 rgba(235,33,39,0)}}

/* ── Legibility on the Makita-teal surfaces ── */
.tcs-feat__r,.tcs-feat__cd .l{color:rgba(255,255,255,.74)}
.tcs-feat__loc{color:rgba(255,255,255,.9)}
.tcs-feat__pod{color:rgba(255,255,255,.9)}
.tcs-feat__pod b{color:var(--red,#eb2127)}
.tcs-feat__pod .c{color:rgba(255,255,255,.85)}
.tcs-rib__d{color:rgba(255,255,255,.7)}
/* feature-card round label ("Round 03 · Stage 2") in TCS red, all statuses */
.tcs-feat .tcs-feat__r{color:var(--red,#eb2127)}
