/* ============================================================
   THE 9 DRAGONS — Official Brand Kit
   Dragon Red #FD0F10 (PMS 172 C) · Ridgeline Black #000 · Bib White #FFF
   Display: Anton (uppercase) · Body: DM Sans · Chinese: Noto Sans TC
   Red is sacred — ≤20% coverage, display 24px+ only, never body.
   ============================================================ */

:root {
  --red: #fd0f10;
  --black: #000000;
  --white: #ffffff;

  /* tonal blacks for layering (crushed-black imagery ethos) */
  --ink-0: #000000;
  --ink-1: #0a0a0b;
  --ink-2: #121214;
  --ink-3: #1b1b1e;
  --line: #2a2a2e;

  --text: #f4f4f5;
  --text-muted: #a1a1a6;
  --text-faint: #6e6e73;

  --font-display: 'Anton', 'Arial Narrow', sans-serif;
  --font-body: 'DM Sans', 'Helvetica Neue', sans-serif;
  --font-zh: 'Noto Sans TC', sans-serif;

  --space-2: .5rem; --space-3:.75rem; --space-4:1rem; --space-6:1.5rem;
  --space-8:2rem; --space-12:3rem; --space-16:4rem; --space-20:5rem; --space-24:6rem; --space-32:8rem;

  --text-xs: clamp(.75rem,.7rem + .2vw,.85rem);
  --text-sm: clamp(.875rem,.82rem + .25vw,1rem);
  --text-base: clamp(1rem,.95rem + .25vw,1.125rem);
  --text-lg: clamp(1.15rem,1rem + .6vw,1.45rem);
  --text-xl: clamp(1.75rem,1.2rem + 2vw,2.75rem);
  --text-2xl: clamp(2.5rem,1.6rem + 3.6vw,4.5rem);
  --text-hero: clamp(3.2rem,1rem + 9vw,8.5rem);

  --maxw: 1240px;
  --ease: cubic-bezier(.16,1,.3,1);
}

