*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--pink: #ff6fa3;--pink2: #ffe1ec;--ink: #3a2340;--bg: #fff7fb;--ok: #2fb67c;--mute: #8a7590}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,system-ui,Segoe UI,Roboto,sans-serif;font-size:18px}button{font:inherit;border:0;border-radius:16px;background:var(--pink2);color:var(--ink);padding:12px 18px;min-height:52px;min-width:52px;cursor:pointer;touch-action:manipulation}button:active{transform:scale(.96)}button.primary{background:var(--pink);color:#fff;font-weight:700}button.big{font-size:24px;padding:18px 28px;min-height:72px}button.on{background:var(--pink);color:#fff}button:disabled{opacity:.4}input,textarea{font:inherit;width:100%;padding:12px;border:2px solid #f0cadb;border-radius:12px;background:#fff;color:var(--ink)}textarea{min-height:200px}label{display:block;font-weight:600;margin:14px 0 6px}.wrap{max-width:1100px;margin:0 auto;padding:16px 16px 80px}.bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.bar h1,.bar h2{flex:1;margin:0;font-size:26px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.err{background:#ffe3e3;color:#a1182b;padding:12px;border-radius:12px;margin:10px 0;font-weight:600}.note{color:var(--mute);font-size:15px}.stats{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}.stat{background:#fff;border-radius:16px;padding:10px 16px;display:flex;flex-direction:column;align-items:center;min-width:110px}.stat b{font-size:26px}.stat span{font-size:14px;color:var(--mute)}.badges{flex:1 1 300px;display:flex;flex-wrap:wrap;gap:6px;background:#fff;border-radius:16px;padding:8px}.badge{display:flex;flex-direction:column;align-items:center;font-size:28px;width:76px;filter:grayscale(1);opacity:.35}.badge.got{filter:none;opacity:1}.badge small{font-size:11px;text-align:center;color:var(--ink)}.toast{position:fixed;left:50%;top:30%;transform:translate(-50%);background:#fff;border-radius:24px;padding:24px 36px;font-size:40px;font-weight:800;box-shadow:0 8px 40px #ff6fa366;z-index:50;text-align:center;animation:pop .4s ease-out;pointer-events:none}.toast small{display:block;font-size:20px;font-weight:600;color:var(--mute)}@keyframes pop{0%{transform:translate(-50%) scale(.5);opacity:0}}.rec{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.rec button.recording{background:#e53935;color:#fff;animation:blink 1s infinite}@keyframes blink{50%{opacity:.6}}.bars{display:flex;gap:6px;align-items:flex-end;height:120px;background:#fff;border-radius:16px;padding:10px}.bars div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;font-size:12px;color:var(--mute)}.bars i{display:block;width:100%;background:var(--pink);border-radius:6px 6px 0 0;min-height:2px}.panel{background:#fff;border-radius:16px;padding:14px;margin:12px 0}.panel h3{margin:0 0 8px}.songs{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:16px}.card{background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 2px 10px #f3c6d7}.card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.card .in{padding:12px}.card h3{margin:0 0 4px;font-size:20px}.card .row button{flex:1;padding:10px}.player{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:16px;overflow:hidden}.player-host,.player-host>*{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.shield{position:absolute;left:0;right:0;background:transparent;z-index:2}.shield.top{top:0;height:25%}.shield.bottom{bottom:0;height:22%}.shield.full{top:0;right:0;bottom:0;left:0}.cover{position:absolute;top:0;right:0;bottom:0;left:0;background:#2b1631;z-index:3;display:flex;align-items:center;justify-content:center}.cover-msg{color:#fff;padding:20px;text-align:center;font-size:20px}.cover-play{font-size:40px;width:96px;height:96px;border-radius:50%;background:var(--pink);color:#fff;z-index:4}.cover-play.small{position:absolute;right:12px;bottom:12px;width:64px;height:64px;font-size:26px}.lines{display:flex;flex-direction:column;gap:6px}.line{padding:12px 14px;border-radius:14px;background:#fff;font-size:22px;line-height:1.35;cursor:pointer;border:3px solid transparent}.line.cur{border-color:var(--pink);font-weight:700}.line.done{color:var(--mute)}.line .fill{background-image:linear-gradient(90deg,var(--pink) var(--p),var(--ink) var(--p));-webkit-background-clip:text;background-clip:text;color:transparent}.line .tag{font-size:16px;margin-left:6px}.line.inab{background:#fff0f6}.line.picking{border-style:dashed;border-color:#f0b4cc}.abtag{display:inline-block;background:var(--pink);color:#fff;border-radius:8px;padding:0 8px;margin-right:8px;font-size:16px;font-weight:800}.hint{font-weight:600;padding:0 6px}.scanner{margin:10px 0;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.scanner video{width:100%;max-width:360px;border-radius:12px;background:#000}.perform-media{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cam{position:relative;aspect-ratio:16/9;background:#2b1631;border-radius:16px;overflow:hidden;display:flex;align-items:center;justify-content:center}.cam video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.recdot{position:absolute;top:10px;left:12px;color:#fff;background:#e53935;border-radius:8px;padding:2px 8px;font-weight:800;animation:blink 1s infinite}.karaoke{background:#fff;border-radius:18px;padding:16px;margin:12px 0;text-align:center;min-height:120px}.k-cur{font-size:34px;font-weight:800;line-height:1.3}.k-cur .fill{background-image:linear-gradient(90deg,var(--pink) var(--p),var(--ink) var(--p));-webkit-background-clip:text;background-clip:text;color:transparent}.k-next{font-size:22px;color:var(--mute);margin-top:8px}button.recording{background:#e53935;color:#fff}@media (max-width: 700px),(orientation: portrait){.perform-media{grid-template-columns:1fr}.k-cur{font-size:26px}}.tv{position:fixed;top:0;right:0;bottom:0;left:0;background:#12081a;display:flex;flex-direction:column;color:#fff}.tv-video{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:1vh 2vw 0}.tv-video .player{height:100%;width:auto;max-width:100%;aspect-ratio:16/9;border-radius:1vw}.tv-lyrics{text-align:center;padding:2vh 3vw 3vh}.tv-cur{font-size:clamp(28px,5.2vw,96px);font-weight:800;line-height:1.2}.tv-cur .fill{background-image:linear-gradient(90deg,var(--pink) var(--p),#fff var(--p));-webkit-background-clip:text;background-clip:text;color:transparent}.tv-next{font-size:clamp(18px,3vw,56px);color:#c9b3d1;margin-top:1vh;min-height:1.2em}.tv-ui{position:fixed;top:0;left:0;right:0;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px;background:linear-gradient(#000a,transparent);transition:opacity .4s;z-index:10}.tv-ui.hide{opacity:0;pointer-events:none}.tv-help{color:#ddd;font-size:14px}.learn{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;align-items:start}.learn .side{position:relative;max-height:calc(100vh - 120px);overflow:auto}.learn .player{max-width:calc((100vh - 360px) * 16 / 9);min-width:280px;margin:0 auto}@media (max-width: 900px),(orientation: portrait){.learn{grid-template-columns:1fr}.learn .side{max-height:max(200px,calc(100vh - 56vw - 400px))}.learn .player{max-width:none}}.controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:12px 0}.controls button{font-size:24px;min-width:64px}.prompt{background:var(--pink);color:#fff;border-radius:18px;padding:18px;font-size:30px;font-weight:800;text-align:center;margin:12px 0}.prompt small{display:block;font-size:20px;font-weight:600;opacity:.9;margin-top:4px}.edit-line{display:flex;gap:6px;align-items:center;margin-bottom:6px}.edit-line input{flex:1}.edit-line button{min-width:48px;min-height:48px;padding:6px 10px}.rev{background:#fff;border-radius:14px;padding:10px;margin-bottom:8px}.rev .t{font-weight:600;margin-bottom:6px}.rev .row button{min-height:46px;padding:6px 12px}.mono{font-variant-numeric:tabular-nums;min-width:64px;text-align:center}@media (max-width: 600px){html,body{font-size:16px}.wrap{padding:10px 10px 40px}.bar{gap:6px;margin-bottom:8px;flex-wrap:nowrap}.bar h1,.bar h2{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.bar button{min-height:44px;padding:8px 10px;font-size:15px;white-space:nowrap}button.big{font-size:20px;min-height:56px;padding:12px 16px}.learn{display:flex;flex-direction:column;align-items:stretch;gap:6px}.learn>div:first-child{display:contents}.learn .player{order:1;position:sticky;top:0;z-index:5;border-radius:10px}.learn .prompt{order:2;font-size:22px;padding:10px;margin:0}.learn .side{order:3;max-height:34vh}.learn .controls,.learn .rec,.learn>div>.note,.learn>div>p{order:4}.line{font-size:18px;padding:8px 10px}.controls{margin:4px 0;gap:6px}.controls button{font-size:18px;min-width:44px;min-height:44px;padding:6px 10px}.hint{font-size:14px}.stat{min-width:90px;padding:8px}.stat b{font-size:20px}.badge{width:60px;font-size:22px}.songs{grid-template-columns:1fr}.edit-line button{min-width:40px;min-height:44px;padding:4px 6px}.rev .row{gap:4px}.rev .row button{min-width:44px;padding:4px 8px}.prompt small{font-size:16px}.toast{font-size:30px;padding:18px 24px}}
