/* RadarHunter landing — styles.
 *
 * Faithful recreation of the provided Claude Design ("RadarHunter Landing").
 * Self-contained: design tokens (primitives + semantic) live in :root here, so
 * the deployed site has no dependency on the design/ folder. Dark-first
 * instrument-cluster aesthetic. No build step — plain CSS loaded by the pages.
 */
:root{
  /* primitives */
  --neutral-950:#0A0C10; --neutral-900:#101319; --neutral-800:#161A23;
  --neutral-700:#1E232E; --neutral-600:#2A3140; --neutral-500:#3A4151;
  --neutral-400:#5A6273; --neutral-300:#828B9C; --neutral-200:#A9B1BF;
  --neutral-100:#D2D7E0; --neutral-50:#EEF1F6; --neutral-0:#FFFFFF;
  --brand-400:#CDEE63; --brand-500:#B8E23A; --brand-600:#9BC222;
  --green-500:#36D399; --amber-500:#FFB020; --red-500:#FF4D52; --red-600:#E5352B; --blue-500:#4EA8F2;
  /* semantic */
  --bg-base:var(--neutral-950); --bg-surface:var(--neutral-900); --bg-raised:var(--neutral-800);
  --border-subtle:rgba(255,255,255,.08); --border-default:rgba(255,255,255,.12);
  --fg:var(--neutral-50); --fg-muted:var(--neutral-300); --fg-subtle:var(--neutral-400); --on-accent:var(--neutral-950);
  --brand:var(--brand-500); --brand-muted:rgba(184,226,58,.16);
  --safe:var(--green-500); --caution:var(--amber-500); --danger:var(--red-500); --info:var(--blue-500);
  --sign-bg:var(--neutral-0); --sign-ring:var(--red-600); --sign-fg:var(--neutral-950);
  --radius-md:12px; --radius-lg:16px; --radius-xl:24px; --pill:999px;
  --font-display:'Saira',sans-serif; --font-text:'Sora',sans-serif; --font-mono:'JetBrains Mono',monospace;
  --elev-2:0 4px 12px rgba(0,0,0,.35); --elev-3:0 8px 24px rgba(0,0,0,.45);
  --maxw:1180px;
}
*{box-sizing:border-box; margin:0; padding:0; -webkit-tap-highlight-color:transparent;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-text); color:var(--fg); background:var(--bg-base);
  -webkit-font-smoothing:antialiased; overflow-x:hidden; line-height:1.5;
}
img{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
/* Visible keyboard focus on every interactive control (the design specced only hover/active). */
a:focus-visible, button:focus-visible, .nav-cta:focus-visible, .lang-btn:focus-visible,
.lang-opt:focus-visible, .store-btn:focus-visible, .tier-cta:focus-visible, .startbtn:focus-visible{
  outline:2px solid var(--brand); outline-offset:3px; border-radius:6px;
}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
.mono{font-family:var(--font-mono);}

/* ===== reveal on scroll (opacity stays 1 — transform-only, never serializes blank) ===== */
.reveal{transition:transform .7s cubic-bezier(.2,.7,.2,1);}
.reveal.pre{transform:translateY(24px);}
@media (prefers-reduced-motion:reduce){ .reveal, .reveal.pre{transition:none; transform:none;} }

/* ===== nav ===== */
.nav{position:sticky; top:0; z-index:50; backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  background:rgba(10,12,16,.66); border-bottom:1px solid var(--border-subtle);}
.nav-in{display:flex; align-items:center; gap:24px; height:68px;}
.brand{display:flex; align-items:center; gap:11px;}
.brand .mk{width:30px; height:30px; flex:0 0 30px;}
.brand .wm{font-family:var(--font-display); font-weight:800; font-size:19px; letter-spacing:.04em; text-transform:uppercase;}
.brand .wm b{color:var(--brand); font-weight:800;}
.nav-links{display:flex; gap:30px; margin-left:auto;}
.nav-links a{font-size:14px; color:var(--fg-muted); transition:color .2s;}
.nav-links a:hover{color:var(--fg);}
.nav-cta{display:inline-flex; align-items:center; height:42px; padding:0 20px; border-radius:var(--pill);
  background:var(--brand); color:var(--on-accent); font-weight:600; font-size:14px; white-space:nowrap; transition:filter .2s, transform .1s;}
.nav-cta:hover{filter:brightness(1.06);} .nav-cta:active{transform:translateY(1px);}
.nav-cta .cta-short{display:none;} /* swapped in for the full "Download free" label on narrow phones */
@media(max-width:820px){ .nav-links{display:none;} .nav-cta{margin-left:auto;} }
/* Narrow phones: the design only hides nav links at 820 — tighten brand/lang/CTA so
   the "Download free" pill never clips on common phone widths (375–430px). */
@media(max-width:480px){
  .nav-in{gap:12px;}
  .brand .wm{font-size:15px; letter-spacing:.02em;}
  .brand .mk{width:24px; height:24px; flex:0 0 24px;}
  .nav-cta{height:38px; padding:0 14px; font-size:12.5px;}
  .nav-cta .cta-full{display:none;} .nav-cta .cta-short{display:inline;}
  .lang-btn{height:38px; padding:0 10px;}
  .lang-btn .globe{display:none;}
}
@media(max-width:380px){ .brand .wm{display:none;} } /* icon-only brand on the narrowest */

/* language switcher */
.lang{position:relative; flex:0 0 auto;}
.lang-btn{display:inline-flex; align-items:center; gap:7px; height:42px; padding:0 13px; border-radius:var(--pill);
  background:var(--bg-raised); border:1px solid var(--border-default); color:var(--fg); font-family:var(--font-text);
  font-weight:600; font-size:13px; cursor:pointer; transition:border-color .2s;}
.lang-btn:hover{border-color:rgba(184,226,58,.5);}
.lang-btn .globe{width:15px; height:15px; flex:0 0 15px; color:var(--fg-muted);}
.lang-btn .cur{font-family:var(--font-mono); letter-spacing:.06em;}
.lang-btn .cv{width:6px; height:6px; border-right:2px solid var(--fg-muted); border-bottom:2px solid var(--fg-muted); transform:rotate(45deg); margin-top:-3px; transition:transform .2s;}
.lang.open .lang-btn .cv{transform:rotate(-135deg); margin-top:2px;}
.lang-menu{position:absolute; top:calc(100% + 8px); right:0; min-width:140px; background:var(--bg-surface);
  border:1px solid var(--border-default); border-radius:var(--radius-md); box-shadow:var(--elev-3); padding:6px; display:none; z-index:60;}
.lang.open .lang-menu{display:block;}
.lang-opt{display:flex; align-items:center; gap:10px; width:100%; padding:9px 10px; border:none; background:none;
  color:var(--fg); font-family:var(--font-text); font-size:14px; text-align:left; cursor:pointer; border-radius:8px;}
.lang-opt:hover{background:var(--bg-raised);}
.lang-opt .flag{font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:.06em; color:var(--fg-muted); width:20px; flex:0 0 20px;}
.lang-opt.on, .lang-opt.on .flag{color:var(--brand);}
.lang-opt .ok{margin-left:auto; width:13px; height:13px; opacity:0;}
.lang-opt.on .ok{opacity:1;}

/* ===== radar mark (svg-light) ===== */
.radarmark{position:relative; display:grid; place-items:center;}
.radarmark .rg{position:absolute; inset:0; margin:auto; border-radius:50%; border:1.5px solid rgba(255,255,255,.14);}
.radarmark .core{border-radius:50%; background:var(--brand); box-shadow:0 0 12px 1px rgba(184,226,58,.6);}

/* ===== hero ===== */
.hero{position:relative; padding:74px 0 40px; overflow:hidden;}
.hero::before{content:""; position:absolute; inset:0; z-index:0;
  background:radial-gradient(120% 80% at 72% 8%, #14181f 0%, #0a0c10 46%, #06080b 100%);}
.hero-sweep{position:absolute; top:-180px; right:-160px; width:780px; height:780px; z-index:0; pointer-events:none; opacity:.5;}
.hero-grid{position:relative; z-index:2; display:grid; grid-template-columns:1.05fr .95fr; gap:40px; align-items:center;}
.eyebrow{display:inline-flex; align-items:center; gap:9px; font-family:var(--font-mono); font-size:11.5px;
  letter-spacing:.22em; text-transform:uppercase; color:var(--brand); margin-bottom:22px;}
.eyebrow .dot{width:7px; height:7px; border-radius:50%; background:var(--brand); box-shadow:0 0 10px rgba(184,226,58,.7);}
.hero h1{font-family:var(--font-display); font-weight:800; font-size:clamp(44px,6.2vw,82px); line-height:.96;
  letter-spacing:-.02em; text-wrap:balance;}
.hero h1 .red{color:var(--danger);}
.hero .sub{margin-top:24px; font-size:clamp(16px,1.6vw,19px); color:var(--fg-muted); max-width:30em; line-height:1.6;}
.store-row{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
.hero-meta{display:flex; align-items:center; gap:22px; margin-top:26px; flex-wrap:wrap;}
.hero-meta .stat b{font-family:var(--font-display); font-weight:700; font-size:22px;}
.hero-meta .stat span{display:block; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.08em;
  text-transform:uppercase; color:var(--fg-subtle); margin-top:2px;}
.hero-meta .sep{width:1px; height:34px; background:var(--border-default);}
@media(max-width:920px){ .hero-grid{grid-template-columns:1fr; gap:48px;} .hero{padding-top:54px;} }

/* ===== store buttons ===== */
.store-btn{display:inline-flex; align-items:center; gap:12px; height:58px; padding:0 22px 0 18px;
  border-radius:14px; background:var(--bg-raised); border:1px solid var(--border-default);
  transition:border-color .2s, transform .1s, background .2s;}
.store-btn:hover{border-color:rgba(184,226,58,.5); background:#1b212c;}
.store-btn:active{transform:translateY(1px);}
.store-btn svg{flex:0 0 auto;}
.store-btn .lab{display:flex; flex-direction:column; line-height:1.15;}
.store-btn .lab .s{font-family:var(--font-mono); font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--fg-subtle);}
.store-btn .lab .b{font-family:var(--font-display); font-weight:700; font-size:18px; letter-spacing:.01em; white-space:nowrap;}
/* "Coming soon" — shown by redirect.js when no store URL is configured yet */
.store-soon{font-family:var(--font-mono); font-size:12px; letter-spacing:.04em; color:var(--fg-subtle);
  border:1px dashed var(--border-default); border-radius:var(--pill); padding:13px 20px; align-self:center;}

/* ===== phone device ===== */
.device-stage{position:relative; display:flex; justify-content:center;}
.device{--fw:300px; --fh:650px; width:calc(var(--fw) + 18px); background:#05070b; border-radius:42px; padding:9px;
  box-shadow:var(--elev-3), 0 0 0 1px rgba(255,255,255,.05), inset 0 0 0 2px rgba(255,255,255,.03);
  position:relative; z-index:2;}
.screen{position:relative; width:var(--fw); height:var(--fh); border-radius:33px; overflow:hidden; background:var(--bg-base);
  display:flex; flex-direction:column; text-align:left;}
.statusbar{height:46px; flex:0 0 46px; display:flex; align-items:flex-end; justify-content:space-between;
  padding:0 22px 5px; font-family:var(--font-mono); font-size:12px; font-weight:500; position:relative; z-index:30;}
.statusbar::after{content:""; position:absolute; top:9px; left:50%; transform:translateX(-50%); width:92px; height:26px; background:#000; border-radius:999px;}
.statusbar .glyphs{display:flex; gap:5px; align-items:center;}
.bar{width:3px; border-radius:2px; background:var(--fg);}
.battery{width:21px; height:11px; border:1px solid var(--fg-muted); border-radius:3px; position:relative; padding:1.5px;}
.battery::after{content:""; position:absolute; right:-3px; top:3px; width:2px; height:4px; border-radius:0 1px 1px 0; background:var(--fg-muted);}
.battery .fill{height:100%; width:72%; background:var(--safe); border-radius:1px;}

/* drive map */
.drive{position:relative; flex:1; min-height:0; background:
  radial-gradient(140% 80% at 50% 120%, #11161d 0%, #0a0d12 60%, #08090d 100%);}
.roads{position:absolute; inset:0; z-index:1; opacity:.9;}
.danger-glow{position:absolute; top:0; left:0; right:0; height:280px; z-index:2; pointer-events:none;
  background:radial-gradient(120% 90% at 50% -25%, rgba(255,77,82,.26), rgba(255,77,82,.05) 45%, transparent 72%);}
.hud-top{position:absolute; top:54px; left:14px; right:14px; z-index:12;}

/* alert card */
.alert{position:relative; display:flex; align-items:center; gap:11px; padding:11px 13px; border-radius:var(--radius-lg);
  background:rgba(18,22,30,.92); border:1px solid var(--border-subtle); box-shadow:var(--elev-2);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);}
.alert::before{content:""; position:absolute; left:0; top:0; bottom:0; width:5px; border-radius:5px 0 0 5px; background:var(--danger);}
.alert .ai{width:38px; height:38px; flex:0 0 38px; border-radius:11px; display:grid; place-items:center;
  background:rgba(255,77,82,.18); color:var(--danger);}
.alert .ab{display:flex; flex-direction:column; gap:2px; min-width:0; flex:1;}
.alert .ab .t{font-weight:600; font-size:14px; color:#fff; white-space:nowrap;}
.alert .ab .s{font-family:var(--font-mono); font-size:10.5px; letter-spacing:.03em; color:var(--danger);}
.alert .adist{font-family:var(--font-display); font-weight:800; font-size:21px; color:var(--danger); flex:0 0 auto;}
.alert.critical{background:linear-gradient(180deg,rgba(58,17,19,.97),rgba(33,11,13,.97)); border-color:rgba(255,77,82,.55);
  animation:critPulse 1.9s ease-in-out infinite;}
@keyframes critPulse{0%,100%{box-shadow:var(--elev-3),0 0 26px rgba(255,77,82,.16);}50%{box-shadow:var(--elev-3),0 0 46px rgba(255,77,82,.36);}}
@media (prefers-reduced-motion:reduce){ .alert.critical{animation:none;} }

/* speed cluster */
.speedcluster{position:absolute; left:14px; bottom:82px; z-index:11;}
.gauge{position:relative; width:96px; height:96px; display:grid; place-items:center; border-radius:50%;
  background:radial-gradient(circle at 50% 50%, rgba(10,12,16,.94) 60%, rgba(10,12,16,.5) 100%);
  box-shadow:0 8px 22px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.05);}
.gauge svg{position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg);}
.gauge .num{font-family:var(--font-display); font-weight:800; font-size:35px; line-height:.9; letter-spacing:-.01em; color:var(--danger);}
.gauge .unit{font-family:var(--font-text); font-weight:500; font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--fg-muted); text-align:center;}
.gauge .readout{position:relative; text-align:center;}
.sign-corner{position:absolute; right:14px; bottom:82px; z-index:11;}
.sign{width:60px; height:60px; border-radius:50%; background:var(--sign-bg); border:6px solid var(--sign-ring);
  display:grid; place-items:center; box-shadow:var(--elev-2);}
.sign span{font-family:var(--font-display); font-weight:800; font-size:26px; line-height:1; color:var(--sign-fg);}

/* eta bar */
.eta{position:absolute; left:0; right:0; bottom:0; z-index:10; background:rgba(16,19,25,.96);
  border-top:1px solid var(--border-subtle); padding:10px 16px 14px; display:flex; align-items:center; justify-content:space-between;
  backdrop-filter:blur(10px);}
.eta .big{font-family:var(--font-display); font-weight:700; font-size:20px; line-height:1;}
.eta .sub{font-family:var(--font-mono); font-size:10px; color:var(--fg-muted); margin-top:3px;}
.eta .lab{font-family:var(--font-mono); font-size:8.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--fg-subtle);}
.eta .col{text-align:right;}

/* user-location puck (you-are-here on the road — matches app .carpuck) */
.carpuck{position:absolute; left:150px; top:316px; transform:translate(-50%,-50%); z-index:8;
  width:22px; height:22px; border-radius:50%; background:var(--brand); border:3px solid #0A0C10;
  box-shadow:0 0 0 4px rgba(184,226,58,.25), 0 2px 8px rgba(0,0,0,.6);}

/* bottom tab bar (mirrors the app BottomNav) */
.tabbar{display:flex; background:rgba(13,16,21,.96); border-top:1px solid var(--border-subtle); padding:7px 6px 10px; z-index:20;}
.tabbar .tab{flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; padding:3px; background:none; border:none; color:var(--fg-subtle);}
.tabbar .tab .ti{display:grid; place-items:center;}
.tabbar .tab .tl{font-family:var(--font-text); font-size:9.5px; font-weight:500; letter-spacing:.01em;}
.tabbar .tab.on{color:var(--brand);}

/* device ambient ring */
.device-stage .ring-bloom{position:absolute; width:520px; height:520px; border-radius:50%; z-index:0;
  background:radial-gradient(circle, rgba(184,226,58,.12), transparent 62%); filter:blur(8px);}

/* ===== section shell ===== */
section{position:relative;}
.sec-head{max-width:680px; margin:0 auto; text-align:center;}
.kicker{font-family:var(--font-mono); font-size:11.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--brand);}
.sec-head h2{font-family:var(--font-display); font-weight:700; font-size:clamp(30px,4vw,46px); line-height:1.04;
  letter-spacing:-.015em; margin-top:14px; text-wrap:balance;}
.sec-head p{color:var(--fg-muted); font-size:17px; margin-top:16px; line-height:1.6;}

/* ===== principles ===== */
.principles{padding:96px 0 24px;}
.pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:54px;}
.pillar{background:var(--bg-surface); border:1px solid var(--border-subtle); border-radius:var(--radius-xl); padding:30px 26px;
  transition:border-color .25s, transform .25s;}
.pillar:hover{border-color:rgba(184,226,58,.35); transform:translateY(-4px);}
.pillar .pk{width:52px; height:52px; border-radius:14px; background:var(--brand-muted); display:grid; place-items:center; color:var(--brand); margin-bottom:20px;}
.pillar h3{font-family:var(--font-display); font-weight:600; font-size:21px;}
.pillar p{color:var(--fg-muted); font-size:14.5px; margin-top:10px; line-height:1.6;}
@media(max-width:820px){ .pillars{grid-template-columns:1fr;} }

/* ===== alerts showcase ===== */
.alerts-sec{padding:96px 0;}
.alerts-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; margin-top:54px;}
.cat-list{display:flex; flex-direction:column; gap:12px;}
.cat{display:flex; align-items:center; gap:15px; padding:16px 18px; background:var(--bg-surface);
  border:1px solid var(--border-subtle); border-radius:var(--radius-lg); transition:border-color .2s, background .2s;}