/* LIGHT MODE — Bib White surfaces, black ink, red sacred */
[data-theme='light'] {
  --ink-0:#ffffff; --ink-1:#f6f6f4; --ink-2:#eeeeec; --ink-3:#e6e6e3;
  --line:#d9d9d6;
  --text:#0a0a0b; --text-muted:#46464a; --text-faint:#8a8a8f;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:5rem}
body{min-height:100dvh;line-height:1.6;font-family:var(--font-body);font-size:var(--text-base);color:var(--text);background:var(--ink-0);overflow-x:hidden}
img,video,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{cursor:pointer;background:none;border:none;color:inherit;font:inherit}
ul,ol{list-style:none}
h1,h2,h3{line-height:.95;text-wrap:balance}
p{text-wrap:pretty;max-width:62ch}
::selection{background:var(--red);color:#fff}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--red);color:#fff;padding:.5rem 1rem;z-index:200}
.skip:focus{left:0}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ---------- type helpers ---------- */
.kicker{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted)}
.kicker.red{color:var(--red)}
.section-title{font-family:var(--font-display);font-size:var(--text-2xl);text-transform:uppercase;letter-spacing:.01em}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-body);font-weight:700;font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;padding:.85rem 1.6rem;border-radius:2px;transition:transform .18s var(--ease),background .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease)}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{transform:translateY(-2px);background:#e00b0c}
.btn-ghost{background:transparent;color:var(--text);border:1.5px solid var(--text)}
.btn-ghost:hover{background:var(--text);color:var(--ink-0)}
.btn-lg{padding:1.1rem 2.4rem;font-size:var(--text-base)}

/* ---------- header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;gap:var(--space-8);padding:1rem clamp(1rem,4vw,3rem);transition:background .3s var(--ease),border-color .3s var(--ease),padding .3s var(--ease)}
.site-header.scrolled{background:color-mix(in srgb,var(--ink-0) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding-top:.7rem;padding-bottom:.7rem}
.brand{display:flex;align-items:center;gap:.6rem}
.brand-mark{width:44px;height:44px;object-fit:contain}
.brand-word{font-family:var(--font-display);font-size:1.15rem;letter-spacing:.04em;text-transform:uppercase}
.nav{display:flex;gap:var(--space-6);margin-left:auto;font-family:var(--font-body);font-weight:500;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em}
.nav a{color:var(--text-muted);position:relative;padding:.25rem 0}
.nav a::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--red);transition:width .25s var(--ease)}
.nav a:hover{color:var(--text)}
.nav a:hover::after{width:100%}
.site-header .btn{margin-left:0}
/* header social icons (desktop) */
.head-social{display:flex;align-items:center;gap:.5rem;margin-left:1.2rem}
.head-social a{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;color:var(--text-muted);transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease)}
.head-social a:hover{color:#fff;background:var(--red);border-color:var(--red);transform:translateY(-2px)}
/* redundant text "Enter" link hidden on desktop (red button covers it); shows in mobile panel */
.nav-enter{display:none}
.nav-social{display:none}
/* mobile hamburger (hidden on desktop) */
.nav-toggle{display:none;margin-left:auto;width:42px;height:42px;place-items:center;border:1px solid var(--line);border-radius:3px;color:var(--text);position:relative;z-index:160}
.nav-toggle svg{width:22px;height:22px}

/* ---------- races dropdown ---------- */
.has-drop{position:relative}
.has-drop::after{content:'';position:absolute;left:50%;transform:translateX(-50%);top:100%;width:240px;max-width:90vw;height:.9rem;display:none}
.has-drop:hover::after{display:block}
.drop-toggle{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-muted);font:inherit;font-weight:500;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;padding:.25rem 0;position:relative}
.drop-toggle::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--red);transition:width .25s var(--ease)}
.drop-toggle:hover,.drop-toggle[aria-expanded='true']{color:var(--text)}
.has-drop:hover .drop-toggle::after,.drop-toggle[aria-expanded='true']::after{width:100%}
.drop-caret{width:.8em;height:.8em;transition:transform .25s var(--ease)}
.has-drop:hover .drop-caret,.drop-toggle[aria-expanded='true'] .drop-caret{transform:rotate(180deg)}
.drop-menu{position:absolute;top:calc(100% + .6rem);left:50%;transform:translateX(-50%) translateY(8px);width:max-content;min-width:240px;background:color-mix(in srgb,var(--ink-1) 96%,transparent);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:6px;padding:.5rem;box-shadow:0 20px 50px rgba(0,0,0,.45);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s var(--ease) .08s,transform .2s var(--ease) .08s,visibility .2s .08s;z-index:130}
.has-drop:hover .drop-menu,.drop-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.drop-menu a{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.7rem .8rem;border-radius:4px;color:var(--text);font-family:var(--font-body);font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;transition:background .15s var(--ease),color .15s var(--ease)}
.drop-menu a:hover{background:var(--ink-3);color:var(--red)}
.drop-menu a .d-dist{font-family:var(--font-body);font-weight:500;font-size:var(--text-xs);letter-spacing:.08em;color:var(--text-faint);text-transform:none;white-space:nowrap}
.drop-menu a:hover .d-dist{color:var(--text-muted)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:6rem clamp(1rem,5vw,4rem) 7rem;overflow:hidden;background:var(--black)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.25) 35%,rgba(0,0,0,.55) 70%,rgba(0,0,0,.9) 100%)}
.hero-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;width:100%;color:#fff}
.hero .kicker{color:#e8e8e8}
.hero-title{font-family:var(--font-display);font-size:var(--text-hero);text-transform:uppercase;letter-spacing:.01em;margin:.6rem 0 1.2rem;color:#fff;text-shadow:0 2px 40px rgba(0,0,0,.4)}
.hero-sub{font-size:var(--text-lg);font-weight:500;max-width:34ch;color:#f0f0f0}
.hero-sub-zh{font-family:var(--font-zh);font-size:var(--text-base);color:#cfcfcf;margin-top:.4rem;letter-spacing:.08em}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}
.hero-count{position:absolute;z-index:2;bottom:2rem;left:50%;transform:translateX(-50%);display:flex;gap:clamp(1rem,4vw,3rem);padding:1rem 1.5rem;background:rgba(0,0,0,.4);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:4px}
.count-block{display:flex;flex-direction:column;align-items:center;min-width:3.2rem}
.count-num{font-family:var(--font-display);font-size:clamp(1.6rem,1rem+2vw,2.4rem);color:#fff;line-height:1}
.count-lbl{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:#bdbdbd;margin-top:.35rem}

/* ---------- marquee ---------- */
.marquee{background:var(--red);color:#fff;overflow:hidden;padding:.7rem 0;border-block:0}
.marquee-track{display:inline-flex;white-space:nowrap;gap:1.4rem;font-family:var(--font-display);font-size:1.1rem;letter-spacing:.05em;text-transform:uppercase;animation:scroll 60s linear infinite}
.marquee .dot{opacity:.6}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- accreditations (above marquee) ---------- */
.accred{max-width:var(--maxw);margin:0 auto;padding:clamp(2.4rem,5vw,3.6rem) clamp(1rem,5vw,4rem) clamp(2rem,4vw,2.8rem);text-align:center}
.accred-label{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--text-muted);margin:0 0 clamp(1.3rem,2.5vw,1.8rem)}
.accred-row{display:flex;align-items:center;justify-content:center;gap:clamp(1.2rem,3vw,2.6rem);flex-wrap:nowrap}
.accred-chip{flex:0 0 auto;background:#fff;border-radius:8px;padding:clamp(.7rem,1.6vw,1rem) clamp(.9rem,2vw,1.4rem);display:grid;place-items:center}
.accred-chip img{display:block;width:auto;height:clamp(48px,7vw,72px)}
.accred-chip--lead img{height:clamp(64px,9.5vw,100px)}
@media (max-width:560px){.accred-row{gap:.9rem}.accred-chip{padding:.6rem .8rem}.accred-chip img{height:clamp(38px,11vw,52px)}.accred-chip--lead img{height:clamp(52px,15vw,72px)}}

/* ---------- statement ---------- */
.statement{max-width:var(--maxw);margin:0 auto;padding:clamp(4rem,9vw,7rem) clamp(1rem,5vw,4rem)}
.statement-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:center}
.lede{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;line-height:1.05;letter-spacing:.01em;max-width:18ch}
.statement-media{margin:0;border-radius:6px;overflow:hidden;aspect-ratio:4/3;border:1px solid var(--line)}
.statement-media img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:860px){.statement-grid{grid-template-columns:1fr;gap:2rem}.lede{max-width:22ch}.statement-media{aspect-ratio:16/10}}
.lede-muted{font-size:var(--text-lg);color:var(--text-muted);margin-top:1.5rem;max-width:48ch}

/* ---------- races ---------- */
.races{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1rem,5vw,4rem) clamp(4rem,8vw,6rem)}
.section-head{margin-bottom:var(--space-12)}
.section-head .kicker{margin-bottom:.6rem}
.race-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1rem,2vw,1.5rem)}
.race-grid--five{grid-template-columns:repeat(5,1fr)}
.race-card{position:relative;background:var(--ink-1);border:1px solid var(--line);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s var(--ease),border-color .3s var(--ease)}
.race-card:hover{transform:translateY(-4px);border-color:var(--red);cursor:pointer}
.race-card--feature{border-color:var(--red)}
.race-card-media{overflow:hidden;background:var(--ink-2)}
.race-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);filter:saturate(.95)}
.race-card:hover .race-card-media img{transform:scale(1.05)}
.race-card .race-card-media{aspect-ratio:4/3}
.race-card-body{padding:clamp(1.1rem,1.6vw,1.5rem);display:flex;flex-direction:column;gap:.7rem;flex:1}
/* reserve a consistent badge row so all titles align across cards */
.race-flag{align-self:flex-start;font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:#fff;background:var(--red);padding:.25rem .6rem;border-radius:2px;line-height:1.2}
.race-flag--new{background:transparent;color:var(--red);border:1px solid var(--red)}
/* cards without a badge reserve the EXACT same vertical space as the flag
   (flag = text-xs line-height 1.2 + .25rem vertical padding x2) so every
   title — and the DISTANCE row below it — lines up across the row */
.race-grid--five .race-card-body:not(:has(.race-flag))::before{content:"";display:block;height:calc(var(--text-xs) * 1.2 + .5rem)}
.race-name{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;letter-spacing:.01em;line-height:1.02;min-height:2.1em;display:flex;align-items:flex-end}
.race-desc{color:var(--text-muted);font-size:var(--text-base);max-width:48ch;min-height:8em}
.race-stats{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:.2rem 0 .3rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.race-stats .stat{display:flex;flex-direction:column;gap:.35rem;min-width:0;padding-right:.8rem}
.race-stats .stat + .stat{padding-left:.9rem;border-left:1px solid var(--line);padding-right:0}
.stat-l{font-family:var(--font-body);font-weight:700;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);line-height:1}
.stat-v{font-family:var(--font-display);font-size:clamp(1.35rem,1rem + 1vw,1.9rem);line-height:.95;color:var(--text);letter-spacing:.01em}
.stat-u{font-family:var(--font-body);font-weight:700;font-size:.58em;color:var(--text-muted);text-transform:lowercase;margin-left:.14em;letter-spacing:.02em}
.race-card--feature .stat-v{color:#fff}
.race-link{margin-top:auto;font-family:var(--font-body);font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--red);padding-top:.9rem}
.race-link:hover{letter-spacing:.1em}
/* Whole card clickable via stretched link */
.race-link::after{content:"";position:absolute;inset:0;z-index:1}
.race-card a:not(.race-link){position:relative;z-index:2}
.race-card--kids{background:var(--ink-2);border-style:dashed}

/* ---------- pain band ---------- */
.pain{position:relative;min-height:70svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:clamp(4rem,10vw,8rem) 1.5rem;background:#000}
.pain::before{content:'';position:absolute;inset:0;background-image:var(--bg);background-size:cover;background-position:center;opacity:.45;filter:grayscale(.2) contrast(1.05)}
.pain::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.7),rgba(0,0,0,.55))}
.pain-inner{position:relative;z-index:2;color:#fff}
.pain-title{font-family:var(--font-display);font-size:var(--text-2xl);text-transform:uppercase;line-height:.95}
.pain-sub{font-size:var(--text-lg);color:#dadada;margin-top:1.2rem;margin-inline:auto}

/* ---------- weekend ---------- */
.weekend{max-width:var(--maxw);margin:0 auto;padding:clamp(4rem,8vw,6rem) clamp(1rem,5vw,4rem)}
.weekend-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
.weekend-media{border-radius:4px;overflow:hidden;aspect-ratio:4/3}
.weekend-media img{width:100%;height:100%;object-fit:cover}
.timeline{display:flex;flex-direction:column}
.timeline li{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;padding:1.4rem 0;border-bottom:1px solid var(--line);align-items:baseline}
.timeline li:first-child{padding-top:0}
.t-day{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;color:var(--red);white-space:nowrap}
.t-event{color:var(--text-muted);font-size:var(--text-base)}

/* ---------- story ---------- */
.story{background:var(--ink-1);border-block:1px solid var(--line)}
.story-grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);align-items:center;padding:clamp(4rem,8vw,6rem) clamp(1rem,5vw,4rem)}
.story-media{border-radius:4px;overflow:hidden;aspect-ratio:3/4;max-height:560px}
.story-media img{width:100%;height:100%;object-fit:cover}
.story-copy h2{margin:.6rem 0 1.4rem}
.story-copy p{color:var(--text-muted);margin-bottom:1rem}
.story-copy strong{color:var(--text);font-family:var(--font-zh)}
.story-quote{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;color:var(--text);max-width:none;border-left:3px solid var(--red);padding-left:1rem;margin-top:1.5rem}

