/* comp-07-defined — tokens + layout. Spec: DEFINED-DISTILLATION.md §1-§7 (desktop), §M (mobile). */
:root{
  --font-d: "Neue Haas Grotesk", "Helvetica Now", Inter, "Helvetica Neue", Arial, sans-serif; /* DECISION SLOT: Mirage-class face */
  --section-heading-size:clamp(35px,3.5vw,50px);
  color-scheme:dark;
  --page:#000; --page-raised:#050505;
  --ink:#fff; --mut:rgba(255,255,255,.6); --mut7:rgba(255,255,255,.7);
  --hair:rgba(255,255,255,.18); --ghost-b:rgba(255,255,255,.32);
  --cta-sky:#a8dcff; --cta-sky-hover:#c4e9ff; --cta-ink:#071722;
  --solid:#fff; --solid-inverse:#000;
  --hero-field:radial-gradient(ellipse 46% 56% at 50% 48%,rgba(0,0,0,.99) 0 36%,rgba(0,0,0,.92) 58%,rgba(0,0,0,.18) 78%,rgba(0,0,0,0) 100%);
  --scrub-off:rgba(255,255,255,.25); --chip-bg:rgba(255,255,255,.2); --chip-pending:rgba(255,255,255,.12);
  --chip-ink:#fff; --stat-border:rgba(255,255,255,.5); --footer-scrim:rgba(0,0,0,.48);
  --readability-fill:rgba(0,0,0,.86); --readability-shadow:rgba(0,0,0,.72);
  --m:30px; --gut:20px;
}
html[data-theme="light"]{
  color-scheme:light;
  --page:#fff; --page-raised:#f4f4f1;
  --ink:#0b0b0b; --mut:rgba(11,11,11,.64); --mut7:rgba(11,11,11,.72);
  --hair:rgba(11,11,11,.18); --ghost-b:rgba(11,11,11,.36);
  --cta-sky:#0b0b0b; --cta-sky-hover:#2a2a2a; --cta-ink:#fff;
  --solid:#0b0b0b; --solid-inverse:#fff;
  --hero-field:radial-gradient(ellipse 46% 56% at 50% 48%,rgba(255,255,255,.99) 0 36%,rgba(255,255,255,.94) 58%,rgba(255,255,255,.35) 78%,rgba(255,255,255,0) 100%);
  --scrub-off:rgba(11,11,11,.24); --chip-bg:rgba(255,255,255,.82); --chip-pending:rgba(255,255,255,.68);
  --chip-ink:#0b0b0b; --stat-border:rgba(11,11,11,.5); --footer-scrim:rgba(255,255,255,.5);
  --readability-fill:rgba(255,255,255,.92); --readability-shadow:rgba(255,255,255,.86);
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ background:var(--page); }
body{ background:var(--page); color:var(--ink); font-family:var(--font-d); font-weight:500;
  font-size:16px; line-height:1.4; -webkit-font-smoothing:antialiased; }
body,.slab,.menu,.footer-mark-stage{ transition:background-color .22s ease,color .22s ease; }
::selection{ background:var(--solid); color:var(--solid-inverse); }
h1,h2,h3,p{ font-weight:500; }
a{ color:inherit; text-decoration:none; }
canvas{ display:block; }
.skip-link{ position:fixed; top:12px; left:12px; z-index:120; padding:12px 16px; background:var(--solid); color:var(--solid-inverse);
  transform:translateY(-160%); transition:transform .2s; }
.skip-link:focus{ transform:translateY(0); }
.eyebrow{ font-size:16px; line-height:.95; color:var(--mut); text-align:center; }
.head{ font-size:var(--section-heading-size); line-height:.95; }
.jumbo{ font-size:110px; line-height:1; }
.body{ font-size:16px; line-height:1.4; }
.ghost{ display:inline-flex; align-items:center; justify-content:center; min-width:178px; height:54px;
  padding:16px 20px; border:1px solid var(--ghost-b); background:transparent; color:var(--ink); font-size:15px;
  font-family:var(--font-d); font-weight:500; cursor:pointer; transition:border-color .25s; }
