/* Sleigh Bags v2, "Case file #1225". Tokens live in :root only. Mobile first; breakpoint 48rem. */
/* Self-hosted fonts (SIL OFL, latin subset from Google Fonts): Bebas Neue = headlines like a police report,
   Special Elite = typewriter stamps and labels, Courier Prime = readable case-file body text.
   All are preloaded; the text faces use font-display:optional so a late font never shifts the layout (it shows from cache next visit). */
@font-face{font-family:"Bebas Neue";src:url(assets/fonts/bebas-neue-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Special Elite";src:url(assets/fonts/special-elite-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:optional}
@font-face{font-family:"Courier Prime";src:url(assets/fonts/courier-prime-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:optional}
@font-face{font-family:"Courier Prime";src:url(assets/fonts/courier-prime-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:optional}
:root{
  --ink:#161616; --ink-2:#222222; --ink-3:#2e2e2e; --ink-rgb:22 22 22;
  --snow:#FBF8F3; --muted:#CFCAC2;
  --red:#B3121F; --red-hi:#C8222F; --green:#1E6B3A; --green-hi:#25834A; --tape:#F2C94C;
  --off:#3a3a3a; --off-text:#D6D2CA;
  --focus:#F2C94C;
  --font:"Courier Prime",ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --mono:"Special Elite","Courier Prime",ui-monospace,Consolas,monospace;
  --display:"Bebas Neue",Impact,"Arial Narrow",sans-serif;
  --s1:.5rem; --s2:1rem; --s3:1.5rem; --s4:2.5rem; --s5:4rem; --s6:6rem;
  --radius:.6rem; --tap:2.75rem; --wrap:68rem; --bar-h:3.5rem;
  --t-fast:.15s; --t-med:.4s; --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--bar-h);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--snow);font:1rem/1.55 var(--font);overflow-x:hidden}
img,video,canvas{display:block;max-width:100%}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:var(--snow);text-underline-offset:.2em}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:.25rem}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--s2)}
main:focus{outline:none}
h2{font-family:var(--display);font-size:clamp(2.3rem,9vw,3.6rem);line-height:1;font-weight:400;letter-spacing:.02em;margin-bottom:var(--s2);text-wrap:balance}
.lead{font-size:1.15rem;color:var(--muted);max-width:40rem}
.small{font-size:.9rem;color:var(--muted)}
section{padding-block:var(--s5)}

/* skip + bar */
.skip{position:absolute;left:var(--s1);top:-4rem;z-index:100;background:var(--tape);color:var(--ink);padding:.75rem 1rem;font-weight:700;border-radius:var(--radius)}
.skip:focus{top:var(--s1)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s1);min-height:var(--bar-h);padding:.4rem var(--s2);background:var(--ink);border-bottom:1px solid var(--ink-3);z-index:50}
.wordmark{text-decoration:none;min-height:var(--tap);display:inline-flex;align-items:center}
.bar-actions{display:flex;align-items:center;gap:.4rem}
.bar .btn,.wordmark{white-space:nowrap}
.bar .btn{font-size:.8rem;padding:.3rem .65rem}
.bar{padding-inline:.6rem}

.wordmark img{width:auto;height:2.6rem}
.hero-logo{display:none}
.hero-logo img{width:100%;height:auto}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:var(--tap);padding:.6rem 1.25rem;border:2px solid transparent;border-radius:var(--radius);font:inherit;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--snow);text-decoration:none;cursor:pointer;transition:background-color var(--t-fast),transform var(--t-fast)}
.btn:active{transform:translateY(1px)}
.btn-red{background:var(--red)}.btn-red:hover{background:var(--red-hi)}
.btn-green{background:var(--green)}.btn-green:hover{background:var(--green-hi)}
.btn-ghost{background:transparent;border-color:var(--muted);font-size:.9rem;font-weight:700;padding:.4rem .8rem}
.btn-ghost:hover{background:var(--ink-3)}
.btn-ghost[aria-pressed="true"]{background:var(--ink-3);border-color:var(--snow)}
.btn:disabled,a[href*="{{"],a[aria-disabled="true"]{background:var(--off);color:var(--off-text);border-color:transparent;pointer-events:none;cursor:not-allowed}
[data-src*="{{"]{background:var(--off);color:var(--off-text);border-color:transparent;pointer-events:none;cursor:not-allowed}
[data-src*="{{"] .lbl,[data-src*="{{"] .ico{display:none}
[data-src*="{{"]::after{content:"Music coming soon"}
/* Unfilled tokens: labels swap in pure CSS (no JS, no layout shift) */
a[href*="{{"] .if-on,a:not([href*="{{"]) .if-off{display:none}
.notify[href*="{{"]{display:none}
.buy-small{display:none}