/* ---------- community ---------- */
.community{position:relative;min-height:60svh;display:flex;align-items:center;padding:clamp(4rem,9vw,7rem) clamp(1rem,5vw,4rem);background:#000}
.community::before{content:'';position:absolute;inset:0;background-image:var(--bg);background-size:cover;background-position:center 30%;opacity:.4}
.community::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,.55) 60%,rgba(0,0,0,.3) 100%)}
.community-inner{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;width:100%;color:#fff}
.community-inner h2{margin:.6rem 0 1.2rem}
.community-inner p{color:#e2e2e2;font-size:var(--text-lg);max-width:52ch}

/* ---------- register ---------- */
.register{background:var(--red);color:#fff;text-align:center}
.register-inner{max-width:760px;margin:0 auto;padding:clamp(4rem,9vw,7rem) clamp(1rem,5vw,4rem);display:flex;flex-direction:column;align-items:center}
.register-mark{width:120px;height:120px;object-fit:contain;margin-bottom:1.4rem;opacity:.95}
.register-title{font-family:var(--font-display);font-size:var(--text-2xl);text-transform:uppercase;line-height:.95}
.register-sub{font-size:var(--text-lg);margin:1.2rem auto 2rem;color:#fff;max-width:42ch;opacity:.95}
.register .btn-ghost{border-color:#fff;color:#fff}
.register .btn-red{background:#000;color:#fff}
.register .btn-red:hover{background:#111}
.register-fine{font-size:var(--text-sm);margin-top:1.5rem;letter-spacing:.04em;text-transform:uppercase;opacity:.85}

/* ---------- sponsors / partners ---------- */
.sponsors{max-width:var(--maxw);margin:0 auto;padding:clamp(3rem,7vw,5rem) clamp(1rem,5vw,4rem)}
.sponsors .section-head{margin-bottom:var(--space-8);text-align:center}
.sponsors .section-head .kicker{margin-bottom:.5rem}
.sponsor-tier{margin-top:clamp(2rem,4vw,3rem)}
.sponsor-tier:first-of-type{margin-top:0}
.sponsor-tier-label{display:flex;align-items:center;gap:1rem;font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint);margin-bottom:1.4rem}
.sponsor-tier-label::before,.sponsor-tier-label::after{content:'';flex:1;height:1px;background:var(--line)}
.sponsor-grid{display:grid;gap:1rem}
.sponsor-grid.tier-lead{grid-template-columns:repeat(2,1fr)}
.sponsor-grid.tier-major{grid-template-columns:repeat(3,1fr)}
.sponsor-grid.tier-partner{grid-template-columns:repeat(4,1fr)}
.sponsor-slot{display:grid;place-items:center;aspect-ratio:16/7;background:var(--ink-1);border:1px solid var(--line);border-radius:4px;padding:1.5rem;transition:border-color .2s var(--ease),background .2s var(--ease)}
.sponsor-slot:hover{border-color:var(--red)}
.sponsor-slot img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:grayscale(1) brightness(1.6);opacity:.85;transition:filter .25s var(--ease),opacity .25s var(--ease)}
.sponsor-slot:hover img{filter:none;opacity:1}
[data-theme='light'] .sponsor-slot img{filter:grayscale(1) contrast(.9);opacity:.7}
[data-theme='light'] .sponsor-slot:hover img{filter:none;opacity:1}
/* empty placeholder slot (no logo yet) */
.sponsor-slot.is-empty{color:var(--text-faint);font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;border-style:dashed}
.sponsor-cta{text-align:center;margin-top:clamp(2.5rem,5vw,3.5rem);color:var(--text-muted)}
.sponsor-cta a{color:var(--red);font-weight:700}
.sponsor-cta a:hover{text-decoration:underline}
.sponsor-clubs{margin:1.6rem auto 0;max-width:60ch;text-align:center;font-size:var(--text-sm);line-height:1.7;color:var(--text-muted)}
.sponsor-clubs a{color:var(--red);font-weight:700}
.sponsor-clubs a:hover{text-decoration:underline}
@media(max-width:860px){.sponsor-grid.tier-major{grid-template-columns:repeat(2,1fr)}.sponsor-grid.tier-partner{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.sponsor-grid.tier-lead,.sponsor-grid.tier-major{grid-template-columns:1fr}.sponsor-grid.tier-partner{grid-template-columns:repeat(2,1fr)}}

/* ---------- footer ---------- */
.site-footer{background:var(--ink-0);border-top:1px solid var(--line);padding:clamp(2.5rem,5vw,4rem) clamp(1rem,5vw,4rem) 2rem}
.foot-top{max-width:var(--maxw);margin:0 auto;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between;align-items:center;padding-bottom:2rem;border-bottom:1px solid var(--line)}
.foot-nav{display:flex;flex-wrap:wrap;gap:var(--space-6);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;font-weight:500}
.foot-nav a{color:var(--text-muted)}
.foot-nav a:hover{color:var(--red)}
.foot-social{display:flex;gap:.6rem}
.foot-social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;color:var(--text-muted);transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease)}
.foot-social a:hover{color:#fff;background:var(--red);border-color:var(--red);transform:translateY(-2px)}
.foot-bottom{max-width:var(--maxw);margin:0 auto;padding-top:1.5rem;color:var(--text-faint);font-size:var(--text-sm)}
.foot-bottom a{color:var(--text-muted)}
.foot-bottom a:hover{color:var(--red)}
.foot-fine{margin-top:.4rem;font-size:var(--text-xs);letter-spacing:.04em}

/* ---------- theme toggle ---------- */

/* ---------- race detail pages (shared) ---------- */
.race-hero{position:relative;min-height:82svh;display:flex;flex-direction:column;justify-content:flex-end;padding:6rem clamp(1rem,5vw,4rem) clamp(3rem,7vw,6rem);overflow:hidden;background:#000}
.race-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;filter:saturate(.95)}
.race-hero-ov{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.28) 45%,rgba(0,0,0,.9) 100%)}
.race-hero-content{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;width:100%;color:#fff}
.race-hero h1{font-family:var(--font-display);font-size:var(--text-hero);text-transform:uppercase;letter-spacing:.01em;line-height:.9;margin:.6rem 0 .8rem;color:#fff}
.race-hero .sub{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;color:var(--red);margin-bottom:1rem}
.race-hero .statline{font-family:var(--font-body);font-weight:700;font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:#e8e8e8;max-width:none}
.race-body{max-width:760px;margin:0 auto;padding:clamp(3rem,7vw,5rem) clamp(1rem,5vw,3rem) clamp(1rem,3vw,2rem)}
/* Photo hero variant: show the full image (no heavy crop) with the title overlaid at the foot */
.race-hero--photo{min-height:0;aspect-ratio:1600/1067;max-height:90vh}
.race-hero--photo .race-hero-bg{background-size:cover;background-position:center top}
.race-hero--photo .race-hero-ov{background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,.55) 78%,rgba(0,0,0,.88) 100%)}
@media(max-width:760px){.race-hero--photo{aspect-ratio:auto;min-height:74svh}.race-hero--photo .race-hero-bg{background-position:62% top}}
.race-body p{font-size:var(--text-lg);color:var(--text-muted);margin-bottom:1.6rem;max-width:none}
.race-body .pull{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;color:var(--text);line-height:1.05;border-left:3px solid var(--red);padding-left:1.2rem;margin:2rem 0}
/* ---------- official series badge ---------- */
.series{max-width:760px;margin:0 auto;padding:0 clamp(1rem,5vw,3rem) clamp(2.5rem,5vw,3.5rem)}
.series-badge{display:flex;align-items:center;gap:clamp(1rem,2.5vw,1.6rem);background:var(--ink-1);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:4px;padding:clamp(1.1rem,2.5vw,1.6rem) clamp(1.2rem,3vw,2rem)}
.series-badge .series-mark{flex:0 0 auto;background:#fff;border-radius:6px;padding:.6rem .8rem;display:grid;place-items:center}
.series-badge .series-mark img{display:block;width:clamp(120px,16vw,168px);height:auto}
.series-badge .series-text .k{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin-bottom:.35rem}
.series-badge .series-text p{font-size:var(--text-base);color:var(--text-muted);margin:0;max-width:42ch}
@media (max-width:560px){.series-badge{flex-direction:column;align-items:flex-start;gap:1rem}}
.spec{max-width:var(--maxw);margin:0 auto clamp(2rem,5vw,3rem);padding:0 clamp(1rem,5vw,3rem);display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.spec-item{background:var(--ink-1);border:1px solid var(--line);border-left:3px solid var(--red);padding:1.5rem;border-radius:2px}
.spec-item .k{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.16em;color:var(--text-faint);text-transform:uppercase}
.spec-item .v{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text);margin-top:.45rem;text-transform:uppercase}
/* ---------- gpx route map ---------- */
.route{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1rem,5vw,3rem) clamp(3rem,6vw,4rem)}
.route h2{margin-bottom:clamp(1.2rem,3vw,1.8rem)}
.route-stats{display:flex;flex-wrap:wrap;gap:clamp(1.4rem,4vw,2.6rem);margin-bottom:1.4rem}
.route-stats .rs{display:flex;flex-direction:column}
.route-stats .rs-n{font-family:var(--font-display);font-size:var(--text-lg);color:var(--text);text-transform:uppercase;line-height:1}
.route-stats .rs-l{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin-top:.3rem}
.gpxmap{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--ink-1)}
.gpxmap-canvas{width:100%;height:clamp(320px,46vw,460px);background:var(--ink-2)}
.gpxmap-readout{position:absolute;top:.7rem;right:.7rem;z-index:500;font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.66);border:1px solid rgba(255,255,255,.18);border-radius:4px;padding:.35rem .6rem;min-height:1.1em;pointer-events:none}
.gpxprofile-wrap{border:1px solid var(--line);border-top:0;border-radius:0 0 6px 6px;background:var(--ink-1);padding:.6rem .8rem .4rem}
.gpxprofile-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.2rem}
.gpxprofile-head .t{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}
.gpxprofile-head .h{font-size:var(--text-xs);color:var(--text-faint)}
.gpxprofile{display:block;width:100%;height:120px;cursor:crosshair}
.gpxmap-foot{font-size:var(--text-xs);color:var(--text-faint);margin-top:.8rem}
.gpx-pin-dot{display:block;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.4)}
.gpx-pin-lbl{position:absolute;left:50%;top:14px;transform:translateX(-50%);font-family:var(--font-body);font-weight:700;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.7);padding:1px 5px;border-radius:3px;white-space:nowrap}
.leaflet-container{font-family:var(--font-body)}
@media (max-width:560px){.gpxprofile{height:96px}}
.route-intro{font-size:var(--text-base);color:var(--text-muted);max-width:56ch;margin:-.4rem 0 1.6rem}
.route-links{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1rem,2vw,1.5rem)}
.route-link-card{display:flex;flex-direction:column;gap:.45rem;background:var(--ink-1);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:4px;padding:clamp(1.4rem,2.5vw,2rem);text-decoration:none;transition:transform .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease)}
.route-link-card:hover{transform:translateY(-3px);background:var(--ink-2);border-color:var(--red)}
.route-link-card .rl-day{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint)}
.route-link-card .rl-name{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text);text-transform:uppercase;line-height:1}
.route-link-card .rl-stat{font-size:var(--text-base);color:var(--text-muted)}
.route-link-card .rl-go{margin-top:.4rem;font-family:var(--font-body);font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--red)}
@media (max-width:560px){.route-links{grid-template-columns:1fr}}
.logistics{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1rem,5vw,3rem) clamp(3rem,6vw,4rem)}
.logistics h2{margin-bottom:var(--space-8)}
.log-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1rem,2vw,1.5rem)}
.log-card{background:var(--ink-1);border:1px solid var(--line);border-radius:4px;padding:clamp(1.4rem,2.5vw,2rem)}
.log-card h3{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;color:var(--text);margin-bottom:.6rem}
.log-card h3 .ic{color:var(--red);margin-right:.4rem}
.log-card p,.log-card li{color:var(--text-muted);font-size:var(--text-base)}
.log-card ul{display:flex;flex-direction:column;gap:.4rem}
.log-card li{position:relative;padding-left:1.1rem}
.log-card li::before{content:'';position:absolute;left:0;top:.65em;width:5px;height:5px;background:var(--red);border-radius:50%}
.log-card a{color:var(--text);text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:3px}
.log-card a:hover{color:var(--red)}
.relay{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1rem,5vw,3rem) clamp(3rem,6vw,4rem)}
.relay h2{margin-bottom:var(--space-4)}
.relay-intro{color:var(--text-muted);font-size:var(--text-base);max-width:760px;margin-bottom:var(--space-8)}
.relay-legs{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.75rem,1.5vw,1rem);margin-bottom:clamp(1.5rem,3vw,2rem)}
.relay-leg{background:var(--ink-1);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:4px;padding:clamp(1.2rem,2.2vw,1.6rem)}
.relay-leg .rl-no{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--red);line-height:1;display:block;margin-bottom:.5rem}
.relay-leg h3{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;color:var(--text);margin-bottom:.3rem}
.relay-leg .rl-route{color:var(--text-muted);font-size:var(--text-sm)}
.relay-rules{background:var(--ink-1);border:1px solid var(--line);border-radius:4px;padding:clamp(1.4rem,2.5vw,2rem);max-width:760px}
.relay-rules h3{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;color:var(--text);margin-bottom:.6rem}
.relay-rules h3 .ic{color:var(--red);margin-right:.4rem}
.relay-rules ul{display:flex;flex-direction:column;gap:.4rem}
.relay-rules li{position:relative;padding-left:1.1rem;color:var(--text-muted);font-size:var(--text-base)}
.relay-rules li::before{content:'';position:absolute;left:0;top:.65em;width:5px;height:5px;background:var(--red);border-radius:50%}
@media(max-width:720px){.relay-legs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:420px){.relay-legs{grid-template-columns:1fr}}
.cutoffs{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1rem,5vw,3rem) clamp(3rem,6vw,4rem)}
.cutoffs h2{margin-bottom:var(--space-4)}
.cutoffs-intro{color:var(--text-muted);font-size:var(--text-base);max-width:760px;margin-bottom:var(--space-6)}
.cutoff-table{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.cutoff-table th,.cutoff-table td{text-align:left;padding:.7rem 1rem;border-bottom:1px solid var(--line);font-size:var(--text-sm)}
.cutoff-table thead th{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;color:var(--text);background:var(--ink-1);font-size:var(--text-xs)}
.cutoff-table td{color:var(--text-muted)}
.cutoff-table td.co-cp{color:var(--text);font-weight:600;white-space:nowrap}
.cutoff-table td.co-time{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.cutoff-table tbody tr:last-child td{border-bottom:none}
.cutoff-table tbody tr.co-finish td{background:var(--ink-1)}
.cutoff-table tbody tr.co-finish .co-cp{color:var(--red)}
.cutoff-note{color:var(--text-faint);font-size:var(--text-xs);margin-top:.8rem}
.race-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:clamp(1.2rem,2.5vw,1.8rem)}
@media(max-width:560px){.cutoff-table th,.cutoff-table td{padding:.6rem .65rem;font-size:var(--text-xs)}}
.rewards{max-width:var(--maxw);margin:0 auto;padding:0 clamp(1rem,5vw,3rem) clamp(3rem,7vw,5rem)}
.rewards h2{margin-bottom:var(--space-8)}
.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.reward-card{background:var(--ink-2);border:1px solid var(--line);border-radius:4px;padding:clamp(1.4rem,3vw,2rem);text-align:center}
.reward-card .r-name{font-family:var(--font-display);font-size:var(--text-base);text-transform:uppercase;color:var(--text);margin-top:.6rem}
.reward-card .r-ico{color:var(--red)}
.reward-card .r-note{font-size:var(--text-xs);color:var(--text-faint);text-transform:uppercase;letter-spacing:.1em;margin-top:.3rem}
/* ---------- race film ---------- */
.race-film{max-width:var(--maxw);margin:0 auto clamp(3rem,7vw,5rem);padding:0 clamp(1rem,5vw,3rem)}
.race-film .section-title{text-align:center;margin-bottom:1.4rem}
.race-film-frame{position:relative;border-radius:6px;overflow:hidden;background:var(--ink-2);border:1px solid var(--line);box-shadow:0 24px 60px -28px rgba(0,0,0,.7)}
.race-film-frame video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:var(--ink-0)}
.race-film-cap{margin:1rem auto 0;max-width:62ch;text-align:center;font-size:var(--text-sm);color:var(--text-muted);line-height:1.7}
.race-gallery{max-width:var(--maxw);margin:0 auto clamp(3rem,7vw,5rem);padding:0 clamp(1rem,5vw,3rem);display:grid;grid-template-columns:2fr 1fr;gap:1rem}
.race-gallery figure{border-radius:4px;overflow:hidden;background:var(--ink-2)}
.race-gallery img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.race-gallery .tall img{aspect-ratio:3/4}
.race-other{max-width:var(--maxw);margin:0 auto;padding:clamp(3rem,6vw,4rem) clamp(1rem,5vw,3rem);border-top:1px solid var(--line)}
.race-other .kicker{margin-bottom:1.2rem}
.race-other-grid{display:flex;flex-wrap:wrap;gap:.8rem}
.race-other-grid a{display:inline-flex;align-items:center;gap:.6rem;padding:.7rem 1.1rem;border:1px solid var(--line);border-radius:2px;font-family:var(--font-display);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.02em;color:var(--text);transition:border-color .2s var(--ease),color .2s var(--ease)}
.race-other-grid a:hover{border-color:var(--red);color:var(--red)}
.race-other-grid a .o-dist{font-family:var(--font-body);font-weight:500;font-size:var(--text-xs);letter-spacing:.06em;color:var(--text-faint)}
@media(max-width:760px){.spec,.reward-grid{grid-template-columns:1fr}.log-grid{grid-template-columns:1fr}.race-gallery{grid-template-columns:1fr}}

