/* dark-studio-theme applied */
/* ============================================================================
   Savvy AI Assist homepage V2: light canvas, neon rainbow, Apple-type swag.
   Prefix sv-, owned root #sv-site. Loads after assets/scrollcraft.css.
   Essential copy is visible by default; decorative progress is gated on --sc-p
   (Scroll Craft) and loops run only while on screen (loops.js).
   ========================================================================== */

@property --rb-a { syntax: '<angle>'; inherits: true; initial-value: 0deg; }

#sv-site, :root {
  --sc-canvas: #21141a; --sc-surface: #190e12; --sc-ink: #f7ece6; --sc-ink-soft: #dccbc4;
  --sc-accent: #ff7a6b; --sc-accent-ink: #21141a;
  --sc-font-display: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif;
  --sc-font-text: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
  --sc-maxw: 80rem; --sc-section: clamp(4rem, 3rem + 6vw, 8.5rem); --sc-gutter: clamp(1rem, 4vw, 3.5rem);
  --sc-shadow-color: 230 20% 20%;

  --sv-canvas: #21141a; --sv-pearl: #190e12; --sv-pearl-2: #2a181e; --sv-ink: #f7ece6; --sv-body: #dccbc4; --sv-muted: #bfa9a2; --sv-hair: #2e2226; --sv-hair-2: #3d3034;
  --sv-glass: rgba(33, 20, 26,.72); --sv-char: #f7ece6;
  --sv-pink: #ff2e3f; --sv-orange: #ff5a4d; --sv-yellow: #d9b37a; --sv-green: #e8b4a6; --sv-teal: #f2c9bd; --sv-blue: #ff7a6b; --sv-indigo: #d9b37a; --sv-purple: #e3bd8b;
  --rb: linear-gradient(90deg, #ff2e3f, #ff5a4d, #d9b37a, #e8b4a6, #f2c9bd, #ff7a6b, #e3bd8b, #ff2e3f);
  --rb-conic: conic-gradient(from var(--rb-a), #ff2e3f, #ff5a4d, #d9b37a, #e8b4a6, #f2c9bd, #ff7a6b, #e3bd8b, #ff2e3f);
  --rb-text: linear-gradient(100deg, #ff2e3f 0%, #ff5a4d 24%, #ff7a6b 60%, #e3bd8b 100%);
  --sv-r-tile: 28px; --sv-r-card: 22px; --sv-r-field: 14px; --sv-r-sticker: 18px;
  --sv-shadow: 0 10px 30px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);
  --sv-shadow-lg: 0 30px 80px -30px rgba(0, 0, 0, .18), 0 2px 6px rgba(0, 0, 0, .05);
  --sv-ease: cubic-bezier(.22, 1, .36, 1); --sv-spring: cubic-bezier(.34, 1.56, .64, 1);
  --sv-bar-h: 64px; --footer-h: 760px;
  color-scheme: dark;
}

html { scroll-padding-top: calc(var(--sv-bar-h) + 16px); background: #21141a; }
body { background: #21141a; }
#sv-site { position: relative; color: var(--sv-ink); font-family: var(--sc-font-text); background: #21141a; }
#sv-site *, #sv-site *::before, #sv-site *::after { box-sizing: border-box; }
:where(#sv-site) :where(h1, h2, h3, h4, p, ul, ol, figure, blockquote, dl, dd) { margin: 0; }
:where(#sv-site) :where(ul, ol) { padding: 0; list-style: none; }
:where(#sv-site) :where(a) { color: inherit; text-decoration: none; }
:where(#sv-site) :where(button) { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
:where(#sv-site) :where(a, button, summary, label, input, select, textarea) { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
:where(#sv-site) :where(img, svg, video, canvas) { display: block; max-width: 100%; }
:where(#sv-site) :where(h1, h2, h3) { font-family: var(--sc-font-display); font-weight: 700; letter-spacing: -.04em; line-height: 1.02; text-wrap: balance; color: var(--sv-ink); }
:where(#sv-site) :where(p, li, dd) { text-wrap: pretty; }
:where(#sv-site) :where(strong) { font-weight: 600; color: var(--sv-ink); }
#sv-site :focus-visible { outline: 3px solid var(--sv-indigo); outline-offset: 3px; border-radius: 10px; }
#sv-site ::selection { background: #d9b37a; color: #f7ece6; }
.sv-defs { position: absolute; width: 0; height: 0; overflow: hidden; }

/* First-paint safety: cue/reveal hiding only when the engine is live */
body:not(.sc-live) #sv-site [data-sc-cue], body:not(.sc-live) #sv-site [data-sc-in], body:not(.sc-live) #sv-site [data-sc-stagger] > * { opacity: 1 !important; transform: none !important; }
body:not(.sc-live) #sv-site [data-sc-reveal] { clip-path: none !important; }

/* ---------------------------------------------------------------- type -- */
.sv-display { font-size: clamp(2.5rem, 1.2rem + 3.9vw, 4.9rem); letter-spacing: -.048em; line-height: .98; font-weight: 700; }
.sv-h2 { font-size: clamp(2.1rem, 1.3rem + 3.2vw, 4rem); letter-spacing: -.04em; line-height: 1.02; }
.sv-h3 { font-size: clamp(1.3rem, 1.1rem + .9vw, 1.75rem); letter-spacing: -.025em; line-height: 1.18; font-weight: 700; }
.sv-lead { font-size: clamp(1.2rem, 1.05rem + .7vw, 1.6rem); font-weight: 400; line-height: 1.38; letter-spacing: -.015em; color: var(--sv-body); max-width: 46ch; }
.sv-body { font-size: 1.0625rem; line-height: 1.6; color: var(--sv-body); max-width: 62ch; letter-spacing: -.008em; }
.sv-label { font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sv-muted); }
.sv-note { font-size: .9rem; color: var(--sv-muted); line-height: 1.5; }
.sv-rb-text, .sv-label--rb { color: transparent; background: var(--rb-text); -webkit-background-clip: text; background-clip: text; }
@supports not (background-clip: text) { .sv-rb-text, .sv-label--rb { color: var(--sv-indigo); background: none; } }

/* ------------------------------------------------------------- layout -- */
.sv-wrap { width: 100%; max-width: var(--sc-maxw); margin-inline: auto; padding-inline: var(--sc-gutter); position: relative; z-index: 1; }
.sv-section { padding-block: var(--sc-section); position: relative; }
.sv-pearl { background: var(--sv-pearl); }
.sv-grid-2 { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.sv-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
#sv-page { position: relative; z-index: 1; background: #21141a; margin-bottom: var(--footer-h); box-shadow: 0 40px 80px -20px rgba(0,0,0,.3); }

/* --------------------------------------------------------------- glow -- */
.sv-glow { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 0; }
.sv-glow i { position: absolute; width: 46vw; height: 46vw; max-width: 720px; max-height: 720px; border-radius: 50%; filter: blur(70px); opacity: .5; animation: sv-drift 14s ease-in-out infinite; }
.sv-glow i:nth-child(1) { background: #ff2e3f; left: -10%; top: -10%; }
.sv-glow i:nth-child(2) { background: #ff7a6b; right: -12%; top: 10%; animation-delay: -4.6s; }
.sv-glow i:nth-child(3) { background: #d9b37a; left: 30%; bottom: -20%; animation-delay: -9.3s; opacity: .35; }
.sv-glow--soft i { opacity: .22; }
@keyframes sv-drift { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(4%, 6%) scale(1.08); } 66% { transform: translate(-5%, 3%) scale(.94); } }

/* ------------------------------------------------------------ controls -- */
.sv-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: 54px; padding: 0 1.6rem; border-radius: 999px; background: transparent; color: #21141a; font-weight: 600; font-size: 1rem; letter-spacing: -.012em; white-space: nowrap; border: 0; isolation: isolate; transition: transform 160ms var(--sv-ease), box-shadow 200ms var(--sv-ease); }
.sv-btn::before { content: ""; position: absolute; inset: -2px; border-radius: inherit; background: var(--rb-conic); z-index: -2; opacity: 0; transition: opacity 200ms; animation: sv-spin 6s linear infinite; }
.sv-btn::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: var(--sv-ink); z-index: -1; }
.sv-btn:hover { transform: translateY(-1px); box-shadow: 0 14px 34px -14px rgba(255, 46, 63, .55); }
.sv-btn:hover::before { opacity: 1; }
.sv-btn:active { transform: scale(.96, 1.04); }
.sv-btn.is-jelly { animation: sv-jelly .55s var(--sv-spring); }
.sv-btn[disabled], .sv-btn[aria-disabled="true"] { opacity: .5; pointer-events: none; }
.sv-btn--rb { color: var(--sv-ink); }
.sv-btn--rb::after { background: #21141a; }
.sv-btn--rb::before { opacity: 1; }
.sv-btn--ghost { color: var(--sv-ink); }
.sv-btn--ghost::after { background: #21141a; border: 1px solid var(--sv-hair-2); }
.sv-btn--ghost::before { opacity: 0; }
.sv-btn--ghost:hover::before { opacity: 1; }
.sv-btn--ghost:hover::after { border-color: transparent; }
.sv-btn--small { min-height: 44px; padding: 0 1.15rem; font-size: .94rem; }
.sv-link { color: var(--sv-ink); text-decoration: underline; text-decoration-color: var(--sv-hair-2); text-underline-offset: .25em; font-weight: 500; }
.sv-link:hover { text-decoration-color: var(--sv-indigo); }
.sv-cta-row { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; }
.sv-cta-micro { font-size: .88rem; color: var(--sv-muted); }
@keyframes sv-spin { to { --rb-a: 360deg; } }
@keyframes sv-jelly { 0% { transform: scale(1, 1); } 25% { transform: scale(.92, 1.08); } 50% { transform: scale(1.06, .94); } 75% { transform: scale(.98, 1.02); } 100% { transform: scale(1, 1); } }

.sv-chip { position: relative; display: inline-flex; align-items: center; gap: .5em; min-height: 42px; padding: 0 1rem; border-radius: 999px; background: #21141a; border: 1px solid var(--sv-hair-2); color: var(--sv-body); font-size: .95rem; font-weight: 500; transition: transform 160ms var(--sv-ease), box-shadow 160ms, color 160ms, border-color 160ms; isolation: isolate; }
.sv-chip:hover { transform: translateY(-1px); box-shadow: var(--sv-shadow); color: var(--sv-ink); }
.sv-chip[aria-pressed="true"], .sv-chip[aria-selected="true"], .sv-chip.is-on { color: var(--sv-ink); border-color: transparent; }
.sv-chip[aria-pressed="true"]::before, .sv-chip[aria-selected="true"]::before, .sv-chip.is-on::before { content: ""; position: absolute; inset: -2px; border-radius: inherit; background: var(--rb-conic); z-index: -2; animation: sv-spin 6s linear infinite; }
.sv-chip[aria-pressed="true"]::after, .sv-chip[aria-selected="true"]::after, .sv-chip.is-on::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: #21141a; z-index: -1; }
.sv-chip b { font-weight: 600; font-size: .72rem; color: var(--sv-muted); letter-spacing: .06em; }

.sv-tile { position: relative; border-radius: var(--sv-r-tile); background: var(--sv-glass); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); border: 1px solid rgba(33, 20, 26,.9); box-shadow: var(--sv-shadow), inset 0 0 0 1px rgba(247, 236, 230,.04); overflow: clip; isolation: isolate; }
.sv-tile--solid { background: #21141a; }
.sv-tile--pearl { background: var(--sv-pearl); }
.sv-tile--rb { border-color: transparent; }
.sv-tile--rb::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 2px; background: var(--rb-conic); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; animation: sv-spin 8s linear infinite; z-index: 2; }
.sv-sticker { position: relative; display: inline-flex; align-items: center; gap: .55rem; padding: .6rem .9rem .6rem .7rem; border-radius: var(--sv-r-sticker); background: #21141a; border: 1px solid rgba(247, 236, 230,.06); box-shadow: 0 10px 24px -10px rgba(0, 0, 0,.25), inset 0 1px 0 rgba(33, 20, 26,.9); font-weight: 600; font-size: .86rem; letter-spacing: -.01em; color: var(--sv-ink); isolation: isolate; overflow: clip; }
.sv-sticker::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: conic-gradient(from calc(var(--mx, .5) * 360deg) at calc(var(--mx, .5) * 100%) calc(var(--my, .5) * 100%), rgba(255, 46, 63,.4), rgba(217, 179, 122,.4), rgba(232, 180, 166,.4), rgba(255, 122, 107,.4), rgba(227, 189, 139,.4), rgba(255, 46, 63,.4)); mix-blend-mode: color-dodge; opacity: .6; pointer-events: none; }
.sv-sticker svg { width: 22px; height: 22px; flex: none; }
.sv-sticker svg path, .sv-sticker svg rect, .sv-sticker svg circle { fill: none; stroke: var(--sv-ink); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.sv-sticker.is-missed { box-shadow: 0 10px 24px -10px rgba(255, 59, 48, .5), inset 0 0 0 1px rgba(255,59,48,.5); }

/* ------------------------------------------------------------- chrome -- */
.sv-skip { position: fixed; left: 16px; top: -80px; z-index: 100; padding: 12px 16px; background: var(--sv-ink); color: #21141a; border-radius: 12px; font-weight: 600; }
.sv-skip:focus { top: 12px; }
.sv-menu { position: fixed; top: 12px; left: 50%; transform: translateX(-50%); z-index: 60; display: flex; align-items: center; gap: .25rem; padding: .35rem .5rem .35rem .75rem; width: min(calc(100% - 2 * var(--sc-gutter)), 1180px); border-radius: 999px; background: var(--sv-glass); backdrop-filter: blur(20px) saturate(160%); -webkit-backdrop-filter: blur(20px) saturate(160%); border: 1px solid rgba(33, 20, 26,.85); box-shadow: 0 10px 40px -16px rgba(0, 0, 0,.25), 0 0 0 1px rgba(247, 236, 230,.05); transition: width 480ms var(--sv-ease), padding 320ms var(--sv-ease), box-shadow 320ms; }
.sv-menu.is-compact { width: min(92vw, 560px); padding-left: .5rem; box-shadow: 0 16px 50px -18px rgba(0, 0, 0,.35), 0 0 0 1px rgba(247, 236, 230,.06); }
.sv-brand { display: inline-flex; align-items: center; min-height: 44px; padding: 0 .35rem; }
.sv-brand img { height: 28px; width: auto; }
.sv-nav { position: relative; display: flex; gap: .15rem; margin-left: auto; margin-right: .5rem; }
.sv-nav a { position: relative; z-index: 1; color: var(--sv-body); font-weight: 500; font-size: .94rem; padding: .6rem .8rem; border-radius: 999px; transition: color 160ms, background 160ms; white-space: nowrap; }
.sv-nav a:hover { color: var(--sv-ink); background: rgba(247, 236, 230,.05); }
.sv-nav a[aria-current="true"] { color: var(--sv-ink); }
.sv-hop { position: absolute; left: 0; bottom: 3px; width: 8px; height: 8px; border-radius: 50%; background: var(--rb); background-size: 300% 100%; animation: sv-rb-slide 4s linear infinite; transition: transform 520ms var(--sv-spring), opacity 200ms; z-index: 0; opacity: 0; }
.sv-hop.is-shown { opacity: 1; }
.sv-hop.is-hopping { animation: sv-rb-slide 4s linear infinite, sv-hop .52s var(--sv-ease); }
@keyframes sv-hop { 0% { margin-bottom: 0; } 50% { margin-bottom: 16px; } 100% { margin-bottom: 0; } }
@keyframes sv-rb-slide { to { background-position: 300% 0; } }
.sv-menu .sv-btn { min-height: 42px; padding: 0 1.1rem; font-size: .92rem; }
.sv-menu.is-compact .sv-nav, .sv-menu.is-compact .sv-xray { display: none; }
.sv-menu.is-compact .sv-menu-btn { display: inline-flex; margin-left: auto; }
.sv-menu-btn { display: none; min-width: 42px; min-height: 42px; align-items: center; justify-content: center; border-radius: 999px; color: var(--sv-ink); }
.sv-menu-btn:hover { background: rgba(247, 236, 230,.05); }
.sv-menu-btn svg { width: 20px; height: 20px; }
.sv-xray { display: inline-flex; align-items: center; gap: .4rem; min-height: 42px; padding: 0 .75rem; border-radius: 999px; font-size: .78rem; font-weight: 600; letter-spacing: .04em; color: var(--sv-muted); }
.sv-xray i { width: 28px; height: 16px; border-radius: 999px; background: var(--sv-hair-2); position: relative; transition: background 200ms; }
.sv-xray i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%; background: #21141a; transition: transform 200ms var(--sv-ease); }
.sv-xray[aria-pressed="true"] { color: var(--sv-ink); }
.sv-xray[aria-pressed="true"] i { background: var(--rb); background-size: 300% 100%; animation: sv-rb-slide 4s linear infinite; }
.sv-xray[aria-pressed="true"] i::after { transform: translateX(12px); }
.sv-panel { position: fixed; top: 76px; left: 50%; transform: translateX(-50%); z-index: 59; width: min(92vw, 560px); display: grid; grid-template-rows: 0fr; transition: grid-template-rows 420ms var(--sv-ease); }
.sv-panel.is-open { grid-template-rows: 1fr; }
.sv-panel > div { overflow: hidden; }
.sv-panel-inner { padding: 1rem; border-radius: 24px; background: var(--sv-glass); backdrop-filter: blur(22px) saturate(160%); -webkit-backdrop-filter: blur(22px) saturate(160%); border: 1px solid rgba(33, 20, 26,.9); box-shadow: var(--sv-shadow-lg); display: grid; gap: .25rem; }
.sv-panel-inner a { display: flex; justify-content: space-between; align-items: center; padding: .9rem 1rem; border-radius: 14px; font-weight: 600; color: var(--sv-ink); min-height: 48px; }
.sv-panel-inner a:hover { background: rgba(247, 236, 230,.05); }
.sv-panel-inner a span { font-weight: 500; color: var(--sv-muted); font-size: .86rem; }
.sv-panel-inner .sv-btn { margin-top: .5rem; }
.sv-panel-inner .sv-xray { justify-self: start; }

.sv-rail { position: fixed; right: clamp(.6rem, 1.6vw, 1.5rem); top: 50%; transform: translateY(-50%); z-index: 50; display: none; flex-direction: column; gap: 14px; }
.sv-rail a { position: relative; display: flex; align-items: center; justify-content: flex-end; gap: 10px; min-height: 28px; min-width: 28px; color: var(--sv-muted); font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.sv-rail a span { opacity: 0; transform: translateX(4px); transition: opacity 160ms, transform 160ms; background: var(--sv-glass); padding: .25rem .5rem; border-radius: 999px; backdrop-filter: blur(10px); }
.sv-rail a i { width: 8px; height: 8px; border-radius: 50%; background: var(--sv-hair-2); transition: background 200ms, transform 200ms; flex: none; }
.sv-rail a:hover span, .sv-rail a:focus-visible span, .sv-rail a[aria-current="true"] span { opacity: 1; transform: none; }
.sv-rail a[aria-current="true"] i, .sv-rail a.is-lit i { background: var(--rb); background-size: 300% 100%; animation: sv-rb-slide 4s linear infinite; transform: scale(1.3); }
.sv-orb { position: fixed; right: clamp(.3rem, 1.2vw, 1.1rem); top: 0; width: 30px; height: 30px; z-index: 51; pointer-events: none; display: none; will-change: transform; }
.sv-orb i { position: absolute; inset: 0; border-radius: 50%; background: var(--rb-conic); animation: sv-spin 3s linear infinite; box-shadow: 0 0 0 4px rgba(33, 20, 26,.9), 0 8px 26px -6px rgba(255, 46, 63, .7); }
.sv-orb i::after { content: ""; position: absolute; inset: 8px; border-radius: 50%; background: #21141a; }
.sv-orb b { position: absolute; inset: -10px; border-radius: 50%; border: 2px solid rgba(255, 46, 63, .35); animation: sv-pulse 2.2s var(--sv-ease) infinite; }
.sv-orb.mood-lost i { animation-duration: .7s; }
.sv-orb.mood-spin i { animation-duration: 1.1s; }
.sv-orb.mood-flare i { box-shadow: 0 0 0 4px rgba(33, 20, 26,.9), 0 0 60px 10px rgba(255, 46, 63, .35); }
.sv-orb.mood-landed b { animation: none; opacity: 0; }
@keyframes sv-pulse { 0% { transform: scale(.6); opacity: .8; } 100% { transform: scale(1.8); opacity: 0; } }

.sv-dock { position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; display: none; gap: .5rem; padding: .6rem var(--sc-gutter) calc(.6rem + env(safe-area-inset-bottom)); background: var(--sv-glass); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border-top: 1px solid var(--sv-hair); transform: translateY(110%); transition: transform 260ms var(--sv-ease); }
.sv-dock.is-shown { transform: none; }
.sv-dock .sv-btn { flex: 1; min-height: 48px; padding: 0 .8rem; font-size: .92rem; }

/* X-ray mode */
.xray #sv-site canvas, .xray #sv-site svg.sv-drawn, .xray #sv-site .sv-drawn-css { outline: 2px dashed var(--sv-indigo); outline-offset: 4px; }
.xray #sv-site video, .xray #sv-site img.sv-media { outline: 2px dashed var(--sv-orange); outline-offset: 4px; }
.xray #sv-site [data-xray]::after { content: attr(data-xray); position: absolute; left: 8px; top: 8px; z-index: 5; font-size: .66rem; font-weight: 700; letter-spacing: .1em; padding: .2rem .5rem; border-radius: 999px; background: var(--sv-indigo); color: #fff; pointer-events: none; }
.xray #sv-site [data-xray="VIDEO"]::after, .xray #sv-site [data-xray="IMAGE"]::after { background: var(--sv-orange); }
.xray #sv-site [data-xray="WIDGET"]::after { background: var(--sv-green); color: var(--sv-ink); }

/* ---------------------------------------------------------------- hero -- */
.sv-hero { --hp: var(--sc-p, 1); position: relative; }
.sv-hero-stage { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: clip; background: #21141a; }
.sv-hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.sv-hero-grid { position: relative; z-index: 2; height: 100%; display: grid; grid-template-columns: minmax(0, 11fr) minmax(0, 9fr); align-items: center; gap: clamp(1.5rem, 4vw, 4rem); padding: calc(var(--sv-bar-h) + 2.5vh) var(--sc-gutter) 3vh; max-width: var(--sc-maxw); margin-inline: auto; }
.sv-hero-copy { max-width: 42rem; }
.sv-hero-copy .sv-display { margin-top: 1rem; max-width: 16ch; }
.sv-hero-copy .sv-lead { margin-top: 1.5rem; }
.sv-hero-copy .sv-cta-row { margin-top: 2rem; }
.sv-hero-copy .sv-cta-micro { margin-top: .75rem; }
.sv-hero-industries { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .4rem; }
.sv-hero-industries span { font-size: .78rem; font-weight: 600; color: var(--sv-muted); padding: .35rem .7rem; border-radius: 999px; background: var(--sv-pearl); }
.sv-hero-device { position: relative; width: min(100%, 60vh, 560px); aspect-ratio: 1; margin-inline: auto; --k: 1; }
.sv-device { position: absolute; left: 50%; top: 50%; width: 74%; aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 36px; background: #21141a; box-shadow: var(--sv-shadow-lg); display: grid; place-items: center; isolation: isolate; z-index: 2; }
.sv-device::before { content: ""; position: absolute; inset: -8px; border-radius: 44px; background: var(--rb-conic); z-index: -1; filter: blur(14px); opacity: .85; animation: sv-spin 7s linear infinite, sv-breathe 4s ease-in-out infinite; }
.sv-device::after { content: ""; position: absolute; inset: -3px; border-radius: 39px; background: var(--rb-conic); z-index: -1; animation: sv-spin 7s linear infinite; }
@keyframes sv-breathe { 0%, 100% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.03); } }
.sv-device-in { position: relative; width: 100%; height: 100%; border-radius: 34px; background: #21141a; display: grid; place-items: center; overflow: clip; }
.sv-widget-live { width: 100%; height: 100%; display: grid; place-items: center; }
.sv-widget-live chat-widget { max-width: 100%; }
.sv-widget-fallback { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding: 1.5rem; color: var(--sv-muted); font-size: .9rem; pointer-events: none; z-index: -1; }
.sv-device-tag { position: absolute; left: 50%; bottom: -2rem; transform: translateX(-50%); white-space: nowrap; font-size: .8rem; color: var(--sv-muted); z-index: 3; }
.sv-stickers { position: absolute; inset: 0; pointer-events: none; z-index: 3; --h: clamp(0, (var(--hp) - .25) / .35, 1); }
.sv-stickers .sv-sticker { position: absolute; left: 50%; top: 50%; pointer-events: auto; cursor: default; transform: translate(calc(-50% + (var(--sx) * (1 - var(--h)) + var(--rx) * var(--h)) * var(--k) * 1px), calc(-50% + (var(--sy) * (1 - var(--h)) + var(--ry) * var(--h)) * var(--k) * 1px)) rotate(calc(var(--rot) * (1 - var(--h)) * 1deg)) perspective(600px) rotateX(calc((var(--my, .5) - .5) * -16deg)) rotateY(calc((var(--mx, .5) - .5) * 16deg)); }
.sv-stickers .sv-sticker > span { display: inline-flex; align-items: center; gap: .55rem; animation: sv-float var(--dur, 6s) ease-in-out infinite; animation-delay: var(--del, 0s); }
@keyframes sv-float { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-7px) rotate(-1.5deg); } }
.sv-thread { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; z-index: 1; }
.sv-thread path { fill: none; stroke: url(#sv-rb-grad); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: var(--len, 2000); stroke-dashoffset: calc(var(--len, 2000) * (1 - clamp(0, (var(--hp) - .5) / .3, 1))); filter: drop-shadow(0 4px 10px rgba(255, 122, 107, .35)); }
.sv-states { position: absolute; inset: 0; pointer-events: none; z-index: 4; }
.sv-state { position: absolute; left: 50%; top: 50%; transform: translate(calc(-50% + var(--x) * var(--k) * 1px), calc(-50% + var(--y) * var(--k) * 1px)) scale(calc(.6 + .4 * clamp(0, (var(--hp) - var(--at)) / .08, 1))); opacity: calc(clamp(0, (var(--hp) - var(--at)) / .08, 1)); background: var(--sv-ink); color: #21141a; font-size: .78rem; font-weight: 700; letter-spacing: .04em; padding: .4rem .75rem; border-radius: 999px; box-shadow: 0 10px 24px -10px rgba(0,0,0,.4); isolation: isolate; }
.sv-state::before { content: ""; position: absolute; inset: -2px; border-radius: inherit; background: var(--rb-conic); z-index: -1; animation: sv-spin 5s linear infinite; }
.sv-hero-beat { position: absolute; left: 50%; bottom: -3.4rem; transform: translateX(-50%); white-space: nowrap; font-weight: 600; color: var(--sv-ink); font-size: clamp(1rem, .9rem + .5vw, 1.25rem); opacity: calc(clamp(0, (var(--hp) - .1) / .08, 1) * (1 - clamp(0, (var(--hp) - .34) / .08, 1))); z-index: 4; }
.sv-hero-lockup { position: absolute; left: 50%; bottom: -3.4rem; transform: translateX(-50%); white-space: nowrap; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; font-size: .84rem; opacity: calc(clamp(0, (var(--hp) - .84) / .1, 1)); z-index: 4; }
.sv-hero-foot { position: absolute; left: var(--sc-gutter); right: var(--sc-gutter); bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 3; display: flex; justify-content: space-between; align-items: center; gap: 1rem; font-size: .76rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sv-muted); }
.sv-hero-foot > span { opacity: calc(1 - clamp(0, (var(--hp) - .05) / .2, 1)); }
.sv-pause { min-height: 36px; padding: 0 .9rem; border-radius: 999px; background: #21141a; border: 1px solid var(--sv-hair-2); color: var(--sv-body); font: inherit; font-size: .72rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.sv-pause:hover { color: var(--sv-ink); border-color: var(--sv-ink); }
.sv-pause[aria-pressed="true"] { color: var(--sv-ink); border-color: var(--sv-indigo); }
.sv-switch { display: none; position: absolute; left: 50%; top: -3rem; transform: translateX(-50%); white-space: nowrap; z-index: 5; }
.sv-hero.is-static .sv-switch { display: inline-flex; }
.sv-hero.is-static .sv-stickers { --h: 1; }
.sv-hero.is-static.is-lost .sv-stickers { --h: 0; }
.sv-hero.is-static .sv-thread path { stroke-dashoffset: 0; }
.sv-hero.is-static.is-lost .sv-thread path { stroke-dashoffset: var(--len, 2000); }
.sv-hero.is-static .sv-state { opacity: 1; transform: translate(calc(-50% + var(--x) * var(--k) * 1px), calc(-50% + var(--y) * var(--k) * 1px)) scale(1); }
.sv-hero.is-static.is-lost .sv-state { opacity: 0; }
.sv-hero.is-static .sv-hero-beat { opacity: 0; }
.sv-hero.is-static.is-lost .sv-hero-beat { opacity: 1; }
.sv-hero.is-static .sv-hero-lockup { opacity: 1; }
.sv-hero.is-static.is-lost .sv-hero-lockup { opacity: 0; }
.sv-hero.is-static .sv-hero-foot > span { opacity: 1; }

/* ---------------------------------------------------------------- leak -- */
.sv-leak { --lp: var(--sc-p, 1); }
.sv-leak-head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: end; }
.sv-leak-head .sv-h2 { max-width: 14ch; }
.sv-kl { display: block; overflow: hidden; padding-bottom: .12em; margin-bottom: -.12em; }
.sv-ki { display: inline-block; transform: translateY(calc((1 - clamp(0, (var(--lp) - var(--t, .1)) / .14, 1)) * 112%)); will-change: transform; }
.sv-xray-stage { position: relative; margin-top: clamp(2rem, 4vw, 3rem); border-radius: var(--sv-r-tile); overflow: clip; background: #21141a; box-shadow: var(--sv-shadow-lg); aspect-ratio: 16 / 7; min-height: 320px; --cut: 50%; }
.sv-xray-layer { position: absolute; inset: 0; }
.sv-xray-layer svg { width: 100%; height: 100%; }
.sv-xray-layer--fixed { clip-path: inset(0 calc(100% - var(--cut)) 0 0); }
.sv-xray-handle { position: absolute; top: 0; bottom: 0; left: var(--cut); width: 2px; background: var(--sv-ink); transform: translateX(-1px); pointer-events: none; z-index: 2; }
.sv-xray-handle::before { content: ""; position: absolute; left: 50%; top: 50%; width: 46px; height: 46px; border-radius: 50%; transform: translate(-50%, -50%); background: #21141a; box-shadow: var(--sv-shadow-lg), 0 0 0 2px var(--sv-ink); }
.sv-xray-handle::after { content: "\2194"; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); font-size: 1.1rem; font-weight: 700; color: var(--sv-ink); }
.sv-xray-range { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: ew-resize; margin: 0; z-index: 3; }
.sv-xray-range:focus-visible ~ .sv-xray-handle::before { box-shadow: var(--sv-shadow-lg), 0 0 0 3px var(--sv-indigo); }
.sv-xray-tag { position: absolute; top: 1rem; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: .35rem .7rem; border-radius: 999px; background: #21141a; box-shadow: var(--sv-shadow); pointer-events: none; z-index: 2; }
.sv-xray-tag--left { left: 1rem; color: var(--sv-muted); }
.sv-xray-tag--right { right: 1rem; }
.sv-leak-chips { margin-top: 1.5rem; display: flex; flex-wrap: wrap; gap: .5rem; }
.sv-leak-panel { margin-top: 1.25rem; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem 2rem; align-items: center; padding: 1.25rem 1.5rem; border-radius: var(--sv-r-card); background: #21141a; box-shadow: var(--sv-shadow); font-size: 1.1rem; color: var(--sv-ink); line-height: 1.45; }
.sv-leak-panel small { display: block; margin-top: .35rem; font-size: .86rem; color: var(--sv-muted); }
.sv-pipe .wall { fill: none; stroke: #3d3034; stroke-width: 2; }
.sv-pipe .wall-rb { fill: none; stroke: url(#sv-rb-grad-2); stroke-width: 3; stroke-linecap: round; }
.sv-pipe .gap { stroke: #ff3b30; stroke-width: 3; opacity: .35; transition: opacity 200ms; }
.sv-pipe .gap.is-on { opacity: 1; }
.sv-pipe .src { fill: #bfa9a2; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.sv-pipe .src-rb { fill: #f7ece6; }
.sv-pipe .lead { fill: #4a3d40; }
.sv-pipe .lead-lost { fill: #ff3b30; }
.sv-pipe .lead-rb { fill: url(#sv-rb-grad-2); }
.sv-pipe .node { fill: #21141a; stroke: #3d3034; stroke-width: 1.5; }
.sv-pipe .node-rb { fill: #21141a; stroke: url(#sv-rb-grad-2); stroke-width: 2.5; }
.sv-pipe .label { fill: #f7ece6; font-size: 11px; font-weight: 600; }
.sv-pipe .label-muted { fill: #8f7b76; font-size: 11px; font-weight: 500; }
.sv-leak-transition { margin-top: 1.5rem; }

/* ----------------------------------------------------------- foundation -- */
.sv-foundation { --fp: var(--sc-p, 1); }
.sv-bento { margin-top: clamp(2rem, 4vw, 3rem); display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(.9rem, 1.6vw, 1.4rem); }
.sv-bento > .sv-tile { padding: clamp(1.4rem, 2.4vw, 2.2rem); display: flex; flex-direction: column; gap: 1rem; transition: transform 320ms var(--sv-ease), box-shadow 320ms var(--sv-ease); transform: translate(calc(var(--gx) * (1 - clamp(0, (var(--fp) - var(--s)) / .18, 1)) * 1px), calc((1 - clamp(0, (var(--fp) - var(--s)) / .18, 1)) * 30px)); }
.sv-bento > .sv-tile:hover { transform: translateY(-6px) scale(1.012); box-shadow: var(--sv-shadow-lg); }
.sv-bento .b-a { grid-column: span 3; } .sv-bento .b-b { grid-column: span 3; } .sv-bento .b-c { grid-column: span 2; } .sv-bento .b-d { grid-column: span 4; }
.sv-tile ul { display: grid; gap: .45rem; color: var(--sv-body); font-size: .98rem; }
.sv-tile li { display: grid; grid-template-columns: 1.1rem 1fr; gap: .5rem; }
.sv-tile li::before { content: ""; width: 8px; height: 8px; margin-top: .5em; border-radius: 50%; background: var(--rb); background-size: 300% 100%; animation: sv-rb-slide 4s linear infinite; }
.sv-beat { font-weight: 700; letter-spacing: -.02em; font-size: clamp(1.1rem, 1rem + .6vw, 1.4rem); }
.sv-chat { display: grid; gap: .6rem; margin-top: .25rem; }
.sv-bubble { max-width: 88%; padding: .75rem 1rem; border-radius: 18px; font-size: .95rem; line-height: 1.45; background: var(--sv-pearl); color: var(--sv-ink); position: relative; isolation: isolate; }
.sv-bubble--ai { margin-left: auto; background: var(--sv-ink); color: #21141a; }
.sv-bubble--ai::before { content: ""; position: absolute; inset: -2px; border-radius: inherit; background: var(--rb-conic); z-index: -1; animation: sv-spin 6s linear infinite; }
.sv-badge { display: inline-flex; align-items: center; gap: .35rem; font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--sv-muted); padding: .3rem .6rem; border-radius: 999px; background: var(--sv-pearl); }
.sv-badge i { width: 6px; height: 6px; border-radius: 50%; background: var(--sv-green); }
.sv-paths { display: flex; flex-wrap: wrap; gap: .5rem; }
.sv-path-panel { margin-top: .5rem; display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: center; color: var(--sv-body); font-size: 1rem; min-height: 4rem; }
.sv-path-panel svg { width: 160px; height: 46px; flex: none; }
.sv-path-panel .pp-line { stroke: url(#sv-rb-grad-3); stroke-width: 2.2; fill: none; }
.sv-path-panel .pp-dot { fill: var(--sv-ink); }
.sv-path-panel .pp-box { fill: #21141a; stroke: #3d3034; }
.sv-path-panel text { fill: #f7ece6; font-size: 9.5px; font-weight: 600; letter-spacing: .04em; }
.sv-plates-canvas { width: 100%; aspect-ratio: 16 / 9; border-radius: 18px; background: var(--sv-pearl); }

/* -------------------------------------------------------------- systems -- */
.sv-systems { --sp: var(--sc-p, 1); }
.sv-systems-stage { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: clip; background: #21141a; display: grid; grid-template-rows: auto 1fr auto; padding-top: calc(var(--sv-bar-h) + 1.5vh); }
.sv-systems-head { position: relative; z-index: 2; display: flex; justify-content: space-between; align-items: end; gap: 1rem; max-width: var(--sc-maxw); width: 100%; margin-inline: auto; padding-inline: var(--sc-gutter); }
.sv-systems-head .sv-h2 { max-width: 12ch; }
.sv-systems-head .sv-body { max-width: 34ch; }
.sv-ring-wrap { position: relative; perspective: 1600px; display: grid; place-items: center; min-height: 0; }
.sv-ring { position: relative; width: min(84vw, 380px); height: min(62svh, 520px); transform-style: preserve-3d; transform: rotateY(calc(var(--rot, 0) * 1deg)); }
.sv-card { position: absolute; inset: 0; transform: rotateY(calc(var(--i) * 72deg)) translateZ(var(--rz, 300px)); backface-visibility: hidden; -webkit-backface-visibility: hidden; display: flex; flex-direction: column; gap: .7rem; padding: 1.1rem 1.2rem 1.2rem; opacity: calc(.3 + .7 * var(--front, 0)); filter: saturate(calc(.5 + .5 * var(--front, 0))); background: #21141a; }
.sv-card .sv-label { display: flex; justify-content: space-between; }
.sv-card .sv-h3 { font-size: 1.25rem; }
.sv-card canvas { width: 100%; aspect-ratio: 16 / 9; border-radius: 16px; background: var(--sv-pearl); }
.sv-card .beats { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem .7rem; font-size: .78rem; line-height: 1.35; color: var(--sv-muted); counter-reset: b; }
.sv-card .beats li { padding-top: .35rem; border-top: 1px solid var(--sv-hair); counter-increment: b; }
.sv-card .beats li::before { content: counter(b, decimal-leading-zero); display: block; font-size: .62rem; font-weight: 700; letter-spacing: .08em; color: var(--sv-muted); margin-bottom: .1rem; }
.sv-card .beats li:last-child { color: var(--sv-ink); border-top-color: var(--sv-indigo); }
.sv-card .lines { display: grid; gap: .15rem; font-weight: 700; letter-spacing: -.02em; color: var(--sv-ink); font-size: 1.02rem; }
.sv-card p { color: var(--sv-body); font-size: .9rem; line-height: 1.5; }
.sv-ring-nav { position: relative; z-index: 2; display: flex; justify-content: center; align-items: center; gap: .75rem; padding: 1rem var(--sc-gutter) 2rem; }
.sv-ring-nav > button { min-width: 44px; min-height: 44px; border-radius: 50%; background: #21141a; border: 1px solid var(--sv-hair-2); display: inline-grid; place-items: center; color: var(--sv-ink); }
.sv-ring-nav > button:hover { border-color: var(--sv-ink); }
.sv-ring-dots { display: flex; gap: .25rem; }
.sv-ring-dots button { min-width: 24px; min-height: 24px; }
.sv-ring-dots button i { display: block; width: 8px; height: 8px; margin: 8px; border-radius: 50%; background: var(--sv-hair-2); transition: transform 200ms, background 200ms; }
.sv-ring-dots button[aria-current="true"] i { background: var(--sv-ink); transform: scale(1.4); }

/* --------------------------------------------------------------- engine -- */
.sv-engine { --ep: var(--sc-p, 1); background: var(--sv-char); color: #fff; }
.sv-engine-stage { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: clip; background: var(--sv-char); }
.sv-engine-grid { position: relative; z-index: 2; height: 100%; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); align-items: center; gap: clamp(1rem, 3vw, 3rem); padding: calc(var(--sv-bar-h) + 2vh) var(--sc-gutter) 4vh; max-width: var(--sc-maxw); margin-inline: auto; }
.sv-engine-copy .sv-h2 { color: #fff; max-width: 13ch; }
.sv-engine-copy .sv-label { color: rgba(255,255,255,.6); }
.sv-engine-beats { margin-top: 1.5rem; display: grid; gap: .6rem; }
.sv-engine-beats p { font-size: clamp(1.05rem, 1rem + .5vw, 1.3rem); color: #fff; opacity: calc(.28 + .72 * clamp(0, (var(--ep) - var(--a)) / .08, 1)); transform: translateX(calc((1 - clamp(0, (var(--ep) - var(--a)) / .08, 1)) * -10px)); }
.sv-lockup { margin-top: 2rem; display: grid; gap: .1rem; }
.sv-lockup .sv-kl { font-family: var(--sc-font-display); font-size: clamp(2rem, 1.3rem + 3vw, 3.8rem); letter-spacing: -.04em; line-height: 1.02; }
.sv-lockup .sv-ki { transform: translateY(calc((1 - clamp(0, (var(--ep) - var(--t)) / .08, 1)) * 112%)); color: #fff; font-weight: 300; font-variation-settings: "wght" calc(300 + 600 * clamp(0, (var(--ep) - var(--t) - .04) / .12, 1)); }
.sv-lockup .sv-ki.sv-rb-text { font-weight: 800; }
.sv-lockup small { display: block; font-size: .95rem; color: rgba(255,255,255,.72); opacity: calc(clamp(0, (var(--ep) - .9) / .08, 1)); margin-top: .6rem; max-width: 40ch; }
.sv-engine-canvas { width: 100%; height: auto; aspect-ratio: 1; max-height: 80svh; margin-inline: auto; }

/* ---------------------------------------------------------------- owner -- */
.sv-owner { --day: .5; }
.sv-owner-beats { margin-top: 1.5rem; display: grid; gap: .6rem; }
.sv-owner-beats li { display: grid; grid-template-columns: 1.6rem 1fr; gap: .6rem; align-items: baseline; color: var(--sv-ink); font-size: 1.05rem; }
.sv-owner-beats b { font-size: .72rem; font-weight: 700; color: transparent; background: var(--rb-text); -webkit-background-clip: text; background-clip: text; }
.sv-nofiction { margin-top: 1.5rem; padding: 1.1rem 1.3rem; border-radius: var(--sv-r-card); background: #21141a; box-shadow: var(--sv-shadow); color: var(--sv-body); font-size: 1rem; }
.sv-founder { margin-top: 1.5rem; display: grid; grid-template-columns: 6.5rem 1fr; gap: 1.1rem; align-items: center; }
.sv-founder img { width: 6.5rem; height: auto; border-radius: 18px; }
.sv-founder-name { font-weight: 700; font-size: 1.3rem; letter-spacing: -.02em; margin-top: .2rem; }
.sv-daynight { position: relative; padding: clamp(1.1rem, 2vw, 1.6rem); display: grid; gap: 1rem; background: color-mix(in oklab, #21141a calc(55% + var(--day) * 45%), #3d3034); transition: background 160ms; }
.sv-day-range { width: 100%; accent-color: var(--sv-indigo); min-height: 32px; }
.sv-day-labels { display: flex; justify-content: space-between; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sv-muted); }
.sv-dash { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.sv-dash-col { display: grid; gap: .5rem; align-content: start; }
.sv-dash-col--chaos { opacity: calc(1 - var(--day) * .75); filter: grayscale(calc(var(--day) * 100%)); transition: opacity 120ms, filter 120ms; }
.sv-dash-col--calm { opacity: calc(.25 + var(--day) * .75); transition: opacity 120ms; }
.sv-dash-col--chaos .sv-row { animation: sv-jitter .4s steps(2) infinite; }
@keyframes sv-jitter { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(2px); } }
.sv-owner.is-day .sv-dash-col--chaos .sv-row { animation: none; }
.sv-row { display: grid; grid-template-columns: auto 1fr auto; gap: .7rem; align-items: center; padding: .7rem .85rem; border-radius: 14px; background: #21141a; box-shadow: var(--sv-shadow); font-size: .9rem; color: var(--sv-body); }
.sv-row i { width: 10px; height: 10px; border-radius: 50%; background: var(--sv-hair-2); }
.sv-row.is-ok i { background: var(--sv-green); } .sv-row.is-warn i { background: var(--sv-yellow); } .sv-row.is-gap i { background: #ff3b30; }
.sv-row b { font-size: .7rem; letter-spacing: .06em; color: var(--sv-muted); text-transform: uppercase; font-weight: 700; }
.sv-dash-caption { font-size: .8rem; color: var(--sv-muted); }
.sv-industries { margin-top: clamp(3rem, 6vw, 5rem); }
.sv-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.sv-flip { margin-top: 1.25rem; perspective: 1400px; }
.sv-flip-card { transform-style: preserve-3d; transition: transform 620ms var(--sv-ease); }
.sv-flip-card.is-flipping { transform: rotateX(-180deg); }
.sv-tabpanel { padding: clamp(1.25rem, 2.4vw, 2rem); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: start; }
.sv-tabpanel[hidden] { display: none; }
.sv-tabpanel p { font-size: 1.05rem; color: var(--sv-ink); line-height: 1.5; }
.sv-tabpanel .sv-note { margin-top: .75rem; }
.sv-journey { display: grid; grid-auto-flow: column; gap: .5rem; align-items: center; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--sv-muted); }
.sv-journey span { padding: .5rem .65rem; border: 1px solid var(--sv-hair-2); border-radius: 999px; white-space: nowrap; background: #21141a; }
.sv-journey span:last-child { border-color: transparent; color: #21141a; background: var(--sv-ink); }
.sv-journey i { width: 14px; height: 2px; background: var(--rb); background-size: 300% 100%; animation: sv-rb-slide 4s linear infinite; }

/* ------------------------------------------------------------ blueprint -- */
.sv-blueprint-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); align-items: end; }
.sv-blueprint-head .sv-h2 { max-width: 14ch; }
.sv-deliverables { display: grid; gap: .45rem; margin-top: 1rem; color: var(--sv-body); font-size: .98rem; }
.sv-deliverables li { display: grid; grid-template-columns: 1.1rem 1fr; gap: .5rem; }
.sv-deliverables li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--rb); background-size: 300% 100%; animation: sv-rb-slide 4s linear infinite; margin-top: .5em; }
.sv-tool { margin-top: clamp(2rem, 4vw, 3rem); overflow: visible; }
.sv-tool-top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem clamp(1.1rem, 2vw, 1.75rem); border-bottom: 1px solid var(--sv-hair); }
.sv-tool-name { font-weight: 700; letter-spacing: -.02em; }
.sv-tool-name span { color: var(--sv-muted); font-weight: 500; }
.sv-tool-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 20rem); }
.sv-wizard { padding: clamp(1.1rem, 2.4vw, 2rem); border-right: 1px solid var(--sv-hair); }
.sv-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: .35rem; margin-bottom: 1.5rem; }
.sv-steps button { display: grid; gap: .25rem; text-align: left; padding: .6rem .5rem .75rem; border-top: 3px solid var(--sv-hair); color: var(--sv-muted); min-height: 44px; transition: color 140ms, border-color 140ms; border-radius: 0; }
.sv-steps button span { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sv-steps button strong { font-weight: 600; color: inherit; font-size: .92rem; }
.sv-steps button[aria-current="step"] { color: var(--sv-ink); border-top-color: var(--sv-indigo); }
.sv-steps button.is-done { color: var(--sv-body); border-top-color: var(--sv-green); }
.sv-step { display: grid; gap: 1.25rem; border: 0; padding: 0; margin: 0; min-width: 0; }
.sv-step[hidden] { display: none; }
.sv-step legend { font-weight: 700; font-size: clamp(1.4rem, 1.2rem + 1vw, 1.9rem); letter-spacing: -.03em; line-height: 1.15; padding: 0; margin-bottom: .25rem; }
.sv-step > p { color: var(--sv-body); font-size: .98rem; }
.sv-field { display: grid; gap: .5rem; }
.sv-field > label, .sv-field > .sv-q { font-size: 1.05rem; color: var(--sv-ink); font-weight: 600; }
.sv-field .sv-help { font-size: .86rem; color: var(--sv-muted); }
.sv-input { width: 100%; min-height: 48px; padding: .6rem .9rem; border-radius: var(--sv-r-field); border: 1px solid var(--sv-hair-2); background: #21141a; color: var(--sv-ink); font-size: 1rem; }
.sv-input::placeholder { color: #8f7b76; }
.sv-input:focus-visible { outline: 3px solid var(--sv-indigo); outline-offset: 2px; border-color: var(--sv-indigo); }
.sv-input[aria-invalid="true"] { border-color: #ff3b30; }
.sv-choices { display: grid; gap: .5rem; }
.sv-choice { position: relative; }
.sv-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.sv-choice label { display: grid; grid-template-columns: 20px 1fr; gap: .75rem; align-items: start; padding: .8rem .95rem; min-height: 48px; border-radius: var(--sv-r-field); border: 1px solid var(--sv-hair); background: #21141a; color: var(--sv-body); font-size: .98rem; line-height: 1.4; cursor: pointer; transition: border-color 140ms, color 140ms, transform 140ms, box-shadow 140ms; }
.sv-choice label::before { content: ""; width: 18px; height: 18px; margin-top: .15em; border-radius: 50%; border: 1.5px solid var(--sv-hair-2); background: #21141a; transition: border-color 140ms, box-shadow 140ms; }
.sv-choice label:hover { border-color: var(--sv-hair-2); color: var(--sv-ink); transform: translateY(-1px); }
.sv-choice input:checked + label { border-color: var(--sv-indigo); color: var(--sv-ink); box-shadow: 0 0 0 3px rgba(255, 46, 63, .15); }
.sv-choice input:checked + label::before { border-color: var(--sv-indigo); box-shadow: inset 0 0 0 5px var(--sv-indigo); }
.sv-choice input:focus-visible + label { outline: 3px solid var(--sv-indigo); outline-offset: 2px; }
.sv-choices--row { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); }
.sv-step-actions { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; margin-top: .5rem; }
.sv-step-actions .sv-note { flex: 1 1 14rem; }
.sv-error { color: #ff6b6b; font-size: .92rem; min-height: 1.2em; }
.sv-summary { padding: clamp(1.1rem, 2.4vw, 1.75rem); display: grid; gap: 1rem; align-content: start; background: var(--sv-pearl); }
.sv-3c { display: grid; gap: .6rem; }
.sv-3c-row { display: grid; grid-template-columns: auto 1fr auto; gap: .7rem; align-items: center; padding: .7rem .8rem; border-radius: 14px; background: #21141a; box-shadow: var(--sv-shadow); font-size: .9rem; color: var(--sv-body); }
.sv-3c-row strong { font-weight: 600; color: var(--sv-ink); }
.sv-3c-row i { width: 10px; height: 10px; border-radius: 50%; background: var(--sv-hair-2); }
.sv-3c-row[data-level="in place"] i { background: var(--sv-green); }
.sv-3c-row[data-level="partly in place"] i { background: var(--sv-yellow); }
.sv-3c-row[data-level="not in place"] i { background: #ff3b30; }
.sv-3c-row small { font-size: .68rem; letter-spacing: .05em; text-transform: uppercase; color: var(--sv-muted); font-weight: 700; }
.sv-summary-note, .sv-formula { font-size: .86rem; color: var(--sv-muted); }
.sv-formula summary { cursor: pointer; color: var(--sv-body); font-weight: 600; }
.sv-formula p { margin-top: .5rem; }
.sv-results { margin-top: 1.5rem; }
.sv-results[hidden] { display: none; }
.sv-result-banner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: end; padding: clamp(1.25rem, 2.4vw, 2rem); }
.sv-result-banner .sv-h2 { font-size: clamp(1.8rem, 1.3rem + 2vw, 3rem); }
.sv-result-banner p.sv-meta { margin-top: .6rem; font-size: .78rem; color: var(--sv-muted); font-weight: 600; letter-spacing: .02em; }
.sv-result-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.sv-result-body { display: grid; gap: 1.5rem; padding: clamp(1.25rem, 2.4vw, 2rem); }
.sv-result-block h3 { font-size: 1.15rem; font-weight: 700; letter-spacing: -.015em; margin-bottom: .6rem; display: flex; align-items: center; gap: .6rem; }
.sv-result-block h3 b { font-size: .7rem; letter-spacing: .08em; color: transparent; background: var(--rb-text); -webkit-background-clip: text; background-clip: text; }
.sv-result-block ul, .sv-result-block ol { display: grid; gap: .45rem; color: var(--sv-body); font-size: .98rem; line-height: 1.5; }
.sv-result-block ol { counter-reset: n; }
.sv-result-block ol li { display: grid; grid-template-columns: 1.6rem 1fr; gap: .6rem; counter-increment: n; }
.sv-result-block ol li::before { content: counter(n); font-size: .72rem; font-weight: 700; color: var(--sv-indigo); padding-top: .25em; }
.sv-result-block ul li { display: grid; grid-template-columns: 1rem 1fr; gap: .5rem; }
.sv-result-block ul li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--sv-hair-2); margin-top: .6em; }
.sv-opps { display: grid; gap: .75rem; }
.sv-opp { display: grid; grid-template-columns: 2.4rem 1fr; gap: .9rem; padding: 1rem 1.1rem; border-radius: 16px; background: #21141a; box-shadow: var(--sv-shadow); }
.sv-opp b { font-size: 1.6rem; font-weight: 800; letter-spacing: -.04em; color: transparent; background: var(--rb-text); -webkit-background-clip: text; background-clip: text; line-height: 1; }
.sv-opp strong { display: block; font-weight: 700; color: var(--sv-ink); font-size: 1.02rem; }
.sv-opp span { display: block; margin-top: .3rem; color: var(--sv-body); font-size: .95rem; line-height: 1.5; }
.sv-opp small { display: block; margin-top: .4rem; font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; color: var(--sv-muted); font-weight: 700; }
.sv-weeks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.sv-week { padding: 1rem; border-radius: 16px; background: #21141a; box-shadow: var(--sv-shadow); }
.sv-week b { display: block; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sv-indigo); font-weight: 700; }
.sv-week strong { display: block; margin-top: .35rem; font-weight: 700; color: var(--sv-ink); font-size: .98rem; }
.sv-week ul { margin-top: .5rem; display: grid; gap: .35rem; font-size: .9rem; color: var(--sv-body); }
.sv-scenario { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.25rem; }
.sv-scenario-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem .8rem; }
.sv-scenario-inputs label { display: grid; gap: .3rem; font-size: .86rem; color: var(--sv-body); font-weight: 500; }
.sv-scenario-inputs .sv-input { min-height: 44px; }
.sv-scenario-out { display: grid; gap: .5rem; align-content: start; }
.sv-scenario-out .sv-step-line { display: grid; grid-template-columns: 1fr auto; gap: .5rem; padding: .55rem .7rem; border-radius: 12px; background: var(--sv-pearl); font-size: .9rem; color: var(--sv-body); }
.sv-scenario-out .sv-step-line b { font-weight: 700; color: var(--sv-ink); }
.sv-scenario-out .sv-step-line small { grid-column: 1 / -1; font-size: .72rem; color: var(--sv-muted); }
.sv-result-next { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.25rem; align-items: center; padding: clamp(1.1rem, 2vw, 1.5rem); border-radius: 18px; background: var(--sv-ink); color: #21141a; }
.sv-result-next .sv-h3, .sv-result-next .sv-body { color: #21141a; }
.sv-result-next .sv-body { color: rgba(33, 20, 26,.75); }
.sv-result-next .sv-label { color: rgba(33, 20, 26,.6); }
.sv-result-end { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.sv-status { font-size: .9rem; color: var(--sv-body); min-height: 1.3em; }
.sv-pdf-save { font-size: .92rem; }
.sv-audit { margin-top: clamp(2rem, 4vw, 3rem); padding: clamp(1.25rem, 2.4vw, 2rem); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.25rem; align-items: center; }
.sv-audit-frame { grid-column: 1 / -1; margin-top: 1rem; }
.sv-audit-frame iframe { width: 100%; min-height: 700px; border: 0; background: transparent; display: block; border-radius: 16px; }
.sv-audit-frame[hidden] { display: none; }

/* --------------------------------------------------------------- proof -- */
.sv-proof-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(1rem, 2vw, 1.5rem); margin-top: clamp(2rem, 4vw, 3rem); }
.sv-proof-side { display: grid; gap: clamp(1rem, 2vw, 1.5rem); }
.sv-proof-card { display: grid; }
.sv-proof-media { position: relative; aspect-ratio: 16 / 9; background: #000; }
.sv-proof-media video { width: 100%; height: 100%; object-fit: cover; }
.sv-proof-media canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.sv-proof-body { padding: clamp(1rem, 2vw, 1.5rem); display: grid; gap: .6rem; }
.sv-proof-body dl { display: grid; gap: .4rem; font-size: .94rem; color: var(--sv-body); }
.sv-proof-body dl div { display: grid; grid-template-columns: 7.5rem 1fr; gap: .5rem; }
.sv-proof-body dt { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: var(--sv-muted); padding-top: .25em; font-weight: 700; }
.sv-proof-note { margin-top: 1.5rem; }
.sv-spark { position: fixed; width: 10px; height: 10px; border-radius: 50%; pointer-events: none; z-index: 40; animation: sv-spark .7s var(--sv-ease) forwards; }
@keyframes sv-spark { 0% { transform: translate(-50%, -50%) scale(1); opacity: 1; } 100% { transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(0); opacity: 0; } }

/* ----------------------------------------------------------------- how -- */
.sv-how { --hw: var(--sc-p, 1); }
.sv-how-line { position: relative; margin-top: clamp(2rem, 4vw, 3rem); }
.sv-how-line::before { content: ""; position: absolute; left: 0; right: 0; top: 7px; height: 2px; background: var(--sv-hair); border-radius: 2px; }
.sv-how-line::after { content: ""; position: absolute; left: 0; top: 7px; height: 2px; width: calc(clamp(0, (var(--hw) - .2) / .6, 1) * 100%); background: var(--rb); border-radius: 2px; }
.sv-how-dot { position: absolute; top: 0; left: 0; width: 16px; height: 16px; border-radius: 50%; background: var(--rb-conic); animation: sv-spin 3s linear infinite; box-shadow: 0 0 0 3px #21141a, 0 8px 20px -6px rgba(255, 46, 63,.6); z-index: 2; transform: translate(-50%, 0); transition: left 500ms var(--sv-spring); }
.sv-how-dot.is-hopping { animation: sv-spin 3s linear infinite, sv-hop .5s var(--sv-ease); }
.sv-how-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.sv-how-step { position: relative; padding-top: 1.8rem; opacity: calc(.45 + .55 * clamp(0, (var(--hw) - var(--s)) / .08, 1)); }
.sv-how-step::before { content: ""; position: absolute; left: 0; top: 0; width: 16px; height: 16px; border-radius: 50%; background: #21141a; border: 2px solid var(--sv-hair-2); }
.sv-how-step b { font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sv-indigo); }
.sv-how-step h3 { margin-top: .4rem; font-size: 1.3rem; }
.sv-how-step p { margin-top: .5rem; color: var(--sv-body); font-size: .98rem; }
.sv-how .sv-cta-row { margin-top: clamp(2rem, 4vw, 3rem); }

/* ----------------------------------------------------------------- faq -- */
.sv-faq-list { display: grid; gap: .6rem; }
.sv-faq-list details { border-radius: 18px; background: #21141a; box-shadow: var(--sv-shadow); transition: transform 200ms var(--sv-spring); }
.sv-faq-list details[open] { transform: scale(1.01); }
.sv-faq-list summary { cursor: pointer; list-style: none; padding: 1rem 3rem 1rem 1.2rem; font-size: 1.05rem; font-weight: 600; color: var(--sv-ink); position: relative; min-height: 48px; }
.sv-faq-list summary::-webkit-details-marker { display: none; }
.sv-faq-list summary::after { content: "+"; position: absolute; right: 1.1rem; top: .8rem; font-size: 1.3rem; font-weight: 500; color: transparent; background: var(--rb-text); -webkit-background-clip: text; background-clip: text; transition: transform 200ms; }
.sv-faq-list details[open] summary::after { transform: rotate(45deg); }
.sv-faq-list details p { padding: 0 1.2rem 1.1rem; color: var(--sv-body); font-size: .98rem; line-height: 1.6; }

/* ---------------------------------------------------------------- book -- */
.sv-book { --bp: var(--sc-p, 1); }
.sv-book-panel { margin-top: clamp(2rem, 4vw, 3rem); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.sv-book-copy { padding: clamp(1.5rem, 3vw, 2.5rem); display: grid; gap: 1rem; align-content: center; border-right: 1px solid var(--sv-hair); }
.sv-book-cal { position: relative; min-height: 440px; padding: clamp(1.5rem, 3vw, 2.5rem); display: grid; place-items: center; background: var(--sv-pearl); }
.sv-book-cal iframe { width: 100%; min-height: 760px; border: 0; display: block; }
.sv-book-demo { text-align: center; display: grid; gap: 1rem; justify-items: center; max-width: 30rem; }
.sv-book-demo svg { width: 170px; height: 170px; overflow: visible; }
.sv-book-demo .cal-frame { fill: #21141a; stroke: var(--sv-hair-2); }
.sv-book-demo .cal-cell { fill: var(--sv-hair); }
.sv-book-demo .cal-ring { fill: none; stroke: url(#sv-rb-grad-4); stroke-width: 2.5; opacity: calc(clamp(0, (var(--bp) - .55) / .1, 1)); }
.sv-book-demo .cal-land { fill: var(--sv-indigo); opacity: calc(clamp(0, (var(--bp) - .5) / .1, 1)); }
.sv-book-demo p { color: var(--sv-body); font-size: .98rem; }

/* --------------------------------------------------------------- footer -- */
.sv-footer { position: fixed; left: 0; right: 0; bottom: 0; z-index: 0; background: var(--sv-ink); color: #fff; padding-block: clamp(3rem, 6vw, 5rem) clamp(2rem, 4vw, 3rem); overflow: hidden; }
.sv-footer .sv-glow i { opacity: .28; }
.sv-footer-top { display: grid; grid-template-columns: minmax(0, 2fr) repeat(4, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); }
.sv-footer-brand img { height: 34px; width: auto; }
.sv-footer-brand p { margin-top: 1rem; color: rgba(255,255,255,.72); font-size: .95rem; max-width: 30ch; }
.sv-footer-brand .sv-label { color: rgba(255,255,255,.6); margin-top: 1rem; display: block; }
.sv-footer-contact { margin-top: .6rem; }
.sv-footer-contact a { color: #fff; font-weight: 600; }
.sv-social { margin-top: 1rem; display: flex; flex-wrap: wrap; gap: .35rem .9rem; }
.sv-social a { color: rgba(33, 20, 26,.72); font-size: .9rem; padding: .3rem 0; min-height: 32px; display: inline-flex; align-items: center; }
.sv-social a:hover { color: #21141a; }
.sv-footer-col h3 { font-size: .72rem; letter-spacing: .09em; text-transform: uppercase; color: rgba(255,255,255,.55); font-weight: 700; margin-bottom: .9rem; }
.sv-footer-col a { display: block; padding: .3rem 0; color: rgba(255,255,255,.8); font-size: .94rem; min-height: 32px; }
.sv-footer-col a:hover { color: #fff; }
.sv-footer-cta { margin-top: clamp(2rem, 4vw, 3rem); padding: clamp(1.25rem, 2.4vw, 2rem); border-radius: var(--sv-r-tile); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.25rem; align-items: center; }
.sv-footer-cta h3 { color: #fff; font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.2rem); }
.sv-footer-cta p { color: rgba(255,255,255,.72); margin-top: .5rem; }
.sv-footer-bottom { margin-top: clamp(2rem, 4vw, 3rem); padding-top: 1.25rem; border-top: 1px solid rgba(255,255,255,.12); display: flex; flex-wrap: wrap; gap: 1rem 1.5rem; align-items: center; justify-content: space-between; font-size: .86rem; color: rgba(255,255,255,.6); }
.sv-footer-bottom .sv-privacy summary { cursor: pointer; color: rgba(255,255,255,.8); }
.sv-footer-bottom .sv-privacy p { margin-top: .5rem; max-width: 70ch; }
.sv-motion-toggle { min-height: 40px; padding: 0 .9rem; border-radius: 999px; border: 1px solid rgba(33, 20, 26,.2); color: rgba(33, 20, 26,.8); font-size: .86rem; font-weight: 600; }
.sv-motion-toggle[aria-pressed="true"] { border-color: #21141a; color: #21141a; }
.sv-back-top { color: rgba(33, 20, 26,.8); font-weight: 600; }
.sv-confetti { position: fixed; inset: 0; z-index: 90; pointer-events: none; }

/* ------------------------------------------------------ reduced motion -- */
.reduced-motion #sv-site [data-sc-act] { --sc-p: 1 !important; }
.reduced-motion #sv-site .sv-hero { --hp: 1; }
.reduced-motion #sv-site *, .reduced-motion #sv-site *::before, .reduced-motion #sv-site *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
.reduced-motion #sv-site .sv-ki { transform: none !important; }
.reduced-motion #sv-site [data-sc-in], .reduced-motion #sv-site [data-sc-stagger] > * { opacity: 1 !important; transform: none !important; }
.reduced-motion #sv-site [data-sc-reveal] { clip-path: none !important; }
.reduced-motion #sv-site .sv-orb, .reduced-motion #sv-site .sv-glow { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  #sv-site [data-sc-act] { --sc-p: 1 !important; }
  #sv-site .sv-hero { --hp: 1; }
  #sv-site *, #sv-site *::before, #sv-site *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  #sv-site .sv-ki { transform: none !important; }
  #sv-site .sv-orb, #sv-site .sv-glow { display: none !important; }
}
/* Flat systems (reduced motion, phones): a snap scroller instead of the ring */
.reduced-motion #sv-site .sv-systems-stage, .sv-systems.is-flat .sv-systems-stage { position: static; height: auto; display: block; padding-top: var(--sc-section); padding-bottom: var(--sc-section); }
.reduced-motion #sv-site .sv-ring-wrap, .sv-systems.is-flat .sv-ring-wrap { perspective: none; display: block; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; padding: 1.25rem var(--sc-gutter) 1.5rem; }
.reduced-motion #sv-site .sv-ring, .sv-systems.is-flat .sv-ring { transform: none !important; transform-style: flat; width: max-content; height: auto; display: flex; gap: 1rem; }
.reduced-motion #sv-site .sv-card, .sv-systems.is-flat .sv-card { position: relative; inset: auto; transform: none !important; opacity: 1; filter: none; width: min(84vw, 360px); scroll-snap-align: center; flex: none; }
.reduced-motion #sv-site .sv-ring-nav, .sv-systems.is-flat .sv-ring-nav { display: none; }

/* ----------------------------------------------------------- responsive -- */
@media (min-width: 1100px) { .sv-rail { display: flex; } .sv-orb { display: block; } }
@media (max-width: 1099px) { .sv-dash { grid-template-columns: 1fr; } .sv-bento .b-a, .sv-bento .b-b { grid-column: span 6; } .sv-bento .b-c { grid-column: span 3; } .sv-bento .b-d { grid-column: span 3; } }
@media (max-width: 980px) {
  .sv-proof-grid { grid-template-columns: 1fr; } .sv-weeks { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sv-tool-body { grid-template-columns: 1fr; } .sv-wizard { border-right: 0; border-bottom: 1px solid var(--sv-hair); }
  .sv-footer-top { grid-template-columns: 1fr 1fr; } .sv-footer-brand { grid-column: 1 / -1; } .sv-book-panel { grid-template-columns: 1fr; } .sv-book-copy { border-right: 0; border-bottom: 1px solid var(--sv-hair); }
  .sv-blueprint-head, .sv-leak-head { grid-template-columns: 1fr; align-items: start; } .sv-footer-cta { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .sv-menu .sv-nav, .sv-menu .sv-xray, .sv-menu .sv-btn { display: none; } .sv-menu .sv-menu-btn { display: inline-flex; margin-left: auto; }
  .sv-menu { width: calc(100% - 1.5rem); padding: .3rem .4rem .3rem .6rem; }
  .sv-menu.is-compact { width: calc(100% - 1.5rem); }
  .sv-dock { display: flex; }
  .sv-hero-grid, .sv-engine-grid { grid-template-columns: 1fr; align-content: center; }
  .sv-grid-2 { grid-template-columns: 1fr; }
  .sv-scenario, .sv-result-banner, .sv-result-next, .sv-audit, .sv-tabpanel { grid-template-columns: 1fr; }
  .sv-journey { grid-auto-flow: row; grid-template-columns: repeat(2, auto); justify-content: start; } .sv-journey i { display: none; }
  .sv-how-steps { grid-template-columns: 1fr 1fr; }
  .sv-bento .b-c, .sv-bento .b-d { grid-column: span 6; }
  .sv-xray-stage { aspect-ratio: 4 / 3; }
  .sv-systems-head { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 700px) {
  :root, #sv-site { --sv-bar-h: 60px; }
  .sv-display { font-size: clamp(2.3rem, 1.5rem + 5.2vw, 3.4rem); }
  .sv-hero-stage { position: static; height: auto; min-height: 0; }
  .sv-hero { --hp: clamp(0, (var(--sc-p, 1) - .5) / .5, 1); }
  .sv-hero-grid { padding-top: calc(var(--sv-bar-h) + 1.25rem); padding-bottom: 1.5rem; gap: 2rem; }
  .sv-hero-copy .sv-cta-row .sv-btn { width: 100%; }
  .sv-hero-device { width: min(100%, 340px); margin-top: 3rem; margin-bottom: 3rem; }
  .sv-hero-beat, .sv-hero-lockup { bottom: -2.6rem; }
  .sv-hero-foot { position: static; justify-content: center; padding: 0 var(--sc-gutter) 1rem; } .sv-hero-foot > span { display: none; }
  .sv-stickers .sv-sticker { font-size: .74rem; padding: .45rem .7rem .45rem .55rem; } .sv-stickers .sv-sticker svg { width: 16px; height: 16px; }
  .sv-engine { --ep: clamp(0, (var(--sc-p, 1) - .2) / .5, 1); }
  .sv-engine-stage { position: static; height: auto; } .sv-engine-grid { align-content: start; padding-bottom: 2rem; gap: 1rem; } .sv-engine-canvas { max-height: 60svh; }
  .sv-lockup { margin-top: 1.25rem; } .sv-lockup .sv-kl { font-size: 1.7rem; }
  .sv-steps { grid-template-columns: 1fr 1fr; } .sv-weeks { grid-template-columns: 1fr; }
  .sv-how-steps { grid-template-columns: 1fr; gap: .9rem; }
  .sv-how-line::before, .sv-how-line::after { left: 7px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; }
  .sv-how-line::after { height: calc(clamp(0, (var(--hw) - .2) / .6, 1) * 100%); width: 2px; }
  .sv-how-dot { display: none; }
  .sv-how-step { padding-top: 0; padding-left: 2rem; }
  .sv-footer-top { grid-template-columns: 1fr; } .sv-footer-bottom { flex-direction: column; align-items: flex-start; }
  .sv-proof-body dl div { grid-template-columns: 1fr; gap: .15rem; }
  .sv-founder { grid-template-columns: 5rem 1fr; } .sv-founder img { width: 5rem; }
  .sv-leak-panel { grid-template-columns: 1fr; }
  .sv-book { padding-bottom: calc(var(--sc-section) + 72px); }
}
@media (max-width: 480px) {
  .sv-scenario-inputs { grid-template-columns: 1fr; } .sv-cta-row .sv-btn { width: 100%; } .sv-tool-top { flex-direction: column; align-items: flex-start; }
  .sv-hero-industries { display: none; }
}

/* ---------------------------------------------------------------- print -- */
@media print {
  .sv-menu, .sv-rail, .sv-orb, .sv-dock, .sc-grain, [data-sc-progress], .sv-glow, .sv-switch, .sv-motion-toggle, .sv-audit, .sv-panel, canvas { display: none !important; }
  #sv-site { color: #000; }
  .sv-hero-stage, .sv-systems-stage, .sv-engine-stage { position: static; height: auto; }
  .sv-footer { position: static; }
  #sv-page { margin-bottom: 0; }
  .sv-results { display: block !important; }
}

/* ============================================================================
   V2.1 (2026-10-09): Adspirer-clean light canvas, Kelly's dock, pinned
   storyboards for the foundation plates and the five systems.
   ========================================================================== */

/* Clean surfaces: white tiles with a hairline, softer shadows, pearl bands */
.sv-tile { background: #21141a; backdrop-filter: none; -webkit-backdrop-filter: none; border: 1px solid var(--sv-hair); box-shadow: 0 1px 2px rgba(0, 0, 0,.04), 0 12px 32px -20px rgba(0, 0, 0,.18); }
.sv-tile--pearl { background: var(--sv-pearl); }
.sv-display .sv-rb-text { display: block; }
.sv-hero-bg { opacity: .8; }
.sv-rail, .sv-orb { display: none !important; }
.sv-leak-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem 2rem; align-items: center; padding: 1.25rem 1.5rem; }
.sv-leak-panel strong { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sv-muted); margin-bottom: .35rem; }
.sv-leak-panel span { display: block; font-size: 1.15rem; line-height: 1.45; color: var(--sv-ink); }
.sv-leak-transition { margin-top: 2rem; max-width: 40ch; }
.sv-leak-head .sv-h2 { max-width: 15ch; }
.sv-xray-tag--right { background: #21141a; }

/* Generic drawn-SVG vocabulary (leak, paths, FCO) */
.sv-drawn .src { fill: #8f7b76; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.sv-drawn .src-rb { fill: #f7ece6; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.sv-drawn .wall { fill: none; stroke: #3d3034; stroke-width: 2; stroke-linecap: round; }
.sv-drawn .wall-rb { fill: none; stroke: url(#sv-rb-grad-2); stroke-width: 3; stroke-linecap: round; }
.sv-drawn .gap { stroke: #ff3b30; stroke-width: 4; stroke-linecap: round; opacity: .3; transition: opacity 200ms; }
.sv-drawn .gap.is-on { opacity: 1; }
.sv-drawn .lead { fill: #4a3d40; } .sv-drawn .lead-lost { fill: #ff3b30; } .sv-drawn .lead-rb { fill: url(#sv-rb-grad-2); }
.sv-drawn .node { fill: #21141a; stroke: #3d3034; stroke-width: 1.5; }
.sv-drawn .node-rb { fill: #21141a; stroke: url(#sv-rb-grad-2); stroke-width: 2.5; }
.sv-drawn .node-ink { fill: #f7ece6; }
.sv-drawn .label { fill: #f7ece6; font-size: 12px; font-weight: 600; }
.sv-drawn .label-white { fill: #21141a; font-size: 12px; font-weight: 600; }
.sv-drawn .label-muted { fill: #8f7b76; font-size: 11px; font-weight: 500; }
.sv-drawn .want { fill: #f7ece6; font-size: 14px; font-weight: 700; letter-spacing: -.02em; }
.sv-drawn .gap-tag { fill: #ff3b30; font-size: 12px; font-weight: 700; }
.sv-drawn text { font-family: var(--sc-font-text); }

/* ---------------------------------------------------------- Kelly's dock -- */
.sv-orbdock { position: fixed; inset: 0; z-index: 56; pointer-events: none; }
.sv-orbdock-card { position: absolute; left: 0; top: 0; width: 380px; height: 460px; transform-origin: 0 0; pointer-events: auto; border-radius: 36px; background: #fff; box-shadow: 0 30px 80px -30px rgba(40, 14, 20,.35), 0 2px 6px rgba(40, 14, 20,.06); isolation: isolate; will-change: transform; }
.sv-orbdock-card::before { content: ""; position: absolute; inset: -10px; border-radius: 46px; background: var(--rb-conic); z-index: -2; filter: blur(16px); opacity: .7; animation: sv-spin 7s linear infinite, sv-breathe 4s ease-in-out infinite; }
.sv-orbdock-card::after { content: ""; position: absolute; inset: -3px; border-radius: 39px; background: var(--rb-conic); z-index: -1; animation: sv-spin 7s linear infinite; }
.sv-orbdock-card.is-pulse::before { animation: sv-spin 7s linear infinite, sv-pulse-ring .9s var(--sv-ease); }
@keyframes sv-pulse-ring { 0% { opacity: .7; filter: blur(16px); } 40% { opacity: 1; filter: blur(30px); inset: -26px; } 100% { opacity: .7; filter: blur(16px); } }
.sv-orbdock-card > * { border-radius: 34px; }
.sv-orb-ghost { position: absolute; inset: 0; width: 100%; height: 100%; fill: #039855; }
.sv-orb-ghost .mic { fill: #039855; }
.sv-orb-ghost text { fill: #1a0b0f; font-size: 18px; font-weight: 700; letter-spacing: -.02em; }
.sv-orbdock.is-live .sv-orb-ghost { display: none; }
.sv-widget-live { position: absolute; inset: 0; display: grid; place-items: center; overflow: clip; background: #fff; }
.sv-widget-live:empty { background: transparent; }
.sv-orbdock:not(.is-live) .sv-widget-live { background: transparent; }
.sv-widget-live chat-widget { display: block; max-width: 100%; max-height: 100%; }
.sv-widget-fallback { position: absolute; left: 1rem; right: 1rem; bottom: 1rem; margin: 0; text-align: center; font-size: .82rem; color: var(--sv-muted); pointer-events: auto; }
.sv-widget-fallback a { color: var(--sv-ink); font-weight: 600; text-decoration: underline; }
.sv-orbdock-hit { position: absolute; inset: 0; background: transparent; cursor: pointer; }
.sv-orbdock-hit:hover { background: rgba(255, 46, 63,.06); }
.sv-orbdock-close { position: absolute; top: -14px; right: -14px; width: 44px; height: 44px; border-radius: 50%; background: #21141a; box-shadow: var(--sv-shadow-lg); display: grid; place-items: center; color: var(--sv-ink); z-index: 3; }
.sv-orbdock-close svg { width: 18px; height: 18px; }
.sv-orbdock-tag { position: absolute; left: 0; top: 0; pointer-events: auto; display: inline-flex; align-items: center; gap: .5rem; min-height: 40px; padding: 0 .95rem 0 .7rem; border-radius: 999px; background: #21141a; border: 1px solid var(--sv-hair); box-shadow: var(--sv-shadow); font-size: .86rem; font-weight: 600; color: var(--sv-ink); white-space: nowrap; }
.sv-orbdock-tag i { width: 10px; height: 10px; border-radius: 50%; background: var(--rb-conic); animation: sv-spin 3s linear infinite; }
.sv-orbdock-tag:hover { border-color: var(--sv-ink); }
.sv-orbdock-note { position: absolute; left: 0; top: 0; width: min(320px, 86vw); margin: 0; text-align: center; font-size: .84rem; line-height: 1.45; color: var(--sv-muted); opacity: 0; transition: opacity 240ms; }
.sv-orbdock[data-state="hero"] .sv-orbdock-note { opacity: 1; }
.sv-orbdock[data-state="docked"] .sv-orbdock-card { box-shadow: 0 24px 60px -24px rgba(40, 14, 20,.45), 0 2px 6px rgba(40, 14, 20,.08); }
.sv-orbdock[data-state="docked"] .sv-orbdock-card::before { opacity: .55; }
.sv-orbdock.is-failed .sv-orb-ghost { opacity: .5; }

/* ---------------------------------------------------------------- hero -- */
.sv-hero-grid { grid-template-columns: minmax(0, 11fr) minmax(0, 9fr); }
.sv-hero-device { position: relative; width: min(100%, 380px, 60svh * .826); aspect-ratio: 380 / 460; margin-inline: auto; --k: 1; }
.sv-orb-home { position: absolute; inset: 0; border-radius: 36px; }
.xray .sv-orb-home { outline: 2px dashed var(--sv-green); outline-offset: 4px; }
.sv-thread { position: absolute; left: 50%; top: 50%; width: 600px; height: 660px; transform: translate(-50%, -50%) scale(var(--k)); overflow: visible; pointer-events: none; z-index: 1; inset: auto; }
.sv-stickers .sv-sticker { z-index: 3; }
.sv-sticker em { font-style: normal; font-size: .64rem; font-weight: 700; color: #ff3b30; letter-spacing: .04em; text-transform: uppercase; margin-left: .15rem; opacity: calc(1 - var(--h, 0)); }
.sv-hero.is-static .sv-sticker em { opacity: 0; }
.sv-hero.is-static.is-lost .sv-sticker em { opacity: 1; }
.sv-hero-foot { justify-content: center; gap: 1.5rem; }
.sv-hero-copy .sv-cta-row .sv-btn--ghost { color: var(--sv-ink); }

/* ------------------------------------------------- pinned storyboards -- */
.sv-story { --sp: var(--sc-p, 1); background: #21141a; }
.sv-story-stage { position: sticky; top: 0; height: 100vh; height: 100svh; overflow: clip; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; padding-top: calc(var(--sv-bar-h) + 1.5vh); background: #21141a; }
.sv-story-head { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 1rem clamp(1.5rem, 4vw, 4rem); align-items: end; width: 100%; max-width: var(--sc-maxw); margin-inline: auto; padding-inline: var(--sc-gutter); }
.sv-story-head .sv-h2 { margin-top: .75rem; max-width: 14ch; font-size: clamp(1.8rem, 1.1rem + 2.6vw, 3.2rem); }
.sv-story-head .sv-body { max-width: 40ch; }
.sv-story-grid { position: relative; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(1.5rem, 4vw, 4rem); width: 100%; max-width: var(--sc-maxw); margin-inline: auto; padding: 1.5rem var(--sc-gutter) 1rem; min-height: 0; }
.sv-story-text { position: relative; min-height: 0; }
.sv-story-chapter { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; gap: .9rem; --cin: clamp(0, (var(--sp) * var(--n) - var(--c)) / .08, 1); --cout: clamp(0, (var(--sp) * var(--n) - var(--c) - .92) / .08, 1); opacity: calc(var(--cin) * (1 - var(--cout))); transform: translateY(calc((1 - var(--cin)) * 24px - var(--cout) * 24px)); pointer-events: none; }
.sv-story-chapter:first-child { --cin: 1; }
.sv-story-chapter:last-child { --cout: 0; }
.sv-story-chapter .sv-h3 { font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.4rem); letter-spacing: -.035em; line-height: 1.1; }
.sv-story-beats { display: grid; gap: .55rem; counter-reset: sb; }
.sv-story-beat { position: relative; padding-left: 2.2rem; font-size: clamp(1.05rem, .95rem + .5vw, 1.3rem); line-height: 1.4; color: var(--sv-ink); counter-increment: sb; --vis: clamp(0, (var(--sp) * var(--n) - var(--c) - var(--b) + .04) / .08, 1); --nxt: clamp(0, (var(--sp) * var(--n) - var(--c) - var(--bn, 9) + .04) / .08, 1); opacity: calc(var(--vis) * (1 - .6 * var(--nxt))); transform: translateY(calc((1 - var(--vis)) * 16px)); }
.sv-story-beat::before { content: counter(sb); position: absolute; left: 0; top: .15em; width: 1.5rem; height: 1.5rem; border-radius: 50%; display: grid; place-items: center; font-size: .72rem; font-weight: 700; color: #21141a; background: var(--sv-ink); }
.sv-story-beat:last-child::before { background: var(--rb-conic); animation: sv-spin 4s linear infinite; }
.sv-story-line { --vis: clamp(0, (var(--sp) * var(--n) - var(--c) - var(--b) + .04) / .08, 1); opacity: var(--vis); transform: translateY(calc((1 - var(--vis)) * 12px)); }
.sv-story-lines { display: flex; flex-wrap: wrap; gap: .4rem .5rem; }
.sv-story-lines span { font-weight: 700; letter-spacing: -.02em; font-size: 1rem; padding: .45rem .8rem; border-radius: 999px; background: var(--sv-pearl); color: var(--sv-ink); }
.sv-story-visual { position: relative; min-height: 0; }
.sv-story-frame { position: absolute; inset: 0; display: flex; flex-direction: column; padding: clamp(1rem, 2vw, 1.5rem); --cin: clamp(0, (var(--sp) * var(--n) - var(--c)) / .08, 1); --cout: clamp(0, (var(--sp) * var(--n) - var(--c) - .92) / .08, 1); opacity: calc(var(--cin) * (1 - var(--cout))); transform: scale(calc(.96 + .04 * var(--cin) - .04 * var(--cout))); pointer-events: none; }
.sv-story-frame:first-child { --cin: 1; }
.sv-story-frame:last-child { --cout: 0; }
.sv-story-frame svg { width: 100%; height: 100%; max-height: 100%; }
.sv-story-el { --vis: clamp(0, (var(--sp) * var(--n) - var(--c) - var(--b) + .04) / .08, 1); --out: clamp(0, (var(--sp) * var(--n) - var(--c) - var(--bo, 9) + .04) / .08, 1); opacity: calc(var(--vis) * (1 - var(--out))); transform: translateY(calc((1 - var(--vis)) * 10px)); }
.sv-story-nav { position: relative; z-index: 2; display: flex; justify-content: center; flex-wrap: wrap; gap: .25rem; padding: .75rem var(--sc-gutter) 1.5rem; }
.sv-story-nav button { display: inline-flex; align-items: center; gap: .5rem; min-height: 40px; padding: 0 .9rem; border-radius: 999px; font-size: .82rem; font-weight: 600; color: var(--sv-muted); }
.sv-story-nav button i { width: 8px; height: 8px; border-radius: 50%; background: var(--sv-hair-2); transition: transform 200ms, background 200ms; }
.sv-story-nav button:hover { color: var(--sv-ink); background: var(--sv-pearl); }
.sv-story-nav button[aria-current="true"] { color: var(--sv-ink); background: var(--sv-pearl); }
.sv-story-nav button[aria-current="true"] i { background: var(--rb-conic); transform: scale(1.3); animation: sv-spin 3s linear infinite; }

/* chapter A mock */
.sv-mock-top { display: flex; align-items: center; gap: .4rem; padding: 0 0 .75rem; border-bottom: 1px solid var(--sv-hair); font-size: .78rem; color: var(--sv-muted); }
.sv-mock-top i { width: 9px; height: 9px; border-radius: 50%; background: var(--sv-hair-2); }
.sv-mock-top span { margin-left: .5rem; padding: .2rem .6rem; border-radius: 999px; background: var(--sv-pearl); }
.sv-mock-body { position: relative; flex: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 1rem; padding-top: 1rem; min-height: 0; }
.sv-mock-form { align-self: start; display: grid; gap: .5rem; padding: .9rem; border-radius: 16px; border: 1px solid var(--sv-hair); background: var(--sv-pearl); }
.sv-mock-form b { font-size: .9rem; font-weight: 700; }
.sv-mock-form span { height: 30px; border-radius: 8px; background: #21141a; border: 1px solid var(--sv-hair); }
.sv-mock-form em { font-style: normal; justify-self: start; font-size: .8rem; font-weight: 600; padding: .35rem .8rem; border-radius: 999px; background: #3d3034; color: #21141a; }
.sv-chat { align-content: start; }
.sv-bubble { font-size: .98rem; }
.sv-bubble--wait { background: transparent; color: var(--sv-muted); font-size: .84rem; padding: 0 1rem; }
.sv-mock-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-left: auto; }
.sv-mock-foot { margin-top: .75rem; padding-top: .75rem; border-top: 1px solid var(--sv-hair); font-size: .86rem; color: var(--sv-body); display: flex; align-items: center; gap: .6rem; }

/* systems ring inside the storyboard */
.sv-story .sv-ring-wrap { perspective: 1600px; display: grid; place-items: center; }
.sv-story .sv-ring { width: min(100%, 360px); height: min(100%, 470px); transition: transform 760ms var(--sv-ease); }
.sv-story .sv-card { --rz: 290px; transition: opacity 420ms, filter 420ms; padding: 1.1rem 1.2rem 1.2rem; gap: .65rem; }
.sv-story .sv-card .sv-label { display: flex; justify-content: space-between; }
.sv-story .sv-card canvas { width: 100%; aspect-ratio: 4 / 3; border-radius: 16px; background: var(--sv-pearl); }
.sv-story .sv-card .lines { display: grid; gap: .1rem; font-weight: 700; letter-spacing: -.02em; color: var(--sv-ink); font-size: 1rem; }
.sv-story .sv-card p { color: var(--sv-body); font-size: .88rem; line-height: 1.5; }
.sv-story .sv-card.is-front { box-shadow: var(--sv-shadow-lg); }

/* flat storyboards: phones and reduced motion stack every chapter with its visual */
.sv-story.is-flat .sv-story-stage, .reduced-motion .sv-story-stage { position: static; height: auto; display: block; overflow: visible; padding-top: var(--sc-section); padding-bottom: var(--sc-section); }
.sv-story.is-flat .sv-story-grid, .reduced-motion .sv-story-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; padding-top: 2rem; }
.sv-story.is-flat .sv-story-text, .reduced-motion .sv-story-text, .sv-story.is-flat .sv-story-visual:not(.sv-ring-wrap), .reduced-motion .sv-story-visual:not(.sv-ring-wrap) { display: contents; }
.sv-story.is-flat .sv-story-chapter, .reduced-motion .sv-story-chapter { position: relative; inset: auto; opacity: 1 !important; transform: none !important; pointer-events: auto; order: calc(var(--c) * 2); padding: 1.5rem 0 .5rem; }
.sv-story.is-flat .sv-story-frame, .reduced-motion .sv-story-frame { position: relative; inset: auto; opacity: 1 !important; transform: none !important; pointer-events: auto; order: calc(var(--c) * 2 + 1); aspect-ratio: 4 / 3; }
.sv-story.is-flat .sv-story-beat, .reduced-motion .sv-story-beat, .sv-story.is-flat .sv-story-line, .reduced-motion .sv-story-line, .sv-story.is-flat .sv-story-el, .reduced-motion .sv-story-el { opacity: 1 !important; transform: none !important; }
.sv-story.is-flat .sv-story-el[style*="--bo"], .reduced-motion .sv-story-el[style*="--bo"] { display: none; }
.sv-story.is-flat .sv-ring-wrap, .reduced-motion .sv-ring-wrap { order: 99; perspective: none; display: block; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; padding: .5rem 0 1rem; margin-inline: calc(-1 * var(--sc-gutter)); padding-inline: var(--sc-gutter); }
.sv-story.is-flat .sv-ring, .reduced-motion .sv-ring { transform: none !important; transform-style: flat; width: max-content; height: auto; display: flex; gap: 1rem; }
.sv-story.is-flat .sv-card, .reduced-motion .sv-card { position: relative; inset: auto; transform: none !important; opacity: 1; filter: none; width: min(80vw, 340px); scroll-snap-align: center; flex: none; }
.sv-story.is-flat .sv-story-nav, .reduced-motion .sv-story-nav { display: none; }
.sv-story.is-flat .sv-story-head, .reduced-motion .sv-story-head { grid-template-columns: 1fr; align-items: start; }

/* bento glide reads the flow act's progress */
.sv-details { --fp: var(--sc-p, 1); }
.sv-bento > .sv-tile { transform: translate(calc(var(--gx) * (1 - clamp(0, (var(--fp) - var(--s)) / .22, 1)) * 1px), calc((1 - clamp(0, (var(--fp) - var(--s)) / .22, 1)) * 30px)); }
.sv-plates-canvas { aspect-ratio: 16 / 7; }

/* engine */
.sv-engine-copy .sv-h2 .sv-rb-text, .sv-lockup .sv-ki.sv-rb-text { background: var(--rb-text); }

/* reduced motion extras */
.reduced-motion #sv-site .sv-orbdock-card::before, .reduced-motion #sv-site .sv-orbdock-card::after { animation: none; }
.reduced-motion #sv-site .sv-story-el[style*="--bo"] { display: none; }

/* responsive */
@media (max-width: 1099px) { .sv-story-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
@media (max-width: 900px) { .sv-story-head { grid-template-columns: 1fr; align-items: start; } .sv-story-head .sv-body { display: none; } .sv-story-grid { grid-template-columns: 1fr; } .sv-story-visual:not(.sv-ring-wrap) { display: none; } .sv-story-stage { grid-template-rows: auto minmax(0, 1fr) auto; } .sv-story .sv-ring { height: min(100%, 420px); } .sv-mock-body { grid-template-columns: 1fr; } .sv-mock-form { display: none; } }
@media (max-width: 700px) {
  .sv-hero-device { width: min(100%, 320px); margin-top: 2.5rem; margin-bottom: 7.5rem; }
  .sv-hero-beat, .sv-hero-lockup { display: none; }
  .sv-story-visual:not(.sv-ring-wrap) { display: contents; }
  .sv-orbdock-note { font-size: .8rem; }
  .sv-orbdock-tag { font-size: .8rem; min-height: 36px; }
  .sv-leak-panel .sv-btn { width: 100%; }
}
@media print { .sv-orbdock, .sv-confetti { display: none !important; } .sv-story-stage { position: static; height: auto; } }

/* V2.1 fixes after the first desktop pass */
#sv-site [hidden] { display: none !important; }
#sv-site .sv-btn { color: #21141a; }
#sv-site .sv-btn--ghost, #sv-site .sv-btn--rb { color: var(--sv-ink); }
@media (min-width: 901px) { .sv-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.sv-hero-bg { opacity: .55; }
.sv-orbdock[data-state="hero"] .sv-orbdock-tag, .sv-orbdock[data-state="flight"] .sv-orbdock-tag, .sv-orbdock-note { display: none; }
.sv-hero-kelly { margin-top: 1.25rem; display: flex; align-items: center; gap: .6rem; font-size: .9rem; color: var(--sv-body); max-width: 46ch; }
.sv-hero-kelly i { flex: none; width: 12px; height: 12px; border-radius: 50%; background: var(--rb-conic); animation: sv-spin 3s linear infinite; box-shadow: 0 0 0 3px #21141a, 0 0 0 4px var(--sv-hair); }

/* orb-only docking */
.sv-orbdock-card { will-change: transform, clip-path; }
.sv-orb-halo { position: absolute; left: 0; top: 0; width: 0; height: 0; border-radius: 50%; background: var(--rb-conic); animation: sv-spin 5s linear infinite; opacity: 0; pointer-events: none; box-shadow: 0 14px 40px -12px rgba(255, 46, 63, .55); }
.sv-orb-halo::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: #21141a; }
.sv-orbdock[data-state="docked"] .sv-orbdock-card, .sv-orbdock[data-state="flight"] .sv-orbdock-card { box-shadow: none; }
.sv-orbdock[data-state="docked"] .sv-orbdock-card::before, .sv-orbdock[data-state="docked"] .sv-orbdock-card::after, .sv-orbdock[data-state="flight"] .sv-orbdock-card::before, .sv-orbdock[data-state="flight"] .sv-orbdock-card::after { opacity: 0; }
.sv-orbdock-hit { border-radius: 50%; }
.sv-orbdock-hit:hover { background: rgba(33, 20, 26,.18); }
.sv-orbdock[data-state="hero"] .sv-orbdock-tag, .sv-orbdock[data-state="flight"] .sv-orbdock-tag { display: none; }
/* hero: lockup and beat sit clear of the bottom sticker */
.sv-hero-beat, .sv-hero-lockup { bottom: -6.2rem; }
/* compact menu keeps the links so the hop dot has somewhere to hop */
.sv-menu.is-compact { width: min(92vw, 940px); }
.sv-menu.is-compact .sv-nav { display: flex; }
.sv-menu.is-compact .sv-nav a { font-size: .88rem; padding: .55rem .65rem; }
.sv-menu.is-compact .sv-menu-btn { display: none; }
@media (max-width: 1100px) { .sv-menu.is-compact .sv-nav { display: none; } .sv-menu.is-compact .sv-menu-btn { display: inline-flex; } .sv-menu.is-compact { width: min(92vw, 560px); } }

/* docked orb legibility and chapter A centring */
.sv-orbdock[data-state="docked"] .sv-orbdock-card { filter: contrast(1.25) saturate(1.6); }
.sv-mock-body { align-content: center; }

/* mini orb handle */
.sv-orb-mini { position: absolute; left: 0; top: 0; width: 58px; height: 58px; border-radius: 50%; background: #fff; pointer-events: auto; cursor: pointer; isolation: isolate; box-shadow: 0 14px 34px -12px rgba(138, 28, 58, .6), 0 2px 6px rgba(40, 14, 20,.1); transform-origin: 50% 50%; will-change: transform, opacity; }
.sv-orb-mini::before { content: ""; position: absolute; inset: -3px; border-radius: 50%; background: var(--rb-conic); z-index: -1; animation: sv-spin 4s linear infinite; }
.sv-orb-mini::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #fff; z-index: -1; }
.sv-orb-mini svg { position: absolute; inset: 0; width: 100%; height: 100%; fill: #039855; }
.sv-orb-mini svg .mic { fill: #039855; }
.sv-orb-mini i { position: absolute; inset: -10px; border-radius: 50%; border: 2px solid rgba(138, 28, 58, .35); animation: sv-pulse 2.4s var(--sv-ease) infinite; pointer-events: none; }
.sv-orb-mini.is-talking i { border-color: rgba(3, 152, 85, .6); animation-duration: .9s; }
.sv-orb-mini.is-talking::before { animation-duration: 1.2s; }
.sv-orb-mini:hover { box-shadow: 0 18px 40px -12px rgba(138, 28, 58, .8), 0 2px 6px rgba(40, 14, 20,.1); }
.sv-orb-mini:focus-visible { outline: 3px solid var(--sv-indigo); outline-offset: 4px; }
.sv-orbdock[data-state="docked"] .sv-orbdock-card { filter: none; }
.sv-orbdock-hit { display: none !important; }
@media (max-width: 700px) { .sv-orb-mini { width: 48px; height: 48px; } }
/* holographic sticker sheen stays behind the label so the text never washes out */
.sv-sticker::after { z-index: -1; mix-blend-mode: multiply; opacity: .55; }
.sv-sticker { isolation: isolate; }
.sv-sticker > span { position: relative; z-index: 1; }
.reduced-motion #sv-site .sv-orb-mini::before, .reduced-motion #sv-site .sv-orb-mini i { animation: none; }

/* polish after the desktop tour */
.sv-footer .sv-glow i { opacity: .14; }
.sv-sticker { font-weight: 700; font-size: .9rem; }
.sv-sticker::after { opacity: .4; }
.xray #sv-site .sv-orbdock-card::after { content: "WIDGET"; inset: auto; left: 12px; top: 12px; width: auto; height: auto; filter: none; animation: none; background: var(--sv-green); color: var(--sv-ink); font-size: .66rem; font-weight: 700; letter-spacing: .1em; padding: .2rem .5rem; border-radius: 999px; z-index: 5; }

/* mobile pass fixes */
@media (max-width: 700px) {
  .sv-hero-grid { grid-template-columns: 1fr; }
  .sv-hero-device { width: min(100%, 250px); margin-top: 3.5rem; margin-bottom: 4.5rem; }
  .sv-stickers .sv-sticker { font-size: .7rem; padding: .4rem .6rem .4rem .5rem; gap: .35rem; }
  .sv-stickers .sv-sticker svg { width: 14px; height: 14px; }
  .sv-sticker em { display: none; }
  .sv-story.is-flat .sv-story-frame--mock { aspect-ratio: auto; }
  .sv-story.is-flat .sv-mock-body { grid-template-columns: 1fr; }
}
.sv-story.is-flat .sv-story-frame--mock, .reduced-motion .sv-story-frame--mock { aspect-ratio: auto; }
.sv-drawn .cap-left { text-anchor: start; } .sv-drawn .cap-right { text-anchor: end; }

/* phones: a tidy fixed ring around Kelly's card, no thread; the states still pop with scroll */
@media (max-width: 700px) {
  .sv-leak-panel { grid-template-columns: 1fr; }
  .sv-thread { display: none; }
  .sv-stickers { --h: 1; }
  .sv-stickers .sv-sticker { transform: translate(calc(-50% + var(--mrx, var(--rx)) * 1px), calc(-50% + var(--mry, var(--ry)) * 1px)); }
  .sv-stickers .sv-sticker:nth-child(1) { --mrx: 0; --mry: -215; }
  .sv-stickers .sv-sticker:nth-child(2) { --mrx: 148; --mry: -125; }
  .sv-stickers .sv-sticker:nth-child(3) { --mrx: 148; --mry: 125; }
  .sv-stickers .sv-sticker:nth-child(4) { --mrx: 0; --mry: 215; }
  .sv-stickers .sv-sticker:nth-child(5) { --mrx: -148; --mry: 125; }
  .sv-stickers .sv-sticker:nth-child(6) { --mrx: -148; --mry: -125; }
  .sv-state { transform: translate(calc(-50% + var(--mx2, var(--x)) * 1px), calc(-50% + var(--my2, var(--y)) * 1px)) scale(calc(.6 + .4 * clamp(0, (var(--hp) - var(--at)) / .08, 1))); }
  .sv-states .sv-state:nth-child(1) { --mx2: 150; --my2: -178; }
  .sv-states .sv-state:nth-child(2) { --mx2: 118; --my2: 215; }
  .sv-states .sv-state:nth-child(3) { --mx2: -150; --my2: 178; }
  .sv-hero.is-static .sv-state { transform: translate(calc(-50% + var(--mx2, var(--x)) * 1px), calc(-50% + var(--my2, var(--y)) * 1px)) scale(1); }
  .sv-orbdock[data-state="open"] { pointer-events: auto; background: rgba(247, 236, 230, .28); }
}
/* the leak stage must never force its own width on phones (aspect-ratio + min-height) */
@media (max-width: 900px) { .sv-xray-stage { min-height: 0; width: 100%; } }

/* ============================================================================
   V2.2 (2026-10-09): scroll-driven leak story and owner dashboard, custom apps
   section with a build-call form, dark wordmark in the light header.
   ========================================================================== */
.sv-menu .sv-brand img { height: 30px; }

/* leak story (pinned on desktop and phones) */
.sv-leak { background: var(--sv-pearl); }
.sv-leak .sv-story-stage { background: var(--sv-pearl); }
.sv-leak-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.sv-leak-frame { padding: 0; overflow: hidden; display: block; }
.sv-leak-canvas { width: 100%; height: 100%; display: block; }
.sv-leak-beats .sv-story-beat { font-size: clamp(1rem, .92rem + .4vw, 1.18rem); line-height: 1.38; }
.sv-leak-beats .sv-story-beat b { display: block; font-weight: 700; color: #ff6b6b; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .1rem; }
.sv-leak-beats .sv-story-beat.is-fix b { color: transparent; background: var(--rb-text); -webkit-background-clip: text; background-clip: text; }
.sv-leak-beats .sv-story-beat:first-child::before { background: var(--sv-ink); }
.sv-leak-beats .sv-story-beat[data-leak]::before { background: #ff3b30; }
.sv-leak-cta { margin-top: .5rem; gap: .5rem 1rem; }
.sv-leak-cta .sv-beat { font-size: 1.05rem; }
.sv-leak-nav button[aria-current="true"] i { background: var(--rb-conic); }

/* owner dashboard reads the flow act's progress: no slider */
.sv-owner { --day: clamp(0, (var(--sc-p, 1) - .16) / .42, 1); }
.sv-day-track { position: relative; height: 8px; border-radius: 999px; background: var(--sv-hair); overflow: visible; }
.sv-day-track::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: calc(var(--day) * 100%); border-radius: 999px; background: var(--rb); background-size: 300% 100%; animation: sv-rb-slide 4s linear infinite; }
.sv-day-track i { position: absolute; top: 50%; left: calc(var(--day) * 100%); width: 22px; height: 22px; border-radius: 50%; background: #21141a; border: 2px solid var(--sv-ink); box-shadow: var(--sv-shadow); transform: translate(-50%, -50%); }
.sv-dash-col--chaos { opacity: calc(1 - var(--day) * .7); filter: grayscale(calc(var(--day) * 100%)); transition: none; }
.sv-dash-col--chaos .sv-row { animation: none; transform: translateX(calc((1 - var(--day)) * var(--jx, 0px))) rotate(calc((1 - var(--day)) * var(--jr, 0deg))); }
.sv-dash-col--calm { opacity: 1; transition: none; }
.sv-dash-col--calm .sv-row { --vis: clamp(0, (var(--day) - var(--i, 0) * .18) / .22, 1); opacity: calc(.22 + .78 * var(--vis)); transform: translateX(calc((1 - var(--vis)) * 18px)); }
.sv-dash-col--calm .sv-row i { transform: scale(calc(.6 + .4 * var(--vis))); }
.reduced-motion #sv-site .sv-owner { --day: 1; }
@media (prefers-reduced-motion: reduce) { #sv-site .sv-owner { --day: 1; } }

/* custom apps */
.sv-apps { position: relative; }
.sv-apps .sv-h2 { max-width: 16ch; }
.sv-apps-grid { margin-top: clamp(2rem, 4vw, 3rem); display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(1rem, 2vw, 1.5rem); align-items: start; }
.sv-apps-stage { aspect-ratio: 4 / 3; padding: 0; overflow: hidden; position: sticky; top: calc(var(--sv-bar-h) + 1rem); }
.sv-apps-stage canvas { width: 100%; height: 100%; display: block; background: var(--sv-pearl); }
.sv-apps-list { display: grid; gap: clamp(.75rem, 1.4vw, 1rem); }
.sv-apps-list article { padding: clamp(1.1rem, 2vw, 1.5rem); display: grid; gap: .45rem; }
.sv-apps-list h3 { font-size: 1.2rem; letter-spacing: -.025em; line-height: 1.2; }
.sv-apps-list p:last-child { color: var(--sv-body); font-size: .98rem; line-height: 1.55; }
.sv-app-call { margin-top: clamp(1.5rem, 3vw, 2.5rem); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.sv-app-call-copy { padding: clamp(1.5rem, 3vw, 2.5rem); display: grid; gap: .75rem; align-content: start; border-right: 1px solid var(--sv-hair); background: var(--sv-pearl); border-radius: var(--sv-r-tile) 0 0 var(--sv-r-tile); }
.sv-app-form { padding: clamp(1.5rem, 3vw, 2.5rem); display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; align-content: start; }
.sv-app-form .sv-field > label { font-size: .92rem; font-weight: 600; }
.sv-app-form textarea.sv-input { min-height: 7rem; resize: vertical; line-height: 1.45; }
.sv-field--wide { grid-column: 1 / -1; }
.sv-app-form .sv-choice { display: grid; grid-template-columns: 22px 1fr; gap: .6rem; align-items: start; }
.sv-app-form .sv-choice input { position: static; opacity: 1; width: 20px; height: 20px; margin-top: .15rem; accent-color: var(--sv-indigo); }
.sv-app-form .sv-choice label { display: block; padding: 0; border: 0; min-height: 0; font-size: .92rem; color: var(--sv-body); background: none; }
.sv-app-form .sv-choice label::before { display: none; }
.sv-app-form .sv-input[aria-invalid="true"] { border-color: #ff3b30; box-shadow: 0 0 0 3px rgba(255,59,48,.12); }
.sv-app-form.is-sent .sv-input, .sv-app-form.is-sent .sv-btn { opacity: .55; pointer-events: none; }
.sv-app-form iframe { grid-column: 1 / -1; width: 100%; min-height: 640px; border: 0; }

@media (max-width: 1099px) { .sv-leak-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
@media (max-width: 900px) {
  .sv-leak .sv-story-visual { display: block; }
  .sv-leak-grid { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); gap: 1rem; padding-top: .75rem; }
  .sv-leak-visual { order: 0; max-height: 38svh; }
  .sv-leak .sv-story-text { order: 1; min-height: 7.5rem; }
  .sv-leak-frame { aspect-ratio: 4 / 3; max-height: 38svh; margin-inline: auto; width: auto; }
  .sv-leak .sv-story-chapter { justify-content: flex-start; }
  .sv-leak-beats { position: relative; min-height: 6.5rem; }
  .sv-leak-beats .sv-story-beat { position: absolute; left: 0; right: 0; top: 0; opacity: calc(var(--vis) * (1 - var(--nxt))); padding-left: 2rem; }
  .sv-leak-cta { display: none; }
  .sv-leak .sv-story-nav button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .sv-leak .sv-story-nav button { min-width: 32px; padding: 0 .5rem; }
  .sv-apps-grid, .sv-app-call { grid-template-columns: 1fr; }
  .sv-apps-stage { position: relative; top: auto; }
  .sv-app-call-copy { border-right: 0; border-bottom: 1px solid var(--sv-hair); border-radius: var(--sv-r-tile) var(--sv-r-tile) 0 0; }
}
@media (max-width: 700px) {
  .sv-leak .sv-story-visual { display: block; }
  .sv-leak .sv-story-stage { padding-top: calc(var(--sv-bar-h) + .5rem); }
  .sv-leak .sv-story-head .sv-h2 { font-size: clamp(1.5rem, 1.2rem + 2vw, 1.9rem); }
  .sv-leak-visual { max-height: 34svh; }
  .sv-leak-frame { max-height: 34svh; }
  .sv-app-form { grid-template-columns: 1fr; }
  .sv-app-form .sv-btn { width: 100%; }
}
/* leak beats stack from the top and shrink once passed, so seven beats never crowd the heading */
.sv-leak .sv-story-chapter { justify-content: flex-start; padding-top: .25rem; }
.sv-leak-beats { gap: .4rem; }
.sv-leak-beats .sv-story-beat { font-size: calc(clamp(1rem, .92rem + .4vw, 1.18rem) - .22rem * var(--nxt)); line-height: calc(1.38 - .1 * var(--nxt)); padding-left: 2rem; }
.sv-leak-beats .sv-story-beat::before { width: 1.3rem; height: 1.3rem; font-size: .66rem; }
.sv-leak-beats .sv-story-beat b { font-size: calc(.78rem - .12rem * var(--nxt)); margin-bottom: 0; }
.sv-leak .sv-story-head { align-items: start; }
/* industry journeys wrap on narrow screens instead of running past the tile */
@media (max-width: 900px) { .sv-journey { display: flex; flex-wrap: wrap; gap: .4rem; } .sv-journey i { display: none; } .sv-journey span { white-space: normal; } }
/* phones: the leak drawing is in flow so the grid row has height; the beats sit under it */
@media (max-width: 900px) {
  .sv-leak-frame { position: relative; inset: auto; width: 100%; height: auto; aspect-ratio: 4 / 3; max-height: 36svh; }
  .sv-leak-visual { height: auto; display: flex; justify-content: center; }
  .sv-leak-grid { grid-template-rows: auto minmax(0, 1fr); }
}
@media (max-width: 700px) { .sv-leak-frame { max-height: 32svh; } }
/* footer: air between the CTA tile and the link columns */
.sv-footer-cta { margin-bottom: clamp(2.5rem, 4vw, 3.5rem); }
.sv-footer-top { padding-top: .25rem; }
/* reduced motion: the leak story shows every beat at full size over a capped drawing */
.reduced-motion #sv-site .sv-leak-beats .sv-story-beat { --nxt: 0; }
.reduced-motion #sv-site .sv-leak-frame { max-width: 720px; margin-inline: auto; width: 100%; }
.reduced-motion #sv-site .sv-leak-grid { grid-template-rows: auto auto; }
@media (prefers-reduced-motion: reduce) { #sv-site .sv-leak-beats .sv-story-beat { --nxt: 0; } #sv-site .sv-leak-frame { max-width: 720px; margin-inline: auto; width: 100%; } }

.sv-story-nav { display: flex; }

/* ---- review fixes (2026-10-09, agent review) ---- */
.sv-story-chapter a, .sv-story-chapter button { pointer-events: auto; }
.sv-leak .sv-story-chapter { overflow: hidden; }
body:not(.sc-live) #sv-site .sv-leak-beats .sv-story-beat, .reduced-motion #sv-site .sv-leak-beats .sv-story-beat { position: static; opacity: 1 !important; }
.reduced-motion #sv-site .sv-leak-beats, body:not(.sc-live) #sv-site .sv-leak-beats { min-height: 0; }
@media (max-height: 820px) and (min-width: 901px) { .sv-leak-cta { display: none; } .sv-leak-beats .sv-story-beat { font-size: calc(1rem - .2rem * var(--nxt)); } .sv-leak .sv-story-head .sv-body { display: none; } .sv-leak-beats { gap: .3rem; } }
/* header: hamburger below 1180px, compact pill wide enough for seven links above it */
@media (max-width: 1180px) { .sv-menu .sv-nav, .sv-menu .sv-xray { display: none !important; } .sv-menu .sv-menu-btn { display: inline-flex !important; margin-left: auto; } .sv-menu.is-compact { width: min(92vw, 560px); } }
@media (min-width: 1181px) { .sv-menu.is-compact { width: min(94vw, 1100px); } .sv-menu.is-compact .sv-nav a { font-size: .86rem; padding: .55rem .6rem; } }
/* owner dashboard window: desktop connects while the figure is on screen; phones while it scrolls up */
.sv-owner { --day: clamp(0, (var(--sc-p, 1) - .1) / .28, 1); }
@media (max-width: 1099px) { .sv-owner { --day: clamp(0, (var(--sc-p, 1) - .24) / .3, 1); } }
.reduced-motion #sv-site .sv-owner { --day: 1; }
/* consent label: plain text, no card halo */
.sv-app-form .sv-choice input:checked + label { box-shadow: none; border-color: transparent; }
.sv-app-form .sv-choice label:hover { transform: none; }
.sv-app-form .sv-choice input:focus-visible + label { outline: none; }
.sv-app-form .sv-choice input:focus-visible { outline: 3px solid var(--sv-indigo); outline-offset: 2px; }
@media (max-width: 700px) { .sv-leak .sv-story-head .sv-h2 { max-width: none; } }

/* leak CTA lives in the always-visible nav row (the chapter column clipped it on 900px-tall screens) */
.sv-leak-nav { align-items: center; gap: .25rem 1rem; }
.sv-leak-nav-cta { margin-left: .5rem; }
@media (max-width: 900px) { .sv-leak-nav-cta { display: none; } }
.sv-leak-beats { gap: .3rem; }
.sv-leak .sv-story-chapter { overflow: visible; }
