@font-face{font-family:Inter;src:local(Inter),local(-apple-system)}
:root{color-scheme:dark;--bg:#0b0b0e;--panel:#141419;--line:#29292f;--muted:#777780;--text:#f4f4f1;--lime:#d7ff64;--cyan:#a8f0ff}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,sans-serif}button,a{font:inherit;color:inherit}button{border:0;cursor:pointer}a{text-decoration:none}.bar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1020px)/2));border-bottom:1px solid var(--line)}.nav-btn{width:40px;height:40px;display:grid;place-items:center;background:none;color:var(--muted);border-radius:12px}.nav-btn:hover{color:var(--text);background:#19191f}.icon{width:22px;height:22px}.mark{color:var(--lime);width:24px}.mark .icon{width:20px;height:20px}.board{min-height:calc(100vh - 76px);display:grid;place-items:center;padding:clamp(28px,8vh,90px) 20px}.grid{width:min(74vh,calc(100vw - 40px),620px);height:min(74vh,calc(100vw - 40px),620px);display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,2vw,20px)}.key{position:relative;display:grid;place-items:center;border-radius:25%;background:#15151a;border:1px solid #27272e;box-shadow:inset 0 1px 0 #292930,0 12px 30px #0005;color:var(--key);touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .13s,background .13s,box-shadow .13s}.key:hover{background:#1b1b21}.key.down{transform:scale(.94);background:#23232a}.key.hit{animation:hit .34s ease;color:#fff}.key.hit-double{animation:double .42s ease}.key.hit-long{animation:long .6s ease}.glyph{width:clamp(28px,5vw,48px);height:clamp(28px,5vw,48px);color:var(--key);stroke:currentColor;stroke-width:1.8;fill:none}.b0{--key:#d7ff64}.b1{--key:#a8f0ff}.b2{--key:#ffb86b}.b3{--key:#e6a5ff}.b4{--key:#ff8fa3}.b5{--key:#8df0bd}.b6{--key:#ffd96a}.b7{--key:#b9b7ff}.badge{position:absolute;right:12%;top:10%;font-size:11px;color:#111;background:var(--key);border-radius:10px;padding:3px 6px;animation:appear .2s ease}.badge.fade{opacity:0;transition:opacity .3s}.undo{position:fixed;right:24px;bottom:24px;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;color:var(--bg);background:var(--lime);box-shadow:0 8px 30px #0008;transition:opacity .3s}.undo.fade{opacity:0}.undo .icon{width:21px}.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);padding:11px 16px;border:1px solid var(--line);border-radius:12px;background:#202026;color:var(--text);font-size:13px}.gate{min-height:100vh;display:grid;place-items:center;padding:24px}.gate .card{width:min(100%,360px);text-align:center}.mark-lg{color:var(--lime);margin-bottom:42px}.mark-lg .icon{width:38px;height:38px}.modes{display:flex;gap:26px;border-bottom:1px solid var(--line);margin-bottom:24px}.modes button{background:none;color:var(--muted);padding:0 2px 13px;font-size:14px}.modes button.on{color:var(--text);border-bottom:2px solid var(--lime)}form{position:relative}form input{width:100%;height:52px;padding:0 50px 0 16px;margin-bottom:10px;border:1px solid var(--line);border-radius:12px;background:#141419;color:var(--text);outline:none}form input:focus{border-color:var(--lime)}.go{position:absolute;right:8px;bottom:18px;width:36px;height:36px;border-radius:10px;background:var(--lime);color:#111;display:grid;place-items:center}.go .icon{width:19px}.err{color:#ff8fa3;font-size:13px}.report{width:min(100%,940px);margin:0 auto;padding:38px 20px 80px}.ranges{display:flex;gap:3px;background:#15151a;border:1px solid var(--line);border-radius:10px;padding:3px}.ranges button{min-width:34px;padding:7px 8px;background:transparent;color:var(--muted);border-radius:7px;font-size:12px}.ranges button.on{background:#2a2a30;color:var(--text)}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:38px}.tile{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.tile strong{display:block;font-size:26px;font-weight:500;margin-bottom:4px}.tile span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:38px}.stat-card{padding:17px;border:1px solid var(--line);border-radius:15px;background:var(--panel)}.card-top{display:flex;align-items:center;gap:8px;font-size:12px}.card-top strong{margin-left:auto;font-size:20px;font-weight:500}.dot{width:8px;height:8px;border-radius:50%}.meter{height:3px;margin:18px 0 13px;background:#29292f;border-radius:4px}.meter i{display:block;height:100%;border-radius:4px}.break{display:flex;gap:12px;color:var(--muted);font-size:11px}.break span:before{content:'';display:inline-block;width:5px;height:5px;margin:0 5px 2px 0;border-radius:50%;background:currentColor}.break span:nth-child(1){color:var(--cyan)}.break span:nth-child(2){color:#e6a5ff}.break span:nth-child(3){color:#ffb86b}.block{position:relative;margin-top:20px;padding:22px 18px;border:1px solid var(--line);border-radius:17px;background:var(--panel)}h2{margin:0 0 22px;font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.chart{display:block;width:100%;height:150px;margin:0 0 18px}.chart-matrix{height:380px}.pairs{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.pairs>div{display:flex;align-items:center;gap:11px;padding:11px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.pairs strong{margin-left:auto;color:var(--text);font-weight:500}.pair-dots{display:flex;gap:3px}.pair-dots i{width:8px;height:8px;border-radius:50%}.empty{justify-content:center}.gated .chart,.gated .pairs{filter:blur(9px);pointer-events:none;opacity:.28}.lock{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);color:var(--lime);z-index:2}.lock .icon{width:32px;height:32px;stroke:currentColor;stroke-width:1.5}@keyframes hit{50%{transform:scale(1.04);box-shadow:0 0 35px var(--key)}}@keyframes double{25%{transform:scale(.94)}55%{transform:scale(1.05)}80%{transform:scale(.98)}}@keyframes long{50%{transform:scale(1.05);box-shadow:0 0 50px var(--key)}}@keyframes appear{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@media(max-width:600px){.bar{height:64px;padding:0 14px}.board{min-height:calc(100vh - 64px);padding:20px 14px}.grid{width:calc(100vw - 28px);height:calc(100vw - 28px);gap:9px}.key{border-radius:22%}.report{padding:24px 14px 60px}.tiles{gap:7px}.tile{padding:14px 12px}.tile strong{font-size:21px}.cards{grid-template-columns:repeat(2,1fr);gap:7px}.stat-card{padding:14px 12px}.chart-matrix{height:300px}.pairs{grid-template-columns:1fr}.ranges button{min-width:30px;padding-left:5px;padding-right:5px}}
