/* ============================================================
   QUINLED DIG-NEXT — shared design system  ·  "Engineered light."
   Used by index.html (family), dig-next-2.html, dig-next-4/6.html
   Imagery philosophy: photos melt into the near-black canvas via
   feathered masks + neon glow bleeds — no hard borders, no boxes.
   ============================================================ */
:root{
  --bg:#0A0B10; --bg-2:#0D0E14; --surface:#14151C; --surface-2:#1B1D27; --line:#262A38;
  --cyan:#19E3FF; --violet:#8E5BFF; --magenta:#FF2DAE; --amber:#FFB020;
  --text:#F2F4F8; --muted:#9AA0AE; --muted-2:#5C6270;
  --spectrum:linear-gradient(90deg,var(--cyan),var(--violet),var(--magenta));
  --glow-cyan:0 0 24px rgba(25,227,255,.45),0 0 64px rgba(25,227,255,.18);
  --glow-amber:0 0 22px rgba(255,176,32,.45),0 0 60px rgba(255,176,32,.18);
  --radius:14px; --maxw:1140px; --ease:cubic-bezier(.22,.61,.36,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:'Space Grotesk','Inter',sans-serif;font-weight:600;line-height:1.06;margin:0;letter-spacing:-.02em}
p{margin:0}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace}

/* backdrop */
.backdrop{position:fixed;inset:0;z-index:-2;pointer-events:none}
.grid{position:absolute;inset:0;opacity:.28;
  background:repeating-linear-gradient(0deg,transparent 0 47px,rgba(38,42,56,.5) 47px 48px),
             repeating-linear-gradient(90deg,transparent 0 47px,rgba(38,42,56,.5) 47px 48px);
  -webkit-mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 80%);
  mask-image:radial-gradient(120% 90% at 50% 0%,#000 30%,transparent 80%)}
.vignette{position:absolute;inset:0;
  background:radial-gradient(120% 80% at 50% -10%,rgba(25,227,255,.06),transparent 55%),
             radial-gradient(100% 60% at 90% 110%,rgba(255,45,174,.06),transparent 60%)}
.signal{position:fixed;top:0;left:0;right:0;height:2px;background:var(--spectrum);
  background-size:200% 100%;animation:slide 8s linear infinite;z-index:60;opacity:.9}
@keyframes slide{to{background-position:200% 0}}

/* layout */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
section{padding:88px 0;position:relative}
.divider{border-top:1px solid var(--line)}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:'JetBrains Mono',monospace;font-size:12px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.eyebrow::before{content:"";width:22px;height:2px;border-radius:2px;background:var(--spectrum)}
.sec-head{max-width:640px}
.sec-head h2{font-size:clamp(28px,4.2vw,46px);margin-top:14px}
.sec-head p{color:var(--muted);margin-top:16px;font-size:17px}

/* nav */
header.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px);
  background:rgba(10,11,16,0);transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
header.nav.scrolled{background:rgba(10,11,16,.72);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;justify-content:space-between;padding:16px 0;gap:18px}
.brand{display:flex;align-items:baseline;gap:11px}
.brand .q{font-family:'Space Grotesk';font-weight:700;font-size:21px}
.brand .q b{color:var(--cyan);text-shadow:var(--glow-cyan)}
.brand .sub{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-2)}
.nav-links{display:flex;gap:20px;font-size:14px;color:var(--muted);margin-left:auto}
.nav-links a:hover,.nav-links a.active{color:var(--text)}
.cta-mini{font-size:13px;color:#1a1205;background:var(--amber);padding:9px 15px;border-radius:9px;font-weight:600;box-shadow:var(--glow-amber)}
.cta-mini:hover{box-shadow:0 0 30px rgba(255,176,32,.6)}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;margin-left:8px;flex-direction:column;gap:5px}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:transform .25s,opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:880px){
  .nav-toggle{display:inline-flex}
  .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;margin:0;background:rgba(10,11,16,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height .32s ease,opacity .25s}
  .nav-links.open{max-height:78vh;opacity:1;visibility:visible}
  .nav-links a{padding:14px 28px;font-size:15.5px;border-top:1px solid rgba(255,255,255,.05)}
}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:15px;padding:13px 22px;border-radius:11px;
  cursor:pointer;border:1px solid transparent;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--amber);color:#1a1205;box-shadow:var(--glow-amber)}
