@font-face{font-family:Press Start\ 2P;src:url(/fonts/press-start-2p.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:VT323;src:url(/fonts/vt323.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/space-mono-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Space Mono;src:url(/fonts/space-mono-700.woff2) format("woff2");font-weight:700;font-display:swap}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0b0b1e;--surface:#12122b;--surface-2:#1a1a38;--border:#26264a;--border-2:#3a3a68;--text:#e8e8f5;--list:#c6c6de;--secondary:#a9a9c8;--muted:#6d6d94;--accent:#00e5ff;--accent-tint:#9becff;--accent-ink:var(--accent);--yellow-ink:var(--yellow);--ink:#0b0b1e;--scanline:rgba(0,0,0,.22);--magenta:#ff2bd6;--yellow:#ffe14d;--green:#00e08a;--red:#ff4d5e;--blurple:#5865f2;--gold:#ffe14d;--silver:#c0c0d8;--bronze:#cd7f32;--font-pixel:"Press Start 2P",monospace;--font-num:"VT323",monospace;--font-mono:"Space Mono",monospace;--font-archivo:"Space Mono",monospace;--font-spline-mono:"Space Mono",monospace}:root[data-theme=light]{--bg:#f4f4fb;--surface:#fff;--surface-2:#ececf6;--border:#c9c9e0;--border-2:#a9a9c8;--text:#12122b;--list:#26264a;--secondary:#3a3a68;--muted:#6d6d94;--scanline:rgba(0,0,0,.05);--accent-ink:color-mix(in srgb,var(--accent),#0b0b1e 52%);--yellow-ink:color-mix(in srgb,var(--yellow),#0b0b1e 55%);--gold:#a8791b;--silver:#7a7a95}:root[data-theme=light] .card .icon-fallback,:root[data-theme=light] .card img,:root[data-theme=light] .qf-board-swatch,:root[data-theme=light] .qf-demo-swatch{border:1px solid var(--border)}body{background:var(--bg);color:var(--text);font-family:var(--font-mono);line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;background:repeating-linear-gradient(0deg,var(--scanline) 0,var(--scanline) 1px,transparent 1px,transparent 3px)}a{color:var(--accent-ink);text-decoration:none}a:hover{color:var(--yellow-ink)}::selection{background:var(--magenta);color:var(--ink)}h1,h2,h3{font-family:var(--font-pixel);font-weight:400;line-height:1.4;letter-spacing:-.01em}.container{max-width:1240px;margin:0 auto;padding:40px}nav.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:var(--bg);border-bottom:3px solid var(--border)}nav.topbar .brand{font-family:var(--font-pixel);color:var(--text);font-size:14px}h1{font-size:24px;margin:8px 0 16px}h2{font-size:16px;margin:24px 0 12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:16px;gap:16px}.card{background:var(--surface);border:2px solid var(--border);padding:16px;display:flex;align-items:center;gap:12px}.card:hover{border-color:var(--accent-ink)}.card .icon-fallback,.card img{width:40px;height:40px;flex-shrink:0}.card .icon-fallback{background:var(--yellow);display:grid;place-items:center;font-family:var(--font-pixel);font-size:13px;color:var(--ink)}.card .grow{flex:1 1;min-width:0}.card .name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn{display:inline-block;padding:13px 18px;border:2px solid var(--accent);font-family:var(--font-pixel);font-size:11px;cursor:pointer;background:var(--accent);box-shadow:5px 5px 0 var(--border);transition:transform .05s,box-shadow .05s}.btn,.btn:hover{color:var(--ink)}.btn:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--border)}.btn.secondary{background:transparent;color:var(--secondary);border-color:var(--border-2)}.btn.secondary:hover{color:var(--yellow-ink);border-color:var(--yellow)}.btn.danger{background:transparent;color:var(--red);border-color:var(--red)}.btn.small{padding:9px 11px;font-size:8px;box-shadow:3px 3px 0 var(--border)}input,select{background:var(--bg);border:2px solid var(--border-2);color:var(--text);padding:10px 12px;font-size:14px;font-family:var(--font-mono)}.form-card{background:var(--surface);border:2px solid var(--border);padding:18px}.form-card form{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.muted{color:var(--muted);font-size:14px}table.lb{width:100%;border-collapse:collapse;background:var(--surface);border:2px solid var(--border)}table.lb td,table.lb th{padding:12px 14px;text-align:left;border-bottom:1px solid var(--surface-2)}table.lb th{background:var(--surface-2);color:var(--secondary);font-family:var(--font-pixel);font-size:9px;text-transform:uppercase}.legal{max-width:760px;margin:0 auto;padding:56px 24px 96px;line-height:1.7}.legal h1{font-size:22px;margin-bottom:10px}.legal .updated{color:var(--muted);font-size:13px;margin-bottom:32px}.legal h2{font-size:13px;margin:28px 0 10px}.legal li,.legal p{color:var(--list);font-size:15px}.legal ul{padding-left:20px;display:flex;flex-direction:column;gap:8px}.hero{text-align:center;padding:80px 16px}.hero h1{font-size:30px;line-height:1.5;margin-bottom:16px;text-shadow:3px 3px 0 var(--magenta)}.hero p{color:var(--secondary);margin-bottom:24px}.win-banner{position:relative;overflow:hidden;border:3px solid var(--accent);background:var(--surface);box-shadow:8px 8px 0 var(--border);padding:40px 24px 32px;margin:0 0 40px;text-align:center}.win-trophy{font-size:72px;line-height:1;animation:win-pop .7s cubic-bezier(.2,1.4,.4,1) both,win-float 2.8s ease-in-out .7s infinite}.win-label{font-size:12px;letter-spacing:.18em;color:var(--accent-ink);margin-top:16px;animation:win-fade .6s ease .25s both}.win-label,.win-name{font-family:var(--font-pixel)}.win-name{font-size:22px;color:var(--text);margin-top:10px;text-shadow:3px 3px 0 var(--magenta);animation:win-fade .6s ease .45s both}.win-sub{font-family:var(--font-num);font-size:22px;color:var(--yellow-ink);margin-top:6px;animation:win-fade .6s ease .6s both}.win-confetti{position:absolute;inset:0;pointer-events:none}.win-piece{position:absolute;top:-16px;display:block;opacity:0;animation-name:win-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes win-pop{0%{transform:scale(0) rotate(-25deg)}to{transform:scale(1) rotate(0)}}@keyframes win-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes win-fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes win-fall{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:1}to{transform:translateY(320px) rotate(540deg);opacity:0}}@media (prefers-reduced-motion:reduce){.win-label,.win-name,.win-piece,.win-sub,.win-trophy{animation:none;opacity:1}.win-piece{display:none}}