/* price */
.buyrow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s1) var(--s2);margin-top:var(--s3)}
.price{font-family:var(--display);font-size:2.4rem;font-weight:400;letter-spacing:.02em}
.price-soon{font-size:1.1rem;font-weight:700;color:var(--muted)}
.price[data-price*="{{"]{display:none}
.price:not([data-price*="{{"]) + .price-soon{display:none}

/* hero: phones stack the full 16:9 scene above the copy; 48rem+ puts the copy over the video */
.hero{position:relative;overflow:hidden;isolation:isolate}
.hero-media{position:relative;aspect-ratio:16/9}
.hero-scrim{display:none;position:absolute;inset:0}
.hero-media{z-index:-3;background:var(--ink)}
.hero-media picture,.hero-media img,.hero-media video,.hero-media canvas{position:absolute;inset:0;width:100%;height:100%}
.hero-media img,.hero-media video{object-fit:cover;object-position:center}
.hero-media video{opacity:0;transition:opacity 1s linear}
.hero-media video.on{opacity:1}
.hero-media canvas{pointer-events:none}
.hero-scrim{z-index:-1;background:linear-gradient(to top,rgb(var(--ink-rgb) / .96) 0%,rgb(var(--ink-rgb) / .88) 45%,rgb(var(--ink-rgb) / .35) 100%)}
.hero-copy{padding-block:var(--s2) var(--s4)}
.kicker{font-family:var(--mono);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tape);margin-bottom:var(--s1)}
h1{font-family:var(--display);font-size:clamp(2.7rem,12vw,6.4rem);line-height:.92;font-weight:400;letter-spacing:.01em;text-wrap:balance}
.h1-a,.h1-b{display:block}
.h1-b{margin-top:.12em;font-size:.48em;letter-spacing:.04em;line-height:1}
.h1-aside{margin-top:.5rem;font-family:var(--mono);font-size:.78rem;color:var(--muted);letter-spacing:.02em}
.sub{font-size:1.05rem;line-height:1.5;max-width:32rem;margin-top:var(--s2)}
.hero-copy .small{margin-top:var(--s2);color:var(--snow)}

/* opening sequence (decorative; fixed + transforms only, so no layout shift; clicks pass through) */
.intro{position:fixed;inset:0;z-index:60;display:grid;place-items:center;pointer-events:none;overflow:hidden}
.intro[hidden]{display:none}
.intro-shade{position:absolute;inset:0;background:rgb(var(--ink-rgb) / .94)}
.intro-tape{--th:clamp(2.4rem,8vw,3.6rem);position:absolute;top:50%;left:-20vw;width:140vw;height:var(--th);margin-top:calc(var(--th) / -2);display:flex;align-items:center;overflow:hidden;white-space:nowrap;background:var(--tape);color:var(--ink);font-family:var(--display);font-size:calc(var(--th) * .58);letter-spacing:.08em;text-transform:uppercase;box-shadow:0 .4rem 1.2rem rgb(0 0 0 / .55)}
.intro-stamp{position:relative;padding:.35rem 1rem .25rem;border:.3rem solid var(--red-hi);border-radius:.4rem;background:rgb(var(--ink-rgb) / .85);color:var(--red-hi);font-family:var(--mono);font-size:clamp(2.2rem,10vw,4.4rem);line-height:1.05;letter-spacing:.06em;text-align:center;text-transform:uppercase;transform:rotate(-8deg)}

