:root{
  --color-primary:#5645d4;--color-primary-press:#4534b3;--color-primary-deep:#3a2a99;
  --color-secondary:#4534b3;--color-accent:#5645d4;--color-on-primary:#ffffff;
  --color-bg:#ffffff;--color-bg-alt:#f6f5f4;--color-surface:#ffffff;--color-surface-soft:#fafaf9;
  --color-dark:#0a1530;--color-dark-deep:#070f24;--color-dark-mid:#1a2a52;
  --color-text:#1a1a1a;--color-text-muted:#5d5b54;--color-text-soft:#787671;--color-text-faint:#a4a097;
  --color-on-dark:#ffffff;--color-on-dark-muted:#c3c0b9;
  --color-border:#e5e3df;--color-border-soft:#ede9e4;--color-border-strong:#c8c4be;
  --tint-peach:#ffe8d4;--tint-rose:#fde0ec;--tint-mint:#d9f3e1;--tint-lavender:#e6e0f5;
  --tint-sky:#dcecfa;--tint-yellow:#fef7d6;--tint-yellow-bold:#f9e79f;--tint-cream:#f8f5e8;--tint-gray:#f0eeec;
  --dot-pink:#ff64c8;--dot-orange:#dd5b00;--dot-teal:#2a9d99;--dot-green:#1aae39;--dot-yellow:#f5d75e;--dot-purple:#7b3ff2;
  --ok:#1aae39;--warn:#dd5b00;--err:#e03131;
  --radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;
  --shadow-sm:rgba(15,15,15,.04) 0 1px 2px 0;--shadow-md:rgba(15,15,15,.08) 0 4px 12px 0;
  --shadow-lg:rgba(15,15,15,.20) 0 24px 48px -8px;--shadow-modal:rgba(15,15,15,.16) 0 16px 48px -8px;
  --space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:20px;--space-xl:24px;
  --space-2xl:32px;--space-3xl:40px;--space-section:64px;--space-section-lg:96px;
  --container:1280px;--gutter:20px;--topbar-h:66px;
  --font-heading:'Manrope',-apple-system,system-ui,'Segoe UI',Helvetica,sans-serif;
  --font-body:'Manrope',-apple-system,system-ui,'Segoe UI',Helvetica,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--font-body);font-size:16px;line-height:1.55;color:var(--color-text);background:var(--color-bg);overflow-x:hidden}
body.no-scroll{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--color-primary);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4,h5{font-family:var(--font-heading);font-weight:600;margin:0 0 var(--space-md);color:var(--color-text)}
h1{font-size:clamp(2rem,5vw,3rem);line-height:1.1;letter-spacing:-1px}
h2{font-size:clamp(1.6rem,3.4vw,2.25rem);line-height:1.2;letter-spacing:-.5px}
h3{font-size:1.375rem;line-height:1.3}
p{margin:0 0 var(--space-md)}
ul,ol{margin:0 0 var(--space-md);padding-left:1.15em}
table{border-collapse:collapse;width:100%}
:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-xs)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
main>section{padding:var(--space-section) 0;background:var(--color-bg)}
main>section.section-alt{background:var(--color-bg-alt)}
.section-title{max-width:22ch}
.section-subtitle{font-size:1.0625rem;line-height:1.55;color:var(--color-text-muted);max-width:70ch;margin:0 0 var(--space-2xl)}

/* ---------- buttons ---------- */
.btn-primary,.btn-secondary,.btn-ghost,.product-card__cta,.ask-toggle,.category-chips__all,.scene-block__cta{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);
  font-family:var(--font-heading);font-size:.875rem;font-weight:500;line-height:1.3;
  padding:12px 18px;min-height:44px;border-radius:var(--radius-md);border:1px solid transparent;
  cursor:pointer;text-decoration:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.btn-primary,.product-card__cta{background:var(--color-primary);color:var(--color-on-primary)}
