/* ============================================================
   RAW PULSE — Design System
   Font: Michroma (brand) + IBM Plex Mono (HUD / long-form)
   Palette: black dominant, white, cold gradient accents only
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Michroma&family=IBM+Plex+Mono:wght@300;400;500&display=swap');

/* ---------- TOKENS ---------- */
:root{
  /* surfaces */
  --black:#000000;
  --bg:#000000;
  --surface:#08080A;
  --surface-2:#0D0D10;
  --surface-3:#141418;

  /* text */
  --text:#FFFFFF;
  --text-2:#A6A6B0;      /* 7.4:1 on black — body */
  --text-3:#8B8B96;      /* 5.4:1 on black — meta  */

  /* lines */
  --line:rgba(255,255,255,.09);
  --line-2:rgba(255,255,255,.16);
  --line-3:rgba(255,255,255,.30);

  /* Electric cyan runs the interface; phosphor green is the signal.
     Chassis cyan + green trace is the canonical scope pairing, and the two
     sit close enough on the wheel to read as one system rather than a clash. */
  --c1:#4CE0FF;   /* electric cyan */
  --c2:#0BA5CC;   /* deep cyan     */
  --c3:#A8F2FF;   /* pale cyan     */
  --signal:#39FF88;  /* P1 phosphor green — live signal only */
  --grad:linear-gradient(100deg,var(--c3) 0%,var(--c1) 48%,var(--c2) 100%);
  --grad-soft:linear-gradient(100deg,rgba(168,242,255,.9),rgba(76,224,255,.9),rgba(11,165,204,.9));

  --danger:#FF4D4D;
  --ok:#4CE0A0;

  /* type */
  --f-display:'Michroma',"Arial Black",sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  /* spacing scale (density 4/10) */
  --s-1:8px; --s-2:16px; --s-3:24px; --s-4:32px;
  --s-5:48px; --s-6:64px; --s-7:96px; --s-8:128px;

  --maxw:1440px;
  --gut:clamp(20px,4vw,64px);
  --nav-h:74px;

  --e-out:cubic-bezier(.16,1,.3,1);
  --e-io:cubic-bezier(.76,0,.24,1);

  --z-grain:9000; --z-cursor:9500; --z-nav:800; --z-curtain:9800; --z-loader:9900;
  /* Klaviyo pop-ups land around 10000+; ours stay below on purpose */
}

/* ---------- RESET ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--f-mono);
  font-size:15px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.is-loading{overflow:hidden;height:100vh}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none}
::selection{background:var(--text);color:var(--black)}

/* focus — WCAG 2.2 */
:focus-visible{outline:2px solid #fff;outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:-9999px;top:0;z-index:9999;background:#fff;color:#000;padding:12px 20px;font-family:var(--f-display);font-size:11px}
.skip:focus{left:12px;top:12px}

/* ---------- TYPE ---------- */
.d1,.d2,.d3,h1,h2,h3,h4{font-family:var(--f-display);font-weight:400;line-height:.95;letter-spacing:-.02em}
.d1{font-size:clamp(2.6rem,10.5vw,9.5rem)}
.d2{font-size:clamp(2rem,6.2vw,5.2rem);line-height:1}
.d3{font-size:clamp(1.4rem,3.2vw,2.6rem);line-height:1.08}
.h4{font-family:var(--f-display);font-size:clamp(.95rem,1.4vw,1.15rem);letter-spacing:.01em}

.lbl{font-family:var(--f-display);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--text-3)}
.meta{font-family:var(--f-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}
.body{color:var(--text-2);font-size:14.5px;line-height:1.75;max-width:62ch}
.grad-text{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- LAYOUT ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.sec{position:relative;padding-block:clamp(72px,11vw,150px)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap;margin-bottom:var(--s-6)}

/* technical grid backdrop */
.gridbg{position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.032) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.032) 1px,transparent 1px);
  background-size:88px 88px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 30%,#000 20%,transparent 82%);
  mask-image:radial-gradient(120% 90% at 50% 30%,#000 20%,transparent 82%);
}
/* corner brackets */
.brk{position:relative}
.brk::before,.brk::after{content:"";position:absolute;width:16px;height:16px;border:1px solid var(--line-2);pointer-events:none}
.brk::before{top:0;left:0;border-right:0;border-bottom:0}
.brk::after{bottom:0;right:0;border-left:0;border-top:0}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-2%)}100%{transform:translate(3%,1%)}}