/* ---------- reveal ---------- */
/* Content is visible by default. We only hide-and-animate reveals once JS has
   confirmed it can drive them (html.js-reveal), so content is never stranded
   invisible if a screenshot/validator captures mid-animation or JS is off. */
.js-reveal .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js-reveal .reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
/* tablet: keep five cards readable before the mobile grid kicks in */
@media (max-width:1100px) and (min-width:861px){
  .race-grid--five{gap:1rem}
  .race-grid--five .race-name{font-size:var(--text-lg)}
  .race-grid--five .race-desc{font-size:var(--text-sm)}
  .race-grid--five .stat-v{font-size:1.3rem}
  .race-grid--five .stat-l{font-size:.56rem;letter-spacing:.1em}
  .race-grid--five .race-stats{gap:.4rem}
  .race-grid--five .race-card-body{padding:1rem .9rem}
}
@media (max-width:860px){
  .nav-toggle{display:grid}
  .site-header .btn-red{display:none}
  .nav-enter{display:block}
  .nav{position:fixed;top:0;right:0;bottom:0;width:min(82vw,320px);flex-direction:column;align-items:stretch;gap:0;margin-left:0;padding:5.5rem 1.5rem 2rem;background:var(--ink-1);border-left:1px solid var(--line);box-shadow:-20px 0 60px rgba(0,0,0,.5);transform:translateX(100%);transition:transform .3s var(--ease),visibility .3s var(--ease);z-index:140;overflow-y:auto;visibility:hidden}
  .nav.open{transform:translateX(0);visibility:visible}
  .nav > a{padding:.9rem 0;border-bottom:1px solid var(--line);font-size:var(--text-base)}
  /* dropdown becomes inline accordion on mobile */
  .has-drop{border-bottom:1px solid var(--line)}
  .drop-toggle{width:100%;justify-content:space-between;padding:.9rem 0;font-size:var(--text-base)}
  .drop-menu{position:static;transform:none;min-width:0;width:100%;background:transparent;backdrop-filter:none;border:0;box-shadow:none;padding:0 0 .6rem;opacity:1;visibility:visible;pointer-events:none;max-height:0;overflow:hidden;transition:max-height .3s var(--ease)}
  .has-drop:hover .drop-menu{transform:none}
  .drop-menu.open{pointer-events:auto;max-height:480px}
  .drop-menu a{padding:.6rem .8rem;font-size:var(--text-sm)}
  /* mobile: 50/50 full width, then 50M+50K, then 25k+kids */
  .race-grid--five{grid-template-columns:repeat(2,1fr)}
  .race-grid--five .pos-5050{grid-column:1 / -1}
  .race-grid--five .pos-5050 .race-card-media{aspect-ratio:16/9}
  /* full-width 50/50 doesn't need reserved title/desc heights */
  .race-grid--five .pos-5050 .race-name{min-height:0}
  .race-grid--five .pos-5050 .race-desc{min-height:0}
  .weekend-layout,.story-grid{grid-template-columns:1fr}
  .story-media{aspect-ratio:16/10;max-height:340px;order:-1}
  .site-header{gap:1rem}
  .site-header .btn{padding:.6rem 1rem}
  .head-social{display:none}
  .nav-social{display:flex;gap:.7rem;padding-top:1.4rem}
  .nav-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;color:var(--text-muted);transition:color .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease)}
  .nav-social a:hover{color:#fff;background:var(--red);border-color:var(--red)}
}
@media (max-width:480px){
  .hero-count{gap:.8rem;padding:.7rem .9rem}
  .count-block{min-width:2.6rem}
  .brand-word{font-size:1rem}
}

