*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg,#0B0614);color:#fff}button{cursor:pointer}button,input{font:inherit}html.kiosk,html.kiosk *,html.kiosk :after,html.kiosk :before,html.kiosk body{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none}html.kiosk{touch-action:manipulation;overscroll-behavior:none}html.kiosk input{-webkit-user-select:text;-moz-user-select:text;user-select:text}.m{min-height:100dvh;display:flex;flex-direction:column;padding:24px 20px;gap:16px;max-width:520px;margin:0 auto}.m h1{font-size:28px;margin:8px 0 0;line-height:1.15}.m p{font-size:18px;line-height:1.4;margin:0;opacity:.9}.brand{font-weight:900;letter-spacing:.2em;font-size:14px;opacity:.8}.field{display:flex;flex-direction:column;gap:6px;font-size:15px}.field input{padding:14px;border-radius:12px;border:2px solid #ffffff30;background:#ffffff12;color:#fff;font-size:18px}.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.4;opacity:.9}.check input{width:22px;height:22px;flex:none;margin-top:2px}.btn{padding:18px;border-radius:16px;border:0;font-size:20px;font-weight:800;color:#fff;background:var(--primary,#7C3AED)}.btn:disabled{opacity:.4}.btn.ghost{background:#ffffff18}.err{background:#ff3b5c30;border:1px solid #ff3b5c;padding:12px;border-radius:12px;font-size:16px}.meter{height:18px;background:#ffffff18;border-radius:9px;overflow:hidden}.meter>div{height:100%;background:var(--secondary,#F472B6);transition:width .06s}.big{font-size:64px;font-weight:900;line-height:1}.big,.center,.lyric-now{text-align:center}.lyric-now{font-size:26px;font-weight:800;min-height:64px}.lyric-next{font-size:18px;text-align:center;opacity:.55;min-height:26px}.pill{display:inline-block;padding:6px 12px;border-radius:999px;background:#ffffff18;font-weight:700}.tv{position:fixed;inset:0;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse at top,color-mix(in srgb,var(--primary) 40%,transparent),transparent 60%),var(--bg)}.tv-head{display:flex;justify-content:space-between;align-items:center;padding:2.5vh 4vw;font-size:2.2vh}.tv-head .brand{font-size:2.6vh}.tv-body{flex:1 1;display:flex;gap:3vw;padding:0 4vw 4vh;min-height:0}.tv h1{font-size:7vh;margin:0;line-height:1.05}.tv h2{font-size:4vh;margin:0 0 2vh}.qr{background:#fff;padding:2vh;border-radius:2vh}.qr img{display:block;width:38vh;height:38vh}.slot{display:flex;align-items:center;gap:1.5vh;font-size:3.4vh;padding:1.6vh 2vh;border-radius:1.6vh;background:#ffffff12;margin-bottom:1.2vh}.dot{width:2vh;height:2vh;border-radius:50%;background:#ffffff40}.dot.on{background:#3ddc84;box-shadow:0 0 1.5vh #3ddc84}.tv-lyric{font-size:7.5vh;font-weight:900;text-align:center;line-height:1.15}.tv-lyric .fill{background-clip:text;-webkit-background-clip:text;color:transparent}.tv-next{font-size:4.2vh;text-align:center;opacity:.5;margin-top:1.5vh}.board-row{position:relative;padding:1.4vh 2vh;border-radius:1.4vh;margin-bottom:1.2vh;background:#ffffff10;overflow:hidden;font-size:3vh}.board-row .bar{position:absolute;inset:0 auto 0 0;background:color-mix(in srgb,var(--primary) 55%,transparent);transition:width .4s}.board-row .row{position:relative;display:flex;justify-content:space-between;font-weight:800}.combo{color:#ffd84d;font-size:2.2vh}.count{font-size:40vh;font-weight:900;text-align:center;margin:auto}.podium{display:flex;align-items:flex-end;justify-content:center;gap:3vw;margin:auto}.podium>div{text-align:center;width:20vw}.podium .block{border-radius:2vh 2vh 0 0;background:var(--primary);align-items:flex-start;font-size:8vh;font-weight:900;padding-top:2vh}.overlay,.podium .block{display:flex;justify-content:center}.overlay{position:fixed;inset:0;background:#000c;align-items:center;font-size:4vh;z-index:10}.op{max-width:760px;margin:0 auto;padding:20px;display:flex;flex-direction:column;gap:14px}.op input,.op select{padding:12px;border-radius:10px;font-size:16px}.op .card{background:#ffffff10;border-radius:14px;padding:16px;flex-direction:column}.op .card,.op .row{display:flex;gap:10px}.op .row{flex-wrap:wrap;align-items:center}.op .btn{padding:14px 18px;font-size:17px}