.btn-primary:hover,.product-card__cta:hover{background:var(--color-primary-press);color:#fff;text-decoration:none}
.btn-secondary,.scene-block__cta{background:transparent;color:var(--color-text);border-color:var(--color-border-strong)}
.btn-secondary:hover,.scene-block__cta:hover{border-color:var(--color-text);text-decoration:none}
.btn-ghost{background:transparent;color:var(--color-text);border-color:var(--color-border-strong)}
.btn-ghost:hover{background:var(--color-bg-alt);text-decoration:none}
.hero .btn-ghost,.signup .btn-ghost,.railbar .btn-ghost,.consent .btn-ghost{color:var(--color-on-dark);border-color:rgba(255,255,255,.45)}
.hero .btn-ghost:hover,.signup .btn-ghost:hover,.railbar .btn-ghost:hover,.consent .btn-ghost:hover{background:rgba(255,255,255,.12)}
.btn-sm{padding:8px 14px;min-height:38px;font-size:.8125rem}
.btn-lg{padding:14px 24px;min-height:48px;font-size:.9375rem}

/* ---------- header ---------- */
.topbar{position:sticky;top:0;z-index:60;background:var(--color-bg);border-bottom:1px solid var(--color-border)}
.topbar.header--scrolled{box-shadow:var(--shadow-sm)}
.topbar__inner{display:flex;align-items:center;gap:var(--space-md);min-height:var(--topbar-h)}
.topbar__logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-heading);font-weight:800;font-size:1.125rem;letter-spacing:-.4px;color:var(--color-text)}
.topbar__logo:hover{text-decoration:none}
.topbar__logo-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-weight:800;font-size:1rem}
.topbar__nav{margin-left:auto}
.topbar__nav ul{display:flex;gap:var(--space-xl);list-style:none;margin:0;padding:0}
.topbar__nav a{font-size:.9375rem;font-weight:500;color:var(--color-text-muted)}
.topbar__nav a:hover,.topbar__nav a.is-active{color:var(--color-text);text-decoration:none}
.topbar__cta{margin-left:var(--space-md)}
.topbar__burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:0 10px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer}
.topbar__burger span{display:block;height:2px;background:var(--color-text);border-radius:2px}

/* ---------- hero ---------- */
.hero{position:relative;min-height:50vh;background:var(--color-dark);color:var(--color-on-dark);padding:var(--space-section-lg) 0 var(--space-2xl);overflow:hidden}
.hero__dots{position:absolute;inset:0;pointer-events:none}
.hero__dot{position:absolute;width:14px;height:14px;border-radius:50%;opacity:.85}
.hero__dot--1{top:12%;left:6%;background:var(--dot-pink)}
.hero__dot--2{top:26%;left:22%;background:var(--dot-yellow);width:10px;height:10px}
.hero__dot--3{top:68%;left:11%;background:var(--dot-teal)}
.hero__dot--4{top:16%;right:9%;background:var(--dot-orange);width:11px;height:11px}
.hero__dot--5{top:54%;right:5%;background:var(--dot-green)}
.hero__dot--6{bottom:14%;left:44%;background:var(--dot-purple);width:9px;height:9px}
.hero__dot--7{top:40%;left:37%;background:var(--dot-pink);width:8px;height:8px;opacity:.6}
.hero__inner{position:relative;display:grid;grid-template-columns:1fr;gap:var(--space-3xl);align-items:center}
.hero__title{color:var(--color-on-dark);font-size:clamp(2.1rem,5.4vw,4rem);line-height:1.05;letter-spacing:-2px;font-weight:600;margin-bottom:var(--space-lg)}
.hero__sub{font-size:1.125rem;line-height:1.5;color:var(--color-on-dark);opacity:.92;max-width:52ch;margin-bottom:var(--space-xl)}
.hero__marks{list-style:none;margin:0 0 var(--space-2xl);padding:0;display:flex;flex-wrap:wrap;gap:var(--space-sm)}
.hero__marks li{font-size:.8125rem;font-weight:600;letter-spacing:.2px;color:var(--color-on-dark);background:var(--color-dark-mid);border:1px solid rgba(255,255,255,.22);border-radius:var(--radius-sm);padding:6px 12px}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-sm)}
.hero__media{margin:0;border-radius:var(--radius-lg);overflow:hidden;background:#fff;box-shadow:var(--shadow-lg)}
.hero__media img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 45%}
.hero__stats{position:relative;list-style:none;margin:var(--space-3xl) 0 0;padding:var(--space-xl) 0 0;border-top:1px solid rgba(255,255,255,.18);display:grid;grid-template-columns:1fr;gap:var(--space-lg)}
.hero__stat{display:flex;flex-direction:column;gap:2px}
.hero__stat-num{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;letter-spacing:-.5px;color:var(--color-on-dark)}
.hero__stat-label{font-size:.8125rem;color:var(--color-on-dark-muted)}

