@font-face{font-family:"Barlow Condensed";src:url("fonts/barlow_condensed_bold_site.woff2") format("woff2");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Noto Sans";src:url("fonts/noto_sans_site.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}

/* ───────── Tokens ───────── */
:root{
  color-scheme:dark;
  --page:#101711;--surface:#1b251c;--surface-2:#243027;--deep:#0b110c;
  --paper:#f1f3e8;--muted:#bfcbba;--quiet:#a7b7a3;
  --lime:#d5f16c;--lime-ink:#142013;
  --line:rgba(236,244,224,.16);--line-strong:rgba(236,244,224,.34);
  --display:"Barlow Condensed","Arial Narrow",sans-serif;--body:"Noto Sans",system-ui,sans-serif;
  --measure:86rem;--gutter:clamp(1rem,4vw,3rem);
  --ease:cubic-bezier(.16,1,.3,1);--ease-io:cubic-bezier(.65,0,.35,1);
  --label:.75rem;--meta:.8125rem;--support:.875rem;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:6.5rem;background:var(--page);scrollbar-color:var(--lime) var(--page);scrollbar-width:thin}
body{min-width:20rem;margin:0;overflow-x:clip;color:var(--paper);background:var(--page);font-family:var(--body);font-size:1rem;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
::selection{color:var(--lime-ink);background:var(--lime)}
:focus-visible{outline:2px solid var(--lime);outline-offset:4px}
a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.22em}
img,svg{display:block;max-width:100%}
figure,p,h1,h2,h3,ol,ul{margin-top:0}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:.96;letter-spacing:-.02em;text-wrap:balance}
h1{font-size:clamp(3.7rem,9.4vw,6rem);letter-spacing:-.025em}
h2{font-size:clamp(2.9rem,5.6vw,5rem)}
h3{font-size:clamp(1.9rem,3vw,2.9rem)}
.skip-link{position:absolute;z-index:80;top:.7rem;left:.7rem;padding:.7rem 1rem;transform:translateY(-180%);color:var(--lime-ink);background:var(--lime);font-weight:800}.skip-link:focus{transform:translateY(0)}

/* ───────── Motion primitives (only active when site.js is running) ───────── */
.js [data-split]:not(.scrub) .w{display:inline-block;overflow:hidden;vertical-align:top;padding-block:.07em .12em;margin-block:-.07em -.12em}
.js [data-split]:not(.scrub) .wi{display:inline-block;opacity:0;filter:blur(.14em);transform:translateY(112%) rotate(4deg);transform-origin:0 100%;transition:transform 1s var(--ease) calc(var(--i)*55ms + var(--d,0ms)),opacity .55s ease calc(var(--i)*55ms + var(--d,0ms)),filter .8s ease calc(var(--i)*55ms + var(--d,0ms))}
.js [data-split].in:not(.scrub) .wi{opacity:1;filter:none;transform:none}
.scrub .w,.scrub .wi{display:inline}
.scrub .wi{opacity:calc(.2 + .8*clamp(0,calc(var(--p,1)*(var(--n) + 5) - var(--i)),1))}
.js .rv{opacity:0;translate:0 1.6rem;transition:opacity .9s ease var(--d,0ms),translate 1.1s var(--ease) var(--d,0ms),scale 1.1s var(--ease) var(--d,0ms)}
.js .rv.in{opacity:1;translate:0 0}
.js .rv-l{translate:-3.5rem 0}.js .rv-r{translate:3.5rem 0}
.js .rv-pop{translate:0 1rem;scale:.82}.js .rv-pop.in{scale:1}
@keyframes bob{50%{transform:translateY(-.55rem)}}
@keyframes ping{0%{transform:scale(.4);opacity:.9}100%{transform:scale(2.4);opacity:0}}
@keyframes tick{to{transform:translateX(-50%)}}
@keyframes wave{from{transform:scaleY(.18)}to{transform:scaleY(1)}}
@keyframes draw{to{stroke-dashoffset:0}}

