@font-face{font-family:Newsreader;src:url(assets/fonts/newsreader.woff2);font-weight:200 800}
@font-face{font-family:Newsreader;src:url(assets/fonts/newsreader-italic.woff2);font-style:italic;font-weight:200 800}
@font-face{font-family:Inter;src:url(assets/fonts/inter.woff2);font-weight:100 900}
@font-face{font-family:Plex;src:url(assets/fonts/plexmono.woff2)}
:root{--bg:#0A0E17;--card:#111827;--fg:#D9DEE6;--mut:#8A96A8;--acc:#C99552;--teal:#4E9A76;--line:rgba(200,210,220,.14)}
body.light{--bg:#FAF8F3;--card:#EFEBE2;--fg:#1A1F1C;--mut:#5E6B73;--acc:#B07D3A;--teal:#2A7B6F;--line:rgba(20,25,23,.15)}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font:16px/1.6 Inter,sans-serif;transition:background .6s,color .6s}
nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;gap:22px;align-items:center;padding:14px 4vw;backdrop-filter:blur(14px);background:color-mix(in srgb,var(--bg) 70%,transparent);border-bottom:1px solid var(--line);font:12px Plex,monospace;letter-spacing:.14em;text-transform:uppercase}
nav a{color:var(--mut);text-decoration:none}nav a:hover{color:var(--acc)}nav .sp{flex:1}
button,.btn{font:12px Plex,monospace;letter-spacing:.12em;text-transform:uppercase;padding:10px 16px;border:1px solid var(--acc);background:transparent;color:var(--acc);cursor:pointer;text-decoration:none;border-radius:2px;transition:.3s}
button:hover,.btn:hover{background:var(--acc);color:var(--bg)}
#hero{position:relative;height:100vh;display:flex;align-items:center;padding:0 6vw;overflow:hidden}
#osc{position:absolute;inset:0;width:100%;height:100%}
.hero-t{position:relative;max-width:820px}
.kick{font:12px Plex,monospace;letter-spacing:.3em;text-transform:uppercase;color:var(--acc)}
h1{font:300 clamp(48px,8vw,118px)/.95 Newsreader,serif;letter-spacing:-.02em;margin:18px 0}
h2{font:300 clamp(34px,4.4vw,60px)/1.05 Newsreader,serif;margin:10px 0 18px}
h3{font:400 24px/1.2 Newsreader,serif;margin-bottom:8px}
.lead{font:italic 300 22px/1.4 Newsreader,serif;color:var(--mut);max-width:720px;margin-bottom:28px}
section.s{padding:120px 6vw;border-top:1px solid var(--line)}
.grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.card{background:var(--card);padding:22px;border-top:2px solid var(--acc)}
.card.t{border-top-color:var(--teal)}
video,.zoom{width:100%;display:block;border:1px solid var(--line)}
.zoom{cursor:zoom-in;transition:transform .5s}.zoom:hover{transform:scale(1.015)}
canvas.sim{width:100%;height:320px;background:#05080F;border:1px solid var(--line);display:block}
label{font:12px Plex,monospace;color:var(--mut);display:block;margin-top:10px}input[type=range]{width:100%;accent-color:var(--acc)}
.mono{font:13px Plex,monospace;color:var(--acc)}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.pair div{padding:14px;background:color-mix(in srgb,var(--card) 80%,var(--acc) 6%);font-size:14px}
.pair b{display:block;font:11px Plex,monospace;letter-spacing:.14em;color:var(--acc);margin-bottom:6px}
.pair div+div b{color:var(--teal)}
table{width:100%;border-collapse:collapse;font-size:13px}th{font:11px Plex,monospace;text-align:left;color:var(--acc);border-bottom:1px solid var(--acc);padding:6px;position:sticky;top:0;background:var(--card)}
td{padding:5px 6px;border-bottom:1px solid var(--line)}.tw{max-height:520px;overflow:auto}
input[type=search],select{padding:10px;background:var(--card);color:var(--fg);border:1px solid var(--line);font:14px Inter;margin-right:8px}
.rev{opacity:0;transform:translateY(40px);transition:opacity 1s,transform 1s}.rev.on{opacity:1;transform:none}
#lb{position:fixed;inset:0;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;z-index:99;cursor:zoom-out}#lb img{max-width:96vw;max-height:94vh}
footer{padding:60px 6vw;color:var(--mut);font:12px Plex,monospace;border-top:1px solid var(--line)}