/* ============================================================
   RULES PAGE
   ============================================================ */
.rules-hero{padding:calc(var(--space-32) + 2rem) clamp(1rem,4vw,3rem) var(--space-16);background:var(--ink-1);border-bottom:1px solid var(--line)}
.rules-hero-inner{max-width:var(--maxw);margin:0 auto}
.rules-hero h1{font-family:var(--font-display);font-size:var(--text-hero);line-height:.9;text-transform:uppercase;letter-spacing:.01em;margin:.4rem 0 1rem}
.rules-hero .kicker{margin-bottom:.4rem}
.rules-hero-sub{max-width:60ch;color:var(--text-muted);font-size:var(--text-lg)}

.rules-layout{max-width:var(--maxw);margin:0 auto;padding:var(--space-20) clamp(1rem,4vw,3rem) var(--space-32);display:grid;grid-template-columns:230px 1fr;gap:clamp(2rem,5vw,5rem);align-items:start}

.rules-nav{position:sticky;top:96px}
.rules-nav-label{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.9rem}
.rules-nav nav{display:flex;flex-direction:column;gap:.1rem;border-left:1px solid var(--line)}
.rules-nav nav a{display:block;padding:.5rem 0 .5rem 1rem;margin-left:-1px;border-left:2px solid transparent;color:var(--text-muted);font-size:var(--text-sm);line-height:1.3;transition:color .18s var(--ease),border-color .18s var(--ease)}
.rules-nav nav a:hover{color:var(--text);border-left-color:var(--red)}

.rules-content{min-width:0}
.rules-block{margin-bottom:var(--space-24)}
.rules-block:last-of-type{margin-bottom:var(--space-12)}
.rules-h2{display:flex;align-items:baseline;gap:1rem;font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;letter-spacing:.01em;line-height:1;margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--line);scroll-margin-top:100px}
.rules-block{scroll-margin-top:100px}
.rules-num{font-family:var(--font-display);color:var(--red);font-size:.85em;flex:none}
.rules-intro{color:var(--text-muted);font-size:var(--text-base);max-width:65ch;margin-bottom:var(--space-8)}

.rule{margin-bottom:var(--space-8)}
.rule:last-child{margin-bottom:0}
.rule h3{font-family:var(--font-body);font-weight:700;font-size:var(--text-base);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem}
.rule p{color:var(--text-muted);max-width:68ch}
.rule p strong{color:var(--text)}

.rule-list{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.7rem;max-width:68ch}
.rule-list li{position:relative;padding-left:1.5rem;color:var(--text-muted);line-height:1.5}
.rule-list li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;background:var(--red);border-radius:1px}
.rule-list li strong{color:var(--text)}

.rule-flag{margin-top:1rem;padding:1rem 1.25rem;background:color-mix(in srgb,var(--red) 8%,transparent);border-left:3px solid var(--red);color:var(--text-muted);max-width:none}
.rule-flag strong{color:var(--text)}