/* ---------- benefits (why) ---------- */
.why-rows{display:flex;flex-direction:column;gap:var(--space-2xl)}
.why-row{display:grid;grid-template-columns:1fr;gap:var(--space-lg);align-items:center}
.why-row__panel{border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;align-items:center;justify-content:center}
.why-row__panel--mint{background:var(--tint-mint)}
.why-row__panel--rose{background:var(--tint-rose)}
.why-row__panel--yellow{background:var(--tint-yellow)}
.why-row__panel--sky{background:var(--tint-sky)}
.why-row__panel--lavender{background:var(--tint-lavender)}
.why-row__panel--peach{background:var(--tint-peach)}
.why-row__img{width:100%;aspect-ratio:4/3;object-fit:contain;background:#fff;border-radius:var(--radius-md);padding:var(--space-sm)}
.why-row__index{display:block;font-family:var(--font-heading);font-size:2.5rem;font-weight:800;line-height:1;letter-spacing:-2px;color:var(--color-primary);opacity:.32;margin-bottom:var(--space-xs)}
.why-row__title{margin-bottom:var(--space-xs);font-size:1.25rem}
.why-row__text{margin:0;color:var(--color-text-muted);max-width:56ch}

/* ---------- products ---------- */
.products-grid{display:grid;grid-template-columns:1fr;gap:var(--space-xl)}
.product-card{display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:box-shadow .15s ease}
.product-card:hover{box-shadow:var(--shadow-md)}
.product-card--unavailable{opacity:.9}
.product-card--unavailable .product-card__media img{filter:grayscale(.55)}
.product-card--unavailable .product-card__title{color:var(--color-text-soft)}
.product-card__media{display:block;background:#fff;border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-md)}
.product-card__media img{width:100%;aspect-ratio:1/1;object-fit:contain;background:#fff}
.product-card__title{font-size:1.0625rem;line-height:1.35;margin-bottom:var(--space-xs)}
.product-card__rating{font-size:.875rem;font-weight:600;color:var(--color-warn);margin-bottom:var(--space-sm)}
.product-card__reviews{color:var(--color-text-soft);font-weight:400}
.product-card__description{font-size:.9375rem;color:var(--color-text-muted);margin-bottom:var(--space-xs);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.product-card__description.is-expanded{display:block;-webkit-line-clamp:unset;overflow:visible}
.product-card__more{align-self:flex-start;background:none;border:0;padding:0 0 var(--space-md);color:var(--color-primary);font-family:var(--font-body);font-size:.875rem;font-weight:600;cursor:pointer}
.product-card__more:hover{text-decoration:underline}
.product-card__highlights,.product-card-bullets{list-style:none;margin:0 0 var(--space-lg);padding:0;display:flex;flex-direction:column;gap:var(--space-xs)}
.product-card__highlights li,.product-card-bullets li{position:relative;padding-left:18px;font-size:.875rem;color:var(--color-text-muted)}
.product-card__highlights li::before,.product-card-bullets li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:2px;background:var(--color-primary)}
.product-card__cta{margin-top:auto;width:100%}
.product-badge{display:inline-block;background:var(--tint-peach);color:var(--dot-orange);font-size:.8125rem;font-weight:600;border-radius:var(--radius-sm);padding:4px 10px;margin-bottom:var(--space-xs)}
.product-badge--restock{background:var(--tint-yellow);color:var(--color-text)}
.category-chips{display:flex;flex-wrap:wrap;gap:var(--space-xs);justify-content:center;margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--color-border)}
.category-chip{font-size:.875rem;font-weight:500;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:9px 14px}
.category-chip:hover{border-color:var(--color-primary);color:var(--color-primary);text-decoration:none}
.category-chips__all{margin-left:var(--space-xs)}

/* ---------- information gain (data table) ---------- */
.data-table__wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}
.data-table{min-width:640px;font-size:.9375rem}
.data-table thead th{text-align:left;font-family:var(--font-heading);font-size:.6875rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--color-text-soft);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--color-border)}
.data-table tbody tr{border-bottom:1px solid var(--color-border-soft)}
.data-table tbody tr:last-child{border-bottom:0}
.data-table td,.data-table tbody th{padding:var(--space-lg);vertical-align:top;text-align:left}
.data-table__num{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;letter-spacing:-.4px;color:var(--color-primary);white-space:nowrap;width:1%}
.data-table__claim p{margin:0 0 var(--space-xs);max-width:60ch}
.data-table__claim p:last-child{margin-bottom:0}
.data-table__gap{font-size:.875rem;color:var(--color-text-soft)}
.data-table__proof{width:1%;white-space:nowrap}
.data-table__proof span{display:inline-block;font-size:.75rem;font-weight:600;color:var(--color-text-muted);background:var(--tint-gray);border-radius:var(--radius-sm);padding:4px 9px;white-space:normal}

