/* PositionTracker: marketing site. Hero is a dark "broadcast stage" in both themes; the rest follows the theme. */
:root{
  --ink:#0A1F44; --ink2:#10295A; --ink3:#1A3A74; --paper:#FFFFFF; --paper2:#EEF1F6; --paper3:#DDE3EE;
  --coral:#FF4B2B; --coral-d:#B82A10; --coral-btn:#D4341A; --link:#C92A0C; --purple:#A855F7; --green:#22C55E; --yellow:#FACC15;
  --bg:var(--paper); --bg2:var(--paper2); --line:var(--paper3); --text:#0A1F44; --mute:#4B5B78; --on-accent:#fff;
  --font:'Archivo',system-ui,sans-serif; color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#081733;--bg2:#0D2149;--line:#1F3566;--text:#EAF0FF;--mute:#9DB0D6;--link:#FF7A5E;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#081733;--bg2:#0D2149;--line:#1F3566;--text:#EAF0FF;--mute:#9DB0D6;--link:#FF7A5E;color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-stretch:100%;font-size:18px;line-height:1.55;-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;color:#000;padding:8px 12px;z-index:100}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px}

/* type */
.display{font-stretch:62%;font-weight:900;font-style:italic;text-transform:uppercase;line-height:.88;letter-spacing:-.01em;margin:0}
h2.display{font-size:clamp(2.6rem,7vw,5.6rem)}
h3{font-stretch:75%;font-weight:800;font-style:italic;text-transform:uppercase;font-size:1.6rem;line-height:1;margin:0 0 .6rem}
p{margin:0 0 1em;max-width:62ch}
.lead{font-size:1.25rem;color:var(--mute);max-width:56ch}
.small{font-size:.9rem;color:var(--mute)}

/* header */
.top{position:sticky;top:0;z-index:50;background:var(--ink);color:#fff;border-bottom:1px solid #ffffff22}
.top .wrap{display:flex;align-items:center;gap:18px;height:60px}
.logo{font-stretch:62%;font-weight:900;font-style:italic;text-transform:uppercase;font-size:1.7rem;text-decoration:none;letter-spacing:.01em}
.logo b{color:var(--coral)}
.top nav{display:flex;gap:4px;margin-left:auto;align-items:center}
.top nav>a{padding:10px 12px;text-decoration:none;font-weight:600;font-size:.95rem;white-space:nowrap;border-radius:4px}
.top nav>a:hover{background:#ffffff1a}
.top nav>a.appnav{background:var(--coral-btn);margin:0 10px;font-weight:800}
.top nav>a.appnav:hover{background:var(--coral-d)}
.pill{border:1px solid #ffffff55;background:transparent;color:#fff;font:inherit;font-weight:700;font-size:.85rem;padding:6px 12px;border-radius:99px;cursor:pointer}
.pill:hover{background:#ffffff1f}
@media (max-width:900px){.top nav>a.nl{display:none}}
/* segmented controls: both choices are always visible, the active one is filled */
.seg{display:inline-flex;border:1px solid #ffffff66;border-radius:99px;overflow:hidden;margin-left:8px}
.seg a,.seg button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;color:#fff;background:transparent;border:0;font:inherit;font-weight:700;font-size:.9rem;text-decoration:none;cursor:pointer}
.seg a:hover,.seg button:hover{background:#ffffff26}
.seg a[aria-current="true"],.seg button[aria-pressed="true"]{background:#fff;color:var(--ink);cursor:default}
@media (max-width:640px){.top .wrap{gap:8px}.logo{font-size:1.35rem}.top nav>a.nm{display:none}.top nav>a.appnav{margin:0 4px;padding:10px 10px;font-size:.85rem}.seg{margin-left:4px}.seg a{padding:0 10px}.seg button{padding:0 11px}.seg button span{display:none}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;background:var(--coral-btn);color:#fff;font:inherit;font-weight:800;font-size:1.05rem;text-decoration:none;border:0;cursor:pointer;transform:skewX(-9deg);box-shadow:5px 5px 0 var(--ink)}
.btn>span{transform:skewX(9deg);display:inline-block}
.btn:hover{background:var(--coral-d)}
.btn:focus-visible,.top a:focus-visible,.top button:focus-visible{outline:3px solid #fff;outline-offset:2px}
.btn.ghost{background:transparent;color:inherit;border:2px solid currentColor;box-shadow:none}
.btn.small{padding:9px 16px;font-size:.9rem;box-shadow:3px 3px 0 var(--ink)}

/* hero */
.hero{background:var(--ink);color:#fff;padding:56px 0 40px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 60px,#ffffff08 60px 62px);pointer-events:none}
.hero .wrap{position:relative}
.herohead{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:20px 56px;align-items:end}
@media (max-width:1000px){.herohead{grid-template-columns:1fr}}
.hero h1{font-size:clamp(3rem,7.4vw,7.6rem);max-width:none}
.herocopy .lead{margin:0 0 24px;font-size:1.15rem}
.hero h1 em{font-style:inherit;color:var(--coral)}
.hero .lead{color:#C7D5F2}
.cta{display:flex;gap:22px;flex-wrap:wrap;align-items:center}
.stage{margin-top:36px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:0;border:2px solid #ffffff33;background:#06142F}
@media (max-width:900px){.stage{grid-template-columns:1fr}}
.track{position:relative;background:radial-gradient(circle at 30% 20%,#12306a 0,#071a3c 70%);min-height:360px}
.track .map{position:absolute;inset:0;z-index:0}
.callout{position:absolute;left:14px;bottom:14px;background:#06142Fee;border:1px solid #ffffff44;padding:12px 16px;min-width:240px;border-left:6px solid var(--coral)}
.callout b{font-stretch:75%;font-style:italic;font-weight:900;font-size:1.5rem;text-transform:uppercase;display:block;line-height:1}
.callout .eta{font-stretch:62%;font-weight:900;font-style:italic;font-size:3.4rem;line-height:1;display:block;margin-top:6px}
.callout small{color:#9DB0D6;font-size:.8rem}
.tower{background:#071a3c;border-left:2px solid #ffffff22;display:flex;flex-direction:column;min-width:0}
@media (max-width:900px){.tower{border-left:0;border-top:2px solid #ffffff22}}
.tower header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #ffffff22;font-stretch:75%;font-weight:800;font-style:italic;text-transform:uppercase}
.clock{font-variant-numeric:tabular-nums;color:var(--yellow)}
.tower ol{list-style:none;margin:0;padding:0;flex:1}
.tower li{display:grid;grid-template-columns:30px 40px 1fr auto 18px;gap:8px;align-items:center;padding:7px 14px;border-bottom:1px solid #ffffff12;cursor:pointer;transition:background .15s;font-size:.95rem}
.tower li:hover,.tower li.sel{background:#ffffff14}
.tower li.sel{box-shadow:inset 5px 0 0 var(--coral)}
.pos{font-stretch:62%;font-weight:900;font-style:italic;font-size:1.3rem;text-align:center}
.bib{background:#fff;color:var(--ink);font-weight:900;font-size:.85rem;text-align:center;padding:1px 0;border-radius:2px}
.name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.gap{font-variant-numeric:tabular-nums;color:#C7D5F2;font-size:.85rem}
.sectors{display:flex;gap:2px}
.sec{display:inline-block;width:9px;height:12px;transform:skewX(-20deg);background:#ffffff26}
.sec.p{background:var(--purple)}.sec.g{background:var(--green)}.sec.y{background:var(--yellow)}
.flags{padding:8px 14px;min-height:46px;font-size:.9rem;border-top:1px solid #ffffff22}
.flag{border-left:6px solid var(--yellow);padding:3px 10px;background:#ffffff10;margin-top:4px}
.flag.sos{border-color:#ff3b3b}.flag.fin{border-color:var(--green)}
.controls{display:flex;gap:14px 22px;flex-wrap:wrap;padding:14px;border-top:2px solid #ffffff22;background:#06142F}
.grp{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.gl{flex-basis:100%;font-size:.8rem;color:#9DB0D6;font-weight:600}
.chip{background:transparent;border:1px solid #ffffff77;color:#fff;font:inherit;font-weight:700;font-size:.9rem;padding:0 14px;min-height:40px;cursor:pointer;border-radius:2px}
.chip:hover{background:#ffffff22}
.chip[aria-pressed="true"]{background:#fff;color:var(--ink)}
.chip:focus-visible{outline:3px solid #FFD60A;outline-offset:2px}
.chip.danger{border-color:#ff5252;color:#ff8a8a}
.winner{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:#06142Fd0;text-align:center;padding:20px}
.winner.on{display:flex}
.winner .display{font-size:clamp(2.4rem,6vw,5rem)}

/* sections */
section{padding:96px 0}
section.alt{background:var(--bg2)}
.sechead{margin-bottom:48px}
.sechead .lead{margin-top:20px}
.who{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;border:2px solid var(--text)}
.who article{padding:28px;border-right:2px solid var(--text);border-bottom:2px solid var(--text);margin:0 -2px -2px 0}
.who article:hover{background:var(--ink);color:#fff}
.who article:hover li::marker{color:var(--coral)}
.who .num{font-stretch:62%;font-weight:900;font-style:italic;font-size:5.5rem;line-height:.8;color:var(--coral);display:block;margin-bottom:10px}
.who ul{padding-left:1.1em;margin:14px 0 0}.who li{margin-bottom:.5em}

.shots{display:grid;grid-template-columns:repeat(12,1fr);gap:28px;align-items:start}
figure{margin:0}
figure img{border:1px solid var(--line);box-shadow:10px 10px 0 var(--ink);background:#fff}
:root[data-theme="dark"] figure img{box-shadow:10px 10px 0 #000}
figcaption{margin-top:16px;font-size:.95rem;color:var(--mute);max-width:52ch}
figcaption b{color:var(--text);display:block;font-stretch:75%;font-weight:800;font-style:italic;text-transform:uppercase;font-size:1.25rem;line-height:1.1;margin-bottom:4px}
.shots .big{grid-column:span 8}.shots .tall{grid-column:span 4}.shots .half{grid-column:span 6}
.phone img{border-radius:22px;border:6px solid var(--ink);margin:0 auto;width:100%;max-width:300px;height:auto}
@media (max-width:900px){.shots .big,.shots .tall,.shots .half{grid-column:span 12}}

/* guides */
.tabs{display:flex;gap:0;margin-bottom:40px;border-bottom:3px solid var(--text);flex-wrap:wrap}
.tabs button{font:inherit;font-stretch:62%;font-weight:900;font-style:italic;text-transform:uppercase;font-size:clamp(1.5rem,4vw,2.4rem);padding:10px 22px;background:transparent;color:var(--mute);border:0;cursor:pointer}
.tabs button[aria-selected="true"]{background:var(--ink);color:#fff}
.steps{list-style:none;counter-reset:s;margin:0;padding:0;display:grid;gap:56px}
.steps>li{counter-increment:s;display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
.steps>li:has(>.phoneimg){grid-template-columns:minmax(0,1fr) 270px;gap:36px}
.steps>li>img{width:100%;max-width:900px;height:auto}
@media (max-width:760px){.steps>li:has(>.phoneimg){grid-template-columns:1fr}.steps .phoneimg{justify-self:center}}
.doc{max-width:840px}
.doc .sechead .lead{max-width:none}
.steps p,.steps ol.sub{max-width:72ch}
.steps h3::before{content:counter(s);display:inline-block;background:var(--coral-btn);color:#fff;min-width:2.2rem;text-align:center;padding:0 .4rem;margin-right:.7rem;transform:skewX(-9deg)}
.steps img{border:1px solid var(--line);box-shadow:8px 8px 0 var(--ink)}
.steps .phoneimg img{width:100%;max-width:270px;height:auto;border-radius:20px;border:5px solid var(--ink);margin:0 auto}
.tip{border-left:6px solid var(--yellow);background:var(--bg2);padding:12px 16px;margin:14px 0 0;max-width:62ch;font-size:.95rem}
.panel[hidden]{display:none}
kbd{font:inherit;font-weight:700;background:var(--bg2);border:1px solid var(--line);padding:0 6px}

/* story */
.story{max-width:68ch}
.story p{font-size:1.1rem;margin:0 0 18px}
.story-cta{margin-top:28px!important;padding-top:20px;border-top:3px solid var(--text)}
.story-cta a{font-weight:700}

/* how */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:36px}
.facts div b{display:block;font-stretch:62%;font-weight:900;font-style:italic;font-size:3.6rem;line-height:.9;color:var(--coral)}
details{border-top:2px solid var(--text);padding:16px 0}
details:last-of-type{border-bottom:2px solid var(--text)}
summary{cursor:pointer;font-weight:800;font-size:1.2rem}
details p{margin-top:10px}
.final{background:var(--ink);color:#fff;text-align:left}
.final .display{font-size:clamp(3rem,10vw,8.5rem)}
.final .lead{color:#C7D5F2;margin:24px 0 30px}
footer{background:#06142F;color:#9DB0D6;padding:34px 0;font-size:.9rem}
footer .wrap{display:flex;gap:20px;flex-wrap:wrap;justify-content:space-between}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

[hidden]{display:none!important}

/* map markers like the application's (numbered circles; selected = yellow ring) */
.track .leaflet-container{background:#0b1d3f;font-family:var(--font)}
.track .leaflet-container img{max-width:none!important}
.mk{display:flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid #fff;background:#3DA5FF;color:#fff;font:700 11px var(--font);box-shadow:0 1px 4px rgba(0,0,0,.5)}
.mk.warn{background:#FF1E3C}.mk.dim{background:#5C6275}.mk.sel{outline:3px solid #FFD60A}
.track .callout{z-index:1000}.track .winner{z-index:1100}

/* narrow screens: the map on top, the rider card below it (not over the map) */
@media (max-width:900px){
  .track{display:flex;flex-direction:column;min-height:0}
  .track .map{position:relative;inset:auto;height:360px;flex:none}
  .track .callout{position:static;min-width:0;border-left-width:6px;border-top:1px solid #ffffff33}
}

.steps ol.sub{list-style:decimal;padding-left:1.3em;margin:0 0 1em;max-width:62ch}
.steps ol.sub li{margin-bottom:.6em}
.steps code{font:inherit;font-weight:700;background:var(--bg2);border:1px solid var(--line);padding:0 5px}
.steps p a,.steps ol.sub a,.tip a,details a,figcaption a{color:var(--link);font-weight:700;text-underline-offset:3px}

.steps figure.ex{margin:22px 0 0;max-width:820px}
.steps figure.ex img{width:100%;height:auto;border:1px solid var(--line);box-shadow:8px 8px 0 var(--ink)}
.steps figure.ex figcaption{margin-top:14px}

.steps p.badges{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:18px 0}
.steps p.badges a{display:inline-flex;line-height:0}
.steps p.badges img{height:56px;width:auto;border:0;box-shadow:none}
.steps p.badges img.play{height:80px;margin:-12px -6px}

/* facts as a definition list */
.spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 48px;margin:32px 0 0}
.spec>div{border-top:2px solid var(--text);padding:14px 0 18px}
.spec dt{font-stretch:75%;font-weight:800;font-style:italic;text-transform:uppercase;font-size:1.2rem;line-height:1.1;margin-bottom:6px}
.spec dd{margin:0;color:var(--mute);max-width:46ch}
section#what{padding-bottom:40px}
details{max-width:100%}
summary{padding:6px 0;min-height:44px;display:flex;align-items:center}
.tabs button{min-height:48px}
@media (max-width:640px){section{padding:64px 0}.tabs button{padding:8px 14px}}

.share{margin:-18px 0 36px}
.linkbtn{font:inherit;font-weight:700;color:var(--link);background:none;border:0;border-bottom:2px solid currentColor;padding:6px 2px;cursor:pointer;min-height:36px}
#copied{margin-left:10px;color:var(--mute)}

@media (max-width:520px){.top nav>a.appnav{display:none}.seg a{padding:0 9px}.seg button{padding:0 9px}.top .wrap{padding:0 12px}.logo{font-size:1.25rem}}