.ghost:hover{ border-color:var(--ink); }
.ghost:focus-visible, a:focus-visible, button:focus-visible{ outline:1.5px solid var(--ink); outline-offset:3px; }
.hero-cta{ min-width:160px; border-color:var(--cta-sky); background:var(--cta-sky); color:var(--cta-ink);
  transition:background-color .2s, border-color .2s; }
.hero-cta:hover{ border-color:var(--cta-sky-hover); background:var(--cta-sky-hover); }
.hero-cta:focus-visible{ outline-color:var(--cta-sky); }

/* Defined-style rail: transparent over media, absent on descent, restored on ascent. */
.nav{ position:fixed; inset:0 0 auto 0; z-index:100; min-height:51px; background:transparent; opacity:1; transform:translateY(0);
  transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .18s ease,background-color .2s; will-change:transform,opacity; }
.nav.is-hidden{ opacity:0; pointer-events:none; transform:translateY(-150px); }
.nav.is-menu-open{ opacity:1; pointer-events:auto; transform:translateY(0); }
.nav-inner{ width:min(100%,1920px); min-height:51px; margin:0 auto; padding:0 30px; display:grid;
  grid-template-columns:minmax(144px,1fr) auto minmax(52px,1fr); align-items:center; }
.nav .logo{ grid-column:1; justify-self:start; font-size:34px; line-height:.8; letter-spacing:-.02em; }
.nav .links{ grid-column:2; display:flex; align-items:center; gap:clamp(12px,1.8vw,28px); font-size:16px; }
.nav .links a{ white-space:nowrap; transition:opacity .2s; }
.nav .links a:hover{ opacity:.6; }
.nav-actions{ grid-column:3; justify-self:end; display:flex; align-items:center; }
html[data-theme="dark"] .nav .logo,
html[data-theme="dark"] .nav .links a,
html[data-theme="dark"] .menu-btn{ mix-blend-mode:difference; }
.theme-toggle{ width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
  border:1px solid var(--ghost-b); background:var(--page); color:var(--ink); cursor:pointer;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease; }
