@font-face{font-family:Barlow;font-weight:600;font-display:swap;src:url(../fonts/BarlowCondensed-600-latin.woff2) format("woff2")}
@font-face{font-family:Barlow;font-weight:700;font-display:swap;src:url(../fonts/BarlowCondensed-700-latin.woff2) format("woff2")}
@font-face{font-family:Barlow;font-weight:800;font-display:swap;src:url(../fonts/BarlowCondensed-800-latin.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:400;font-display:swap;src:url(../fonts/Inter-400-latin.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:500;font-display:swap;src:url(../fonts/Inter-500-latin.woff2) format("woff2")}
@font-face{font-family:Inter;font-weight:600;font-display:swap;src:url(../fonts/Inter-600-latin.woff2) format("woff2")}
:root{--navy:#152B76;--navy9:#0A1438;--night:#060B20;--red:#B01116;--red2:#E0373C;--saffron:#F2B24C;--salt:#F7F5F0;--ink:#101a3c;--line:#ffffff33;
 --disp:Barlow,"Arial Narrow",Impact,sans-serif;--body:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;--pad:clamp(20px,5vw,72px);--railw:120px;--fg:#fff}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--night)}
body{margin:0;background:transparent;color:var(--fg);font:400 clamp(16px,1.15vw,19px)/1.55 var(--body);-webkit-font-smoothing:antialiased;overflow-x:clip}
body.ink-dark{--fg:var(--ink)}
img,video{display:block;max-width:100%}
a{color:inherit}
h1,h2{font-family:var(--disp);font-weight:800;text-transform:uppercase;letter-spacing:.005em;line-height:.95;margin:0 0 .35em}
h1{font-size:min(clamp(52px,8.6vw,150px),14.5vh)}
h2{font-size:min(clamp(40px,6.4vw,104px),13vh)}
p{margin:0 0 .8em}
.eyebrow,.km,.next-k{font:700 clamp(13px,1vw,16px)/1.2 var(--disp);letter-spacing:.2em;text-transform:uppercase;color:var(--saffron);margin:0 0 .9em}
.small{font-size:.85em;opacity:.75}
.lede{font-size:clamp(18px,1.6vw,24px);line-height:1.45;max-width:34em}
.btn{display:inline-block;font:700 clamp(16px,1.15vw,19px)/1 var(--disp);letter-spacing:.09em;text-transform:uppercase;text-decoration:none;color:#fff;background:var(--red);padding:.82em 1.25em;border-radius:3px;transition:background .2s,transform .2s;white-space:nowrap}
.btn:hover{background:var(--red2);transform:translateY(-1px)}
.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--saffron);outline-offset:3px}
.btn-big{font-size:clamp(20px,1.7vw,26px)}
.btn-line{background:none;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink);font-size:clamp(20px,1.7vw,26px)}
.btn-line:hover{background:var(--ink);color:#fff}

#sky{position:fixed;inset:0;z-index:-2;background:var(--night)}
#route{position:fixed;inset:0;width:100%;height:100%;z-index:6;pointer-events:none}

.top{position:fixed;z-index:30;top:0;left:0;right:0;display:flex;align-items:center;gap:clamp(14px,2.4vw,36px);padding:12px var(--pad);transition:transform .35s,background .35s}
.brand{display:block;margin-right:auto;width:clamp(52px,4.6vw,70px)}
.brand img{width:100%;height:auto}
.brand-c{display:none}.brand-w{display:block}
body.ink-dark .brand-c{display:block}body.ink-dark .brand-w{display:none}
.nav{display:flex;gap:clamp(14px,2vw,30px)}
.nav a{font:600 clamp(15px,1.1vw,18px)/1 var(--disp);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--fg);opacity:.85}
.nav a:hover{opacity:1}
.top .btn{padding:.62em 1em}
body.quiet .top,body.quiet .rail,body.quiet .bib{opacity:0;pointer-events:none}
body.done .bib,body.done .rail{opacity:0;pointer-events:none}
.ink-dark .beat{text-shadow:none}
.top,.rail,.bib{transition:opacity .8s}

.rail{position:fixed;z-index:20;right:clamp(10px,1.4vw,22px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:2px}
.rail a{display:flex;justify-content:flex-end;align-items:center;gap:8px;text-decoration:none;color:var(--fg);font:600 12px/1 var(--disp);letter-spacing:.08em;padding:6px 0;opacity:.55}
.rail a i{display:block;width:12px;height:2px;background:currentColor;transition:width .3s}
.rail a span{opacity:0;transform:translateX(6px);transition:.25s;text-transform:uppercase;white-space:nowrap;background:#0008;color:#fff;padding:3px 6px;border-radius:2px}
.rail a:hover span,.rail a:focus-visible span{opacity:1;transform:none}
.rail a.on{opacity:1}.rail a.on i{width:26px;background:var(--saffron)}

.bib{position:fixed;z-index:20;left:var(--pad);bottom:max(16px,env(safe-area-inset-bottom));display:flex;gap:14px;background:#fff;color:var(--navy);border-radius:4px;padding:7px 12px 6px;box-shadow:0 6px 24px #0005;font-family:var(--disp)}
.bib div{display:flex;align-items:baseline;gap:4px}
.bib b{font-weight:800;font-size:26px;line-height:1;font-variant-numeric:tabular-nums}
.bib span{font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--red)}

.ch{position:relative}
.scene{height:calc(var(--len,300)*1vh)}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.film,.film .layer{position:absolute;inset:0}
.layer{width:100%;height:100%;object-fit:cover;object-position:var(--o,50% 50%);opacity:0;will-change:opacity,transform}
.layer.on{opacity:1}
.veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#060b2070 0,#060b2000 26%,#060b2000 48%,#060b20cc 100%)}
.veil-hero{background:linear-gradient(95deg,#060b20c4 0,#060b2070 38%,#060b2000 66%),linear-gradient(180deg,#060b2080 0,#060b2000 30%,#060b2000 70%,#060b2099 100%)}

.beat{position:absolute;z-index:4;left:calc(var(--pad) + 26px);right:var(--railw);bottom:clamp(84px,14vh,150px);max-width:min(46em,62vw);opacity:0;transform:translateY(22px);text-shadow:0 1px 18px #060b2099;will-change:opacity,transform}
.beat p{font-size:clamp(17px,1.5vw,23px);line-height:1.45}
.beat.beat-low{max-width:min(36em,56vw)}
.beat-side{left:auto;right:var(--railw);top:50%;bottom:auto;margin-top:-6em;width:min(30em,38vw)}
.beat-side h2{font-size:clamp(38px,4.8vw,80px)}
.beat-left{left:calc(var(--pad) + 26px);right:auto}
.terrain::after{content:"";position:absolute;inset:0;background:linear-gradient(270deg,#060b20d0 0,#060b2000 44%);pointer-events:none}
.beat-top{top:clamp(90px,15vh,150px);bottom:auto}
.beat-hero{bottom:clamp(76px,11vh,120px);max-width:min(58em,80vw)}
.beat-hero .lede{margin-bottom:1.2em}
.beat .date{font:800 clamp(40px,4.4vw,72px)/1 var(--disp);color:var(--saffron);margin:0 0 .1em!important}
.beat .blocks{font:700 clamp(24px,2.7vw,44px)/1.15 var(--disp);text-transform:uppercase;letter-spacing:.02em}
.next{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}
.next .next-k{margin:0;width:100%}
.next strong{font:700 clamp(20px,2vw,30px)/1.1 var(--disp);letter-spacing:.02em}

.terrain canvas{position:absolute;inset:0;width:100%;height:100%}
.terrain-fb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}
.no-gl .terrain-fb{display:block}.no-gl #terrain{display:none}
#labels{position:absolute;inset:0;z-index:2}
#labels span{position:absolute;left:0;top:0;font:700 clamp(12px,1vw,15px)/1 var(--disp);letter-spacing:.14em;text-transform:uppercase;color:#fff;white-space:nowrap;text-shadow:0 0 8px #060b20,0 0 2px #060b20;will-change:transform,opacity}
#labels span.city{color:var(--saffron);font-size:clamp(15px,1.3vw,19px)}
#labels span.city::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--saffron);margin-right:6px;box-shadow:0 0 0 4px #f2b24c44}
#labels span.big{font-size:clamp(14px,1.5vw,22px);letter-spacing:.3em;opacity:.8}
#labels span.salt{color:var(--navy);text-shadow:0 0 8px #fff}

.strata{overflow:hidden;background:#3a2a22}
.strata-col{position:absolute;left:0;right:0;top:0;will-change:transform}
.strata-col img{width:100%;height:auto;min-height:62vh;object-fit:cover;display:block;margin-top:-3vh;-webkit-mask:linear-gradient(180deg,transparent,#000 6vh,#000 calc(100% - 6vh),transparent);mask:linear-gradient(180deg,transparent,#000 6vh,#000 calc(100% - 6vh),transparent)}
.depth{position:absolute;left:calc(var(--pad) - 6px);top:18vh;bottom:18vh;width:64px;border-left:2px solid #fff9;display:flex;flex-direction:column;justify-content:space-between;font:700 13px/1 var(--disp);letter-spacing:.14em;text-transform:uppercase;padding-left:10px;text-shadow:0 0 6px #000}
.depth i{position:absolute;left:-7px;top:0;width:12px;height:12px;border-radius:50%;background:var(--saffron)}
.faults{background:#060b20}.faults svg{position:absolute;inset:0;width:100%;height:100%}

.art{position:absolute;inset:0;display:flex;align-items:center;justify-content:flex-start;padding:12vh 46vw 7vh calc(var(--pad) + 24px)}
.art svg{width:100%;height:100%;overflow:visible}
.art-map{padding:0;color:#cfe0ff}
.art-map svg{position:absolute;inset:0 -6vw 0 16vw;width:90vw}
.art-wide{padding:0}
#runway{padding:30vh var(--railw) 6vh var(--pad)}
#terraces svg{position:absolute;inset:0}
.pond{fill:#5cb8f033;stroke:#5cb8f088;stroke-width:1}
.lake{fill:#5cb8f0cc;stroke:#fff;stroke-width:1.5}
.maplabel text{font:700 24px var(--disp);letter-spacing:.14em;text-transform:uppercase;fill:#fff}
.maplabel .hill{fill:var(--saffron)}.maplabel circle{fill:var(--red2);stroke:#fff;stroke-width:2}

#mirrors{display:grid;grid-template-columns:repeat(var(--mc,10),1fr);grid-template-rows:repeat(var(--mr,6),1fr);gap:0;perspective:900px;background:#120c08}
#mirrors i{display:block;background-size:calc(var(--mc,10)*100%) calc(var(--mr,6)*100%);will-change:transform,filter;backface-visibility:hidden}

.still{min-height:190vh;background:#07090f;color:#e8e6e1;display:flex;align-items:center}
.still-in{padding:32vh var(--pad);max-width:44em;margin:0 auto;font-size:clamp(19px,1.7vw,26px);line-height:1.6}
.still-in p{margin:0 0 1.6em}
.still-t{font:600 clamp(30px,3.6vw,56px)/1.15 var(--disp);letter-spacing:.02em;margin-bottom:.3em!important}
.still-in .still-t+p:not(.still-t){margin-top:2em}

.finish{background:var(--salt);color:var(--ink);--fg:var(--ink)}
.finish-in{padding:16vh var(--pad) 8vh;max-width:1400px;margin:0 auto}
.finish .km{color:var(--red)}
.finish h2{font-size:clamp(46px,8vw,128px);color:var(--navy)}
.bibs{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.6vw,22px);margin:6vh 0}
.bibcard{position:relative;background:#fff;border:2px solid var(--navy);border-radius:6px;padding:clamp(14px,2vw,26px) clamp(14px,2vw,26px) clamp(10px,1.4vw,18px);text-align:center;color:var(--navy)}
.bibcard::before,.bibcard::after{content:"";position:absolute;top:8px;width:8px;height:8px;border-radius:50%;background:var(--salt);box-shadow:inset 0 0 0 2px var(--navy)}
.bibcard::before{left:8px}.bibcard::after{right:8px}
.bibcard b{display:block;font:800 clamp(52px,7.4vw,120px)/1 var(--disp);font-variant-numeric:tabular-nums}
.bibcard span{font:700 clamp(13px,1.1vw,17px)/1.1 var(--disp);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.clubpic{margin:0 0 8vh}.clubpic img{width:100%;height:auto;aspect-ratio:21/9;object-fit:cover;border-radius:6px}
.clubpic figcaption{margin-top:.8em;font-size:clamp(17px,1.4vw,21px);max-width:38em}
.cta{background:var(--navy);color:#fff;border-radius:8px;padding:clamp(28px,5vw,72px);margin-bottom:6vh}
.cta .next-k{color:var(--saffron)}
.cta-big{font:800 clamp(44px,7.6vw,120px)/.98 var(--disp);text-transform:uppercase;margin:0 0 .4em}
.cta-b{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:1em}
.cta .btn-line{color:#fff;box-shadow:inset 0 0 0 2px #fff}.cta .btn-line:hover{background:#fff;color:var(--navy)}
.more{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,18px)}
.more a{display:block;text-decoration:none;border-top:3px solid var(--navy);padding:12px 0}
.more b{display:block;font:800 clamp(22px,2vw,32px)/1.05 var(--disp);text-transform:uppercase;color:var(--navy)}
.more span{font-size:.9em;opacity:.75}
.more a:hover b{color:var(--red)}
.foot{padding:6vh var(--pad) calc(6vh + 40px);max-width:1400px;margin:0 auto;border-top:1px solid #152b7622}
.foot img{width:120px;height:auto;margin-bottom:1.2em}
.foot-l{display:flex;flex-wrap:wrap;gap:8px 22px;margin-bottom:1.4em}
.foot-l a{font:600 17px/1.2 var(--disp);letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.src{font-size:.86em;max-width:52em;margin-bottom:1em}.src summary{cursor:pointer;font-weight:600}
.src p{margin:.7em 0;opacity:.8}

#intro{position:fixed;inset:0;z-index:50;background:var(--night);display:none;place-items:center;transition:opacity .7s}
.js #intro.play{display:grid}
#intro.done{opacity:0;pointer-events:none}
.intro-logo{width:min(46vw,300px);clip-path:inset(0 100% 0 0);animation:wipe 2s cubic-bezier(.65,0,.3,1) .25s forwards}
.intro-logo img{width:100%;height:auto}
.intro-line{position:absolute;left:0;top:calc(50% + min(23vw,150px) + 26px);height:3px;width:100%;background:var(--red2);transform-origin:0 50%;transform:scaleX(0);animation:line 2s cubic-bezier(.65,0,.3,1) .25s forwards}
.intro-skip{position:absolute;right:20px;bottom:20px;background:none;border:0;color:#fff9;font:600 15px var(--disp);letter-spacing:.14em;text-transform:uppercase;padding:12px;cursor:pointer}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes line{to{transform:scaleX(1)}}

@media (max-width:860px){
 :root{--railw:20px}
 .nav,.rail{display:none}
 .brand{width:50px}
 #km0 video{object-position:26% 50%;height:66%;transform-origin:50% 0}
 #km0 .veil-hero{background:linear-gradient(180deg,#060b2070 0,#060b2000 22%,#060b2000 42%,#060b20 66%)}
 #km0 .film{background:#060b20}
 .beat,.beat.beat-low,.beat-side,.beat-left,.beat-top,.beat-hero{left:44px;right:20px;width:auto;max-width:none;top:auto;margin-top:0;bottom:calc(74px + env(safe-area-inset-bottom))}
 .beat-top{top:84px;bottom:auto}
 .beat p{font-size:17px}
 .beat-side h2{font-size:clamp(38px,11vw,60px)}
 .veil{background:linear-gradient(180deg,#060b2060 0,#060b2000 22%,#060b2010 42%,#060b20e6 86%)}
 .art{padding:64px 12px 44vh 40px}
 .art-map{padding:0}
 .art-map svg{inset:0;width:100%}
 #runway{padding:44vh 16px 16vh 40px}
 .bib{left:auto;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:5px 9px 4px;gap:10px}
 .bib b{font-size:20px}.bib span{font-size:10px}
 .bibs,.more{grid-template-columns:repeat(2,1fr)}
 .depth{left:12px;width:20px;padding-left:0}.depth span{display:none}
 .clubpic img{aspect-ratio:4/3}
}
/* No motion, or no script: everything reads in plain order. */
@media (prefers-reduced-motion:reduce){.scene{height:auto!important}.stage{position:relative;height:auto;overflow:visible}.film{position:relative;display:block}.film .layer{position:relative;opacity:1!important;transform:none!important;height:60vh}.terrain{display:none}.veil{display:none}.beat{position:relative;left:auto;right:auto;top:auto;bottom:auto;margin:6vh var(--pad);width:auto;max-width:44em;opacity:1!important;transform:none!important}.art{position:relative;height:60vh}#route,.bib,#intro{display:none!important}.strata,.faults,#mirrors{display:none}.intro-logo,.intro-line{animation:none}}
.no-js .scene{height:auto}.no-js .stage{position:relative;height:auto;overflow:visible}.no-js .film{position:relative}.no-js .film .layer{position:relative;opacity:1;height:60vh}.no-js .veil,.no-js #route,.no-js .bib,.no-js .terrain,.no-js .strata,.no-js .faults{display:none}.no-js .beat{position:relative;left:auto;right:auto;bottom:auto;top:auto;margin:6vh var(--pad);width:auto;opacity:1;transform:none}.no-js .art{position:relative;height:60vh}
