/* Race directory — an instrument-panel "race board": monochrome + one vermilion, wide-
   tracked caps micro-labels, tabular figures, a T-minus countdown to every start line.
   The hub is per-discipline blocks (list rows, not cards); each opens a full discipline
   page. Loaded standalone with fonts.css. */
:root{
  --canvas:#F4F5F7; --surface:#FFFFFF; --ink:#191C22; --ink-2:#434955;
  --muted:#565C66; --faint:#6B717C;
  --line:#E6E8ED; --line-2:#F0F1F4; --inset:#F6F7F9;
  --accent:#FF1744; --ink-deep:#0F1216;
  --sans:"Switzer",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --track-caps:.1em;
  --wrap:1180px;
  --shadow:0 1px 2px rgba(25,28,34,.05);
  --shadow-pop:0 10px 34px rgba(25,28,34,.10), 0 2px 6px rgba(25,28,34,.05);
}
*{box-sizing:border-box}
body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--sans);
  -webkit-font-smoothing:antialiased;line-height:1.55}
a{color:inherit}
.eyebrow{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--accent);margin:0}

/* Tracked-caps micro-labels — the instrument-panel signature, reused throughout. */
.rc-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--faint)}
.rc-when{font-size:13px;font-weight:600;letter-spacing:.05em;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.rc-where{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}
.rc-disc{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--dc,var(--muted))}
.rc-dot{width:8px;height:8px;border-radius:50%;background:var(--dc,var(--muted));flex:0 0 auto;display:inline-block}
.rc-flag{color:var(--accent);font-size:13px;line-height:1;font-style:normal}
.rc-tminus{font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;text-transform:uppercase}
.rc-tminus.soon{color:var(--accent)}

