:root{--bg:#07070b;--char:#121219;--navy:#0b1024;--line:rgba(255,255,255,.09);--tx:#e9ebf2;--mut:#9aa0b2;--chrome:linear-gradient(135deg,#fff,#9aa3b2 35%,#eef1f6 55%,#5c6370 80%,#c9ced8);
--digital:#B44CFF;--one:#2EE6C5;--tech:#2F8BFF;--cx:#FF5FA2;--ad:#FFB020;--dev:#7CFF4F;--studio:#FF6A3D;--acc:var(--digital)}
*{box-sizing:border-box;margin:0}html{background:var(--bg)}body{font:16px/1.6 Inter,sans-serif;color:var(--tx);background:var(--bg)}a{color:inherit;text-decoration:none}
.disp,h1,h2{font-family:Michroma,Sora,sans-serif;font-weight:400;letter-spacing:.02em;line-height:1.08}h1{font-size:clamp(36px,6.2vw,92px)}h2{font-size:clamp(26px,3.6vw,52px);margin-bottom:16px}h3{font:600 20px Sora;margin-bottom:6px}
.chrome-tx{background:var(--chrome);-webkit-background-clip:text;background-clip:text;color:transparent}.acc{color:var(--acc)}
.tag{font:600 12px Sora;letter-spacing:.22em;text-transform:uppercase;color:var(--acc);display:block;margin-bottom:14px}
.wrap{width:min(1240px,90vw);margin:0 auto}section{position:relative}
.glass{background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.015));border:1px solid var(--line);border-radius:18px;backdrop-filter:blur(14px);padding:28px}
.ph{font:500 .82em Inter;color:#ffd27a;border:1px dashed #ffd27a88;padding:1px 6px;border-radius:4px;white-space:nowrap}
.gen{position:absolute;right:10px;bottom:8px;font:10px Inter;color:#fff8;background:#0008;padding:2px 6px;border-radius:4px}
.hdr{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:18px 3.5vw;background:linear-gradient(#07070bdd,transparent)}
.logo{display:flex;align-items:center;gap:12px;font:13px Michroma;letter-spacing:.12em}.logo img{width:38px;filter:hue-rotate(var(--acc-hue,0deg)) drop-shadow(0 0 10px color-mix(in srgb,var(--acc) 53%,transparent))}
.ctl{display:flex;gap:10px}.ctl a{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;background:#0006}
.ctl svg{width:18px;stroke:#fff;fill:none;stroke-width:2}
.grid{display:grid;gap:20px}.mut{color:var(--mut)}
.trace{position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 119px,rgba(255,255,255,.035) 120px),repeating-linear-gradient(0deg,transparent 0 119px,rgba(255,255,255,.035) 120px)}
footer{border-top:1px solid var(--line);padding:56px 0 40px;margin-top:40px}footer .grid{grid-template-columns:2fr 1fr 1fr 1fr}footer a{display:block;color:var(--mut);margin:4px 0}
@media(max-width:760px){.st{grid-template-columns:1fr!important}footer .grid{grid-template-columns:1fr 1fr}.hm{display:none!important}.glass{padding:20px}}
html,body{overflow-x:clip}
/* ===== section themes: ONE token per page/section (data-theme, set by tools/gen.py). Components only read --acc*; never hand-pick a colour.
   --acc-ink is the button text colour, picked per accent for WCAG AA (see docs/section-themes.md); --acc-k1/--acc-k2 are the primary fill stops. ===== */
:root,[data-theme]{--acc-ink:#fff;--acc-k1:80%;--acc-k2:68%;--acc-ts:0 1px 1px rgba(0,0,0,.25)}
[data-theme=digital]{--acc:var(--digital)}[data-theme=tech]{--acc:var(--tech)}
[data-theme=one]{--acc:var(--one)}[data-theme=cx]{--acc:var(--cx)}[data-theme=ad]{--acc:var(--ad)}[data-theme=dev]{--acc:var(--dev)}[data-theme=studio]{--acc:var(--studio)}
/* logo mark (raster art, violet ring): tinted per theme by rotating hue from DIGITAL violet (~275deg); DIGITAL = 0, art unchanged */
[data-theme=one]{--acc-hue:-106deg}[data-theme=tech]{--acc-hue:-62deg}[data-theme=cx]{--acc-hue:60deg}[data-theme=ad]{--acc-hue:124deg}[data-theme=dev]{--acc-hue:-171deg}[data-theme=studio]{--acc-hue:99deg}
::selection{background:color-mix(in srgb,var(--acc) 40%,transparent);color:#fff}
html{scrollbar-color:color-mix(in srgb,var(--acc) 55%,#1a1a22) #07070b}
[data-theme=one],[data-theme=cx],[data-theme=ad],[data-theme=dev],[data-theme=studio]{--acc-ink:#05060c;--acc-k1:100%;--acc-k2:86%;--acc-ts:none}