/* ---------- CUSTOM CURSOR ---------- */
.cur,.cur-r{position:fixed;top:0;left:0;z-index:var(--z-cursor);pointer-events:none;border-radius:50%;mix-blend-mode:difference}
.cur{width:6px;height:6px;background:#fff;margin:-3px 0 0 -3px}
.cur-r{width:34px;height:34px;border:1px solid rgba(255,255,255,.55);margin:-17px 0 0 -17px;transition:width .28s var(--e-out),height .28s var(--e-out),margin .28s var(--e-out),border-color .28s,opacity .2s}
.cur-r.is-hot{width:64px;height:64px;margin:-32px 0 0 -32px;border-color:#fff}
.cur-r.is-hot::after{content:attr(data-label);position:absolute;inset:0;display:grid;place-items:center;font-family:var(--f-display);font-size:8px;letter-spacing:.15em;color:#fff}
@media (hover:none),(pointer:coarse){.cur,.cur-r{display:none}}

/* ---------- PRELOADER ---------- */
.loader{position:fixed;inset:0;z-index:var(--z-loader);background:#000;display:grid;place-items:center}
.loader__in{display:flex;flex-direction:column;align-items:center;gap:26px}
@keyframes draw{to{stroke-dashoffset:0}}
.loader__bar{width:min(280px,50vw);height:1px;background:rgba(255,255,255,.16);overflow:hidden}
.loader__bar i{display:block;height:100%;width:0;background:var(--grad)}
.loader__num{font-family:var(--f-display);font-size:11px;letter-spacing:.3em;color:var(--text-3)}
.loader__txt{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;color:var(--text-3);text-transform:uppercase}

/* page-transition curtain */
.curtain{position:fixed;inset:0;z-index:var(--z-curtain);background:#000;transform:scaleY(0);transform-origin:bottom;pointer-events:none}

/* ---------- NAV ---------- */
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:var(--z-nav);display:flex;align-items:center;
  border-bottom:1px solid transparent;transition:background .4s,border-color .4s,backdrop-filter .4s}
.nav.is-stuck{background:rgba(0,0,0,.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom-color:var(--line)}
.nav__in{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);width:100%}
.brand{display:flex;align-items:center;gap:12px}
.brand__mark{width:40px;color:#fff;transition:transform .5s var(--e-out)}
.brand:hover .brand__mark{transform:scaleX(1.12)}
.brand__txt{font-family:var(--f-display);font-size:12px;letter-spacing:.16em}
.nav__links{display:flex;gap:clamp(18px,2.6vw,40px)}
.nav__link{font-family:var(--f-display);font-size:11px;letter-spacing:.14em;color:var(--text-2);position:relative;padding-block:6px;transition:color .3s}
.nav__link:hover,.nav__link[aria-current="page"]{color:#fff}
.nav__link::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--grad);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--e-out)}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nav__side{display:flex;align-items:center;gap:14px}
.icobtn{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--line);color:var(--text-2);transition:.3s}
.icobtn:hover{border-color:var(--line-3);color:#fff;background:rgba(255,255,255,.04)}
.burger{display:none;width:38px;height:38px;place-items:center;border:1px solid var(--line)}
.burger span{display:block;width:16px;height:1px;background:#fff;position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:16px;height:1px;background:#fff;transition:.3s}
.burger span::before{top:-5px}.burger span::after{top:5px}
.nav.is-open .burger span{background:transparent}
.nav.is-open .burger span::before{top:0;transform:rotate(45deg)}
.nav.is-open .burger span::after{top:0;transform:rotate(-45deg)}

/* mobile menu */
.mmenu{position:fixed;inset:var(--nav-h) 0 0;z-index:790;background:rgba(0,0,0,.97);backdrop-filter:blur(20px);
  display:flex;flex-direction:column;justify-content:center;gap:6px;padding:var(--gut);
  clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--e-io);visibility:hidden}
.mmenu.is-open{clip-path:inset(0 0 0 0);visibility:visible}
.mmenu a{font-family:var(--f-display);font-size:clamp(1.6rem,7vw,2.6rem);padding-block:14px;border-bottom:1px solid var(--line)}

/* ---------- MARQUEE ---------- */
.marq{position:relative;overflow:hidden;border-block:1px solid var(--line);background:#000;padding-block:11px}
.marq__t{display:flex;gap:0;width:max-content;animation:marq 38s linear infinite}
.marq:hover .marq__t{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
.marq__t span{font-family:var(--f-display);font-size:10.5px;letter-spacing:.24em;color:var(--text-3);padding-inline:26px;white-space:nowrap;display:flex;align-items:center;gap:26px}
.marq__t span::after{content:"";width:4px;height:4px;background:var(--c1);border-radius:50%}

/* ---------- BUTTONS ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;
  font-family:var(--f-display);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  padding:19px 34px;border:1px solid var(--line-3);overflow:hidden;isolation:isolate;
  transition:color .4s var(--e-out),border-color .4s;cursor:pointer;will-change:transform}
.btn::before{content:"";position:absolute;inset:0;background:#fff;transform:translateY(101%);transition:transform .55s var(--e-out);z-index:-1}
.btn:hover{color:#000;border-color:#fff}
.btn:hover::before{transform:translateY(0)}
.btn svg{width:15px;height:15px;transition:transform .45s var(--e-out)}
.btn:hover svg{transform:translateX(4px)}
.btn--fill{background:#fff;color:#000;border-color:#fff}
.btn--fill::before{background:#000}
.btn--fill:hover{color:#fff;border-color:#fff}
.btn--sm{padding:13px 22px;font-size:10px}
.btn--ghost{border-color:var(--line)}

/* pill tags */
.pills{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-2);border-radius:999px;
  padding:9px 18px;font-family:var(--f-display);font-size:9.5px;letter-spacing:.18em;color:var(--text-2);transition:.35s}
.pill:hover{color:#fff;border-color:var(--line-3);background:rgba(255,255,255,.04)}
.pill--live{border-color:rgba(76,224,255,.42)}
.dot{width:5px;height:5px;border-radius:50%;background:var(--c3);box-shadow:0 0 10px var(--c3);animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding-top:calc(var(--nav-h) + 40px);padding-bottom:56px;overflow:hidden}
.hero__glow{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:min(1100px,110vw);aspect-ratio:1;
  background:radial-gradient(circle,rgba(76,224,255,.14),rgba(11,165,204,.06) 38%,transparent 66%);
  filter:blur(30px);pointer-events:none;animation:breathe 9s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.75;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}}
.hero__in{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;gap:clamp(22px,3vw,36px)}
.hero__hud{display:flex;align-items:center;gap:14px;font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;color:var(--text-3);text-transform:uppercase}
.hero__hud b{color:var(--c3);font-weight:400}
.hero__title{display:flex;align-items:baseline;justify-content:center;gap:clamp(10px,2vw,34px);flex-wrap:wrap}
.hero__title .slash{color:transparent;background:var(--grad);-webkit-background-clip:text;background-clip:text;font-size:clamp(2.6rem,10.5vw,9.5rem);font-family:var(--f-display);line-height:.95}
.ch{display:inline-block;will-change:transform,opacity}
.hero__sub{font-family:var(--f-mono);font-size:13px;letter-spacing:.05em;color:var(--text-2)}
.hero__sub .cur-blink{display:inline-block;width:8px;height:14px;background:var(--c3);vertical-align:-2px;animation:pulse 1.1s steps(1) infinite}
.hero__scroll{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:2}
.hero__scroll .lbl{font-size:9px}
.hero__scroll i{display:block;width:1px;height:52px;background:linear-gradient(#fff,transparent);animation:drop 2.2s ease-in-out infinite}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.strip{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:14px;margin-top:auto}

/* ---------- FEATURED PRODUCT ---------- */
.feat{display:grid;grid-template-columns:1.05fr 1fr;gap:0;border:1px solid var(--line);background:var(--surface)}
.feat__media{position:relative;padding:clamp(22px,3vw,44px);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:22px}
.cover{position:relative;aspect-ratio:1;overflow:hidden;background:#0a0a0a;transform-style:preserve-3d;will-change:transform}
.cover img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.08);transition:filter .7s var(--e-out),transform 1.1s var(--e-out)}
.cover:hover img{transform:scale(1.045)}
.cover__scan{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(255,255,255,.035) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}
.cover__beam{position:absolute;left:0;right:0;height:120px;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(76,224,255,.14),transparent);animation:beam 5.5s linear infinite}
@keyframes beam{0%{top:-20%}100%{top:110%}}
.cover__tag{position:absolute;left:14px;top:14px;display:flex;gap:8px}
.tag{font-family:var(--f-display);font-size:8.5px;letter-spacing:.16em;padding:7px 11px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.6);backdrop-filter:blur(6px)}
.tag--new{background:#fff;color:#000;border-color:#fff}
.feat__info{padding:clamp(22px,3vw,44px);display:flex;flex-direction:column;gap:22px}
.price{display:flex;align-items:baseline;gap:12px}
.price__now{font-family:var(--f-display);font-size:clamp(1.5rem,3vw,2.2rem)}
.price__old{font-family:var(--f-mono);font-size:15px;color:var(--text-3);text-decoration:line-through}
.spec{display:grid;grid-template-columns:1fr auto;gap:0;border-top:1px solid var(--line)}
.spec div{display:contents}
.spec dt,.spec dd{padding:13px 0;border-bottom:1px solid var(--line);font-family:var(--f-mono);font-size:12px;letter-spacing:.1em}
.spec dt{color:var(--text-3);text-transform:uppercase}
.spec dd{text-align:right;color:var(--text)}
.dots{display:flex;gap:6px}
.dots i{width:9px;height:9px;border-radius:50%;background:#2a2a30}
.dots i:nth-child(1){background:#3a3a42}
.seek{height:2px;background:rgba(255,255,255,.12);position:relative;cursor:pointer;margin:0 18px 18px}
.seek i{position:absolute;inset:0 auto 0 0;width:0;background:var(--grad)}
.seek::after{content:"";position:absolute;inset:-9px 0}
.trk[aria-current="true"].is-playing .eq{opacity:1}
.trk[aria-current="true"].is-playing .eq i{animation:eq .8s ease-in-out infinite}
@keyframes eq{0%,100%{height:25%}50%{height:100%}}

/* ---------- BENTO / INSIDE ---------- */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.cell{background:var(--surface);padding:clamp(22px,2.6vw,38px);display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;
  transition:background .45s var(--e-out)}
.cell:hover{background:var(--surface-2)}
.cell::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(76,224,255,.10),transparent 70%)}
.cell:hover::after{opacity:1}
.cell--6{grid-column:span 6}.cell--4{grid-column:span 4}.cell--3{grid-column:span 3}.cell--12{grid-column:span 12}
.cell__ico{width:34px;height:34px;color:var(--text);opacity:.9}
.cell__n{font-family:var(--f-display);font-size:clamp(2rem,4.4vw,3.6rem);line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.cell h3{font-family:var(--f-display);font-size:13px;letter-spacing:.1em}
.cell p{font-family:var(--f-mono);font-size:13px;color:var(--text-2);line-height:1.7}
@keyframes spin{to{transform:rotate(360deg)}}
.pinline.is-on{opacity:1}

/* ---------- COLLECTIONS (horizontal) ---------- */
.collhead{text-align:center;position:relative;margin-bottom:var(--s-6)}
.collhead .ghost{font-family:var(--f-display);font-size:clamp(3rem,13vw,11rem);color:rgba(255,255,255,.045);line-height:.9;letter-spacing:-.02em;user-select:none}
.rail{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:20px;
  scrollbar-width:none;cursor:grab}
.rail::-webkit-scrollbar{display:none}
.rail.is-drag{cursor:grabbing;scroll-snap-type:none}
.card{flex:0 0 clamp(250px,26vw,330px);scroll-snap-align:start;border:1px solid var(--line);background:var(--surface);
  display:flex;flex-direction:column;transition:border-color .45s,transform .5s var(--e-out);position:relative;overflow:hidden}
.card:hover{border-color:var(--line-3);transform:translateY(-6px)}
.card__img{position:relative;aspect-ratio:1;overflow:hidden;background:#0b0b0d}
.card__img img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.82);transition:filter .6s,transform 1s var(--e-out)}
.card:hover .card__img img{filter:grayscale(0) brightness(1);transform:scale(1.06)}
.card__body{padding:16px;display:flex;flex-direction:column;gap:14px}
.card__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.card__name{font-family:var(--f-display);font-size:15px;letter-spacing:.06em}
.card__foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.card__type{flex:1;text-align:center;border:1px solid var(--line);padding:9px;font-family:var(--f-display);font-size:8.5px;letter-spacing:.16em;color:var(--text-3)}
.card__price{border:1px solid var(--line);padding:9px 14px;font-family:var(--f-display);font-size:10px}
.card--soon .card__img::after{content:"COMING SOON";position:absolute;inset:0;display:grid;place-items:center;
  background:rgba(0,0,0,.7);backdrop-filter:blur(3px);font-family:var(--f-display);font-size:10px;letter-spacing:.24em;color:var(--text-2)}
.card--soon{opacity:.72}
.railctl{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}

/* ---------- STATS ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--surface)}
.stats div{padding:clamp(26px,3.4vw,46px) 20px;text-align:center;border-right:1px solid var(--line)}
.stats div:last-child{border-right:0}
.stats b{display:block;font-family:var(--f-display);font-size:clamp(1.8rem,4vw,3rem);line-height:1;font-variant-numeric:tabular-nums}
.stats small{display:block;margin-top:10px;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.22em;color:var(--text-3);text-transform:uppercase}
.rec{display:flex;align-items:center;gap:6px;font-family:var(--f-mono);font-size:9px;letter-spacing:.18em;color:var(--danger);border:1px solid rgba(255,77,77,.35);padding:4px 8px}
.rec i{width:5px;height:5px;border-radius:50%;background:var(--danger);animation:pulse 1.4s infinite}

/* ---------- CTA / NEWSLETTER ---------- */
.cta{position:relative;text-align:center;border:1px solid var(--line);padding:clamp(44px,7vw,110px) var(--gut);overflow:hidden;background:var(--surface)}
.cta__glow{position:absolute;left:50%;bottom:-40%;transform:translateX(-50%);width:min(900px,120%);aspect-ratio:1;
  background:radial-gradient(circle,rgba(76,224,255,.18),transparent 62%);filter:blur(20px);pointer-events:none}
.nlform{display:flex;gap:12px;max-width:520px;margin-inline:auto;width:100%;flex-wrap:wrap}
.field{flex:1 1 240px;display:flex;flex-direction:column;gap:7px;text-align:left}
.field input{width:100%;background:#000;border:1px solid var(--line-2);color:#fff;padding:17px 18px;font-family:var(--f-mono);font-size:14px;transition:border-color .3s}
.field input::placeholder{color:#5c5c66}
.field input:focus{outline:none;border-color:#fff}
.field label{font-family:var(--f-display);font-size:9px;letter-spacing:.2em;color:var(--text-3)}
.field .err{font-family:var(--f-mono);font-size:11.5px;color:var(--danger);min-height:0}
.formmsg{margin-top:16px;font-family:var(--f-mono);font-size:12.5px;letter-spacing:.06em;color:var(--ok)}

/* ---------- FOOTER ---------- */
.foot{border-top:1px solid var(--line);padding-block:var(--s-6) var(--s-4);margin-top:var(--s-6)}
.foot__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:var(--s-5);margin-bottom:var(--s-6)}
.foot h4{font-family:var(--f-display);font-size:10px;letter-spacing:.2em;color:var(--text-3);margin-bottom:18px}
.foot li{margin-bottom:11px}
.foot li a{font-family:var(--f-mono);font-size:13px;color:var(--text-2);transition:color .3s}
.foot li a:hover{color:#fff}
.foot__bot{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:22px;border-top:1px solid var(--line);flex-wrap:wrap}
.socials{display:flex;gap:10px}

/* ---------- PRODUCT PAGE ---------- */
.crumb{display:flex;gap:10px;align-items:center;font-family:var(--f-mono);font-size:11px;color:var(--text-3);letter-spacing:.12em;text-transform:uppercase;padding-top:calc(var(--nav-h) + 32px)}
.crumb a:hover{color:#fff}
.php{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,64px);align-items:start;padding-top:var(--s-5)}
.sticky{position:sticky;top:calc(var(--nav-h) + 28px)}
.presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.preset{background:var(--surface);padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;transition:background .35s}
.preset:hover{background:var(--surface-2)}
.preset span{font-family:var(--f-mono);font-size:13px;letter-spacing:.04em}
.preset em{font-family:var(--f-display);font-size:8px;letter-spacing:.14em;font-style:normal;color:var(--text-3);border:1px solid var(--line);padding:5px 8px}
.acc{border-top:1px solid var(--line)}
.acc__i{border-bottom:1px solid var(--line)}
.acc__q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;text-align:left;
  font-family:var(--f-display);font-size:13px;letter-spacing:.04em;transition:color .3s}
.acc__q:hover{color:var(--c3)}
.acc__q i{flex:0 0 auto;width:13px;height:13px;position:relative}
.acc__q i::before,.acc__q i::after{content:"";position:absolute;background:currentColor;transition:transform .4s var(--e-out)}
.acc__q i::before{left:0;top:6px;width:13px;height:1px}
.acc__q i::after{left:6px;top:0;width:1px;height:13px}
.acc__q[aria-expanded="true"] i::after{transform:scaleY(0)}
.acc__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--e-out)}
.acc__a>div{overflow:hidden}
.acc__i.is-open .acc__a{grid-template-rows:1fr}
.acc__a p{padding-bottom:24px;font-family:var(--f-mono);font-size:13.5px;color:var(--text-2);line-height:1.8;max-width:64ch}

/* buy bar mobile */
.buybar{position:fixed;left:0;right:0;bottom:0;z-index:700;display:none;align-items:center;justify-content:space-between;gap:14px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(0,0,0,.9);backdrop-filter:blur(16px);border-top:1px solid var(--line)}

/* reveal defaults (no-JS safe: visible unless JS marks it) */
.js .rv{opacity:0;transform:translateY(26px)}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .feat{grid-template-columns:1fr}
  .feat__media{border-right:0;border-bottom:1px solid var(--line)}
  .foot__grid{grid-template-columns:1fr 1fr}
  .php{grid-template-columns:1fr}
  .sticky{position:static}
}
@media (max-width:860px){
  .nav__links{display:none}
  .burger{display:grid}
  /* the CTA made .nav__side wider than the viewport and pushed the burger
     out of reach — it lives in the mobile menu instead */
  .nav__side > .btn{display:none}
  .nav__in{gap:12px}
  .nav__side{gap:10px}
  .cell--6,.cell--4,.cell--3,.cell--8{grid-column:span 12}
  .stats{grid-template-columns:1fr 1fr}
  .stats div:nth-child(2){border-right:0}
  .stats div:nth-child(1),.stats div:nth-child(2){border-bottom:1px solid var(--line)}
  .foot__grid{grid-template-columns:1fr}
  .buybar{display:flex}
  body.has-buybar{padding-bottom:80px}
  .hero__scroll{display:none}
}
@media (max-width:560px){
  .player__stats{grid-template-columns:1fr}
  .strip .meta:nth-child(2){display:none}
  .price{flex-wrap:wrap}
  .btn{width:100%}
  .buybar .btn{width:auto}
}

/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .js .rv{opacity:1!important;transform:none!important}
}

/* ============================================================
   v2 — real brand assets, video hero, founder section
   ============================================================ */

/* currency in mono: Michroma's € reads like a 0 at small sizes */
/* currency symbol in mono: Michroma's glyphs read badly at small sizes, and
   its tracking leaves a gap between the symbol and the number */
.eur{font-family:var(--f-mono);font-size:.9em;letter-spacing:0;margin-right:-.15em}

/* ---------- BRAND MARKS (raster assets) ---------- */
.brand__mark{width:34px;height:auto;color:#fff;transition:transform .5s var(--e-out),filter .5s}
.brand:hover .brand__mark{transform:scale(1.08)}
.wordmark{width:clamp(190px,26vw,330px);height:auto;opacity:.96}

/* ---------- PRELOADER (brand film) ---------- */
.loader{overflow:hidden}
.loader__vid{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.95;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 6%,#000 94%,transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0,#000 6%,#000 94%,transparent 100%)}
.loader__veil{position:absolute;inset:0;z-index:2;background:radial-gradient(120% 95% at 50% 42%,transparent 30%,rgba(0,0,0,.55) 78%,rgba(0,0,0,.92) 100%)}
.loader__in{position:absolute;left:0;right:0;bottom:76px;display:flex;justify-content:center;padding-inline:var(--gut);z-index:3}
.loader__hud{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;
  padding:20px var(--gut) calc(20px + env(safe-area-inset-bottom));z-index:3}
.loader__hud span{font-family:var(--f-mono);font-size:10px;letter-spacing:.22em;color:var(--text-3);text-transform:uppercase}
.loader__panel{display:flex;flex-direction:column;align-items:center;gap:14px;
  padding:22px 30px;border:1px solid var(--line-2);background:rgba(0,0,0,.6);backdrop-filter:blur(12px);min-width:min(320px,86vw)}

/* ---------- HERO VIDEO ---------- */
.hero__vid{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);
  width:118%;height:auto;aspect-ratio:16/9;object-fit:cover;
  filter:grayscale(1) contrast(1.7) brightness(.68);
  mix-blend-mode:screen;opacity:.6;pointer-events:none;
  /* keeps the flowing contour lines, punches out the centred logo so it
     never competes with the headline; edges fade into pure black */
  -webkit-mask-image:radial-gradient(52% 62% at 50% 52%,transparent 0%,transparent 47%,#000 100%),radial-gradient(75% 70% at 50% 50%,#000 40%,transparent 100%);
  mask-image:radial-gradient(52% 62% at 50% 52%,transparent 0%,transparent 47%,#000 100%),radial-gradient(75% 70% at 50% 50%,#000 40%,transparent 100%);
  -webkit-mask-composite:source-in;mask-composite:intersect}
.hero{background:#000}
.hero__title .d1{font-size:clamp(2.4rem,8.6vw,7.6rem)}
.hero__title .slash{font-size:clamp(2.4rem,8.6vw,7.6rem)}
.hero__scroll{bottom:96px}
@media (max-width:900px){.hero__vid{width:150%;opacity:.5}}

/* ---------- FOUNDER / PERSONAL BRAND ---------- */
.founder{display:grid;grid-template-columns:.85fr 1.15fr;gap:0;border:1px solid var(--line);background:var(--surface);overflow:hidden}
.founder__media{position:relative;display:grid;place-items:center;padding:clamp(34px,5vw,72px);
  border-right:1px solid var(--line);background:radial-gradient(120% 100% at 50% 40%,#111116,#050506 70%)}
.founder__media::before{content:"";position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:44px 44px}
.founder__glow{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:78%;aspect-ratio:1;
  background:radial-gradient(circle,rgba(76,224,255,.22),rgba(11,165,204,.10) 45%,transparent 68%);filter:blur(24px);
  animation:breathe 8s ease-in-out infinite}
.founder__logo{position:relative;width:min(320px,80%);height:auto;z-index:2;
  transition:transform .8s var(--e-out),filter .8s}
.founder__media:hover .founder__logo{transform:scale(1.05) rotate(-1deg);filter:drop-shadow(0 0 34px rgba(130,225,255,.40))}
.founder__body{padding:clamp(28px,4vw,60px);display:flex;flex-direction:column;gap:20px;justify-content:center}
.founder__role{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.founder__links{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.founder__stats{display:flex;gap:34px;flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--line);margin-top:6px}
.founder__stats b{display:block;font-family:var(--f-display);font-size:20px}
.founder__stats small{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.2em;color:var(--text-3);text-transform:uppercase}
@media (max-width:1100px){
  .founder{grid-template-columns:1fr}
  .founder__media{border-right:0;border-bottom:1px solid var(--line)}
}

/* ---------- LAB REEL (brand film, second use) ---------- */
.reel{position:relative;border:1px solid var(--line);overflow:hidden;background:#000;aspect-ratio:16/9}
.reel video{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.15)}
.reel__hud{position:absolute;inset:0;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:16px 18px}
.reel__hud span{font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;color:rgba(255,255,255,.7);text-transform:uppercase}
.reel__row{display:flex;justify-content:space-between;gap:12px}

@media (prefers-reduced-motion:reduce){
  .hero__vid,.loader__vid,.reel video{display:none}
  .founder__glow{animation:none}
}

/* ============================================================
   v3 — CRT LAYER
   Tube glass, scanlines, aperture grille, roll bar, static,
   chromatic aberration and phosphor glow.
   Every animated part is disabled under prefers-reduced-motion.
   ============================================================ */

:root{
  --crt-scan:.30;        /* horizontal scanline strength   */
  --crt-grille:.55;      /* rgb aperture grille strength   */
  --crt-static:.075;     /* baseline static noise          */
  --ca:1.1px;            /* chromatic aberration offset    */
  --phosphor:0 0 18px rgba(198,240,255,.22);
}

.crt{position:fixed;inset:0;z-index:8996;pointer-events:none;contain:strict;
  transform:translateZ(0);backface-visibility:hidden}
.crt > *{position:absolute;inset:0}

/* Scanlines + RGB aperture grille in ONE layer. They used to be two stacked
   full-screen elements with a blend mode; merging them removes a compositing
   pass with no visible difference. */
.crt__lines{
  background-image:
    linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,var(--crt-scan)) 50%),
    repeating-linear-gradient(90deg,
      rgba(255,60,80,calc(.055 * var(--crt-grille))) 0 1px,
      rgba(60,255,160,calc(.045 * var(--crt-grille))) 1px 2px,
      rgba(90,140,255,calc(.055 * var(--crt-grille))) 2px 3px);
  background-size:100% 3px, 3px 100%}

/* slow vertical retrace bar */
.crt__roll{
  left:0;right:0;top:0;height:26vh;bottom:auto;
  background:linear-gradient(180deg,transparent,rgba(188,234,255,.030) 42%,rgba(194,238,255,.052) 50%,rgba(188,234,255,.028) 58%,transparent);
  animation:crtRoll 8.5s linear infinite;will-change:transform}
@keyframes crtRoll{0%{transform:translateY(-30vh)}100%{transform:translateY(130vh)}}

/* mains-hum flicker — amplitude deliberately far below the WCAG flash threshold */
.crt__flicker{
  background:rgba(188,234,255,.02);
  animation:crtFlick 5.5s steps(1) infinite}
@keyframes crtFlick{
  0%,7%,100%{opacity:.20}  8%{opacity:.62}  9%{opacity:.14}
  31%{opacity:.22} 32%{opacity:.55} 33%{opacity:.18}
  64%{opacity:.24} 65%{opacity:.48} 66%{opacity:.16}
  86%{opacity:.20} 87%{opacity:.58} 88%{opacity:.15}}

/* tube glass: rounded bezel + corner falloff */
.crt__glass{
  border-radius:clamp(12px,2.2vw,30px);
  box-shadow:0 0 0 70px #000, inset 0 0 150px rgba(0,0,0,.72), inset 0 0 40px rgba(0,0,0,.5)}

/* static / snow — the "disturbo" */
.crt__static{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='260' height='260' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:var(--crt-static);mix-blend-mode:screen;
  animation:crtSnow .55s steps(1) infinite;will-change:transform}
@keyframes crtSnow{
  0%{transform:translate3d(0,0,0)}      20%{transform:translate3d(-2%,1%,0)}
  40%{transform:translate3d(1%,-2%,0)}  60%{transform:translate3d(-1%,-1%,0)}
  80%{transform:translate3d(2%,2%,0)}   100%{transform:translate3d(0,1%,0)}}

/* .grain and .vig are superseded by .crt__static and .crt__glass */

/* ---------- SIGNAL BURST (dropout) ---------- */
/* JS adds .is-burst to <html> for a few hundred ms at random intervals */
.crt__burst{
  opacity:0;background:linear-gradient(180deg,
    transparent 0 42%,rgba(255,255,255,.10) 42% 44%,transparent 44% 55%,
    rgba(255,255,255,.06) 55% 56%,transparent 56% 100%)}
.is-burst .crt__burst{animation:crtBurst .34s steps(3) 1}
@keyframes crtBurst{
  0%{opacity:1;transform:translateY(0) scaleX(1)}
  33%{opacity:.9;transform:translateY(-14px) scaleX(1.02)}
  66%{opacity:1;transform:translateY(9px) scaleX(.995)}
  100%{opacity:0;transform:translateY(0) scaleX(1)}}
.is-burst .crt__static{opacity:calc(var(--crt-static) * 3.4)}

/* Horizontal tear bands. These live inside the fixed .crt overlay on purpose:
   transforming <main> would make it a containing block for position:fixed and
   silently break every pinned ScrollTrigger on the page. */
.crt__tear{opacity:0;mix-blend-mode:difference;
  background:linear-gradient(90deg,rgba(255,255,255,.55),rgba(255,255,255,.68)) 0 0/100% 100% no-repeat;
  -webkit-mask-image:linear-gradient(180deg,
     transparent 0 38%,#000 38% 40%,transparent 40% 52%,
     #000 52% 53%,transparent 53% 71%,#000 71% 72.5%,transparent 72.5% 100%);
  mask-image:linear-gradient(180deg,
     transparent 0 38%,#000 38% 40%,transparent 40% 52%,
     #000 52% 53%,transparent 53% 71%,#000 71% 72.5%,transparent 72.5% 100%)}
.is-burst .crt__tear{animation:crtTear .34s steps(3) 1}
@keyframes crtTear{
  0%{opacity:.9;transform:translate3d(-14px,0,0)}
  40%{opacity:.75;transform:translate3d(11px,-4px,0)}
  75%{opacity:.85;transform:translate3d(-6px,3px,0)}
  100%{opacity:0;transform:translate3d(0,0,0)}}

/* ---------- PHOSPHOR + CHROMATIC ABERRATION ---------- */
.d1,.d2,.d3{
  text-shadow:
    calc(var(--ca) * -1) 0 rgba(255,255,255,.30),
    var(--ca) 0 rgba(255,255,255,.22),
    var(--phosphor)}
.hero__title .d1{--ca:1.7px}
.brand__txt,.nav__link,.lbl{text-shadow:0 0 12px rgba(198,240,255,.18)}
.grad-text{text-shadow:none}
.cell__n,.stats b,.price__now{text-shadow:calc(var(--ca) * -1) 0 rgba(255,255,255,.22),var(--ca) 0 rgba(255,255,255,.2)}

/* hero title gets a live aberration wobble */
.hero__title .d1{animation:caDrift 6.5s ease-in-out infinite}
@keyframes caDrift{
  0%,100%{--ca:1.7px}
  38%{--ca:.6px}
  52%{--ca:3.1px}
  70%{--ca:1.2px}}
@property --ca{syntax:'<length>';inherits:true;initial-value:1.1px}

/* ---------- CRT SURFACE TREATMENT FOR PANELS ---------- */
.player,.cell,.card__img,.vid__thumb,.founder__media,.cta,.reel,.pin__visual,.presets,.stats{
  position:relative}
.player::after,.cell::before,.card__img::after,.vid__thumb::after,
.founder__media::after,.cta::after,.pin__visual::after,.stats::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:4;
  background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.16) 50%);
  background-size:100% 3px}
.cell::before{z-index:0}
.cta::after{border-radius:inherit}

/* screen-edge bloom on the dark panels */
.player,.founder__media,.reel,.vid__thumb{
  box-shadow:inset 0 0 60px rgba(0,0,0,.65),inset 0 0 14px rgba(120,220,255,.05)}

/* ---------- CRT BOOT / SHUTDOWN ---------- */
.loader{transform-origin:center center}
.crt-off{animation:crtOff .55s cubic-bezier(.6,0,.9,.2) forwards}
@keyframes crtOff{
  0%{transform:scale(1,1);filter:brightness(1)}
  45%{transform:scale(1,.008);filter:brightness(3.2)}
  70%{transform:scale(1,.008);filter:brightness(3.2)}
  100%{transform:scale(0,.004);filter:brightness(6);opacity:0}}

/* hero gets a power-on sweep once the loader clears */
.hero.is-on::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:5;
  background:linear-gradient(180deg,transparent,rgba(206,242,255,.5),transparent);
  animation:powerOn .75s ease-out 1 forwards}
@keyframes powerOn{
  0%{transform:scaleY(.004);opacity:1}
  100%{transform:scaleY(1);opacity:0}}

/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion:reduce){
  .crt__roll,.crt__flicker,.crt__static,.crt__burst{animation:none}
  .crt__flicker{display:none}
  .crt__static{opacity:.04}
  .hero__title .d1{animation:none}
  .is-burst .crt__tear{animation:none;opacity:0}
  .hero.is-on::after{display:none}
  .crt-off{animation:none;opacity:0}
}

/* keep the noise from eating small text on low-res screens */
@media (max-width:600px){
  :root{--crt-scan:.22;--crt-grille:.35;--crt-static:.055;--ca:.8px}
}

/* ============================================================
   v4 — hero lockup, product video grid, countdown, YouTube
   ============================================================ */

/* ---------- HERO LOGO LOCKUP ---------- */
.hero__mark{
  width:clamp(64px,7.5vw,108px);height:auto;
  filter:drop-shadow(0 0 26px rgba(76,224,255,.30)) drop-shadow(0 0 2px rgba(255,255,255,.4));
  animation:markPulse 5s ease-in-out infinite}
@keyframes markPulse{
  0%,100%{filter:drop-shadow(0 0 22px rgba(76,224,255,.24)) drop-shadow(0 0 2px rgba(255,255,255,.35))}
  50%{filter:drop-shadow(0 0 40px rgba(76,224,255,.42)) drop-shadow(0 0 3px rgba(255,255,255,.6))}}
.hero__in{gap:clamp(16px,2.2vw,26px)}

/* ---------- PRODUCT VIDEO GRID ---------- */
.vgrid{display:grid;grid-template-columns:repeat(12,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.vtile{position:relative;background:var(--surface);overflow:hidden;display:flex;flex-direction:column}
.vtile__media{position:relative;background:#07070A;overflow:hidden;border-bottom:1px solid var(--line)}
.vtile__media video,.vtile__media img{width:100%;height:100%;object-fit:cover;display:block;
  filter:contrast(1.06) saturate(.85)}
.vtile__media::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:3;
  background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.18) 50%);background-size:100% 3px}
.vtile__tag{position:absolute;left:12px;top:12px;z-index:4;display:flex;align-items:center;gap:7px;
  padding:6px 11px;border:1px solid rgba(255,255,255,.24);background:rgba(0,0,0,.66);backdrop-filter:blur(6px);
  font-family:var(--f-display);font-size:8.5px;letter-spacing:.16em}
.vtile__body{padding:clamp(20px,2.2vw,30px);display:flex;flex-direction:column;gap:12px;flex:1}
.vtile__body h3{font-family:var(--f-display);font-size:13px;letter-spacing:.09em}
.vtile__body p{font-family:var(--f-mono);font-size:13px;color:var(--text-2);line-height:1.7}
.vtile--a{grid-column:span 5}
.vtile--b{grid-column:span 3}
.vtile--c{grid-column:span 4}
.vtile--wide{grid-column:span 7}
.vtile--w8{grid-column:span 8}
.vtile--copy{grid-column:span 4;background:var(--surface-2);justify-content:center}
.vtile--copy5{grid-column:span 5;background:var(--surface-2);justify-content:center}
.vbig{font-family:var(--f-display);font-size:clamp(3rem,7vw,5.6rem);line-height:.9;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:none}
.vlist{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px}
.vlist span{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--text-2);
  border:1px solid var(--line-2);padding:6px 10px}
@media (max-width:1100px){
  .vtile--a,.vtile--b,.vtile--c,.vtile--wide,.vtile--w8,.vtile--copy,.vtile--copy5{grid-column:span 12}
}

/* ---------- COUNTDOWN ---------- */
.cd{border:1px solid var(--line-2);background:linear-gradient(180deg,rgba(76,224,255,.07),rgba(0,0,0,0));
  padding:18px 20px;display:flex;flex-direction:column;gap:14px}
.cd__top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cd__top .lbl{color:var(--c1)}
.cd__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.cd__u{border:1px solid var(--line);background:#000;padding:12px 6px;text-align:center;position:relative;overflow:hidden}
.cd__u::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.22) 50%);background-size:100% 3px}
.cd__u b{display:block;font-family:var(--f-display);font-size:clamp(1.2rem,2.4vw,1.7rem);line-height:1;
  font-variant-numeric:tabular-nums;color:#fff;
  text-shadow:-1px 0 rgba(255,255,255,.26),1px 0 rgba(255,255,255,.22),0 0 16px rgba(76,224,255,.38)}
.cd__u small{display:block;margin-top:8px;font-family:var(--f-mono);font-size:8.5px;letter-spacing:.2em;
  color:var(--text-3);text-transform:uppercase}
.cd__note{font-family:var(--f-mono);font-size:12px;color:var(--text-2);line-height:1.6}
.cd--slim .cd__grid{grid-template-columns:repeat(4,auto)}
.cd--slim .cd__u{padding:8px 14px;min-width:64px}
.cd--slim .cd__note{margin:0}

/* ---------- YOUTUBE FACADE ---------- */
.yt{position:relative;border:1px solid var(--line);background:#000;overflow:hidden}
.yt__frame{position:relative;aspect-ratio:16/9;width:100%;display:block;cursor:pointer;border:0;padding:0;background:#000}
.yt__frame img{width:100%;height:100%;object-fit:cover;filter:grayscale(.5) contrast(1.08) brightness(.82);
  transition:filter .6s var(--e-out),transform 1.1s var(--e-out)}
.yt:hover .yt__frame img{filter:grayscale(0) contrast(1.05) brightness(1);transform:scale(1.03)}
.yt__frame::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.2) 50%);background-size:100% 3px}
.yt__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;
  width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:var(--c1);color:#fff;
  box-shadow:0 0 0 1px rgba(255,255,255,.25),0 0 50px -6px rgba(76,224,255,.85);
  transition:transform .45s var(--e-out),box-shadow .45s}
.yt:hover .yt__play{transform:translate(-50%,-50%) scale(1.09);box-shadow:0 0 0 1px rgba(255,255,255,.4),0 0 70px -4px rgba(76,224,255,1)}
.yt__bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;
  border-bottom:1px solid var(--line);background:var(--surface-3)}
