:root{--night:#1b1f3a;--paper:#edeff3;--ink:#23262f;--todo:#9aa0ae;--miss:#e5484d;--tier:#f4f6ff;--pixel:"Galmuri14", "Galmuri11", monospace;--pixel-small:"Galmuri11", monospace;--book:"Gowun Batang", serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:#0e1024;overflow:hidden}#app{transform-origin:0 0;background:var(--night);width:1280px;height:720px;color:var(--ink);font-family:var(--book);grid-template-rows:1fr auto;display:grid;position:absolute;top:0;left:0}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline-offset:3px;outline:2px solid #6fd3ff}#stage{position:relative;overflow:hidden}#shake{position:absolute;inset:0}#stage-canvas{width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}#float-layer{pointer-events:none;position:absolute;inset:0}#flash{opacity:0;pointer-events:none;background:#fff;position:absolute;inset:0}#edge{opacity:0;pointer-events:none;position:absolute;inset:0}.dmg{font-family:var(--pixel);pointer-events:none;text-shadow:2px 2px #0e1024;white-space:nowrap;position:absolute}.banner,.skill{text-align:center;font-family:var(--pixel);pointer-events:none;opacity:0;text-shadow:4px 4px #0e1024,-2px -2px #0e1024;position:absolute;left:0;right:0}.banner{font-size:72px;top:12%}.skill{font-size:40px;top:30%}#mute{font-family:var(--pixel-small);color:#b9beda;align-items:center;gap:8px;font-size:15px;display:flex;position:absolute;top:20px;right:24px}#mute svg{width:18px;height:18px}#combo{text-align:right;color:var(--tier);font-family:var(--pixel);text-shadow:3px 3px #0e1024;transition:opacity .12s;position:absolute;top:50%;right:7%;transform:translateY(-58%)}#combo.off{opacity:0}#combo-num{font-size:var(--combo-size,84px);letter-spacing:-2px;line-height:.9}#combo-label{margin-top:6px;font-size:28px}.tier-row{justify-content:flex-end;align-items:center;gap:12px;margin-top:18px;display:flex}.tier-bar{background:#2b2f55;width:132px;height:10px;box-shadow:2px 2px #0e1024}.tier-bar i{background:var(--tier);width:0;height:100%;display:block}#tier-name{font-family:var(--pixel-small);font-size:18px}#final{text-align:right;font-family:var(--pixel);color:#f4f6ff;text-shadow:4px 4px #0e1024;position:absolute;top:50%;right:7%;transform:translateY(-58%)}#final small{font-family:var(--pixel-small);color:#b9beda;margin-bottom:10px;font-size:20px;display:block}#final strong{font-size:96px;font-weight:400;line-height:1}#final .badge{font-family:var(--pixel-small);color:var(--night);text-shadow:none;background:#ffc24b;margin-top:16px;padding:6px 12px;font-size:18px;display:inline-block}#panel{background:var(--paper);min-height:250px;padding:22px 56px 14px;position:relative}.panel-inner{max-width:1120px}.meta{justify-content:space-between;align-items:baseline;gap:24px;min-height:28px;display:flex}#source,#result-source{color:#5b6070;font-size:17px}#modes{color:#5b6070;align-items:baseline;gap:28px;font-size:18px;display:flex}#modes .group{align-items:baseline;gap:14px;display:flex}#modes button{border-bottom:2px solid #0000;padding-bottom:3px}#modes button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--ink);font-weight:700}#text-pick{font:inherit;color:#5b6070;border:0;border-bottom:2px solid var(--ink);cursor:pointer;background:0 0;border-radius:0;max-width:360px;padding:0 4px 3px;font-size:17px}#modes .sep{color:#b5bac6}#live{color:#5b6070;white-space:nowrap;margin-left:auto;font-size:14px}#live+#total{margin-left:0}#total{font-family:var(--pixel-small);color:var(--ink);white-space:nowrap;margin-left:auto;font-size:18px}#total span{color:#5b6070;margin-right:8px}#total b{font-weight:400}#line{letter-spacing:.02em;white-space:pre;min-height:57px;margin-top:20px;font-size:38px;line-height:1.5}#line .todo{color:var(--todo)}#line .ok{color:var(--ink)}#line .bad{color:var(--miss);-webkit-text-decoration:underline wavy var(--miss);text-decoration:underline wavy var(--miss);text-underline-offset:8px}#line .comp{color:var(--ink);text-underline-offset:8px;-webkit-text-decoration:underline dotted #5b6070;text-decoration:underline dotted #5b6070}.caret{background:var(--ink);vertical-align:-.15em;width:2px;height:1.05em;margin:0 1px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}#next{color:#a9aebb;white-space:pre;min-height:36px;margin-top:8px;font-size:24px}#hint{color:#5b6070;min-height:27px;margin-top:14px;font-size:18px}#hint.warn{color:var(--miss)}.stats{flex-wrap:wrap;gap:14px 48px;margin-top:22px;display:flex}.stats div{color:#5b6070;font-size:18px}.stats b{font-family:var(--pixel);color:var(--ink);margin-top:4px;font-size:34px;font-weight:400;display:block}.actions{align-items:center;gap:24px;margin-top:24px;font-size:19px;display:flex}.actions .primary{background:var(--ink);color:var(--paper);padding:10px 22px}.actions .secondary{text-underline-offset:5px;color:#5b6070;text-decoration:underline}.key{font-family:var(--pixel-small);opacity:.7;border:1px solid;margin-left:8px;padding:1px 6px;font-size:14px}#quit{color:#a9aebb;align-items:center;font-size:14px;display:flex;position:absolute;bottom:14px;right:56px}#quit:hover,#quit:focus-visible{color:#5b6070}.ad-slot{color:#a9aebb;border:1px dashed #b5bac6;place-items:center;width:728px;max-width:100%;height:90px;margin-top:16px;font-size:15px;display:grid}#footer{gap:18px;margin-top:10px;font-size:13px;display:flex}#footer a{color:#8a8fb0;text-decoration:none}#ime{opacity:0;position:fixed;top:0;left:-9999px}#mobile-gate{z-index:100;text-align:center;background:var(--night);color:var(--paper);font-family:var(--book);place-items:center;padding:24px;font-size:22px;line-height:1.7;display:grid;position:fixed;inset:0}#mobile-gate>div{max-width:520px}#mobile-gate h1{margin:0 0 16px;font-size:30px}#mobile-gate p{margin:0 0 14px}#mobile-gate a{color:#6fd3ff}@media (prefers-reduced-motion:reduce){.caret{animation:none}}