/* ---------- features (scene) ---------- */
.scene-blocks{display:flex;flex-direction:column;gap:var(--space-section)}
.scene-block{display:grid;grid-template-columns:1fr;gap:var(--space-xl);align-items:center}
.scene-block__media{margin:0;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);background:var(--color-surface)}
.scene-block__img{width:100%;aspect-ratio:3/2;object-fit:cover}
.scene-block__title{font-size:1.5rem;letter-spacing:-.3px}
.scene-block__text{color:var(--color-text-muted);max-width:60ch}
.scene-block__list{list-style:none;margin:0 0 var(--space-lg);padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}
.scene-block__list li{position:relative;padding-left:22px;color:var(--color-text-muted);font-size:.9375rem}
.scene-block__list li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;border-radius:2px;background:var(--tint-lavender);border:2px solid var(--color-primary)}

/* ---------- about (story) ---------- */
.story__grid{display:grid;grid-template-columns:1fr;gap:var(--space-2xl)}
.story__body p{color:var(--color-text-muted);max-width:66ch}
.story__lede{font-size:1.125rem;line-height:1.6;color:var(--color-text) !important;border-left:3px solid var(--color-primary);padding-left:var(--space-lg)}
.story__media{margin:0;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border)}
.story__img{width:100%;aspect-ratio:1/1;object-fit:cover}
.story__link{display:inline-block;font-weight:600}
.story-page,.reach-page,.legal{padding-top:var(--space-3xl)}
.page-back{display:inline-block;font-size:.875rem;font-weight:600;margin-bottom:var(--space-md)}
.page-back::before{content:"\2190";margin-right:6px}
.page-head__title{margin-bottom:var(--space-xl)}
.about-story p:first-of-type{margin-top:0}
.story-values__grid{display:grid;grid-template-columns:1fr;gap:var(--space-lg);margin-bottom:var(--space-2xl)}
.story-value{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl)}
.story-value__title{font-size:1.125rem;margin-bottom:var(--space-xs)}
.story-value__text{margin:0;color:var(--color-text-muted);font-size:.9375rem}
.story-stats{list-style:none;margin:0 0 var(--space-xl);padding:var(--space-xl) 0 0;border-top:1px solid var(--color-border);display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}
.story-stat{display:flex;flex-direction:column}
.story-stat__num{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;letter-spacing:-.5px;color:var(--color-primary)}
.story-stat__label{font-size:.8125rem;color:var(--color-text-soft)}
.story-page__cta{margin:0;font-weight:600}