.btn-primary:hover{box-shadow:0 0 30px rgba(255,176,32,.6),0 0 80px rgba(255,176,32,.25);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--cyan);box-shadow:var(--glow-cyan);color:#fff}
.btn .dot{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}

/* ===== IMAGERY — feather into the canvas, glow, no borders ===== */
.shot{position:relative}
.shot img{display:block;width:100%;height:auto}
.shot.glow::before{content:"";position:absolute;inset:-8% -6%;z-index:-1;border-radius:30px;
  background:radial-gradient(60% 70% at 50% 55%,rgba(25,227,255,.20),transparent 70%),
            radial-gradient(50% 60% at 80% 30%,rgba(255,45,174,.16),transparent 70%);filter:blur(26px)}
/* radial feather: dissolves the rectangular edge of dark studio shots */
.feather img{
  -webkit-mask-image:radial-gradient(135% 130% at 50% 48%,#000 60%,rgba(0,0,0,0) 100%);
  mask-image:radial-gradient(135% 130% at 50% 48%,#000 60%,rgba(0,0,0,0) 100%)}
/* near-black neon shots: let true blacks fuse with the page */
.blend img{mix-blend-mode:lighten}
/* full-bleed banner image with soft top/bottom fade */
.bleed{position:relative;line-height:0}
.bleed img{width:100%;height:clamp(360px,56vh,640px);object-fit:cover}
.bleed::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,var(--bg),transparent 16%,transparent 80%,var(--bg))}

/* hero */
.hero{padding-top:46px;padding-bottom:20px}
.hero h1{font-size:clamp(46px,8.5vw,108px);font-weight:700;margin-top:18px}
.hero h1 .glow-t{color:#fff;text-shadow:0 0 28px rgba(255,255,255,.25)}
.hero .lead{max-width:560px;margin-top:22px;color:var(--muted);font-size:18px}
.hero .cta{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap}
.hero-stage{position:relative;margin-top:48px}
.hero-stage .shot.blend img{
  -webkit-mask-image:radial-gradient(120% 120% at 50% 45%,#000 58%,rgba(0,0,0,0) 100%);
  mask-image:radial-gradient(120% 120% at 50% 45%,#000 58%,rgba(0,0,0,0) 100%)}
.hero-stage .floor{position:absolute;left:8%;right:8%;bottom:6%;height:2px;background:var(--spectrum);opacity:.7;filter:blur(.3px)}
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.chip{font-family:'JetBrains Mono',monospace;font-size:12.5px;color:var(--text);padding:8px 13px;border:1px solid var(--line);
  border-radius:8px;background:rgba(20,21,28,.6);position:relative}
.chip::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:var(--spectrum);opacity:.7;border-radius:2px}

/* band copy overlay */
.band{position:relative}
.band .band-copy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center}
.band .band-copy .in{max-width:var(--maxw);margin:0 auto;padding:0 28px;width:100%}
.band .scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(7,8,9,.86),rgba(7,8,9,.2) 55%,transparent)}
.band h2{font-size:clamp(30px,4.6vw,52px);max-width:14ch}
.band p{color:var(--muted);max-width:48ch;margin-top:16px;font-size:17px}

/* feature cards */
.cards{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:44px}
.card{flex:1 1 300px;max-width:360px;position:relative;border:1px solid var(--line);border-radius:var(--radius);padding:26px;
  background:linear-gradient(180deg,var(--surface),#101119);overflow:hidden;transition:transform .3s var(--ease),border-color .3s}
.card:hover{transform:translateY(-4px);border-color:rgba(25,227,255,.4)}
.card .edge{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--spectrum);opacity:.85}
.card .ico{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;margin-bottom:16px;font-size:20px;
  background:var(--surface-2);border:1px solid var(--line);color:var(--cyan);box-shadow:inset 0 0 18px rgba(25,227,255,.12)}
.card h3{font-size:19px;margin-bottom:8px}
.card p{color:var(--muted);font-size:14.5px}

/* ===== LINEUP (product family) ===== */
.lineup{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
@media(max-width:860px){.lineup{grid-template-columns:1fr}}
.prod{position:relative;border:1px solid var(--line);border-radius:18px;overflow:hidden;
  background:linear-gradient(180deg,var(--surface),#0e0f16);display:flex;flex-direction:column;transition:transform .3s var(--ease),border-color .3s}
.prod:hover{transform:translateY(-5px);border-color:rgba(25,227,255,.4)}
.prod .pic{aspect-ratio:4/3;position:relative;overflow:hidden;background:#070809}
.prod .pic img{width:100%;height:100%;object-fit:cover}
.prod .body{padding:22px;display:flex;flex-direction:column;gap:8px;flex:1}
.prod .name{font-family:'Space Grotesk';font-weight:700;font-size:24px}
.prod .tag{font-family:'JetBrains Mono';font-size:12px;letter-spacing:.04em;color:var(--muted)}
.prod .status{position:absolute;top:14px;left:14px;font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;padding:6px 11px;border-radius:999px;backdrop-filter:blur(4px)}
.status.live{color:var(--cyan);border:1px solid rgba(25,227,255,.4);background:rgba(25,227,255,.08)}
.status.soon{color:var(--amber);border:1px solid rgba(255,176,32,.4);background:rgba(255,176,32,.08)}
.prod .foot{margin-top:auto;padding-top:14px;display:flex;align-items:center;justify-content:space-between}
.prod .price{font-family:'Space Grotesk';font-weight:700;font-size:20px}
.prod .arrow{font-size:14px;color:var(--cyan)}
.prod.dim{opacity:.96}
.prod.dim .pic{filter:grayscale(.25) brightness(.7)}

/* ===== SAFETY ===== */
.safety{background:linear-gradient(180deg,#0b0c12,#0a0b10)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;margin-top:40px}
.split.rev{grid-template-columns:.95fr 1.05fr}
@media(max-width:880px){.split,.split.rev{grid-template-columns:1fr;gap:30px}}
.prot{list-style:none;padding:0;margin:8px 0 0}
.prot li{display:flex;gap:14px;padding:16px 0;border-bottom:1px dashed var(--line)}
.prot li .k{flex:none;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--amber);
  background:rgba(255,176,32,.08);border:1px solid rgba(255,176,32,.3);font-size:15px}
.prot li b{color:var(--text)}.prot li span{color:var(--muted);font-size:14.5px}
.kicker{margin-top:24px;font-size:15px;color:var(--text)}.kicker b{color:var(--amber)}
.badge{position:absolute;top:16px;left:16px;display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono';
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);border:1px solid rgba(255,176,32,.4);
  border-radius:999px;padding:7px 13px;background:rgba(10,11,16,.55);backdrop-filter:blur(4px);z-index:2}
.badge .pulse{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:var(--glow-amber);animation:breathe 2.4s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}

/* ===== SPECS ===== */
.spec-table{width:100%;border-collapse:collapse;font-size:14.5px}
.spec-table tr{border-bottom:1px solid var(--line)}
.spec-table td{padding:13px 0;vertical-align:top}
.spec-table td:first-child{color:var(--muted-2);font-family:'JetBrains Mono';font-size:12.5px;letter-spacing:.04em;width:42%;text-transform:uppercase}
.spec-table td:last-child{color:var(--text)}
.spec-table td b{color:var(--cyan);font-weight:500}

/* ===== DOCS ===== */
.docs{background:linear-gradient(180deg,#0a0b10,#0c0d13)}
.doc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:36px}
.doc{display:flex;flex-direction:column;gap:6px;padding:18px 20px;border:1px solid var(--line);border-radius:12px;
  background:rgba(20,21,28,.5);transition:transform .25s var(--ease),border-color .25s,background .25s}
.doc:hover{transform:translateY(-3px);border-color:rgba(25,227,255,.45);background:rgba(25,227,255,.05)}
.doc .t{font-weight:600;font-size:15px;display:flex;align-items:center;justify-content:space-between}
.doc .t .ar{color:var(--cyan)}
.doc .d{color:var(--muted);font-size:13px}
.doc .n{font-family:'JetBrains Mono';font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2)}

/* in-your-home gallery (FLUX.2 scenes) */
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:40px}
.scene{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:linear-gradient(180deg,#101119,#070809)}
.scene img{width:100%;height:100%;object-fit:cover}
.scene .cap{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;font-size:13px;color:var(--text);
  background:linear-gradient(180deg,transparent,rgba(7,8,9,.82))}
.scene.placeholder{display:grid;place-items:center;border:1px dashed rgba(25,227,255,.25)}
.scene.placeholder span{font-family:'JetBrains Mono';font-size:11px;color:var(--muted-2);letter-spacing:.08em;text-align:center;padding:0 18px}

/* ===== BUY ===== */
.buy{text-align:center;background:radial-gradient(60% 90% at 50% 120%,rgba(142,91,255,.18),transparent 60%),linear-gradient(180deg,#0b0c12,#090a0e)}
.buy h2{font-size:clamp(32px,5vw,56px)}
.buy .price{font-family:'Space Grotesk';font-weight:700;font-size:60px;margin:18px 0 6px}
.buy .price .cur{color:var(--cyan);font-size:30px;vertical-align:super;text-shadow:var(--glow-cyan)}
.buy .sub{color:var(--muted)}
.buy .cta{display:flex;gap:14px;justify-content:center;margin-top:30px;flex-wrap:wrap}
.buy .retailers{margin-top:26px;font-family:'JetBrains Mono';font-size:12.5px;color:var(--muted-2);letter-spacing:.05em}
.buy .wled{margin-top:14px;font-size:13px;color:var(--muted)}

/* coming-soon hero (DN4/6) */
.soon-hero{min-height:64vh;display:flex;flex-direction:column;justify-content:center}
.soon-hero .tagline{font-family:'JetBrains Mono';color:var(--amber);letter-spacing:.16em;text-transform:uppercase;font-size:13px}
.soon-hero h1{font-size:clamp(44px,8vw,96px);margin:16px 0}
.soon-hero p{max-width:52ch;color:var(--muted);font-size:18px}
.soon-hero .cta{margin-top:32px;display:flex;gap:14px;flex-wrap:wrap}

/* footer */
footer{padding:46px 0 70px;color:var(--muted-2);font-family:'JetBrains Mono';font-size:12px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;border-top:1px solid var(--line)}
footer a:hover{color:var(--cyan)}
.foot-links{display:flex;gap:20px;flex-wrap:wrap}

/* ===== logo in nav ===== */
.brand{display:flex;align-items:center;gap:13px}
.logo-img{height:27px;width:auto;display:block}
.brand .sub{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);border-left:1px solid var(--line);padding-left:13px;line-height:1.3;max-width:130px}
@media(max-width:640px){.brand .sub{display:none}}

/* ===== WLED band ===== */
.wled-band{background:linear-gradient(180deg,#0a0b10 0%,#0e1019 50%,#0a0b10 100%);border-top:0}
.wled-in{display:flex;align-items:center;gap:32px;justify-content:center;flex-wrap:wrap;text-align:left}
.wled-in .mark{height:58px;width:auto;flex:none;filter:drop-shadow(0 0 22px rgba(25,227,255,.22))}
.wled-in .txt{max-width:46ch}
.wled-in .txt h3{font-size:22px;margin-bottom:7px}
.wled-in .txt p{color:var(--muted);font-size:15px}
.wled-in .txt a{color:var(--cyan)}
@media(max-width:620px){.wled-in{flex-direction:column;gap:18px;text-align:center}}

/* ===== video band ===== */
.video-link{position:relative;display:block;border-radius:18px;overflow:hidden;border:1px solid var(--line);max-width:720px;margin:34px auto 0;background:#070809}
.video-link img{width:100%;height:auto;display:block;opacity:.82;transition:opacity .3s,transform .5s var(--ease)}
.video-link:hover img{opacity:1;transform:scale(1.03)}
.video-link .play{position:absolute;inset:0;display:grid;place-items:center}
.video-link .play i{width:74px;height:74px;border-radius:50%;background:rgba(255,176,32,.94);display:grid;place-items:center;color:#1a1205;font-style:normal;font-size:26px;padding-left:5px;box-shadow:var(--glow-amber)}
.video-link .vlabel{position:absolute;left:0;right:0;bottom:0;padding:30px 18px 14px;font-size:13.5px;color:#fff;font-family:'JetBrains Mono';background:linear-gradient(180deg,transparent,rgba(7,8,9,.86))}

/* ===== wiring diagram ===== */
.wiring .diagram{margin-top:34px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#0d0e15,#090a0e);padding:20px}
.wiring .diagram svg{width:100%;height:auto;display:block}
.wiring .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
@media(max-width:760px){.wiring .steps{grid-template-columns:1fr}}
.wstep{display:flex;gap:12px}
.wstep .num{font-family:'JetBrains Mono';color:var(--cyan);font-size:13px;flex:none;width:26px}
.wstep p{color:var(--muted);font-size:14px}.wstep b{color:var(--text)}

/* ===== gallery (clickable + controller badge) ===== */
.scene{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:#070809;display:block;cursor:zoom-in}
.scene>img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}
.scene:hover>img{transform:scale(1.05)}
.scene .zoom{position:absolute;top:11px;right:11px;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;
  background:rgba(10,11,16,.5);backdrop-filter:blur(4px);color:#fff;font-size:13px;border:1px solid rgba(255,255,255,.14);z-index:2}
.scene .scene-badge{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:11px;padding:30px 14px 13px;z-index:2;
  background:linear-gradient(180deg,transparent,rgba(7,8,9,.92))}
.scene .scene-badge .dev{flex:none;width:46px;height:34px;border-radius:7px;object-fit:cover;border:1px solid rgba(25,227,255,.4);box-shadow:0 0 14px rgba(25,227,255,.22)}
.scene .scene-badge .cap b{display:block;font-size:13px;color:#fff;line-height:1.25}
.scene .scene-badge .cap span{font-size:11px;color:var(--muted)}

/* ===== lightbox ===== */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(5,6,9,.93);display:none;align-items:center;justify-content:center;padding:30px;backdrop-filter:blur(7px)}
.lightbox.open{display:flex}
.lightbox img{max-width:92vw;max-height:86vh;border-radius:12px;box-shadow:0 30px 100px rgba(0,0,0,.7)}
.lightbox .x{position:absolute;top:18px;right:26px;font-size:30px;color:#fff;cursor:pointer}
.lightbox .lcap{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#cfd3db;font-family:'JetBrains Mono';font-size:13px}

/* ===== FAQ accordion ===== */
.faq-list{margin-top:34px;border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;padding:20px 46px 20px 4px;position:relative;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:17.5px;color:var(--text);transition:color .2s}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:'JetBrains Mono',monospace;font-size:22px;color:var(--cyan);line-height:1}
.faq-item[open] summary::after{content:"\2212"}
.faq-item summary:hover{color:var(--cyan)}
.faq-a{padding:0 46px 22px 4px;color:var(--muted);font-size:15px;line-height:1.66;max-width:78ch}
.faq-a a{color:var(--cyan)}

/* ===== Help section: FAQ + docs side by side ===== */
.help-grid{display:grid;grid-template-columns:1.5fr .9fr;gap:42px;margin-top:36px;align-items:start}
.help-grid .faq-list{margin-top:0}
.doc-panel{border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,var(--surface),#0e0f16);padding:22px;position:sticky;top:84px}
.doc-panel-h{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2);margin-bottom:6px}
.doc-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--text);transition:color .2s,padding-left .2s}
.doc-row span{color:var(--cyan);font-family:'JetBrains Mono',monospace}
.doc-row:hover{color:var(--cyan);padding-left:6px}
.doc-help{margin-top:18px;padding:16px 18px;border-radius:12px;background:rgba(25,227,255,.05);border:1px solid rgba(25,227,255,.22)}
.doc-help b{color:var(--text);font-size:15px}
.doc-help p{color:var(--muted);font-size:13px;margin:6px 0 13px}
@media(max-width:880px){.help-grid{grid-template-columns:1fr;gap:28px}.doc-panel{position:static}}

/* ===== "Built-in mic" chip: dancing equalizer background ===== */
.chip-eq{position:relative}
.chip-eq .eq{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;gap:3px;padding:5px 9px;z-index:0;opacity:.45;pointer-events:none}
.chip-eq .eq i{flex:0 0 3px;height:100%;border-radius:2px;transform:scaleY(.25);transform-origin:bottom;background:linear-gradient(180deg,var(--cyan),var(--magenta));animation:eqbar 820ms ease-in-out infinite alternate}
.chip-eq .eq i:nth-child(1){animation-duration:720ms;animation-delay:-340ms}
.chip-eq .eq i:nth-child(2){animation-duration:900ms;animation-delay:-120ms}
.chip-eq .eq i:nth-child(3){animation-duration:640ms;animation-delay:-260ms}
.chip-eq .eq i:nth-child(4){animation-duration:980ms;animation-delay:-60ms}
.chip-eq .eq i:nth-child(5){animation-duration:760ms;animation-delay:-420ms}
.chip-eq .eq i:nth-child(6){animation-duration:880ms;animation-delay:-200ms}
.chip-eq .eq i:nth-child(7){animation-duration:700ms;animation-delay:-500ms}
.chip-eq .eq-label{position:relative;z-index:1;text-shadow:0 1px 5px rgba(10,11,16,.95)}
@keyframes eqbar{from{transform:scaleY(.22)}to{transform:scaleY(1)}}

/* ===== Hero v2: text overlaid on the product image (compact) ===== */
.hero2{position:relative;overflow:hidden;min-height:clamp(460px,64vh,640px);display:flex;align-items:center}
.hero2 .h2bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero2 .h2bg img{width:100%;height:100%;object-fit:cover;object-position:center;mix-blend-mode:lighten}
.hero2 .h2bg::after{content:none}
.hero2 .h2in{position:relative;z-index:2;max-width:var(--maxw);margin:0 auto;padding:60px 28px;width:100%}
.hero2 h1{font-size:clamp(42px,7.4vw,92px);font-weight:700;margin-top:16px;line-height:1.05}
.hero2 h1 .glow-t{color:#fff;text-shadow:0 0 28px rgba(255,255,255,.25)}
.hero2 .lead{max-width:440px;margin-top:20px;color:var(--muted);font-size:17.5px}
.hero2 .cta{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.hero2 .chips{margin-top:28px;max-width:520px}
@media(max-width:820px){
  .hero2{min-height:auto}
  .hero2 .h2bg{width:100%;object-position:center bottom}
  .hero2 .h2in{padding-bottom:175px}
  .hero2 .lead{max-width:none}
}

/* enlarge + bleed the feature split images (safety / specs) so the text flows over them, not a boxed square */
.split .shot{width:calc(100% + 160px);margin-left:-60px;position:relative;z-index:0}
.split .shot img{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 58%,transparent 88%),linear-gradient(180deg,transparent 0,#000 17%,#000 83%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0,#000 14%,#000 58%,transparent 88%),linear-gradient(180deg,transparent 0,#000 17%,#000 83%,transparent 100%);mask-composite:intersect}
.split .shot.glow::before{display:none}
.split > div:not(.shot), .split table{position:relative;z-index:1}
@media(max-width:880px){.split .shot{width:100%;margin-left:0}}

/* tighten the gap between the WLED band and the Safety section header */
#safety{padding-top:10px}
/* breathing room below content sections that would otherwise butt straight into the next */
#specs, #home, #watch, section.wiring{padding-bottom:28px}
/* features now flows straight into Safety (WLED band removed → folded into a card) */
#features{padding-bottom:22px}
/* WLED logo badge, top-right of the merged software card */
.card .wled-badge, .card .quinled-badge{position:absolute;top:22px;right:22px;height:46px;width:auto}
.card .quinled-badge{height:41px}
.card.wled-card h3{padding-right:96px}
/* reseller names: same look as the surrounding text, cyan on hover — no rest-state underline */
.buy .retailers a{color:inherit;text-decoration:none}
.buy .retailers a:hover{color:var(--cyan)}
/* FAQ / Guide sub-pages: page H1 + category headings */
.sec-head h1{font-size:clamp(30px,5vw,50px);margin-top:14px;line-height:1.06}
.faq-cat{font-family:'Space Grotesk',sans-serif;font-size:18px;font-weight:600;color:var(--cyan);margin:42px 0 6px;padding-bottom:12px;border-bottom:1px solid var(--line);scroll-margin-top:90px;display:flex;align-items:center;gap:11px}
.faq-cat::before{content:"";width:20px;height:3px;border-radius:2px;background:var(--spectrum);flex:none}
.faq-cat:first-child{margin-top:14px}
/* WLED brand links + wire-color words */
.wled-link{color:inherit;text-decoration:none}
.wled-link:hover{text-decoration:underline}
.wire-k{color:#c2c7d0;font-weight:600}
.wire-d{color:#34E36B;font-weight:600}
.wire-v{color:#FF4D5E;font-weight:600}
.wire-in{color:var(--amber);font-weight:600}
/* clear the sticky nav when jumping to a section anchor */
#features,#safety,#specs,#wiring,#home,#watch,#faq{scroll-margin-top:80px}
/* Guide page: needs grid + numbered steps */
.needs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:30px}
.needs .need{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:linear-gradient(180deg,var(--surface),#0e0f16)}
.needs .need b{display:block;font-family:'Space Grotesk',sans-serif;font-size:15px;color:var(--text);margin-bottom:5px}
.needs .need span{color:var(--muted);font-size:13.5px;line-height:1.55}
.guide-step{display:grid;grid-template-columns:auto 1fr;gap:22px;padding:28px 0;border-top:1px solid var(--line);scroll-margin-top:90px}
.guide-step:first-child{border-top:none;padding-top:16px}
.guide-step .gnum{font-family:'JetBrains Mono',monospace;font-weight:600;font-size:15px;color:#0a0b10;background:var(--spectrum);width:42px;height:42px;border-radius:12px;display:grid;place-items:center}
.guide-step h3{font-size:21px;margin-bottom:10px}
.guide-step p{color:var(--muted);font-size:15.5px;line-height:1.7;max-width:72ch}
.guide-step .gtip{margin-top:12px;background:rgba(25,227,255,.06);border:1px solid rgba(25,227,255,.2);border-radius:10px;padding:11px 14px;font-size:14px;color:var(--text);line-height:1.6}
.guide-step .gtip::before{content:"Tip: ";color:var(--cyan);font-weight:600}
@media(max-width:760px){.needs{grid-template-columns:1fr}}
@media(max-width:620px){.guide-step{grid-template-columns:1fr;gap:12px}}
/* product-page indicative price + "browse all FAQ" link */
.buy .price{font-family:'JetBrains Mono',monospace;font-size:15px;color:var(--text);margin-top:16px}
.buy .price b{color:var(--amber);font-size:18px}
.buy .price span{color:var(--muted-2);font-size:12px;letter-spacing:.04em}
.faq-more{display:inline-flex;align-items:center;gap:8px;margin-top:24px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:15px;color:var(--cyan)}
.faq-more span{font-family:'JetBrains Mono',monospace}
.faq-more:hover{gap:12px}

/* ===== Motion: scroll-reveal + micro-interactions (reduced-motion respected below) ===== */
html{scroll-behavior:smooth}
/* reveal: hidden only when html.reveal-js is set (JS on + motion allowed); content stays visible otherwise */
html.reveal-js .sec-head,
html.reveal-js .cards .card,
html.reveal-js .lineup .prod,
html.reveal-js .split,
html.reveal-js .gallery .scene,
html.reveal-js .guide-step,
html.reveal-js .needs .need,
html.reveal-js .diagram{opacity:0;transform:translateY(20px);transition:opacity .5s ease-out, transform .5s ease-out}
html.reveal-js .sec-head.shown,html.reveal-js .cards .card.shown,html.reveal-js .lineup .prod.shown,html.reveal-js .split.shown,html.reveal-js .gallery .scene.shown,html.reveal-js .guide-step.shown,html.reveal-js .needs .need.shown,html.reveal-js .diagram.shown{opacity:1;transform:none}
/* hero word: slow ambient glow breathing */
@keyframes glowdrift{0%,100%{text-shadow:0 0 26px rgba(255,255,255,.2)}50%{text-shadow:0 0 44px rgba(255,255,255,.45)}}
.glow-t{animation:glowdrift 6s ease-in-out infinite}
/* amber CTA: soft sheen sweep on hover (press feedback already on .btn:active) */
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.3),transparent);transform:skewX(-18deg);pointer-events:none}
.btn-primary:hover::after{animation:sheen .6s ease}
@keyframes sheen{to{left:140%}}

@media(prefers-reduced-motion:reduce){*{animation:none !important;scroll-behavior:auto}}

/* community / founder trust line */
.proof{margin:26px auto 0;max-width:62ch;text-align:center;font-size:14px;color:var(--muted);line-height:1.65}
.proof b{color:var(--text);font-family:'JetBrains Mono',monospace;font-weight:500}
.proof a{color:var(--cyan);text-decoration:none}
.proof a:hover{text-decoration:underline}

/* buyer's guide, capsules & info lines */
.capsule{max-width:74ch;margin:0 auto;padding:18px 22px;border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:12px;background:linear-gradient(180deg,var(--surface),rgba(14,15,22,.6));color:var(--muted);font-size:15.5px;line-height:1.7}
.capsule b{color:var(--text)}
.capsule a.wled-link{color:var(--text);font-weight:600}
.updated{font-family:'JetBrains Mono',monospace;font-size:11.5px;color:var(--muted-2);letter-spacing:.12em;text-transform:uppercase}
.price-hint{margin-top:16px;font-size:14px;color:var(--muted)}
.price-hint b{color:var(--amber);font-family:'JetBrains Mono',monospace}
.price-hint a{color:var(--muted);text-decoration:none}
.price-hint a:hover{color:var(--cyan)}
.cmp-wrap{overflow-x:auto;margin-top:30px}
.cmp{width:100%;min-width:680px;border-collapse:collapse;font-size:14.5px}
.cmp th,.cmp td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.55}
.cmp thead th{font-family:'Space Grotesk',sans-serif;font-size:14px;color:var(--text);border-bottom:2px solid rgba(25,227,255,.35)}
.cmp thead th:last-child{color:var(--cyan)}
.cmp td:first-child{color:var(--muted);font-family:'JetBrains Mono',monospace;font-size:12.5px}
.cmp td{color:var(--muted)}
.cmp td b{color:var(--text)}
.cmp .yes{color:#34E36B;font-weight:600}
.cmp .no{color:#FF4D5E}
.cmp .meh{color:var(--amber)}
.cmp td a{color:var(--cyan);text-decoration:none}
.preflight{max-width:72ch;margin:18px auto 0;padding-left:22px;color:var(--muted);font-size:15px;line-height:1.8}
.preflight li{margin-bottom:8px}
.preflight li::marker{color:var(--cyan)}
#faq{padding-bottom:30px}  /* breathing room under the "Browse all questions" link */

