:root{color-scheme:dark;--ink:#0e191d;--panel:#0e201b;--panel-2:#162b25;--surface:#1c2c32;--surface-hover:#1e3038;--radar:#8aa4a8;--radar-soft:rgba(138,164,168,.16);--amber:#d2a437;--amber-soft:rgba(210,164,55,.16);--text:#f2f4f1;--muted:#91a8ab;--muted-2:#60777b;--line:rgba(145,168,171,.14);--max:1180px;--portal-bar-height:76px}
[data-theme="light"]{color-scheme:light;--ink:#f5f1e8;--panel:#ede8da;--panel-2:#e0d9c8;--surface:#ede8da;--surface-hover:#e0d9c8;--radar:#087a5b;--radar-soft:rgba(8,122,91,.12);--text:#0e191d;--muted:#52686c;--muted-2:#5b7175;--line:#b5a88e;--amber:#8a6500;--amber-soft:rgba(138,101,0,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:var(--ink);font-family:"Barlow",sans-serif;font-weight:300}a{color:inherit}.home main{padding-top:64px}
body.home{background:linear-gradient(#0e191d 0 64px,var(--ink) 64px) fixed}
.topbar{position:fixed;z-index:100;inset:0 0 auto;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,56px);color:var(--text);background:var(--ink)}
.home .topbar{background:transparent}
.home .topbar{--text:#f2f4f1;--muted:#91a8ab;color:#e6eeee}.mini-mark{display:inline-flex;align-items:center;gap:10px;text-decoration:none}.mini-mark img{display:block;flex:none}.mini-mark-wordmark{width:auto;height:27px}.mini-mark-logomark{width:34px;height:34px}.mini-mark-logomark-light{display:none!important}.footer-mark{font:600 15px/1 "Barlow Condensed",sans-serif;letter-spacing:.27em;text-decoration:none}.topnav{display:flex;align-items:center;gap:24px}
.topnav a,.site-footer nav a{color:var(--muted);font:400 9px/1 "IBM Plex Mono",monospace;letter-spacing:.18em;text-decoration:none;text-transform:uppercase;transition:color .2s ease}.topnav a{display:flex;align-items:center;gap:8px}.topnav a:hover,.site-footer a:hover{color:var(--text)}.topnav svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.4}.nav-rule{width:1px;height:14px;background:rgba(255,255,255,.15)}
.theme-toggle{position:fixed;z-index:91;top:calc(50% - 148px);right:36px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;background:transparent;color:var(--text);cursor:pointer;transition:color .2s,transform .12s}.theme-toggle:hover{opacity:.72}.theme-toggle:active{transform:translateY(1px)}.theme-toggle:focus-visible{outline:1px solid currentColor;outline-offset:4px}.theme-toggle svg{display:block;width:28px;height:28px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.theme-sun,.theme-moon{transform-box:view-box;transform-origin:16px 12px}.theme-sun circle,.theme-moon path{fill:currentColor;stroke:currentColor}.theme-sun path{stroke:currentColor}.theme-toggle[data-theme="light"] .theme-sun{opacity:1;transform:translateY(0) rotate(0)}.theme-toggle[data-theme="light"] .theme-moon{opacity:0;transform:translateY(17px) rotate(-18deg)}.theme-toggle[data-theme="dark"] .theme-sun{opacity:0;transform:translateY(17px) rotate(18deg)}.theme-toggle[data-theme="dark"] .theme-moon{opacity:1;transform:translateY(0) rotate(0)}.theme-toggle.is-ready .theme-sun,.theme-toggle.is-ready .theme-moon{transition:transform .7s cubic-bezier(.45,0,.2,1),opacity .42s ease;transition-delay:0s,0s}.theme-toggle.is-ready .theme-sun{transition-duration:.72s,.38s}.theme-toggle.is-ready[data-theme="light"] .theme-sun,.theme-toggle.is-ready[data-theme="dark"] .theme-moon{transition-delay:0s,.2s}
.radar-hero{--ink:#0e191d;--radar:#8aa4a8;--amber:#d2a437;--text:#f2f4f1;--muted:#91a8ab;--muted-2:#60777b;min-height:380px;height:65vh;position:relative;display:grid;place-items:center;overflow:hidden;isolation:isolate;background:var(--ink)}.radar-hero:after{content:"";position:absolute;z-index:-1;inset:auto 0 0;height:18%;background:linear-gradient(transparent,var(--ink))}
.scope-glow-core{stop-color:#233a42}.scope-glow-mid{stop-color:#13242a}.scope-glow-edge{stop-color:#0b1519}.sweep-stop{stop-color:var(--radar)}
.scope-shell{position:absolute;width:min(95vw,max(356px,calc(65vh - 24px)),800px);aspect-ratio:1;opacity:1}.radar{width:100%;height:100%;overflow:visible}.scope-grid{fill:none;stroke:var(--muted-2);stroke-width:.7;opacity:1}.scope-grid path{stroke-dasharray:2 13;opacity:.28}.scope-grid circle:not(.range-limit){opacity:.36}.scope-grid .range-limit{stroke:var(--muted);stroke-width:1.25;opacity:.72}
.compass,.scope-readout{fill:var(--muted-2);font:400 10px "IBM Plex Mono",monospace;letter-spacing:.16em}.airspace-map{fill:none;stroke:var(--muted);stroke-width:.8;opacity:.34}.airspace-map .runway{stroke:var(--text);stroke-width:7;stroke-dasharray:none;opacity:.42}.airspace-map .approach{stroke:var(--amber);stroke-width:1;stroke-dasharray:12 8;opacity:.8}
.sweep-arm{transform-origin:450px 450px;animation:sweep 5s linear infinite}.sweep-arm line{stroke:var(--radar);stroke-width:1;opacity:.78;filter:drop-shadow(0 0 4px rgba(138,164,168,.55))}@keyframes sweep{to{transform:rotate(360deg)}}
.track{fill:var(--muted);stroke:var(--muted);stroke-width:.7}.track text{stroke:none;fill:var(--muted);font:400 var(--radar-label-size,22px) "IBM Plex Mono",monospace;letter-spacing:.04em}.track .call{fill:var(--text);font-weight:500}.muted-track{opacity:.55}.focus-track{fill:var(--amber);stroke:var(--amber);animation:track-pulse 2.8s ease-in-out infinite}.focus-track text,.focus-track .call{fill:var(--amber)}@keyframes track-pulse{50%{filter:drop-shadow(0 0 5px rgba(210,164,55,.75))}}
.hero-copy{position:relative;z-index:2;text-align:center;pointer-events:none}.hero-copy h1{margin:7px 0 14px;font:700 clamp(68px,12vw,134px)/.82 "Barlow Condensed",sans-serif;letter-spacing:.19em;text-indent:.19em}.eyebrow,.section-kicker{margin:0;color:var(--amber);font:400 9px/1.4 "IBM Plex Mono",monospace;letter-spacing:.36em;text-transform:uppercase}
.cycle{display:flex;align-items:center;justify-content:center;gap:11px;margin:0;color:var(--muted);font:300 9px/1 "IBM Plex Mono",monospace;letter-spacing:.2em;text-transform:uppercase}.cycle i{width:3px;height:3px;background:var(--amber);transform:rotate(45deg);opacity:.6}
.scroll-cue{position:absolute;bottom:34px;left:50%;display:grid;justify-items:center;gap:10px;color:var(--muted-2);font:400 8px "IBM Plex Mono",monospace;letter-spacing:.25em;text-decoration:none;text-transform:uppercase;transform:translateX(-50%)}.scroll-cue b{color:var(--amber);font-size:15px;font-weight:300;animation:nudge 1.8s ease-in-out infinite}@keyframes nudge{50%{transform:translateY(6px)}}
.scroll-flight{position:fixed;z-index:90;top:50%;right:40px;width:24px;height:220px;cursor:grab;touch-action:none;user-select:none;transform:translateY(-50%);filter:drop-shadow(0 0 9px rgba(14,25,29,.9))}.scroll-flight:before{content:"";position:absolute;inset:0 -12px}.scroll-flight.is-dragging{cursor:grabbing}.scroll-flight:focus-visible{outline:1px solid rgba(210,164,55,.62);outline-offset:7px}.scroll-flight>svg{display:block;width:100%;height:100%;overflow:visible}.scroll-flight-source{fill:var(--amber)}.scroll-flight-destination{fill:var(--text)}.scroll-flight-past{stroke:var(--amber);stroke-width:3;stroke-dasharray:7 9;stroke-linecap:butt}.scroll-flight-ahead{stroke:var(--amber);stroke-width:3;stroke-linecap:butt;opacity:.88}.scroll-flight-direction{transform:rotate(180deg);transform-box:fill-box;transform-origin:center;transition:transform .2s ease;filter:drop-shadow(0 0 4px rgba(210,164,55,.28))}.scroll-flight-symbol{display:block;fill:var(--text)}.scroll-flight.is-up .scroll-flight-direction{transform:rotate(0deg)}
.positioning{width:100%;margin:0}.positioning-stick{width:min(100% - 48px,580px);min-height:calc(35vh - 52px);margin:0 auto;padding:clamp(24px,3.5vh,48px) 0 clamp(28px,4vh,54px);border-top:1px solid rgba(196,144,32,.1);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.positioning h1{margin:16px 0 18px;font:600 clamp(30px,4vw,42px)/1 "Barlow Condensed",sans-serif;letter-spacing:.06em;text-transform:uppercase}.positioning-swap{width:100%}.swap-panel{max-width:580px;margin:0 auto;color:var(--muted);font-size:14px;line-height:1.9;text-wrap:balance}.swap-panel+.swap-panel{margin-top:16px}html.swap-pending .positioning-swap{position:relative}html.swap-pending .swap-panel:not(:first-child){position:absolute;top:0;left:0;right:0;opacity:0}html.swap-ready .positioning{height:170vh}html.swap-ready .positioning-stick{position:sticky;top:30vh}html.swap-ready .positioning-swap{position:relative}html.swap-ready .swap-panel{position:absolute;top:0;left:0;right:0;margin:0 auto;opacity:0;transform:translateY(20px);transition:transform .4s cubic-bezier(.45,0,.2,1),opacity .2s ease}html.swap-ready .swap-panel.is-active{opacity:1;transform:none;transition:transform .42s cubic-bezier(.45,0,.2,1),opacity .24s ease .1s}
.flight-identity{width:min(100% - 48px,960px);margin:0 auto clamp(72px,9vw,120px);padding:clamp(34px,5vw,62px);border:1px solid var(--line);display:grid;grid-template-columns:minmax(0,.85fr) minmax(340px,1.15fr);align-items:center;gap:clamp(30px,6vw,72px);background:linear-gradient(135deg,rgba(14,32,27,.72),rgba(7,17,15,.2))}.flight-identity h2{margin:16px 0 18px;font:600 clamp(30px,4vw,44px)/1 "Barlow Condensed",sans-serif;letter-spacing:.06em;text-transform:uppercase}.flight-identity-copy>p:last-child{margin:0;color:var(--muted);font-size:14px;line-height:1.8}.flight-symbol-card{border-left:1px solid var(--line)}.flight-symbol-card svg{display:block;width:100%;height:auto}.symbol-vector{fill:none;stroke:var(--radar);stroke-width:1.4;opacity:.76}.directional-symbol{filter:drop-shadow(0 0 7px rgba(138,164,168,.28))}.symbol-leader{fill:none;stroke:var(--radar);stroke-width:1;stroke-dasharray:3 5;opacity:.65}.symbol-data{fill:var(--radar);font:400 10px "IBM Plex Mono",monospace;letter-spacing:.11em}.symbol-data .symbol-call{fill:var(--text);font-weight:500;font-size:12px}
.statement{padding:clamp(56px,9vh,104px) clamp(24px,6vw,80px);border-top:1px solid rgba(196,144,32,.1);background:var(--ink);text-align:center}
.statement-inner{max-width:760px;margin:0 auto;transition:opacity .65s ease,transform .65s ease}
.statement-title{margin:14px 0 clamp(26px,4vh,42px);color:var(--text);font:600 clamp(24px,3.2vw,38px)/1.15 "Barlow Condensed",sans-serif;letter-spacing:.09em;text-transform:uppercase}
.statement-body{max-width:620px;margin:0 auto;color:var(--muted);font:300 clamp(14px,1.35vw,16px)/1.9 "Barlow",sans-serif;text-wrap:balance}

.intel-refrain{margin:clamp(24px,3.5vh,38px) 0 0;color:var(--amber);font:400 11px/1.4 "IBM Plex Mono",monospace;letter-spacing:.3em;text-transform:uppercase}
.sec-label{margin:0;color:var(--amber);font:300 8px/1.4 "IBM Plex Mono",monospace;letter-spacing:.42em;text-transform:uppercase}.features{padding:clamp(32px,5vh,64px) clamp(24px,6vw,80px) clamp(48px,8vh,96px);background:var(--ink)}.features-header{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:clamp(32px,5vh,56px);padding-bottom:24px;border-bottom:1px solid rgba(210,164,55,.1);text-align:center;transition:opacity .6s ease,transform .6s ease}.features-title{margin:0;color:var(--text);font:600 clamp(22px,3vw,36px)/1.2 "Barlow Condensed",sans-serif;letter-spacing:.1em;text-transform:uppercase}.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.statement+.features{border-top:1px solid rgba(196,144,32,.1)}.feat-card{display:flex;flex-direction:column;gap:12px;margin:0;padding:clamp(24px,3.5vh,40px) clamp(20px,2.5vw,36px);border-top:1px solid rgba(145,168,171,.06);background:#1c2c32;transition:background .25s,opacity .55s ease,transform .55s ease}.feat-card:hover{background:#1e3038}.feat-num{margin:0;color:var(--amber);font:300 10px/1.4 "IBM Plex Mono",monospace;letter-spacing:.3em}.feat-name{margin:0;color:var(--text);font:600 clamp(15px,1.6vw,20px)/1.2 "Barlow Condensed",sans-serif;letter-spacing:.12em;text-transform:uppercase}.feat-desc{margin:0;color:var(--muted);font:300 clamp(14px,1.2vw,15px)/1.85 "Barlow",sans-serif}.notify{padding:clamp(72px,12vh,128px) clamp(24px,6vw,80px);border-top:1px solid rgba(210,164,55,.12);background:#1c2c32;text-align:center}.notify-inner{max-width:680px;margin:0 auto;transition:opacity .65s ease,transform .65s ease}.notify-title{margin:18px 0 20px;color:var(--text);font:700 clamp(36px,5vw,66px)/1.05 "Barlow Condensed",sans-serif;letter-spacing:.1em;text-transform:uppercase}.notify-body{margin:0 0 40px;color:var(--muted);font:300 14px/1.9 "Barlow",sans-serif}.notify-form{display:flex;flex-direction:column;gap:10px;max-width:420px;margin:0 auto 14px}.notify-row{display:flex}.notify-input{min-width:0;flex:1;padding:14px 16px;border:1px solid rgba(145,168,171,.18);border-right:0;outline:0;background:var(--ink);color:var(--text);font:300 11px/1.4 "IBM Plex Mono",monospace;letter-spacing:.1em;transition:border-color .2s}.notify-input::placeholder{color:var(--muted-2)}.notify-input:focus{border-color:rgba(145,168,171,.45)}.notify-btn{flex-shrink:0;padding:14px 22px;border:0;background:var(--amber);color:var(--ink);font:600 11px/1.4 "Barlow Condensed",sans-serif;letter-spacing:.22em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:background .2s,opacity .2s}.notify-btn:hover{background:#d9ae42}.notify-note{width:100%;box-sizing:border-box;padding:12px 16px;border:1px solid rgba(145,168,171,.18);outline:0;background:var(--ink);color:var(--text);font:300 11px/1.7 "IBM Plex Mono",monospace;letter-spacing:.06em;resize:none;transition:border-color .2s}.notify-note::placeholder{color:var(--muted-2)}.notify-note:focus{border-color:rgba(145,168,171,.45)}.notify-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.notify-form[hidden]{display:none}.notify-btn[disabled]{opacity:.55;cursor:default}.notify-btn.is-sent,.notify-btn.is-sent:hover,.notify-btn.is-sent[disabled]{opacity:1;background:0 0;color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber);cursor:default;transition:none}.notify-error{display:none;margin:0;padding:18px 0;color:var(--amber);font:300 10px/1.6 "IBM Plex Mono",monospace;letter-spacing:.28em;text-transform:uppercase}.notify-success:focus{outline:none}.notify-success{display:none;margin:0;padding:18px 0;color:var(--muted);font:300 10px/1.4 "IBM Plex Mono",monospace;letter-spacing:.28em;text-transform:uppercase}.reveal-ready .statement-inner,.reveal-ready .features-header,.reveal-ready .feat-card,.reveal-ready .notify-inner{opacity:0;transform:translateY(18px)}.reveal-ready .features-header{transform:translateY(12px)}.reveal-ready .statement-inner.visible,.reveal-ready .features-header.visible,.reveal-ready .feat-card.visible,.reveal-ready .notify-inner.visible{opacity:1;transform:translateY(0)}
.site-footer{min-height:84px;padding:22px clamp(20px,4vw,56px);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;align-items:center;gap:26px;color:var(--muted-2);font:300 9px/1.5 "IBM Plex Mono",monospace;letter-spacing:.08em}.site-footer>div{display:flex;align-items:center;white-space:nowrap}.site-footer .footer-mark{display:inline-flex;align-items:center;text-decoration:none}.site-footer .footer-mark img{display:block;width:auto;height:38px}.site-footer nav{display:flex;gap:24px}
.interior{padding-top:76px}.interior .topbar{position:fixed}.page-main{max-width:var(--max);min-height:calc(100vh - 160px);margin:0 auto;padding:clamp(72px,9vw,130px) 28px}.page-heading{max-width:820px;margin-bottom:80px}.page-heading h1{margin:18px 0 24px;font:600 clamp(54px,8vw,96px)/.92 "Barlow Condensed",sans-serif;letter-spacing:.04em;text-transform:uppercase}.page-heading .lead{color:var(--muted);font-size:clamp(17px,2vw,21px);line-height:1.65;max-width:700px}
.content-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.content-card{min-height:260px;padding:35px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.content-card .num{color:var(--amber);font:400 9px "IBM Plex Mono",monospace;letter-spacing:.24em}.content-card h2{margin:42px 0 13px;font:600 25px "Barlow Condensed",sans-serif;letter-spacing:.09em;text-transform:uppercase}.content-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.8}
.content-copy{max-width:760px;color:var(--muted);font-size:16px;line-height:1.85}.content-copy h1{color:var(--text);font:600 clamp(48px,7vw,76px)/.95 "Barlow Condensed",sans-serif;letter-spacing:.04em;text-transform:uppercase}.content-copy h2{margin:55px 0 13px;color:var(--text);font:600 28px "Barlow Condensed",sans-serif;letter-spacing:.06em;text-transform:uppercase}.content-copy h3{margin-top:34px;color:var(--text);font:500 19px "Barlow Condensed",sans-serif;letter-spacing:.04em;text-transform:uppercase}.content-copy a{color:var(--amber);text-underline-offset:3px}.content-copy ul{padding-left:20px}.legal-note,.note{padding:18px 20px;border-left:2px solid var(--amber);background:var(--amber-soft);color:var(--muted)}
/* Authoritative radar contract: docs/product/specs/ui/radar.md */
/* Radar is the hero: fixed geography and rings, moving sweep, directional tracks. */
.airspace-map{opacity:.3}
.range-labels{fill:var(--muted);opacity:.6;font:400 8px "IBM Plex Mono",monospace;letter-spacing:.12em}
.sweep-arm{animation-duration:5s}.sweep-arm line{stroke:var(--radar);opacity:.78;filter:drop-shadow(0 0 4px rgba(138,164,168,.55))}
.track{fill:var(--radar);stroke:var(--radar)}.track text{fill:var(--radar)}.track .call{fill:var(--text)}.track .leader{stroke-dasharray:2 3;opacity:.58}.track .vector{stroke-width:1;opacity:.72}.track .target{stroke:none}.attention-ring{fill:none;stroke-width:.8;stroke-dasharray:2 3;opacity:.78}.focus-track{fill:var(--amber);stroke:var(--amber)}.focus-track text,.focus-track .call{fill:var(--amber)}
.hero-copy{position:absolute;z-index:3;left:clamp(22px,4vw,58px);bottom:clamp(74px,10vh,112px);max-width:330px;text-align:left;pointer-events:none}
.hero-copy h1{margin:11px 0 9px;font:500 clamp(27px,3.2vw,42px)/1.02 "Barlow Condensed",sans-serif;letter-spacing:.045em;text-indent:0;text-transform:uppercase}
.hero-copy>p:last-child{margin:0;color:var(--muted);font:300 12px/1.6 "IBM Plex Mono",monospace;letter-spacing:.04em}
@media(max-width:900px){.feat-grid{grid-template-columns:repeat(2,1fr)}.swap-panel{font-size:13px;line-height:1.7}}
@media(max-width:760px){.topbar{height:64px;padding:0 20px}.interior{padding-top:64px}.topnav{gap:14px}.nav-rule{height:12px}.topnav a{gap:6px}.topnav a span{display:none}.scroll-flight{right:20px;width:19px;height:190px}.radar-hero{min-height:380px;height:65vh}.scope-shell{width:min(90vw,calc(65vh - 48px));transform:none}.track text tspan:not(.call){display:none}.positioning-stick{width:min(100% - 40px,580px);padding-top:24px}.positioning h1{font-size:24px;white-space:nowrap}.flight-identity{width:min(100% - 40px,580px);grid-template-columns:1fr;padding:28px 20px;gap:28px}.flight-symbol-card{border-left:0;border-top:1px solid var(--line);padding-top:18px}.content-grid{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr;text-align:center}.site-footer>div,.site-footer nav{justify-content:center}}
@media(max-width:520px){.scroll-flight{right:17px;width:16px;height:164px;opacity:.84}.features{padding:40px 20px}.feat-grid{grid-template-columns:1fr;gap:1px}.notify-row{flex-direction:column}.notify-input{border-right:1px solid rgba(145,168,171,.18);border-bottom:0}.site-footer .footer-mark img{height:34px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sweep-arm,.focus-track,.scroll-cue b{animation:none}.scroll-flight-direction,.features-header,.feat-card,.notify-inner,.theme-toggle.is-ready .theme-sun,.theme-toggle.is-ready .theme-moon{transition:none}}

/* Theme surfaces, including the protected radar's daylight-chart treatment. */
.notify{border-top-color:rgba(196,144,32,.1)}
.features-header{border-bottom-color:rgba(196,144,32,.1)}
.feat-card,.notify{background:var(--surface)}
.feat-card:hover{background:var(--surface-hover)}
[data-theme="light"] .flight-identity{background:linear-gradient(135deg,rgba(237,232,218,.9),rgba(224,217,200,.45))}
[data-theme="light"] .scroll-flight{filter:drop-shadow(0 1px 3px rgba(14,25,29,.16))}
[data-theme="light"] .scroll-flight-direction{filter:drop-shadow(0 1px 2px rgba(14,25,29,.18))}
[data-theme="light"] body.home{background:linear-gradient(#f5f1e8 0 64px,var(--ink) 64px) fixed}
[data-theme="light"] .home .topbar{--text:#0e191d;--muted:#52686c;color:#0e191d}
[data-theme="light"] .home .nav-rule{background:rgba(14,25,29,.16)}
[data-theme="light"] .home .mini-mark-logomark-dark{display:none!important}
[data-theme="light"] .home .mini-mark-logomark-light{display:block!important}
[data-theme="light"] .radar-hero{--ink:#f5f1e8;--radar:#8aa4a8;--amber:#8a6500;--text:#0e191d;--muted:#52686c;--muted-2:#5b7175}
[data-theme="light"] .scope-glow-core{stop-color:#d6ded7;stop-opacity:.5}
[data-theme="light"] .scope-glow-mid{stop-color:#e7eadf;stop-opacity:.24}
[data-theme="light"] .scope-glow-edge{stop-color:#f5f1e8}
[data-theme="light"] .scope-grid circle:not(.range-limit){opacity:.3}
[data-theme="light"] .scope-grid .range-limit{opacity:.62}
[data-theme="light"] .airspace-map{opacity:.26}
[data-theme="light"] .airspace-map .runway{opacity:.25}
[data-theme="light"] .airspace-map .approach{opacity:.66}
[data-theme="light"] .sweep-arm line{filter:drop-shadow(0 0 4px rgba(138,164,168,.55))}
[data-theme="light"] .muted-track{opacity:.68}
[data-theme="light"] .positioning,
[data-theme="light"] .features-header,
[data-theme="light"] .feat-card,
[data-theme="light"] .notify,
[data-theme="light"] .notify-input,
[data-theme="light"] .notify-input:focus,
[data-theme="light"] .notify-note,
[data-theme="light"] .notify-note:focus,
[data-theme="light"] .legal-note,
[data-theme="light"] .note{border-color:var(--line)}
[data-theme="light"] .interior .nav-rule{background:var(--line)}
@media print{.theme-toggle{display:none}}
@media(max-width:760px){.theme-toggle{top:calc(50% - 132px);right:16px;width:26px;height:26px}.theme-toggle svg{width:22px;height:22px}}@media(max-width:520px){.theme-toggle{right:12px}}

/* Footer-to-header navigation journey. */
.topbar{transform:translateY(var(--topbar-shift,0));will-change:transform}
.topbar.topbar-away{pointer-events:none}
.portal-bar{background:var(--ink);color:var(--text)}

.site-footer.portal-bar{min-height:76px;padding:0 clamp(20px,4vw,56px);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;align-items:center;gap:32px}
.portal-nav{display:flex;align-items:center;justify-content:flex-end;gap:clamp(16px,2vw,28px)}
.portal-nav a{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font:400 9px/1 "IBM Plex Mono",monospace;letter-spacing:.18em;text-decoration:none;text-transform:uppercase;white-space:nowrap;transition:color .2s ease}
.portal-nav a:hover,.portal-nav a:focus-visible,.portal-nav a[aria-current="page"]{color:var(--text)}
.portal-nav a[aria-current="page"]:after{content:"";width:3px;height:3px;margin-left:1px;background:var(--amber);transform:rotate(45deg)}
.portal-nav svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.4}
.portal-bar .nav-rule{background:color-mix(in srgb,var(--muted) 30%,transparent)}
.portal-bar .mini-mark{justify-self:start}
.portal-ready .theme-toggle,.portal-ready .scroll-flight{transition:opacity .28s ease,color .2s,transform .12s}

/* The scroll indicator tracks the whole journey, home content through sub-page,
   so it is never hidden. It is fixed and vertically centred, which keeps it
   clear of both the pinned bar and the end bar. */

/* One scroll container. The track is the sticky containing block, so the bar
   inside it is the footer of the content above it and then pins as the header
   of the sub-page. A matching bar is cloned to the very end of the sub-page,
   and the pinned one slides out of the way the moment that end bar rises into
   view, so the two are never on screen together. */
.portal-track{position:relative}
.portal-track>.site-footer.portal-bar{position:sticky;z-index:100;top:0;border-bottom:1px solid var(--line);will-change:transform}
.portal-ready .portal-track>.site-footer.portal-bar{transition:transform .3s cubic-bezier(.4,0,.2,1)}


.portal-content{position:relative;min-height:calc(100vh - var(--portal-bar-height));background:var(--ink)}
.portal-content:empty{display:none}

.legal-page{min-height:100%;overflow-x:clip;background:var(--ink)}
.legal-main.wrap{position:relative;z-index:2;max-width:820px;margin-inline:auto;min-height:calc(100vh - 76px);padding:clamp(88px,11vw,150px) 28px clamp(110px,13vw,180px);background:var(--ink)}
.legal-main:before{content:attr(data-section);display:block;margin-bottom:22px;color:var(--amber);font:400 9px/1.4 "IBM Plex Mono",monospace;letter-spacing:.36em;text-transform:uppercase}
.legal-main h1{max-width:760px;margin:0 0 32px;color:var(--text);font:700 clamp(36px,5vw,66px)/1.05 "Barlow Condensed",sans-serif;letter-spacing:.1em;text-transform:uppercase}
.legal-main .lead{max-width:680px;margin:0 0 40px;color:var(--muted);font-size:clamp(15px,1.6vw,18px);line-height:1.8}
.legal-main h2{margin:56px 0 16px;color:var(--text);font:600 clamp(22px,3vw,32px)/1.2 "Barlow Condensed",sans-serif;letter-spacing:.1em;text-transform:uppercase}
.legal-main h3{margin:34px 0 12px;color:var(--text);font:600 clamp(15px,1.6vw,20px)/1.2 "Barlow Condensed",sans-serif;letter-spacing:.12em;text-transform:uppercase}
.legal-main p,.legal-main li,.legal-main dd{color:var(--muted);font-size:16px;line-height:1.85}
.legal-main a{color:var(--amber);text-underline-offset:3px}
.legal-main ul{padding-left:22px}
.legal-main .note{margin:0 0 42px}

/* Standalone legal documents. Privacy and Terms are dedicated pages, so the
   bar is their header rather than a portal seam and no home content enters the
   document. The index sits inline at the top, which is where every European
   policy we compared puts it, and the house scroll-flight carries progress.
   Numbering follows the existing `sec-label` convention. Scoped to
   `.legal-doc` so `contact.html` keeps the portal behaviour unchanged. */
.legal-bar{position:sticky;top:0;z-index:100;border-top:0;border-bottom:1px solid var(--line)}
.legal-doc .lead{margin-bottom:22px}
.legal-date{margin:0;color:var(--amber);font:300 9px/1.4 "IBM Plex Mono",monospace;letter-spacing:.36em;text-transform:uppercase}
.legal-date span{color:var(--muted-2)}
.legal-switch{display:flex;flex-wrap:wrap;gap:7px;margin-top:26px}
.legal-switch a{padding:8px 15px;border:1px solid var(--line);color:var(--muted);font:400 9px/1.4 "IBM Plex Mono",monospace;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;transition:color .2s,border-color .2s,background .2s}
.legal-switch a:hover{border-color:var(--muted-2);color:var(--text)}
.legal-switch a[aria-current="page"]{border-color:var(--amber);background:var(--amber-soft);color:var(--amber)}
.legal-toc{margin:52px 0 10px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.legal-toc-label{margin:0 0 18px;color:var(--amber);font:300 8px/1.4 "IBM Plex Mono",monospace;letter-spacing:.42em;text-transform:uppercase}
.legal-toc ol{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:11px 34px;margin:0;padding:0;list-style:none;counter-reset:toc}
.legal-toc li{counter-increment:toc;padding-left:2.9em;text-indent:-2.9em;font-size:14px;line-height:1.5}
.legal-toc a{color:var(--muted);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.legal-toc a:before{content:counter(toc,decimal-leading-zero) " \00b7 ";color:var(--amber);font:300 10px "IBM Plex Mono",monospace;letter-spacing:.3em}
.legal-toc a:hover{color:var(--text);border-bottom-color:var(--amber)}
.legal-body{counter-reset:sec}
.legal-body>section{scroll-margin-top:calc(var(--portal-bar-height) + 22px)}
.legal-body>section>h2{counter-increment:sec}
.legal-body>section>h2:before{content:counter(sec,decimal-leading-zero) " \00b7 ";color:var(--amber);font:300 11px "IBM Plex Mono",monospace;letter-spacing:.3em;vertical-align:.2em}
.legal-body>section:first-child>h2{margin-top:12px}
.legal-entity{margin-top:30px!important;padding-top:22px;border-top:1px solid var(--line);color:var(--muted-2)!important;font-size:14px!important;line-height:1.9!important}
.legal-footer{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;max-width:820px;margin-inline:auto;padding:26px 28px 44px;border-top:1px solid var(--line)}
.legal-footer p{margin:0}
.legal-footer p,.legal-footer a{color:var(--muted-2);font:400 10px/1.6 "IBM Plex Mono",monospace;letter-spacing:.2em;text-transform:uppercase}
.legal-footer nav{display:flex;flex-wrap:wrap;gap:22px}
.legal-footer a{text-decoration:none;transition:color .2s}
.legal-footer a:hover{color:var(--text)}
.legal-footer a[aria-current="page"]{color:var(--amber)}

@media(max-width:760px){
  :root{--portal-bar-height:72px}
  .site-footer.portal-bar{min-height:72px;padding:0 18px;grid-template-columns:auto 1fr;gap:14px}
  .portal-bar .mini-mark-wordmark{display:none}
  .portal-bar .mini-mark-logomark{width:30px;height:30px}
  .portal-nav{gap:clamp(8px,2.7vw,18px)}
  .portal-nav a{gap:5px;font-size:8px;letter-spacing:.12em}
  .portal-nav svg{width:13px;height:13px}
  .portal-bar .nav-rule{height:12px}
  .legal-main.wrap{min-height:calc(100vh - 72px);padding:82px 22px 110px}

  .legal-main p,.legal-main li,.legal-main dd{font-size:15px}
}
@media(max-width:430px){
  .site-footer.portal-bar{padding-inline:14px;gap:10px}
  .portal-nav{gap:9px}
  .portal-nav a{font-size:7.5px;letter-spacing:.08em}
  .portal-nav svg{display:none}
  .portal-nav a[aria-current="page"]:after{display:none}
}
@media(max-width:340px){
  .portal-sign-on span{display:none}
  .portal-nav .portal-sign-on svg{display:block}
}
@media(prefers-reduced-motion:reduce){
  .portal-ready .portal-track>.site-footer.portal-bar,
  .portal-ready .theme-toggle,
  .portal-ready .scroll-flight{transition:none}
}
@media print{
  .site-footer.portal-bar,.legal-bar,.legal-toc,.theme-toggle,.legal-footer nav{display:none}
  .legal-main.wrap{max-width:none;padding:0;min-height:0}
  .legal-body>section{break-inside:auto}
  .legal-body>section>h2{break-after:avoid}
  .legal-footer{max-width:none;padding:18px 0 0}
}

/* Radar tip: the data block for a hovered or tapped track. See docs/product/specs/ui/radar.md. */
.track .hit{fill:transparent;stroke:none;pointer-events:all}
.radar-tracks-live .track{cursor:pointer}
.radar-tip{position:absolute;top:0;left:0;z-index:2;width:270px;padding:10px 12px;border:1px solid rgba(145,168,171,.28);background:rgba(14,25,29,.94);color:var(--muted);font:400 11px/1.55 "IBM Plex Mono",monospace;letter-spacing:.04em;pointer-events:none}
[data-theme="light"] .radar-tip{background:rgba(245,241,232,.96);border-color:rgba(82,104,108,.35)}
.radar-tip p{margin:0}
.radar-tip .readout-call{color:var(--text);font-weight:500;letter-spacing:.1em;margin-bottom:4px}
.radar-tip .readout-command{margin-top:6px;color:var(--radar)}
.radar-tip.is-amber .readout-call,.radar-tip.is-amber .readout-command{color:var(--amber)}
@media(max-width:760px){.radar-tip{width:min(240px,calc(100vw - 40px));font-size:10px}}

/* Recovery content framed by the homepage header and footer. */
.error-page{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
.error-main{flex:1;display:grid;align-items:center;width:100%;max-width:var(--max);margin-inline:auto;padding:clamp(64px,10vw,140px) clamp(20px,4vw,56px)}
.error-copy{max-width:760px}
.error-copy h1{margin:22px 0 24px;font:600 clamp(48px,8vw,96px)/.98 "Barlow Condensed",sans-serif;letter-spacing:.01em;text-transform:uppercase}
.error-copy .lead{margin:0 0 36px;color:var(--muted);font-size:clamp(17px,2vw,21px);line-height:1.65}
.error-return{display:inline-flex;align-items:center;gap:20px;padding-block:16px;border-top:1px solid var(--line);color:var(--text);font:400 12px/1.5 "IBM Plex Mono",monospace;letter-spacing:.12em;text-decoration:none}
.error-return:hover,.error-return:focus-visible{color:var(--amber)}
[data-theme="light"] .error-page .mini-mark-logomark-dark{display:none!important}
[data-theme="light"] .error-page .mini-mark-logomark-light{display:block!important}

/* Short recovery pages keep the theme control with the header utilities. */
.error-page .topnav .theme-toggle{position:static;flex:none;width:44px;height:44px;color:var(--muted)}
.error-page .topnav .theme-toggle:hover,.error-page .topnav .theme-toggle:focus-visible{color:var(--text)}