/* tape (decorative) */
.tape{height:1.4rem;background:repeating-linear-gradient(-45deg,var(--tape) 0 .9rem,var(--ink) .9rem 1.8rem)}

/* evidence */
.evidence{background:var(--ink-2);overflow:hidden}
.cards{display:grid;gap:var(--s3);padding:var(--s3) var(--s2) 0;max-width:var(--wrap);margin-inline:auto}
.card{background:var(--snow);color:var(--ink);border-radius:var(--radius);padding:.6rem .6rem .8rem;box-shadow:0 .6rem 1.4rem rgb(0 0 0 / .4)}
.card:nth-child(odd){transform:rotate(-.6deg)}.card:nth-child(even){transform:rotate(.6deg)}
.frame{overflow:hidden;border-radius:.3rem}
.frame img{width:100%;height:auto}
.card figcaption{margin-top:.6rem;display:flex;flex-wrap:wrap;gap:.3rem .6rem;align-items:center}
.tag{font-family:var(--mono);font-size:.85rem;font-weight:400;letter-spacing:.06em;text-transform:uppercase;background:var(--red);color:var(--snow);padding:.2rem .5rem;border-radius:.2rem}

/* why */
.board{position:relative;margin-top:var(--s3);padding:var(--s4) var(--s2) var(--s3);background:var(--ink-2);border:1px solid var(--ink-3);border-radius:var(--radius);overflow:hidden}
.tape-sweep{position:absolute;left:-5%;right:-5%;top:1rem;transform:rotate(-2deg);transform-origin:left center;z-index:2;pointer-events:none}
.board-cards{display:grid;gap:var(--s3)}
.note{position:relative;background:var(--snow);color:var(--ink);padding:1.4rem 1.1rem 1.1rem;border-radius:.3rem;box-shadow:0 .5rem 1rem rgb(0 0 0 / .4)}
.note:nth-child(odd){transform:rotate(-1deg)}.note:nth-child(even){transform:rotate(1deg)}
.note::before{content:"";position:absolute;top:.45rem;left:50%;width:.8rem;height:.8rem;margin-left:-.4rem;border-radius:50%;background:var(--red)}
.note h3{font-family:var(--display);font-size:1.7rem;font-weight:400;letter-spacing:.02em;line-height:1.05;margin-bottom:.4rem}

/* how */
.steps-wrap{position:relative;display:flex;gap:var(--s3);margin-top:var(--s3)}
.zip-track{position:relative;width:1.5rem;flex:none;background:repeating-linear-gradient(to bottom,var(--ink-3) 0 .35rem,transparent .35rem .7rem);border-radius:.2rem}
.zip-fill{position:absolute;inset:0;background:repeating-linear-gradient(to bottom,var(--snow) 0 .35rem,transparent .35rem .7rem);transform-origin:top;border-radius:.2rem}
.zip-pull{position:absolute;left:50%;bottom:0;width:1.6rem;height:2.4rem;margin-left:-.8rem;background:var(--green);border:2px solid var(--snow);border-radius:.4rem .4rem 1rem 1rem}
.motion .zip-pull{top:0;bottom:auto}
.steps{display:grid;gap:var(--s4);flex:1}
.steps li{display:flex;gap:var(--s2);align-items:center;min-height:5rem}
.num{flex:none;display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:var(--red);color:var(--snow);font-family:var(--display);font-weight:400;font-size:1.8rem;padding-top:.15rem}
.steps p{font-family:var(--display);font-size:clamp(1.7rem,6vw,2.2rem);font-weight:400;letter-spacing:.02em;line-height:1.05}

/* footage */
.footage{background:var(--ink-2)}
.footage-grid{display:grid;gap:var(--s3);align-items:center}
.video-box{max-width:22.5rem;width:100%;margin-inline:auto}
.video-box video{width:100%;height:auto;aspect-ratio:9/16;background:var(--ink);border-radius:var(--radius)}
.desc{margin-top:var(--s2);max-width:34rem}

