:root{--bg: #0a0c10;--bg-soft: #11141b;--panel: #141821;--line: #232936;--line-soft: #1b2029;--ink: #e7ebf2;--ink-dim: #9aa4b2;--ink-faint: #5b6473;--accent: #41f0a0;--accent-ink: #04130c;--warn: #f0c641;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "JetBrains Mono", "SFMono-Regular", "Menlo", monospace;--step--1: .82rem;--step-0: 1rem;--step-1: 1.33rem;--step-2: 1.78rem;--step-3: 2.37rem;--step-4: clamp(2.6rem, 1.6rem + 4vw, 4.2rem);--sp-1: .5rem;--sp-2: .875rem;--sp-3: 1.25rem;--sp-4: 2rem;--sp-5: 3.25rem;--sp-6: 5rem;--radius: 10px;--maxw: 1080px}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased;background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:44px 44px;background-position:-1px -1px}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--sp-3)}.section{padding-block:var(--sp-6)}.section+.section{border-top:1px solid var(--line-soft)}h1,h2,h3{line-height:1.1;letter-spacing:-.02em;margin:0;font-weight:650}h1{font-size:var(--step-4)}h2{font-size:var(--step-2)}p{margin:0 0 var(--sp-2);color:var(--ink-dim)}.kicker{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.accent{color:var(--accent)}.mono{font-family:var(--font-mono)}.chips{display:flex;flex-wrap:wrap;gap:var(--sp-1);list-style:none;padding:0;margin:0}.chip{font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-dim);border:1px solid var(--line);border-radius:999px;padding:2px 10px;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:var(--step--1);color:var(--accent);border:1px solid color-mix(in oklab,var(--accent) 35%,var(--line));background:color-mix(in oklab,var(--accent) 8%,transparent);border-radius:999px;padding:3px 11px}.badge .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 color-mix(in oklab,var(--accent) 60%,transparent);animation:pulse 2.4s infinite}.badge[data-status=submission]{color:var(--warn);border-color:color-mix(in oklab,var(--warn) 35%,var(--line))}.badge[data-status=submission] .dot{background:var(--warn);animation:none}@keyframes pulse{0%{box-shadow:0 0 color-mix(in oklab,var(--accent) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}to{box-shadow:0 0 0 0 transparent}}@media(prefers-reduced-motion:reduce){.badge .dot{animation:none}html{scroll-behavior:auto}}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:var(--step--1);border-radius:var(--radius);padding:10px 16px;border:1px solid var(--line);color:var(--ink);transition:border-color .15s,transform .15s,background .15s}.btn:hover{border-color:var(--accent);transform:translateY(-1px)}.btn--primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.btn--primary:hover{background:color-mix(in oklab,var(--accent) 88%,white)}.site-head{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-3);background:color-mix(in oklab,var(--bg) 82%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-soft)}.site-head .brand{font-family:var(--font-mono);font-weight:600;letter-spacing:.02em}.site-head .brand .accent{color:var(--accent)}.site-head nav{display:flex;gap:var(--sp-3);font-family:var(--font-mono);font-size:var(--step--1);color:var(--ink-dim)}.site-head nav a:hover{color:var(--ink)}.site-foot{padding-block:var(--sp-4);border-top:1px solid var(--line-soft);color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--step--1)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}html.js .reveal.in{animation:rise .5s ease both}@media(prefers-reduced-motion:reduce){html.js .reveal.in{animation:none}}
