:root {
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --text-3xl: clamp(2.5rem, 1rem + 4vw, 4.5rem);

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

  --radius-sm: .375rem; --radius-md: .5rem; --radius-lg: .875rem; --radius-full: 9999px;
  --transition-interactive: 180ms cubic-bezier(.16,1,.3,1);
  --content-wide: 1180px;
  --font-display: 'Zodiak', Georgia, serif;
  --font-body: 'Switzer', 'Helvetica Neue', sans-serif;
}

:root, [data-theme="light"] {
  --color-bg: #FBF7F0;
  --color-surface: #FFFDF9;
  --color-surface-offset: #F3ECE1;
  --color-border: #E0D5C4;
  --color-text: #241412;
  --color-text-muted: #6E5C52;
  --color-text-inverse: #FDF8F1;
  --color-primary: #6E1224;        /* deep burgundy */
  --color-primary-hover: #520D1B;
  --color-accent: #B0763A;         /* copper */
  --color-deep: #3A0A15;
  --shadow-md: 0 4px 14px rgba(58,10,21,.10);
  --shadow-lg: 0 18px 40px rgba(58,10,21,.16);
}
[data-theme="dark"] {
  --color-bg: #16100F;
  --color-surface: #1D1614;
  --color-surface-offset: #241A18;
  --color-border: #3A2C28;
  --color-text: #EDE4D8;
  --color-text-muted: #A79488;
  --color-text-inverse: #17100F;
  --color-primary: #E2879A;
  --color-primary-hover: #F0A0B0;
  --color-accent: #D6A164;
  --color-deep: #10090B;
  --shadow-md: 0 4px 14px rgba(0,0,0,.4);
  --shadow-lg: 0 18px 40px rgba(0,0,0,.5);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;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(--color-text);background:var(--color-bg)}
