#cv{position:absolute;inset:0;width:100%;height:100%;display:block}
.hud{position:absolute;top:12px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}
.score{min-width:76px;padding:2px 18px;border-radius:999px;background:rgba(22,14,10,.62);color:#fff;transition:transform .12s,background .2s;font-size:40px;font-weight:800;line-height:1.25;text-align:center;font-variant-numeric:tabular-nums;transition:transform .12s}
.score.pop{transform:scale(1.14)}
.score.hot{background:rgba(214,120,10,.9)}
.best{font-size:12.5px;color:#fff;background:rgba(22,14,10,.78);padding:2px 10px;border-radius:999px}
.hint{position:absolute;left:16px;right:16px;top:23%;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none;color:#2b1a0e;font-size:15px;font-weight:600;text-align:center;transition:opacity .3s}
.hint span:last-child{background:rgba(255,248,236,.9);padding:8px 14px;border-radius:12px;box-shadow:0 4px 16px rgba(60,30,10,.15)}
.hint.gone{opacity:0}
.tap{width:44px;height:44px;border-radius:50%;border:3px solid #fff;background:rgba(255,255,255,.35);box-shadow:0 2px 10px rgba(60,30,10,.25);animation:tap 1.2s ease-in-out infinite}
@keyframes tap{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.78);opacity:.7}}
.over{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:12px 14px;background:rgba(10,8,18,.35);cursor:default}
.over[hidden]{display:none}
.card{width:100%;max-width:330px;background:rgba(16,27,49,.96);border:1px solid var(--line2);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.5);padding:24px 18px 20px;text-align:center;color:var(--star);animation:rise .35s cubic-bezier(.2,.9,.3,1.2)}
@keyframes rise{from{transform:translateY(18px) scale(.96);opacity:0}to{transform:none;opacity:1}}
.ovk{color:var(--mist);font-size:14px}
.ovs{margin:4px 0 2px;font-size:15px;color:var(--mist)}.ovs b{font:400 60px/1.15 var(--d);color:var(--star);margin-right:4px;font-variant-numeric:tabular-nums}
.ovb{font-size:14.5px;font-weight:600;color:var(--gold);min-height:1.5em}
.ovp{font-size:13px;color:var(--mist);margin:4px 0 18px;min-height:1.4em}
.ovbtns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.toast{min-height:1.4em;margin-top:10px;font-size:13.5px;color:var(--mist)}
.over{background:rgba(11,19,36,.42)}
/* 끝 화면: 점수판은 숨기고, 카드는 위에, 탑 전체는 아래에 보이게 */
.stage.ended .hud{opacity:0;transition:opacity .3s}
.over{background:linear-gradient(rgba(11,19,36,.55),rgba(11,19,36,0) 52%)}
.card{padding:16px 16px 16px}
.ovs b{font-size:52px}
.ovp{margin:2px 0 4px}
.ovw{font-size:13.5px;color:var(--star);line-height:1.5;margin:0 0 14px;min-height:0}
.ovw:empty{display:none}
.hint{color:#fff}
.hint span:last-child{background:rgba(11,19,36,.82);color:var(--star);box-shadow:0 4px 16px rgba(0,0,0,.3);border:1px solid var(--line2)}
.tap{border-color:var(--gold);background:rgba(232,182,90,.25)}
.toast:empty{display:none}
/* Everyday Useful edition */
.card{--d:Georgia,"Times New Roman",serif}
.k-btn{min-width:44px;min-height:44px;padding:0 12px;border:1px solid transparent;border-radius:999px;background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:700 15px/1 var(--font);color:var(--star);text-decoration:none;touch-action:manipulation}
.k-btn.main{background:var(--gold);border-color:var(--gold);color:var(--night);font-size:16px;padding:0 24px;min-height:50px}
.k-btn.main:hover{background:var(--gold2);border-color:var(--gold2)}
.k-btn.sub{border-color:var(--line2);color:var(--star);min-height:50px;padding:0 18px}
.k-btn:focus-visible{outline:3px solid var(--gold2);outline-offset:2px}
.ovx{display:block;margin-top:12px;padding:10px 12px;border-top:1px solid var(--line2);font-size:13px;line-height:1.45;color:var(--mist);text-decoration:none}
.ovx:hover{color:var(--gold2);text-decoration:underline}
.ovx:focus-visible{outline:3px solid var(--gold2);outline-offset:2px}
#k-sound svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#k-sound span{font-size:14px}
.stage-note{font-size:14px;color:var(--ink-2);margin:10px 0 0;text-align:center}
.score{font-family:var(--font)}
.ovx{margin-top:8px;padding:8px 6px 0}
@media (max-height:760px){.ovw{margin-bottom:10px}.card{padding:12px 14px}}
