/* ==========================================================================
   GHOST — preview-only additions, loaded after styles.css.
   Colours: black and graphite, Ghost green, the alert red for what a camera
   costs, and gold for the laurel only (store image 03). No dark forest-green
   fills (Jan, 2026-09-25: "nicht dieses Förstergrün").
   The signature is the app's own: rings and signal waves, not card grids.

   The RESPONSIVE block at the bottom is load-bearing. Media rules and base
   rules have equal specificity, so any base rule written below a media rule
   silently wins inside the breakpoint. New rules go ABOVE that marker.
   ========================================================================== */

/* ----- Preview chrome (not part of either design) ------------------------ */
.variant-bar {
  position: sticky; top: 0; z-index: 300;
  display: flex; align-items: center; gap: var(--s4);
  padding: var(--s2) var(--s5);
  background: #000; border-bottom: 1px solid var(--surface-stroke);
  font-size: 13px; color: var(--text-secondary);
}
.variant-tag {
  background: var(--green); color: #04150B; font-weight: 700;
  padding: 2px 9px; border-radius: 999px; font-size: 11.5px;
  letter-spacing: .06em; text-transform: uppercase;
}
.variant-name { color: var(--text-primary); font-weight: 600; }
.variant-bar a { margin-left: auto; color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.variant-bar a + a { margin-left: var(--s5); }
.site-header { top: 37px; }

/* ----- Hero pacing: the one structural difference between A and B -------- */
/* A gives the hero room to be a statement. B compresses it so the three
   product screens arrive within the first scroll. */
.hero--tall { padding: var(--s16) 0 var(--s20); }
.hero--compact { padding: var(--s10) 0 var(--s10); }
.hero--compact h1 { font-size: clamp(34px, 5.6vw, 60px); }
.hero--compact .lede { font-size: clamp(16px, 1.6vw, 18px); }

.capstrip-lead { color: var(--text-primary); font-weight: 600; }

/* ----- The photograph: the camera over Dubai ------------------------------ */
.photo-full { width: 100%; height: auto; display: block; }
.stakes-photo { position: relative; border-radius: var(--r-sheet); overflow: hidden;
  box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 255, 255, .06); }
/* Only the foot of the picture fades into the page; the sky, the tower and
   the camera stay untouched. */
.stakes-photo::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, transparent 72%, rgba(10, 11, 16, .55) 100%);
}

/* ----- What a camera costs: type, not cards ------------------------------- */
.costs { margin-top: var(--s8); border-top: 1px solid var(--surface-stroke); }
.cost { display: grid; gap: var(--s1); padding: var(--s5) 0; border-bottom: 1px solid var(--surface-stroke); }
.cost dt { font-family: var(--font-display); font-weight: 700; font-size: clamp(22px, 2.4vw, 28px);
  line-height: 1.15; display: flex; align-items: baseline; gap: var(--s3); }
.cost-n { font-family: var(--font-body); font-size: 12px; font-weight: 600; letter-spacing: .14em; color: var(--text-tertiary); }
.cost dd { color: var(--text-secondary); font-size: 16px; }
.cost--danger dt, .cost--danger .cost-n { color: var(--alert-red); }
.stakes-band { padding-block: var(--s16); }

/* ----- iPhone around the app render ---------------------------------------- */
/* Every size inside is a fraction of the phone width, taken from the real
   device (393 pt screen: status bar 54, island 125 x 37, top 11). The figure
   is the container, so the phone scales as one piece. */
.step-phone { margin-top: var(--s8); position: relative; display: grid; justify-items: center; container-type: inline-size; }
.step-phone::before { content: ''; position: absolute; top: 14%; left: 50%; width: 92%; aspect-ratio: 1;
  transform: translateX(-50%); border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(34, 224, 106, .20) 0%, rgba(34, 224, 106, .06) 42%, transparent 68%); }
