:root {
  --accent:#5e9fa4; --accent-light:#8bc8cc; --accent-dark:#39777c;
  --bg:#081417; --bg-alt:#0d1c20; --card:#102328; --text:#e6f3f4;
  --muted:#7fa5a9; --line:rgba(120,190,195,.16); --glass:rgba(8,20,23,.76);
  --glow:rgba(94,159,164,.22); --shadow:0 28px 80px rgba(0,0,0,.3);
}
[data-theme="light"] {
  --bg:#f7fbfb; --bg-alt:#edf5f5; --card:#fff; --text:#102427;
  --muted:#63878b; --line:rgba(49,112,118,.15); --glass:rgba(247,251,251,.82);
  --glow:rgba(94,159,164,.16); --shadow:0 28px 80px rgba(46,92,96,.14);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:"DM Sans",sans-serif;transition:background .35s,color .35s;overflow-x:hidden}
button{font:inherit}
svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ambient{position:fixed;border-radius:50%;filter:blur(2px);pointer-events:none;z-index:-1}
.ambient-one{width:48rem;height:48rem;right:-22rem;top:-20rem;background:radial-gradient(circle,var(--glow),transparent 68%)}
.ambient-two{width:35rem;height:35rem;left:-22rem;top:38rem;background:radial-gradient(circle,var(--glow),transparent 70%)}
.topbar{height:70px;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1.2rem,4vw,3.5rem);border-bottom:1px solid var(--line);background:var(--glass);backdrop-filter:blur(22px)}
.brand{display:flex;align-items:center;gap:.7rem;color:var(--text);font-family:Outfit,sans-serif;font-size:1.14rem;font-weight:800;text-decoration:none;letter-spacing:-.02em}
.brand>span:last-child span{color:var(--accent-light)}
.brand-mark{width:35px;height:35px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:var(--glow);color:var(--accent-light)}
.brand-mark svg{width:23px;height:23px}
.top-actions{display:flex;align-items:center;gap:.7rem}
.system-pill,.legend,.status{display:flex;align-items:center;gap:.45rem;font-size:.72rem;color:var(--muted)}
.system-pill{padding:.46rem .8rem;border:1px solid var(--line);border-radius:999px;background:var(--card)}
.system-pill i,.legend i,.status i,.live-badge i{display:block;width:7px;height:7px;border-radius:50%;background:#55c991;box-shadow:0 0 12px rgba(85,201,145,.7)}
.icon-button{width:37px;height:37px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--muted);display:grid;place-items:center;cursor:pointer;transition:.25s}
.icon-button:hover{color:var(--accent-light);border-color:var(--accent);transform:translateY(-1px)}
.icon-button svg{width:18px;height:18px}.icon-button .sun{display:none}[data-theme="light"] .icon-button .sun{display:block}[data-theme="light"] .icon-button .moon{display:none}
main{width:min(1180px,calc(100% - 2.4rem));margin:auto}
.hero{padding:clamp(5rem,10vw,8.5rem) 0 clamp(4.3rem,8vw,7rem);position:relative}
.eyebrow,.section-heading>div>p,.card-kicker{margin:0;color:var(--accent-light);font-family:Outfit,sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.eyebrow{display:flex;align-items:center;gap:.65rem;margin-bottom:1.1rem}.eyebrow span{width:30px;height:1px;background:var(--accent)}
.hero h1{max-width:920px;margin:0;font-family:Outfit,sans-serif;font-size:clamp(2.8rem,7vw,6rem);font-weight:800;line-height:.94;letter-spacing:-.055em}
.hero h1 em{font-style:normal;color:var(--accent);text-shadow:0 0 55px var(--glow)}
.hero>p{max-width:620px;margin:1.6rem 0 0;color:var(--muted);font-size:clamp(.92rem,1.5vw,1.04rem);line-height:1.8}
.hero-meta{display:flex;gap:2rem;margin-top:2.2rem;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em}.hero-meta strong{color:var(--text);font-family:Outfit,sans-serif;font-size:1.05rem;margin-right:.3rem}
.printers{padding-bottom:7rem}
.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:1.4rem}.section-heading>div>p{margin-bottom:.45rem}.section-heading h2{font-family:Outfit,sans-serif;font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.03em;margin:0}
.legend{padding-bottom:.25rem}.legend i{background:#f15c65;box-shadow:0 0 12px rgba(241,92,101,.6)}
.printer-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:1.2rem;align-items:start}
.printer-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,var(--card),var(--bg-alt));box-shadow:var(--shadow);transition:transform .3s,border-color .3s}
.printer-card:hover{transform:translateY(-3px);border-color:rgba(94,159,164,.42)}
.stream-frame{position:relative;aspect-ratio:16/9;overflow:hidden;background:#061013;isolation:isolate}
.stream-frame>img{width:100%;height:100%;display:block;object-fit:contain;position:relative;z-index:1}
.stream-grid{position:absolute;inset:0;z-index:-1;opacity:.28;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,#000,transparent)}
.stream-idle,.stream-loader,.stream-error{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle at center,var(--glow),transparent 48%);color:var(--muted);font-size:.78rem}
.stream-idle strong,.stream-error strong{color:var(--text);font-family:Outfit,sans-serif;font-size:1rem;margin:1rem 0 .25rem}
.play-orbit{width:82px;height:82px;border:1px solid rgba(94,159,164,.24);border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 13px rgba(94,159,164,.05)}
.play-button{width:54px;height:54px;border:0;border-radius:50%;background:var(--accent);color:white;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 35px var(--glow);transition:.25s}.play-button:hover{transform:scale(1.08);background:var(--accent-light)}.play-button svg{width:23px;height:23px;fill:currentColor;stroke:none;margin-left:3px}
.stream-loader i{width:35px;height:35px;border:2px solid var(--line);border-top-color:var(--accent-light);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:.8rem}
.stream-error button{margin-top:1rem;padding:.55rem .9rem;border:1px solid var(--accent);border-radius:9px;color:var(--accent-light);background:var(--glow);cursor:pointer}
.live-badge{position:absolute;z-index:5;left:1rem;top:1rem;display:flex;align-items:center;gap:.45rem;padding:.38rem .62rem;border-radius:8px;background:rgba(5,12,14,.72);backdrop-filter:blur(8px);font-family:Outfit,sans-serif;font-size:.65rem;font-weight:700;letter-spacing:.12em;color:white}.live-badge i{background:#ff5964;box-shadow:0 0 10px #ff5964;animation:pulse 1.5s infinite}
.fullscreen-button{position:absolute;z-index:5;right:1rem;bottom:1rem;width:36px;height:36px;border:1px solid rgba(255,255,255,.18);border-radius:9px;background:rgba(5,12,14,.68);color:white;display:grid;place-items:center;cursor:pointer}.fullscreen-button svg{width:18px;height:18px}
[hidden]{display:none!important}
.card-body{padding:1.35rem 1.45rem 1.5rem}.printer-title-row{display:flex;justify-content:space-between;align-items:start;gap:1rem}.card-kicker{margin-bottom:.35rem;font-size:.58rem}.printer-title-row h3{font-family:Outfit,sans-serif;font-size:1.35rem;letter-spacing:-.02em;margin:0}
.status{padding:.38rem .62rem;border:1px solid var(--line);border-radius:999px;white-space:nowrap;background:rgba(255,255,255,.025)}.status-offline i{background:#778b8d;box-shadow:none}.status-ready{color:#75bda3}
.printer-specs{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.1rem}.printer-specs span{display:flex;align-items:center;gap:.35rem;padding:.38rem .55rem;border-radius:8px;background:rgba(94,159,164,.07);color:var(--muted);font-size:.69rem}.printer-specs svg{width:14px;height:14px;color:var(--accent)}
.card-actions{display:flex;gap:.55rem;margin-top:1.1rem}.secondary-button{border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--muted);padding:.55rem .75rem;font-size:.72rem;cursor:pointer;transition:.2s}.secondary-button:hover:not(:disabled){color:var(--accent-light);border-color:var(--accent)}.secondary-button:disabled{opacity:.35;cursor:not-allowed}
.placeholder-visual{height:236px;position:relative;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at center,var(--glow),transparent 60%)}
.placeholder-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 40%,rgba(255,255,255,.035),transparent 60%);transform:translateX(-100%);animation:shine 5s infinite}
.printer-outline{width:65%;color:var(--accent);opacity:.4}.printer-outline svg{width:100%;stroke-width:1.2}.coming-soon{position:absolute;top:1rem;right:1rem;border:1px solid var(--line);border-radius:999px;padding:.36rem .58rem;color:var(--accent-light);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;background:var(--glass)}
.placeholder-copy{color:var(--muted);font-size:.78rem;line-height:1.65;margin:1rem 0 0}
footer{max-width:1180px;margin:auto;padding:1.5rem 0 2.5rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:.68rem}footer b{color:var(--accent)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.4}}@keyframes shine{0%,40%{transform:translateX(-100%)}70%,100%{transform:translateX(100%)}}
@media(max-width:820px){.printer-grid{grid-template-columns:1fr}.placeholder-visual{height:280px}.hero{padding-top:4.5rem}.system-pill span{display:none}.system-pill{padding:.55rem}.system-pill i{margin:0}}
@media(max-width:560px){main{width:min(100% - 1.5rem,1180px)}.topbar{padding:0 .8rem}.hero h1{font-size:2.75rem}.hero-meta{gap:1rem;flex-direction:column}.section-heading{align-items:start}.legend{display:none}.printer-card{border-radius:15px}.card-body{padding:1.1rem}.printer-title-row{flex-direction:column}.status{order:-1}.placeholder-visual{height:220px}footer{margin:0 .75rem;gap:1rem;flex-direction:column}.card-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