.yt__bar span{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;color:var(--text-3)}
.yt iframe{width:100%;aspect-ratio:16/9;display:block;border:0}
.yt__foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;
  border-top:1px solid var(--line);flex-wrap:wrap}
.yt__foot p{font-family:var(--f-mono);font-size:12px;color:var(--text-3)}

/* keep the whole interface visible — these are UI captures, never crop them */
.vtile__media video{object-fit:contain}
.vtile--a  .vtile__media{aspect-ratio:1/1}
.vtile--b  .vtile__media{aspect-ratio:3/4}
.vtile--wide .vtile__media{aspect-ratio:31/10}
.vtile--w8 .vtile__media{aspect-ratio:4/1}
@media (max-width:1100px){
  .vtile--wide .vtile__media{aspect-ratio:2/1}
  .vtile--w8 .vtile__media{aspect-ratio:5/2}
  .vtile--b .vtile__media{aspect-ratio:16/9}
}

@media (prefers-reduced-motion:reduce){
  .hero__mark{animation:none}
}

/* ============================================================
   v5 — SCOPE PLAYER, CRT TEXT ANIMATIONS, 3D COVER
   ============================================================ */

/* ---------- SCOPE PLAYER ---------- */
/* A bench oscilloscope, not a media app: graticule screen, amber chassis
   labels, cyan trace with phosphor persistence. */
