:root{color-scheme:dark;--font: system-ui, -apple-system, "Segoe UI", sans-serif;font-family:var(--font);--bg-0: #240f1f;--bg-1: #12060e;--bg-2: #050208;--bg-dialog: #1a0c16;--accent: #e65780;--accent-soft: rgba(230, 87, 128, .2);--accent-glow: rgba(230, 87, 128, .35);--gold: #ebb847;--cream: #fff2b8;--text: #fff;--text-strong: rgba(255, 255, 255, .86);--text-body: rgba(255, 255, 255, .82);--text-soft: rgba(255, 255, 255, .75);--muted: rgba(255, 255, 255, .58);--faint: rgba(255, 255, 255, .42);--glass: rgba(255, 255, 255, .08);--glass-2: rgba(255, 255, 255, .06);--glass-3: rgba(255, 255, 255, .04);--fill: rgba(255, 255, 255, .12);--fill-quiet: rgba(255, 255, 255, .1);--fill-pressed: rgba(255, 255, 255, .22);--hairline: rgba(255, 255, 255, .14);--line-soft: rgba(255, 255, 255, .16);--line-slot: rgba(255, 255, 255, .18);--line-dashed: rgba(255, 255, 255, .28);--line-choice: rgba(255, 255, 255, .32);--slot-bg: rgba(0, 0, 0, .18);--scrim: rgba(0, 0, 0, .62);--deezer-plate: #fff;--qr-plate: #fff;--text-xs: .8rem;--text-kicker: .82rem;--text-note: .9rem;--text-sm: .85rem;--text-md: .92rem;--text-base: 1rem;--text-input: 16px;--text-lg: 1.2rem;--text-track: 1.25rem;--text-xl: 1.35rem;--text-2xl: 1.7rem;--text-winner: 1.75rem;--text-score: 1.8rem;--text-tile: 2.4rem;--text-hero: 2.75rem;--weight-body: 600;--weight-label: 650;--weight-title: 700;--weight-display: 800;--space-1: 4px;--space-2: 6px;--space-3: 8px;--space-4: 12px;--space-5: 16px;--space-6: 20px;--radius-xs: 8px;--radius-sm: 10px;--radius-md: 12px;--radius-row: 14px;--radius-lg: 16px;--radius-xl: 18px;--radius-dialog: 20px;--radius-tile: 24px;--radius-pill: 999px;--hit-quiet: 36px;--hit: 44px;--input: 48px;--choice: 52px;--control: 56px;--column: 480px;--column-tablet: 720px;--column-wide: 1200px;--host-cover: clamp(200px, min(26vw, 40vh), 380px);--host-timer: clamp(140px, min(16vw, 28vh), 240px);--text-host-track: clamp(1.8rem, 3vw, 3.2rem);--text-host-score: clamp(2.6rem, 4vw, 4.2rem);--text-host-timer: clamp(2.2rem, 3.8vw, 4.4rem);--deezer-mark: 32px;--deezer-mark-splash: 24px;--player-1: #e65780;--player-2: #ebb847;--player-3: #f27a52;--player-4: #94477a;--player-5: #f5b894;--player-6: #b83859}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100dvh;color:var(--text);background:linear-gradient(var(--bg-0),var(--bg-1) 42%,var(--bg-2))}button,input{font:inherit;color:inherit}.app{min-height:100dvh;max-width:var(--column);margin:0 auto;padding:calc(12px + env(safe-area-inset-top)) 16px calc(12px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.top,.transport,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{margin:0;display:flex;align-items:center;gap:8px;font-weight:var(--weight-title);letter-spacing:.01em}.brand a{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none}.brand img{width:32px;height:32px;object-fit:contain}.langs{display:flex;gap:6px}.langs button,.chips button,.ghost,.text-btn,.primary{border:0;cursor:pointer}.langs button{background:transparent;color:var(--muted);border-radius:var(--radius-pill);min-width:var(--hit);min-height:var(--hit-quiet)}.langs button[aria-pressed=true]{color:var(--text);background:var(--fill)}main{flex:1;display:flex;flex-direction:column;min-height:0}section{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0}h1{margin:0;font-size:var(--text-2xl);line-height:1.15}#screen-setup h1{font-size:var(--text-lg);font-weight:var(--weight-label)}h2{margin:0;font-size:1.6rem}fieldset{border:0;margin:0;padding:0;min-inline-size:0}legend{display:block;width:100%;margin:0 0 8px;padding:0;color:var(--muted);font-size:var(--text-sm);line-height:1.3}.name-field input,#search{width:100%;border:1px solid var(--hairline);border-radius:var(--radius-row);background:var(--glass-2);min-height:var(--input);padding:0 14px;font-size:var(--text-input)}#search{margin:0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips button{background:var(--glass-2);border:1px solid var(--fill);border-radius:var(--radius-pill);min-height:40px;min-width:52px;padding:0 14px}.chips button[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent)}.primary,.ghost{border-radius:var(--radius-pill);min-height:var(--control);padding:0 18px}.primary{background:var(--accent);font-weight:var(--weight-label)}#splash-start,#start-btn{width:100%}a.primary{display:flex;align-items:center;justify-content:center;width:100%;text-decoration:none;color:inherit}.notfound{justify-content:center;gap:var(--space-4, 24px);text-align:center}a[data-support]{display:inline-flex;align-items:center;justify-content:center;gap:.35em;font-size:var(--text-lg);text-decoration:none}a[data-support] [data-t]{text-decoration:underline;text-underline-offset:3px}.support-heart{font-size:1.25em;line-height:1}.primary:disabled{opacity:.45;cursor:default}.ghost{background:var(--fill)}.text-btn{background:transparent;color:var(--muted);min-height:var(--hit);padding:0;text-align:left}.danger{color:var(--accent)}.muted{color:var(--muted)}.center{text-align:center}.hint,#status,.error,.skip{margin:0;font-size:var(--text-md)}.error,.skip{color:var(--accent);text-align:center}.track-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;border-radius:var(--radius-xl);background:var(--glass-2)}.cover{position:relative;width:min(168px,42vw);aspect-ratio:1;margin:0 auto;border-radius:var(--radius-lg);background:var(--glass);overflow:hidden}.cover img{width:100%;height:100%;object-fit:cover;display:block}.cover:after{content:"?";position:absolute;inset:0;display:grid;place-items:center;font-size:56px;font-weight:800;color:var(--accent);opacity:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.1) 50%,transparent 70%) 0 0 / 250% 100%;transition:opacity .3s ease}.track-card.is-hidden .cover:after{opacity:.55}@media(prefers-reduced-motion:no-preference){.track-card.is-hidden{animation:hidden-glow 2.8s ease-in-out infinite}.track-card.is-hidden .cover:after{animation:hidden-shimmer 2.8s linear infinite,hidden-bob 2.8s ease-in-out infinite}}@keyframes hidden-glow{0%,to{box-shadow:0 0 0 1px var(--accent-soft),0 0 0 0 transparent}50%{box-shadow:0 0 0 1px var(--accent-glow),0 0 28px 2px var(--accent-soft)}}@keyframes hidden-shimmer{0%{background-position:150% 0}to{background-position:-100% 0}}@keyframes hidden-bob{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.track-title,.artist{margin:0;text-align:center}.track-title{font-size:var(--text-track);font-weight:var(--weight-title)}.artist{color:var(--muted);min-height:1.3em}.players{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.player{width:100%;border-radius:var(--radius-tile);border:1px solid transparent;min-height:140px;padding:var(--space-5);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;text-align:left;touch-action:manipulation;user-select:none;cursor:pointer}.player-icon{width:22px;height:22px;flex:none;margin-bottom:auto}.player-name{margin-top:var(--space-1);font-size:var(--text-track);font-weight:var(--weight-title);color:var(--text-strong);min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-score{font-size:var(--text-tile);font-weight:var(--weight-display);line-height:1;color:var(--text)}.player-song{min-height:1.15em;font-size:var(--text-sm);font-weight:var(--weight-body)}.time{margin:0;text-align:center;font-size:var(--text-score);font-weight:var(--weight-display)}.time.urgent{color:var(--accent)}.transport{margin-top:auto}#screen-game{overflow:auto}#screen-game .transport{flex-shrink:0}#next-btn{flex:1.4}#play-btn{flex:1}.stop-discreet{align-self:center;min-height:var(--hit-quiet);margin-top:2px;font-size:var(--text-sm);opacity:.72}.player{position:relative}.fullscreen-btn,.key-hint,.fullscreen-offer{display:none}@media(hover:hover)and (pointer:fine){.key-hint{display:block;margin:0;font-size:var(--text-sm)}.player[data-key]:after,#play-btn[data-key]:after,#next-btn[data-key]:after{content:attr(data-key);content:attr(data-key) / "";display:inline-block;min-width:1.6em;padding:1px 6px;border:1px solid var(--line-choice);border-bottom-width:2px;border-radius:6px;font:var(--weight-label) var(--text-xs) / 1.3 ui-monospace,"SF Mono",Menlo,monospace;text-align:center;opacity:.8}.player[data-key]:after{position:absolute;top:var(--space-5);right:var(--space-5);color:var(--text-strong)}#play-btn[data-key]:after,#next-btn[data-key]:after{margin-left:10px;vertical-align:1px}}@media(min-width:720px){body[data-screen=game] .app{max-width:var(--column-tablet)}.players{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}@property --left{syntax: "<number>"; inherits: true; initial-value: 1;}@media(min-width:1100px){body[data-screen=game] .app{max-width:var(--column-wide);padding-inline:32px}#screen-game{display:grid;grid-template-columns:var(--host-cover) minmax(0,1fr) var(--host-timer);grid-template-areas:"head fs stop" "offer offer offer" "cover title time" "cover artist time" "solo solo solo" "fields fields fields" "hint hint hint" "skip skip skip" "players players players" "keys keys keys" "transport transport transport";grid-template-rows:auto auto 1fr 1fr;column-gap:48px;row-gap:0;align-content:start}#track-header{grid-area:head;text-align:left;align-self:center;margin:0;font-weight:var(--weight-label)}.fullscreen-btn{grid-area:fs;justify-self:end;align-self:center;display:inline-flex;align-items:center;min-height:var(--hit-quiet);font-size:var(--text-sm)}#stop-btn{grid-area:stop;justify-self:end;margin:0}.fullscreen-offer{grid-area:offer;display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-6);border-radius:var(--radius-pill);background:var(--glass-2);border:1px solid var(--glass)}.fullscreen-offer p{margin:0 auto 0 0;color:var(--text-strong)}.fullscreen-offer .ghost{min-height:var(--hit);padding:0 20px}.fullscreen-offer[hidden]{display:none}.track-card{display:contents}.cover{grid-area:cover;width:100%;margin:var(--space-5) 0;border-radius:var(--radius-tile)}.cover:after{font-size:clamp(64px,8vw,128px)}.track-title,.artist{text-align:left}.track-title{grid-area:title;align-self:end;margin-bottom:var(--space-3);font-size:var(--text-host-track);line-height:1.1;text-wrap:balance}.artist{grid-area:artist;align-self:start;font-size:var(--text-xl)}#time-label{grid-area:time;align-self:center;position:relative;width:100%;aspect-ratio:1;display:grid;place-items:center;font-size:var(--text-host-timer);font-variant-numeric:tabular-nums;--ring: var(--text-strong)}#time-label:before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(var(--ring) calc(var(--left) * 1turn),var(--glass) 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 10px),#000 calc(100% - 9px));mask:radial-gradient(farthest-side,transparent calc(100% - 10px),#000 calc(100% - 9px))}#time-label.urgent{--ring: var(--accent)}#time-label.ended{font-size:var(--text-lg)}#solo-status{grid-area:solo;margin-bottom:var(--space-4)}#solo-fields{grid-area:fields;margin-bottom:var(--space-4)}#score-hint{grid-area:hint;margin-bottom:var(--space-4)}#skip-notice{grid-area:skip;margin-bottom:var(--space-4)}.players{grid-area:players;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--space-5)}.player{min-height:156px;padding:var(--space-6)}.player-score{font-size:var(--text-host-score)}.key-hint{grid-area:keys;margin-top:var(--space-4)}#screen-game .transport{grid-area:transport;justify-content:flex-end;margin-top:var(--space-6)}#play-btn{flex:0 0 auto;min-width:180px;padding:0 28px}#next-btn{flex:0 0 auto;min-width:280px;padding:0 32px}}@media(min-width:1100px)and (prefers-reduced-motion:no-preference){#time-label{transition:--left 1s linear}.track-card.is-hidden .cover{animation:hidden-glow 2.8s ease-in-out infinite}}#screen-splash{justify-content:safe center;text-align:center;gap:var(--space-4);overflow:auto}.splash-hero{margin:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.pitch{margin:0;max-width:36ch;color:var(--text-strong);font-size:var(--text-base);font-weight:var(--weight-body);line-height:1.4}.feature-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);text-align:left}.feature-list li{margin:0;padding-left:1.1em;position:relative;color:var(--muted);font-size:var(--text-sm);font-weight:var(--weight-body);line-height:1.35}.feature-list li:before{content:"\2022";position:absolute;left:.2em;color:var(--faint)}.feature-list{align-self:center}.splash-detail{margin:-8px 0 0;font-size:var(--text-sm)}.app-store{display:inline-flex;line-height:0}.app-store:focus-visible{outline:2px solid var(--text);outline-offset:2px}.app-store img{display:block;height:40px;width:auto}#splash-start{font-weight:var(--weight-label)}.logo{width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 16px 28px var(--accent-glow))}@media(prefers-reduced-motion:no-preference){.logo{animation:logo-pulse 2s ease-in-out infinite alternate}}@keyframes logo-pulse{0%{transform:scale(1)}to{transform:scale(1.03)}}.halloween-layer{position:fixed;inset:0;z-index:18;overflow:hidden;pointer-events:none}.halloween-layer[hidden]{display:none}.spook{position:absolute;top:0;left:0;pointer-events:none;will-change:transform}.spook img{display:block;height:auto;filter:brightness(1.5) drop-shadow(0 0 2px rgba(255,170,80,.9)) drop-shadow(0 0 12px rgba(255,120,30,.55))}@media(prefers-reduced-motion:no-preference){.spook-bat img{animation:spook-flap .32s ease-in-out infinite alternate}}@keyframes spook-flap{0%{transform:scaleY(1)}to{transform:scaleY(.62) translateY(4px)}}#screen-setup{overflow:auto}.one-phone{margin:0 0 10px;font-size:var(--text-sm);line-height:1.35}#player-fields{display:flex;flex-direction:column;gap:10px}.player-edit{display:flex;align-items:center;gap:8px}.player-edit .name-field{flex:1;min-width:0;display:flex;align-items:center;gap:10px}.player-edit .name-field input{width:auto;flex:1;min-width:0}.swatch{width:28px;height:28px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;justify-content:center;flex:none}.swatch-icon{width:16px;height:16px}.remove-player,.add-player{border:0;cursor:pointer;color:inherit}.remove-player{min-width:var(--hit);min-height:var(--hit);border-radius:var(--radius-md);background:var(--glass-2);color:var(--muted);font-size:var(--text-lg)}.add-player{min-height:var(--hit);margin-top:10px;border-radius:var(--radius-pill);border:1px dashed var(--line-dashed);background:transparent;color:var(--text)}#setup-form{display:flex;flex-direction:column;gap:20px;flex:1}#setup-form fieldset{display:flex;flex-direction:column}#start-btn{margin-top:auto}.mc-row{display:flex;align-items:flex-start;gap:var(--space-4)}.mc-copy{flex:1;min-width:0}.mc-title{margin:0;font-weight:var(--weight-title);line-height:1.25}.mc-row .muted{margin:2px 0 0;font-size:var(--text-sm);line-height:1.35}.mc-row .switch{margin-top:1px}.beta-mark{font-size:var(--text-xs);letter-spacing:.06em;color:var(--muted);font-weight:var(--weight-label)}.solo-fields{display:flex;gap:var(--space-3)}.solo-fields .ghost{flex:1;min-height:var(--hit)}.solo-fields .ghost[aria-pressed=true]{background:var(--accent);color:#fff}.solo-flash{position:fixed;inset:0;z-index:20;display:grid;place-items:center;pointer-events:none}.solo-flash[hidden],.solo-gold[hidden]{display:none}.solo-flash>*{grid-area:1 / 1}.flash-glow{width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(235,184,71,.55),rgba(230,87,128,.18) 55%,transparent 72%);opacity:0}.flash-ring{width:132px;height:132px;border-radius:50%;border:3px solid var(--gold);opacity:0}.flash-ring-outer{border:2px solid var(--accent)}.flash-sparks{position:relative;width:0;height:0}.flash-spark{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--gold);opacity:0;transform:rotate(var(--angle)) translate(0)}.flash-stamp{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 28px;max-width:100vw;box-sizing:border-box;opacity:0;transform:scale(1.72) rotate(-16deg)}.flash-bolts{display:flex;gap:2px}.flash-bolt{width:34px;height:34px;fill:var(--gold);filter:drop-shadow(0 0 10px rgba(235,184,71,.9))}.flash-bolt-two{display:none}.is-double .flash-bolt-two{display:inline-flex}.flash-label{margin:0;font-size:clamp(2.2rem,13vw,3.9rem);font-weight:900;letter-spacing:.12em;line-height:1.05;white-space:nowrap;text-transform:uppercase;background:linear-gradient(180deg,var(--text),var(--cream),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 4px 0 rgba(0,0,0,.45)) drop-shadow(0 0 18px rgba(230,87,128,.85))}.is-double .flash-label{font-size:clamp(1.8rem,10.5vw,3.2rem)}.flash-time{margin:6px 0 0;padding:5px 12px;border-radius:var(--radius-pill);border:1.5px solid rgba(235,184,71,.85);background:#ebb84738;color:var(--text);font-size:var(--text-md);font-weight:var(--weight-display);font-variant-numeric:tabular-nums}.solo-gold{position:fixed;inset:0;z-index:19;pointer-events:none;background:var(--gold);opacity:0}.solo-flash.play .flash-stamp{animation:flash-fade 1.1s ease both;transform:rotate(-6deg)}.solo-flash.play .flash-glow{animation:flash-glow-fade 1.1s ease both}.solo-gold.play{animation:gold-fade .2s ease-out both}@keyframes flash-fade{0%{opacity:0}16%{opacity:1}80%{opacity:1}to{opacity:0}}@keyframes flash-glow-fade{0%{opacity:0}16%{opacity:.7}80%{opacity:.7}to{opacity:0}}@keyframes gold-fade{0%{opacity:.18}to{opacity:0}}@media(prefers-reduced-motion:no-preference){.solo-flash.play .flash-stamp{animation:flash-stamp 1.9s both;transform:none}.solo-flash.play .flash-glow{animation:flash-glow 1.9s ease-out both}.solo-flash.play .flash-ring{animation:flash-ring .78s ease-out both}.solo-flash.play .flash-ring-outer{animation:flash-ring-outer .78s ease-out both}.solo-flash.play .flash-spark{animation:flash-spark .7s ease-out both}.solo-gold.play{animation:gold-wash .55s ease-out both}}@keyframes flash-stamp{0%{opacity:0;transform:scale(1.72) rotate(-16deg)}12%{opacity:1;transform:scale(.94) rotate(-6deg)}20%{transform:scale(1.04) rotate(-6deg)}28%{transform:scale(1) rotate(-6deg)}52%{transform:scale(1) rotate(4deg)}60%{transform:scale(1) rotate(-6deg)}80%{opacity:1;transform:scale(1) rotate(-6deg) translateY(0)}to{opacity:0;transform:scale(.82) rotate(-6deg) translateY(-42px)}}@keyframes flash-glow{0%{opacity:0;transform:scale(.85)}14%{opacity:1;transform:scale(1.05)}80%{opacity:1}to{opacity:0}}@keyframes flash-ring{0%{opacity:.9;transform:scale(.35)}to{opacity:0;transform:scale(1.45)}}@keyframes flash-ring-outer{0%{opacity:.55;transform:scale(.2)}to{opacity:0;transform:scale(1.95)}}@keyframes flash-spark{0%{opacity:1;transform:rotate(var(--angle)) translate(8px) scale(1)}to{opacity:0;transform:rotate(var(--angle)) translate(var(--reach)) scale(.4)}}@keyframes gold-wash{0%{opacity:.35}to{opacity:0}}.solo-card{padding:20px 24px}.solo-tier{margin:0;font-size:var(--text-xl);font-weight:var(--weight-display);line-height:1.25;text-wrap:balance}.solo-recap{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;margin:14px 0 0;color:var(--gold);font-size:var(--text-md);font-weight:var(--weight-label)}.recap-item{display:inline-flex;align-items:center;gap:4px}.recap-item .flash-bolt{width:15px;height:15px;filter:none}@media(prefers-reduced-motion:no-preference){.solo-recap{animation:recap-in .5s .35s ease-out both}}@keyframes recap-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.switch{width:51px;height:31px;border:0;border-radius:var(--radius-pill);background:var(--fill);position:relative;flex:none;padding:0;cursor:pointer}.switch:after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:var(--text)}.switch[aria-pressed=true]{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.switch[aria-pressed=true]:after{transform:translate(20px)}@media(prefers-reduced-motion:no-preference){.switch:after{transition:transform .2s ease}}.playlist-card{display:flex;align-items:center;gap:12px;width:100%;min-height:76px;padding:10px;border:0;border-radius:var(--radius-lg);background:var(--glass-2);text-align:left;cursor:pointer}.playlist-card img{width:56px;height:56px;border-radius:var(--radius-md);object-fit:cover;flex:none;background:var(--glass)}.playlist-card-text{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;text-align:left}.playlist-card #status{font-weight:var(--weight-title);font-size:var(--text-base);line-height:1.25;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.playlist-card .muted{font-size:var(--text-sm);line-height:1.35}#screen-browse{min-height:0}.browse-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.browse-head h1{font-size:var(--text-xl)}.playlist-scroll{overflow:auto;flex:1;display:flex;flex-direction:column;gap:8px;min-height:0}.section-label{margin:8px 0 0;color:var(--muted);font-size:var(--text-sm)}.empty-state{margin:4px 0 8px;padding:16px;border-radius:var(--radius-row);background:var(--glass-3);text-align:center}.empty-state p{margin:0;color:var(--muted)}.empty-state .empty-title{margin:0 0 4px;font-weight:var(--weight-title);color:var(--text)}.retry-btn{align-self:center;min-height:var(--hit);min-width:var(--hit);padding:0 18px;border:1px solid var(--line-dashed);border-radius:var(--radius-pill);background:var(--fill-quiet);font-weight:var(--weight-label);cursor:pointer}.playlist-row{display:flex;align-items:center;gap:0;min-height:72px;border-radius:var(--radius-row);background:var(--glass)}.playlist-row.is-busy{opacity:.55;pointer-events:none}.playlist{flex:1;display:flex;align-items:center;gap:12px;min-height:72px;padding:8px;border:0;border-radius:var(--radius-row);background:transparent;text-align:left;cursor:pointer}.playlist img,.playlist-fallback{width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover;background:var(--glass);flex:none}.playlist span{display:block}.playlist .muted{font-size:var(--text-sm)}#browse-status:empty{display:none}.heart{border:0;background:transparent;color:var(--muted);width:var(--hit);min-width:var(--hit);min-height:var(--hit);margin-right:6px;border-radius:var(--radius-md);font-size:var(--text-track);cursor:pointer;flex:none}.heart[aria-pressed=true]{color:var(--accent)}.search-key,.solo-mic{display:none}@media(min-width:720px){body[data-screen=browse] .app,body[data-screen=setup] .app{max-width:var(--column-tablet)}.playlist-scroll{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-6) var(--space-5);align-content:start;padding:4px}.playlist-scroll>:not(.playlist-row){grid-column:1 / -1}.section-label{margin-top:var(--space-4)}.playlist-row{position:relative;flex-direction:column;align-items:stretch;min-height:0;background:transparent}.playlist{flex-direction:column;align-items:stretch;gap:var(--space-3);min-height:0;padding:0}.playlist img,.playlist-fallback{width:100%;height:auto;aspect-ratio:1;border-radius:var(--radius-lg)}.playlist>span:last-child{font-weight:var(--weight-label);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.playlist:hover img,.playlist:hover .playlist-fallback{outline:2px solid var(--text);outline-offset:3px}.heart{position:absolute;top:var(--space-3);right:var(--space-3);height:var(--hit);margin:0;border-radius:50%;background:var(--scrim);color:var(--text)}.heart[aria-pressed=true]{color:var(--accent)}#player-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px var(--space-4)}}@media(min-width:720px)and (hover:hover)and (pointer:fine){.playlist-row:not(:hover):not(:focus-within) .heart[aria-pressed=false]{opacity:0}}@media(min-width:1100px){body[data-screen=browse] .app,body[data-screen=setup] .app{max-width:var(--column-wide);padding-inline:32px;position:relative}#screen-browse .name-field{position:absolute;top:calc(10px + env(safe-area-inset-top));left:50%;width:min(560px,42vw);transform:translate(-50%);display:flex;align-items:center}#search{min-height:40px;padding-right:44px}.playlist-scroll{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}#screen-setup{display:grid;grid-template-columns:minmax(280px,400px) minmax(0,1fr) minmax(0,1fr);grid-template-areas:"card title title" "card players players" "card timer songs" "solo mc mc" "retry start start";column-gap:56px;row-gap:var(--space-6);align-content:start;padding-top:var(--space-4)}#setup-form{display:contents}#screen-setup h1{grid-area:title;font-size:var(--text-xl)}#change-playlist{grid-area:card;align-self:start;flex-direction:column;align-items:stretch;gap:var(--space-4);padding:var(--space-4)}#change-playlist img{width:100%;height:auto;aspect-ratio:1;border-radius:var(--radius-lg)}#change-playlist:hover img{outline:2px solid var(--text);outline-offset:3px}.playlist-card #status{font-size:var(--text-xl)}#retry{grid-area:retry;justify-self:start}#setup-form>fieldset:nth-of-type(1){grid-area:players}#setup-form>fieldset:nth-of-type(2){grid-area:timer}#setup-form>fieldset:nth-of-type(3){grid-area:songs}#setup-form>.mc-row:not(#solo-row){grid-area:mc}#solo-row{grid-area:solo}#setup-form>.mc-row{align-self:start;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--glass-2)}.solo-mic{display:inline-flex;flex:none;width:24px;height:24px;margin-top:1px;color:var(--text-strong)}.solo-mic svg{width:100%;height:100%}#start-btn{grid-area:start;justify-self:end;width:auto;min-width:280px;padding:0 32px;margin:0}}@media(min-width:1100px)and (hover:hover)and (pointer:fine){.search-key{display:block;position:absolute;right:12px;pointer-events:none;min-width:1.6em;padding:1px 6px;border:1px solid var(--line-choice);border-bottom-width:2px;border-radius:6px;font:var(--weight-label) var(--text-xs) / 1.3 ui-monospace,"SF Mono",Menlo,monospace;text-align:center;color:var(--muted)}#search:focus~.search-key,#search:not(:placeholder-shown)~.search-key{display:none}}#screen-podium{justify-content:flex-start}.podium-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:8px}#podium-kicker{margin:0;letter-spacing:.04em;color:var(--faint);font-size:var(--text-kicker);font-weight:var(--weight-body)}#podium-list{width:100%;display:flex;flex-direction:column;align-items:center;gap:8px}.podium-hero-icon{width:40px;height:40px}.winner-card{width:100%;box-sizing:border-box;text-align:center;background:var(--glass-2);border-radius:var(--radius-lg);padding:20px 24px}.winner-card .muted{margin:0;font-size:var(--text-note)}.winner-name{margin:6px 0 0;font-size:var(--text-winner);font-weight:var(--weight-display)}.tie-names{font-size:var(--text-xl);line-height:1.3}.tie-icons{display:flex;gap:12px;justify-content:center}.winner-score{margin:6px 0 0;font-size:var(--text-hero);font-weight:var(--weight-display);line-height:1}.podium-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 2px}.podium-rank{width:22px;flex:none;color:var(--faint);font-weight:var(--weight-label);text-align:center}.podium-icon{width:22px;height:22px;flex:none}.podium-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--weight-body)}.podium-pts{color:var(--muted);font-weight:var(--weight-body)}.support-note{position:relative;width:100%;box-sizing:border-box;margin-top:8px;padding:12px 44px 8px;border-radius:var(--radius-lg);background:var(--glass-3);display:flex;flex-direction:column;align-items:center;gap:4px}.support-note p{margin:0;color:var(--muted);font-size:var(--text-sm);font-weight:var(--weight-body);line-height:1.4;text-align:center}.support-note-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 4px}.support-note-link{display:inline-flex;align-items:center;justify-content:center;gap:.35em;min-height:var(--hit);padding:0 8px;color:var(--text-strong);font-size:var(--text-md);font-weight:var(--weight-label);text-decoration:none}.support-note-link [data-t]{text-decoration:underline;text-underline-offset:3px}.support-note-close{position:absolute;top:0;right:0;width:var(--hit);height:var(--hit);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--muted);font-size:1.25rem;line-height:1;cursor:pointer}.support-note-close:focus-visible,.support-note-link:focus-visible{outline:2px solid var(--text);outline-offset:2px}.podium-actions{display:flex;flex-direction:column;gap:10px;margin-top:auto}#replay,#new-game{width:100%;font-weight:var(--weight-label)}.share-block{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:4px}.share-title{margin:0;color:var(--muted);font-size:var(--text-sm);font-weight:var(--weight-label)}.share-row{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.share-link{display:inline-flex;align-items:center;justify-content:center;width:var(--hit);height:var(--hit);border:0;border-radius:50%;background:var(--fill);color:var(--text-strong);cursor:pointer;text-decoration:none}.share-link svg{width:22px;height:22px}.share-link:hover{background:var(--accent-soft)}.share-link:focus-visible{outline:2px solid var(--text);outline-offset:2px}.share-status{min-height:1.2em;margin:0;text-align:center;color:var(--muted);font-size:var(--text-sm)}footer{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-size:var(--text-xs);color:var(--muted)}.deezer-line{display:inline-flex;align-items:center;justify-content:center;gap:10px;color:var(--text-strong);font-weight:var(--weight-label);text-decoration:none}.deezer-line span{text-decoration:underline;text-underline-offset:3px}.deezer-logo{height:var(--deezer-mark);width:auto;background:var(--deezer-plate);border-radius:var(--radius-xs);padding:4px 5px;box-sizing:content-box}body[data-screen=splash] .deezer-logo{height:var(--deezer-mark-splash)}#footer-details{display:flex;flex-direction:column;align-items:center;gap:4px}body:not([data-screen=splash]) #footer-details>:not(#privacy-open){display:none}body[data-screen=game] #footer-details{display:none}.footer-link,dialog a{color:var(--text-strong);font-weight:var(--weight-label)}footer p{margin:0}dialog{border:0;border-radius:var(--radius-dialog);background:var(--bg-dialog);color:var(--text);padding:20px;max-width:min(420px,calc(100% - 32px))}dialog::backdrop{background:var(--scrim)}dialog h2{font-size:var(--text-lg);margin-bottom:8px}dialog p{margin:0 0 16px;color:var(--muted)}dialog ul{margin:0 0 16px;padding-left:18px;color:var(--muted)}#consent-dialog .consent-if,#consent-dialog .consent-note{margin-bottom:8px}#consent-dialog .consent-note:last-of-type{margin-bottom:16px}.consent-actions{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-3)}.consent-actions .choice{flex:1}.choice{min-height:var(--choice);border:1px solid var(--line-choice);border-radius:var(--radius-pill);background:var(--fill-quiet);font-weight:var(--weight-label);cursor:pointer}.choice:focus-visible{outline:2px solid var(--text);outline-offset:2px}.settings-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.settings-head h2{margin:0;font-size:var(--text-xl)}.settings-x{width:var(--hit);height:var(--hit);margin-right:calc(var(--space-3) * -1);border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:var(--text-lg);cursor:pointer}.settings-x:hover{background:var(--glass)}.settings-group{margin-bottom:var(--space-5);border-radius:var(--radius-lg);background:var(--fill-quiet);overflow:hidden}.settings-group>*+*{border-top:1px solid var(--hairline)}.settings-row{display:flex;align-items:center;gap:var(--space-4);width:100%;min-height:56px;padding:var(--space-4) var(--space-5);border:0;background:transparent;color:var(--text);font:inherit;font-weight:var(--weight-label);text-align:left;cursor:pointer}.settings-row:hover{background:var(--glass)}.settings-row:focus-visible,.settings-support:focus-visible,.settings-x:focus-visible,.settings-details summary:focus-visible{outline:2px solid var(--text);outline-offset:-2px}.settings-label{flex:1}.settings-label small{display:block;color:var(--muted);font-size:var(--text-sm);font-weight:var(--weight-body);line-height:1.4}.settings-chev{color:var(--muted)}.settings-switch{position:relative;flex:none;width:52px;height:32px;border-radius:var(--radius-pill);background:var(--line-choice);transition:background .2s}.settings-switch:after{content:"";position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:var(--text);transition:transform .2s}[aria-checked=true]>.settings-switch{background:var(--accent)}[aria-checked=true]>.settings-switch:after{transform:translate(20px)}.settings-details{padding:0 var(--space-5)}.settings-details summary{display:flex;align-items:center;min-height:var(--hit);color:var(--muted);font-size:var(--text-sm);cursor:pointer;list-style:none}.settings-details summary::-webkit-details-marker{display:none}.settings-details summary:after{content:"\25be";margin-left:var(--space-2)}.settings-details[open] summary:after{content:"\25b4"}.settings-details p{margin:0 0 var(--space-4);font-size:var(--text-sm);line-height:1.5}.settings-support{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;min-height:var(--choice);border:1px solid var(--accent-glow);border-radius:var(--radius-lg);background:var(--accent-soft);text-decoration:none}.settings-support:hover{background:var(--accent-glow)}a.settings-support[data-support] [data-t]{text-decoration:none}#settings-close{display:block;width:100%;text-align:center}#privacy-dialog{max-height:min(78dvh,640px);overflow:auto}#privacy-dialog h3{margin:16px 0 6px;font-size:var(--text-base)}.linkish{display:block;width:100%;text-align:center;text-decoration:underline;text-underline-offset:3px}.cue{margin:0;font-size:var(--text-xs)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#retry{align-self:center;background:transparent;color:var(--accent);min-height:var(--hit)}#support-note-app{text-decoration:underline;text-underline-offset:3px}.guide-link{align-self:center;color:var(--text-strong);font-size:var(--text-md);text-underline-offset:3px}.guide-app{max-width:44rem}.skip-link{position:absolute;left:16px;top:-100px;z-index:2;padding:10px 14px;border-radius:var(--radius-pill);background:var(--accent);color:var(--text)}.skip-link:focus{top:12px}.lang-link{display:inline-flex;align-items:center;justify-content:center;min-width:var(--hit);min-height:var(--hit-quiet);border-radius:var(--radius-pill);color:var(--muted);text-decoration:none}.lang-link[aria-current=true]{color:var(--text);background:var(--fill)}.guide-nav{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-3) 0 var(--space-5)}.guide-nav a{display:inline-flex;align-items:center;min-height:var(--hit-quiet);padding:0 14px;border-radius:var(--radius-pill);background:var(--glass);color:var(--text-strong);font-size:var(--text-md);text-decoration:none}.guide-nav a[aria-current=page]{background:var(--fill);color:var(--text);font-weight:var(--weight-label)}.guide{flex:1;display:block;color:var(--text-body);line-height:1.6}.guide a{color:var(--text-strong);text-underline-offset:3px}.guide h1{margin:0 0 var(--space-4);font-size:var(--text-2xl);line-height:1.2;font-weight:var(--weight-display);color:var(--text)}.guide h2{margin:36px 0 var(--space-4);font-size:var(--text-xl);line-height:1.25;font-weight:var(--weight-title);color:var(--text);scroll-margin-top:16px}.guide h3{margin:var(--space-6) 0 var(--space-3);font-size:var(--text-lg);color:var(--text)}.guide p{margin:0 0 var(--space-4)}.guide ul,.guide ol{margin:0 0 var(--space-4);padding-left:1.3em}.guide li{margin-bottom:var(--space-3)}.guide li::marker{color:var(--accent)}.guide-head{margin-bottom:var(--space-5)}.guide-lead{font-size:var(--text-lg);color:var(--text-strong)}.guide a.guide-cta{width:auto;max-width:20rem;padding:0 28px;color:var(--text);text-decoration:none}.guide-cta-detail{margin:var(--space-3) 0 0;font-size:var(--text-sm)}.guide-toc{margin:var(--space-5) 0;padding:var(--space-5);border-radius:var(--radius-lg);background:var(--glass-2)}.guide-toc-title{margin:0 0 var(--space-3);font-size:var(--text-sm);color:var(--muted);font-weight:var(--weight-label)}.guide-toc ol{margin:0}.guide-toc li{margin-bottom:var(--space-2)}.guide figure{margin:var(--space-5) 0;text-align:center}.guide figure img{width:min(100%,260px);height:auto;border-radius:var(--radius-tile);border:1px solid var(--hairline);background:var(--bg-dialog)}.guide figcaption{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--muted)}.guide-faq details{margin-bottom:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-row);background:var(--glass)}.guide-faq summary{cursor:pointer;font-weight:var(--weight-label);color:var(--text)}.guide-faq details p{margin:var(--space-3) 0 0}.guide-related ul{list-style:none;padding:0}.guide-end{display:flex;flex-direction:column;align-items:center;gap:var(--space-5);margin:36px 0 var(--space-5)}.guide-updated{font-size:var(--text-sm);text-align:center}.guide-app footer{margin-top:var(--space-6);padding-bottom:var(--space-4)}.privacy-table{overflow-x:auto;margin:0 0 var(--space-4)}.guide table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.guide th,.guide td{padding:var(--space-3);text-align:left;vertical-align:top;border-bottom:1px solid var(--fill)}.guide th{color:var(--text);font-weight:var(--weight-label)}.guide code{font-size:.9em}.splash-main{display:flex;flex-direction:column;gap:var(--space-4)}.splash-still,.store-band,.podium-steps{display:none}@media(min-width:1100px){body[data-screen=splash] .app,body[data-screen=podium] .app{max-width:var(--column-wide);padding-inline:32px}#screen-splash{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-template-areas:"main still" "store store";align-content:center;align-items:center;column-gap:72px;row-gap:40px;padding:24px 48px;text-align:left}.splash-main{grid-area:main;align-items:flex-start;gap:var(--space-5)}.splash-hero{align-items:flex-start}.logo{width:80px;height:80px}#screen-splash h1{font-size:clamp(2.6rem,4.4vw,4rem);letter-spacing:-.02em}.pitch{max-width:30ch;font-size:var(--text-xl);text-wrap:balance}#splash-start{width:auto;min-width:280px;padding:0 36px}.splash-detail{margin:-4px 0 0}.feature-list{align-self:flex-start;flex-direction:row;flex-wrap:wrap;gap:var(--space-2) var(--space-6)}.guide-link{align-self:flex-start}.splash-still{grid-area:still;display:flex;flex-direction:column;gap:var(--space-5);padding:28px;border-radius:28px;background:var(--glass-2);border:1px solid var(--glass);transform:rotate(-1.2deg)}.still-top{display:flex;align-items:center;gap:var(--space-6)}.still-cover{width:120px;aspect-ratio:1;border-radius:var(--radius-lg);background:var(--glass);display:grid;place-items:center;font-size:56px;font-weight:var(--weight-display);color:var(--accent)}.still-time{display:flex;flex-direction:column;gap:4px}.still-time span{color:var(--muted);font-size:var(--text-sm)}.still-time b{font-size:var(--text-hero);font-weight:var(--weight-display);line-height:1;font-variant-numeric:tabular-nums}.still-tiles{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.still-tile{--tile: var(--player-1);display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:20px;background:color-mix(in srgb,var(--tile) 14%,transparent);border:1px solid color-mix(in srgb,var(--tile) 45%,transparent)}.still-tile.p2{--tile: var(--player-2)}.still-tile.p3{--tile: var(--player-3)}.still-tile.p4{--tile: var(--player-4)}.still-icon{width:20px;height:20px;color:var(--tile)}.still-tile b{font-size:2.2rem;font-weight:var(--weight-display);line-height:1.1}.still-tile span{color:var(--text-strong);font-weight:var(--weight-label)}.store-band{grid-area:store;display:flex;align-items:center;gap:var(--space-6);padding:18px 24px;border-radius:var(--radius-dialog);background:var(--glass-3)}.store-qr{width:88px;height:88px;flex:none;padding:4px;border-radius:var(--radius-sm);background:var(--qr-plate)}.store-copy{margin:0;display:flex;flex-direction:column;gap:2px}.store-copy span:first-child{color:var(--text);font-weight:var(--weight-label)}.store-copy .muted{font-size:var(--text-sm)}.store-band .app-store{margin-left:auto;padding:10px}footer{flex-direction:row;justify-content:center;gap:var(--space-6)}#screen-podium{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr);column-gap:72px;align-items:start;padding-top:var(--space-6)}.podium-body{align-items:stretch;overflow:visible}.podium-actions{margin-top:0;position:sticky;top:24px}#podium-list>.podium-hero-icon,#podium-list>.tie-icons{display:none}.podium-steps{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);align-items:end;gap:var(--space-4);width:100%;margin-top:var(--space-5)}.podium-step{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);min-width:0}.step-who{margin:0;display:flex;flex-direction:column;align-items:center;gap:2px;max-width:100%}.step-who b{font-size:var(--text-hero);font-weight:var(--weight-display);line-height:1;font-variant-numeric:tabular-nums}.step-who span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-strong);font-weight:var(--weight-label)}.step-block{width:100%;display:grid;place-items:start center;padding-top:var(--space-4);border-radius:var(--radius-xl) var(--radius-xl) var(--radius-xs) var(--radius-xs);background:var(--step-fill);border:1px solid var(--step-line);color:var(--text-soft);font-size:var(--text-2xl);font-weight:var(--weight-display)}.rank-1 .step-block{height:200px}.rank-2 .step-block{height:140px}.rank-3 .step-block{height:100px}.podium-row.on-steps{display:none}}.guide-rail{display:none}.guide figure picture{display:block}@media(min-width:1100px){.guide-app{max-width:var(--column-wide);padding-inline:32px}.guide article{display:grid;grid-template-columns:220px minmax(0,44rem) 260px;justify-content:center;align-items:start;column-gap:48px}.guide article>*{grid-column:2}.guide article>.guide-toc{grid-column:1;grid-row:1 / span 40;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;margin:0;padding:0;background:none}.guide-toc ol{list-style:none;padding:0}.guide-toc li{margin:0}.guide .guide-toc a{display:block;padding:6px 12px;border-left:2px solid var(--glass);color:var(--muted);font-size:var(--text-sm);line-height:1.35;text-decoration:none}.guide .guide-toc a:hover{color:var(--text)}.guide .guide-toc a[aria-current=true]{color:var(--text);border-color:var(--accent);font-weight:var(--weight-label)}.guide-head .guide-cta,.guide-head .guide-cta-detail,.guide-end{display:none}.guide article>.guide-rail{grid-column:3;grid-row:1 / span 40;position:sticky;top:24px;display:flex;flex-direction:column;gap:var(--space-4)}.rail-card{display:flex;flex-direction:column;gap:var(--space-3);padding:20px;border-radius:var(--radius-dialog);background:var(--glass-2);border:1px solid var(--glass)}.guide .guide-rail a.guide-cta{width:100%;max-width:none;padding:0 18px}.rail-card p{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.4}.rail-card strong{color:var(--text)}.rail-qr{width:80px;height:80px;padding:4px;border-radius:var(--radius-sm);background:var(--qr-plate)}.rail-store .app-store{align-self:flex-start}.guide figure img{width:100%;height:auto;border-radius:var(--radius-lg)}}#tour-dialog{width:min(420px,calc(100% - 32px));text-align:center}#tour-dialog h2{font-size:var(--text-xl);margin-bottom:10px}#tour-dialog h2:focus{outline:none}.tour-progress{display:flex;gap:8px;margin-bottom:20px}.tour-progress span{flex:1;height:4px;border-radius:var(--radius-pill);background:var(--fill-quiet)}.tour-progress span.on{background:var(--accent)}.tour-body{min-height:260px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px}.tour-body img{margin-bottom:12px;filter:drop-shadow(0 0 16px var(--accent-glow))}.tour-cards{display:flex;flex-direction:column;gap:10px;width:100%;margin-top:8px;text-align:left}.tour-card{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:var(--radius-lg);background:var(--glass)}.tour-card b{font-size:1.05rem}.tour-card span{color:var(--muted);font-size:var(--text-md)}.tour-tiles{display:flex;gap:12px;width:100%;max-width:280px;margin:8px 0 4px}.tour-tile{position:relative;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px;border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--glass-3)}.tour-tile.p1{--tile: var(--player-1)}.tour-tile.p2{--tile: var(--player-2)}.tour-tile.hit{border-color:var(--tile);background:var(--accent-soft)}.tour-tile em{position:absolute;top:10px;right:12px;font-style:normal;font-weight:700;font-size:var(--text-sm);color:var(--tile)}.tour-tile b{font-size:var(--text-score);line-height:1.1}.tour-tile span{font-weight:700;font-size:var(--text-md)}.tour-hint{font-size:var(--text-md)}.tour-actions{display:flex;flex-direction:column;gap:8px;margin-top:20px}.tour-actions.row{flex-direction:row;justify-content:space-between;align-items:center}.tour-actions .primary{padding-top:8px;padding-bottom:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.tour-actions .primary small{font-size:var(--text-xs);opacity:.85}.tour-actions.row .primary{min-width:120px}.tour-actions .text-btn{min-height:var(--hit);padding:0 12px}#tour-error{margin-top:10px}#tour-replay{width:100%;margin-bottom:8px}button.tour-card{border:2px solid transparent;color:var(--text);font:inherit;cursor:pointer;position:relative;min-height:var(--hit)}button.tour-card.on{border-color:var(--accent);background:var(--accent-soft)}button.tour-card:focus-visible{outline:2px solid var(--text);outline-offset:2px}.tour-card .spinner{position:absolute;top:14px;right:14px}.tour-mic{display:grid;place-items:center;width:80px;height:80px;margin:12px 0;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--line-choice);border-top-color:var(--text);border-radius:50%;animation:spin .8s linear infinite}.spinner[hidden]{display:none}.tour-actions .primary{flex-direction:row;gap:8px}.tour-actions .primary:disabled{opacity:.6;cursor:progress}#tour-start{flex-direction:column}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}#start-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}#start-btn:disabled{opacity:.6;cursor:progress}