/* notes + faq */
.specs{display:grid;gap:0;margin-bottom:var(--s5);border-top:1px solid var(--ink-3)}
.specs div{display:grid;gap:.15rem;padding:.8rem 0;border-bottom:1px solid var(--ink-3)}
.specs dt{font-family:var(--mono);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tape)}
.faq{display:grid;gap:var(--s1);margin-top:var(--s2)}
details{background:var(--ink-2);border:1px solid var(--ink-3);border-radius:var(--radius)}
summary{display:flex;justify-content:space-between;align-items:center;gap:var(--s2);min-height:var(--tap);padding:.7rem 1rem;font-family:var(--mono);font-weight:400;font-size:1.05rem;cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:1.5rem;line-height:1;color:var(--tape)}
details[open] summary::after{content:"\2212"}
details p{padding:0 1rem 1rem;color:var(--muted)}

/* waitlist.html: interrogation room */
.room{position:relative;overflow:hidden;isolation:isolate;padding-block:var(--s4) var(--s5)}
.lamp{position:absolute;left:calc(var(--s2) + 13vw);top:-6rem;z-index:-1;width:46rem;height:46rem;margin-left:-23rem;background:radial-gradient(circle 23rem at 50% 30%,rgb(242 201 76 / .2),rgb(242 201 76 / .06) 45%,transparent 100%);transform-origin:50% 0;pointer-events:none}
@media (min-width:48rem){.lamp{left:calc(max(0px,(100% - var(--wrap)) / 2) + var(--s4) + 5rem)}}
.room-head{display:flex;align-items:center;gap:var(--s1);margin-block:var(--s1) var(--s2)}
.room h1{margin:0}
.lamp-vid{position:relative;flex:none;width:clamp(6rem,26vw,10rem);aspect-ratio:1;margin-top:-1rem;-webkit-mask-image:radial-gradient(circle closest-side at 50% 50%,#000 62%,transparent 100%);mask-image:radial-gradient(circle closest-side at 50% 50%,#000 62%,transparent 100%)}
.lamp-vid img,.lamp-vid video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lamp-vid video{opacity:0}
.lamp-vid video.on{opacity:1}
/* Glow follows the clip: on at ~1.5 s, drops out at ~1.7 s, back on for good at ~3 s */
@keyframes glowon{0%,28%{opacity:0}30%{opacity:.8}34%,58%{opacity:0}62%,100%{opacity:1}}
.statement{display:grid;gap:var(--s3);max-width:36rem;margin-top:var(--s4);padding:var(--s3) var(--s2) var(--s2);background:var(--snow);color:var(--ink);border-radius:.3rem;box-shadow:0 .8rem 2rem rgb(0 0 0 / .5);transform:rotate(-.5deg)}
.statement-head{font-family:var(--mono);font-size:1.1rem;letter-spacing:.12em;text-transform:uppercase;border-bottom:2px solid var(--ink);padding-bottom:.4rem}
.q{display:grid;gap:.5rem}
.q label{font-weight:700;font-size:1.05rem;line-height:1.35}
.q-tag{font-family:var(--mono);color:var(--red)}
.q input{width:100%;min-height:var(--tap);padding:.5rem .2rem;border:0;border-bottom:2px dashed var(--ink);background:transparent;color:var(--ink);font:inherit;font-size:1.1rem;border-radius:0}
.q input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.statement .btn{justify-self:start}
.statement .btn:disabled{background:var(--off);color:var(--off-text)}
.fine{font-size:.85rem;color:#4A4A4A}
.form-error{font-weight:700;color:var(--red)}
.form-error a{color:var(--red)}
.taken{position:relative;margin-top:var(--s4);max-width:36rem}
.taken:focus{outline:none}
.taken-stamp{display:inline-block;margin-bottom:var(--s3);padding:.35rem 1rem .25rem;border:.3rem solid var(--red-hi);border-radius:.4rem;color:var(--red-hi);font-family:var(--mono);font-size:clamp(2rem,9vw,3.4rem);line-height:1.05;text-align:center;text-transform:uppercase;transform:rotate(-8deg)}
.taken .btn{margin-top:var(--s3)}
.lamp-playing .lamp{animation:glowon 5s linear both}
/* Wide screens: the lamp hangs big in the empty right-hand side, with the glow centred on it */
@media (min-width:72rem){
  .room .wrap{position:relative}
  .room .lead{max-width:34rem}
  .lamp-vid{position:absolute;top:-1rem;right:var(--s4);width:24rem;margin:0}
  .lamp{left:auto;right:calc(max(0px,(100% - var(--wrap)) / 2) + var(--s4) + 12rem - 23rem);margin-left:0;top:-4rem;width:46rem;height:46rem}
}

/* footer */
.foot{position:relative;padding:var(--s5) 0 var(--s6);border-top:1px solid var(--ink-3);overflow:hidden}
.foot p{margin-bottom:var(--s1)}
.ship{font-size:.95rem;color:var(--muted)}
.lead-2{margin-top:var(--s1)}
.maker{display:grid;justify-items:center;gap:var(--s2);margin-bottom:var(--s4);padding-bottom:var(--s4);border-bottom:1px solid var(--ink-3);text-align:center}
.maker-kicker{font-family:var(--mono);font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tape)}
.maker-logo{display:block;border-radius:var(--radius)}
.maker-logo img{width:clamp(17rem,90vw,45rem);height:auto}
.maker-line{max-width:38rem}
.maker-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s2)}
.maker-badges{align-items:center;column-gap:var(--s3);row-gap:var(--s2)}
.badge{width:auto;height:clamp(3.75rem,14vw,5.5rem)}
.badge-sba{height:clamp(4.1rem,15.3vw,6rem)}
.maker-phone a{display:inline-flex;align-items:center;min-height:var(--tap);font-family:var(--display);font-size:clamp(2rem,8vw,2.8rem);letter-spacing:.06em;text-decoration:none}
.maker-phone a:hover{color:var(--tape)}
.drift{position:absolute;left:-5%;right:-5%;bottom:-2rem;height:3.5rem;background:var(--snow);border-radius:50% 50% 0 0;transform-origin:bottom;pointer-events:none}

