:root{--blue:#2f5bff;--soft:#8ea4ff;--deep:#1d3fd6;--ink:#0b1630;--bg:#070d1f;--card:#0f1833;--line:#8ea4ff29;--text:#eef2ff;--muted:#9aa8cf;--amber:#ffb547;--red:#ff5a4e;--good:#3ddc84;--r-card:14px;--r-ctl:10px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font:400 14px/1.45 Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}h1,.sub,.big,.db,.grade,.hold span{font-family:Bricolage Grotesque,Inter,sans-serif}button{font:inherit;color:inherit}.top{align-items:center;gap:12px;max-width:1240px;height:56px;margin:0 auto;padding:10px 16px;display:flex}.logo{color:var(--text);letter-spacing:-.025em;opacity:.85;align-items:center;gap:8px;font:700 17px/1 Bricolage Grotesque,sans-serif;text-decoration:none;display:flex}.logo:hover{opacity:1}.logo svg{width:24px;height:24px}.logo b{color:var(--soft);font-weight:700}.top h1{letter-spacing:-.02em;margin:0 0 0 auto;font-size:20px;font-weight:800}.tag{color:var(--soft);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600}.icon{border-radius:var(--r-ctl);border:1px solid var(--line);cursor:pointer;background:0 0;place-items:center;width:40px;height:40px;display:grid}.icon svg{fill:none;width:18px;height:18px;stroke:var(--text);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.icon[data-on="1"] .off,.icon[data-on="0"] .on{display:none}.game{grid-template-columns:minmax(0,1.45fr) minmax(320px,1fr);align-items:start;gap:16px;max-width:1240px;margin:0 auto;padding:0 16px 32px;display:grid}.stage-col{gap:12px;display:grid;position:sticky;top:12px}.stage{aspect-ratio:16/10.5;border:1px solid var(--line);background:#0b1430;border-radius:18px;position:relative;overflow:hidden}.stage canvas{width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.hud{text-align:center;pointer-events:none;position:absolute;top:14px;left:0;right:0}.db{letter-spacing:-.04em;font-variant-numeric:tabular-nums;text-shadow:0 0 30px #2f5bff99;font-size:clamp(44px,8vw,84px);font-weight:800;line-height:1}.db small{color:var(--soft);letter-spacing:0;margin-left:6px;font-size:.32em}.watts{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:4px;font-size:13px}body.live .db{color:#fff}.db.blown{color:var(--red);text-shadow:0 0 30px #ff5a4e99}.db.blown small{display:none}.gauges{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.gauge{background:var(--card);border:1px solid var(--line);border-radius:12px;grid-template-columns:1fr auto;align-items:baseline;gap:6px 8px;padding:10px 12px;display:grid}.gauge .name{color:var(--muted);font-size:12px}.gauge .val{font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.gauge .lim{color:var(--muted);grid-column:1/-1;margin-top:-2px;font-size:11px}.bar{background:#8ea4ff1f;border-radius:4px;grid-column:1/-1;height:8px;position:relative;overflow:hidden}.fill{background:linear-gradient(90deg, var(--deep), var(--blue), var(--soft));border-radius:4px;width:0;height:100%;transition:width 60ms linear}.mark{background:#ffffff8c;width:2px;position:absolute;top:0;bottom:0}.gauge[data-tone=amber] .fill{background:linear-gradient(90deg, var(--blue), var(--amber))}.gauge[data-tone=red] .fill{background:linear-gradient(90deg, var(--amber), var(--red))}.gauge[data-tone=red]{border-color:#ff5a4e99}.hold{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:linear-gradient(180deg, #4a73ff, var(--blue) 55%, var(--deep));color:#fff;border:0;border-radius:16px;place-content:center;gap:2px;min-height:72px;transition:transform 80ms,box-shadow .12s;display:grid;position:relative;box-shadow:0 10px 30px #2f5bff59,inset 0 1px #ffffff40}.hold span{letter-spacing:-.01em;font-size:22px;font-weight:800}.hold small{opacity:.8;font-size:12px}body.live .hold{transform:scale(.97);box-shadow:0 0 0 4px #8ea4ff59,0 0 60px #2f5bffb3}.hold:disabled{filter:grayscale(.8);opacity:.5;cursor:not-allowed}.panel{gap:12px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-card);padding:14px 16px}.row{align-items:center;gap:12px;display:flex}.k,.title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12px;font-weight:600}.row .k{margin-right:auto}.link{color:var(--soft);cursor:pointer;background:0 0;border:0;padding:6px 0;font-size:13px;font-weight:600}.link:hover{color:#fff}.sub{letter-spacing:-.02em;margin:2px 0 8px;font-size:22px;font-weight:700}.chips{flex-wrap:wrap;gap:6px;display:flex}.chips span{color:#d6deff;font-variant-numeric:tabular-nums;background:#8ea4ff1a;border-radius:6px;padding:3px 8px;font-size:12px}.facts{grid-template-columns:1fr 1fr;gap:10px 16px;margin-top:14px;display:grid}.facts span{color:var(--muted);font-size:12px;display:block}.facts b{font-variant-numeric:tabular-nums;font-weight:600}.build{gap:14px;display:grid}.slider{color:var(--muted);grid-template-columns:1fr auto;gap:6px;font-size:13px;display:grid}.slider b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.slider input{-webkit-appearance:none;appearance:none;background:0 0;grid-column:1/-1;width:100%;height:28px;margin:0}.slider input::-webkit-slider-runnable-track{background:#8ea4ff33;border-radius:3px;height:6px}.slider input::-moz-range-track{background:#8ea4ff33;border-radius:3px;height:6px}.slider input::-webkit-slider-thumb{-webkit-appearance:none;border:4px solid var(--blue);background:#fff;border-radius:50%;width:22px;height:22px;margin-top:-8px;box-shadow:0 2px 8px #0006}.slider input::-moz-range-thumb{border:4px solid var(--blue);background:#fff;border-radius:50%;width:14px;height:14px}.fit{gap:6px;padding-top:2px;display:grid}.fit-row{color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.fit-row b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}.space{background:#8ea4ff1f;border-radius:3px;height:6px;overflow:hidden}.space div{background:var(--soft);border-radius:3px;height:100%}.space div.over{background:var(--red)}.why{color:var(--amber);margin:2px 0 0;font-size:13px}#graph{width:100%;height:auto;display:block}#graph .g{stroke:#8ea4ff1a}#graph .t{fill:var(--muted);text-anchor:middle;font-size:10px}#graph .win{fill:#2f5bff29}#graph .c{fill:none;stroke:var(--soft);stroke-width:2px}#graph .m{stroke:#fff;stroke-dasharray:3 3;opacity:.6}#graph .d{fill:#fff;stroke:var(--blue);stroke-width:2px}#graph .fb{stroke:var(--amber);stroke-width:2px}.note{color:var(--muted);margin:-6px 0 0;font-size:12px}.how summary{cursor:pointer;justify-content:space-between;font-weight:600;list-style:none;display:flex}.how summary:after{content:"+";color:var(--soft)}.how[open] summary:after{content:"−"}.how p,.how li{color:#c9d3f2;font-size:13px}.how ul{margin:8px 0;padding-left:18px}.calc{text-align:center;color:var(--soft);padding:12px;font-size:13px;text-decoration:none;display:block}.calc:hover{color:#fff}.result[hidden]{display:none}.result{z-index:10;background:#0408148c;place-items:end center;padding:16px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.sheet{background:linear-gradient(180deg, #14204a, var(--card));border:1px solid var(--line);text-align:center;opacity:0;border-radius:22px;width:min(460px,100%);padding:22px 20px 18px;transition:transform .26s cubic-bezier(.2,.9,.3,1.2),opacity .2s;transform:translateY(30px);box-shadow:0 30px 80px #00000080}.result.open .sheet{opacity:1;transform:none}@media (min-width:900px){.result{place-items:center}}.grade{background:var(--blue);border-radius:18px;place-items:center;width:64px;height:64px;margin:0 auto 6px;font-size:36px;font-weight:800;display:grid;box-shadow:0 0 40px #2f5bff99}.result[data-kind=S] .grade{color:#2a1600;background:linear-gradient(135deg,#ffd36a,#ff8a3d);box-shadow:0 0 50px #ffb45099}.result[data-kind=blown] .grade{background:var(--red);box-shadow:0 0 40px #ff5a4e99}.big{letter-spacing:-.04em;font-size:48px;font-weight:800;line-height:1.05}.rt{margin:4px 0 2px;font-weight:600}.gap{color:var(--muted);margin:0 0 12px;font-size:13px}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.stats div{background:#8ea4ff14;border-radius:10px;padding:8px}.stats span{color:var(--muted);font-size:11px;display:block}.stats b{font-variant-numeric:tabular-nums;font-size:15px;display:block}.stats small{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:2px;font-size:11px;display:block}.revealed{color:var(--soft);margin:0 0 12px;font-size:13px}.actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.actions button{border:1px solid var(--line);cursor:pointer;background:#8ea4ff14;border-radius:12px;min-height:44px;padding:0 18px;font-weight:600}.actions .primary{background:var(--blue);border-color:var(--blue);flex:1}.actions .link{background:0 0;border:0;flex-basis:100%}@media (max-width:899px){.top{height:52px;padding:8px 16px}.top h1{font-size:18px}.logo span{display:none}.game{grid-template-columns:1fr;gap:12px;padding-bottom:112px}.stage-col{z-index:5;background:var(--bg);gap:8px;margin:0 -16px;padding:4px 16px 8px;position:sticky;top:0}.stage{aspect-ratio:auto;height:min(30vh,260px)}.gauge{padding:8px 10px}.gauge .lim{display:none}.gauge{grid-template-columns:1fr;gap:2px}.gauge .val{font-size:14px}.gauge .bar{margin-top:4px}.hold{left:16px;right:16px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:6;min-height:64px;position:fixed}.db{font-size:52px}}@media (prefers-reduced-motion:reduce){.sheet{transition:none}}.peak{color:var(--amber);font-variant-numeric:tabular-nums;margin-top:6px;font-size:13px;font-weight:600}.big.pop{color:#fff;text-shadow:0 0 30px #8ea4ffcc;animation:.6s cubic-bezier(.2,1.6,.4,1) pop}.result[data-kind=S] .big.pop{color:#ffd36a;text-shadow:0 0 40px #ffb450b3}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.15)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.big.pop{animation:none}}@media (min-width:900px){.result{background:#04081440;place-items:center end;padding-right:max(16px,50vw - 604px)}.sheet{width:min(420px,100%)}}@media (max-width:899px){.stage{height:22vh;min-height:150px;transition:height .22s}body.live .stage{height:min(34vh,300px)}body:has(.result:not([hidden])) .stage{height:min(34vh,300px)}}.mic{color:var(--muted);letter-spacing:.04em;pointer-events:none;font-size:11px;position:absolute;bottom:10px;left:12px}
