/* Waitlist store layout. Colours/type come from tokens.css (Cosmo, docs/creative/tokens.css, copied as-is).
   No inline style or script anywhere (CSP script-src 'none'). */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/dm-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/dm-sans-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/dm-sans-latin-700-normal.woff2) format("woff2")}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--bg);color:var(--fg);font:400 var(--fs-body)/1.65 var(--sans);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-underline-offset:.2em}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
h1,h2,h3{font-family:var(--display);font-weight:var(--dw);line-height:1.12;text-wrap:balance;margin:0}
h2{font-size:var(--fs-h2);margin-bottom:1rem}
h3{font-size:var(--fs-h3);margin-bottom:.375rem}
p{margin:0 0 1rem}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1rem}
@media(min-width:40rem){.wrap{padding:0 2rem}}
.skip{position:absolute;left:1rem;top:-5rem;z-index:10;background:var(--fg);color:var(--bg);padding:.75rem 1rem;border-radius:var(--r)}
.skip:focus{top:1rem}
.muted{color:var(--muted)}
.small{font-size:var(--fs-small)}
/* unfilled slot: impossible to miss in a screenshot; remove the span once filled */
.slot{background:#fff3c4;color:#3d3000;padding:0 .25em;border-radius:3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.concept{background:#fff3c4;color:#3d3000;border-bottom:2px solid #8a6d00;padding:.625rem 0;font-size:var(--fs-small);font-weight:500}

/* hero on --dark */
.hero{background:var(--dark);color:var(--on-dark);padding:1.25rem 0 3rem}
@media(min-width:56rem){.hero{padding:1.5rem 0 5rem}}
.bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.5rem}
.brand{font-family:var(--display);font-size:1.75rem;font-weight:var(--dw);text-decoration:none;color:var(--on-dark)}
.bar a.cta-sm{color:var(--on-dark);font-size:var(--fs-small)}
.hero-grid{display:grid;gap:2rem}
@media(min-width:56rem){.hero-grid{grid-template-columns:1.15fr .85fr;gap:4rem;align-items:center}}
.tagline{font-family:var(--display);font-style:italic;font-size:1.375rem;color:var(--dark-accent);margin-bottom:.75rem}
.hero h1{font-size:var(--fs-hero);line-height:1;letter-spacing:-.01em;margin-bottom:1.25rem}
.lead{font-size:1.125rem;color:var(--on-dark-muted);max-width:34rem;margin-bottom:1.75rem}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.75rem 1.5rem;border:0;border-radius:var(--r);background:var(--btn-bg);color:var(--btn-fg);font:inherit;font-weight:var(--bw);text-decoration:none;cursor:pointer;touch-action:manipulation}
.btn:hover{filter:brightness(1.12)}
.hero .btn{background:var(--dark-accent);color:var(--dark)}
.hero :focus-visible{outline-color:var(--dark-accent)}
.expect{margin:1rem 0 0;font-size:var(--fs-small);color:var(--on-dark-muted)}
/* drawing slot (Cosmo line drawings; real photos only after the sample) */
.visual{margin:0;aspect-ratio:4/5;border-radius:var(--r);display:grid;place-items:center;background:color-mix(in srgb,var(--dark) 82%,var(--on-dark));color:var(--dark-accent)}
@media(max-width:55.99rem){.visual{aspect-ratio:4/3}}
.visual svg{width:72%;height:auto}

section{padding:var(--space-section) 0}
.alt{background:var(--surface)}
.usps{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;gap:1.75rem}
@media(min-width:48rem){.usps{grid-template-columns:repeat(3,1fr);gap:2.5rem}}
.usps li{border-top:1px solid var(--line);padding-top:1.25rem}
.usps p{color:var(--muted);margin:0}
.usp-note{border-top:1px solid var(--line);padding-top:1.25rem;margin-top:1.75rem}
.usp-note h3{margin-top:0}
.usp-note p{color:var(--muted);max-width:40rem}
.steps{padding-left:1.25rem;max-width:40rem}
.steps li{margin-bottom:.5rem}

/* products */
.products{display:grid;gap:1.5rem;margin-top:1.5rem}
@media(min-width:48rem){.products.two{grid-template-columns:1fr 1fr}}
.product{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:1.25rem 1.25rem 1.5rem}
.product .pic{aspect-ratio:4/3;display:grid;place-items:center;background:var(--surface);border-radius:var(--r);color:var(--accent);margin-bottom:1.25rem}
.alt .product .pic{background:var(--bg)}
.product .pic svg{width:66%;height:auto}
.price{font-family:var(--display);font-size:1.75rem;font-variant-numeric:tabular-nums;margin:.5rem 0 0}
.price small{display:block;font-family:var(--sans);font-size:var(--fs-small);color:var(--muted)}
.safety{border-left:3px solid var(--accent);padding:.25rem 0 .25rem 1rem;max-width:44rem}