/* Lenis (copied from lenis.css so no extra request) */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth iframe{pointer-events:none}

@media (min-width:48rem){
  .wrap{padding-inline:var(--s4)}
  .bar{position:sticky;top:0;padding-inline:var(--s4)}
  .bar .btn{font-size:.9rem;padding:.4rem 1rem}
  .buy-small{display:inline-flex}
  .hero-logo{display:block;width:clamp(16rem,22vw,24rem);margin-bottom:var(--s1)}
  .hero{display:flex;align-items:flex-end;min-height:calc(100vh - var(--bar-h))}
  .hero-media{position:absolute;inset:0;aspect-ratio:auto}
  .hero-scrim{display:block}
  .hero-scrim{background:linear-gradient(to right,rgb(var(--ink-rgb) / .92) 0%,rgb(var(--ink-rgb) / .75) 45%,rgb(var(--ink-rgb) / .1) 100%)}
  .hero-copy{padding-block:var(--s4) var(--s5)}
  .cards{grid-template-columns:repeat(5,1fr);align-items:start;padding-inline:var(--s4)}
  .frame{height:clamp(11rem,34vh,22rem)}
  .frame img{height:100%;object-fit:contain}
  .card-scene .frame img{object-fit:cover}
  .card-exb .frame img{object-position:66% center}
  .card-exc .frame img{object-position:51% 37%}
  .card figcaption{font-size:.9rem}
  .board-cards{grid-template-columns:repeat(4,1fr)}
  .footage-grid{grid-template-columns:1.2fr 1fr}
  .video-box{margin-inline:0 auto}
  .specs{grid-template-columns:1fr 1fr;column-gap:var(--s4)}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  #snow,#hero-video{display:none}
}