.scope{border:1px solid var(--line-2);background:
   linear-gradient(180deg,#0C0C0E,#08080A);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),inset 0 0 60px rgba(0,0,0,.7);
  display:flex;flex-direction:column;position:relative}
.scope__head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 14px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#17171B,#101013)}
.scope__id{font-family:var(--f-display);font-size:9px;letter-spacing:.2em;color:var(--c1);
  text-shadow:0 0 12px rgba(76,224,255,.45)}
.scope__head .meta{font-size:10px}
.scope__pwr{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-mono);
  font-size:9px;letter-spacing:.2em;color:var(--text-3);text-transform:uppercase}
.scope__pwr i{width:6px;height:6px;border-radius:50%;background:#2b2b30;transition:.3s}
.scope.is-playing .scope__pwr i{background:var(--signal);box-shadow:0 0 10px var(--signal)}

/* screen */
.scope__screen{position:relative;background:#050607;aspect-ratio:2.1/1;overflow:hidden;
  border-bottom:1px solid var(--line)}
.scope__screen canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
/* graticule: 10 x 8 divisions, like a real scope face */
.scope__grat{position:absolute;inset:0;pointer-events:none;z-index:2;
  background-image:
    repeating-linear-gradient(90deg,rgba(76,224,255,.10) 0 1px,transparent 1px 10%),
    repeating-linear-gradient(0deg,rgba(76,224,255,.10) 0 1px,transparent 1px 12.5%);
  opacity:.7}
.scope__grat::before,.scope__grat::after{content:"";position:absolute;background:rgba(76,224,255,.22)}
.scope__grat::before{left:0;right:0;top:50%;height:1px}
.scope__grat::after{top:0;bottom:0;left:50%;width:1px}
.scope__screen::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;
  background:
    radial-gradient(120% 130% at 50% 50%,transparent 52%,rgba(0,0,0,.72) 100%),
    linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.22) 50%);
  background-size:100% 100%,100% 3px}