.rule-card{border:1px solid var(--line);border-radius:4px;padding:var(--space-8);margin-bottom:var(--space-6);background:var(--ink-1)}
.rule-card--yes{border-left:3px solid #2faa5b}
.rule-card--no{border-left:3px solid var(--red)}
.rule-card-head{display:flex;align-items:center;gap:.9rem;margin-bottom:1rem;flex-wrap:wrap}
.rule-card-head h3{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;letter-spacing:.02em;margin:0}
.rc-tag{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;padding:.3rem .65rem;border-radius:2px;flex:none}
.rc-tag--yes{background:#2faa5b;color:#fff}
.rc-tag--no{background:var(--red);color:#fff}

/* gear table */
.gear-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:4px;-webkit-overflow-scrolling:touch}
.gear-table{width:100%;border-collapse:collapse;min-width:520px}
.gear-table th,.gear-table td{padding:.85rem 1rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.gear-table thead th{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);background:var(--ink-2);white-space:nowrap}
.gear-table tbody tr:last-child td{border-bottom:none}
.gear-table td.g-item{font-weight:700;color:var(--text);white-space:nowrap}
.g-req,.g-cond,.g-adv,.g-x{display:inline-block;font-weight:700;font-size:var(--text-sm)}
.g-req{color:var(--red)}
.g-cond{color:#d98a00}
.g-adv{color:var(--text-muted)}
.g-x{color:var(--text-faint)}
.g-note{display:block;font-weight:400;font-size:var(--text-xs);color:var(--text-faint);margin-top:.25rem;line-height:1.3}
.rule-note,.rules-foot-note{color:var(--text-faint);font-size:var(--text-sm);max-width:70ch;margin-top:var(--space-6)}
.rules-foot-note{margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid var(--line)}
.rules-foot-note a,.rule-note a{color:var(--red)}

@media (max-width:860px){
  .rules-layout{grid-template-columns:1fr;gap:var(--space-8)}
  .rules-nav{position:static;border:1px solid var(--line);border-radius:4px;padding:1rem 1.25rem;background:var(--ink-1)}
  .rules-nav nav{flex-flow:row wrap;gap:.4rem 1rem;border-left:none}
  .rules-nav nav a{padding:.2rem 0;border-left:none;margin-left:0}
  .rules-nav nav a:hover{border-left:none}
  .rules-hero h1{font-size:clamp(3rem,18vw,5rem)}
}
@media (max-width:480px){
  .rule-card{padding:var(--space-6)}
}

/* ============ ACCOMMODATION (stay) ============ */
.stay-offer{max-width:var(--maxw);margin:0 auto;padding:clamp(1rem,3vw,2rem) clamp(1rem,5vw,3rem) clamp(3rem,6vw,4rem)}
.stay-offer-inner{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.stay-offer-head .section-title{margin:.5rem 0 1rem}
.stay-offer-sub{color:var(--text-muted);font-size:var(--text-base);line-height:1.6;max-width:54ch}
.stay-cta{display:flex;flex-wrap:wrap;gap:.9rem;margin:1.6rem 0 1rem}
.stay-fine{color:var(--text-faint);font-size:var(--text-sm);letter-spacing:.01em}
.stay-benefits{background:var(--ink-1);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:4px;padding:clamp(1.4rem,2.5vw,2rem)}
.stay-benefits-title{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;letter-spacing:.02em;color:var(--text);margin-bottom:.4rem}
.stay-list{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.7rem}
.stay-list li{position:relative;padding-left:1.5rem;color:var(--text-muted);line-height:1.5;font-size:var(--text-sm)}
.stay-list li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;background:var(--red);border-radius:1px}
.stay-policies{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:clamp(1.5rem,3vw,2.4rem)}
.stay-policy{background:var(--ink-1);border:1px solid var(--line);border-radius:4px;padding:clamp(1.2rem,2.2vw,1.6rem)}
.stay-policy h4{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:.5rem}
.stay-policy p{color:var(--text-muted);font-size:var(--text-sm);line-height:1.55}

.stay-local{max-width:var(--maxw);margin:0 auto;padding:clamp(3rem,6vw,4rem) clamp(1rem,5vw,3rem) clamp(4rem,8vw,6rem);border-top:1px solid var(--line)}
.stay-local-head{margin-bottom:clamp(1.6rem,3.5vw,2.6rem)}
.stay-local-head .section-title{margin:.5rem 0 .8rem}
.stay-local-sub{color:var(--text-muted);font-size:var(--text-base);max-width:54ch}
.local-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.4rem)}
.local-card{background:var(--ink-1);border:1px solid var(--line);border-radius:5px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .25s var(--ease),transform .25s var(--ease)}
.local-card:hover{border-color:color-mix(in srgb,var(--red) 50%,var(--line));transform:translateY(-3px)}
.local-card-img{aspect-ratio:4/3;overflow:hidden;background:var(--ink-2)}
.local-card-img img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.92) brightness(.94);transition:transform .5s var(--ease),filter .25s var(--ease)}
.local-card:hover .local-card-img img{transform:scale(1.05);filter:saturate(1) brightness(1)}
.local-card-body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.55rem}
.local-tag{align-self:flex-start;font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--red);border:1px solid color-mix(in srgb,var(--red) 40%,var(--line));border-radius:2px;padding:.18rem .5rem;line-height:1.2}
.local-card h3{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;letter-spacing:.01em;line-height:1.05;color:var(--text)}
.local-card p{color:var(--text-muted);font-size:var(--text-sm);line-height:1.55}
.stay-foot-note{color:var(--text-faint);font-size:var(--text-sm);margin-top:clamp(1.8rem,4vw,2.8rem);padding-top:var(--space-8);border-top:1px solid var(--line);max-width:70ch}
.stay-foot-note a{color:var(--red)}
.photo-credits{color:var(--text-faint);font-size:var(--text-xs);line-height:1.5;margin-top:.9rem;max-width:80ch;opacity:.7}

@media (max-width:860px){
  .stay-offer-inner{grid-template-columns:1fr;gap:2rem}
  .stay-policies{grid-template-columns:1fr}
  .local-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:560px){
  .local-grid{grid-template-columns:1fr}
}
@media (min-width:861px) and (max-width:1040px){
  .stay-policies{grid-template-columns:1fr 1fr}
}