/* waitlist */
.signup-grid{display:grid;gap:2rem}
@media(min-width:56rem){.signup-grid{grid-template-columns:.9fr 1.1fr;gap:4rem;align-items:start}}
.sheet{background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem}
.field{margin-bottom:1.25rem}
.field label,.legend{display:block;font-weight:var(--bw);margin-bottom:.375rem}
fieldset{border:0;padding:0;margin:0 0 1.25rem}
input[type=email]{width:100%;min-height:3rem;padding:.75rem .875rem;font:inherit;font-size:max(1rem,16px);color:var(--fg);background:#fff;border:1.5px solid var(--muted);border-radius:var(--r)}
.check{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;margin:.5rem 0}
.check input{width:1.375rem;height:1.375rem;margin:.2rem 0 0;accent-color:var(--fg)}
.check label{margin:0;cursor:pointer}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form .btn{width:100%}
@media(min-width:36rem){.form .btn{width:auto}}
.note{font-size:var(--fs-small);color:var(--muted);margin:1rem 0 0}
.status{margin:0 0 1.25rem;padding:.875rem 1rem;border-left:3px solid var(--accent);background:var(--bg);font-weight:var(--bw)}
.status:empty{display:none}

.faq .wrap{max-width:46rem}
details{border-top:1px solid var(--line)}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{display:flex;justify-content:space-between;gap:1rem;align-items:center;min-height:3.25rem;padding:.75rem 0;font-family:var(--display);font-size:1.25rem;cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:var(--sans);font-size:1.5rem;line-height:1;color:var(--accent)}
details[open] summary::after{content:"−"}
details p{color:var(--muted)}

/* text pages */
.top{background:var(--dark);padding:1rem 0}
.top .brand{font-size:1.5rem}
.doc{padding:2.5rem 0 4rem}
.doc .wrap{max-width:44rem}
.doc h1{font-size:clamp(2rem,6vw,2.75rem);margin-bottom:1rem}
.doc h2{font-size:1.5rem;margin:2rem 0 .5rem}
.doc ul{padding-left:1.25rem}
.details{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.375rem 1.25rem}
.details dt{color:var(--muted)}
.details dd{margin:0}

.foot{background:var(--dark);color:var(--on-dark-muted);padding:2.5rem 0;font-size:var(--fs-small)}
.foot a{color:var(--on-dark)}
.foot :focus-visible{outline-color:var(--dark-accent)}
.foot .slot{color:#3d3000}
.foot p{margin:0 0 .375rem;max-width:44rem}
.brand .logo{height:2.25rem;width:auto}
.top .brand .logo{height:1.875rem}

/* 3D illustrations (visual-system §8): turntable loop + still; reduced motion → still only. The label is burned in and repeated as text. */
.visual.media{aspect-ratio:1/1;display:block;background:none;position:relative}
.visual.media video,.visual.media img{width:100%;height:auto;border-radius:var(--r);display:block}
.visual.media .still{display:none}
@media(prefers-reduced-motion:reduce){.visual.media .loop{display:none}.visual.media .still{display:block}}
.visual.media figcaption,.pic.photo figcaption{font-size:var(--fs-small);margin-top:.5rem}
.visual.media figcaption{color:var(--on-dark-muted)}
.pic.photo{display:block;aspect-ratio:auto;background:none;margin:0 0 1.25rem}
.pic.photo img{width:100%;height:auto;border-radius:var(--r)}
.pic.photo figcaption{color:var(--muted)}
@media(max-width:55.99rem){.visual.media{aspect-ratio:1/1}}
.hero-grid>*,.products>*{min-width:0}   /* the 720 px video must not widen the grid track on phones */

/* 3D hero: model-viewer (transparent); reduced motion → the still instead; no JS → the <noscript> loop */
.visual.model{aspect-ratio:auto;display:block;background:none}
.visual.model model-viewer{display:block;width:100%;height:auto;aspect-ratio:1/1;background:transparent;--poster-color:transparent;--progress-bar-height:0}
.visual.model img{display:block;width:100%;height:auto}
.visual.model .rm-still{display:none}
@media(prefers-reduced-motion:reduce){.visual.model model-viewer{display:none}.visual.model .rm-still{display:block}}
.visual.model figcaption{font-size:var(--fs-small);margin-top:.5rem;color:var(--on-dark-muted)}

/* privacy table (#110): scrolls inside its own box on a phone */
.tbl{overflow-x:auto;margin:1rem 0}.tbl table{border-collapse:collapse;width:100%;font-size:var(--fs-small)}.tbl th,.tbl td{border:1px solid var(--line,#d8d2c4);padding:.4rem .5rem;text-align:left;vertical-align:top}
/* market test #1: the 4:5 render as a plain image in the hero, and the price label readable on the dark hero */
.visual.photo{aspect-ratio:auto;display:block;background:none}
.visual.photo img{display:block;width:100%;height:auto;border-radius:var(--r)}
.visual.photo figcaption{font-size:var(--fs-small);margin-top:.5rem;color:var(--on-dark-muted)}
.hero .price small,.hero .status-line{color:var(--on-dark-muted)}
.hero .status-line{color:var(--on-dark)}
/* test checkout + tracking page (#128; shared templates in sites/_store/public) */
.btn.wide{width:100%}
.row{display:grid;gap:0 1rem}
@media(min-width:36rem){.row{grid-template-columns:10rem 1fr}}
.box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.25rem;margin:1.5rem 0}
.total{display:flex;justify-content:space-between;font-weight:700;border-top:1px solid var(--line);padding-top:.75rem;margin-top:.75rem}
.error{border-left:3px solid #b42318;background:#fdecea;color:#5c1410;padding:.75rem 1rem;border-radius:4px}
.error:empty{display:none}
.test{background:#fff3c4;color:#3d3000;border-bottom:2px solid #8a6d00;padding:.75rem 0;font-weight:500}
.notice{border-left:3px solid var(--accent);background:var(--surface);padding:.75rem 1rem;border-radius:4px}
.timeline{list-style:none;padding:0;margin:1.5rem 0;display:grid;gap:.75rem}
.timeline li{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border:1px solid var(--line);border-radius:var(--r)}
.timeline .done{color:var(--muted)}.timeline .done .label::before{content:"✓ "}
.timeline .now{border-color:var(--accent);font-weight:600}.timeline .todo{color:var(--muted);border-style:dashed}
.timeline .when{font-weight:400;color:var(--muted)}