/* ---------- how it works (path) ---------- */
.path-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:var(--space-xl);counter-reset:none}
.path-step{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl)}
.path-step__num{display:block;font-family:var(--font-heading);font-size:2.25rem;font-weight:800;line-height:1;letter-spacing:-2px;color:var(--color-primary);margin-bottom:var(--space-sm)}
.path-step__title{font-size:1.125rem;margin-bottom:var(--space-xs)}
.path-step__text{margin:0;font-size:.9375rem;color:var(--color-text-muted)}

/* ---------- reviews (voice) ---------- */
.voice-stream{display:flex;flex-direction:column;gap:var(--space-lg);max-width:820px}
.voice-quote{margin:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl)}
.voice-quote__stars{color:var(--color-warn);letter-spacing:2px;font-size:.9375rem;margin-bottom:var(--space-sm)}
.voice-quote__off{color:var(--color-border-strong)}
.voice-quote__text{margin:0 0 var(--space-md);border:0;padding:0}
.voice-quote__text p{margin:0;color:var(--color-text);font-size:1rem}
.voice-quote__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs) var(--space-sm);font-size:.8125rem;color:var(--color-text-soft)}
.voice-quote__name{font-weight:700;color:var(--color-text)}
.voice-quote__badge{background:var(--tint-mint);color:#146c26;border-radius:var(--radius-sm);padding:3px 8px;font-weight:600}
.voice-quote__item{color:var(--color-text-soft)}

/* ---------- what you get (arc) ---------- */
.arc-line{list-style:none;margin:0 0 var(--space-xl);padding:0;display:grid;grid-template-columns:1fr;gap:var(--space-lg)}
.arc-item{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-lg);padding:var(--space-xl)}
.arc-item__label{display:inline-block;font-family:var(--font-heading);font-size:.6875rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--color-primary);background:var(--tint-lavender);border-radius:var(--radius-sm);padding:4px 10px;margin-bottom:var(--space-sm)}
.arc-item__text{margin:0;color:var(--color-text-muted)}
.arc__cta{margin:0;font-weight:600;color:var(--color-text)}

/* ---------- who it's for (fit) ---------- */
.fit-grid{display:grid;grid-template-columns:1fr;gap:var(--space-lg);margin-bottom:var(--space-2xl)}
.fit-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl)}
.fit-card__title{font-size:1.125rem;margin-bottom:var(--space-xs)}
.fit-card__text{margin:0;color:var(--color-text-muted);font-size:.9375rem}
.fit-not{background:var(--tint-peach);border-radius:var(--radius-lg);padding:var(--space-xl)}
.fit-not__title{font-size:1.0625rem;margin-bottom:var(--space-sm)}
.fit-not__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}
.fit-not__list li{position:relative;padding-left:24px;color:#5a3413;font-size:.9375rem}
.fit-not__list li::before{content:"\00D7";position:absolute;left:4px;top:-1px;font-weight:700;color:var(--dot-orange)}

/* ---------- fears (risk accordion) ---------- */
.risk-list{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface);margin-bottom:var(--space-xl)}
.risk-item+.risk-item{border-top:1px solid var(--color-border-soft)}
.risk-item__head{margin:0;font-size:1rem}
.risk-item__q{display:flex;width:100%;align-items:center;justify-content:space-between;gap:var(--space-md);background:none;border:0;padding:var(--space-lg);text-align:left;cursor:pointer;font-family:var(--font-heading);font-size:1.0625rem;font-weight:600;color:var(--color-text)}
.risk-item__q:hover{background:var(--color-bg-alt)}
.risk-item__label{flex:1}
.risk-item__sign{position:relative;flex:0 0 18px;width:18px;height:18px}
.risk-item__sign::before,.risk-item__sign::after{content:"";position:absolute;left:0;top:8px;width:18px;height:2px;background:var(--color-primary);border-radius:2px;transition:transform .18s ease}
.risk-item__sign::after{transform:rotate(90deg)}
.risk-item__q[aria-expanded="true"] .risk-item__sign::after{transform:rotate(0deg)}
.risk-item__body{padding:0 var(--space-lg) var(--space-lg)}
.risk-item__body p{margin:0;color:var(--color-text-muted)}
.risk-item__stat{margin-top:var(--space-sm) !important;display:inline-block;font-size:.75rem;font-weight:600;color:var(--color-text-muted);background:var(--tint-gray);border-radius:var(--radius-sm);padding:4px 9px}
.risk__cta{margin:0;font-weight:600;color:var(--color-text)}

