@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;600;700;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#f4eee2;background:#111e2b;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 40%,#263b49, #111e2b 75%);min-height:100vh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:1px solid #ffffff30;border-radius:30px;background:#ffffff09;color:inherit;padding:12px 22px;font-weight:600;touch-action:manipulation}button:hover{background:#ffffff18}button:focus-visible,a:focus-visible{outline:3px solid #f2d797;outline-offset:5px}main{max-width:1150px;margin:auto;padding:28px 38px 18px}header{display:flex;align-items:center;justify-content:space-between}header a{color:#f7ecca;text-decoration:none;font-size:27px;font-weight:800;letter-spacing:-1px}header a span{font-size:10px;letter-spacing:2px;display:block}.intro{text-align:center;margin:35px 0 28px}.eyebrow{font-size:10px;letter-spacing:3px;color:#c2bc9f}h1{font-family:Manrope,sans-serif;font-size:clamp(30px,4vw,49px);letter-spacing:-2px;margin:9px 0}p{color:#b6c3c8}.intro p{margin:8px}.theatre{position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 100%,#45615e66,transparent 65%),#192e3d;border:1px solid #78958c44;border-radius:26px;min-height:540px;padding:26px 35px 24px;box-shadow:0 25px 80px #0003}.sky{position:absolute;inset:0;pointer-events:none}.sky i{position:absolute;width:85px;height:85px;border-radius:50%;background:#f7e8b6;box-shadow:0 0 60px #efdca52a;right:8%;top:75px}.sky i:after{content:'';position:absolute;width:74px;height:74px;border-radius:50%;background:#192e3d;left:-14px;top:-8px}.sky b{position:absolute;color:#c6d7c2;left:15%;top:110px}.sky b:nth-child(3){left:80%;top:220px;font-size:12px}.sky b:nth-child(4){left:26%;top:220px;font-size:10px}.progress{display:flex;justify-content:center;gap:28px;position:relative;font-size:11px;color:#8ca5a9}.progress span{padding-bottom:9px;border-bottom:2px solid #68848233}.progress .done{color:#f0d69e;border-color:#f0d69e}.direction{position:relative;text-align:center;margin:25px 0 18px}#mode{font-size:10px;letter-spacing:2px;color:#e7cf9c}h2{font-family:Manrope,sans-serif;font-size:23px;margin:10px 0}#hint{font-size:13px;margin:8px 0;min-height:20px}#beats{display:flex;justify-content:center;gap:13px;height:42px;position:relative}.beat{border:1px solid #78918d70;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;color:#8da7ac;font-size:12px}.beat.current{background:#f3d79f;color:#263c41;box-shadow:0 0 0 7px #f3d79f18}.beat.hit{background:#a9d4ba;color:#1d433a}.band{display:flex;justify-content:center;gap:36px;position:relative;margin:16px auto 0;max-width:730px}.player{position:relative;width:190px;min-height:200px;border:0;border-radius:26px;background:transparent;padding:5px 10px 14px}.player:hover{background:#d7e6cf09}.player svg{display:block;width:136px;height:136px;margin:auto;filter:drop-shadow(0 15px 12px #0003);transition:transform .16s}.player .instrument{display:block;color:#b6c9c4;font-size:12px;margin-top:6px}.player strong{font-size:18px}.player kbd{display:inline-block;font:10px inherit;padding:2px 5px;border:1px solid #ffffff30;border-radius:4px;margin-left:6px;color:#b1c1bd}.player.lit{background:#f7d99c17;box-shadow:inset 0 0 0 2px #e5d49d66}.player.lit svg{transform:translateY(-12px) rotate(-6deg)}.player:nth-child(2).lit svg{transform:translateY(-6px) scale(1.12,.86)}.player:nth-child(3).lit svg{transform:translateY(-15px) rotate(6deg)}.floor{height:1px;background:linear-gradient(90deg,transparent,#c4d3ad55,transparent);margin:0 auto;width:80%}.controls{position:relative;display:flex;justify-content:center;gap:10px;margin-top:20px;min-height:48px}.primary{background:#f0d59c;color:#263b3f;border:0;padding:14px 28px}.primary:hover{background:#ffe8b6}.primary span{margin-left:26px}footer{display:flex;justify-content:space-between;color:#a2b5b9;font-size:12px;margin:20px 2px}.note{text-align:center;color:#718e99;font-size:11px;margin:22px 0 0}[hidden]{display:none!important}@media(max-width:600px){main{padding:20px 15px}.intro{margin:28px 0 22px}.eyebrow{font-size:8px;letter-spacing:2px}.theatre{padding:20px 10px;min-height:510px}.progress{gap:14px;font-size:9px}.direction{margin-top:27px}h2{font-size:18px}#hint{font-size:12px;padding:0 10px}.band{gap:0;margin-top:26px}.player{width:33.33%;padding:6px 3px 15px;min-height:175px}.player svg{width:100%;max-width:112px;height:112px}.player strong{font-size:15px}.player .instrument{font-size:10px}.sky i{width:60px;height:60px;right:4%;top:91px;opacity:.5}.sky i:after{width:55px;height:55px}footer{font-size:10px;gap:15px}h1{letter-spacing:-1px}.controls{flex-wrap:wrap}button{padding:12px 18px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}.player.lit svg{transform:none!important}}
@media(min-width:601px) and (max-height:800px){main{padding-top:18px}.intro{margin:18px 0}.theatre{min-height:465px;padding-top:19px;padding-bottom:18px}.direction{margin:18px 0 10px}.band{margin-top:4px}.player{min-height:170px}.player svg{width:110px;height:110px}.controls{margin-top:14px}footer{margin:13px 2px}.note{margin-top:12px}}
/* Picture score and patient, word-free turn cues. */
.icon{width:25px;height:25px;display:inline-block;vertical-align:middle;flex-shrink:0}
header button,.controls button{display:inline-flex;align-items:center;justify-content:center;gap:10px}
.controls button .icon{width:29px;height:29px}.controls .primary{min-width:200px;min-height:58px}.primary span{margin-left:0}
.progress{gap:17px}.progress span{border:0;padding:0;color:#6f858b}.progress .icon{width:23px;height:23px}.progress .done{color:#f4d497}
.direction{margin:13px 0 6px}h2{margin:6px 0;font-size:21px}#hint{min-height:18px;margin:6px 0}#mode{font-size:9px}
#visual-guide{height:45px;display:flex;justify-content:center;align-items:center;gap:12px;color:#efd49c;position:relative}
#visual-guide>.icon{width:32px;height:32px}.count-dots{display:flex;gap:8px}.count-dots i{height:14px;width:14px;border-radius:50%;border:2px solid #a5bab1}.count-dots .filled{background:#efd49c;border-color:#efd49c}
#beats{height:52px;gap:10px;align-items:center;margin:2px 0 16px}.beat.picture{width:46px;height:46px;position:relative;border-radius:13px;background:#ffffff07;border:1px solid #9bb4ae44;flex-shrink:0}.beat.picture>svg{width:38px;height:38px}.beat.picture.current{background:#f3d79f22;box-shadow:0 0 0 4px #f3d79f44;border-color:#f3d79f}.beat.picture.hit{background:#abd7b333;border-color:#abd7b3}.note-check{display:none;position:absolute;bottom:-5px;right:-4px;width:18px;height:18px;background:#b3dfb5;border-radius:50%;color:#264a40}.note-check .icon{width:17px;height:17px}.beat.hit .note-check{display:block}
.band{gap:24px;margin-top:10px}.player{isolation:isolate;min-height:180px;padding-top:14px;border-radius:24px}.portrait{display:block}.player .portrait svg{width:120px;height:120px;margin:auto;display:block}.player .tap-cue{position:absolute;right:7px;top:0px;display:none;z-index:2;background:#f6dca1;color:#293f43;border-radius:50%;width:48px;height:48px;box-shadow:0 3px 12px #0003;place-items:center}.player .tap-cue svg{width:31px;height:31px;filter:none;transform:none!important;margin:0}.player.ready .tap-cue{display:grid}.player:before{content:'';position:absolute;inset:0;border-radius:24px;border:3px solid transparent;z-index:-1;pointer-events:none}.player.upcoming:before{background:conic-gradient(from 0deg,#f2d29b var(--sweep,0deg),#80979325 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;padding:3px;border:0}.player.ready:before{border-color:#f3d69b;background:#e5d29f12;box-shadow:0 0 25px #f3d69b17}.player.ready{background:#e5d29f0a}.player.help:before{border-width:5px}.band:has(.ready) .player:not(.ready){opacity:.6}.player:focus-visible{outline-offset:5px}.player.lit .portrait svg{transform:translateY(-9px) rotate(-6deg)}.player:nth-child(2).lit .portrait svg{transform:translateY(-4px) scale(1.1,.88)}.player:nth-child(3).lit .portrait svg{transform:translateY(-12px) rotate(5deg)}
.songs{position:relative;display:flex;justify-content:center;gap:10px;margin:16px auto 0}.songs button{padding:9px 13px;display:flex;align-items:center;gap:6px;font-size:10px;border-radius:16px;min-height:46px;color:#b8cac4}.songs button[aria-pressed=true]{border-color:#efd49c;background:#efd49c15;color:#efd49c}.songs .icon{width:24px;height:24px}.controls{margin-top:16px}.theatre{padding-bottom:22px}.sky i{opacity:.5}.sky b{opacity:.6}
@media(min-width:601px) and (max-height:800px){.intro{margin:12px 0}.intro h1{font-size:38px}.intro p{font-size:13px}.theatre{min-height:0;padding-top:15px;padding-bottom:17px}.direction{margin:9px 0 2px}#visual-guide{height:36px}.band{margin-top:5px}.player{min-height:156px}.player .portrait svg{height:94px;width:94px}.player .tap-cue{width:43px;height:43px}#beats{margin-bottom:10px}.songs{margin-top:10px}.songs button{min-height:42px;padding:6px 12px}.controls{margin-top:10px}footer{margin-top:12px}.note{margin-top:9px}}
@media(max-width:600px){.intro{margin:22px 0 18px}.intro p{font-size:12px}h1{font-size:29px}.theatre{min-height:0;padding:18px 10px 21px}.direction{margin:13px 0 2px}h2{font-size:17px;max-width:270px;margin:7px auto}#hint{font-size:11px;min-height:30px;max-width:290px;margin:5px auto}#visual-guide{height:42px}#beats{gap:7px;margin:4px 0 18px}.beat.picture{width:43px;height:43px}.beat.picture>svg{width:35px;height:35px}.band{gap:7px;margin-top:10px}.player{width:calc((100% - 14px)/3);min-height:160px;padding:17px 1px 10px;border-radius:19px}.player:before{border-radius:19px}.player .portrait svg{width:100%;height:96px}.player .tap-cue{width:39px;height:39px;right:0;top:-7px}.player .tap-cue svg{width:27px;height:27px}.player strong{font-size:14px}.player .instrument{font-size:9px}.player kbd{font-size:9px;margin-left:3px}.songs{gap:8px;margin-top:15px}.songs button{padding:9px 13px;min-width:65px;justify-content:center}.songs button span{display:none}.songs .icon{width:28px;height:28px}.controls{margin-top:16px;gap:9px}.controls .primary{min-height:56px}.controls button{min-height:50px;font-size:13px}footer{font-size:9px;margin:14px 0}.note{margin-top:14px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.player.lit .portrait svg{transform:none!important}}
/* Optional memory mode: one neutral clock, never a target-revealing hand. */
.modes{display:flex;gap:8px;justify-content:center;position:relative;margin:13px auto 0}.modes button{display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 14px;min-height:45px;font-size:11px;border-radius:14px;color:#bdccc6}.modes button[aria-pressed=true]{border-color:#f1d59e;background:#f1d59e14;color:#f1d59e}.modes .icon{width:24px;height:24px}#mode-description{font-size:10px;text-align:center;color:#a9bfb9;position:relative;margin:7px 0 0}.modes[hidden]+#mode-description{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#visual-guide{transition:background .12s;max-width:110px;margin:auto;border-radius:25px}#visual-guide.pulse-now{background:#f4d79d;color:#263c40;box-shadow:0 0 0 6px #f4d79d25}.band.choose-now .player:before{border-color:#f4d79d88;background:#f4d79d08}.band.choose-now .player{opacity:1}.beat.picture>svg.icon{width:27px;height:27px;color:#aebfc5}#help{display:inline-flex;align-items:center;gap:7px;color:#f2d69f;border-color:#f2d69f66}.concerting .theatre{background:radial-gradient(ellipse at 50% 90%,#778e634f,transparent 65%),#192e3d}.concerting .sky b{color:#f7dfaa;opacity:1;transform:scale(1.6)}.concerting .sky i{opacity:.9;box-shadow:0 0 90px #e8db9d35}.concerting .progress .done{filter:drop-shadow(0 0 7px #f2d69f66)}body[data-song="1"].concerting .theatre{background:#1b3545}body[data-song="2"].concerting .theatre{background:#292f49}
@media(min-width:601px) and (max-height:800px){.modes{margin-top:9px}.modes button{min-height:40px;padding:7px 12px}#mode-description{margin-top:5px}.theatre:has(.modes:not([hidden])) .player{min-height:140px}.theatre:has(.modes:not([hidden])) .player .portrait svg{height:82px;width:82px}}
@media(max-width:600px){.modes{gap:7px;margin-top:13px}.modes button{font-size:10px;padding:9px 10px;min-height:45px}.modes .icon{width:22px;height:22px}#mode-description{font-size:9px;max-width:285px;margin:6px auto 0}.controls #help{min-height:47px}}
@media(prefers-reduced-motion:reduce){#visual-guide{transition:none}.concerting .sky b{transform:none}}
.sky .guest-lumi{position:absolute;left:5%;top:42%;width:74px;opacity:0;transition:opacity .7s;filter:drop-shadow(0 0 15px #efd49c55)}.guest-lumi svg{display:block;width:100%;height:auto}.sky i.firefly{position:absolute;width:5px;height:5px;background:#f9e8a0;border-radius:50%;box-shadow:0 0 13px 3px #f9e8a066;left:calc(8% + var(--n)*12%);top:calc(23% + var(--n)*6%);opacity:0}.sky i.firefly:after{display:none}.concerting[data-scene="surprise"] .guest-lumi,.concerting[data-scene="finale"] .guest-lumi{opacity:1;animation:lumi-visit 3.2s ease-in-out infinite}.concerting[data-scene="surprise"] .firefly,.concerting[data-scene="finale"] .firefly{opacity:.8;animation:firefly-glow 2s ease-in-out infinite;animation-delay:calc(var(--n)*-.28s)}@keyframes lumi-visit{50%{transform:translate(9px,-10px) rotate(4deg)}}@keyframes firefly-glow{50%{opacity:.25;transform:translateY(-9px)}}@media(max-width:600px){.sky .guest-lumi{width:49px;left:4%;top:34%}.sky i.firefly{width:4px;height:4px;left:calc(5% + var(--n)*14%);top:calc(24% + var(--n)*5%)}}@media(prefers-reduced-motion:reduce){.sky .guest-lumi{transition:none}.concerting .guest-lumi,.concerting .firefly{animation:none!important}}
/* Keep the main play action beside the actors; optional choices follow it. */
@media(min-width:900px){.theatre{text-align:center}.songs,.modes{display:inline-flex;vertical-align:middle;margin:12px 5px 0}.modes{margin-left:14px}#mode-description{margin-top:7px}.controls{margin-top:10px}}
@media(min-width:900px) and (max-height:800px){.intro{margin:8px 0}.intro h1{font-size:35px;margin:5px 0}.intro p{margin:4px}.songs,.modes{margin-top:9px}.songs button,.modes button{min-height:38px}.theatre{padding-bottom:14px}}
/* Arcade studio: tactile circles, a square stop, and a picture-only score. */
.beta-badge{font-size:9px;font-weight:700;letter-spacing:1.6px;border:1px solid #efd49c66;color:#efd49c;padding:5px 9px;border-radius:20px;margin-left:auto;margin-right:15px}.studio{position:relative;max-width:420px;margin:12px auto 0;padding:15px 18px 10px;background:#ffffff06;border:1px solid #91aaa744;border-radius:22px}.studio-actions{display:flex;align-items:center;justify-content:center;gap:25px}.studio-actions button{display:grid;place-items:center;width:68px;height:68px;padding:0;border-radius:50%;border:2px solid #c4d2b866;background:#e5d29f12}.studio-actions button .icon{width:31px;height:31px}.studio-actions #record{color:#e79e8d;border-color:#e79e8d88}.studio-actions #take-play{color:#f4d79f;border-color:#f4d79f88}.studio-actions button:disabled{opacity:.3;cursor:default}.studio.is-recording #record{background:#e79e8d24;border-color:#e79e8d;box-shadow:0 0 0 5px #e79e8d10}.take-meter{display:flex;gap:5px;justify-content:center;margin:12px auto 8px}.take-meter i{width:9px;height:5px;border-radius:5px;background:#8ea59a44}.take-meter .filled{background:#e6b39c}.take-playing .take-meter .filled{background:#efd49c}.take-notes{height:36px;display:flex;align-items:center;justify-content:center;gap:4px}.take-note{display:grid;place-items:center;width:31px;height:31px;border:1px solid #b9cec133;border-radius:9px;background:#ffffff05;flex-shrink:0}.take-note>svg{width:28px;height:28px}.take-note.playing{border-color:#efd49c;background:#efd49c20;box-shadow:0 0 0 3px #efd49c22}.take-empty{color:#b3c5ba;display:flex;gap:12px}.take-empty .icon{width:23px;height:23px}#take-status{font-size:10px;text-align:center;color:#b8c8c0;margin:9px 0 0;min-height:15px}.studio-free #beats,.studio-free #visual-guide{display:none}.studio-free .direction{margin-bottom:10px}.studio-free .band{margin-top:15px}.studio-free .player .tap-cue{display:grid;opacity:.7}.take-playing .player .tap-cue{display:none}.studio-free .controls{margin-top:14px}.songs button:disabled,.modes button:disabled{opacity:.35;cursor:default}#return-band{border-color:#b7c6a66b;color:#e7d49d}.studio-free .theatre{padding-bottom:18px}@media(max-width:600px){.studio{max-width:315px;margin-top:12px;padding:12px 10px 9px}.studio-actions{gap:30px}.studio-actions button{width:66px;height:66px}.studio-free .direction h2{font-size:18px}.studio-free .direction #hint{min-height:26px}.studio-free .band{margin-top:16px}.studio-free .player{min-height:145px}.studio-free .player .portrait svg{height:86px}#take-status{font-size:9px;min-height:22px;margin-top:7px}.take-note{width:29px;height:29px}.take-note>svg{width:26px;height:26px}.studio-free .controls{gap:7px}.studio-free .controls button{min-height:45px;font-size:11px;padding:10px 14px}.beta-badge{font-size:8px;margin-right:8px;padding:5px 7px}.studio-free .songs,.studio-free .modes{margin-top:12px}}@media(min-width:900px) and (max-height:800px){.studio-free .intro{display:none}.studio-free .theatre{margin-top:15px}.studio-free .player{min-height:137px}.studio-free .player .portrait svg{height:82px;width:82px}.studio{padding-top:12px}.studio-actions button{width:60px;height:60px}}
.studio-free .intro{display:none}.studio-free .theatre{margin-top:18px}.take-empty{align-items:center;gap:16px}.take-empty>.icon:first-child{color:#e79e8d}.take-empty>.icon:last-child{color:#efd49c}@media(max-width:600px){.studio-free .theatre{margin-top:18px}.studio-free main{padding-top:16px}}
/* One-screen instrument. The stage, not the document, uses the available height. */
html,body{height:100%;overflow:hidden;overscroll-behavior:none}
main{width:min(1150px,100%);height:100vh;height:100dvh;max-height:100dvh;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:48px 50px minmax(0,1fr);gap:10px;padding:14px 28px max(14px,env(safe-area-inset-bottom))}
main>header{grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) auto 44px 44px;gap:10px;min-width:0;height:48px}
main>.intro{grid-row:2;margin:0;min-width:0;display:grid;place-content:center}.intro .eyebrow,.intro p{display:none}.intro h1{font-size:30px;line-height:1.15;margin:0;letter-spacing:-1px}
main>.theatre{grid-row:3;min-width:0;min-height:0;height:100%;margin:0;padding:14px 22px;display:flex;flex-direction:column;gap:7px}
main>footer,main>.note{display:none}
header a{font-size:24px;width:max-content;max-width:100%;line-height:1.05}header a span{font-size:8px;line-height:1.4;margin-top:3px}
header .beta-badge{margin:0;align-self:center;font-size:8px;padding:5px 8px;letter-spacing:1px}
header #settings,header #sound{display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border-radius:50%}
header #sound>span{display:none}header .icon{width:23px;height:23px}
button:disabled{cursor:default}header #settings:disabled{opacity:.35}
.theatre>.progress{flex:0 0 22px;align-items:center}.progress span{padding:0}.progress .icon{width:21px;height:21px}
.theatre>.direction{flex:0 0 auto;margin:0;text-align:center}#mode{font-size:9px;letter-spacing:1.5px;line-height:1.2}.direction h2{font-size:clamp(17px,2.1vw,24px);line-height:1.2;margin:4px auto 0;max-width:90%;text-wrap:balance}#hint{font-size:12px;line-height:1.4;min-height:0;margin:4px auto 0;max-width:80%;padding:0}
.theatre>#visual-guide{flex:0 0 34px;height:34px;width:110px;min-height:0;margin:0 auto}#visual-guide>.icon{width:28px;height:28px}
.theatre>#beats{flex:0 0 44px;height:44px;min-width:0;gap:8px;margin:0;align-items:center}.beat.picture{width:40px;height:40px;border-radius:11px}.beat.picture>svg{width:33px;height:33px}
.theatre>.band{flex:1 1 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;width:min(100%,690px);min-width:0;min-height:0;max-height:none;gap:18px;margin:4px auto 0}
.band>.player{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;min-width:0;min-height:0;height:100%;max-height:220px;align-self:center;margin:0;padding:8px 5px 9px;border-radius:22px}.player:before{border-radius:22px}.player .portrait{display:flex;align-items:center;justify-content:center;flex:1 1 0;width:100%;min-height:0;max-height:150px}.player .portrait svg{width:100%;height:100%;max-height:150px;max-width:150px;min-height:0;object-fit:contain}.player strong{flex:0 0 auto;font-size:17px;line-height:1.3}.player kbd{display:none}.player .instrument{font-size:11px;line-height:1.3;margin-top:3px}.player .tap-cue{width:38px;height:38px;right:0;top:0}.player .tap-cue svg{width:26px;height:26px}
.theatre>.floor{flex:0 0 1px;margin:0 auto}
.theatre>.controls{flex:0 0 auto;display:flex;flex-wrap:nowrap;align-items:stretch;justify-content:center;width:min(100%,510px);min-width:0;min-height:48px;height:48px;gap:10px;margin:0 auto}.controls>button{min-width:0;min-height:48px;height:48px;margin:0;padding:10px 15px;line-height:1.2;font-size:13px;gap:8px;flex:1 1 0}.controls>.primary{min-width:0;max-width:300px;min-height:48px}.controls .icon{width:23px;height:23px}
.studio-free main{grid-template-rows:48px 0 minmax(0,1fr);padding-top:14px;gap:6px}.studio-free .theatre{margin:0;padding-bottom:14px}.studio-free .progress{display:none}.studio-free .direction{margin:0}.studio-free .direction h2{font-size:21px}.studio-free .band{margin-top:5px}.studio-free .player{min-height:0}.studio-free .player .portrait svg{height:100%;width:100%}
.theatre>.studio{flex:0 0 auto;width:min(100%,420px);margin:0 auto;padding:10px 14px 8px;border-radius:19px}.studio-actions{gap:26px}.studio-actions button{width:58px;height:58px;min-width:58px;min-height:58px}.studio-actions button .icon{width:28px;height:28px}.take-meter{margin:9px 0 6px}.take-notes{height:31px}.take-note{width:28px;height:28px}.take-note>svg{width:25px;height:25px}#take-status{font-size:10px;line-height:1.3;min-height:13px;margin:6px 0 0}.studio-free .controls{margin:0 auto;gap:10px}.studio-free .controls>button{min-height:48px;font-size:12px;padding:10px}
.settings-dialog{position:fixed;inset:0;margin:auto;width:min(440px,calc(100% - 28px));max-width:440px;max-height:calc(100dvh - 28px);padding:20px;border:1px solid #8fa59088;border-radius:24px;background:#192e3d;color:#f4eee2;box-shadow:0 24px 100px #0008;overflow:hidden}
.settings-dialog::backdrop{background:#07111bd9}.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.settings-heading h2{font-size:21px;line-height:1.2;margin:0}.settings-heading form{margin:0}.close-settings{width:44px;height:44px;padding:0;font-size:28px;line-height:1}
.settings-dialog .songs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}.settings-dialog .songs button{display:flex;flex-direction:column;justify-content:center;gap:8px;min-height:76px;min-width:0;padding:10px 3px;font-size:11px}.settings-dialog .songs button span{display:block}.settings-dialog .songs .icon{width:29px;height:29px}
.settings-dialog .modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0 0}.settings-dialog .modes button{min-width:0;min-height:58px;padding:10px;font-size:12px;line-height:1.3}.settings-dialog #mode-description{font-size:12px;line-height:1.5;max-width:none;margin:12px 0 0;min-height:36px}
@media(max-width:600px){
 main{grid-template-rows:44px 26px minmax(0,1fr);gap:7px;padding:10px 10px max(10px,env(safe-area-inset-bottom))}
 main>header{height:44px;gap:7px}header a{font-size:23px}header a span{font-size:7px}.intro h1{font-size:21px;line-height:26px;letter-spacing:-.6px}
 main>.theatre{padding:10px 10px 12px;gap:6px;border-radius:22px;box-shadow:none}
 #hint{display:none}.direction h2{font-size:18px;max-width:100%;margin-top:4px}#mode{font-size:8px;letter-spacing:1.3px}
 .theatre>.progress{flex-basis:18px}.progress .icon{width:18px;height:18px}
 .theatre>#visual-guide{flex-basis:30px;height:30px}#visual-guide>.icon{width:25px;height:25px}
 .theatre>#beats{flex-basis:39px;height:39px;gap:6px}.beat.picture{width:35px;height:35px}.beat.picture>svg{width:29px;height:29px}.beat.picture>svg.icon{width:23px;height:23px}
 .theatre>.band{gap:7px;margin-top:3px}.band>.player{padding:9px 3px 9px;border-radius:17px;max-height:210px}.player:before{border-radius:17px}.player .portrait{max-height:130px}.player .portrait svg{max-height:130px;max-width:130px}.player strong{font-size:15px}.player .instrument{display:none}.player .tap-cue{width:32px;height:32px;top:0;right:0}.player .tap-cue svg{width:22px;height:22px}
 .theatre>.controls{height:48px;min-height:48px;gap:7px}.controls>button,.controls>.primary{min-height:48px;height:48px;font-size:12px;padding:8px;gap:5px}.controls .icon{width:22px;height:22px}
 .studio-free main{grid-template-rows:44px 0 minmax(0,1fr);padding:10px 10px max(10px,env(safe-area-inset-bottom));gap:4px}.studio-free .theatre{margin:0;padding-bottom:12px}.studio-free .direction h2{font-size:19px}.studio-free .band{margin-top:3px}.studio-free .player{min-height:0}.studio-free .player .portrait svg{height:100%;max-height:145px;width:100%}
 .theatre>.studio{padding:9px 8px 7px;border-radius:18px;max-width:315px}.studio-actions{gap:26px}.studio-actions button{width:56px;height:56px;min-width:56px;min-height:56px}.take-meter{margin:8px 0 5px;gap:4px}.take-meter i{width:8px;height:5px}#take-status{font-size:10px;min-height:26px;line-height:1.3;margin-top:5px}.take-notes{height:29px}.take-note{width:25px;height:25px}.take-note>svg{width:23px;height:23px}.studio-free .controls{height:48px;min-height:48px}.studio-free .controls>button{font-size:11px;min-height:48px;padding:7px}
 .sky>i:not(.firefly){width:45px;height:45px;right:4%;top:40px;opacity:.2}.sky>i:not(.firefly):after{width:42px;height:42px}.sky b{opacity:.25}.sky .guest-lumi{top:22%;width:42px}
 .settings-dialog{padding:16px;border-radius:22px}.settings-heading{margin-bottom:12px}.settings-heading h2{font-size:19px}.settings-dialog .songs button{min-height:70px;font-size:10px}.settings-dialog .modes button{min-height:56px;font-size:11px}.settings-dialog #mode-description{font-size:11px;min-height:33px}
}
@media(max-height:500px) and (min-width:601px){
 main,.studio-free main{grid-template-rows:44px 0 minmax(0,1fr);padding:8px 14px;gap:3px}.intro{visibility:hidden}main>header{height:44px}
 main>.theatre{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:20px auto 30px 40px 48px;grid-template-areas:"band progress" "band direction" "band visual" "band beats" "band controls";gap:5px 16px;padding:10px 14px}
 .theatre>.band{grid-area:band;display:grid;height:100%;width:100%;min-height:0;max-height:100%;margin:0;gap:8px}.band>.player{max-height:230px}.player .portrait svg{max-height:135px}.player .instrument{display:none}.theatre>.progress{grid-area:progress}.theatre>.direction{grid-area:direction}.direction h2{font-size:17px}#hint{display:none}.theatre>#visual-guide{grid-area:visual;width:110px;margin:auto}.theatre>#beats{grid-area:beats}.theatre>.controls{grid-area:controls}.theatre>.floor{display:none}
 .studio-free .theatre{grid-template-areas:"band direction" "band studio" "band controls";grid-template-rows:auto minmax(0,1fr) 48px}.studio-free .theatre>.studio{grid-area:studio;width:100%;margin:auto;max-height:100%;padding:6px 8px}.studio-actions button{width:48px;height:48px;min-width:48px;min-height:48px}.studio-actions .icon{width:24px;height:24px}#take-status{font-size:9px;min-height:12px;margin-top:4px}.take-meter{margin:5px 0}.take-notes{height:27px}.take-note{width:24px;height:24px}.take-note>svg{width:22px;height:22px}.settings-dialog{padding:12px 16px;max-width:460px}.settings-heading{margin-bottom:7px}.settings-dialog .songs button{min-height:50px;flex-direction:row;font-size:10px}.settings-dialog .modes{margin-top:8px}.settings-dialog .modes button{min-height:44px}.settings-dialog #mode-description{min-height:18px;margin-top:6px;font-size:10px}
}
