:root{--bg:#0b1210;--panel:#121c18;--panel2:#18261f;--line:#24362d;--text:#e6f2ea;--mut:#8aa396;--acc:#3ddc84;--acc2:#1fa65e;--warn:#ffb84d;--bad:#ff6b6b;--vd:#7aa2ff}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--acc);text-decoration:none}h1{font-size:24px;margin:0 0 4px}h2{font-size:17px;margin:0 0 10px}h3{font-size:14px;margin:0 0 6px;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.wrap{max-width:1100px;margin:0 auto;padding:16px}nav.top{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:#0b1210ee;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}nav.top .in{max-width:1100px;margin:0 auto;padding:10px 16px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}nav.top a{padding:6px 10px;border-radius:8px;color:var(--mut)}nav.top a.on,nav.top a:hover{background:var(--panel2);color:var(--text)}.brand{font-weight:800;color:var(--acc);margin-right:8px}.grow{flex:1 1}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:14px}.grid{display:grid;grid-gap:14px;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.btn,button{background:var(--acc);color:#04210f;border:0;border-radius:9px;padding:8px 14px;font-weight:700;cursor:pointer;font-size:14px}button:hover{background:#5cf09b}button.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}button.ghost:hover{background:var(--panel2)}button.danger{background:transparent;color:var(--bad);border:1px solid #5a2a2a}button:disabled{opacity:.45;cursor:not-allowed}input,select{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 9px;font-size:14px}input[type=range]{padding:0;width:100%}label{display:block;color:var(--mut);font-size:13px;margin-bottom:3px}table{width:100%;border-collapse:collapse}th{color:var(--mut);font-weight:600;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em}td,th{padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}tr.sel td,tr.you td{background:#1d3a2b}.tw{overflow-x:auto}.mut{color:var(--mut)}.coin{color:var(--warn)}.coin,.vd{font-weight:700}.vd{color:var(--vd)}.pill{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px;font-weight:700;background:var(--panel2);border:1px solid var(--line)}.r-journeyman{color:#a9b7ae}.r-regular{color:#7ad3ff}.r-standout{color:#b996ff}.r-star{color:#ffd24d}.r-icon{color:#ff7ac6}.bar{height:10px;background:var(--panel2);border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--acc)}.err{background:#3a1d1d;border:1px solid #6b2c2c;color:#ffb3b3;border-radius:9px}.err,.ok{padding:8px 12px;margin-bottom:12px}.ok{background:#173a28;border:1px solid #1f6b43;border-radius:9px}.score{font-size:30px;font-weight:800;text-align:center}.ev{display:flex;gap:10px;padding:4px 0;border-bottom:1px dashed var(--line)}.ev .m{width:34px;color:var(--mut)}.goal{color:var(--acc);font-weight:700}.red{color:var(--bad)}.yel{color:var(--warn)}.why{color:var(--mut);font-size:13px}.lock{position:fixed;inset:0;background:#000;color:#fff;display:flex;align-items:center;justify-content:center;z-index:9999;text-align:center;padding:30px}@media(max-width:640px){.wrap{padding:10px}.score{font-size:24px}}.notice{background:#182433;border:1px solid #2b4466;border-radius:10px;padding:10px 12px;font-size:14px}.livepill{background:#3a1d1d;color:#ff9a9a!important;border:1px solid #6b2c2c;animation:pulse 1.6s infinite}@keyframes pulse{50%{opacity:.6}}.hero{max-width:1000px;margin:0 auto;padding:6vh 0 40px}.heroin{margin-bottom:34px}.big{font-size:clamp(36px,7vw,64px);line-height:1.02;letter-spacing:-.02em;margin:14px 0 12px}.lead{font-size:18px;color:#bcd3c5;max-width:560px}.small{font-size:13px}.feat{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.clipmodal{position:fixed;inset:0;background:#000c;z-index:50;display:flex;align-items:center;justify-content:center;padding:12px}.clipin{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:12px;width:min(980px,100%)}.clipbox .clipin,.cwrap{width:100%}.cwrap{position:relative;aspect-ratio:16/9;background:#000;border-radius:10px;overflow:hidden}.cwrap canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.goalpill{background:var(--acc);color:#04210f;border-color:var(--acc)}.replaylink{color:var(--vd);font-weight:700}.tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.tabs button{padding:6px 11px}.lm{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:14px;gap:14px}@media(max-width:900px){.lm{grid-template-columns:1fr}}.stage{position:relative;width:100%;aspect-ratio:105/68;background:#0e3b24;border-radius:12px;overflow:hidden;border:1px solid var(--line)}.stage canvas{width:100%;height:100%;display:block}.overlay,.stage canvas{position:absolute;inset:0}.overlay{display:flex;align-items:center;justify-content:center;text-align:center;background:#000a;padding:16px;z-index:3}.overlay .box{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 20px;max-width:420px}.toast{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:4;background:#111b;border:1px solid var(--line);border-radius:99px;padding:6px 8px 6px 14px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hud,.toast{display:flex;gap:10px;align-items:center}.hud{justify-content:space-between;margin-bottom:8px;flex-wrap:wrap}.hud .sc{font-size:26px;font-weight:800;letter-spacing:.02em}.dot{display:inline-block;width:9px;height:9px;border-radius:99px;margin-right:6px;background:var(--acc)}.dot.off{background:var(--bad)}.dot.wait{background:var(--warn)}.code{font-size:34px;font-weight:800;letter-spacing:.18em}.pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:6px;gap:6px}.pick .p{padding:5px 8px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:13px;background:var(--panel2)}.pick .p.on{border-color:var(--acc);background:#1d3a2b}