/* ---------- faq (ask) ---------- */
.ask-list,.ask-more{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface)}
.ask-more{margin-top:var(--space-md)}
.ask-item{border-bottom:1px solid var(--color-border-soft)}
.ask-item:last-child{border-bottom:0}
.ask-item>summary{cursor:pointer;list-style:none;padding:var(--space-lg);font-family:var(--font-heading);font-size:1.0625rem;font-weight:600;color:var(--color-text);position:relative;padding-right:52px}
.ask-item>summary::-webkit-details-marker{display:none}
.ask-item>summary:hover{background:var(--color-bg-alt)}
.ask-item>summary::after{content:"";position:absolute;right:var(--space-lg);top:calc(50% - 4px);width:9px;height:9px;border-right:2px solid var(--color-primary);border-bottom:2px solid var(--color-primary);transform:rotate(45deg);transition:transform .18s ease}
.ask-item[open]>summary::after{transform:rotate(-135deg);top:calc(50% - 2px)}
.ask-answer{padding:0 var(--space-lg) var(--space-lg)}
.ask-answer p{margin:0;color:var(--color-text-muted)}
.ask-toggle{margin-top:var(--space-lg);background:transparent;color:var(--color-text);border-color:var(--color-border-strong)}
.ask-toggle:hover{border-color:var(--color-text)}
.ask__close{margin:var(--space-xl) 0 0;font-weight:600;color:var(--color-text)}