/* ───────── Floating masthead ───────── */
.masthead{position:fixed;z-index:60;top:max(.8rem,env(safe-area-inset-top));left:50%;width:min(100% - 1.6rem,66rem);translate:-50% 0;border:1px solid var(--line-strong);background:rgba(16,23,17,.78);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);box-shadow:0 1rem 2.4rem rgba(0,0,0,.35)}
.masthead::after{position:absolute;right:-1px;bottom:-1px;left:-1px;height:2px;background:var(--lime);transform:scaleX(var(--pg,0));transform-origin:0 50%;content:""}
.masthead-inner{display:flex;min-height:3.6rem;align-items:center;justify-content:space-between;gap:1.5rem;padding:.45rem .6rem .45rem 1rem}
.brand{display:inline-flex;align-items:center;gap:.65rem;flex:none;color:var(--paper);font-family:var(--display);font-size:1.5rem;letter-spacing:.075em;line-height:1;text-decoration:none}.brand img{flex:none;border-radius:.4rem}
.masthead nav{display:flex;align-items:center;gap:clamp(.9rem,2.2vw,2rem)}
.masthead nav a{color:var(--muted);font-size:.88rem;font-weight:700;text-decoration:none;transition:color .2s ease}.masthead nav a:hover{color:var(--lime)}
.masthead nav .nav-download{display:inline-flex;min-height:2.7rem;align-items:center;padding:.5rem 1rem;color:var(--lime-ink);background:var(--lime);white-space:nowrap;transition:background-color .2s ease,transform .3s var(--ease)}.masthead nav .nav-download:hover{color:var(--lime-ink);background:#e9ffa6;transform:translateY(-1px)}

/* ───────── Buttons & links ───────── */
.button{display:inline-flex;min-height:3.7rem;align-items:center;justify-content:center;gap:1.1rem;padding:.85rem 1.4rem;border:1px solid transparent;font-weight:800;line-height:1.2;text-decoration:none;transition:background-color .2s ease,color .2s ease,transform .35s var(--ease),translate .5s var(--ease),box-shadow .35s var(--ease)}
.button:hover{transform:translateY(-3px);box-shadow:0 .9rem 1.8rem rgba(0,0,0,.3)}
.button svg{width:1.2rem;height:1.2rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--ease)}.button:hover svg{transform:translateX(.25rem)}
.button-primary{color:var(--lime-ink);background:var(--lime)}.button-primary:hover{color:var(--lime-ink);background:#e9ffa6}
.text-link{display:inline-flex;align-items:baseline;gap:.5rem;color:var(--lime);font-weight:800;text-decoration:none;transition:color .2s ease,gap .3s var(--ease)}.text-link:hover{color:#ebffb0;gap:.8rem}

/* ───────── Hero ───────── */
.hero{padding:6.4rem var(--gutter) 0}
.hero-panel{position:relative;isolation:isolate;width:min(100%,92rem);margin-inline:auto;padding:clamp(4.5rem,8vw,7.5rem) clamp(1rem,4vw,4rem) 0;border:1px solid var(--line);background:var(--deep);text-align:center}
.hero-field{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.hero-field::before{position:absolute;inset:0;background:url("assets/landing/materials/old_west_night.png") 0 0/128px 128px;opacity:.07;content:"";-webkit-mask-image:radial-gradient(70% 80% at 50% 100%,#000,transparent);mask-image:radial-gradient(70% 80% at 50% 100%,#000,transparent)}
.hero-field::after{position:absolute;inset:auto -10% -30% -10%;height:80%;background:radial-gradient(50% 60% at 50% 70%,rgba(213,241,108,.2),transparent 72%);content:""}
.brackets{position:absolute;inset:.9rem;z-index:3;pointer-events:none;opacity:.8;background:linear-gradient(var(--lime),var(--lime)) 0 0/1.5rem 2px no-repeat,linear-gradient(var(--lime),var(--lime)) 0 0/2px 1.5rem no-repeat,linear-gradient(var(--lime),var(--lime)) 100% 0/1.5rem 2px no-repeat,linear-gradient(var(--lime),var(--lime)) 100% 0/2px 1.5rem no-repeat,linear-gradient(var(--lime),var(--lime)) 0 100%/1.5rem 2px no-repeat,linear-gradient(var(--lime),var(--lime)) 0 100%/2px 1.5rem no-repeat,linear-gradient(var(--lime),var(--lime)) 100% 100%/1.5rem 2px no-repeat,linear-gradient(var(--lime),var(--lime)) 100% 100%/2px 1.5rem no-repeat}
.hero-route{position:absolute;right:0;bottom:0;left:0;height:clamp(18rem,40vw,36rem)}
.hero-route svg{width:100%;height:100%;overflow:visible}
.hero-route path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.route-guide{stroke:rgba(213,241,108,.34);stroke-width:2;stroke-dasharray:2 12}
.route-progress{stroke:var(--lime);stroke-width:3.5;stroke-dasharray:1;stroke-dashoffset:0}
.js .route-progress{stroke-dashoffset:1}.js .in .route-progress{animation:draw 2.6s var(--ease) 1s forwards}
.route-pin{position:absolute;left:78.6%;top:20%;width:1rem;height:1rem;translate:-50% -50%;border-radius:50%;background:var(--paper)}
.route-pin::after{position:absolute;inset:0;border:2px solid var(--lime);border-radius:50%;content:"";animation:ping 2.4s ease-out infinite}
.hero-copy{position:relative;z-index:4;margin-inline:auto}
.hero h1{max-width:12ch;margin:0 auto 1.6rem}.hero h1 .accent{color:var(--lime)}
.hero-lede{max-width:33rem;margin:0 auto 1.4rem;color:var(--muted);font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.55}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1rem 1.8rem}
.hero-note{max-width:34rem;margin:1.2rem auto 0;color:var(--quiet);font-size:var(--meta)}
.hero-reach{width:fit-content;max-width:100%;margin:0 auto 1.35rem;padding:.7rem .4rem 0;border-top:1px solid var(--line-strong)}
.hero-reach-counts{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.2rem 1rem}
.hero-reach-counts a{display:inline-flex;min-height:2.75rem;align-items:center;gap:.4rem;color:var(--muted);font-size:var(--support);font-weight:700;text-decoration:none;white-space:nowrap;transition:color .2s ease}
.hero-reach-counts a:hover{color:var(--paper);text-decoration:underline}
.hero-reach-counts strong{color:var(--lime);font-family:var(--display);font-size:1.7rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}
.hero-reach-sep{width:1px;height:1.1rem;background:var(--line-strong)}
.hero-reach-source{display:block;margin-top:.1rem;color:var(--quiet);font-size:var(--label);line-height:1.4}
.hero-reach-source::before{display:inline-block;width:.35rem;height:.35rem;margin-right:.45rem;border-radius:50%;background:var(--quiet);content:"";vertical-align:.12em;transition:background-color .25s ease}
.hero-reach-source.is-live::before{background:var(--lime)}
@keyframes reach-ink{from{clip-path:inset(0 0 100% 0);transform:translateY(.25rem)}}
@media(prefers-reduced-motion:no-preference){
  .js .hero-reach.in strong{animation:reach-ink .6s var(--ease) both;animation-delay:calc(var(--d,0ms) + 160ms)}
  .js .hero-reach.in a:nth-of-type(2) strong{animation-delay:calc(var(--d,0ms) + 250ms)}
}
.phones{--pw:clamp(10.5rem,21vw,18.5rem);position:relative;z-index:2;height:clamp(17rem,31vw,27rem);margin-top:clamp(2.5rem,5vw,4rem);overflow:hidden}
.phone{position:absolute;top:0;left:50%;width:var(--pw);margin:0;transform-origin:50% 100%;transform:translateX(calc(-50% + var(--x,0px))) rotate(var(--r,0deg)) translateY(calc(var(--p,0)*var(--par,0px)))}
.phone-in{position:relative;border-radius:2rem;overflow:hidden;background:#0a100d;box-shadow:0 0 0 1px rgba(245,249,236,.28),0 2rem 4rem rgba(0,0,0,.55)}
.phone-in img{width:100%;height:auto;aspect-ratio:520/920;object-fit:cover}
.phone-c{--par:1.5rem;z-index:3}
.phone-l{--x:calc(var(--pw)*-.88);--r:-6deg;--par:3.6rem;top:2.8rem;width:calc(var(--pw)*.82);z-index:2}
.phone-r{--x:calc(var(--pw)*.88);--r:6deg;--par:3.6rem;top:2.8rem;width:calc(var(--pw)*.82);z-index:2}
.js .phone-in{opacity:0;translate:0 26%;scale:.94;transition:opacity .9s ease var(--d,0ms),translate 1.4s var(--ease) var(--d,0ms),scale 1.4s var(--ease) var(--d,0ms)}
.js .in .phone-in{opacity:1;translate:0 0;scale:1}
.chip{position:absolute;z-index:5;display:flex;align-items:center;gap:.65rem;padding:.45rem .9rem .45rem .45rem;border:1px solid var(--line-strong);background:rgba(16,23,17,.9);box-shadow:0 .9rem 2rem rgba(0,0,0,.4);color:var(--paper);font-family:var(--display);font-size:1rem;letter-spacing:.05em;line-height:1.05;text-align:left;text-transform:uppercase;animation:bob 7s ease-in-out infinite;animation-delay:var(--bd,0s)}
.chip img{width:2.6rem;height:2.6rem;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(0,0,0,.5))}
.chip small{display:block;margin-top:.15rem;color:var(--quiet);font-family:var(--body);font-size:var(--label);letter-spacing:.02em;text-transform:none}
.chip-a{left:-1.2rem;bottom:9rem;--bd:-1.5s}.chip-b{right:-1.2rem;bottom:13rem;--bd:-4s}
.chip-c{left:50%;bottom:1.7rem;padding:.55rem 1rem;translate:-50% 0;white-space:nowrap;--bd:-2.5s}
.js .chip{opacity:0;scale:.8;transition:opacity .8s ease var(--d,0ms),scale 1s var(--ease) var(--d,0ms)}
.js .in .chip{opacity:1;scale:1}
.chip-c{translate:-50% 0}

/* ───────── Capability band ───────── */
.band{display:grid;padding:1.3rem max(var(--gutter),calc((100vw - var(--measure))/2));margin-top:clamp(3rem,6vw,5rem);background:var(--lime);grid-template-columns:repeat(3,1fr);gap:1.5rem;color:#182317}
.band span{font-size:.92rem;line-height:1.4}.band span+span{padding-left:1.5rem;border-left:1px solid rgba(18,36,15,.35)}
.band strong{display:block;margin-bottom:.1rem;font-family:var(--display);font-size:1.5rem;line-height:1}

/* ───────── Statement (scroll-scrubbed words) ───────── */
.statement-sec{width:min(100% - 2*var(--gutter),var(--measure));margin-inline:auto;padding-block:clamp(5.5rem,12vw,10rem)}
.statement{max-width:21ch;margin:0 auto;font-family:var(--display);font-size:clamp(2.7rem,6.6vw,5.6rem);font-weight:700;line-height:.98;letter-spacing:-.02em;text-align:center;text-wrap:balance}

/* ───────── World ticker ───────── */
.ticker{display:grid;gap:.9rem;overflow:hidden;padding-bottom:clamp(2rem,4vw,3rem);-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.ticker-row{display:flex;width:max-content;animation:tick 90s linear infinite}
.ticker-row.rev{animation-direction:reverse;animation-duration:110s}
.ticker:hover .ticker-row{animation-play-state:paused}
.ticker ul{display:flex;margin:0;padding:0;gap:.9rem;padding-right:.9rem;list-style:none}
.ticker li{display:flex;align-items:center;gap:.75rem;padding:.5rem 1.1rem .5rem .55rem;border:1px solid var(--line);background:var(--surface);font-family:var(--display);font-size:1.25rem;letter-spacing:.04em;line-height:1;white-space:nowrap;text-transform:uppercase}
.ticker li img{width:2.5rem;height:2.5rem;object-fit:contain}
.ticker li i{width:2.5rem;height:2.5rem;background:var(--map-texture) center/128px 128px;border:1px solid var(--line-strong)}
.ticker-row.rev li{color:var(--muted);font-size:1.05rem}

/* ───────── The route run: scrolling draws one line through five worlds ─────────
   Everything here is readable without script. With script, --run (0 to 1) is driven by the
   page scroll: the lime trace grows along the guide, a navigation arrow rides its head and
   each world lights up as the arrow reaches its marker. */
.run-sec,.ms-sec{width:min(100% - 2*var(--gutter),var(--measure));margin-inline:auto}
.run-sec{padding-block:clamp(3rem,7vw,6rem) clamp(1.5rem,4vw,3rem)}
.run-head,.ms-head{max-width:44rem;margin:0 auto clamp(2.5rem,6vw,5rem);text-align:center}
.run-head h2,.ms-head h2{margin-bottom:1.2rem}
.run-head p,.ms-head p{max-width:35rem;margin:0 auto;color:var(--muted)}
.run,.ms-run{position:relative;isolation:isolate}
.run-line{position:absolute;inset:0;z-index:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.run-line path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.run-line .run-guide{stroke:rgba(213,241,108,.3);stroke-width:2;stroke-dasharray:2 12}
.run-line .run-trace{stroke:var(--lime);stroke-width:4;filter:drop-shadow(0 0 .55rem rgba(213,241,108,.5))}
.run-car{opacity:0;transition:opacity .4s ease}.run-car path{fill:var(--lime);stroke:var(--deep);stroke-width:2.5;stroke-linejoin:round}
.run-car.live{opacity:1;filter:drop-shadow(0 .45rem .5rem rgba(0,0,0,.55))}
.stops,.ms-list{position:relative;z-index:1;margin:0;padding:0;list-style:none;counter-reset:rank}
.dot{display:grid;place-items:center;border:2px solid var(--line-strong);border-radius:50%;background:var(--page);transition:border-color .5s ease,box-shadow .7s ease,background-color .5s ease}
.on>.dot{border-color:var(--lime);box-shadow:0 0 0 .4rem rgba(213,241,108,.14),0 0 2rem rgba(213,241,108,.35)}

.stop{counter-increment:rank;display:grid;min-height:clamp(32rem,60vw,41rem);grid-template-columns:minmax(0,1fr) 9rem minmax(0,1fr);align-items:center;padding-block:2.2rem}
.stop-dot{grid-column:2;grid-row:1;justify-self:center;width:4.6rem;height:4.6rem;translate:calc(var(--s,1)*2.6rem) 0}
.stop-dot img{width:3rem;height:3rem;object-fit:contain}
.stop:nth-child(odd){--s:1}.stop:nth-child(even){--s:-1}
.stop-copy{grid-column:1;grid-row:1;justify-self:end;max-width:24rem;transition:opacity .8s ease,translate 1s var(--ease)}
.stop-copy::before{display:block;margin:0 0 .6rem -.05em;color:transparent;-webkit-text-stroke:2px rgba(213,241,108,.55);font-family:var(--display);font-size:clamp(6.5rem,13vw,10rem);font-weight:700;line-height:.78;content:counter(rank);transition:color .8s ease .2s,-webkit-text-stroke-color .8s ease}
.on .stop-copy::before{color:var(--lime);-webkit-text-stroke-color:var(--lime)}
.stop-copy h3{margin-bottom:.3rem}
.stop-copy .game{margin-bottom:1rem;color:var(--quiet);font-size:var(--meta);font-weight:600}
.stop-copy p:last-child{margin:0;color:var(--muted);font-size:.98rem}
.stop-shot{grid-column:3;grid-row:1;justify-self:start;width:min(100%,17rem);margin:0;transition:opacity .8s ease,translate 1.2s var(--ease),clip-path 1.2s var(--ease)}
.stop:nth-child(even) .stop-copy{grid-column:3;justify-self:start}
.stop:nth-child(even) .stop-shot{grid-column:1;justify-self:end}
.stop-shot .s26{box-shadow:inset 0 0 0 1px rgba(255,255,255,.2),inset 0 0 0 2.5px rgba(0,0,0,.55),0 2.2rem 4rem rgba(0,0,0,.55)}
.js .stop-copy{opacity:0;translate:0 1.6rem}
.js .stop-shot{opacity:0;translate:0 3rem;clip-path:inset(100% -1rem 0 -1rem)}
.js .stop.on .stop-copy{opacity:1;translate:0 0}
.js .stop.on .stop-shot{opacity:1;translate:0 0;clip-path:inset(-1rem)}
.js .stop-dot{scale:.7}.js .stop.on .stop-dot{scale:1}
.run-end{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:.6rem 1.8rem;margin:clamp(1rem,3vw,2rem) 0 0;text-align:center}
.run-end span{color:var(--quiet);font-size:var(--meta)}

/* ───────── Milestones: the same line, quieter ───────── */
.ms-sec{padding-block:clamp(4rem,9vw,8rem)}
.ms-run{max-width:54rem;margin-inline:auto}
.ms{display:grid;grid-template-columns:3.2rem minmax(0,1fr);gap:0 1.6rem;padding-block:clamp(1.3rem,3vw,2.2rem)}
.ms-dot{width:2.6rem;height:2.6rem;margin-top:.2rem}
.ms-dot svg{width:1.3rem;height:1.3rem;fill:none;stroke:var(--quiet);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .5s ease}
.ms.on .ms-dot{background:var(--lime)}.ms.on .ms-dot svg{stroke:var(--lime-ink)}
.ms-body{transition:opacity .8s ease,translate 1s var(--ease)}
.ms-body h3{margin-bottom:.5rem;font-size:clamp(2rem,3.6vw,3.1rem)}
.ms-body p{max-width:38rem;margin-bottom:.8rem;color:var(--muted)}
.js .ms-body{opacity:.35;translate:0 1rem}.js .ms.on .ms-body{opacity:1;translate:0 0}

/* ───────── Independent listings: one source at a time ───────── */
.proof-source-list{margin:0 auto;border-top:1px solid var(--line-strong)}
.proof-source{border-bottom:1px solid var(--line-strong)}
.proof-source summary{display:grid;min-height:5.2rem;padding:.85rem .25rem;grid-template-columns:minmax(11rem,.35fr) minmax(0,1fr) 1.5rem;align-items:center;gap:1rem;cursor:pointer;list-style:none}
.proof-source summary::-webkit-details-marker{display:none}
.proof-source-name{color:var(--paper);font-family:var(--display);font-size:clamp(2.1rem,3.6vw,3.2rem);font-weight:700;letter-spacing:-.02em;line-height:1;transition:color .2s ease}
.proof-source-summary{color:var(--muted);font-size:var(--support);line-height:1.5}
.proof-source[open] .proof-source-name,.proof-source summary:hover .proof-source-name{color:var(--lime)}
.proof-chevron{width:1.3rem;height:1.3rem;color:var(--lime);transition:transform .3s var(--ease)}
.proof-source[open] .proof-chevron{transform:rotate(180deg)}
.proof-source-content{display:grid;padding:0 .25rem clamp(2rem,4vw,3.5rem);grid-template-columns:minmax(0,1.35fr) minmax(16rem,.65fr);align-items:end;gap:clamp(1.5rem,4vw,4rem)}
.proof-source[open] .proof-source-content{animation:proof-settle .35s var(--ease) both}
@keyframes proof-settle{from{opacity:.4;transform:translateY(.6rem)}}
.proof-capture{min-width:0;margin:0;padding:.5rem;border:1px solid var(--line-strong);background:var(--deep);box-shadow:0 1.2rem 2.8rem rgba(0,0,0,.28)}
.proof-capture picture,.proof-capture img{display:block;width:100%}
.proof-capture img{height:auto}
.proof-capture figcaption{padding:.7rem .3rem .1rem;color:var(--quiet);font-size:var(--meta);line-height:1.5}
.proof-source-copy p{max-width:38ch;margin:0 0 1.3rem;color:var(--muted);font-size:1.02rem;line-height:1.7}
.proof-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1.2rem}
.proof-capture-link{display:inline-flex;min-height:2.75rem;align-items:center;gap:.4rem;color:var(--paper);font-size:var(--support);font-weight:700;text-decoration:none;transition:color .2s ease}
.proof-capture-link:hover{color:var(--lime)}
.proof-verify{margin:1.1rem 0 clamp(4rem,7vw,6rem);text-align:right}
.proof-verify a{display:inline-flex;min-height:2.75rem;align-items:center;gap:.5rem;color:var(--muted);font-size:var(--support);font-weight:700;text-decoration:none;transition:color .2s ease}
.proof-verify a:hover{color:var(--lime)}
@media(max-width:55rem){
  .proof-source-content{grid-template-columns:minmax(0,1fr);gap:1.2rem}
  .proof-source-copy p{max-width:60ch}
}
@media(max-width:39rem){
  .proof-source summary{min-height:5rem;padding-block:1rem;grid-template-columns:minmax(0,1fr) 1.4rem;gap:.15rem 1rem}
  .proof-source-name{grid-column:1;grid-row:1;font-size:2.15rem}
  .proof-source-summary{grid-column:1;grid-row:2}
  .proof-chevron{grid-column:2;grid-row:1/3}
  .proof-source-content{padding-bottom:2rem}
  .proof-capture{padding:.35rem}
  .proof-verify{text-align:left}
}
@media(prefers-reduced-motion:reduce){.proof-source[open] .proof-source-content{animation:none}.proof-chevron,.proof-source-name{transition:none}}

/* ───────── World atlas (38) ───────── */
.atlas{width:min(100% - 2*var(--gutter),var(--measure));margin-inline:auto;padding-block:clamp(2rem,5vw,4rem) clamp(5rem,9vw,8rem)}
.atlas-disclosure{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong)}
.atlas-disclosure summary{display:flex;min-height:5.5rem;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;color:var(--paper);font-family:var(--display);font-size:clamp(1.9rem,3vw,2.8rem);line-height:1;list-style:none;transition:color .2s ease}
.atlas-disclosure summary::-webkit-details-marker{display:none}.atlas-disclosure summary:hover{color:var(--lime)}
.atlas-disclosure summary svg{width:1.5rem;height:1.5rem;fill:none;stroke:var(--lime);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--ease)}.atlas-disclosure[open] summary svg{transform:rotate(180deg)}
.world-atlas{display:grid;margin:0;padding:1.5rem 0 3rem;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:3rem 1.25rem;list-style:none}
.world-entry{display:grid;min-width:0;grid-template-columns:minmax(0,1fr);align-content:start}
.map-surface{position:relative;grid-area:1/1;display:flex;aspect-ratio:16/10;overflow:hidden;padding:.5rem;border:1px solid var(--line);background:#263327 var(--map-texture) center/128px 128px;transition:background-position 1.2s var(--ease)}
.map-surface::before{position:absolute;inset:0;content:"";background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 200' preserveAspectRatio='none'%3E%3Cpath d='M-10 70 C50 20 95 140 150 105 S235 120 273 204' fill='none' stroke='%23d5f16c' stroke-width='3' stroke-linecap='round' stroke-dasharray='1 9' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M-10 70 C50 20 95 140 150 105' fill='none' stroke='%23d5f16c' stroke-width='3.5' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") center/100% 100% no-repeat,repeating-linear-gradient(28deg,transparent 0 2.7rem,rgba(241,243,232,.09) 2.7rem calc(2.7rem + 2px)),repeating-linear-gradient(-62deg,transparent 0 3.5rem,rgba(241,243,232,.09) 3.5rem calc(3.5rem + 2px)),radial-gradient(90% 90% at 80% 100%,rgba(255,255,255,.12),transparent 70%),linear-gradient(rgba(8,12,9,.12),rgba(8,12,9,.12));transition:transform 1.2s var(--ease)}
.world-entry:hover .map-surface::before{transform:scale(1.06)}
.map-surface span{position:relative;align-self:flex-start;padding:.2rem .4rem;background:rgba(8,12,9,.86);color:var(--paper);font-family:var(--display);font-size:var(--label);letter-spacing:.05em;line-height:1.12}
.world-marker{position:relative;z-index:2;grid-area:1/1;align-self:end;justify-self:end;width:4rem;height:4rem;margin:0 1rem 0 0;translate:0 1.7rem;object-fit:contain;filter:drop-shadow(0 .7rem .6rem rgba(0,0,0,.5));transition:translate .5s var(--ease),scale .5s var(--ease)}
.world-detail{grid-area:2/1;display:flex;min-width:0;flex-direction:column;padding-top:1.1rem}
.world-detail>p{margin:0 0 .25rem;color:var(--quiet);font-size:var(--meta);line-height:1.35}
.world-detail h3{margin:0 0 .6rem;font-size:clamp(1.7rem,2vw,2.1rem);line-height:1}
.world-detail figure{display:flex;align-items:center;gap:.5rem;margin:0}.world-detail figure img{width:3rem;height:1.5rem;flex:none;object-fit:contain}.world-detail figcaption{color:var(--muted);font-size:var(--label);line-height:1.3}
.world-entry:hover .world-marker{translate:0 1.1rem;scale:1.14}.world-entry:hover .map-surface{background-position:3rem 2rem}
details[open] .world-entry{animation:rise .8s var(--ease) both;animation-delay:calc(var(--c,0)*45ms)}
@keyframes rise{from{opacity:0;translate:0 1.6rem}}
.atlas-footnote{max-width:68ch;margin:1.4rem 0 0;color:var(--quiet);font-size:var(--support);line-height:1.55}

/* ───────── Shared section heading ───────── */
.section-wrap{width:min(100% - 2*var(--gutter),var(--measure));margin-inline:auto;padding-block:clamp(5rem,9vw,9rem)}
.section-heading{display:grid;margin-bottom:3.2rem;grid-template-columns:minmax(0,1fr) minmax(18rem,.8fr);align-items:end;gap:2rem 5rem}
.section-heading h2{max-width:13ch;margin-bottom:0}.section-heading>p{max-width:38rem;margin-bottom:.3rem;color:var(--muted)}

/* ───────── Day / night compare ───────── */
.day-night{background:#18221a}
.day-night .section-wrap{padding-block:clamp(5rem,9vw,8rem)}
.dn{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(16rem,.75fr);align-items:center;gap:clamp(2rem,6vw,6rem)}
.dn-board{--k:.5;position:relative}
.dn-tile{position:relative;aspect-ratio:16/10;overflow:hidden;border:1px solid var(--line-strong);background:var(--surface);cursor:ew-resize;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.dn-tile.drag{cursor:grabbing}
.dn-hint{position:absolute;z-index:4;top:.9rem;left:50%;display:flex;align-items:center;gap:.6rem;padding:.4rem .9rem;translate:-50% 0;border:1px solid var(--line-strong);background:rgba(16,23,17,.92);color:var(--paper);font-family:var(--display);font-size:1rem;letter-spacing:.06em;line-height:1;text-transform:uppercase;white-space:nowrap;pointer-events:none;transition:opacity .5s ease,translate .6s var(--ease)}
.dn-hint svg{width:1rem;height:1rem;fill:none;stroke:var(--lime);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dn-board[data-manual] .dn-hint{opacity:0;translate:-50% -.6rem}
.dn-layer{position:absolute;inset:0;display:grid;place-items:center;background:var(--map-texture) 0 0/128px 128px}
.dn-layer::before{position:absolute;inset:0;background:rgba(10,16,11,.16);content:""}
.dn-night{clip-path:inset(0 0 0 calc((1 - var(--k))*100%))}
.dn-layer img{position:relative;width:clamp(5rem,14vw,9rem);height:auto;filter:drop-shadow(0 1.1rem 1rem rgba(0,0,0,.5));animation:bob 6s ease-in-out infinite}
.dn-handle{position:absolute;top:-.8rem;bottom:-.8rem;left:calc((1 - var(--k))*100%);width:2px;translate:-1px 0;background:var(--lime);box-shadow:0 0 0 1px rgba(16,23,17,.5)}
.dn-handle::after{position:absolute;top:50%;left:50%;width:3rem;height:3rem;translate:-50% -50%;border:2px solid var(--lime);border-radius:50%;background:var(--page) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d5f16c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 7l-5 5 5 5M15 7l5 5-5 5'/%3E%3C/svg%3E") center/1.5rem no-repeat;box-shadow:0 .5rem 1.2rem rgba(0,0,0,.45);content:""}
.dn-tile:hover .dn-handle::after,.dn-tile.drag .dn-handle::after,.dn-tile:focus-visible .dn-handle::after{scale:1.1}
.dn-handle::after{transition:scale .3s var(--ease)}
.dn-labels{display:flex;justify-content:space-between;gap:1rem;margin-top:1rem;color:var(--paper);font-family:var(--display);font-size:1.05rem;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.dn-labels span:first-child{opacity:calc(1 - var(--k)*.65)}.dn-labels span:last-child{opacity:calc(.35 + var(--k)*.65);text-align:right}
.dn-world{margin:0 0 .9rem;color:var(--quiet);font-size:var(--meta)}
.dn-copy h3{max-width:14ch;line-height:1.02}.dn-copy p{max-width:36rem;color:var(--muted)}

/* ───────── Voice ───────── */
.voice-section{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(2rem,6vw,6rem)}
.voice-copy{padding-left:1.4rem;border-left:1px solid var(--lime)}.voice-copy h2{max-width:11ch}.voice-copy>p{max-width:36rem;margin-bottom:1.5rem;color:var(--muted)}
.voice-stage{position:relative;padding-block:1.4rem}
.voice-panel{position:relative;padding:clamp(2rem,4vw,3.5rem);border:1px solid var(--line);background:var(--surface);transform:rotate(calc((var(--p,.5) - .5)*-1.6deg))}
.voice-main{max-width:20ch;margin-bottom:1.1rem;font-family:var(--display);font-size:clamp(2rem,3.4vw,3.2rem);font-weight:700;line-height:1.02}
.voice-aside,.voice-source-note{color:var(--muted);font-size:.92rem}
.voice-source-note{max-width:68ch;margin:.7rem 0 0;font-size:var(--support);line-height:1.55}
.voice-chip{top:0;left:clamp(1rem,4vw,2.5rem);--bd:-2s;padding:.55rem 1rem}
.voice-chip2{right:clamp(.5rem,3vw,2rem);bottom:0;--bd:-5s;padding:.55rem 1rem}
.wave{display:flex;height:2.8rem;align-items:center;gap:.22rem;margin:1.6rem 0 1.2rem}
.wave i{display:block;flex:1;height:var(--h);border-radius:2px;background:var(--lime);opacity:.85;transform:scaleY(.18);animation:wave .9s ease-in-out infinite alternate;animation-delay:calc(var(--k)*-67ms);animation-play-state:paused}
.in .wave i{animation-play-state:running;transform:none}

/* ───────── Android Auto ───────── */
.car-screen{padding-top:2rem}
.car-proof{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(16rem,.6fr);align-items:center;gap:clamp(2rem,5vw,5rem)}
.car-frame{position:relative;margin:0;padding:.7rem;border:1px solid var(--line-strong);background:var(--deep);box-shadow:0 2rem 4rem rgba(0,0,0,.45)}
.car-shot{position:relative}
.car-shot img{width:100%;height:auto;background:#131713;transform:scale(calc(.94 + var(--p,.6)*.06));transform-origin:50% 50%}
.car-frame figcaption{padding:.8rem .3rem .2rem;color:var(--quiet);font-size:var(--support);line-height:1.55}
.car-tags{position:absolute;inset:0;pointer-events:none}
.tag{position:absolute;left:var(--x);top:var(--y)}
.tag i{position:absolute;width:.95rem;height:.95rem;translate:-50% -50%;border-radius:50%;background:var(--lime);box-shadow:0 0 0 3px rgba(16,23,17,.8)}
.tag i::after{position:absolute;inset:0;border:2px solid var(--lime);border-radius:50%;content:"";animation:ping 2.4s ease-out infinite;animation-delay:var(--bd,0s)}
.tag b{position:absolute;padding:.4rem .75rem;border:1px solid var(--line-strong);background:rgba(16,23,17,.94);box-shadow:0 .8rem 1.6rem rgba(0,0,0,.45);color:var(--paper);font-family:var(--display);font-size:1rem;font-weight:700;letter-spacing:.05em;line-height:1.1;white-space:nowrap;text-transform:uppercase;animation:bob 7s ease-in-out infinite;animation-delay:var(--bd,0s)}
.tag-up b{bottom:1.3rem;left:50%;translate:-50% 0}.tag-right b{top:50%;left:1.4rem;translate:0 -50%}.tag-left b{top:50%;right:1.4rem;translate:0 -50%}.tag-down b{top:1.3rem;left:50%;translate:-50% 0}
.js .tag{opacity:0;transition:opacity .8s ease var(--d,0ms)}.js .in .tag{opacity:1}
.car-copy h3{max-width:14ch;line-height:1.02}.car-copy>p{max-width:36rem;margin-bottom:1.5rem;color:var(--muted)}

/* ───────── Install ───────── */
.install-section{padding-bottom:clamp(9rem,14vw,13rem)}
.install-steps{--fill:clamp(0,calc((var(--p,1) - .3)*2.6),1);position:relative;display:grid;margin:0;padding:3.2rem 0 0;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;list-style:none;counter-reset:install}
.install-steps::before,.install-steps::after{position:absolute;top:.55rem;left:0;width:100%;height:2px;background:var(--line-strong);content:""}
.install-steps::after{background:var(--lime);transform:scaleX(var(--fill));transform-origin:0 50%}
.install-steps li{position:relative;counter-increment:install}
.install-steps li::before{position:absolute;top:-3.2rem;left:0;width:1.15rem;height:1.15rem;border:2px solid var(--line-strong);border-radius:50%;background:var(--page);content:""}
.install-steps li::after{position:absolute;top:-2.95rem;left:.25rem;width:.65rem;height:.65rem;border-radius:50%;background:var(--lime);content:"";opacity:clamp(0,calc((var(--fill) - var(--n)*.5)*14),1);scale:clamp(.2,calc((var(--fill) - var(--n)*.5)*14),1)}
.install-steps h3{margin-bottom:.6rem;font-size:2.1rem}.install-steps h3::before{margin-right:.7rem;color:var(--lime);content:"0" counter(install);font-variant-numeric:tabular-nums}
.install-steps p{max-width:26rem;color:var(--muted)}

/* ───────── Download ───────── */
.download-section{position:relative;padding-inline:var(--gutter);background:var(--lime);color:#182317}
.download-inner{position:relative;display:grid;width:min(100%,var(--measure));min-height:27rem;margin-inline:auto;padding-block:clamp(4rem,7vw,7rem);grid-template-columns:minmax(0,1fr) minmax(16rem,.5fr);align-items:center;gap:3rem}
.download-inner h2{max-width:11ch;margin:0 0 2rem;color:#182317;font-size:clamp(3.4rem,6vw,6rem);line-height:.96}
.download-actions{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.download-actions .button-primary{color:var(--paper);background:#182317}.download-actions .button-primary:hover{color:var(--paper);background:#2c402d}.download-actions p{max-width:30rem;margin:0;color:#253824;font-size:var(--meta)}
.dl-phones{position:relative;min-height:19rem}
.dl-phone{position:absolute;margin:0;width:clamp(8.5rem,14vw,13rem);border-radius:1.7rem;overflow:hidden;background:#0a100d;box-shadow:0 0 0 1px rgba(18,36,15,.5),0 1.6rem 3rem rgba(11,17,12,.5)}
.dl-phone img{width:100%;height:auto;aspect-ratio:520/920;object-fit:cover}
.dl-phone-a{top:-9rem;right:34%;rotate:-6deg;translate:0 calc((var(--p,.5) - .5)*-2.5rem)}
.dl-phone-b{top:-6rem;right:0;rotate:5deg;translate:0 calc((var(--p,.5) - .5)*2.5rem)}
.dl-route{position:absolute;right:-4rem;bottom:-3rem;width:34rem;color:rgba(19,37,17,.18);pointer-events:none}

/* ───────── Footer ───────── */
.site-footer{padding-block:3.2rem 3rem}
.footer-main,.footer-links,.legal{width:min(100% - 2*var(--gutter),var(--measure));margin-inline:auto}
.footer-main{display:flex;align-items:center;justify-content:space-between;gap:1rem 2rem}
.footer-main p{margin:0 auto 0 1rem;color:var(--quiet);font-size:var(--meta)}
.upstar-badge{width:11.1rem;height:auto}
.footer-links{display:flex;flex-wrap:wrap;align-items:center;margin-top:2rem;padding-block:1.2rem;border-block:1px solid var(--line);gap:.7rem 1.6rem}
.footer-links a{color:var(--muted);font-size:.88rem;font-weight:700;text-decoration:none;transition:color .2s ease}.footer-links a:hover{color:var(--lime)}
.legal{max-width:min(76ch,calc(100% - 2*var(--gutter)));margin:1.5rem auto 0;margin-left:max(var(--gutter),calc((100vw - var(--measure))/2));color:var(--quiet);font-size:var(--meta);line-height:1.6}.legal a{color:var(--muted)}

/* ───────── Responsive ───────── */
@media(max-width:68rem){
  .chip-a{left:-.6rem}.chip-b{right:-.6rem}
}
@media(max-width:55rem){
  .masthead nav a:not(.nav-download){display:none}
  .section-heading,.dn,.voice-section,.car-proof,.download-inner{grid-template-columns:1fr}
  .section-heading{gap:1rem}
  /* The route becomes one column with the line down the left edge. */
  .stop{min-height:0;grid-template-columns:3.2rem minmax(0,1fr);gap:0 1.2rem;align-items:start;padding-block:1.6rem 2.2rem}
  .stop-dot,.stop:nth-child(n) .stop-dot{grid-column:1;grid-row:1/3;width:2.8rem;height:2.8rem;translate:0 0;align-self:start}
  .stop-dot img{width:1.9rem;height:1.9rem}
  .stop:nth-child(n) .stop-copy{grid-column:2;grid-row:1;justify-self:start}
  .stop:nth-child(n) .stop-shot{grid-column:2;grid-row:2;justify-self:start;width:min(100%,15rem);margin-top:1.6rem}
  .stop-copy::before{font-size:5.5rem}
  .voice-copy{padding-left:1rem}
  .dl-phones{min-height:17rem;margin-top:2rem}.dl-phone-a{top:-2rem;right:auto;left:8%}.dl-phone-b{top:0;right:8%}
  .install-section{padding-bottom:clamp(5rem,9vw,8rem)}
  .install-steps{padding:0 0 0 2.6rem;grid-template-columns:1fr;gap:2.2rem}
  .install-steps::before,.install-steps::after{top:.4rem;bottom:.4rem;left:.55rem;width:2px;height:auto}
  .install-steps::after{transform:scaleY(var(--fill));transform-origin:50% 0}
  .install-steps li::before{top:.2rem;left:-2.6rem}.install-steps li::after{top:.45rem;left:-2.35rem}
}
@media(max-width:39rem){
  :root{--gutter:max(1rem,env(safe-area-inset-left),env(safe-area-inset-right))}
  .masthead-inner{min-height:3.3rem}.brand{font-size:1.35rem}.brand img{width:1.9rem;height:1.9rem}
  .hero{padding-top:5.8rem}
  .hero-panel{padding-top:3.4rem}
  .hero-actions{flex-direction:column;gap:.9rem}
  .hero-reach-counts{gap:.1rem .65rem}.hero-reach-counts a{gap:.25rem;font-size:.8125rem}.hero-reach-counts strong{font-size:1.55rem}.hero-reach-sep{display:none}
  .phone-in{border-radius:1.2rem}
  .chip{padding:.35rem .65rem .35rem .35rem;font-size:.85rem}.chip img{width:2rem;height:2rem}.chip small{display:none}
  .chip-a{bottom:5rem;left:.2rem}.chip-b{right:.2rem;bottom:8.6rem}.chip-c{display:none}
  .band{grid-template-columns:1fr;gap:.7rem;padding-block:1.2rem}.band span+span{padding:0;border:0}.band strong{display:inline;margin-right:.4rem;font-size:1.25rem}
  .section-wrap{padding-block:4.5rem}
  .section-heading{margin-bottom:2rem}
  .world-atlas{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.6rem .9rem}
  .world-marker{width:3.1rem;height:3.1rem;margin-right:.6rem;translate:0 1.3rem}
  .world-detail h3{font-size:1.5rem}
  .world-detail figure{flex-wrap:wrap}
  .dn-handle::after{width:2.1rem;height:2.1rem}
  .voice-chip{left:.5rem}.voice-chip2{right:.2rem}
  .car-frame{padding:.4rem}
  .car-tags{position:static;display:flex;flex-wrap:wrap;gap:.5rem;padding:.9rem .1rem 0}
  .tag{position:static;opacity:1!important}.tag i{display:none}.tag b{position:static;display:block;translate:none!important;animation:none;font-size:.9rem}
  .dl-phones{min-height:14rem}.dl-phone{width:8.2rem}
  .footer-main{flex-wrap:wrap;justify-content:flex-start}.footer-main p{width:calc(100% - 4rem);margin:0}.footer-main>a:last-child{margin-left:auto}
  .footer-links{gap:.65rem 1rem}.footer-links a{font-size:var(--support)}
}
@media(max-width:55rem),(pointer:coarse){
  .brand,.footer-links a{min-height:2.75rem}.footer-links a{display:inline-flex;align-items:center}
  .text-link{min-height:2.75rem;align-items:center}
}

/* ───────── Reduced motion: finished states, no travel, no loops ───────── */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .chip,.dn-layer img,.tag b,.route-pin::after,.tag i::after{animation:none}
  .ticker-row{animation:none;flex-wrap:wrap;width:auto;justify-content:center}.ticker ul[aria-hidden]{display:none}.ticker{-webkit-mask-image:none;mask-image:none;padding-inline:var(--gutter)}
  .wave i{animation:none;transform:none}
  .js [data-split]:not(.scrub) .wi,.js .rv,.js .phone-in,.js .chip,.js .tag,.run-sec *{transition-duration:.01ms!important;transition-delay:0s!important}
  .js .route-progress{stroke-dashoffset:0;animation:none!important}
  details[open] .world-entry{animation:none}
}

/* ───────── Premium layer: image fades, cursor light, depth, film grain ───────── */
body::after{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.055;mix-blend-mode:overlay;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");content:""}
/* Images arrive out of blur and desaturation, like a map resolving. */
.js .fx{opacity:0;filter:blur(16px) saturate(.5);scale:1.05;transition:opacity 1.1s ease var(--d,0ms),filter 1.4s var(--ease) var(--d,0ms),scale 1.6s var(--ease) var(--d,0ms),transform .6s var(--ease)}
.js .fx.in{opacity:1;filter:none;scale:1}
.js .phone-in{filter:blur(12px)}.js .in .phone-in{filter:none}
.js .phone-in{transition:opacity .9s ease var(--d,0ms),translate 1.4s var(--ease) var(--d,0ms),scale 1.4s var(--ease) var(--d,0ms),filter 1.2s ease var(--d,0ms)}
/* Phones dissolve into the page instead of being cut by a hard edge. */
.phones{-webkit-mask-image:linear-gradient(to bottom,#000 58%,transparent 98%);mask-image:linear-gradient(to bottom,#000 58%,transparent 98%)}
.dl-phone{position:absolute}
.car-shot::after{position:absolute;inset:0;box-shadow:inset 0 0 3.5rem 1rem rgba(11,17,12,.6);content:"";pointer-events:none}
/* Cursor light across the hero panel. */
.spot{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:var(--so,0);background:radial-gradient(26rem circle at var(--mx,50%) var(--my,60%),rgba(213,241,108,.14),transparent 62%);transition:opacity .6s ease}
/* Hero copy drifts and dims as the phones take over. */
.hero-copy{opacity:calc(1 - var(--p,0)*1.5);translate:0 calc(var(--p,0)*-2.2rem)}
/* Tilt toward the cursor. */
[data-tilt]{transform:perspective(1400px) rotateX(var(--ty,0deg)) rotateY(var(--tx,0deg));transition:transform .6s var(--ease)}
/* Magnetic buttons. */
[data-mag]{translate:var(--mxp,0) var(--myp,0)}
/* Masthead and nav state. */
.masthead{transition:background-color .4s ease,border-color .4s ease}
.masthead.solid{background:rgba(11,17,12,.9);border-color:rgba(236,244,224,.4)}
.masthead nav a:not(.nav-download){position:relative;padding-block:.5rem}
.masthead nav a:not(.nav-download)::after{position:absolute;right:0;bottom:.1rem;left:0;height:2px;background:var(--lime);content:"";transform:scaleX(0);transform-origin:0 50%;transition:transform .5s var(--ease)}
.masthead nav a.cur{color:var(--paper)}.masthead nav a.cur::after,.masthead nav a:not(.nav-download):hover::after{transform:scaleX(1)}
/* Lede paragraphs light up word by word with scroll; floor keeps them readable. */
.scrub .wi{opacity:calc(.42 + .58*clamp(0,calc(var(--p,1)*(var(--n) + 5) - var(--i)),1))}
@media(max-width:39rem){.hero-copy{translate:none}}
@media(prefers-reduced-motion:reduce){
  body::after{display:none}
  .hero-copy{opacity:1;translate:none}
  .masthead nav a::after{transition:none}
}

.js .chip.in{opacity:1;scale:1}

/* ───────── Review pass: previews, rising hero phones, icons ───────── */
.map-surface{aspect-ratio:3/2;background:var(--deep)}
.map-surface::before{display:none}
.world-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:scale 1.4s var(--ease)}
.world-entry:hover .world-preview{scale:1.07}
.map-surface span{z-index:1}
.ico{width:1.05em;height:1.05em;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;align-self:center}
.hero-panel{--pw:clamp(10.5rem,21vw,18.5rem);--ph:clamp(14rem,27vw,23rem);padding-top:clamp(3.6rem,5.5vw,5rem);margin-bottom:calc(var(--pw)*1.78 - var(--ph) + 3rem)}
.phones{--pw:inherit;height:var(--ph);margin-top:clamp(1.5rem,3vw,2.5rem);overflow:visible;-webkit-mask-image:none;mask-image:none}
.hero-lede{max-width:38rem;text-wrap:balance}
.band{margin-top:0}
@media not all and (hover:hover) and (pointer:fine){body::after{display:none}}
html:not(.js) .dn-hint{display:none}
@media(prefers-reduced-motion:reduce){.world-preview{transition:none}}

/* ───────── Download panel: full composition, phones rise from the bottom edge ───────── */
.download-section{overflow:hidden;padding-bottom:0}
.download-section::before{position:absolute;inset:0;background:url("assets/landing/materials/old_west_night.png") 0 0/128px 128px;opacity:.07;mix-blend-mode:multiply;content:"";pointer-events:none}
.download-inner{--dw:clamp(9.5rem,17vw,16rem);min-height:34rem;padding-block:clamp(4rem,7vw,6rem) 0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:2rem}
.download-inner>div:first-child{align-self:center;padding-bottom:clamp(4rem,7vw,6rem)}
.download-inner h2{max-width:13ch;font-size:clamp(3.6rem,7.2vw,6rem)}
.dl-route{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none}
.dl-route path{fill:none;stroke:rgba(19,37,17,.3);stroke-width:3;stroke-linecap:round;stroke-dasharray:1 11;vector-effect:non-scaling-stroke}
.download-inner>*{position:relative;z-index:1}.download-inner>.dl-route{position:absolute;z-index:0}
.dl-phones{position:relative;align-self:end;min-height:0;height:clamp(21rem,33vw,30rem);margin:0}
.dl-phone{position:absolute;top:0;left:50%;width:var(--dw);margin:0;border-radius:2rem;transform:translateX(calc(-50% + var(--x,0px))) rotate(var(--r,0deg)) translateY(calc((var(--p,.5) - .5)*var(--par,-2rem)));transform-origin:50% 100%;translate:none;rotate:none;right:auto}
.dl-phone-c{--par:-1.5rem;z-index:3}
.dl-phone-l{--x:calc(var(--dw)*-.86);--r:-6deg;--par:-3.5rem;top:3.2rem;width:calc(var(--dw)*.84);z-index:2}
.dl-phone-r{--x:calc(var(--dw)*.86);--r:6deg;--par:3.5rem;top:3.2rem;width:calc(var(--dw)*.84);z-index:2}
.dl-pin{position:absolute;z-index:4;width:clamp(3.2rem,5vw,4.6rem);height:auto;filter:drop-shadow(0 .8rem .7rem rgba(11,17,12,.45));animation:bob 6s ease-in-out infinite}
.dl-pin-a{left:4%;top:12%;--bd:-1s;animation-delay:-1s}
.dl-pin-b{right:3%;top:2%;animation-delay:-3s}
.dl-pin-c{left:0;bottom:34%;animation-delay:-2s}
.dl-pin-d{right:0;bottom:30%;animation-delay:-4.5s}
@media(max-width:55rem){
  .download-inner{grid-template-columns:1fr;min-height:0;gap:0}
  .download-inner>div:first-child{padding-bottom:2.5rem}
  .download-inner h2{max-width:none;font-size:clamp(3.6rem,13vw,5.6rem)}
  .dl-phones{margin:0 auto;width:min(100%,32rem);height:clamp(19rem,60vw,25rem);--dw:clamp(9rem,31vw,13rem)}
  .dl-phone-a,.dl-phone-b{display:none}
}
@media(max-width:39rem){
  .dl-phones{height:19rem;--dw:9.4rem}
  .dl-phone{width:var(--dw)}
  .dl-phone-l,.dl-phone-r{width:calc(var(--dw)*.84)}
}
@media(prefers-reduced-motion:reduce){.dl-pin{animation:none}}

/* ───────── Device: Samsung Galaxy S26 Ultra ─────────
   Flat titanium rails, thin even bezels, centred punch-hole camera, buttons on the right edge.
   Radii are percentages so the shape holds at every size. */
.phone-in,.dl-phone{border-radius:0;overflow:visible;background:none;box-shadow:none}
.s26{position:relative;display:block;width:100%;padding:2.3%;border-radius:13%/7.4%;background:linear-gradient(158deg,#7b807b 0%,#34373a 14%,#1a1c1b 46%,#262928 78%,#6b706b 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2),inset 0 0 0 2.5px rgba(0,0,0,.55),0 2rem 4rem rgba(0,0,0,.55)}
.s26::before,.s26::after{position:absolute;right:-.2rem;width:.24rem;border-radius:0 2px 2px 0;background:linear-gradient(90deg,#3b3e3c,#8b908b);content:""}
.s26::before{top:21%;height:13%}
.s26::after{top:38%;height:7.5%}
.s26-screen{position:relative;display:block;overflow:hidden;aspect-ratio:520/920;border-radius:11.2%/6.4%;background:#000;box-shadow:0 0 0 1px #000}
.s26-screen img{width:100%;height:100%;object-fit:cover;scale:1.09}
.s26-screen::before{position:absolute;inset:0;z-index:2;background:linear-gradient(115deg,rgba(255,255,255,.09),transparent 34%);content:"";pointer-events:none}
.s26-screen::after{position:absolute;z-index:3;top:1.7%;left:50%;width:3.4%;aspect-ratio:1;translate:-50% 0;border-radius:50%;background:radial-gradient(circle at 35% 35%,#1d2a3a,#05070a 62%);box-shadow:0 0 0 1.5px rgba(0,0,0,.9);content:""}
.phone-in{border-radius:0}
@media(max-width:39rem){.phone-in{border-radius:0}.s26::before,.s26::after{right:-.14rem;width:.17rem}}

/* ───────── S26 Ultra, to scale ─────────
   Body 78.1 × 163.6 mm (≈ 1 : 2.095). Display 19.5:9 (1080 × 2340). Bezel ≈ 2.3 mm all round,
   corner radius ≈ 9 mm. The captures were cropped to 520 × 920, so the status bar and gesture
   area they lost are drawn back in proportion (top 5.6 %, bottom 12.7 % of the screen). */
.s26{container-type:inline-size;padding:2.9%;border-radius:11.5%/5.5%}
.s26-screen{aspect-ratio:1080/2340;border-radius:8.6%/4.1%;background:#05070a}
.s26-screen::after{top:1.25%;width:3.3%}
.s26-screen .s26-bg{position:absolute;inset:-6%;width:112%;height:112%;aspect-ratio:auto;object-fit:cover;scale:none;filter:blur(16px) brightness(.72) saturate(1.15)}
.s26-box{position:absolute;z-index:1;top:5.6%;left:0;right:0;height:81.7%;overflow:hidden;-webkit-mask-image:linear-gradient(transparent,#000 3.5%,#000 95%,transparent);mask-image:linear-gradient(transparent,#000 3.5%,#000 95%,transparent)}
.s26-screen .s26-app{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;scale:1.07}
.s26-bar{position:absolute;z-index:3;top:0;left:0;right:0;height:5.6%;display:flex;align-items:center;justify-content:space-between;padding:0 8%;color:#fff;font:600 3.6cqw/1 var(--body);letter-spacing:.01em;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.s26-bar b{font-weight:600}
.s26-ic{display:flex;align-items:center;gap:1.3cqw}
.s26-ic svg{width:8cqw;height:2.8cqw;fill:#fff;stroke:#fff;stroke-width:1.6;stroke-linecap:round}
.s26-ic svg path:nth-child(2){fill:none}
.s26-ic i{position:relative;width:5cqw;height:2.5cqw;border:1px solid rgba(255,255,255,.9);border-radius:.8cqw}
.s26-ic i::after{position:absolute;inset:1px;right:25%;border-radius:.4cqw;background:#fff;content:""}
.s26-pill{position:absolute;z-index:3;bottom:1.8%;left:50%;width:30%;height:max(2px,1.1cqw);translate:-50% 0;border-radius:99px;background:rgba(255,255,255,.78)}
.s26-screen::before{z-index:4}
.s26-screen::after{z-index:5}
.hero-panel{--pw:clamp(9rem,16.5vw,15rem);--ph:clamp(14rem,27vw,23rem);margin-bottom:calc(var(--pw)*2.1 - var(--ph) + 3rem)}
.phone-l,.phone-r{top:3.4rem}
.download-inner{--dw:clamp(8.6rem,14vw,13.5rem)}
.dl-phone-l,.dl-phone-r{top:3.6rem}
@media(max-width:55rem){
  .dl-phones{--dw:clamp(8rem,26vw,11.5rem)}
}
@media(max-width:39rem){.dl-phones{--dw:8.4rem}}

.s26-screen .s26-bg{filter:blur(18px) brightness(.38) saturate(1.1)}

.ticker li img.poi{width:4.2rem;height:2.1rem;object-fit:contain}
.ticker-row.rev li{padding-left:.9rem}

/* Reduced motion and no script: the run is already drawn and every world is showing. */
@media(prefers-reduced-motion:reduce){
  .js .stop-copy,.js .stop-shot,.js .ms-body{opacity:1;translate:0 0;clip-path:none}
  .js .stop-dot{scale:1}.run-car{display:none}
}

/* Phone captures show the whole screen: no crop, no zoom, no faded edges, no blurred filler. */
.s26-screen .s26-bg{display:none}
.s26-box{top:0;height:100%;-webkit-mask-image:none;mask-image:none}
.s26-screen .s26-app{scale:1;object-fit:cover;object-position:50% 0}

/* The car capture is shown whole and unshaded; its callouts sit beneath it instead of over the interface. */
.car-shot img{transform:none}
.car-shot::after{display:none}
.car-tags{position:static;display:flex;flex-wrap:wrap;gap:.5rem;padding:.9rem 0 0}
.tag{position:static;opacity:1!important}.tag i{display:none}
.tag b{position:static;display:block;translate:none!important;animation:none;font-size:.9rem}