img,svg{display:block;max-width:100%;height:auto}
h1,h2,h3{text-wrap:balance;line-height:1.1}
p{text-wrap:pretty;max-width:66ch}
a{color:inherit}
button{cursor:pointer;background:none;border:none;font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}
::selection{background:rgba(176,118,58,.28)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
a,button,summary{transition:color var(--transition-interactive),background var(--transition-interactive),border-color var(--transition-interactive),opacity var(--transition-interactive)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.wrap{width:100%;max-width:var(--content-wide);margin-inline:auto;padding-inline:clamp(var(--space-5),5vw,var(--space-10))}
.eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.16em;font-weight:600;color:var(--color-accent);margin-bottom:var(--space-4)}
.eyebrow--light{color:#E7BD8B}
.h-xl{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;letter-spacing:-.01em}
.narrow{max-width:22ch}
.prose p + p{margin-top:var(--space-4)}
.prose{color:var(--color-text-muted)}
.prose--light{color:rgba(253,248,241,.8)}
.center{margin-inline:auto;text-align:center}

/* header */
.header{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);background:color-mix(in oklab,var(--color-bg) 86%,transparent);border-bottom:1px solid transparent}
.header--scrolled{border-bottom-color:var(--color-border)}
.header__inner{max-width:var(--content-wide);margin-inline:auto;padding:var(--space-3) clamp(var(--space-5),5vw,var(--space-10));display:flex;align-items:center;gap:var(--space-6)}
.brand{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--color-primary);margin-right:auto}
.brand__mark{width:72px;height:72px;flex:none;border-radius:50%;background:#fff}
.brand__text{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text);line-height:1.15;max-width:7.5em}
.brand__text span{display:block;color:var(--color-text-muted);font-weight:500}
.nav{display:flex;align-items:center;gap:var(--space-6)}
.nav a{font-size:var(--text-sm);text-decoration:none;color:var(--color-text-muted)}
.nav a:hover{color:var(--color-primary)}
.nav a.btn{color:var(--color-text-inverse)}
.toggle{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-muted)}
.toggle:hover{color:var(--color-primary);border-color:var(--color-primary)}
@media (max-width:900px){.nav a:not(.btn){display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--text-sm);font-weight:600;letter-spacing:.01em;text-decoration:none;border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-text-inverse);border:1px solid var(--color-primary)}
.btn:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}
.btn--sm{padding:var(--space-2) var(--space-4)}
.btn--lg{padding:var(--space-4) var(--space-8);font-size:var(--text-base)}
.btn--ghost{background:transparent;color:var(--color-text-inverse);border-color:rgba(253,248,241,.55)}
.btn--ghost:hover{background:rgba(253,248,241,.14);border-color:#FDF8F1}
.btn--light{background:#FDF8F1;color:#521018;border-color:#FDF8F1}
.btn--light:hover{background:#F0E2CE;border-color:#F0E2CE}

/* hero */
.hero{position:relative;min-height:min(88vh,760px);display:flex;align-items:flex-end;overflow:hidden}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(36,8,16,.45) 0%,rgba(36,8,16,.25) 38%,rgba(36,8,16,.86) 100%)}
.hero__content{position:relative;width:100%;max-width:var(--content-wide);margin-inline:auto;padding:clamp(var(--space-16),12vw,var(--space-32)) clamp(var(--space-5),5vw,var(--space-10)) clamp(var(--space-12),8vw,var(--space-20));color:#FDF8F1}
.hero .eyebrow{color:#E7BD8B}
.hero__title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:500;letter-spacing:-.02em;max-width:16ch}
.hero__title em{font-style:italic;color:#E7BD8B}
.hero__lede{margin-top:var(--space-6);font-size:var(--text-lg);color:rgba(253,248,241,.88);max-width:52ch}
.hero__actions{margin-top:var(--space-8);display:flex;flex-wrap:wrap;gap:var(--space-3)}
.hero__count{position:absolute;right:clamp(var(--space-5),5vw,var(--space-10));top:clamp(var(--space-10),9vw,var(--space-20));display:flex;align-items:center;gap:var(--space-3);color:#FDF8F1;background:rgba(36,8,16,.42);border:1px solid rgba(253,248,241,.28);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);backdrop-filter:blur(6px)}
.hero__count-num{font-family:var(--font-display);font-size:var(--text-xl);line-height:1;color:#E7BD8B}
.hero__count-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;line-height:1.3;color:rgba(253,248,241,.85)}
@media (max-width:760px){.hero{flex-direction:column;align-items:stretch}.hero__count{position:relative;margin:0 clamp(var(--space-5),5vw,var(--space-10)) var(--space-8);width:max-content;top:auto;right:auto}.brand__mark{width:56px;height:56px}.header__inner{gap:var(--space-3)}.brand__text{display:none}.hero__content{padding-bottom:var(--space-8)}}

/* sections */
.section{padding-block:clamp(var(--space-16),9vw,var(--space-32))}
.section--offset{background:var(--color-surface-offset)}
.grid-2{display:grid;gap:clamp(var(--space-8),5vw,var(--space-16));grid-template-columns:1fr}
@media (min-width:860px){.grid-2{grid-template-columns:1fr 1.05fr;align-items:start}}

.strip{background:var(--color-surface-offset);border-block:1px solid var(--color-border);padding-block:clamp(var(--space-10),6vw,var(--space-16))}
.strip__grid{display:grid;gap:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.strip__n{font-family:var(--font-display);font-size:var(--text-sm);color:var(--color-accent);letter-spacing:.1em}
.strip__grid h3{font-size:var(--text-lg);margin:var(--space-2) 0 var(--space-2)}
.strip__grid p{font-size:var(--text-sm);color:var(--color-text-muted)}

.cards{margin-top:var(--space-10);display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.card__body{padding:var(--space-6)}
.card__body h3{font-family:var(--font-display);font-size:var(--text-lg);margin-bottom:var(--space-2)}
.card__body p{font-size:var(--text-sm);color:var(--color-text-muted)}

/* race */
.benefits__intro{margin-top:var(--space-5);color:var(--color-text-muted);max-width:62ch}
.benefits__columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10);margin-top:var(--space-10)}
.benefits__group{border-top:2px solid var(--color-primary);padding-top:var(--space-6)}
.benefits__group--planned{border-top-color:var(--color-accent)}
.benefits__status{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-bottom:var(--space-3)}
.benefits__group>h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500}
.benefits__list{list-style:none;margin-top:var(--space-6);display:grid;gap:var(--space-5)}
.benefits__list h4{font-size:var(--text-base);font-weight:600;line-height:1.4}
.benefits__list p{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-1)}
.benefits__cta{display:flex;align-items:center;gap:var(--space-8);border-top:1px solid var(--color-border);padding-top:var(--space-8);margin-top:var(--space-10)}
.benefits__cta h3{font-size:var(--text-lg);line-height:1.3}
.benefits__cta p{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-3)}
.benefits__cta .btn{flex-shrink:0}
@media(max-width:760px){.benefits__columns{grid-template-columns:1fr}.benefits__cta{flex-direction:column;align-items:flex-start}}
.race{background:var(--color-deep);color:#FDF8F1;padding-block:clamp(var(--space-16),9vw,var(--space-32))}
.race .h-xl{color:#FDF8F1}
.race__date{color:#E7BD8B;font-style:italic}
.race .prose{margin-top:var(--space-5)}
.race .btn{margin-top:var(--space-8)}
.facts{list-style:none;display:grid;gap:var(--space-4)}
.facts li{display:grid;gap:var(--space-1);padding-bottom:var(--space-4);border-bottom:1px solid rgba(253,248,241,.18)}
.facts span{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:#E7BD8B}
.facts strong{font-weight:500;font-size:var(--text-base)}

/* timeline */
.timeline{list-style:none;margin-top:var(--space-12);display:grid;gap:var(--space-8);border-left:1px solid var(--color-border);padding-left:clamp(var(--space-5),4vw,var(--space-10))}
.timeline li{position:relative}
.timeline li::before{content:"";position:absolute;left:calc(-1 * clamp(var(--space-5),4vw,var(--space-10)) - 5px);top:.55em;width:9px;height:9px;border-radius:var(--radius-full);background:var(--color-accent)}
.timeline__when{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.14em;color:var(--color-accent);font-weight:600}
.timeline h3{font-family:var(--font-display);font-size:var(--text-lg);margin:var(--space-2) 0 var(--space-2)}
.timeline p{font-size:var(--text-sm);color:var(--color-text-muted)}

/* people */
.people{margin-top:var(--space-10);display:grid;gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.person{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center}
.person span{display:grid;place-items:center;width:56px;height:56px;margin:0 auto var(--space-4);border-radius:var(--radius-full);background:var(--color-primary);color:var(--color-text-inverse);font-family:var(--font-display);font-size:var(--text-base);letter-spacing:.04em}
.person h3{font-size:var(--text-lg)}
.person p{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;margin-top:var(--space-1)}
.note{margin-top:var(--space-8);font-size:var(--text-sm);color:var(--color-text-muted);max-width:62ch}

/* join */
.join{background:var(--color-primary);color:#FDF8F1;padding-block:clamp(var(--space-16),9vw,var(--space-24))}
[data-theme="dark"] .join{background:#4C0E1C}
.join__inner{text-align:center;display:grid;justify-items:center}
.join .h-xl{color:#FDF8F1}
.join .prose{margin-top:var(--space-5);max-width:58ch}
.join .btn{margin-top:var(--space-8)}
.join__meta{margin-top:var(--space-6);font-size:var(--text-sm);color:rgba(253,248,241,.78)}
.join__meta a{color:#F0DCC0}

/* faq */
.faq{margin-top:var(--space-10);border-top:1px solid var(--color-border);max-width:760px}
.faq details{border-bottom:1px solid var(--color-border)}
.faq summary{cursor:pointer;list-style:none;padding:var(--space-5) var(--space-8) var(--space-5) 0;font-size:var(--text-base);font-weight:600;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);color:var(--color-accent);font-size:var(--text-lg);line-height:1}
.faq details[open] summary::after{content:"–"}
.faq summary:hover{color:var(--color-primary)}
.faq p{padding:0 var(--space-8) var(--space-6) 0;font-size:var(--text-sm);color:var(--color-text-muted)}

/* footer */
.footer{background:var(--color-surface-offset);border-top:1px solid var(--color-border);padding-block:var(--space-12)}
.footer__inner{display:grid;gap:var(--space-6)}
.footer__logo{width:168px;height:168px;border-radius:50%;background:#fff}
.footer__brand{font-family:var(--font-display);font-size:var(--text-lg)}
.footer__tag{font-size:var(--text-sm);color:var(--color-accent)}
.footer__nav{display:flex;flex-wrap:wrap;gap:var(--space-5)}
.footer__nav a{font-size:var(--text-sm);color:var(--color-text-muted);text-decoration:none}
.footer__nav a:hover{color:var(--color-primary)}
.footer__fine{font-size:var(--text-xs);color:var(--color-text-muted);max-width:80ch}
.footer__fine a{color:var(--color-text-muted)}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}
[data-reveal].is-in{opacity:1;transform:none}
