/* FLOW CLUB — ink, paper, loud type and a quiet, readable dance floor. */
:root{--club-ink:#101628;--club-panel:#192139;--club-line:#35415b;--club-paper:#fff8e8;--club-lime:#dfff70;--club-blue:#536af5;--club-pink:#f8aaca}
body{background:var(--club-ink);color:var(--club-paper)}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #dfff70;outline-offset:4px}
button.primary,.home button.primary{background:var(--club-lime);color:#172014;border:1px solid var(--club-lime);font-weight:800;box-shadow:3px 4px 0 #080c18;border-radius:8px}
button.primary:hover:not(:disabled){background:#eaffaa;transform:translateY(-1px)}
button,select{border-color:var(--club-line);background:#202b43}
.club-lobby,#setup.club-lobby{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:24px;border:0;border-radius:0;background:radial-gradient(#45516b55 1px,transparent 1px) 0 0/13px 13px,#0e1426;overflow-y:auto;color:var(--club-paper);z-index:30}
#setup.club-lobby[open],.home.club-lobby{display:flex;align-items:center;justify-content:center;text-align:left}
.lobby-shell{width:min(1200px,100%);display:grid;grid-template-columns:.75fr 1.5fr;min-height:620px;border:1px solid #455170;border-radius:20px;overflow:hidden;box-shadow:0 24px 90px #02051280;background:#192139;flex:none;margin:auto}
.lobby-poster{position:relative;display:flex;flex-direction:column;min-width:0;padding:28px 32px 24px;background:radial-gradient(#9297ec26 1px,transparent 1px) 0 0/7px 7px,linear-gradient(150deg,#304a9d,#25366d 56%,#1d2d5e);overflow:hidden;isolation:isolate}
.lobby-poster:after{content:'';position:absolute;z-index:-1;width:430px;height:430px;left:130px;top:160px;border:1px solid #a9bcff40;border-radius:50%;box-shadow:0 0 0 45px #8a9ceb09,0 0 0 90px #8a9ceb08}
.club-mark{font-size:20px;font-weight:950;letter-spacing:-.06em;width:max-content}.club-mark small{display:block;font-size:11px;letter-spacing:.19em;margin:3px 0 0 25px;color:#becaf2}
.mode-tabs{display:flex;gap:5px;margin:25px 0 28px;position:relative;z-index:1}.mode-tabs a{padding:8px 14px;font-size:10px;font-weight:750;letter-spacing:.07em;border:1px solid #93a6e559;border-radius:5px;color:#c5d1f0}.mode-tabs a[aria-current]{background:#fff8e8;color:#263667;border-color:#fff8e8;box-shadow:2px 3px #0e1b49}
.poster-title{position:relative}.poster-title .eyebrow{font-size:11px;letter-spacing:.11em;color:#b8c9ef}.club-lobby .poster-title h1,#setup .poster-title h1{font-size:clamp(42px,4.5vw,65px);font-weight:950;font-style:italic;letter-spacing:-.065em;line-height:.96;margin:13px 0 16px;position:relative;z-index:1}.poster-title h1 em{color:#dfff70;text-shadow:3px 4px #121e49;font-style:italic}.club-lobby .poster-title p{color:#c4d0ec;font-size:13px;line-height:1.65;margin:0 0 16px}.poster-star{position:absolute;right:-8px;top:61px;font-size:112px;color:#fb9fc4;transform:rotate(-13deg);z-index:0;opacity:.85;line-height:1}
.poster-location{position:relative;margin:auto -9px 20px;transform:rotate(-3deg);border:3px solid #182445;box-shadow:5px 6px #101a37;border-radius:6px;overflow:hidden;background:#17243d}.poster-location .venue-art{display:block;width:100%;height:119px;object-fit:cover}.poster-location>span{position:absolute;left:12px;bottom:11px;font-size:10px;letter-spacing:.1em;color:#fff}.poster-location b{display:block;font-size:19px;letter-spacing:-.04em;margin-top:2px;text-shadow:1px 2px #102037}
.lobby-song{display:flex;gap:11px;align-items:center;border:1px solid #8496cc77;padding:12px;border-radius:9px;background:#172850cc;text-align:left;width:100%;flex:none}.lobby-song:hover{background:#253c77}.record-disc{width:38px;height:38px;border:4px solid #172034;border-radius:50%;background:radial-gradient(circle,#16233b 0 3px,#f2ad98 4px 9px,#0d1426 10px 12px,#283658 13px 14px,#0d1426 15px);box-shadow:0 0 0 1px #8090b1;flex:none}.lobby-song span:nth-child(2){min-width:0}.lobby-song small{display:block;font-size:10px;letter-spacing:.07em;color:#b5c5ed}.lobby-song b{display:block;font-size:12px;color:#fff9e9;margin:4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lobby-song em{font-size:11px;color:#a7bde6;font-style:normal}.lobby-song>strong{margin-left:auto;color:#dfff70;font-size:24px}
.lobby-config,.app .home-copy.lobby-config{width:auto;max-width:none;padding:29px 29px 19px;display:flex;flex-direction:column;gap:0;min-width:0;background:#192139}
.section-label{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;font-weight:800;letter-spacing:.12em;color:#f0eddf;margin:0 0 10px}.section-label>a,.section-label>span+span{font-size:11px;color:#97a9cc;font-weight:500;letter-spacing:0}
.club-lobby .setup-players{position:relative;gap:12px;margin:0 0 22px;display:grid;grid-template-columns:1fr 1fr}.club-lobby .setup-players section{padding:0 9px 9px;border:1px solid #475270;border-radius:11px;background:#233454;overflow:hidden;min-width:0}.club-lobby .setup-players section:last-child{background:#3a3246;border-color:#715962}
.player-slot{display:flex;justify-content:space-between;gap:5px;padding:9px 2px;font-size:10px;letter-spacing:.05em;color:#b4c7ee}.player-slot b{font-size:10px;font-weight:500;opacity:.7}.lobby-preview{height:150px;width:100%;overflow:hidden;border-radius:5px;position:relative;background:#202a48}.lobby-preview:empty:before{content:'✳';position:absolute;inset:0;display:grid;place-items:center;font-size:52px;color:#52618a}.lobby-preview canvas{width:100%;height:100%;display:block}.lobby-preview:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#233454aa,transparent 30%);pointer-events:none}.setup-players section:last-child .lobby-preview:after{background:linear-gradient(0deg,#3a324699,transparent 30%)}
.club-lobby .character-choices{margin:8px 0 0;gap:5px}.club-lobby button.character-choice{font-size:13px;padding:9px 8px;gap:6px;border-radius:5px;border-color:#617198;background:#121c32a1;color:#f2efdf;box-shadow:none}.club-lobby button.character-choice[aria-pressed=true]{background:#e7eddb;color:#1c293b;border-color:#e7eddb}.club-lobby button.character-choice[data-character=daniel][aria-pressed=true]{background:#ffcead;color:#3a2930;border-color:#ffcead}.club-lobby .character-dot{display:none}.club-lobby .character-check{color:inherit}.keys-hint{display:block;text-align:center;font-size:11px;color:#9daccc;margin-top:8px;letter-spacing:.08em}.versus-sticker{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%) rotate(-10deg);z-index:2;background:#dfff70;color:#172014;font-size:20px;font-style:italic;font-weight:950;border:3px solid #192139;padding:8px 6px;border-radius:5px;box-shadow:2px 2px #0d1321}
.venue-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:18px}.venue-choice{padding:0;overflow:hidden;border-radius:7px;border:1px solid #566280;background:#202b45;text-align:left;color:#edf0e8}.venue-choice .venue-art{display:block;width:100%;height:76px;object-fit:cover;object-position:50% 42%;transition:filter .2s,transform .2s}.venue-choice:hover .venue-art{filter:brightness(1.08);transform:scale(1.025)}.venue-choice[data-venue=world]{border-color:#8f784c}.venue-choice>span{display:flex;justify-content:space-between;padding:7px 9px;font-size:11px}.venue-choice i{font-style:normal;opacity:0}.venue-choice[aria-pressed=true]{border-color:#dfff70;box-shadow:0 0 0 1px #dfff70}.venue-choice[aria-pressed=true]>span{background:#dfff70;color:#172014}.venue-choice[aria-pressed=true] i{opacity:1}
.lobby-settings{display:grid;grid-template-columns:1.1fr 1fr;gap:14px;align-items:start;padding:0 0 12px}.club-lobby .mission-label{color:#aab9d5!important;font-size:11px!important;letter-spacing:.1em!important;margin:0 0 5px}.club-lobby select,#setup select{width:100%;padding:8px 10px;margin:0;font-size:11px;border-radius:5px;background:#25314b;border:1px solid #53617f;color:#eeeada}.club-lobby .mission-preview,.app .home-copy .home-sequence{font-size:11px;color:#a8b8d5;margin:6px 0 0;min-height:0;line-height:1.4}.song-choice{min-width:0;align-self:stretch;margin-top:14px;font-size:11px;padding:9px 10px;text-align:left;background:#293248;border:1px solid #53617f;border-radius:5px;line-height:1.2}.song-choice>span{display:inline-block;max-width:calc(100% - 23px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.song-choice small{display:block;color:#a7b8d5;font-size:10px;letter-spacing:.07em;margin-top:7px}
.club-lobby .actions,#setup .actions,.club-lobby .home-actions,.app .home-actions{display:grid;grid-template-columns:1.12fr 1fr;gap:9px;margin:0}.club-lobby .actions>button,#setup .actions>button,.app .home .home-actions>button{position:relative;text-align:left;padding:12px 14px;font-size:13px;font-weight:800;border-radius:7px;margin:0}.club-lobby .actions button>small,.club-lobby .home-actions button>small{display:block;font-size:11px;font-weight:500;margin-top:5px;opacity:.7}.club-lobby .actions button>span,.club-lobby .home-actions button>span{position:absolute;right:12px;top:12px;font-size:25px;margin:0}.club-lobby .actions button:not(.primary),.club-lobby .home-actions button:not(.primary){background:#29364f;border:1px solid #566481;color:#edf0e3;box-shadow:3px 4px #0d1220}
.lobby-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:13px}.club-lobby .setup-control,.club-lobby .home-control{padding:0;background:none;margin:0;display:flex;align-items:center;gap:6px;color:#a6b7d5;font-size:11px}.setup-control input,.home-control input{accent-color:#dfff70}.club-lobby .setup-control span{font-size:11px}.club-lobby .text,.club-lobby .practice-button,.app .home .practice-button{background:none;border:0;color:#ccd9ee;font-size:11px;padding:0;text-decoration:underline;text-underline-offset:3px}.club-lobby #loading{font-size:11px;margin:11px 0 0;line-height:1.3;color:#8199bd}.club-lobby #homeRecord{font-size:11px;color:#8199bd;margin-top:12px}
.solo-casting{display:grid;grid-template-columns:1fr 1fr;border:1px solid #4b5b7d;background:#233454;border-radius:11px;overflow:hidden;padding:10px;gap:18px;align-items:center;margin:0 0 22px}.solo-casting .lobby-preview{height:181px}.solo-casting .character-choices{flex-direction:column;margin:0}.solo-casting .character-choice{padding:12px!important}.app .home-copy .casting-note{font-size:11px;color:#adbdde;margin:16px 0 0}
/* Results are a podium, not another settings form. */
#results,#pauseDialog,#helpDialog,.music-dialog{background:radial-gradient(#65729328 1px,transparent 1px) 0 0/8px 8px,#192139;border:1px solid #546180;color:#fff8e8;border-radius:17px;box-shadow:0 22px 90px #0008}dialog::backdrop{background:#0c1125e0;backdrop-filter:blur(10px)}
#results{width:min(720px,calc(100% - 32px));padding:28px 32px;text-align:center;overflow:auto;max-height:92dvh;isolation:isolate}#results:before{content:'✳';position:absolute;font-size:220px;color:#28395e;top:-43px;right:-24px;z-index:-1;line-height:1;transform:rotate(15deg)}#results .eyebrow,#result .eyebrow{color:#dfff70;font-size:10px;letter-spacing:.2em}#results h2{font-size:36px;font-style:italic;font-weight:950;letter-spacing:-.05em;line-height:1.05;color:#fff8e8;margin:10px 0}#results>p{font-size:13px;color:#b2c0dc}#results .actions{justify-content:center}#results .actions button{padding:11px 20px;font-weight:700}#results .result-scores{gap:15px;margin:20px 0 12px}#results .result-scores>div{position:relative;background:#273049;border:1px solid #58627e;border-radius:10px;padding:12px 18px 14px;text-align:left;box-shadow:0 4px #0b1020}#results .result-scores>div[data-winner=true]{border:2px solid #dfff70;background:#273d48;box-shadow:4px 6px #0b1020;transform:rotate(-2deg)}#results .result-scores>div:nth-child(2)[data-winner=true]{transform:rotate(2deg)}.result-face{height:135px;overflow:hidden;border-radius:5px;margin:-5px -10px 12px;background:#202a48}.result-face canvas{width:100%;height:100%}.result-rank{display:block;font-size:11px;letter-spacing:.09em;color:#a6b5d2;margin-bottom:6px}[data-winner=true] .result-rank{color:#dfff70}#results .result-scores>div>small{color:#e9eade;font-weight:650;font-size:14px}#results .result-scores b{font-size:43px;font-style:italic;font-weight:900;color:#fff8e8;margin:2px 0 9px;letter-spacing:-.05em}#results .result-scores dl div{font-size:12px;border-color:#ffffff15;padding:6px 0}#results .result-scores dt{color:#a5b7d1}#results .result-scores dd{color:#fff8e8}
#pauseDialog{width:min(470px,calc(100% - 30px));padding:36px;transform:none}#pauseDialog h2{font-size:42px;font-style:italic;font-weight:950;color:#dfff70;line-height:1;margin:18px 0}#pauseDialog .eyebrow{color:#bac9ee}#pauseDialog p{font-size:12px;color:#b4c1dc}#pauseDialog .text{color:#a8bddf;margin-right:16px}#pauseDialog .actions{margin:23px 0 13px}
.app .modal{background:radial-gradient(#65729328 1px,transparent 1px) 0 0/10px 10px,#111b32ed;z-index:35}.app .modal>div{background:#1c2941;border:1px solid #566989;border-radius:16px;padding:26px;box-shadow:8px 9px #080f21}.app .modal h2{font-weight:950;font-style:italic;color:#fff8e8}.app .modal p{color:#b0c0dc}.app .result-score{color:#dfff70;font-weight:950;font-style:italic}.solo-result-face{width:160px;height:140px;margin:0 auto;overflow:hidden;border-radius:12px;background:#202a48}.solo-result-face canvas{width:100%;height:100%}.app .result-stats b{color:#fff8e8}.app .result-stats span{color:#a9bade}
/* Play surface: keep the timing and link colours familiar. */
header .brand{color:#f9f4e6}header .brand b,header .brand>span{color:#dfff70}header{border-color:#344157}.arena{border-color:#4c5975!important}.hud small,.player-name small{color:#a4b4d3}.player{--accent:#dfff70}.player:nth-child(2){--accent:#ffbe97}.coach,.app .coach{background:#202d43;border-color:#425470}.pad,.keyboard .pad{background:#1d2940;border-color:#3d4d65;color:#e5ebde}.pad[aria-pressed=true],.keyboard .pad[aria-pressed=true]{background:#3d543c}.deck-head>span,.deck-heading{color:#a8b8d0}.player-name{color:var(--accent)}.arena-top,.flow-line{color:#e9ecdc}.app .edition{color:#a1b1d2}footer{color:#8397b5;border-color:#2c3951}
@media(min-width:1450px) and (min-height:850px){.lobby-shell{min-height:730px;max-width:1240px}.lobby-config,.app .home-copy.lobby-config{padding:38px}.lobby-preview{height:185px}.solo-casting .lobby-preview{height:230px}.venue-choice .venue-art{height:83px}.lobby-poster{padding:36px}.club-lobby .poster-title h1,#setup .poster-title h1{font-size:80px}.poster-location .venue-art{height:150px}.club-lobby .setup-players{margin-bottom:27px}.venue-choices{margin-bottom:25px}}
@media(max-width:850px){.club-lobby,#setup.club-lobby{padding:12px}.lobby-shell{grid-template-columns:.75fr 1.4fr}.lobby-poster{padding:23px 19px}.lobby-config,.app .home-copy.lobby-config{padding:23px 19px}.poster-star{right:-30px;font-size:85px}.club-lobby .poster-title h1,#setup .poster-title h1{font-size:43px}.lobby-song{padding:10px 8px;gap:8px}.lobby-song small{display:none}.record-disc{width:27px;height:27px}.lobby-song b{font-size:10px}.lobby-song em{font-size:11px}.lobby-song>strong{display:none}.lobby-preview{height:132px}.club-lobby button.character-choice{font-size:10px;padding:7px 5px}.lobby-settings{gap:9px}.player-slot b{display:none}.venue-choice>span{font-size:10px;padding:7px}.solo-casting{gap:10px}.mode-tabs{gap:3px}.mode-tabs a{font-size:11px;padding:7px 9px}.club-mark{font-size:17px}}
@media(max-width:620px){.club-lobby,#setup.club-lobby{padding:0}.lobby-shell{grid-template-columns:1fr;border:0;border-radius:0;min-height:100dvh}.lobby-poster{padding:19px 21px 17px;display:grid;grid-template-columns:1fr 1fr;gap:15px}.club-mark{font-size:18px}.mode-tabs{margin:0;justify-content:flex-end}.poster-title{grid-column:1;grid-row:2}.club-lobby .poster-title h1,#setup .poster-title h1{font-size:35px;margin:0}.poster-title .eyebrow,.poster-title p,.poster-star{display:none!important}.poster-location{margin:0;align-self:center;grid-column:2;grid-row:2;transform:rotate(3deg)}.poster-location .venue-art{height:83px}.poster-location b{font-size:15px}.poster-location>span{font-size:10px;bottom:7px;left:8px}.lobby-song{grid-column:1/-1;padding:9px 12px}.lobby-song small{display:block;font-size:10px}.lobby-song b{font-size:12px}.lobby-song>strong{display:block}.lobby-config,.app .home-copy.lobby-config{padding:23px 19px}.club-lobby .setup-players{margin-bottom:20px;gap:10px}.club-lobby .character-choices{flex-direction:row}.lobby-preview{height:150px}.lobby-settings{grid-template-columns:1fr}.song-choice{margin:0}.lobby-bottom{margin-top:18px}.club-lobby .actions,#setup .actions,.club-lobby .home-actions{grid-template-columns:1fr 1fr}.club-lobby .actions>button,#setup .actions>button,.app .home .home-actions>button{font-size:12px;padding:12px 10px}.club-lobby .actions button>span,.club-lobby .home-actions button>span{display:none}.venue-choice .venue-art{height:65px}.solo-casting .lobby-preview{height:163px}#results{padding:25px 18px;overflow:auto;max-height:95dvh}#results h2{font-size:29px}#results .result-scores{gap:10px}#results .result-scores>div{padding:11px}#results .result-scores b{font-size:31px}#results .result-scores dl div{font-size:11px}.result-face{height:110px;margin:0 0 10px}.result-rank{font-size:10px}#results:before{display:none}.app .modal>div{padding:21px}}
@media(prefers-reduced-motion:reduce){.club-lobby *{animation:none!important;transition:none!important}}

.app .modal .home-actions:has(>button[hidden]){grid-template-columns:1fr}

/* Artwork cards retain their composition, including on compact game panes. */
.poster-location:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#101a37bb);pointer-events:none}.poster-location>span{z-index:1}.venue-choice>span{align-items:center;min-height:34px;gap:3px}.venue-choice>span b{font-size:12px;line-height:1.2}.venue-choice>span i{flex-shrink:0}.poster-location .venue-art{object-position:50% 40%}
@media(max-width:1000px){.venue-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.venue-choice .venue-art{height:76px}}
@media(prefers-reduced-motion:reduce){.venue-choice .venue-art{transition:none}}

/* Give the live scene enough height to retain the skyline and arena lighting. */
@media(min-width:1001px){.app .arena{min-height:360px;height:clamp(360px,calc(100dvh - 380px),620px)}}
.arena-top,.arena-info{color:#f5f2e9;text-shadow:0 1px 5px #000,0 1px 10px #000}.arena-top>span:first-child,.arena-info>.phase{background:#14203670;padding:4px 7px;border-radius:5px}

/* The lobby offers music and free movement; no prescribed daily sequence. */
.lobby-settings{grid-template-columns:1fr}.lobby-settings .song-choice{margin-top:0;min-height:60px}.lobby-settings .song-choice small{margin-left:auto}

.lobby-portrait{display:block;width:100%;height:100%;object-fit:cover}.preview-ready>.lobby-portrait{display:none}.venue-art[data-image-state=error]{opacity:.25}