.scope__osd{position:absolute;left:14px;bottom:12px;z-index:5;display:flex;flex-direction:column;gap:4px}
.scope__osd b{font-family:var(--f-display);font-size:clamp(13px,1.5vw,17px);letter-spacing:.06em;color:#fff;
  text-shadow:0 0 16px rgba(57,255,136,.5),-1px 0 rgba(255,255,255,.26),1px 0 rgba(255,255,255,.2)}
.scope__osd span{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.22em;color:var(--c1);text-transform:uppercase}
.scope__idx{position:absolute;right:14px;top:12px;z-index:5;font-family:var(--f-mono);
  font-size:10px;letter-spacing:.2em;color:var(--c1);text-shadow:0 0 10px rgba(76,224,255,.4)}

/* chassis / transport */
.scope__panel{padding:14px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;
  gap:14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#101013,#0A0A0C)}
.scope__transport{display:flex;align-items:center;gap:8px}
.sbtn{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line-2);
  background:linear-gradient(180deg,#1A1A1F,#0E0E11);color:var(--text-2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 1px 0 rgba(0,0,0,.6);transition:.25s}
.sbtn:hover{color:var(--c1);border-color:rgba(76,224,255,.5)}
.sbtn:active{transform:translateY(1px)}
.sbtn--main{width:46px;height:46px;color:#0A0A0C;background:linear-gradient(180deg,var(--c3),var(--c1));
  border-color:var(--c1);box-shadow:0 0 26px -4px rgba(76,224,255,.7),inset 0 1px 0 rgba(255,255,255,.5)}
.sbtn--main:hover{color:#0A0A0C;box-shadow:0 0 40px -4px rgba(76,224,255,.95),inset 0 1px 0 rgba(255,255,255,.6)}
.scope__read{display:flex;flex-direction:column;gap:7px;min-width:0}
.scope__times{display:flex;justify-content:space-between;font-family:var(--f-mono);font-size:11px;
  color:var(--text-3);font-variant-numeric:tabular-nums;letter-spacing:.08em}
.scope__times b{color:var(--c1);font-weight:400}
.seek{margin:0;height:3px;background:rgba(255,255,255,.10)}
.seek i{background:linear-gradient(90deg,var(--c2),var(--c1),var(--c3))}

/* VU meter */
.vu{display:flex;align-items:flex-end;gap:2px;height:34px}
.vu i{width:3px;height:12%;background:var(--c1);opacity:.28;transition:height .08s linear,opacity .08s linear}
.vu i.on{opacity:1;box-shadow:0 0 6px rgba(76,224,255,.7)}
.vu i.peak{background:var(--signal);box-shadow:0 0 8px var(--signal)}

/* track list — index card, not a streaming queue */
.scope__list{max-height:296px;overflow-y:auto;scrollbar-width:thin}
.scope__list::-webkit-scrollbar{width:4px}
.scope__list::-webkit-scrollbar-thumb{background:rgba(76,224,255,.3)}
.srow{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:12px;width:100%;
  padding:13px 14px;text-align:left;border-bottom:1px solid var(--line);cursor:pointer;
  transition:background .25s,color .25s;position:relative}
.srow:hover{background:rgba(76,224,255,.05)}
.srow[aria-current="true"]{background:rgba(76,224,255,.09);box-shadow:inset 2px 0 0 var(--c1)}
.srow__n{font-family:var(--f-mono);font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums;letter-spacing:.1em}
.srow__t{font-family:var(--f-mono);font-size:13.5px;letter-spacing:.03em;display:flex;align-items:center;gap:9px;min-width:0}
.srow__t span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.srow__k{font-family:var(--f-display);font-size:8px;letter-spacing:.16em;color:var(--text-3);
  border:1px solid var(--line);padding:5px 8px;white-space:nowrap}
.srow[aria-current="true"] .srow__n,.srow[aria-current="true"] .srow__t{color:var(--c1)}
.srow[aria-current="true"] .srow__k{color:var(--c1);border-color:rgba(76,224,255,.45)}
.eqx{display:inline-flex;gap:2px;align-items:flex-end;height:11px;opacity:0;transition:opacity .3s;flex:0 0 auto}
.eqx i{width:2px;background:var(--signal);height:30%}
.srow[aria-current="true"].is-playing .eqx{opacity:1}
.srow[aria-current="true"].is-playing .eqx i{animation:eq .8s ease-in-out infinite}
.eqx i:nth-child(2){animation-delay:.18s}.eqx i:nth-child(3){animation-delay:.36s}

@media (max-width:560px){
  .scope__panel{grid-template-columns:1fr;justify-items:center;gap:12px}
  .scope__read{width:100%}
  .vu{width:100%;justify-content:center}
}

/* ---------- CRT TEXT ANIMATIONS ---------- */
/* decode-in: characters resolve out of noise, like a signal locking */
.dec{visibility:hidden}
.dec.is-in{visibility:visible}
.tw{white-space:pre-wrap}
.tw__cur{display:inline-block;width:.5em;height:1em;background:var(--c1);
  vertical-align:-.12em;margin-left:.12em;animation:pulse 1s steps(1) infinite}
.tw.is-done .tw__cur{animation:pulse 1.4s steps(1) infinite;opacity:.6}

/* signal-lock flicker on headings entering the viewport */
@keyframes lockIn{
  0%{opacity:0;transform:translateY(10px)}
  18%{opacity:.85} 24%{opacity:.15} 32%{opacity:1}
  38%{opacity:.35} 46%{opacity:1;transform:translateY(0)}
  100%{opacity:1;transform:translateY(0)}}
.lock.is-in{animation:lockIn .85s steps(1,end) both}

/* ---------- 3D COVER ---------- */
.cover3d{perspective:1400px;perspective-origin:40% 45%;padding:6px 0 34px}
.cover3d__inner{position:relative;transform-style:preserve-3d;
  transform:rotateY(var(--ry,19deg)) rotateX(var(--rx,7deg)) rotateZ(var(--rz,1.5deg));
  transition:transform .9s var(--e-out);will-change:transform}
.cover3d .cover{box-shadow:
   -36px 46px 90px -34px rgba(0,0,0,1),
   0 0 70px -18px rgba(76,224,255,.20);
  border:1px solid rgba(255,255,255,.10)}
/* physical thickness: a slab edge extruded along the right side */
.cover3d__edge{position:absolute;top:1.5%;left:0;height:97%;width:30px;
  transform:translateZ(-30px) translateX(-15px);
  background:linear-gradient(270deg,#1B1B20,#0B0B0E 55%,#050506);
  border:1px solid rgba(255,255,255,.07);border-right:0;
  box-shadow:inset -3px 0 8px rgba(0,0,0,.95)}
/* thin lit lip along the top face, so the slab catches the room light */
.cover3d__inner::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(270deg,rgba(255,255,255,.28),rgba(76,224,255,.22),transparent);
  transform:translateZ(1px);pointer-events:none;z-index:6}
/* reflection on the plinth */
.cover3d__refl{position:absolute;left:0;right:0;top:100%;height:38%;
  transform:rotateX(180deg) translateZ(-1px);transform-origin:top;
  background-size:cover;background-position:center;opacity:.16;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 72%);
  mask-image:linear-gradient(180deg,#000,transparent 72%);
  filter:grayscale(1) blur(1px);pointer-events:none}
@media (max-width:900px){
  .cover3d{perspective:1100px}
  .cover3d__inner{transform:rotateY(9deg) rotateX(3deg) rotateZ(1deg)}
  .cover3d__edge{width:14px;transform:translateZ(-14px) translateX(-7px)}
}
@media (prefers-reduced-motion:reduce){
  .cover3d__inner{transform:none;transition:none}
  .cover3d__edge,.cover3d__refl{display:none}
  .dec{visibility:visible}
  .lock.is-in{animation:none}
}

/* ---------- KLAVIYO POP-UP ----------
   The pop-up is Klaviyo-rendered, so we only nudge it into the site's world:
   square corners and the same scanline veil as every other panel. Colours and
   copy stay editable in Klaviyo. */
.klaviyo-form,[class*="kl-private-reset"]{font-family:var(--f-mono)!important}
div[class*="kl-private-reset"] [role="dialog"]{border-radius:0!important}

/* ---------- MOBILE POLISH ---------- */
.mmenu__cta{display:inline-flex!important;align-items:center;justify-content:center;
  margin-top:22px;border:1px solid var(--c1);color:var(--c1)!important;
  font-size:clamp(.85rem,3.6vw,1.05rem)!important;padding:18px 22px!important;
  border-bottom:1px solid var(--c1)!important;
  box-shadow:0 0 30px -10px rgba(76,224,255,.7)}

@media (max-width:520px){
  .nav__side > .icobtn{display:none}      /* only brand + burger fit */

  /* the HUD wrapped to two ragged lines — drop the least useful token */
  .hero__hud{font-size:10px;gap:9px;white-space:nowrap}
  .hero__hud .sess{display:none}
  .hero__sub{font-size:11.5px}
  :root{--nav-h:64px}
  .brand__mark{width:28px}
  .brand__txt{font-size:10.5px}

  /* countdown: 4 columns are too cramped under ~400px */
  .cd__grid{grid-template-columns:repeat(2,1fr)}
  .cd{padding:16px}

  /* scope: stack the chassis, keep the transport thumb-sized */
  .scope__head{flex-wrap:wrap;gap:8px}
  .scope__screen{aspect-ratio:1.6/1}
  .sbtn{width:44px;height:44px}
  .sbtn--main{width:56px;height:56px}
  .scope__list{max-height:none}
  .srow{padding:15px 14px}

  /* the 3D slab eats width on a phone — flatten it a little */
  .cover3d{perspective:900px;padding-bottom:20px}

  .pills{gap:8px}
  .pill{padding:8px 14px;font-size:9px}
  .sec-head{gap:22px}
  .foot__bot{justify-content:center;text-align:center}
  .railctl{justify-content:center}
  .cta{padding-inline:18px}
  .nlform{gap:10px}
  .nlform .btn{width:100%}
}

/* every control keeps a 44px touch target regardless of its visual size */
@media (hover:none),(pointer:coarse){
  .icobtn,.sbtn,.pbtn{min-width:44px;min-height:44px}
  .nav__link,.acc__q,.srow,.card__type,.preset{min-height:44px}
  .seek{height:5px}
  .seek::after{inset:-16px 0}
  .burger{width:44px;height:44px}
  /* text links in lists are only ~17px tall — pad them out without moving
     anything visually, using the line box rather than margins */
  .foot li a,.crumb a{display:inline-block;padding-block:13px;line-height:1.2}
  .foot li{margin-bottom:0}
  .brand{min-height:44px}
  .mmenu a{padding-block:18px}
  .pill{min-height:36px}
}

/* ---------- VIDEO: FALLBACK TAP-TO-PLAY ----------
   iOS refuses autoplay in Low Power Mode and throttles video over cellular.
   When that happens the poster stays and this badge invites a tap, instead of
   leaving a black rectangle that looks broken. */
.needs-tap{position:relative;cursor:pointer}
.needs-tap::after{
  content:"TAP TO PLAY";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  z-index:6;pointer-events:none;
  font-family:var(--f-display);font-size:9px;letter-spacing:.18em;color:#fff;
  padding:12px 18px;border:1px solid rgba(255,255,255,.45);
  background:rgba(0,0,0,.62);backdrop-filter:blur(6px)}
.hero.needs-tap{cursor:default}
.hero.needs-tap::after{display:none}

/* ============================================================
   BOOT — schermata di caricamento per telefono
   Il brand film non è utilizzabile qui: su una connessione dati
   scaricherebbe megabyte prima di qualsiasi contenuto, iOS può
   rifiutarne l'autoplay, e il poster statico resta una striscia
   16:9 in mezzo a uno schermo verticale. Questa è costruita in
   CSS attorno al logo vero: parte istantanea e non fallisce mai.
   ============================================================ */
.boot{position:absolute;inset:0;display:none;place-items:center;z-index:2}
.loader.is-boot .boot{display:grid}
.loader.is-boot .loader__vid,
.loader.is-boot .loader__veil{display:none}
.loader.is-boot{background:radial-gradient(120% 90% at 50% 42%,#0A0A0E,#000 70%)}

.boot__stage{position:relative;display:grid;place-items:center;
  width:min(72vw,280px);aspect-ratio:1}

/* onde concentriche: il "pulse" del marchio */
.boot__ring{position:absolute;inset:0;border:1px solid rgba(76,224,255,.5);border-radius:50%;
  opacity:0;animation:bootRing 2.4s cubic-bezier(.2,.6,.3,1) infinite}
.boot__ring:nth-child(2){animation-delay:.8s}
.boot__ring:nth-child(3){animation-delay:1.6s}
@keyframes bootRing{
  0%{transform:scale(.34);opacity:0}
  12%{opacity:.85}
  100%{transform:scale(1.15);opacity:0}}

/* il marchio reale, con jitter di aberrazione */
.boot__mark{position:relative;width:56%;height:auto;z-index:3;
  filter:drop-shadow(0 0 18px rgba(76,224,255,.45)) drop-shadow(0 0 2px rgba(255,255,255,.7));
  animation:bootJitter 3.2s steps(1) infinite}
@keyframes bootJitter{
  0%,88%,100%{transform:translate(0,0)}
  90%{transform:translate(-2px,1px)}
  92%{transform:translate(2px,-1px)}
  94%{transform:translate(-1px,0)}}

/* linea di scansione che attraversa il marchio */
.boot__scan{position:absolute;left:-6%;right:-6%;height:2px;z-index:4;
  background:linear-gradient(90deg,transparent,rgba(160,245,255,.95),transparent);
  box-shadow:0 0 18px rgba(76,224,255,.9);
  animation:bootScan 2.1s cubic-bezier(.5,0,.5,1) infinite}
@keyframes bootScan{
  0%{top:8%;opacity:0}
  10%{opacity:1}
  90%{opacity:1}
  100%{top:92%;opacity:0}}

/* reticolo tecnico di fondo */
.boot__grid{position:absolute;inset:-20%;z-index:1;opacity:.5;
  background-image:
    linear-gradient(rgba(76,224,255,.09) 1px,transparent 1px),
    linear-gradient(90deg,rgba(76,224,255,.09) 1px,transparent 1px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(closest-side,#000,transparent 78%);
  mask-image:radial-gradient(closest-side,#000,transparent 78%)}

@media (prefers-reduced-motion:reduce){
  .boot__ring,.boot__scan,.boot__mark{animation:none}
  .boot__ring:first-child{opacity:.5;transform:scale(1)}
}