.iphone { --pw: min(264px, 100cqw); position: relative; width: var(--pw);
  padding: calc(var(--pw) * .013); border-radius: calc(var(--pw) * .168);
  background: linear-gradient(140deg, #8A8E96 0%, #3B3E45 14%, #1C1E23 42%, #2A2D33 70%, #7C8089 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22), 0 46px 80px -28px rgba(0, 0, 0, .9), 0 0 0 1px rgba(0, 0, 0, .7); }
.iphone-screen { position: relative; background: #000; padding: calc(var(--pw) * .026); border-radius: calc(var(--pw) * .155); }
.iphone-screen img { display: block; width: 100%; height: auto; border-radius: calc(var(--pw) * .128); }
.iphone-btn { position: absolute; width: calc(var(--pw) * .012); border-radius: 2px;
  background: linear-gradient(90deg, #2A2C31, #6B6F77); }
.iphone-btn--action { left: calc(var(--pw) * -.009); top: 17%; height: 4.6%; }
.iphone-btn--vol1 { left: calc(var(--pw) * -.009); top: 24.5%; height: 8%; }
.iphone-btn--vol2 { left: calc(var(--pw) * -.009); top: 34.5%; height: 8%; }
.iphone-btn--power { right: calc(var(--pw) * -.009); top: 27%; height: 12.5%; background: linear-gradient(90deg, #6B6F77, #2A2C31); }
.iphone-status { position: absolute; top: calc(var(--pw) * .026); left: calc(var(--pw) * .026); right: calc(var(--pw) * .026);
  height: calc(var(--pw) * .128); display: grid; grid-template-columns: 1fr calc(var(--pw) * .29) 1fr; align-items: center;
  color: #fff; font-family: -apple-system, 'SF Pro Text', 'Helvetica Neue', system-ui, sans-serif; font-weight: 600;
  pointer-events: none; }
.sb-time { justify-self: center; font-size: calc(var(--pw) * .041); letter-spacing: -.01em; padding-left: calc(var(--pw) * .02); }
.sb-island { justify-self: center; width: 100%; height: calc(var(--pw) * .086); border-radius: 999px; background: #000;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04); }
.sb-icons { justify-self: center; display: flex; align-items: center; gap: calc(var(--pw) * .012); padding-right: calc(var(--pw) * .01); }
.sb-signal { width: calc(var(--pw) * .05); fill: #fff; }
.sb-5g { font-size: calc(var(--pw) * .036); letter-spacing: -.01em; }
.sb-battery { width: calc(var(--pw) * .068); fill: #fff; color: #fff; }

/* ----- Trusted camera data: store image 03 as a page ----------------------- */
.trust-section { position: relative; overflow: hidden; padding-bottom: 0; }
/* Signal waves round the laurel — the rings the camera sends out on the
   store feature graphic. */
.trust-section::before { content: ''; position: absolute; left: 50%; top: 0; width: 1400px; height: 1100px;
  transform: translateX(-50%); pointer-events: none;
  background: repeating-radial-gradient(circle at 50% 42%, rgba(34, 224, 106, .16) 0 1.5px, transparent 1.5px 70px);
  -webkit-mask-image: radial-gradient(circle at 50% 42%, #000 0%, rgba(0, 0, 0, .5) 30%, transparent 58%);
          mask-image: radial-gradient(circle at 50% 42%, #000 0%, rgba(0, 0, 0, .5) 30%, transparent 58%); }
.trust { position: relative; z-index: 1; max-width: 48rem; margin: 0 auto; text-align: center; }
.trust h2 { margin-top: var(--s3); }
.laurel { display: flex; align-items: center; justify-content: center; gap: 0; margin-top: var(--s10); }
.laurel-branch { flex: 0 0 auto; width: clamp(78px, 16vw, 150px); height: auto; filter: drop-shadow(0 4px 18px rgba(242, 200, 101, .25)); }
.laurel-branch--r { transform: scaleX(-1); }
.laurel-core { display: grid; justify-items: center; }
.laurel-num { font-family: var(--font-display); font-weight: 700; font-size: clamp(70px, 13vw, 140px); line-height: .92;
  letter-spacing: -.02em; color: #F2C865;
  background: linear-gradient(180deg, #FFF1C9 0%, #F2C865 55%, #C08E33 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.laurel-text { margin-top: var(--s3); font-weight: 700; font-size: clamp(13px, 1.5vw, 16px); letter-spacing: .14em;
  text-transform: uppercase; color: var(--text-primary); max-width: 16em; }
.trust-facts { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s4) var(--s10); margin-top: var(--s10); }
.trust-facts li { display: flex; align-items: center; gap: var(--s3); color: var(--text-secondary); font-size: 17px; }
.trust-facts svg { width: 28px; height: 28px; color: #F2C865; flex: 0 0 auto; }
.trust-facts b { font-family: var(--font-display); font-weight: 700; font-size: 26px; color: var(--text-primary); margin-right: 4px; }
.live-pill { display: inline-flex; align-items: center; gap: var(--s3); margin-top: var(--s10);
  padding: 10px 22px 10px 12px; border-radius: 999px; border: 1.5px solid #F2C865;
  background: rgba(242, 200, 101, .07); font-weight: 600; color: var(--text-primary); }
.flag { width: 30px; height: 15px; border-radius: 3px; display: block; }
.store-links--trust { justify-content: center; margin-top: var(--s6); }
.trust .elsewhere { margin-top: var(--s5); }
.trust-road { position: relative; z-index: 0; margin: calc(var(--s8) * -1) auto 0; max-width: 860px; pointer-events: none;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 88%, transparent 100%),
                      linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
          mask-image: linear-gradient(180deg, transparent 0%, #000 14%, #000 88%, transparent 100%),
                      linear-gradient(90deg, transparent 0%, #000 6%, #000 94%, transparent 100%);
  -webkit-mask-composite: source-in; mask-composite: intersect; }
.trust-road img { width: 100%; height: auto; display: block; }

/* ----- In the car / on the wrist: two pictures, one frame ------------------ */
.rides { display: grid; gap: var(--s12) var(--s8); }
.ride { display: grid; gap: var(--s5); align-content: start; }
.ride-art { margin: 0; border-radius: 24px; overflow: hidden; aspect-ratio: 4 / 3;
  box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 255, 255, .07); }
.ride-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ride-body h3 { font-size: clamp(22px, 2.4vw, 28px); }
.ride-body p { color: var(--text-secondary); margin-top: var(--s2); max-width: 44ch; }
.platforms { display: flex; gap: var(--s2); margin-bottom: var(--s4); }
.platforms img { width: 44px; height: 44px; border-radius: 10px; display: block; }
.platform-tile { width: 44px; height: 44px; border-radius: 10px; display: grid; place-items: center;
  background: #000; color: var(--green); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.platform-tile svg { width: 26px; height: 26px; }

/* ----- The difference: a scoreboard, not a feature table ------------------- */
table.score { width: 100%; max-width: 64rem; margin: 0 auto; border-collapse: separate; border-spacing: 0; }
table.score thead th { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  color: var(--text-secondary); text-align: left; padding: var(--s5) var(--s5) var(--s4); }
table.score th.score-ghost, table.score td.score-ghost { background: #11141A; }
table.score thead th.score-ghost { color: var(--green); border-radius: 18px 18px 0 0; box-shadow: inset 0 3px 0 var(--green); }
table.score tbody tr:last-child td.score-ghost { border-radius: 0 0 18px 18px; }
table.score tbody th { text-align: left; font-family: var(--font-display); font-weight: 700;
  font-size: clamp(18px, 2vw, 23px); line-height: 1.2; padding: var(--s6) var(--s5) var(--s6) 0;
  border-top: 1px solid var(--surface-stroke); width: 34%; vertical-align: middle; }
table.score td { padding: var(--s6) var(--s5); border-top: 1px solid var(--surface-stroke); vertical-align: middle; }
.score-num { font-family: var(--font-display); font-weight: 700; font-size: clamp(32px, 3.8vw, 46px); line-height: 1; color: var(--green); letter-spacing: -.01em; }
.score-unit { font-weight: 600; font-size: 16px; color: var(--text-primary); }
.score-note { display: block; color: var(--text-secondary); font-size: 14px; margin-top: 6px; }
td.score-other { color: var(--text-secondary); font-size: 15.5px; }
.score-x { display: inline-block; position: relative; width: 20px; height: 20px; border-radius: 50%;
  background: rgba(255, 77, 94, .14); vertical-align: -4px; margin-right: 10px; }
.score-x::before, .score-x::after { content: ''; position: absolute; left: 5px; top: 9px; width: 10px; height: 2px;
  border-radius: 2px; background: var(--alert-red); }
.score-x::before { transform: rotate(45deg); }
.score-x::after { transform: rotate(-45deg); }
.score-tag { display: none; }
.score-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* ----- Family Sharing: the people beside the promise ------------------------ */
.family-split { display: grid; gap: var(--s8); align-items: center; }
.family-head h2 { margin-top: var(--s3); }
.family-head .lede { margin-top: var(--s4); }
.family-note { display: flex; gap: var(--s3); align-items: flex-start; margin-top: var(--s6); padding-top: var(--s5);
  border-top: 1px solid var(--surface-stroke); color: var(--text-primary); font-size: 15.5px; max-width: 44ch; }
.family-note svg { width: 20px; height: 20px; flex: 0 0 auto; color: var(--green); margin-top: 1px; }
.fam-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s3); }
.fam-tile { position: relative; margin: 0; border-radius: 18px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--surface-card); }
.fam-tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fam-tile.is-lead { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
.fam-tile:last-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }

/* ----- Footer: social ------------------------------------------------------- */
.social { display: flex; gap: var(--s3); }
.social-link { width: 40px; height: 40px; border-radius: 10px; display: block; transition: transform .2s; }
.social-link svg { width: 40px; height: 40px; display: block; }
a.social-link:hover, a.social-link:focus-visible { transform: translateY(-2px); }
.social-link--pending { opacity: .55; cursor: default; }

/* ----- Closer: graphite with the signal rings, no green fill -------------- */
.closer { position: relative; overflow: hidden; border: 1px solid rgba(34, 224, 106, .22);
  background: radial-gradient(80% 110% at 50% 0%, rgba(34, 224, 106, .12), transparent 62%), #0D0F14; }
.closer::before { content: ''; position: absolute; left: 50%; top: -420px; width: 1200px; height: 900px; transform: translateX(-50%);
  pointer-events: none; background: repeating-radial-gradient(circle at 50% 50%, rgba(34, 224, 106, .09) 0 1.5px, transparent 1.5px 64px);
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 10%, transparent 60%);
          mask-image: radial-gradient(circle at 50% 50%, #000 10%, transparent 60%); }
.closer > * { position: relative; }

/* ----- Waiting list: which country ---------------------------------------- */
.select-wrap { position: relative; margin-bottom: var(--s2); }
.select-wrap::after { content: ''; position: absolute; right: 18px; top: 50%; width: 9px; height: 9px; margin-top: -7px;
  border-right: 2px solid var(--text-secondary); border-bottom: 2px solid var(--text-secondary); transform: rotate(45deg); pointer-events: none; }
.waitlist select { width: 100%; min-height: 52px; padding: 0 48px 0 var(--s4); -webkit-appearance: none; appearance: none;
  background: #0E1016; border: 1px solid var(--surface-stroke-strong); border-radius: var(--r-button);
  color: var(--text-primary); font: inherit; font-size: 16px; }
.waitlist select:invalid { color: var(--text-secondary); }
.waitlist select option { color: #111; }
.waitlist select:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(34, 224, 106, .2); }

/* ----- Closing CTA: a real form, not a jump link ------------------------- */
.closer-form { margin-top: var(--s6); display: flex; justify-content: center; }
.closer-form .waitlist { max-width: 30rem; width: 100%; text-align: left; }
.closer .cta-note { text-align: center; }

/* ----- Contact form ------------------------------------------------------ */
.contact-form { display: grid; gap: var(--s2); margin-top: var(--s10); }
.contact-form label { font-weight: 600; margin-top: var(--s4); }
.contact-form input, .contact-form select, .contact-form textarea {
  width: 100%; min-height: 48px; padding: var(--s3) var(--s4);
  background: #0E1016; border: 1px solid var(--surface-stroke-strong);
  border-radius: var(--r-button); color: var(--text-primary); font: inherit;
}
.contact-form textarea { min-height: 150px; resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus {
  outline: none; border-color: var(--green); box-shadow: 0 0 0 3px rgba(34, 224, 106, .2);
}
.contact-form .btn { margin-top: var(--s5); justify-self: start; }
.field-note { color: var(--text-secondary); font-size: 13.5px; margin-top: var(--s2); }
.field-note a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.contact-direct { color: var(--text-secondary); margin-top: var(--s4); font-size: 15.5px; }
.contact-direct a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }

/* ----- The comparison index page ---------------------------------------- */
.chooser { max-width: 60rem; margin: 0 auto; padding: var(--s20) var(--s5); }
.chooser h1 { font-size: clamp(32px, 5vw, 52px); }
.chooser > .lede { margin-top: var(--s5); }
.chooser-grid { display: grid; gap: var(--s6); margin-top: var(--s12); }
.chooser-card {
  border: 1px solid var(--surface-stroke); border-radius: var(--r-sheet);
  background: var(--surface-card); padding: var(--s8);
  display: grid; gap: var(--s4); align-content: start;
}
.chooser-card h2 { font-size: clamp(24px, 3vw, 32px); }
.chooser-card .tag {
  justify-self: start; background: var(--green); color: #04150B;
  font-weight: 700; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 999px;
}
.chooser-card ol { counter-reset: s; display: grid; gap: 2px; margin-top: var(--s2); }
.chooser-card ol li {
  counter-increment: s; color: var(--text-secondary); font-size: 14.5px;
  display: flex; gap: var(--s3);
}
.chooser-card ol li::before { content: counter(s); color: var(--green); font-weight: 600; min-width: 1.2em; }
.chooser-card ol li.is-moved { color: var(--text-primary); font-weight: 600; }
.chooser-note { color: var(--text-secondary); font-size: 14px; margin-top: var(--s12); max-width: 62ch; }

/* ----- Keep your maps: copy beside a store image -------------------------- */
.split { display: grid; gap: var(--s10); align-items: center; }
.split-body h2 { margin-top: var(--s3); }
.split-body .lede { margin-top: var(--s4); }
.ticks { display: grid; gap: var(--s3); margin-top: var(--s6); }
.ticks li { display: flex; gap: var(--s3); align-items: flex-start; color: var(--text-primary); }
.ticks svg { color: var(--green); flex: 0 0 auto; margin-top: 4px; }
.split-art { margin: 0; border-radius: var(--r-sheet); overflow: hidden;
  border: 1px solid rgba(34, 224, 106, .22); max-width: 460px; justify-self: center; }
.split-art img { width: 100%; height: auto; display: block; }

/* ----- Legal documents ---------------------------------------------------- */
/* The sticky preview bar plus the header sit above an anchored heading. */
.doc-body h2[id] { scroll-margin-top: 110px; }
.doc-body h3 { margin-top: var(--s6); }

/* ----- The real app icon (replaces the redrawn hero badge) ---------------- */
.app-icon { display: inline-block; line-height: 0; }
.app-icon img { width: 100%; height: auto; border-radius: 22.4%; display: block;
  box-shadow: 0 10px 40px rgba(34, 224, 106, .28), 0 2px 8px rgba(0, 0, 0, .5); }
.app-icon--hero { width: clamp(84px, 22vw, 104px); }
.hero--compact .app-icon--hero { width: clamp(72px, 19vw, 88px); }
.app-icon--closer { width: 76px; margin: 0 auto; }
.app-icon--bar { width: 36px; flex: 0 0 auto; }
.app-icon--bar img { box-shadow: none; border-radius: 8px; }

/* ----- Hero: the store image beside the promise --------------------------- */
.hero-kicker { color: var(--alert-red); font-family: var(--font-display); font-weight: 700;
  font-size: clamp(22px, 2.8vw, 32px); line-height: 1; letter-spacing: .02em; text-transform: uppercase;
  margin: var(--s8) 0 var(--s3); display: flex; align-items: center; gap: var(--s3); }
/* A short red rule ties the kicker to the headline under it. */
.hero-kicker::before { content: ''; width: 28px; height: 3px; border-radius: 2px; background: var(--alert-red);
  box-shadow: 0 0 14px rgba(255, 77, 94, .6); }

/* The name beside the icon — the hero carries the brand, not the header. */
.hero-brand { display: flex; align-items: center; gap: var(--s4); }
.hero-brand .app-icon--hero { width: clamp(72px, 18vw, 88px); flex: 0 0 auto; }
.hero-brand-text { display: grid; gap: 4px; }
.hero-brand-name { font-family: var(--font-display); font-weight: 700; font-size: clamp(40px, 6vw, 58px); line-height: .95; color: var(--text-primary); }
.hero-brand-sub { font-size: clamp(12px, 1.3vw, 14px); font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--text-secondary); }
.site-header--bare .nav { justify-content: flex-end; }
.site-header--bare .nav-links { margin-right: auto; }
.hero-art { margin: 0; justify-self: center; max-width: 440px; width: 100%;
  border-radius: 28px; overflow: hidden; border: 1px solid rgba(34, 224, 106, .35);
  box-shadow: 0 30px 80px rgba(0, 0, 0, .55), 0 0 60px rgba(34, 224, 106, .12); }
.hero-art img { width: 100%; height: auto; display: block; }

/* ----- The route to the store --------------------------------------------- */
.available { display: inline-flex; align-items: center; gap: var(--s2); font-weight: 600; color: var(--text-primary); }
.live-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--green);
  box-shadow: 0 0 0 4px rgba(34, 224, 106, .2); }
.store-links { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: center; margin-top: var(--s4); }
.badge-link { display: inline-flex; min-height: 44px; align-items: center; border-radius: 10px; }
.badge-link img { height: 48px; width: auto; display: block; }
.badge-link:focus-visible { outline-offset: 4px; }
.elsewhere { margin-top: var(--s4); font-size: 15px; }
.elsewhere a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.closer .store-links { justify-content: center; margin-top: var(--s6); }

/* ----- Not in the UAE yet: the waiting list ------------------------------- */
.notify { margin: var(--s12) auto 0; max-width: 30rem; padding-top: var(--s8); border-top: 1px solid var(--surface-stroke); }
.notify h3 { font-size: clamp(20px, 2.2vw, 24px); }
.notify p { color: var(--text-secondary); margin-top: var(--s2); }

/* ----- Store bar: the store is one tap away on a phone --------------------- */
.store-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 250;
  display: none; align-items: center; gap: var(--s3);
  padding: var(--s3) var(--s4) calc(var(--s3) + env(safe-area-inset-bottom));
  background: rgba(10, 11, 16, .94); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid var(--surface-stroke);
  transform: translateY(110%); transition: transform .28s var(--ease); }
.store-bar.is-visible { transform: translateY(0); }
.store-bar-name { font-family: var(--font-display); font-weight: 700; font-size: 17px; line-height: 1.1; display: grid; }
.store-bar-name small { font-family: var(--font-body); font-weight: 400; font-size: 12px; color: var(--text-secondary); }
.store-links--bar { margin: 0 0 0 auto; gap: var(--s2); flex-wrap: nowrap; }
.store-links--bar .badge-link img { height: 36px; }

/* ----- News and FAQ ------------------------------------------------------- */
.chip { display: inline-flex; align-items: center; padding: 5px 12px; border-radius: 999px; font-size: 12.5px; font-weight: 600;
  letter-spacing: .04em; color: var(--green); border: 1px solid rgba(34, 224, 106, .35); background: rgba(34, 224, 106, .06); }
.chip--sm { font-size: 11.5px; padding: 3px 10px; }
a.chip:hover { border-color: var(--green); }
.section--news { padding-top: var(--s12); }
.news-head { max-width: 46rem; }
.news-head h1 { font-size: clamp(34px, 5vw, 56px); margin-top: var(--s3); }
.news-head .lede { margin-top: var(--s4); }
.news-cats { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: var(--s6); }
.cover { display: block; line-height: 0; border-radius: 16px; overflow: hidden; background: #0A0B10;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .07); }
.cover img { width: 100%; height: auto; display: block; }
.news-lead { display: grid; gap: var(--s6); align-items: center; margin-top: var(--s10); padding: var(--s5);
  border-radius: 22px; background: #0D0F14; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07); }
.news-lead-body { display: grid; gap: var(--s3); justify-items: start; }
.news-lead-title { font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 3vw, 36px); line-height: 1.12; color: var(--text-primary); }
.news-cat { margin-top: var(--s16); }
.news-cat h2 { font-size: clamp(22px, 2.6vw, 30px); margin-bottom: var(--s6); }
.news-grid { display: grid; gap: var(--s6); }
.news-card { display: grid; gap: var(--s4); align-content: start; color: inherit; }
.news-card-body { display: grid; gap: var(--s2); justify-items: start; }
.news-card-title { font-family: var(--font-display); font-weight: 700; font-size: 20px; line-height: 1.2; color: var(--text-primary); }
.news-card-dek { color: var(--text-secondary); font-size: 15px; line-height: 1.55; }
.news-card:hover .news-card-title, .news-lead:hover .news-lead-title { color: var(--green); }
.news-card:hover .cover { box-shadow: 0 0 0 1px rgba(34, 224, 106, .45); }

.wrap--article { max-width: 46rem; }
.article { padding-top: var(--s10); }
.crumbs { display: flex; flex-wrap: wrap; gap: var(--s2); font-size: 13.5px; color: var(--text-secondary); }
.crumbs a { color: var(--text-secondary); text-decoration: underline; text-underline-offset: 3px; }
.article-head { margin-top: var(--s6); display: grid; gap: var(--s4); justify-items: start; }
.article-head h1 { font-size: clamp(32px, 4.8vw, 50px); line-height: 1.08; }
.article-meta { display: flex; flex-wrap: wrap; gap: var(--s2); color: var(--text-secondary); font-size: 14px; }
.hero-photo { margin: var(--s8) 0 0; }
.hero-photo figcaption { margin-top: var(--s2); font-size: 12.5px; color: var(--text-tertiary); }
.hero-photo figcaption a { color: var(--text-secondary); text-decoration: underline; text-underline-offset: 2px; }
.kp { margin-top: var(--s8); padding: var(--s6); border-radius: 16px; background: #0D0F14;
  box-shadow: inset 3px 0 0 var(--green), inset 0 0 0 1px rgba(255, 255, 255, .06); }
.kp h2 { font-family: var(--font-body); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--green); }
.kp ul { margin-top: var(--s3); display: grid; gap: var(--s2); }
.kp li { position: relative; padding-left: 20px; color: var(--text-primary); line-height: 1.55; }
.kp li::before { content: ''; position: absolute; left: 0; top: .6em; width: 8px; height: 8px; border-radius: 50%; border: 2px solid var(--green); }
.article-body { margin-top: var(--s8); color: var(--text-primary); font-size: 17.5px; line-height: 1.7; }
.article-body > * + * { margin-top: var(--s5); }
.article-body h2 { font-size: clamp(23px, 2.6vw, 29px); margin-top: var(--s12); line-height: 1.2; }
.article-body p, .article-body li { color: #C9CDD8; }
.article-body strong, .article-body b { color: var(--text-primary); }
.article-body a, .article-faq a, .faq .answer a, .sources a, .faq-more a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }
.article-body ul, .article-body ol { display: grid; gap: var(--s2); padding-left: 1.3em; }
.article-body ul { list-style: disc; }
.article-body ol { list-style: decimal; }
.article-body li::marker { color: var(--green); }
.gfx { margin: var(--s8) 0; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.gfx figcaption { color: var(--text-tertiary); font-size: 13px; margin-top: var(--s3); line-height: 1.5; }
.data-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15.5px; border-radius: 14px; overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); }
.data-table caption { caption-side: top; text-align: left; font-weight: 600; color: var(--text-primary); padding-bottom: var(--s3); font-size: 15px; }
.data-table th, .data-table td { padding: 12px 14px; text-align: left; border-top: 1px solid rgba(255, 255, 255, .07); vertical-align: top; }
.data-table thead th { border-top: none; background: #11141A; font-size: 12.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--text-secondary); }
.data-table tbody th { font-weight: 600; color: var(--text-primary); }
.data-table td { color: #C9CDD8; }
.data-table tr.is-hot td, .data-table tr.is-hot th { color: #FFB3BB; }
.data-table tr.is-hot td:first-of-type { color: var(--alert-red); font-weight: 600; }
.data-table .is-ghost { background: rgba(34, 224, 106, .06); color: var(--text-primary); }
.data-table thead .is-ghost { color: var(--green); }
.gfx--chart svg { width: 100%; height: auto; display: block; background: #0D0F14; border-radius: 14px; padding: 18px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07); }
.c-label { fill: var(--text-primary); font: 600 15px var(--font-body); }
.c-name { fill: #C9CDD8; font: 500 14px var(--font-body); }
.c-val { fill: var(--text-primary); font: 700 16px var(--font-body); }
.c-note, .c-small { fill: var(--text-secondary); font: 500 12.5px var(--font-body); }
.c-red { fill: var(--alert-red); }
.c-bar--limit { fill: #5A6070; } .c-bar--red { fill: var(--alert-red); } .c-bar--amber { fill: #FFC24B; }
.c-track { fill: #23262E; } .c-fill { fill: url(#none); fill: var(--alert-red); opacity: .85; }
.c-tick { stroke: #EDEFF6; stroke-width: 2; } .c-tick--red { stroke: var(--alert-red); stroke-width: 3; }
.blocks { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s3); }
.block { display: grid; gap: 4px; padding: var(--s5) var(--s4); border-radius: 14px; background: #0D0F14;
  box-shadow: inset 0 3px 0 var(--alert-red), inset 0 0 0 1px rgba(255, 255, 255, .06); font-size: 14px; color: var(--text-secondary); }
.block-big { font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 3vw, 32px); color: var(--text-primary); }
.timeline { display: grid; gap: 0; }
.timeline li { display: grid; grid-template-columns: 92px 1fr auto; gap: var(--s4); align-items: center; padding: 14px 0; border-top: 1px solid rgba(255, 255, 255, .07); }
.tl-date { font-weight: 600; color: var(--green); font-size: 14px; }
.tl-road { color: #C9CDD8; font-size: 15px; line-height: 1.45; }
.tl-signs { display: flex; align-items: center; gap: 8px; }
.tl-arrow { color: var(--text-secondary); }
.limit-sign { width: 44px; height: 44px; display: block; }
.limit-sign.is-old { opacity: .45; }
.signs { display: flex; flex-wrap: wrap; gap: var(--s4); justify-content: center; padding: var(--s6); border-radius: 16px; background: #0D0F14; }
.signs .limit-sign { width: 72px; height: 72px; }
.ai-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s3); }
.ai-grid li { display: grid; gap: 2px; padding: var(--s4); border-radius: 14px; background: #0D0F14; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06); font-size: 14px; color: var(--text-secondary); position: relative; padding-left: 40px; }
.ai-grid b { color: var(--text-primary); font-size: 15.5px; }
.ai-dot { position: absolute; left: 16px; top: 21px; width: 12px; height: 12px; border-radius: 50%; border: 3px solid var(--green); }
.stat { display: grid; gap: var(--s2); padding: var(--s6); border-radius: 16px; background: #0D0F14; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06); }
.stat-big { font-family: var(--font-display); font-weight: 700; font-size: clamp(44px, 7vw, 72px); line-height: 1; color: var(--green); }
.stat-text { color: var(--text-secondary); }
.ghost-cta { margin: var(--s12) 0 var(--s4); padding: var(--s6); border-radius: 20px; background: radial-gradient(90% 120% at 0% 0%, rgba(34, 224, 106, .12), transparent 60%), #0D0F14;
  box-shadow: inset 0 0 0 1px rgba(34, 224, 106, .28); }
.ghost-cta-head { display: flex; gap: var(--s4); align-items: center; }
.app-icon--cta { width: 56px; flex: 0 0 auto; }
.ghost-cta-title { font-family: var(--font-display); font-weight: 700; font-size: clamp(20px, 2.4vw, 26px); color: var(--text-primary); margin-top: 4px !important; }
.ghost-cta ul { margin-top: var(--s4); list-style: none; padding: 0; }
.ghost-cta li { position: relative; padding-left: 24px; }
.ghost-cta li::before { content: ''; position: absolute; left: 0; top: .55em; width: 10px; height: 10px; border-radius: 50%; border: 3px solid var(--green); }
.ghost-cta .cta-note { font-size: 14px; color: var(--text-secondary); }
.article-faq { margin-top: var(--s12); }
.article-faq h2, .sources h2 { font-size: clamp(21px, 2.4vw, 26px); }
.article-faq details, .faq-group details { border-top: 1px solid rgba(255, 255, 255, .08); padding: var(--s4) 0; }
.article-faq summary, .faq-group summary { cursor: pointer; font-weight: 600; color: var(--text-primary); font-size: 17px; }
.article-faq .answer { margin-top: var(--s3); color: #C9CDD8; line-height: 1.65; }
.sources { margin-top: var(--s12); padding-top: var(--s6); border-top: 1px solid rgba(255, 255, 255, .08); }
.sources ol { margin-top: var(--s4); display: grid; gap: var(--s2); padding-left: 1.3em; list-style: decimal; color: var(--text-secondary); font-size: 14.5px; line-height: 1.5; }
.sources-note { margin-top: var(--s4); color: var(--text-tertiary); font-size: 13.5px; }
.related { margin-top: var(--s16); padding: var(--s12) 0 var(--s16); border-top: 1px solid rgba(255, 255, 255, .06); }
.related h2 { font-size: clamp(22px, 2.6vw, 30px); margin-bottom: var(--s6); }
.doc--faq .news-cats { margin-top: var(--s6); }
.faq-group { margin-top: var(--s12); }
.faq-group h2 { font-size: clamp(22px, 2.6vw, 30px); margin-bottom: var(--s3); }
.faq-group .answer { margin-top: var(--s3); color: #C9CDD8; line-height: 1.65; }
.faq-more { margin-top: var(--s12); color: var(--text-secondary); }

.doc-lang { margin-top: var(--s4); color: var(--text-secondary); font-size: 14.5px; }
.doc-lang a { color: var(--green); text-decoration: underline; text-underline-offset: 3px; }

/* ==========================================================================
   RESPONSIVE — every media query lives below this marker, after all base
   rules. New component styles go ABOVE it, never below.
   ========================================================================== */

@media (max-width: 767px) {
  .variant-bar { font-size: 12px; gap: var(--s3); padding: var(--s2) var(--s4); flex-wrap: wrap; }
  .variant-bar a { margin-left: 0; }
  .variant-bar a + a { margin-left: var(--s4); }
  .site-header { top: 0; }
  .closer-form .waitlist { max-width: none; }
  .store-bar { display: flex; }
  /* Room for the bar, so it never sits over the last line of the footer. */
  body[data-variant] .site-footer { padding-bottom: 104px; }
  .hero-art { max-width: 360px; margin-top: var(--s4); }
  .badge-link img { height: 44px; }
  .store-links--hero { gap: var(--s2); }
  .stakes-photo--band { max-width: 360px; }
  .step-phone .iphone { --pw: min(250px, 100cqw); }
  /* The scoreboard becomes one block per problem. */
  table.score, table.score tbody, table.score tr, table.score th, table.score td { display: block; width: auto; }
  table.score thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  table.score tbody tr { padding: var(--s6) 0; border-top: 1px solid var(--surface-stroke); }
  table.score tbody th { border: none; padding: 0 0 var(--s3); width: auto; }
  table.score td { border: none; padding: 0; }
  table.score td.score-ghost { border-radius: 14px; padding: var(--s4) var(--s5); box-shadow: inset 3px 0 0 var(--green); }
  table.score tbody tr:last-child td.score-ghost { border-radius: 14px; }
  table.score td.score-other { padding: var(--s3) 0 0; }
  .score-label { position: static; width: auto; height: auto; overflow: visible; clip-path: none; white-space: normal; color: var(--text-primary); font-weight: 600; }
  .trust-road { margin-top: calc(var(--s4) * -1); }
  .score-tag { display: block; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--green); margin-bottom: 6px; }
}
@media (max-width: 380px) {
  .store-bar-name small { display: none; }
  .store-links--bar .badge-link img { height: 32px; }
}

@media (min-width: 768px) {
  .chooser-grid { grid-template-columns: 1fr 1fr; }
  .rides { grid-template-columns: 1fr 1fr; }
  .costs--row { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s5); border-top: none; }
  .costs--row .cost { border-bottom: none; border-top: 2px solid var(--surface-stroke-strong); align-content: start; }
  .costs--row .cost--danger { border-top-color: var(--alert-red); }
  .costs--row .cost dt { font-size: clamp(20px, 2vw, 24px); }
}

@media (min-width: 901px) {
  .split { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: var(--s16); }
  .stakes--band { grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); }
  .family-split { grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: var(--s12); }
  .fam-grid { grid-template-columns: repeat(3, 1fr); }
  .fam-tile.is-lead { grid-column: 1 / span 2; grid-row: 1 / span 2; aspect-ratio: auto; }
  .fam-tile:last-child { grid-column: auto; aspect-ratio: 4 / 3; }
}

@media (min-width: 700px) {
  .news-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 1000px) {
  .news-grid { grid-template-columns: repeat(3, 1fr); }
  .news-lead { grid-template-columns: 1.25fr 1fr; padding: var(--s6); }
}
@media (max-width: 560px) {
  .timeline li { grid-template-columns: 1fr auto; }
  .tl-date { grid-column: 1 / -1; }
  .blocks { grid-template-columns: 1fr; }
  .ai-grid { grid-template-columns: 1fr; }
  .data-table { font-size: 14px; }
  .data-table th, .data-table td { padding: 10px 8px; }
  .data-table thead th { font-size: 10.5px; letter-spacing: .02em; }
  .data-table caption { font-size: 14px; }
  .article-body { font-size: 16.5px; }
}
@media (max-width: 360px) {
  .data-table { font-size: 13px; }
  .data-table th, .data-table td { padding: 9px 6px; }
  .data-table thead th { font-size: 10px; letter-spacing: 0; }
  .hero-brand-sub { letter-spacing: .12em; }
}