.cat:hover{border-color:var(--border-default); background:var(--bg-raised);}
.cat .ck{width:44px; height:44px; flex:0 0 44px; border-radius:12px; display:grid; place-items:center;}
.cat .ct{flex:1;}
.cat .ct .n{font-weight:600; font-size:15px;}
.cat .ct .d{font-size:12.5px; color:var(--fg-muted); margin-top:2px;}
.cat .tag{font-family:var(--font-mono); font-size:9px; letter-spacing:.1em; text-transform:uppercase; padding:4px 9px;
  border-radius:var(--pill);}
.cat .tag.free{color:var(--safe); background:rgba(54,211,153,.14);}
.cat .tag.pro{color:var(--brand); background:var(--brand-muted);}
.ck.info{background:rgba(78,168,242,.16); color:var(--info);}
.ck.danger{background:rgba(255,77,82,.16); color:var(--danger);}
.ck.warn{background:rgba(255,176,32,.16); color:var(--caution);}
.ck.safe{background:rgba(54,211,153,.16); color:var(--safe);}

/* second phone */
.device.sm{--fw:286px; --fh:782px;}
.route-head{padding:14px 18px 6px;}
.route-head .ttl{font-family:var(--font-display); font-weight:600; font-size:19px;}
.route-head .lab{font-family:var(--font-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--fg-muted); margin-top:2px;}
/* faithful route-overview chrome (mirrors the app) */
.rt-topnav{display:flex; align-items:center; gap:11px; padding:6px 16px 4px; min-height:46px;}
.rt-back{width:36px; height:36px; flex:0 0 36px; border-radius:50%; background:var(--bg-raised); border:1px solid var(--border-subtle); display:grid; place-items:center;}
.rt-back .chev{width:8px; height:8px; border-left:2px solid var(--fg); border-bottom:2px solid var(--fg); transform:rotate(45deg); margin-left:3px;}
.rt-ttl{font-family:var(--font-display); font-weight:600; font-size:18px; line-height:1.1;}
.rt-ttl small{display:block; font-family:var(--font-mono); font-size:9px; letter-spacing:.12em; color:var(--fg-muted); text-transform:uppercase; margin-top:2px;}
.fromto{position:relative; display:flex; gap:12px; padding:8px 14px; background:var(--bg-raised); border:1px solid var(--border-subtle); border-radius:var(--radius-lg);}
.fromto .rail{display:flex; flex-direction:column; align-items:center; padding:6px 0;}
.fromto .o-dot{width:12px; height:12px; border-radius:50%; border:3px solid var(--safe); background:rgba(54,211,153,.18);}
.fromto .o-line{flex:1; width:0; border-left:2px dotted rgba(255,255,255,.22); min-height:16px; margin:5px 0;}
.fromto .o-sq{width:12px; height:12px; border-radius:3px; background:var(--danger); box-shadow:0 0 0 3px rgba(255,77,82,.18);}
.fromto .ft-col{flex:1; min-width:0; display:flex; flex-direction:column;}
.fromto .ft-row{padding:4px 0;}
.fromto .ft-row + .ft-row{border-top:1px solid var(--border-subtle);}
.fromto .ft-k{font-family:var(--font-mono); font-size:9px; letter-spacing:.16em; color:var(--fg-subtle);}
.fromto .ft-v{font-weight:500; font-size:13px; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.mapcard{position:relative; border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--border-subtle); height:195px; background:#0C0F15;}
.mapcard svg.map{width:100%; height:100%; display:block;}
.mscrim{position:absolute; inset:0; pointer-events:none; background:radial-gradient(120% 80% at 50% 30%, transparent 40%, rgba(7,9,13,.45) 100%);}
.pin{position:absolute; transform:translate(-50%,-50%);}
.pin .dot{width:14px; height:14px; border-radius:50%;}
.pin.origin .dot{background:var(--safe); border:3px solid #0A0C10; box-shadow:0 0 0 2px rgba(54,211,153,.5),0 2px 6px rgba(0,0,0,.5);}
.pin.dest{transform:translate(-50%,-100%);}
.pin.dest .head{width:24px; height:24px; border-radius:50% 50% 50% 0; transform:rotate(45deg); background:var(--danger); border:2px solid #0A0C10; display:grid; place-items:center; box-shadow:0 3px 8px rgba(0,0,0,.5);}
.pin.dest .head::after{content:""; width:8px; height:8px; border-radius:50%; background:#fff; transform:rotate(-45deg);}
.hazpin{position:absolute; transform:translate(-50%,-50%); width:23px; height:23px; border-radius:50%; display:grid; place-items:center; border:2px solid #0A0C10; box-shadow:0 2px 7px rgba(0,0,0,.5); color:#0A0C10;}
.hazpin.cam{background:var(--info);} .hazpin.work{background:var(--caution);} .hazpin.police{background:var(--info);}
.rt-eyebrow{font-family:var(--font-mono); font-size:9.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--fg-subtle); margin:2px 2px 0;}
.scrollarea{flex:1; overflow:hidden; padding:6px 16px;}
.routeopt{display:flex; align-items:center; gap:12px; padding:13px; border-radius:var(--radius-md);
  border:1.5px solid var(--border-default); background:var(--bg-surface); margin-bottom:10px;}
.routeopt.on{border-color:var(--brand); background:var(--brand-muted);}
.routeopt .rad{width:20px; height:20px; flex:0 0 20px; border-radius:50%; border:2px solid var(--border-default); display:grid; place-items:center;}
.routeopt.on .rad{border-color:var(--brand);}
.routeopt.on .rad::after{content:""; width:10px; height:10px; border-radius:50%; background:var(--brand);}
.routeopt .rm{flex:1; min-width:0;}
.routeopt .rn{font-weight:600; font-size:14px; display:flex; align-items:center; gap:7px;}
.routeopt .best{font-family:var(--font-mono); font-size:8px; letter-spacing:.06em; text-transform:uppercase; color:var(--on-accent); background:var(--brand); border-radius:999px; padding:2px 6px; font-weight:600;}
.routeopt .rt{font-size:11.5px; color:var(--fg-muted); margin-top:2px;}
.routeopt .rmeta{text-align:right;}
.routeopt .rdur{font-family:var(--font-display); font-weight:700; font-size:16px;}
.routeopt .rhz{font-family:var(--font-mono); font-size:10px; margin-top:2px;}
.rhz.low{color:var(--safe);} .rhz.high{color:var(--caution);}
.route-foot{padding:12px 16px 18px; border-top:1px solid var(--border-subtle);}
.startbtn{height:50px; border-radius:var(--pill); background:var(--brand); color:var(--on-accent); font-family:var(--font-text);
  font-weight:600; font-size:15px; display:flex; align-items:center; justify-content:center; gap:9px; border:none; width:100%;}
@media(max-width:920px){ .alerts-grid{grid-template-columns:1fr; gap:48px;} .alerts-sec .device-stage{order:-1;} }

/* ===== compare ===== */
.compare{padding:40px 0 96px;}
.cards{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:54px; max-width:880px; margin-left:auto; margin-right:auto;}
.tier{border-radius:var(--radius-xl); padding:32px 30px; border:1px solid var(--border-default); background:var(--bg-surface); position:relative;}
.tier.pro{background:linear-gradient(180deg, rgba(184,226,58,.10), rgba(184,226,58,.02) 60%); border-color:rgba(184,226,58,.4);}
.tier .badge{position:absolute; top:-12px; right:26px; font-family:var(--font-mono); font-size:10px; letter-spacing:.1em;
  text-transform:uppercase; background:var(--brand); color:var(--on-accent); padding:4px 12px; border-radius:var(--pill); font-weight:600;}
.tier .tn{font-family:var(--font-mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--fg-subtle);}
.tier h3{font-family:var(--font-display); font-weight:700; font-size:27px; margin-top:8px;}
.tier .price{display:flex; align-items:baseline; gap:6px; margin-top:10px; min-height:24px;}
.tier .price b{font-family:var(--font-display); font-weight:800; font-size:38px;}
.tier .price span{color:var(--fg-muted); font-size:14px;}
.tier ul{list-style:none; margin-top:24px; display:flex; flex-direction:column; gap:13px;}
.tier li{display:flex; gap:11px; align-items:flex-start; font-size:14.5px; color:var(--fg-muted);}
.tier li .tick{width:20px; height:20px; flex:0 0 20px; border-radius:50%; background:var(--brand-muted); display:grid; place-items:center; margin-top:1px;}
.tier li.off{color:var(--fg-subtle); opacity:.7;}
.tier li.off .tick{background:rgba(255,255,255,.05);}
.tier .tier-cta{margin-top:28px; display:flex; height:50px; align-items:center; justify-content:center; border-radius:var(--pill);
  font-weight:600; font-size:15px;}
.tier-cta.ghost{background:var(--bg-raised); border:1px solid var(--border-default); color:var(--fg);}
.tier-cta.solid{background:var(--brand); color:var(--on-accent);}
@media(max-width:760px){ .cards{grid-template-columns:1fr;} }

/* ===== final cta ===== */
.cta{padding:30px 0 110px;}
.cta-band{position:relative; overflow:hidden; border-radius:32px; border:1px solid rgba(184,226,58,.3);
  background:radial-gradient(120% 140% at 50% -20%, rgba(184,226,58,.16), rgba(10,12,16,.2) 55%), var(--bg-surface);
  padding:64px 40px; text-align:center;}
.cta-band .appicon{width:88px; height:88px; border-radius:22px; margin:0 auto 26px; box-shadow:var(--elev-3); border:1px solid var(--border-subtle);}
.cta-band h2{font-family:var(--font-display); font-weight:800; font-size:clamp(32px,4.6vw,52px); line-height:1; letter-spacing:-.02em;}
.cta-band p{color:var(--fg-muted); font-size:17px; margin-top:16px;}
.cta-band .store-row{justify-content:center;}

/* ===== footer ===== */
footer{border-top:1px solid var(--border-subtle); padding:44px 0;}
.foot-in{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.foot-links{display:flex; gap:26px; flex-wrap:wrap;}
.foot-links a{font-size:13px; color:var(--fg-muted); transition:color .2s;}
.foot-links a:hover{color:var(--fg);}
.foot-copy{font-family:var(--font-mono); font-size:11px; color:var(--fg-subtle); letter-spacing:.04em;}
.disclaimer{font-family:var(--font-mono); font-size:11px; color:var(--fg-subtle); margin-top:18px; line-height:1.6; max-width:60ch;}

/* ===== legal pages (privacy / terms) — share the chrome, simple prose ===== */
.legal{padding:64px 0 96px; max-width:760px;}
.legal h1{font-family:var(--font-display); font-weight:800; font-size:clamp(32px,6vw,48px); letter-spacing:-.02em;}
.legal .updated{font-family:var(--font-mono); font-size:12px; color:var(--fg-subtle); margin-top:10px; letter-spacing:.04em;}
.legal h2{font-family:var(--font-display); font-weight:600; font-size:22px; margin-top:34px;}
.legal p{color:var(--fg-muted); font-size:15.5px; line-height:1.7; margin-top:14px;}
.legal a{color:var(--brand);}
.legal .back{display:inline-block; margin-top:36px; font-size:14px;}