/* ---- hero ---- */
.rc-hero{position:relative;background:var(--ink-deep);color:#fff;padding:78px 24px 60px;overflow:hidden;isolation:isolate}
.rc-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);opacity:.30;z-index:-2}
.rc-hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(92deg,rgba(15,18,22,.94) 0%,rgba(15,18,22,.74) 52%,rgba(15,18,22,.42) 100%)}
.rc-hero-in{max-width:var(--wrap);margin:0 auto;position:relative}
.rc-hero .eyebrow{color:#fff;opacity:.75}
.rc-hero h1{font-size:40px;line-height:1.04;letter-spacing:-.025em;margin:10px 0 0;font-weight:680}
.rc-hero-sub{font-size:18px;color:#D6D9DF;max-width:600px;margin:14px 0 0}
.rc-hero-stats{display:flex;gap:26px;margin-top:24px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#AEB4BE}
.rc-hero-stats b{color:#fff;font-weight:700;font-variant-numeric:tabular-nums}
.rc-live{color:var(--accent);font-size:13px;vertical-align:middle}
.rc-hero-disc h1{display:flex;align-items:center;gap:12px}
.rc-hero-disc .rc-dot{width:14px;height:14px}
.rc-back{display:inline-block;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-decoration:none;margin-bottom:22px}
.rc-back:hover{color:var(--accent)}
.rc-back-light{color:#AEB4BE;margin-bottom:16px}
.rc-back-light:hover{color:#fff}

/* ---- layout ---- */
.rc-wrap{max-width:var(--wrap);margin:0 auto;padding:34px 24px 88px}

/* ---- marquee (flagship highlight reel) ---- */
.rc-marquee{margin:4px 0 44px}
.rc-marquee-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:0 2px 16px}
.rc-marquee-head h2{font-size:22px;letter-spacing:-.02em;font-weight:600;margin:0;color:var(--ink-2)}
.rc-marquee-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(248px,1fr);gap:14px;overflow-x:auto;padding:2px 2px 14px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.rc-mq-card{position:relative;overflow:hidden;isolation:isolate;scroll-snap-align:start;text-decoration:none;display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:16px;background:var(--ink-deep);color:#fff;border:1px solid rgba(255,255,255,.10);transition:transform .18s ease,border-color .18s ease}
.rc-mq-card:hover{transform:translateY(-3px);border-color:rgba(255,255,255,.28)}
/* Optional Unsplash photo of the host location, greyscaled behind a dark scrim. */
.rc-mq-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06);opacity:.7;z-index:-2;transition:filter .3s ease,opacity .3s ease}
.rc-mq-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(15,18,22,.92) 0%,rgba(15,18,22,.42) 52%,rgba(15,18,22,.3) 100%);transition:background .3s ease}
/* Hover: the location photo comes to life in colour. */
.rc-mq-card:hover .rc-mq-img{filter:grayscale(0) contrast(1.02);opacity:.92}
.rc-mq-card:hover::after{background:linear-gradient(to top,rgba(15,18,22,.86) 0%,rgba(15,18,22,.32) 52%,rgba(15,18,22,.16) 100%)}
.rc-mq-card h3{font-size:18px;line-height:1.22;margin:0;font-weight:640;letter-spacing:-.02em;flex:1}
.rc-mq-card .rc-disc{color:#fff}
.rc-mq-card .rc-when{color:#fff}
.rc-mq-card .rc-tminus:not(.soon){color:#fff}
.rc-mq-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:12px;border-top:1px solid rgba(255,255,255,.10)}
.rc-mq-card .rc-where{color:#8C929C}
.rc-row{display:flex;align-items:center;justify-content:space-between;gap:10px}

/* ---- discipline block (hub): a two-tone card -- a lighter copy panel (discipline name +
   a line on what it demands) beside a darker list panel; sides alternate per block (the
   site's .ft-row/.flip). Stacks to copy-on-top, list-under on mobile. */
.rc-block{display:grid;grid-template-columns:.8fr 1.2fr;gap:0;align-items:stretch;margin:0 0 22px;
  border:1px solid var(--line);border-radius:18px;overflow:hidden}
.rc-block.flip{grid-template-columns:1.2fr .8fr}
.rc-block.flip .rc-block-copy{order:2}
.rc-block-copy{background:var(--surface);padding:34px 32px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.rc-block-copy h2{font-size:28px;line-height:1.1;letter-spacing:-.025em;font-weight:660;margin:0;color:var(--ink)}
.rc-block-copy p{font-size:18px;line-height:1.55;color:var(--muted);margin:0;max-width:42ch}
.rc-block-copy .rc-viewall{margin-top:6px;color:var(--accent)}
.rc-block-list{background:#FAFAFA;border-left:1px solid var(--line);padding:6px 20px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.rc-block.flip .rc-block-list{border-left:0;border-right:1px solid var(--line)}
.rc-block-list .rc-list li:last-child{border-bottom:0}
.rc-viewall{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-decoration:none;white-space:nowrap}
.rc-viewall:hover{color:var(--accent)}

/* ---- list rows: compact by default (name/where left, date/countdown right); the full
   discipline page spreads to one wide line per race where there's room. ---- */
.rc-list{list-style:none;margin:0;padding:0}
.rc-list li{border-bottom:1px solid var(--line)}
.rc-list-full li:first-child{border-top:1px solid var(--line)}
.rc-lrow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name when" "where tminus";gap:3px 16px;align-items:baseline;
  padding:13px 10px;text-decoration:none;border-left:3px solid transparent;transition:background .14s,border-color .14s,padding .14s}
.rc-lrow:hover{background:var(--surface);border-left-color:var(--dc,var(--accent));padding-left:15px}
.rc-lname{grid-area:name;font-size:18px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.rc-lwhere{grid-area:where;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--faint)}
.rc-lwhen{grid-area:when;font-size:13px;font-weight:600;letter-spacing:.05em;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.rc-ltminus{grid-area:tminus;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.rc-ltminus.soon{color:var(--accent)}
@media(min-width:721px){
  .rc-list-full .rc-lrow{grid-template-columns:minmax(0,2.4fr) minmax(0,1.3fr) 118px 92px;grid-template-areas:"name where when tminus";gap:14px}
}

/* ---- controls (discipline page filter row) ---- */
.rc-controls{margin-bottom:8px}
.rc-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.rc-filters select,.rc-filters input{font-family:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:9px 12px}
.rc-filters input{flex:1 1 220px;min-width:180px}
.rc-filters select:focus,.rc-filters input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
.rc-clear{font-family:inherit;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:none;border:0;padding:9px 6px;cursor:pointer}
.rc-clear:hover{color:var(--accent)}
.rc-count{margin:14px 2px 8px}
.rc-count .rc-label span{color:var(--ink);font-variant-numeric:tabular-nums}
.rc-empty{font-size:18px;color:var(--muted);text-align:center;padding:56px 0}

/* ---- detail page ---- */
.rc-detail{max-width:780px}
.rc-detail-head .rc-disc{font-size:13px;margin-bottom:12px}
.rc-detail-head h1{font-size:34px;line-height:1.07;letter-spacing:-.025em;margin:0;font-weight:680}
.rc-detail-meta{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:16px;align-items:center}
.rc-detail-body{margin-top:30px}
.rc-detail-desc{font-size:18px;line-height:1.6;color:var(--ink-2);margin:0 0 8px}
.rc-detail-block{margin-top:32px}
.rc-detail-block h2{font-size:13px;text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--faint);font-weight:700;margin:0 0 12px}
.rc-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.rc-chips li{font-size:13px;font-weight:600;color:var(--ink-2);background:var(--inset);border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-variant-numeric:tabular-nums}
.rc-cta{display:flex;flex-wrap:wrap;gap:12px;margin:34px 0 24px}
.rc-btn{font-size:15px;font-weight:640;text-decoration:none;padding:12px 20px;border-radius:12px;border:1px solid var(--line);color:var(--ink);background:var(--surface);transition:border-color .15s,transform .15s}
.rc-btn:hover{border-color:var(--faint);transform:translateY(-1px)}
.rc-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.rc-btn-primary:hover{filter:brightness(.95)}
.rc-source-note{font-size:13px;color:var(--faint);line-height:1.5;border-top:1px solid var(--line);padding-top:18px;margin-top:8px}

/* Stack the block to copy-on-top, list under (the site's .ft-row mobile behaviour). */
@media (max-width:860px){
  .rc-block,.rc-block.flip{grid-template-columns:1fr;gap:0}
  .rc-block.flip .rc-block-copy{order:0}
  .rc-block-copy{padding:26px 22px}
  .rc-block-copy h2{font-size:22px}
  .rc-block-copy p{max-width:56ch}
  .rc-block-list,.rc-block.flip .rc-block-list{border-left:0;border-right:0;border-top:1px solid var(--line)}
}
@media (max-width:640px){
  .rc-hero{padding:52px 20px 42px}
  .rc-hero h1{font-size:30px}
  .rc-hero-stats{gap:18px;flex-wrap:wrap}
  .rc-wrap{padding:24px 16px 64px}
  .rc-detail-head h1{font-size:28px}
}
