:root {
  color-scheme: dark;
  --ink: #f4f6fb;
  --muted: #a0a9b9;
  --quiet: #687385;
  --night: #080d17;
  --night-soft: #0b1220;
  --panel: #111b2b;
  --line: rgba(190, 210, 242, .14);
  --blue: #7bb6ff;
  --blue-bright: #63a5ff;
  --mint: #7be5cc;
  --warm: #e8b78e;
  --font-body: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "Manrope", var(--font-body);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; overflow-x: hidden; background: var(--night); color: var(--ink); font: 16px/1.6 var(--font-body); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { color: #07111e; background: var(--mint); }

.reading-progress { position: fixed; inset: 0 0 auto; z-index: 30; height: 2px; background: rgba(255,255,255,.04); }
.reading-progress span { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, var(--mint), var(--blue-bright)); transform: scaleX(0); transform-origin: left center; }
.site-header { position: absolute; z-index: 20; top: 0; left: 0; display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 25px clamp(24px, 6vw, 96px); border-bottom: 1px solid rgba(255,255,255,.09); }
.brand { display: inline-flex; align-items: center; gap: 10px; font: 800 19px/1 var(--font-display); letter-spacing: -.065em; }
.brand-light { color: #a8b5c6; font-weight: 500; }
.brand-mark { display: inline-flex; width: 29px; height: 29px; color: var(--mint); }
.brand-mark svg { width: 100%; height: 100%; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.5; }
.brand-mark .brand-dot { fill: var(--mint); stroke: none; }
.main-nav { display: flex; gap: clamp(22px, 3vw, 48px); margin-left: 10%; color: #bdc5d0; font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.main-nav a, .footer-links a, .footer-bottom a { transition: color .2s ease; }
.main-nav a:hover, .footer-links a:hover, .footer-bottom a:hover { color: var(--mint); }
.nav-cta { display: inline-flex; align-items: center; gap: 15px; padding: 11px 17px; border: 1px solid rgba(226,237,255,.28); border-radius: 3px; color: var(--ink); font-size: 11px; font-weight: 700; letter-spacing: .06em; transition: border-color .2s, background .2s; }
.nav-cta span { color: var(--mint); font-size: 15px; }
.nav-cta:hover { border-color: var(--mint); background: rgba(123,229,204,.07); }

.hero { position: relative; display: grid; min-height: min(900px, 100svh); min-height: max(740px, min(900px, 100svh)); grid-template-columns: minmax(390px, .88fr) 1.12fr; align-items: center; overflow: hidden; padding: 130px clamp(24px, 9vw, 144px) 105px; isolation: isolate; }
.hero-backdrop { position: absolute; z-index: -3; inset: 0; background: linear-gradient(90deg, rgba(8,13,23,.98) 0%, rgba(8,13,23,.91) 36%, rgba(8,13,23,.37) 78%, rgba(8,13,23,.68) 100%), linear-gradient(0deg, var(--night) 0%, transparent 30%, rgba(7,12,22,.3) 100%), url("assets/hero_dish_earth.png") center 55% / cover no-repeat; opacity: .84; }
.hero-grid { position: absolute; z-index: -2; inset: 0; background-image: linear-gradient(rgba(182,207,243,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(182,207,243,.035) 1px, transparent 1px); background-size: 90px 90px; mask-image: linear-gradient(90deg, black, transparent 90%); opacity: .45; }
.hero::after { position: absolute; z-index: -1; right: -11%; bottom: -39%; width: 80vw; height: 65vw; border: 1px solid rgba(146,180,233,.12); border-radius: 50%; content: ""; transform: rotate(-17deg); box-shadow: 0 0 0 7vw rgba(146,180,233,.025), 0 0 0 14vw rgba(146,180,233,.018); }
.hero-copy { position: relative; z-index: 2; max-width: 610px; padding-top: 26px; }
.eyebrow, .section-kicker, .quote-kicker { display: flex; align-items: center; gap: 12px; margin: 0; color: #a9b5c8; font-size: 10px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.eyebrow-line { display: inline-block; width: 28px; height: 1px; background: var(--mint); }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: var(--font-display); font-weight: 500; letter-spacing: -.07em; }
.hero h1 { margin: 26px 0 23px; font-size: clamp(70px, 9.5vw, 140px); line-height: .91; }
.text-gradient { color: transparent; background: linear-gradient(100deg, #d4fff1 2%, #87e3d0 40%, #8bbcff 100%); -webkit-background-clip: text; background-clip: text; }
.hero-intro { max-width: 420px; margin-bottom: 31px; color: #bdc6d4; font-size: clamp(15px, 1.35vw, 18px); line-height: 1.7; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 27px; }
.button { display: inline-flex; min-height: 54px; align-items: center; justify-content: center; gap: 12px; padding: 0 18px; border-radius: 3px; font-size: 12px; font-weight: 700; letter-spacing: .015em; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.button-primary { color: #07111b; background: #c0fae9; box-shadow: 0 10px 28px rgba(100,213,190,.12); }
.button-primary:hover { transform: translateY(-3px); background: #d5fff3; box-shadow: 0 15px 36px rgba(100,213,190,.23); }
.apple-mark { font-size: 19px; line-height: 1; }
.button-arrow { margin-left: 7px; font-size: 16px; }
.text-link { color: #d2d9e3; font-size: 11px; font-weight: 700; letter-spacing: .04em; }
.text-link span { margin-left: 7px; color: var(--mint); font-size: 16px; }
.hero-note { display: flex; align-items: center; gap: 10px; margin-top: 48px; color: #8995a8; font-size: 10px; letter-spacing: .075em; text-transform: uppercase; }
.pulse-dot, .caption-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--mint); box-shadow: 0 0 0 4px rgba(123,229,204,.1), 0 0 13px rgba(123,229,204,.5); }
.hero-visual { position: relative; display: grid; min-height: 570px; place-items: center; }
.phone { position: relative; z-index: 2; overflow: hidden; border: 1px solid rgba(224,235,251,.4); border-radius: 33px; background: #060a10; box-shadow: 0 35px 75px rgba(0,0,0,.6), 0 0 0 6px rgba(12,19,31,.9), 0 0 0 7px rgba(226,239,255,.12); }
.phone::before { position: absolute; z-index: 2; top: 9px; left: 50%; width: 26%; height: 17px; border-radius: 30px; background: #020407; content: ""; transform: translateX(-50%); }
.phone-screen { overflow: hidden; width: 100%; height: 100%; background: #080d12; }
.phone-screen img { display: block; width: 100%; height: 100%; object-fit: cover; }
.phone-hero { width: clamp(215px, 23vw, 298px); transform: rotate(4deg) translate(10px, 11px); }
.phone-hero .phone-screen { aspect-ratio: 1206 / 2622; }
.hero-orbit { position: absolute; z-index: 0; width: min(41vw, 520px); aspect-ratio: 1; border: 1px solid rgba(186,211,247,.16); border-radius: 50%; }
.orbit-two { width: min(57vw, 725px); border-color: rgba(186,211,247,.08); }
.hero-satellite { position: absolute; z-index: 1; top: 14%; right: 12%; color: #c6e0ff; font-size: 23px; filter: drop-shadow(0 0 13px #a6d1ff); animation: float 5s ease-in-out infinite; }
.float-card { position: absolute; z-index: 3; display: flex; align-items: center; gap: 11px; min-height: 54px; padding: 10px 13px; border: 1px solid rgba(225,239,255,.16); border-radius: 5px; background: rgba(10,19,32,.85); box-shadow: 0 15px 30px rgba(0,0,0,.28); backdrop-filter: blur(12px); }
.float-card small, .float-card strong { display: block; white-space: nowrap; }
.float-card small { color: #8190a7; font-size: 7px; font-weight: 700; letter-spacing: .14em; }
.float-card strong { margin-top: 2px; color: #eff6ff; font-size: 11px; font-weight: 600; }
.target-card { top: 25%; left: -1%; animation: float 5.4s ease-in-out -1s infinite; }
.coord-card { right: -4%; bottom: 18%; animation: float 6s ease-in-out -2s infinite; }
.card-icon { color: var(--mint); font-size: 22px; }
.card-check { display: grid; width: 17px; height: 17px; place-items: center; border-radius: 50%; color: #07111b; background: var(--mint); font-size: 10px; }
.coord-icon { color: #9dc4ff; font-size: 19px; }
.scroll-cue { position: absolute; bottom: 36px; left: clamp(24px, 9vw, 144px); display: flex; align-items: center; gap: 12px; color: #8692a4; font-size: 8px; font-weight: 700; letter-spacing: .2em; }
.scroll-cue-line { position: relative; display: block; width: 39px; height: 1px; background: rgba(226,237,255,.4); }
.scroll-cue-line::after { position: absolute; top: -2px; left: 0; width: 10px; height: 5px; border-radius: 5px; background: var(--mint); content: ""; animation: line-travel 1.8s ease-in-out infinite; }
.hero-index { position: absolute; right: clamp(24px, 6vw, 96px); bottom: 36px; color: #7e899a; font: 10px var(--font-display); letter-spacing: .1em; }
.hero-index span { margin: 0 7px; color: var(--mint); }

.intro-band { position: relative; padding: 115px clamp(24px, 10vw, 160px) 130px; background: linear-gradient(180deg, #0b1220 0%, #0d1726 100%); }
.section-top { display: flex; justify-content: space-between; align-items: center; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.section-kicker { color: #8e9db1; }
.section-index { color: #6f7d91; font-size: 9px; font-weight: 700; letter-spacing: .15em; }
.intro-layout { display: grid; grid-template-columns: 1.2fr .8fr; align-items: end; gap: 10%; padding: 55px 0 74px; }
.intro-layout h2 { margin: 0; font-size: clamp(40px, 5.5vw, 76px); line-height: 1.08; }
.intro-layout > p { max-width: 380px; margin: 0 0 7px; color: #a4afbf; font-size: 14px; line-height: 1.85; }
.steps-track { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.steps-track::before { position: absolute; top: 25px; left: 12%; right: 12%; height: 1px; background: linear-gradient(90deg, rgba(123,229,204,.42), rgba(137,183,255,.38), rgba(123,229,204,.2)); content: ""; }
.step-card { position: relative; min-height: 262px; padding: 0 22px 23px; border-right: 1px solid rgba(190,210,242,.1); }
.step-card:last-child { border: 0; }
.step-top { position: relative; display: flex; align-items: center; justify-content: space-between; margin-bottom: 46px; }
.step-number { display: grid; width: 50px; height: 50px; place-items: center; border: 1px solid rgba(160,199,249,.34); border-radius: 50%; color: var(--mint); background: #0c1726; font: 600 12px var(--font-display); box-shadow: 0 0 0 8px #0d1726; }
.step-icon { color: #a9c9f8; font-size: 26px; }
.step-label { margin-bottom: 10px; color: #7f91a9; font-size: 8px; font-weight: 700; letter-spacing: .17em; }
.step-card h3 { margin-bottom: 10px; font: 500 clamp(18px, 2vw, 23px)/1.35 var(--font-display); letter-spacing: -.045em; }
.step-card > p:last-of-type { max-width: 290px; margin-bottom: 0; color: #9ba7b8; font-size: 12px; line-height: 1.75; }
.step-track-line { position: absolute; bottom: 0; left: 22px; width: calc(100% - 44px); height: 1px; background: rgba(205,224,251,.15); }
.step-track-line span { display: block; width: 35%; height: 1px; background: linear-gradient(90deg, var(--mint), transparent); transform: scaleX(0); transform-origin: left; transition: transform 1s ease .2s; }
.step-card.is-visible .step-track-line span { transform: scaleX(1); }
.steps-foot { display: flex; align-items: center; gap: 10px; margin-top: 25px; color: #718198; font-size: 10px; }
.tiny-orbit { color: var(--mint); font-size: 16px; }

.feature { position: relative; display: grid; min-height: 740px; grid-template-columns: 1fr 1fr; align-items: center; gap: 7%; overflow: hidden; padding: 105px clamp(24px, 11vw, 176px); background: #080d17; }
.feature-direction { background: radial-gradient(ellipse at 70% 55%, rgba(32,79,131,.22), transparent 46%), #080d17; }
.feature-glow { position: absolute; top: 3%; left: 28%; width: 64vw; height: 64vw; border: 1px solid rgba(135,187,255,.08); border-radius: 50%; box-shadow: 0 0 0 6vw rgba(127,176,235,.022), 0 0 0 12vw rgba(127,176,235,.016); pointer-events: none; }
.feature-copy { position: relative; z-index: 2; max-width: 460px; }
.feature-count { margin: 36px 0 11px; color: #64768f; font: 10px var(--font-display); letter-spacing: .14em; }
.feature-count span { color: var(--mint); margin: 0 6px; }
.feature-copy h2 { margin: 0 0 24px; font-size: clamp(52px, 6.3vw, 88px); line-height: 1.02; }
.feature-description { max-width: 390px; margin-bottom: 33px; color: #a2adbd; font-size: 14px; line-height: 1.85; }
.feature-detail { display: flex; align-items: center; gap: 13px; max-width: 330px; padding-top: 18px; border-top: 1px solid var(--line); }
.detail-symbol { display: grid; width: 35px; height: 35px; flex: 0 0 auto; place-items: center; border: 1px solid rgba(123,229,204,.34); border-radius: 50%; color: var(--mint); font-size: 17px; }
.feature-detail strong, .feature-detail small { display: block; }
.feature-detail strong { font-size: 11px; font-weight: 600; }
.feature-detail small { margin-top: 3px; color: #7f8ba0; font-size: 10px; }
.feature-device { position: relative; display: flex; min-height: 590px; align-items: center; justify-content: center; }
.device-halo { position: absolute; width: 70%; aspect-ratio: 1; border: 1px solid rgba(136,187,255,.22); border-radius: 50%; box-shadow: 0 0 0 4vw rgba(121,172,234,.035), inset 0 0 90px rgba(91,148,226,.08); }
.phone-large { width: clamp(245px, 26vw, 340px); transform: rotate(2deg); }
.phone-large .phone-screen { aspect-ratio: 1206 / 2622; }
.angle-callout { position: absolute; top: 22%; right: -4%; display: flex; align-items: center; gap: 9px; color: #bcd7fa; font-size: 8px; font-weight: 700; letter-spacing: .16em; }
.callout-line { width: 48px; height: 1px; background: linear-gradient(90deg, transparent, #8fbaf3); }
.callout-point { white-space: nowrap; }
.device-caption { position: absolute; right: 4%; bottom: 9%; display: flex; align-items: center; gap: 9px; color: #8a98ad; font-size: 8px; font-weight: 700; letter-spacing: .16em; }
.edge-label { position: absolute; right: 24px; top: 50%; color: #526078; font-size: 8px; font-weight: 700; letter-spacing: .22em; writing-mode: vertical-rl; transform: translateY(-50%); }

.quote-band { position: relative; display: flex; min-height: 780px; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; padding: 115px 24px; text-align: center; background: radial-gradient(ellipse at center 35%, rgba(26,67,108,.42), transparent 52%), linear-gradient(180deg, #0b1321, #09111e 72%, #0b1421); }
.quote-orbit { position: absolute; top: -43%; left: 50%; width: min(88vw, 1120px); aspect-ratio: 1; border: 1px solid rgba(155,193,244,.09); border-radius: 50%; transform: translateX(-50%); }
.quote-orbit::before, .quote-orbit::after { position: absolute; inset: 9%; border: 1px solid rgba(155,193,244,.07); border-radius: 50%; content: ""; }
.quote-orbit::after { inset: 19%; }
.quote-orbit span { position: absolute; top: 29%; left: 14%; width: 5px; height: 5px; border-radius: 50%; background: #c6dcff; box-shadow: 0 0 14px 5px rgba(142,192,255,.42); }
.quote-orbit span:nth-child(2) { top: 65%; left: 78%; width: 3px; height: 3px; }
.quote-orbit span:nth-child(3) { top: 84%; left: 28%; width: 4px; height: 4px; }
.quote-kicker { position: relative; z-index: 1; justify-content: center; color: #92a6c0; }
.quote-band h2 { position: relative; z-index: 1; margin: 24px 0 16px; font-size: clamp(47px, 7vw, 91px); line-height: 1.03; }
.quote-description { position: relative; z-index: 1; max-width: 565px; margin-bottom: 51px; color: #a8b4c5; font-size: 13px; line-height: 1.8; }
.angle-readouts { position: relative; z-index: 1; display: flex; justify-content: center; align-items: center; width: min(100%, 760px); padding: 22px 10px; border-top: 1px solid rgba(194,216,246,.16); border-bottom: 1px solid rgba(194,216,246,.16); }
.readout { position: relative; display: flex; min-width: 0; flex: 1; flex-direction: column; align-items: center; padding: 2px 10px; }
.readout-icon { display: grid; width: 30px; height: 30px; margin-bottom: 12px; place-items: center; border: 1px solid rgba(135,183,248,.25); border-radius: 50%; color: #a5cbff; font-size: 15px; }
.readout-label { color: #8192aa; font-size: 8px; font-weight: 700; letter-spacing: .18em; }
.readout strong { margin: 2px 0 0; font: 500 clamp(37px, 5vw, 60px)/1.2 var(--font-display); letter-spacing: -.08em; }
.readout sup { margin-left: 3px; color: var(--mint); font-size: 16px; vertical-align: 15px; }
.readout small { color: #77869a; font-size: 9px; }
.readout-divider { width: 1px; height: 80px; background: rgba(194,216,246,.15); }
.readout-note { position: relative; z-index: 1; margin: 15px 0 0; color: #6f7f94; font-size: 9px; }

.feature-elevation { grid-template-columns: .94fr 1.06fr; background: radial-gradient(ellipse at 72% 44%, rgba(112,74,50,.14), transparent 40%), #090d15; }
.elevation-device { order: -1; }
.halo-warm { border-color: rgba(226,177,136,.2); box-shadow: 0 0 0 4vw rgba(197,151,118,.027), inset 0 0 90px rgba(197,151,118,.08); }
.elevation-device .phone { transform: rotate(-2deg); }
.elevation-marker { position: absolute; top: 24%; left: 1%; display: flex; align-items: center; gap: 10px; color: #d9b394; font-size: 8px; font-weight: 700; letter-spacing: .16em; }
.marker-dash { width: 42px; height: 1px; background: linear-gradient(90deg, #d9b394, transparent); }
.elevation-device .device-caption { right: auto; left: 3%; bottom: 9%; }
.elevation-device .caption-dot { background: #e0b591; box-shadow: 0 0 0 4px rgba(224,181,145,.1); }

.truth-section { position: relative; display: grid; min-height: 670px; grid-template-columns: .95fr 1fr; align-items: center; gap: 8%; overflow: hidden; padding: 105px clamp(24px, 11vw, 176px); background: linear-gradient(180deg, #0b1422, #0b111c); }
.truth-orbit { position: relative; display: grid; width: min(37vw, 460px); aspect-ratio: 1; place-items: center; justify-self: center; border: 1px solid rgba(170,201,244,.18); border-radius: 50%; box-shadow: 0 0 0 3vw rgba(158,191,237,.025), inset 0 0 80px rgba(72,120,188,.09); }
.truth-orbit::before, .truth-orbit::after { position: absolute; inset: 10%; border: 1px solid rgba(170,201,244,.12); border-radius: 50%; content: ""; }
.truth-orbit::after { inset: 23%; border-style: dashed; opacity: .6; }
.truth-earth { position: absolute; bottom: 14%; width: 54%; height: 27%; border-radius: 100% 100% 0 0; background: linear-gradient(180deg, #3f7094, #163148); box-shadow: inset 0 6px 19px rgba(132,192,223,.25), 0 -2px 30px rgba(113,185,222,.16); }
.truth-earth::before { position: absolute; top: 22%; left: 12%; width: 25%; height: 11%; border-radius: 60%; background: rgba(125,190,164,.5); content: ""; transform: rotate(-18deg); }
.truth-dish { position: absolute; z-index: 2; bottom: 34%; left: 31%; width: 35%; height: 23%; border: 2px solid #b8d2ec; border-top: 0; border-radius: 0 0 100% 100%; transform: rotate(-25deg); }
.truth-dish::before { position: absolute; bottom: -27%; left: 48%; width: 2px; height: 38%; background: #b8d2ec; content: ""; transform: rotate(25deg); transform-origin: top; }
.truth-dish::after { position: absolute; top: 30%; right: -18%; width: 33%; height: 2px; background: #b8d2ec; content: ""; transform: rotate(-40deg); }
.truth-dish span { position: absolute; top: 19%; right: -23%; width: 7px; height: 7px; border: 1px solid #c5e3f7; border-radius: 50%; background: #7be5cc; box-shadow: 0 0 13px var(--mint); }
.truth-beam { position: absolute; top: 17%; left: 53%; width: 1px; height: 53%; background: linear-gradient(180deg, transparent, rgba(123,229,204,.85)); box-shadow: 0 0 12px rgba(123,229,204,.4); transform: rotate(29deg); transform-origin: bottom; }
.truth-copy { position: relative; z-index: 2; max-width: 505px; }
.truth-copy h2 { margin: 25px 0 20px; font-size: clamp(49px, 6vw, 79px); line-height: 1.04; }
.truth-intro { max-width: 430px; color: #a6b1c1; font-size: 14px; line-height: 1.8; }
.truth-points { display: grid; gap: 11px; margin-top: 30px; color: #cbd4df; font-size: 11px; }
.truth-points span { display: flex; align-items: center; gap: 10px; }
.truth-points i { display: grid; width: 18px; height: 18px; place-items: center; border: 1px solid rgba(123,229,204,.42); border-radius: 50%; color: var(--mint); font-size: 10px; font-style: normal; }
.fine-print { max-width: 420px; margin: 25px 0 0; padding-top: 14px; border-top: 1px solid var(--line); color: #76859a; font-size: 10px; line-height: 1.7; }

.download-section { position: relative; display: grid; min-height: 630px; place-items: center; overflow: hidden; padding: 100px 24px; text-align: center; background: radial-gradient(ellipse at center, rgba(39,90,130,.33), transparent 50%), #09111d; }
.download-content { position: relative; z-index: 2; max-width: 620px; }
.download-section .eyebrow { justify-content: center; }
.download-section h2 { margin: 24px 0 15px; font-size: clamp(58px, 8vw, 100px); line-height: .98; }
.download-description { max-width: 410px; margin: 0 auto 28px; color: #9facbf; font-size: 13px; line-height: 1.8; }
.download-button { min-width: 255px; }
.download-platform { margin: 14px 0 0; color: #78869b; font-size: 9px; letter-spacing: .06em; }
.download-ring { position: absolute; top: 50%; left: 50%; width: min(78vw, 980px); aspect-ratio: 1; border: 1px solid rgba(160,198,245,.1); border-radius: 50%; transform: translate(-50%, -50%); }
.ring-b { width: min(112vw, 1400px); border-color: rgba(160,198,245,.06); }
.download-stars { position: absolute; right: 16%; top: 20%; color: var(--mint); font-size: 15px; letter-spacing: 1.5em; opacity: .8; }
.download-stars span { color: #788eaa; }

.site-footer { padding: 66px clamp(24px, 8vw, 128px) 22px; background: #060a11; }
.footer-top { display: flex; justify-content: space-between; gap: 40px; padding-bottom: 48px; }
.footer-brand-block p { margin: 15px 0 0 39px; color: #7f8da1; font-size: 10px; }
.footer-links { display: flex; gap: clamp(60px, 12vw, 180px); }
.footer-links > div { display: grid; align-content: start; gap: 10px; }
.footer-heading { margin-bottom: 5px; color: #627188; font-size: 8px; font-weight: 700; letter-spacing: .18em; }
.footer-links a { color: #aab4c2; font-size: 10px; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-top: 18px; border-top: 1px solid rgba(190,210,242,.1); color: #657286; font-size: 9px; }
.footer-bottom a { color: #929fb1; }
.footer-star { margin-left: 4px; color: var(--mint); }
.chapter-indicator { position: fixed; z-index: 10; top: 50%; left: 16px; display: flex; align-items: center; gap: 10px; color: #75849a; font-size: 7px; font-weight: 700; letter-spacing: .16em; writing-mode: vertical-rl; transform: translateY(-50%) rotate(180deg); opacity: 0; transition: opacity .3s; pointer-events: none; }
.chapter-indicator.is-active { opacity: .8; }
.chapter-indicator-line { display: block; width: 1px; height: 28px; background: linear-gradient(180deg, var(--mint), transparent); }

.js-ready .reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s cubic-bezier(.2,.65,.25,1), transform .8s cubic-bezier(.2,.65,.25,1); }
.js-ready .reveal.is-visible { opacity: 1; transform: translateY(0); }
.js-ready .delay-1 { transition-delay: .12s; }
.js-ready .delay-2 { transition-delay: .23s; }
.js-ready .delay-3 { transition-delay: .34s; }
.js-ready .phone-hero.reveal.is-visible { transform: rotate(4deg) translate(10px, 0); }
.js-ready .phone-large.reveal.is-visible { transform: rotate(2deg) translateY(0); }
.js-ready .elevation-device .phone.reveal.is-visible { transform: rotate(-2deg) translateY(0); }

@keyframes float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -9px; } }
@keyframes line-travel { 0%, 100% { left: 0; opacity: .5; } 50% { left: 28px; opacity: 1; } }

@media (min-width: 1500px) {
  .hero { padding-right: max(9vw, calc((100vw - 1400px) / 2)); padding-left: max(9vw, calc((100vw - 1400px) / 2)); }
  .intro-band, .feature, .truth-section { padding-right: max(11vw, calc((100vw - 1280px) / 2)); padding-left: max(11vw, calc((100vw - 1280px) / 2)); }
}
@media (max-width: 900px) {
  .main-nav { margin-left: 0; gap: 19px; }
  .hero { grid-template-columns: .9fr 1.1fr; padding-right: 6vw; padding-left: 6vw; }
  .hero-visual { min-height: 500px; }
  .target-card { left: -7%; }
  .coord-card { right: -5%; }
  .feature, .truth-section { padding-right: 8vw; padding-left: 8vw; }
  .feature { gap: 2%; }
  .feature-device { min-height: 530px; }
  .angle-callout { right: -2%; }
  .truth-orbit { width: min(40vw, 370px); }
}
@media (max-width: 680px) {
  html { scroll-padding-top: 74px; }
  .site-header { position: absolute; padding: 19px 21px; }
  .brand { font-size: 17px; }
  .brand-mark { width: 25px; height: 25px; }
  .main-nav { display: none; }
  .nav-cta { gap: 9px; padding: 9px 11px; font-size: 9px; }
  .hero { display: flex; min-height: 900px; min-height: max(850px, 100svh); flex-direction: column; align-items: stretch; justify-content: center; padding: 130px 24px 93px; }
  .hero-backdrop { background-position: 59% center; background-image: linear-gradient(180deg, rgba(8,13,23,.78), rgba(8,13,23,.9) 46%, #080d17 95%), url("assets/hero_dish_earth.png"); }
  .hero-grid { background-size: 54px 54px; mask-image: linear-gradient(180deg, black, transparent 80%); }
  .hero-copy { padding-top: 15px; }
  .eyebrow { font-size: 8px; letter-spacing: .16em; }
  .hero h1 { margin: 21px 0 17px; font-size: clamp(68px, 18vw, 103px); }
  .hero-intro { max-width: 400px; margin-bottom: 23px; font-size: 14px; }
  .hero-actions { gap: 19px; }
  .button { min-height: 50px; font-size: 10px; }
  .hero-note { margin-top: 25px; font-size: 8px; }
  .hero-visual { position: absolute; top: 47%; right: 0; bottom: 67px; left: 0; min-height: 390px; pointer-events: none; }
  .phone-hero { width: clamp(185px, 52vw, 245px); transform: rotate(4deg) translate(0, 20px); }
  .js-ready .phone-hero.reveal.is-visible { transform: rotate(4deg) translate(0, 0); }
  .hero-orbit { width: min(68vw, 340px); }
  .orbit-two { width: min(95vw, 470px); }
  .target-card { top: 22%; left: 2%; transform: scale(.84); transform-origin: left top; }
  .coord-card { right: 1%; bottom: 11%; transform: scale(.84); transform-origin: right bottom; }
  .hero-satellite { top: 9%; right: 15%; }
  .scroll-cue { bottom: 25px; left: 24px; font-size: 7px; }
  .hero-index { right: 24px; bottom: 25px; }
  .intro-band { padding: 76px 24px 78px; }
  .intro-layout { grid-template-columns: 1fr; gap: 20px; padding: 37px 0 44px; }
  .intro-layout h2 { font-size: clamp(39px, 10vw, 58px); }
  .intro-layout > p { max-width: 440px; font-size: 12px; }
  .steps-track { grid-template-columns: 1fr; gap: 0; }
  .steps-track::before { top: 18px; bottom: 18px; left: 24px; right: auto; width: 1px; height: auto; background: linear-gradient(180deg, rgba(123,229,204,.42), rgba(137,183,255,.38), rgba(123,229,204,.2)); }
  .step-card { min-height: 0; padding: 0 0 28px 70px; border: 0; }
  .step-top { position: absolute; top: 0; left: 0; margin: 0; }
  .step-number { width: 48px; height: 48px; box-shadow: 0 0 0 6px #0d1726; }
  .step-icon { display: none; }
  .step-label { padding-top: 3px; }
  .step-card h3 { font-size: 19px; }
  .step-card > p:last-of-type { padding-bottom: 18px; font-size: 11px; }
  .step-track-line { bottom: 10px; left: 70px; width: calc(100% - 70px); }
  .steps-foot { margin: 13px 0 0 70px; font-size: 9px; }
  .feature, .truth-section { display: flex; min-height: auto; flex-direction: column; align-items: stretch; gap: 10px; padding: 80px 25px 64px; }
  .feature-copy { max-width: 500px; }
  .feature-count { margin-top: 25px; }
  .feature-copy h2 { font-size: clamp(50px, 13vw, 73px); }
  .feature-description { font-size: 12px; }
  .feature-device { min-height: 480px; margin: 5px -15px 0; }
  .phone-large { width: clamp(225px, 61vw, 295px); }
  .device-halo { width: 78%; }
  .angle-callout { top: 18%; right: 0; font-size: 7px; }
  .callout-line { width: 26px; }
  .device-caption { right: 0; bottom: 7%; font-size: 7px; }
  .edge-label { display: none; }
  .quote-band { min-height: 660px; padding: 95px 24px; }
  .quote-band h2 { font-size: clamp(44px, 12vw, 67px); }
  .quote-description { margin-bottom: 35px; font-size: 11px; }
  .angle-readouts { padding: 18px 0; }
  .readout { padding: 2px 4px; }
  .readout-icon { width: 26px; height: 26px; margin-bottom: 9px; }
  .readout-label { font-size: 6px; letter-spacing: .12em; }
  .readout strong { font-size: clamp(32px, 10vw, 47px); }
  .readout sup { font-size: 12px; vertical-align: 10px; }
  .readout small { max-width: 90px; font-size: 7px; }
  .readout-divider { height: 67px; }
  .readout-note { max-width: 320px; font-size: 8px; line-height: 1.5; }
  .feature-elevation { flex-direction: column; }
  .elevation-device { order: 0; }
  .elevation-marker { top: 17%; left: -1%; font-size: 7px; }
  .marker-dash { width: 25px; }
  .elevation-device .device-caption { right: auto; left: 0; bottom: 7%; }
  .truth-section { gap: 43px; padding-top: 75px; padding-bottom: 75px; }
  .truth-orbit { order: 1; width: min(76vw, 340px); margin: 5px auto 0; }
  .truth-copy { order: 0; }
  .truth-copy h2 { font-size: clamp(49px, 12vw, 68px); }
  .truth-intro { font-size: 12px; }
  .truth-points { font-size: 10px; }
  .download-section { min-height: 550px; padding: 78px 22px; }
  .download-section h2 { font-size: clamp(54px, 14vw, 76px); }
  .download-description { font-size: 11px; }
  .download-stars { top: 15%; right: 8%; font-size: 11px; }
  .site-footer { padding: 46px 24px 20px; }
  .footer-top { flex-direction: column; gap: 35px; padding-bottom: 32px; }
  .footer-links { justify-content: space-between; gap: 25px; }
  .footer-bottom { flex-wrap: wrap; justify-content: space-between; gap: 12px 18px; font-size: 8px; }
  .footer-bottom > span:nth-child(2) { order: 3; width: 100%; }
  .chapter-indicator { display: none; }
}
@media (max-width: 380px) {
  .hero { padding-right: 18px; padding-left: 18px; }
  .hero-actions { gap: 13px; }
  .hero-actions .button { gap: 8px; padding: 0 11px; font-size: 9px; }
  .hero-actions .text-link { font-size: 9px; }
  .hero-visual { top: 51%; }
  .float-card { scale: .83; }
  .target-card { left: 0; transform-origin: left top; }
  .coord-card { right: 0; transform-origin: right bottom; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js-ready .reveal { opacity: 1; transform: none; }
}

/* Shared information pages */
.legal-body { min-height: 100vh; background: radial-gradient(ellipse at 80% 0%, rgba(33,74,117,.22), transparent 42%), var(--night); }
.legal-header { position: relative; padding-top: 21px; padding-bottom: 21px; }
.legal-header .legal-home { color: #a6b3c5; font-size: 10px; font-weight: 600; letter-spacing: .06em; }
.legal-wrap { width: min(100% - 48px, 820px); margin: 0 auto; padding: 78px 0 100px; }
.legal-eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 20px; color: #91a1b8; font-size: 9px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.legal-eyebrow::before { width: 25px; height: 1px; background: var(--mint); content: ""; }
.legal-wrap h1 { margin: 0 0 14px; font-size: clamp(43px, 7vw, 76px); line-height: 1.05; }
.legal-lead { max-width: 610px; margin-bottom: 26px; color: #aab5c5; font-size: 14px; line-height: 1.8; }
.legal-date { display: inline-block; margin-bottom: 38px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 3px; color: #8f9db1; font-size: 9px; letter-spacing: .04em; }
.legal-content { padding: 30px clamp(20px, 5vw, 48px); border: 1px solid rgba(190,210,242,.12); border-radius: 6px; background: rgba(13,22,36,.78); }
.legal-content h2 { margin: 30px 0 10px; color: #e8eff8; font: 600 17px/1.4 var(--font-display); letter-spacing: -.035em; }
.legal-content h2:first-child { margin-top: 0; }
.legal-content p, .legal-content li { color: #a2afc0; font-size: 12px; line-height: 1.85; }
.legal-content p:last-child { margin-bottom: 0; }
.legal-content a { color: #96c5ff; text-decoration: underline; text-decoration-color: rgba(150,197,255,.35); text-underline-offset: 3px; }
.legal-back { display: inline-flex; align-items: center; gap: 9px; margin-top: 28px; color: var(--mint); font-size: 10px; font-weight: 700; letter-spacing: .04em; }
.legal-footer { padding: 18px 24px; border-top: 1px solid rgba(190,210,242,.1); color: #69778c; text-align: center; font-size: 9px; }
.legal-footer a { color: #9eacbf; }
@media (max-width: 680px) {
  .legal-header { padding: 18px 20px; }
  .legal-wrap { width: min(100% - 40px, 820px); padding: 56px 0 72px; }
  .legal-content { padding: 24px 20px; }
  .legal-content h2 { font-size: 16px; }
  .legal-content p, .legal-content li { font-size: 11px; }
}