/* ============ FOOTER SIGNUP (Sender) ============ */
.foot-signup{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;padding:clamp(2rem,4vw,2.8rem) 0;border-bottom:1px solid var(--line)}
.foot-signup-text .kicker{margin-bottom:.5rem}
.foot-signup-title{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;letter-spacing:.01em;line-height:1;color:var(--text);margin-bottom:.6rem}
.foot-signup-sub{color:var(--text-muted);font-size:var(--text-sm);line-height:1.55;max-width:46ch}
.foot-signup-form{min-width:0}
/* Native on-brand newsletter form */
.nl-form{display:flex;flex-direction:column;gap:.7rem;width:100%}
.nl-row{display:flex;gap:.6rem}
.nl-row .nl-input{flex:1 1 50%}
.nl-input{width:100%;min-width:0;background:var(--ink-2);border:1px solid var(--line);border-radius:2px;color:var(--text);font-family:var(--font-body);font-size:var(--text-sm);padding:.85rem 1rem;transition:border-color .18s var(--ease),background .18s var(--ease)}
.nl-input::placeholder{color:var(--text-faint)}
.nl-input:focus{outline:none;border-color:var(--red);background:var(--ink-3)}
.nl-btn{appearance:none;cursor:pointer;width:100%;background:var(--red);color:#fff;border:none;border-radius:2px;font-family:var(--font-display);font-size:var(--text-base);letter-spacing:.04em;text-transform:uppercase;padding:.9rem 1.4rem;transition:transform .18s var(--ease),filter .18s var(--ease)}
.nl-btn:hover{filter:brightness(1.08)}
.nl-btn:active{transform:translateY(1px)}
.nl-btn:disabled{opacity:.6;cursor:default;transform:none;filter:none}
.nl-msg{font-size:var(--text-sm);min-height:1.2em;margin:0}
.nl-msg.ok{color:#4ade80}
.nl-msg.err{color:var(--red)}
.nl-fine{color:var(--text-faint);font-size:var(--text-xs);letter-spacing:.02em;margin:0}
@media (max-width:760px){
  .foot-signup{grid-template-columns:1fr;gap:1.2rem;text-align:left}
  .nl-row{flex-direction:column}
}

/* ============ THE LEGEND ============ */
.legend-hero{position:relative;min-height:78vh;display:flex;align-items:flex-end;overflow:hidden}
.legend-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04)}
.legend-hero-ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,10,.55) 0%,rgba(8,8,10,.15) 38%,rgba(8,8,10,.82) 100%)}
.legend-hero-content{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;width:100%;color:#fff;padding:clamp(2.5rem,6vw,5rem) clamp(1rem,5vw,4rem) clamp(2.5rem,5vw,4rem)}
.legend-cn{font-family:var(--font-display);font-size:clamp(2.6rem,7vw,4.5rem);line-height:.9;color:var(--red);margin:.8rem 0 .2rem;letter-spacing:.04em}
.legend-hero-content h1{font-family:var(--font-display);font-size:clamp(3.4rem,12vw,8rem);line-height:.92;text-transform:uppercase;letter-spacing:.01em}
.legend-hero-content .statline{margin-top:.8rem;font-family:var(--font-body);font-weight:700;font-size:var(--text-sm);letter-spacing:.16em;text-transform:uppercase;color:#e6e6e6}

.legend-lead{font-family:var(--font-display)!important;font-size:var(--text-xl)!important;text-transform:uppercase;color:var(--text)!important;letter-spacing:.01em;line-height:1.05}

.legend-section{max-width:var(--maxw);margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) clamp(1rem,5vw,3rem);display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(1.8rem,5vw,4rem);align-items:center}
.legend-section--rev .legend-figure{order:2}
.legend-figure img{width:100%;height:auto;border-radius:6px;border:1px solid var(--line);display:block}
.legend-caption{margin-top:.7rem;font-size:var(--text-sm);color:var(--text-faint);font-style:italic;letter-spacing:.01em}
.legend-copy .section-title{margin:.5rem 0 1rem}
.legend-copy p{color:var(--text-muted);font-size:var(--text-base);line-height:1.65;margin-bottom:1rem}
.legend-quote,.legend-copy .legend-quote{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;color:var(--red);letter-spacing:.02em;line-height:1.1;margin-top:.4rem}

.legend-peaks{max-width:var(--maxw);margin:0 auto;padding:clamp(2.5rem,6vw,4rem) clamp(1rem,5vw,3rem);border-block:1px solid var(--line)}
.legend-peaks-head{margin-bottom:clamp(1.6rem,3.5vw,2.4rem);max-width:60ch}
.legend-peaks-head .section-title{margin:.5rem 0 .8rem}
.legend-peaks-sub{color:var(--text-muted);font-size:var(--text-base);line-height:1.6}
.peaks-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.peak{background:var(--ink-1);padding:clamp(1.1rem,2.2vw,1.5rem);display:flex;flex-direction:column;gap:.25rem;transition:background .25s var(--ease)}
.peak:hover{background:color-mix(in srgb,var(--red) 8%,var(--ink-1))}
.peak-n{font-family:var(--font-display);font-size:var(--text-sm);color:var(--red);letter-spacing:.08em}
.peak-name{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;color:var(--text);line-height:1.05}
.peak-cn{font-family:"Noto Sans TC",var(--font-body);font-size:var(--text-sm);color:var(--text-faint)}

.legend-cta{position:relative;overflow:hidden;margin-top:clamp(1rem,3vw,2rem)}
.legend-cta-bg{position:absolute;inset:0;background-size:cover;background-position:center 30%}
.legend-cta-ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,10,.55),rgba(8,8,10,.86))}
.legend-cta-content{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:clamp(3.5rem,8vw,6.5rem) clamp(1rem,5vw,3rem);color:#fff;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.4rem}
.legend-cta-content h2{font-family:var(--font-display);font-size:clamp(2.6rem,8vw,5.5rem);text-transform:uppercase;line-height:.95;letter-spacing:.01em}
.legend-cta-sub{color:#e6e6e6;font-size:var(--text-base);line-height:1.6;max-width:54ch;margin:.6rem 0 1.6rem}
.legend-cta-actions{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center}
.legend-cta .btn-ghost{border-color:#fff;color:#fff}
.legend-cta .btn-ghost:hover{background:#fff;color:var(--ink-0)}

@media (max-width:860px){
  .legend-section{grid-template-columns:1fr;gap:1.4rem}
  .legend-section--rev .legend-figure{order:0}
  .peaks-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:460px){
  .peaks-grid{grid-template-columns:1fr}
}

/* ============ GENERIC PAGE HERO (Past Editions / Travel / Elite) ============ */
.page-hero{position:relative;min-height:52vh;display:flex;align-items:flex-end;overflow:hidden}
.page-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.04)}
.page-hero-ov{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,10,.5) 0%,rgba(8,8,10,.2) 42%,rgba(8,8,10,.85) 100%)}
.page-hero-content{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;width:100%;color:#fff;padding:clamp(2.5rem,6vw,4.5rem) clamp(1rem,5vw,4rem) clamp(2.2rem,4vw,3.4rem)}
.page-hero-content h1{font-family:var(--font-display);font-size:clamp(2.8rem,9vw,6rem);line-height:.92;text-transform:uppercase;letter-spacing:.01em;margin-top:.7rem}
.page-hero-content .statline{margin-top:.8rem;font-family:var(--font-body);font-weight:700;font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;color:#e6e6e6;max-width:none}
.page-hero--tall{min-height:68vh}
.rules-hero--photo .rules-hero-sub{color:#f0f0f0;margin-top:.9rem}

.legend-note{font-size:var(--text-sm)!important;color:var(--text-faint)!important;line-height:1.6;border-top:1px solid var(--line);padding-top:1.2rem;margin-top:.4rem}

/* ============ PAST EDITIONS ============ */
.dragons-now{max-width:var(--maxw);margin:0 auto;padding:clamp(2rem,5vw,3.5rem) clamp(1rem,5vw,3rem)}
.dragons-now-head{margin-bottom:clamp(1.4rem,3vw,2rem)}
.dragons-now-head .section-title{margin:.4rem 0 0}
.dragons-now-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.5vw,1.5rem)}
.dragon-card{background:var(--ink-1);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:5px;padding:clamp(1.4rem,2.6vw,1.9rem);display:flex;flex-direction:column;gap:.5rem}
.dragon-cat{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint)}
.dragon-card h3{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;letter-spacing:.01em;line-height:1.02;color:var(--text)}
.dragon-time{font-family:var(--font-display);font-size:clamp(1.5rem,1.1rem + 1.4vw,2rem);color:var(--red);letter-spacing:.03em;line-height:1}
.dragon-note{color:var(--text-muted);font-size:var(--text-sm);line-height:1.55}

.results,.archive{max-width:var(--maxw);margin:0 auto;padding:clamp(2.2rem,5vw,3.5rem) clamp(1rem,5vw,3rem);border-top:1px solid var(--line)}
.results-head,.archive-head{margin-bottom:clamp(1.4rem,3vw,2.2rem);max-width:62ch}
.results-head .section-title,.archive-head .section-title{margin:.4rem 0 .7rem}
.results-sub{color:var(--text-muted);font-size:var(--text-sm);line-height:1.6}
.results-sub a{color:var(--red);font-weight:700}
.results-block{margin-bottom:clamp(1.8rem,4vw,2.8rem)}
.results-dist{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;color:var(--text);letter-spacing:.02em;margin-bottom:.9rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}
.results-tables{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.5vw,1.6rem)}
.rtable{width:100%;border-collapse:collapse;background:var(--ink-1);border:1px solid var(--line);border-radius:5px;overflow:hidden}
.rtable caption{caption-side:top;text-align:left;font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);padding:.7rem .9rem .55rem}
.rtable thead th{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);text-align:left;padding:.45rem .9rem;border-bottom:1px solid var(--line)}
.rtable thead th:first-child{width:2.6rem}
.rtable td{padding:.55rem .9rem;font-size:var(--text-sm);color:var(--text);border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);vertical-align:middle}
.rtable tbody tr:first-child td{border-top:none}
.rtable td:first-child{font-family:var(--font-display);color:var(--red);font-size:var(--text-base);width:2.6rem}
.rtable tbody tr:first-child td:first-child{color:var(--red)}

/* collapsible editions */
.edition{border:1px solid var(--line);border-radius:5px;background:var(--ink-1);margin-bottom:.8rem;overflow:hidden}
.edition summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:1rem;padding:1rem clamp(1rem,2.5vw,1.5rem);transition:background .2s var(--ease)}
.edition summary::-webkit-details-marker{display:none}
.edition summary:hover{background:color-mix(in srgb,var(--red) 6%,var(--ink-1))}
.edition-year{font-family:var(--font-display);font-size:var(--text-xl);color:var(--text);letter-spacing:.02em;line-height:1}
.edition-meta{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}
.edition-caret{width:20px;height:20px;color:var(--text-faint);margin-left:auto;transition:transform .25s var(--ease);flex-shrink:0}
.edition[open] .edition-caret{transform:rotate(180deg)}
.edition[open] summary{border-bottom:1px solid var(--line)}
.edition-body{padding:clamp(1rem,2.5vw,1.5rem)}
.edition-body .results-tables{grid-template-columns:repeat(3,1fr)}
.edition-body .rtable td{padding:.45rem .8rem}