/* Keep the live theme control clear of Studio's top-right Motion handle. */
body.qz-studio-editing .nav-actions > .theme-toggle{ margin-right:72px; }
.theme-toggle:hover{ border-color:var(--ink); transform:rotate(8deg); }
.theme-toggle:active{ transform:scale(.96); }
.theme-toggle-label{ display:none; font-size:14px; }
.theme-icon{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.theme-icon-moon{ display:none; }
html[data-theme="light"] .theme-icon-sun{ display:none; }
html[data-theme="light"] .theme-icon-moon{ display:block; }
html[data-theme="light"] .nav{ background:transparent; border-bottom:0; }
html[data-theme="light"] .menu-btn{ color:rgba(11,11,11,.62); }
.menu-btn{ display:none; align-items:center; justify-content:center; width:52px; height:62px; padding:0;
  color:rgba(255,255,255,.62); background:none; border:0; cursor:pointer; }
.menu-btn:focus-visible{ outline:2px solid #d7ae63; outline-offset:-2px; }
.menu-icon{ display:block; }
.nav.is-menu-open .menu-btn{ color:var(--ink); mix-blend-mode:normal; }
.menu{ position:fixed; inset:0; z-index:90; background:var(--page); display:none; flex-direction:column;
  overflow-y:auto; overscroll-behavior:contain; padding:99px 15px 40px; }
.menu.open{ display:flex; }
.menu a{ flex:0 0 auto; min-height:80px; display:flex; align-items:center; border-top:1px solid var(--hair);
  font-size:32px; line-height:1; }
.menu .ghost{ width:100%; min-height:54px; height:auto; margin-top:40px; padding:14px 20px; font-size:15px; text-align:center; }

/* Collapse when the actual Quantize labels no longer clear the reference-sized logo. */
@media (max-width:800px){
  .nav{ min-height:70px; }
  .nav-inner{ min-height:70px; padding:0 0 0 15px; grid-template-columns:1fr 52px; }
  .nav .logo{ grid-column:1; grid-row:1; justify-self:start; }
  .nav .links{ display:none; }
  .nav-actions{ grid-column:2; grid-row:1; }
  .nav-actions > .theme-toggle{ display:none; }
  .menu-btn{ display:flex; }
  .theme-toggle-mobile{ display:flex; width:100%; height:54px; margin:24px 0 0; padding:0 18px;
    justify-content:space-between; border-color:var(--ghost-b); }
  .theme-toggle-mobile:hover{ transform:none; }
  .theme-toggle-mobile .theme-toggle-label{ display:block; }
}

/* hero + quantizer sticky assembly */
.hero{ height:3600px; position:relative; }
.hero .sticky{ position:sticky; top:0; height:100vh; height:100dvh; overflow:hidden; }
.hero .media-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero canvas{ position:absolute; inset:0; width:100%; height:100%; }
/* Chowder conveyor: video layer must stay a visible DOM element (Chrome power-pauses
   occluded video) and the blob canvas above it must be pointer-events:none for the
   same occlusion-tracker reason — do not remove either. */
.chowder{ position:absolute; inset:0; }
.chowder video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.chowder canvas{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.hero-scrim{ position:absolute; inset:0; z-index:3;
  background:var(--hero-field);
  opacity:0; pointer-events:none; }
#heroCanvas{ z-index:2; pointer-events:none; }
.slab{ position:absolute; right:20px; bottom:20px; width:974px; max-width:calc(100% - 60px); height:385px;
  background:var(--page); padding:30px; display:flex; flex-direction:column; justify-content:space-between; z-index:5; }
.slab h1{ font-size:50px; line-height:.95; max-width:914px; }
.stmt-wrap{ position:absolute; inset:0; z-index:4; display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; }
.stmt{ font-size:50px; line-height:.95; text-align:center; max-width:520px; }
.stmt .w{ color:var(--scrub-off); transition:color .25s ease; }
.stmt .w.on{ color:var(--ink); }

/* sections */
section{ position:relative; }
.wave{ padding:160px var(--m) 120px; text-align:center; }
.wave .scrub{ font-size:50px; line-height:.95; max-width:820px; margin:26px auto 0; }
.scrub .w{ color:var(--scrub-off); transition:color .15s linear; }
.scrub .w.on{ color:var(--ink); }

.cards{ padding:0 var(--m); display:grid; grid-template-columns:1fr 1fr; gap:148px var(--gut); max-width:1600px; margin:0 auto; }
.card{ position:relative; }
.card .frame{ position:relative; aspect-ratio:680/859; background:var(--page-raised); overflow:hidden; }
.card canvas{ position:absolute; inset:0; width:100%; height:100%; }
.card .chips{ position:absolute; top:20px; left:20px; right:20px; display:flex; flex-wrap:wrap; gap:8px; z-index:3; }
.chip{ height:34px; padding:10px 14px; display:inline-flex; align-items:center; border-radius:20px;
  background:var(--chip-bg); color:var(--chip-ink); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  font-size:14px; line-height:1; white-space:nowrap; }
.card .cap{ margin-top:20px; font-size:16px; }
.card.pending .frame{ opacity:.45; }
.chip.pending-chip{ background:var(--chip-pending); color:var(--chip-ink); opacity:.72; }
/* Live-video card (peptides): white commercial footage in both themes, so its
   overlay ink is fixed to the light palette rather than theme tokens. The frame
   is a size container — overlay type and chips scale with the card (Defined
   proportions: wordmark ≈7% of card width, chips ≈2%), never fixed px. The px
   values before each cqw line are fallbacks for non-container browsers. */
.card-live .frame{ container-type:inline-size; }
.card .card-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.card .card-name{ position:absolute; inset:0; z-index:2; display:flex; align-items:center; justify-content:center;
  font-size:clamp(26px,4.6vw,46px); font-size:7cqw; font-weight:600; letter-spacing:.06em; color:#fff;
  text-shadow:0 1px 2px rgba(11,11,11,.35), 0 4px 26px rgba(11,11,11,.38); pointer-events:none; }
.card-live .chips{ top:20px; left:20px; right:20px; top:2.9cqw; left:2.9cqw; right:2.9cqw;
  flex-direction:column; align-items:flex-start; gap:1.2cqw; }
.card-live .chips-row{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; gap:1.2cqw; }
.card-live .chip{ height:auto; padding:10px 14px; padding:1.4cqw 2cqw; font-size:14px; font-size:max(11px,2cqw);
  border-radius:999px; background:rgba(11,11,11,.5); color:#fff; }
.card-live .chips-label{ font-size:14px; font-size:max(11px,2cqw); font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:#0b0b0b; white-space:nowrap; }

.jumbo-block{ min-height:860px; padding:200px var(--m); text-align:center; isolation:isolate; overflow:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center; }
.jumbo-block .jumbo-visual{ position:absolute; z-index:0; top:50%; left:50%; width:min(1120px,88vw); height:auto;
  max-width:none; opacity:.36; filter:blur(.8px) saturate(.62) contrast(.9); transform:translate(-50%,-50%); scale:1;
  object-fit:contain; object-position:50% 50%;
  -webkit-mask-image:radial-gradient(ellipse 72% 66% at center,#000 28%,rgba(0,0,0,.74) 58%,transparent 100%);
  mask-image:radial-gradient(ellipse 72% 66% at center,#000 28%,rgba(0,0,0,.74) 58%,transparent 100%);
  pointer-events:none; }
.jumbo-block .jumbo-readability{ position:absolute; z-index:1; top:50%; left:50%; width:min(1040px,90vw); height:470px;
  border-radius:48%; background:var(--readability-fill); box-shadow:0 0 90px 44px var(--readability-shadow);
  opacity:.82; filter:blur(22px); transform:translate(-50%,-50%); scale:1; pointer-events:none; }
.jumbo-block .jumbo-content{ position:relative; z-index:2; width:min(100%,960px);
  display:flex; flex-direction:column; align-items:center; }
.jumbo-block .jumbo{ font-size:clamp(64px,7.65vw,110px); letter-spacing:-.045em; white-space:nowrap; }
.jumbo-block .cap{ margin-top:16px; max-width:880px; text-wrap:balance; }
.jumbo-block .scope{ margin-top:10px; color:var(--mut); font-size:14px; }
.jumbo-block .ghost{ margin-top:56px; }

.founding{ padding:120px var(--m); }
.founding .intro{ text-align:center; max-width:560px; margin:0 auto 120px; }
.founding .scrub{ font-size:var(--section-heading-size); line-height:.95; margin-top:24px; }
.slabs{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gut); }
.statslab{ border-top:1px solid var(--stat-border); min-height:390px; padding:24px 0 0;
  display:flex; flex-direction:column; justify-content:space-between; }
.statslab .stat{ font-size:50px; line-height:.95; }
.statslab .lab{ color:var(--mut); font-size:16px; padding-bottom:8px; max-width:290px; }
.founders-reserved{ display:none; }
.founding .cta-row{ text-align:center; margin-top:100px; }


.structure{ padding:160px var(--m); }
.structure .head{ max-width:520px; margin:0 auto 120px; text-align:center; }
.struct-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gut); }
.struct-card h3{ font-size:22px; line-height:1; margin-bottom:16px; }
.struct-card p{ color:var(--mut); font-size:16px; }
.structure .cta-row{ text-align:center; margin-top:110px; }

.states{ padding:120px 0 100px; text-align:center; }
.motif-550{ width:550px; height:500px; margin:0 auto 60px; position:relative; }
.motif-550.sq{ height:550px; }
.motif-550 canvas{ position:absolute; inset:0; width:100%; height:100%; }
.marquee{ overflow:hidden; margin-top:70px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee .row{ display:flex; gap:44px; width:max-content; animation:mq 60s linear infinite; padding:10px 0; }
.marquee .row.r2{ animation-duration:75s; animation-direction:reverse; }
.marquee span{ font-size:18px; color:var(--mut); letter-spacing:.08em; }
@keyframes mq{ to{ transform:translateX(-50%);} }

.pricing{ padding:140px var(--m) 160px; text-align:center; }
.pricing .scrub{ font-size:var(--section-heading-size); line-height:.95; max-width:900px; margin:26px auto 0; }
.pricing .motif-550{ margin:90px auto 70px; }
.pricing .sub{ color:var(--mut); max-width:560px; margin:0 auto; }
.pricing .proof{ margin-top:140px; }
.pricing .proof-h{ font-size:var(--section-heading-size); line-height:.95; font-weight:500; letter-spacing:-.02em;
  max-width:900px; margin-inline:auto; text-wrap:balance; }
.pricing .proof-shot{ position:relative; display:block; margin:48px auto 0; width:min(100%,640px); max-width:none; scale:1;
  border:1px solid var(--ghost-b); overflow:hidden; }
.pricing .proof-img{ display:block; width:100%; height:auto; transition:opacity .35s ease, transform .35s ease; }
.pricing .proof-img-light{ display:none; }
html[data-theme="light"] .pricing .proof-img-light{ display:block; }
html[data-theme="light"] .pricing .proof-img-dark{ display:none; }
.pricing .proof-cta{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .3s ease; font-size:24px; font-weight:600; color:var(--ink);
  background:var(--footer-scrim); backdrop-filter:blur(14px) saturate(1.1); -webkit-backdrop-filter:blur(14px) saturate(1.1); }
.pricing .proof-shot:hover .proof-img, .pricing .proof-shot:focus-visible .proof-img{ opacity:.45; transform:scale(1.015); }
.pricing .proof-shot:hover .proof-cta, .pricing .proof-shot:focus-visible .proof-cta{ opacity:1; }
.pricing .proof .scope{ margin-top:18px; color:var(--mut); font-size:14px; }
.pricing .ghost{ margin-top:56px; }

.path{ padding:140px var(--m); }
.path .rowhead{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:90px; }
.path .head{ max-width:500px; }
.tiles{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--gut); }
.tile .glyph{ position:relative; aspect-ratio:330/260; margin-bottom:26px; }
.tile .glyph canvas{ position:absolute; inset:0; width:100%; height:100%; }
.tile h3{ font-size:22px; line-height:1; margin-bottom:14px; }
.tile p{ color:var(--mut); font-size:16px; }

.cta2{ min-height:1080px; position:relative; overflow:hidden; padding:140px 0; }
.cta2 > canvas{ position:absolute; inset:0; width:100%; height:100%; }
.cta2 .inner{ position:relative; z-index:3; max-width:964px; margin:0 auto; padding:0 var(--m); }
.cta2 .head{ margin-bottom:90px; }
.cta2 .cols{ display:grid; grid-template-columns:412px 412px; gap:50px; }
.cta2 .col .eyebrow{ text-align:left; color:var(--mut7); margin-bottom:56px; }
.cta2 .col h3{ font-size:22px; line-height:1; margin-bottom:14px; }
.cta2 .col p{ margin-bottom:36px; max-width:340px; }
.cta2 .sub{ margin-top:70px; color:var(--mut); font-size:14px; }
.cta-pager{ display:none; }

footer{ padding:80px var(--m) 40px; overflow:hidden; }
.f-grid{ display:grid; grid-template-columns:1fr 1fr 300px; gap:40px; max-width:1100px; margin:0 auto 120px; }
.f-grid a{ display:block; font-size:16px; height:22px; margin-bottom:26px; }
.f-grid a:hover{ opacity:.6; }
.f-note{ color:var(--mut); font-size:16px; }
.footer-mark-stage{ --pixel-top:0%; --pixel-right:0%; --pixel-bottom:0%; --pixel-left:0%;
  position:relative; isolation:isolate; display:grid; place-items:center; aspect-ratio:8/3;
  margin-inline:calc(var(--m) * -1); overflow:hidden; background:var(--page); }
.footer-mark-stage::after{ content:""; position:absolute; inset:0; z-index:1; background:var(--footer-scrim); }
.footer-textures{ position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:contain; object-position:center;
  pointer-events:none; user-select:none; }
.footer-textures--dots{ opacity:0;
  clip-path:inset(var(--pixel-top) var(--pixel-right) var(--pixel-bottom) var(--pixel-left));
  transition:opacity .12s ease-out; will-change:clip-path,opacity; }
.footer-mark-stage[data-pixel-cell] .footer-textures--dots{ opacity:1; }
.wordmark{ position:relative; z-index:2; color:var(--ink); font-size:max(120px,22vw); line-height:.8;
  letter-spacing:-.03em; text-align:center; white-space:nowrap; user-select:none; }
.f-legal{ display:flex; justify-content:space-between; gap:24px; color:var(--mut); font-size:14px;
  margin-top:50px; flex-wrap:wrap; }

/* ---- MOBILE GRAMMAR (§M) — 1:1 ---- */
@media (max-width:768px){
  :root{ --m:15px; }
  .footer-textures--dots{ display:none; }
  .hero{ height:3376px; }
  .slab{ left:15px; right:15px; top:auto; bottom:15px; width:auto; max-width:none; height:338px; padding:25px; }
  .slab h1{ font-size:35px; line-height:.95; }
  .stmt{ font-size:35px; max-width:360px; }
  .head,.wave .scrub,.founding .scrub,.pricing .scrub{ font-size:35px; }
  .jumbo-block{ min-height:720px; padding:150px var(--m); }
  .jumbo-block .jumbo-visual{ width:900px; opacity:.3; filter:blur(.8px) saturate(.58) contrast(.86); }
  .jumbo-block .jumbo-readability{ width:112vw; height:440px; opacity:.86; filter:blur(18px); }
  .jumbo-block .jumbo{ font-size:clamp(54px,17vw,74px); }
  .pricing .proof-h{ font-size:35px; }
  .pricing .proof-shot{ width:min(100%,330px); margin-top:40px; }
  .cards{ grid-template-columns:1fr; gap:110px; }
  .card .frame{ aspect-ratio:360/455; }
  .slabs,.struct-grid{ grid-template-columns:1fr; gap:44px; }
  .statslab{ min-height:0; padding-bottom:24px; gap:28px; }
  .statslab .stat{ font-size:35px; }
  .motif-550{ width:360px; height:360px; }
  .path .rowhead{ flex-direction:column; align-items:flex-start; gap:32px; }
  .tiles{ display:flex; overflow-x:auto; gap:var(--gut); scroll-snap-type:x mandatory; padding-bottom:10px;
    scrollbar-width:none; }
  .tiles::-webkit-scrollbar{ display:none; }
  .tile{ flex:0 0 343px; scroll-snap-align:start; }
  .tile .glyph{ aspect-ratio:343/300; }
  .cta2{ min-height:1200px; padding:100px 0; }
  .cta2 .inner{ padding:0 45px; }
  .cta2 .head{ margin-bottom:70px; }
  .cta2 .cols{ display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:30px; margin:0 -45px;
    padding:0 45px; scrollbar-width:none; }
  .cta2 .cols::-webkit-scrollbar{ display:none; }
  .cta2 .col{ flex:0 0 calc(100vw - 90px); scroll-snap-align:center; }
  .cta-pager{ display:flex; flex-direction:column; gap:10px; position:absolute; left:15px; top:50%; z-index:4; }
  .cta-pager i{ width:14px; height:14px; border-radius:50%; border:1.5px solid var(--ink); background:transparent; }
  .cta-pager i.on{ background:var(--ink); }
  .f-grid{ grid-template-columns:1fr 1fr; margin-bottom:80px; }
  .f-note{ grid-column:1 / -1; }
  .wordmark{ font-size:26vw; }
}
@media (prefers-reduced-motion:reduce){
  .nav{ transition:none; }
  .footer-textures--dots{ display:none; transition:none; }
  .marquee .row{ animation:none; }
  .scrub .w{ color:var(--ink) !important; }
}
@media (hover:none){
  .footer-textures--dots{ display:none; }
}

/* ---- STUDIO STATIC PAGE COMPOSITION (qz-static-preview=1 only) ----
   The Full Page overview iframe is as tall as the document, so no rule in
   this state may depend on viewport-HEIGHT units or on sticky/fixed runtime
   behavior — 100dvh would resolve to the whole document and let hero layers
   escape their section. Scroll-scrubbed passages resolve to one intentional
   frame: the initial hero composition at its authored device viewport
   (desktop 1440×900, mobile 390×844), fully revealed copy elsewhere. */
html.qz-static-page-preview .hero{ height:900px; }
html.qz-static-page-preview .hero .sticky{ position:relative; height:100%; }
html.qz-static-page-preview .nav{ position:absolute; }
html.qz-static-page-preview .marquee .row{ animation:none; }
html.qz-static-page-preview .scrub .w{ color:var(--ink); }
html.qz-static-page-preview .footer-textures--dots{ display:none; }
@media (max-width:768px){
  html.qz-static-page-preview .hero{ height:844px; }
}