/* ---------- gallery (shots) ---------- */
.shots-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}
.shots-item{margin:0;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);background:var(--color-surface)}
.shots-item__img{width:100%;aspect-ratio:1/1;object-fit:cover;cursor:zoom-in;transition:transform .25s ease}
.shots-item__img:hover{transform:scale(1.03)}
.shots-item__cap{padding:var(--space-sm) var(--space-md);font-size:.8125rem;color:var(--color-text-soft)}
.viewer{position:fixed;inset:0;z-index:120;background:rgba(7,15,36,.94);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-xl)}
.viewer__img{max-width:min(92vw,900px);max-height:76vh;object-fit:contain;border-radius:var(--radius-lg);background:#fff}
.viewer__cap{margin:0;color:#fff;font-size:.9375rem;text-align:center}
.viewer__close{position:absolute;top:16px;right:16px;width:44px;height:44px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}
.viewer__close:hover{background:rgba(255,255,255,.14)}

/* ---------- newsletter (signup) ---------- */
main>section.signup{background:var(--color-dark);color:var(--color-on-dark);padding:var(--space-section-lg) 0}
.signup__inner{max-width:640px;text-align:center}
.signup__title{color:var(--color-on-dark);max-width:none}
.signup__sub{color:var(--color-on-dark);opacity:.9;margin-left:auto;margin-right:auto}
.signup__form{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-sm)}
.signup__input{height:48px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;padding:0 var(--space-md);font-family:var(--font-body);font-size:1rem}
.signup__input::placeholder{color:rgba(255,255,255,.55)}
.signup__input:focus{outline:none;border-color:#fff;background:rgba(255,255,255,.14)}
.signup__note{margin:0;font-size:.8125rem;color:var(--color-on-dark-muted)}
.signup-message{margin:0 0 var(--space-sm);border-radius:var(--radius-sm);padding:10px 14px;font-size:.875rem;text-align:left}
.signup-message--error{color:#C0392B;background:#FDEDEC;border:1px solid #C0392B}

/* ---------- footer ---------- */
.baseboard{background:var(--color-dark-deep);color:var(--color-on-dark);padding:var(--space-section-lg) 0 var(--space-xl)}
.baseboard__grid{display:grid;grid-template-columns:1fr;gap:var(--space-2xl)}
.baseboard__col{min-width:0}
.baseboard__col--brand{max-width:38ch}
.baseboard__logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-heading);font-weight:800;font-size:1.125rem;color:#fff;margin-bottom:var(--space-sm)}
.baseboard__logo:hover{text-decoration:none}
.baseboard__tag{color:var(--color-on-dark-muted);font-size:.9375rem}
.baseboard__addr{font-style:normal;font-size:.875rem;line-height:1.7;color:var(--color-on-dark-muted);margin-bottom:var(--space-sm)}
.baseboard__addr a{color:var(--color-on-dark-muted)}
.baseboard__addr a:hover{color:#fff}
.baseboard__hours{font-size:.875rem;color:var(--color-on-dark-muted);margin:0}
.baseboard__title{font-family:var(--font-heading);font-size:.6875rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--color-on-dark-muted);margin-bottom:var(--space-md)}
.baseboard__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}
.baseboard__list a{color:#fff;font-size:.9375rem}
.baseboard__social{display:flex;flex-wrap:wrap;gap:var(--space-sm)}
.baseboard__social a{color:#fff;font-size:.875rem;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-md);padding:8px 14px}
.baseboard__social a:hover{background:rgba(255,255,255,.1);text-decoration:none}
.baseboard__languages,.footer__languages{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-2xl)}
.baseboard__languages:empty,.footer__languages:empty{display:none}
.baseboard__bottom{margin-top:var(--space-2xl);padding-top:var(--space-lg);border-top:1px solid rgba(255,255,255,.14)}
.baseboard__bottom p{font-size:.8125rem;color:var(--color-on-dark-muted);margin:0 0 var(--space-xs)}
.baseboard__bottom a{color:var(--color-on-dark-muted);text-decoration:underline}
.baseboard__copyright{font-weight:600}

/* ---------- cookie + sticky ---------- */
.consent{position:fixed;left:0;right:0;bottom:0;z-index:110;background:var(--color-dark);color:var(--color-on-dark);border-top:1px solid rgba(255,255,255,.16)}
.consent__inner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding-top:var(--space-sm);padding-bottom:var(--space-sm)}
.consent__text{margin:0;flex:1 1 260px;font-size:.8125rem;color:var(--color-on-dark)}
.consent__text a{color:#fff;text-decoration:underline}
.consent__actions{display:flex;gap:var(--space-xs)}
.railbar{position:fixed;left:0;right:0;bottom:0;z-index:100;background:rgba(10,21,48,.93);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid rgba(255,255,255,.16)}
.railbar__inner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding-top:var(--space-sm);padding-bottom:var(--space-sm)}
.railbar__text{margin:0;flex:1 1 220px;font-size:.8125rem;color:var(--color-on-dark)}
.railbar__cta{flex:0 0 auto}
.railbar__close{width:36px;height:36px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;font-size:1.25rem;line-height:1;cursor:pointer}
.railbar__close:hover{background:rgba(255,255,255,.14)}

/* ---------- contact + legal ---------- */
.reach-grid{display:grid;grid-template-columns:1fr;gap:var(--space-2xl)}
.reach-form{display:flex;flex-direction:column;gap:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl)}
.reach-field{display:flex;flex-direction:column;gap:6px}
.reach-field label{font-size:.875rem;font-weight:600;color:var(--color-text)}
.reach-field input,.reach-field textarea{width:100%;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-family:var(--font-body);font-size:1rem;color:var(--color-text);background:#fff}
.reach-field input{height:44px}
.reach-field input:focus,.reach-field textarea:focus{outline:none;border:2px solid var(--color-primary)}
.reach-form__msg{margin:0;border-radius:var(--radius-sm);padding:10px 14px;font-size:.875rem}
.reach-form__msg--error{color:#C0392B;background:#FDEDEC;border:1px solid #C0392B}
.reach-info{background:var(--tint-cream);border-radius:var(--radius-lg);padding:var(--space-xl);align-self:start}
.reach-info__title{font-size:1.125rem;margin-bottom:var(--space-md)}
.reach-info__item{padding-top:var(--space-md);border-top:1px solid rgba(0,0,0,.08)}
.reach-info__item:first-of-type{border-top:0;padding-top:0}
.reach-info__item p,.reach-info__item address{margin:0 0 var(--space-md);font-style:normal;font-size:.9375rem;color:var(--color-text-muted);line-height:1.6}
.reach-info__label{display:block;font-family:var(--font-heading);font-size:.6875rem;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--color-text-soft);margin-bottom:4px}
.legal__inner{max-width:80ch}
.legal__updated{font-size:.875rem;color:var(--color-text-soft)}
.legal__block{margin-bottom:var(--space-xl)}
.legal__heading{font-size:1.125rem;margin-bottom:var(--space-xs)}
.legal__block p{color:var(--color-text-muted)}

/* ---------- responsive ---------- */
@media (max-width:1023px){
  .topbar__nav{position:fixed;inset:var(--topbar-h) 0 auto 0;background:var(--color-bg);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-md);padding:var(--space-md) var(--gutter);display:none}
  .topbar__nav.is-open{display:block}
  .topbar__nav ul{flex-direction:column;gap:var(--space-xs)}
  .topbar__nav a{display:block;padding:10px 0;font-size:1rem}
  .topbar__burger{display:flex;margin-left:auto;order:3}
  .topbar__cta{order:2;margin-left:auto}
  .topbar__nav{order:4}
}
@media (min-width:480px){
  .signup__form{flex-direction:row}
  .signup__input{flex:1}
  .hero__stats{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:768px){
  :root{--gutter:32px}
  .products-grid,.shots-grid,.story-values__grid,.fit-grid,.path-steps{grid-template-columns:repeat(2,1fr)}
  .why-row{grid-template-columns:minmax(0,300px) 1fr;gap:var(--space-2xl)}
  .why-row--flip{grid-template-columns:1fr minmax(0,300px)}
  .why-row--flip .why-row__panel{order:2}
  .scene-block{grid-template-columns:repeat(2,1fr);gap:var(--space-2xl)}
  .scene-block--flip .scene-block__media{order:2}
  .story__grid{grid-template-columns:1.4fr 1fr;gap:var(--space-3xl);align-items:start}
  .reach-grid{grid-template-columns:1.25fr 1fr;gap:var(--space-2xl)}
  .arc-line{grid-template-columns:repeat(3,1fr)}
  .baseboard__grid{grid-template-columns:repeat(2,1fr)}
  .story-stats{grid-template-columns:repeat(4,1fr)}
}
@media (min-width:1024px){
  main>section{padding:var(--space-section-lg) 0}
  .hero__inner{grid-template-columns:1.05fr 1fr;gap:var(--space-3xl)}
  .products-grid,.shots-grid{grid-template-columns:repeat(3,1fr)}
  .story-values__grid,.fit-grid,.path-steps{grid-template-columns:repeat(4,1fr)}
  .baseboard__grid{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:var(--space-3xl)}
}
@media (min-width:1200px){
  .products-grid,.shots-grid{grid-template-columns:repeat(4,1fr)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition-duration:.01ms !important;animation-duration:.01ms !important}
}

/* ---------- section wrappers ---------- */
.hero__body{min-width:0}
.why{overflow:hidden}
.why-row__body{min-width:0}
.shelf{scroll-margin-top:var(--topbar-h)}
.data{scroll-margin-top:var(--topbar-h)}
.scene{scroll-margin-top:var(--topbar-h)}
.scene-block__body{min-width:0}
.story{scroll-margin-top:var(--topbar-h)}
.story-values{scroll-margin-top:var(--topbar-h)}
.path{scroll-margin-top:var(--topbar-h)}
.voice{scroll-margin-top:var(--topbar-h)}
.arc{scroll-margin-top:var(--topbar-h)}
.fit{scroll-margin-top:var(--topbar-h)}
.risk{scroll-margin-top:var(--topbar-h)}
.ask{scroll-margin-top:var(--topbar-h)}
.ask-question{display:block}
.shots{scroll-margin-top:var(--topbar-h)}

@media (max-width:767px){
  .hero__dots{display:none}
}