/* ============ TRANSPORT ============ */
.transport-callout{background:var(--ink-1);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:5px;padding:1.2rem 1.4rem;margin-top:1.4rem}
.transport-callout p{font-size:var(--text-base)!important;color:var(--text)!important;margin-bottom:.6rem}
.transport-callout ul{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.5rem}
.transport-callout li{color:var(--text-muted);font-size:var(--text-sm);line-height:1.55}
.transport{max-width:var(--maxw);margin:0 auto;padding:clamp(2.2rem,5vw,3.5rem) clamp(1rem,5vw,3rem)}
.transport-head{margin-bottom:clamp(1.4rem,3vw,2.2rem);max-width:62ch}
.transport-head .section-title{margin:.4rem 0 .7rem}
.transport-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.5vw,1.5rem)}
.transport-card{background:var(--ink-1);border:1px solid var(--line);border-radius:5px;padding:clamp(1.4rem,2.6vw,1.9rem)}
.transport-dist{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;color:var(--text);letter-spacing:.02em;margin-bottom:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}
.transport-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1rem}
.transport-list li{color:var(--text-muted);font-size:var(--text-sm);line-height:1.55}
.t-label{display:block;font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:.3rem}

/* ============ TRAVEL & TRANSPORT (rebuilt) ============ */
.tp-intro{max-width:var(--maxw);margin:0 auto;padding:clamp(2.4rem,5vw,3.6rem) clamp(1rem,5vw,3rem) clamp(1rem,2vw,1.4rem)}
.tp-intro-inner{max-width:60ch}
.tp-lead{font-family:var(--font-display);font-size:var(--text-2xl);text-transform:uppercase;letter-spacing:.01em;line-height:1;color:var(--text);margin:.5rem 0 .9rem}
.tp-lead-sub{color:var(--text-muted);font-size:var(--text-lg);line-height:1.55}

.tp-modes{max-width:var(--maxw);margin:0 auto;padding:clamp(1rem,2vw,1.6rem) clamp(1rem,5vw,3rem) clamp(1.6rem,3vw,2.4rem)}
.tp-modes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.2vw,1.4rem)}
.tp-mode{background:var(--ink-1);border:1px solid var(--line);border-radius:6px;padding:clamp(1.5rem,2.6vw,2rem);display:flex;flex-direction:column;gap:.7rem;transition:border-color .2s var(--ease),transform .2s var(--ease)}
.tp-mode:hover{border-color:var(--red);transform:translateY(-3px)}
.tp-mode-ic{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red);margin-bottom:.3rem}
.tp-mode-ic svg{width:26px;height:26px}
.tp-mode-title{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;letter-spacing:.01em;line-height:1.05;color:var(--text)}
.tp-mode-text{color:var(--text-muted);font-size:var(--text-sm);line-height:1.6;flex:1}
.tp-mode-text strong{color:var(--text);font-weight:700}
.tp-mode-tag{margin-top:.3rem;font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}

.tp-note-band{display:flex;gap:1rem;align-items:flex-start;background:var(--ink-1);border:1px solid var(--line);border-left:3px solid var(--red);border-radius:6px;padding:clamp(1.2rem,2.4vw,1.6rem);margin-top:clamp(1.2rem,2.4vw,1.6rem)}
.tp-note-ic{flex-shrink:0;display:inline-flex;color:var(--red);margin-top:.1rem}
.tp-note-ic svg{width:24px;height:24px}
.tp-note-title{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:.35rem}
.tp-note-text{color:var(--text-muted);font-size:var(--text-sm);line-height:1.6;margin:0}

.tp-events{max-width:var(--maxw);margin:0 auto;padding:clamp(1.6rem,3vw,2.4rem) clamp(1rem,5vw,3rem) clamp(2.4rem,5vw,3.6rem);border-top:1px solid var(--line)}
.tp-events-head{margin-bottom:clamp(1.4rem,3vw,2rem);max-width:62ch}
.tp-events-head .section-title{margin:.4rem 0 .7rem}
.tp-event-list{display:flex;flex-direction:column;gap:clamp(.8rem,1.6vw,1.1rem)}
.tp-event{display:grid;grid-template-columns:minmax(170px,1fr) 1.4fr 1.4fr;gap:clamp(1rem,2.4vw,2rem);align-items:start;background:var(--ink-1);border:1px solid var(--line);border-radius:6px;padding:clamp(1.3rem,2.4vw,1.7rem) clamp(1.4rem,2.6vw,2rem)}
.tp-event-name{display:flex;flex-direction:column;gap:.25rem}
.tp-event-name h3{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;color:var(--text);letter-spacing:.02em;line-height:.95}
.tp-event-dist{font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.tp-event-leg{display:flex;flex-direction:column;gap:.45rem}
.tp-leg-tag{align-self:flex-start;font-family:var(--font-body);font-weight:700;font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;padding:.2rem .55rem;border-radius:2px;line-height:1.3}
.tp-leg-start{background:color-mix(in srgb,var(--red) 16%,transparent);color:var(--red)}
.tp-leg-finish{background:var(--ink-3);color:var(--text-muted);border:1px solid var(--line)}
.tp-event-leg p{color:var(--text-muted);font-size:var(--text-sm);line-height:1.55;margin:0}
.tp-event-leg p strong{color:var(--text);font-weight:700}

/* ============ ELITE & ITRA ============ */
.elite,.elite-tiers{max-width:var(--maxw);margin:0 auto;padding:clamp(2.2rem,5vw,3.5rem) clamp(1rem,5vw,3rem)}
.elite-tiers{border-top:1px solid var(--line)}
.elite-head{margin-bottom:clamp(1.4rem,3vw,2.2rem);max-width:62ch}
.elite-head .section-title{margin:.4rem 0 .7rem}
.elite-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.5vw,1.6rem);counter-reset:none}
.elite-step{background:var(--ink-1);border:1px solid var(--line);border-radius:5px;padding:clamp(1.4rem,2.6vw,1.9rem);display:flex;flex-direction:column;gap:.6rem}
.elite-n{font-family:var(--font-display);font-size:var(--text-xl);color:var(--red);letter-spacing:.04em;line-height:1}
.elite-step h3{font-family:var(--font-display);font-size:var(--text-lg);text-transform:uppercase;color:var(--text);letter-spacing:.01em;line-height:1.05}
.elite-step p{color:var(--text-muted);font-size:var(--text-sm);line-height:1.6}
.elite-step a{color:var(--red);font-weight:700}
.elite-tier-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.5vw,1.5rem)}
.elite-tier{background:var(--ink-1);border:1px solid var(--line);border-radius:5px;padding:clamp(1.4rem,2.6vw,1.9rem);display:flex;flex-direction:column;gap:.7rem}
.elite-tier--free{border-left:3px solid var(--red)}
.elite-tier h3{font-family:var(--font-display);font-size:var(--text-xl);text-transform:uppercase;color:var(--text);letter-spacing:.01em;line-height:1.05}
.elite-tier p{color:var(--text-muted);font-size:var(--text-sm);line-height:1.6}
.elite-fine{margin-top:1.4rem;color:var(--text-faint);font-size:var(--text-sm);font-style:italic}

@media (max-width:860px){
  .dragons-now-grid,.results-tables,.transport-grid,.elite-tier-grid{grid-template-columns:1fr}
  .edition-body .results-tables{grid-template-columns:1fr 1fr}
  .elite-steps{grid-template-columns:1fr}
  .tp-modes-grid{grid-template-columns:1fr}
  .tp-event{grid-template-columns:1fr;gap:1rem}
  .tp-event-name{flex-direction:row;align-items:baseline;gap:.7rem;padding-bottom:.6rem;border-bottom:1px solid var(--line)}
  .tp-lead-sub{font-size:var(--text-base)}
}
@media (max-width:540px){
  .edition-body .results-tables{grid-template-columns:1fr}
}
