/* Finish the lyric · phone and TV. Uses the shared tokens from style.css / tv.css. */
.lyric-line{font-family:var(--font-ar);font-weight:700;font-size:30px;line-height:1.5;margin:0;text-wrap:balance}
.lyric-previous{font-family:var(--font-ar);font-weight:600;font-size:18px;line-height:1.5;margin:0;color:var(--ink-dim);text-wrap:balance}
.lyric-line mark{background:none;color:var(--lime);white-space:nowrap}
.lyric-blank{display:inline-block;width:3.2em;height:.12em;border-radius:.1em;background:var(--apricot);vertical-align:-.15em}
.lyric-line.revealed mark{border-bottom:.08em solid var(--lime)}
.lyric-phone .lyric-line{padding:18px 16px;border-radius:16px;background:var(--panel,#1f2623);border:1px solid var(--line,#2b332e)}
.lyric-phone h2{font-family:var(--font-display);font-size:24px;margin:0}

/* TV: fixed 1920×1080 canvas */
#lyric-tv{position:absolute;inset:150px 96px 64px}
.lyric-tv{height:100%;display:flex;flex-direction:column;gap:40px}
.lyric-tv.final{align-items:center;justify-content:center;text-align:center;gap:32px}
.lyric-tv.final h1{font-weight:800;font-size:110px;line-height:1.05;letter-spacing:-3px;margin:0}
.lyric-final{list-style:none;margin:0;padding:0;display:grid;gap:10px;width:900px;counter-reset:rank}
.lyric-final li{counter-increment:rank;display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:20px;border-radius:20px;padding:12px 26px;background:var(--panel);font-size:38px;text-align:left}
.lyric-final li::before{content:counter(rank);font-weight:800;color:var(--ink-dim)}
.lyric-final span{font-family:var(--font-ar);font-weight:700}
.lyric-scores{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.lyric-chip{display:flex;align-items:center;gap:14px;padding:12px 24px;border-radius:40px;background:var(--panel);border:3px solid var(--line);font-size:30px;transition:border-color .4s,background .4s,opacity .4s}
.lyric-chip i{width:16px;height:16px;border-radius:50%;background:var(--team)}
.lyric-chip span{font-family:var(--font-ar);font-weight:700}
.lyric-chip small{font-weight:800;font-size:18px;letter-spacing:2px;color:var(--apricot)}
.lyric-chip strong{font-weight:800;font-size:36px;font-variant-numeric:tabular-nums}
.lyric-chip.won{border-color:var(--team);background:var(--team-dim)}
.lyric-chip.won small{color:var(--team)}
.lyric-chip.out{opacity:.55}
.lyric-stage{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:36px;text-align:center}
.lyric-stage h1{font-weight:800;font-size:96px;letter-spacing:-3px;margin:0}
.lyric-stage .tv-eyebrow.win{color:var(--lime)}
.lyric-tv .lyric-line{font-size:92px;line-height:1.35;max-width:1640px}
.lyric-tv .lyric-previous{font-size:44px;max-width:1500px;margin-bottom:-12px}
.lyric-hint{font-size:32px;color:var(--ink-muted);margin:0;max-width:1300px}
.lyric-song{font-size:40px;margin:0;color:var(--ink-muted)}
.lyric-song b{font-family:var(--font-ar);color:var(--ink)}
.lyric-karaoke{display:flex;flex-direction:column;gap:18px;font-family:var(--font-ar);font-weight:700}
.lyric-karaoke [data-lyric-prev]{font-size:44px;color:var(--lyric-dim);min-height:1.4em}
.lyric-karaoke [data-lyric-now]{font-size:76px;line-height:1.35;color:var(--ink);min-height:1.4em}
.lyric-karaoke.small [data-lyric-now]{font-size:44px;color:var(--ink-muted)}
.lyric-clock{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:32px}
.lyric-clock span{font-weight:800;font-size:22px;letter-spacing:4px;color:var(--ink-dim)}
.lyric-clock strong{font-weight:800;font-size:96px;line-height:1;min-width:2ch;text-align:right;font-variant-numeric:tabular-nums}
.lyric-clock .tv-bar i{background:var(--lime)}
.lyric-note{font-size:28px;color:var(--ink-muted);margin:0;text-align:center}
.lyric-note.held{color:var(--apricot)}
