/* The creative worlds use static illustrations; only the active character moves. */
#section-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px;padding:7px;background:#10233eea;border:1px solid #6684a2;border-radius:24px;align-items:center}#section-nav button{background:transparent;border-radius:18px;color:#e9f3ff;padding:10px 18px;font-size:14px;min-height:44px}#section-nav button[aria-current=page]{background:#94f3da;color:#123c45;box-shadow:0 3px 0 #367b78}body.playing #section-nav{display:none}.brand-lettering>b{font-size:34px;letter-spacing:-1.5px;color:#74ffe4;text-shadow:0 3px 0 #17586a,2px 0 0 #c2fff7,-2px 0 0 #c2fff7}.brand-lettering>b+b{color:#ffad9c;text-shadow:0 3px 0 #8d3f59,2px 0 0 #ffe7dd,-2px 0 0 #ffe7dd}.adventure-intro{padding:28px 30px;border-radius:28px;background:#10213eee;border:1px solid #6580a2;margin-bottom:26px}.adventure-intro h1{font-size:clamp(30px,4vw,48px);color:#fff3db;letter-spacing:-1.4px;line-height:1.1;margin:12px 0}.adventure-intro p{color:#dce9ff;margin:0;max-width:650px}.adventure-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.adventure-card{padding:0;overflow:hidden;border-radius:30px;text-align:left;background:#152c49;border:2px solid #6489ab;display:flex;flex-direction:column;box-shadow:0 7px 0 #08172e;min-width:0}.adventure-card.story{border-color:#bda0ed}.adventure-card.body{border-color:#9edaaa}.adventure-art{height:230px;display:flex;align-items:flex-end;padding:12px 24px;background-position:center;background-size:cover}.adventure-art img{height:180px;width:140px;object-fit:contain;filter:drop-shadow(0 4px 2px #11223c7a)}.adventure-card.story .adventure-art img{height:150px}.adventure-copy{padding:23px;display:flex;flex-direction:column;gap:12px;flex:1}.adventure-copy small{font-size:11px;letter-spacing:1px;color:#9af6de}.adventure-copy strong{font-size:25px;color:#fff6e4;line-height:1.1}.adventure-copy>span{color:#d9eaff;font-size:15px;font-weight:500;line-height:1.5}.adventure-copy>b{align-self:flex-start;background:#85ead6;color:#173949;padding:11px 20px;border-radius:30px;margin-top:auto;font-size:14px}.adventure-card.story .adventure-copy>b{background:#d4bfff}.adventure-card.body .adventure-copy>b{background:#ffcda5}.creative-log,.creation-library{margin-top:30px;background:#142a46ef;border:1px solid #587696;border-radius:24px;padding:24px}.creative-log h2,.creation-library h2{font-size:23px;color:#fff5de}.creative-log p,.creation-library p{color:#dce9ff;font-size:14px}.activity-log-row{display:flex;justify-content:space-between;gap:15px;padding:12px 8px;border-bottom:1px solid #ffffff25}.activity-log-row small{display:block;color:#b8d4ec;margin-top:5px}.activity-log-row strong{font-size:22px;color:#95ffe0}.creative-log>button{margin-top:18px}.creative-title{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-radius:23px;background:#11243eee;border:1px solid #6683aa;margin-bottom:15px}.creative-title h1{font-size:clamp(22px,3vw,36px);color:#fff4df;letter-spacing:-.8px;margin:7px 0 0}.creative-title .eyebrow{font-size:10px;color:#a3ffe7}.story-stage{height:clamp(240px,35vh,380px);position:relative;border-radius:28px 28px 0 0;background:url('/story-scene.webp') center 42%/cover;overflow:hidden;border:2px solid #8e82c8;border-bottom:0}.story-caption{position:absolute;left:20px;top:18px;max-width:45%;padding:15px 20px;border-radius:23px;background:#142644ed;border:1px solid #a9bad7;box-shadow:0 4px 0 #16233966}.story-caption small{font-size:10px;color:#a6ffe7;letter-spacing:.5px}.story-caption h2{margin:7px 0;font-size:clamp(20px,2.4vw,30px);color:#fff2d0}.story-caption p{font-size:15px;color:#f2f5ff;line-height:1.45;margin-bottom:10px}.story-caption>span{font-size:12px;font-weight:800;color:#dbcdff}.story-avatar{position:absolute;bottom:8px;left:9%;width:140px;height:170px;filter:drop-shadow(2px 0 #edffff) drop-shadow(-2px 0 #edffff) drop-shadow(0 6px 2px #12264b99)}.story-avatar img{height:100%;width:100%;object-fit:contain}.story-author{position:absolute;bottom:14px;right:17px;background:#162c48eb;border:1px solid #a9bad7;border-radius:20px;padding:7px 14px;font-size:12px;color:#fff5de}.ensemble-console{padding:15px 20px 19px;background:#10213ff5;border:2px solid #8e82c8;border-top:0;border-radius:0 0 28px 28px}.part-selector{display:flex;gap:10px;align-items:center;margin-bottom:13px}.part-selector button{min-height:55px;min-width:90px;background:linear-gradient(#526092,#323c6e);border:2px solid #b4bbe3;border-radius:24px;font-size:25px;box-shadow:0 4px 0 #08182e}.part-selector button[aria-pressed=true]{background:linear-gradient(#ffc1a6,#ff887c);color:#4b2742;border-color:#ffe7c7}.part-selector>span{margin-left:auto;padding:12px 16px;border-radius:18px;color:#fff6de;border:1px solid #84b1c7;font-size:16px}.part-selector b{color:#8affe2}.ensemble-play{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:18px}.ensemble-tracks{min-width:0;display:grid;gap:8px}.ensemble-track{display:flex;align-items:center;gap:5px;min-width:0;border:1px solid #7287ab;border-radius:18px;overflow:hidden;background:#203455}.ensemble-track.chosen{border:2px solid #8bf6df;background:#baf7e8;color:#183943;box-shadow:0 0 0 3px #59bc9f30}.ensemble-track>strong{align-self:stretch;min-width:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--part-color);background:#223254;font-size:22px}.ensemble-track>strong small{font-size:8px;margin-top:3px}.ensemble-track.chosen>strong{background:#6fdac6;color:#143643}.ensemble-track>div{width:100%;min-width:0}.ensemble-track svg{width:100%;height:62px;display:block}.s-note{fill:var(--part-color,#223c60);stroke:var(--part-color,#223c60)}.chosen .s-note{fill:#22455c;stroke:#22455c}.s-stem{fill:none;stroke-width:3.5;stroke-linecap:round}.s-eye{fill:#fff;stroke:none}.s-smile{fill:none;stroke:#fff;stroke-width:1.2;stroke-linecap:round}.s-beam{fill:none;stroke:var(--part-color,#223c60);stroke-width:6}.chosen .s-beam{stroke:#22455c}.s-rest{fill:var(--part-color,#223c60);opacity:.65}.chosen .s-rest{fill:#22455c}.s-beat{fill:#bdcde4;font-size:12px;font-family:system-ui;font-weight:800}.chosen .s-beat{fill:#355c6a}.s-note.hit{fill:#16865e;stroke:#16865e}.s-note.missed{fill:#b25746;stroke:#b25746}.activity-pad-area{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:17px;background:#162c4c;border:1px solid #7397c0;border-radius:24px;padding:16px;text-align:center}.activity-pad-area>span{color:#ffe19c;font-weight:850;line-height:1.4;font-size:18px}.activity-tap{border-radius:999px!important;min-height:110px;min-width:130px;color:#fff;letter-spacing:1px;font-size:34px;background:linear-gradient(155deg,#ffbfa3,#ff697e);border:3px solid #ffe5d4;box-shadow:0 6px 0 #9d4255,inset 0 0 0 5px #ffffff28;padding:16px 20px;touch-action:manipulation;user-select:none}.activity-tap small{display:block;letter-spacing:0;font-size:10px;font-weight:800;margin-top:5px}.activity-tap.pressed{transform:translateY(4px);box-shadow:0 2px 0 #9d4255;background:#b3ffdf;color:#173d41}.activity-tap.waiting{background:linear-gradient(#8188b0,#4f668b);box-shadow:0 5px 0 #213854;color:#ecf3ff}.activity-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:15px}.activity-controls button{border-radius:999px!important;border:2px solid #eaffff;min-height:48px;padding:10px 22px;font-size:14px}.activity-controls .primary{background:linear-gradient(#b8ffdb,#66dbb3)}.activity-controls .secondary{background:linear-gradient(#d8c9ff,#aaa0df);color:#312f55;box-shadow:0 4px 0 #444170}.activity-controls>span{margin-left:auto;font-size:12px;color:#d6e8ff}.creation-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:20px 0}.creation-tools p{width:100%;margin:0;color:#baffe4;font-size:14px}#code-form{margin-left:auto}#code-form label{font-size:12px;color:#e4f3ff;display:block;margin-bottom:5px}#code-form>div{display:flex;gap:8px}#code-form input{width:180px;text-transform:uppercase;letter-spacing:2px}.creative-playing input,.creative-playing select,#story-editor input,#story-editor select,#code-form input{background:#eefaff;color:#203747;border:2px solid #a1bed5;border-radius:16px;padding:10px 13px;font:inherit;min-height:44px;max-width:100%}.saved-creation{display:flex;gap:12px;align-items:center;padding:15px;border:1px solid #617f9c;border-radius:20px;background:#203653;margin:10px 0}.saved-creation>div{flex:1;min-width:0}.saved-creation strong{color:#fff0d7;overflow-wrap:anywhere}.saved-creation small{display:block;font-size:12px;color:#cee7fa;margin-top:6px}.share-code{display:block;font-size:12px;color:#a5ffe2;margin-top:9px;letter-spacing:1px}.saved-creation button{font-size:12px;padding:10px 15px}.empty-creations{font-size:14px;color:#daeaff}.body-stage{position:relative;display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.5fr);gap:25px;min-height:330px;background:linear-gradient(120deg,#e1f9eedb,#ffe2c8e0),url('/scene-5.webp') center/cover;border:2px solid #d2ffe6;border-bottom:0;border-radius:28px 28px 0 0;padding:22px 30px;color:#18374b}.body-avatar{align-self:center;height:300px;filter:drop-shadow(0 6px 0 #789db53b);display:grid;place-items:center}.body-avatar img{height:100%;width:100%;object-fit:contain;max-width:300px}.body-create{min-width:0}.character-selector{display:flex;gap:13px;margin-bottom:18px}.character-selector button{flex:1;max-width:145px;min-width:0;display:flex;flex-direction:column;align-items:center;background:#edf9fae6;border:2px solid #98bcc8;border-radius:24px;padding:10px;color:#1b3d52;box-shadow:0 4px 0 #97b4bb;font-size:15px}.character-selector button[aria-pressed=true]{background:#9eede2;border-color:#138983;box-shadow:0 4px 0 #228a85}.character-selector img{height:84px;width:80px;object-fit:contain}.trait-selectors{display:flex;gap:14px;margin-bottom:16px}.trait-selectors label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:850;flex:1}.trait-selectors select{width:100%;background:#fff4cd;color:#3d4354}.trait-selectors label+label select{background:#e7daff}.phrase-label{display:block;font-size:12px;font-weight:800;margin:10px 0 6px}.body-phrase{width:100%;background:#fff9e9!important;border-color:#f0b9a6!important;border-radius:23px!important;font-size:23px!important;font-weight:900!important;text-align:center;min-height:58px!important}.phrase-choices{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.phrase-choices button{font-size:10px;padding:7px 12px;min-height:32px;background:#fff7e5;color:#284658;border:1px solid #95b8c7}.body-hint{font-size:12px;line-height:1.45;margin:0;color:#264d64;font-weight:600}.body-console{background:#112a47f7;border:2px solid #d2ffe6;border-top:0;border-radius:0 0 28px 28px;padding:20px 24px}.body-rhythm{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.body-beat{position:relative;background:#fff7e6;color:#173b55;border:3px solid #edfff9;border-radius:24px;overflow:hidden;min-width:0}.body-beat.current{border-color:#59dab2;box-shadow:0 0 0 4px #84f6c65c}.body-beat.hit .body-rhythm-choice{background:#b0efd5}.body-beat.missed .body-rhythm-choice{background:#ffd2c5}.beat-number{position:absolute;top:8px;left:13px;font-size:19px;font-weight:900;pointer-events:none}.body-rhythm-choice{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px 6px 10px;min-height:120px;background:transparent;color:#173b55}.body-rhythm-choice .move-picture{font-size:43px;line-height:1.2;margin-bottom:7px}.body-rhythm-choice strong{font-size:22px;letter-spacing:.5px}.body-beat select{width:100%;border:0;border-radius:0;background:#b5efe5;color:#19414d;font-size:13px;font-weight:800;padding:10px 7px;min-height:44px}.body-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:20px}.body-bottom #activity-status{color:#fff5d3;font-size:17px;font-weight:850}.body-bottom .activity-tap{min-width:180px;min-height:98px}.tempo-control{font-size:12px;color:#daedff;display:flex;align-items:center;gap:7px}.tempo-control select{min-height:44px;font-size:13px;padding:7px 10px}.creative-playing .app-shell{max-width:1500px;padding:18px 26px 12px}.creative-playing .topbar{margin-bottom:12px}.creative-playing #section-nav{margin-bottom:15px}.creative-playing .creation-library{margin-top:4px}.creative-playing .top-button{min-height:40px}.creative-playing .brand{padding:7px 14px 7px 10px}.creative-playing .brand-lettering>b{font-size:28px}#story-editor{width:min(800px,95vw);max-width:95vw;max-height:92dvh;overflow:auto;padding:28px;border-radius:28px;background:#152c48;color:#f0f7ff;border:2px solid #b5b2eb}#story-editor h2{color:#fff1d5}#story-editor p{font-size:14px;color:#d9e7ff}.editor-fields{display:flex;gap:12px;margin-bottom:20px}.editor-fields label{font-size:12px;flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.editor-fields label:last-child{flex:0 0 95px}.editor-fields input{width:100%}.editor-part{display:flex;gap:14px;align-items:center;margin-bottom:13px}.editor-part>strong{font-size:25px;min-width:40px;color:#a4ffe5}.editor-part>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;flex:1;min-width:0}.editor-token{background:#f0faf5;border:2px solid #bceedd;color:#1c3f56;border-radius:20px;padding:8px;min-width:0}.editor-token small{display:block;font-size:10px;text-align:left}.editor-token b{font-size:14px}.editor-token span{display:block}.editor-token svg{display:block;width:100%;height:58px;--part-color:#21475d}.editor-token .s-beat{display:none}.editor-token .s-rest{fill:#21475d}#activity-dialog{width:min(520px,94vw);max-width:94vw;padding:30px;border-radius:30px;text-align:center;background:#152f4d;color:#f0f8ff;border:2px solid #8cd5c2}#activity-dialog h2{font-size:29px;color:#fff4d7;margin:16px 0}.activity-stars{font-size:48px;color:#ffda79;letter-spacing:7px}.activity-score{display:block;font-size:45px;color:#adffdf;margin:12px 0}#activity-dialog p{font-size:14px;color:#deedff}#activity-save-state{font-size:13px!important;color:#adffdf!important}.creative-playing select:focus-visible,select:focus-visible{outline:3px solid #ffdf89;outline-offset:3px}
@media(min-width:1100px){.ensemble-track.chosen svg{height:90px}.ensemble-track:not(.chosen) svg{height:46px}.story-stage{height:310px}}
@media(max-width:850px){.adventure-cards{gap:14px}.adventure-art{height:170px}.adventure-art img{height:140px;width:110px}.adventure-copy{padding:17px}.adventure-copy strong{font-size:21px}.adventure-copy>span{font-size:13px}.creative-playing .app-shell{padding:14px}.body-stage{padding:20px;gap:18px;grid-template-columns:minmax(130px,.6fr) minmax(0,1.5fr)}.body-avatar{height:230px}.story-caption{max-width:52%;padding:12px 15px}.story-caption p{font-size:13px}.ensemble-play{grid-template-columns:minmax(0,1fr) 150px;gap:10px}.activity-pad-area{padding:12px}.activity-pad-area>span{font-size:15px}.part-selector button{min-width:70px;min-height:48px}.body-rhythm{gap:10px}.body-console{padding:17px}.character-selector img{height:70px;width:66px}}
@media(max-width:600px){.app-shell{padding:14px}#section-nav{gap:3px;margin-bottom:15px;padding:5px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}#section-nav button{font-size:12px;padding:8px 10px;min-width:0}.adventure-cards{grid-template-columns:1fr}.adventure-card{display:grid;grid-template-columns:120px minmax(0,1fr);border-radius:24px}.adventure-art{height:100%;min-height:200px;padding:6px;align-items:center;justify-content:center}.adventure-art img,.adventure-card.story .adventure-art img{height:120px;width:100px}.adventure-copy{gap:9px;padding:17px 14px}.adventure-copy small{font-size:9px}.adventure-copy strong{font-size:23px}.adventure-copy>b{font-size:12px;padding:9px 15px}.adventure-intro{padding:23px 20px}.creative-title{padding:12px}.creative-title h1{font-size:23px}.creative-title .eyebrow{letter-spacing:1px;font-size:8px}.creative-title>button{padding:8px 10px;font-size:11px}.story-stage{height:280px;background-position:60% 40%}.story-caption{left:10px;top:10px;max-width:62%;padding:12px}.story-caption h2{font-size:20px}.story-caption p{font-size:12px}.story-avatar{left:7%;height:100px;width:80px;bottom:5px}.story-author{font-size:9px;right:10px;bottom:10px;padding:6px 9px}.ensemble-console{padding:12px}.part-selector{gap:7px;flex-wrap:wrap}.part-selector button{flex:1;min-width:45px;font-size:21px;min-height:44px}.part-selector>span{width:100%;padding:5px 9px;text-align:center;font-size:12px;margin:5px 0 0}.ensemble-play{grid-template-columns:1fr}.ensemble-tracks{gap:6px}.ensemble-track svg{height:48px}.ensemble-track.chosen svg{height:68px}.ensemble-track>strong{min-width:40px;font-size:17px}.activity-pad-area{flex-direction:row;justify-content:space-between;gap:10px;padding:10px 15px}.activity-pad-area>span{max-width:50%;text-align:left}.activity-tap{font-size:26px;min-width:140px;min-height:78px;padding:8px 14px}.activity-controls{gap:8px}.activity-controls button{font-size:12px;padding:8px 13px;min-height:44px}.creation-tools{gap:10px;padding-top:16px}.creation-tools>button{font-size:12px;padding:10px 14px}#code-form{width:100%;margin:5px 0}#code-form input{flex:1;min-width:0;width:100%}.creation-library,.creative-log{padding:18px}.creation-library h2{font-size:20px}.saved-creation{flex-wrap:wrap;padding:12px;gap:8px}.saved-creation>div{flex-basis:100%}.body-stage{grid-template-columns:1fr;gap:5px;padding:16px}.body-avatar{position:absolute;left:12px;bottom:10px;height:110px;width:100px;z-index:1;pointer-events:none}.character-selector{margin-bottom:14px;gap:9px}.character-selector button{max-width:none;padding:8px}.character-selector img{height:80px;width:75px}.trait-selectors{gap:9px;margin-bottom:12px}.trait-selectors select{font-size:12px;padding:9px}.body-phrase{font-size:21px!important}.body-hint{margin:10px 0 0 105px;min-height:90px;font-size:11px}.phrase-choices{margin-bottom:6px}.body-console{padding:14px}.body-rhythm{gap:7px}.body-beat{border-radius:19px;border-width:2px}.body-rhythm-choice{padding:24px 3px 12px;min-height:103px}.body-rhythm-choice .move-picture{font-size:32px}.body-rhythm-choice strong{font-size:13px}.body-beat select{font-size:10px;padding:10px 2px}.beat-number{font-size:16px;left:9px;top:6px}.body-bottom{flex-wrap:wrap;gap:12px;margin-top:15px}.body-bottom>div{width:100%}.body-bottom #activity-status{font-size:15px}.body-bottom .activity-tap{width:100%;min-height:75px}.body-bottom .activity-controls{margin-top:10px}.tempo-control{font-size:11px}.tempo-control select{font-size:12px;padding:7px}#story-editor{padding:22px 14px}.editor-fields{flex-wrap:wrap}.editor-fields label{flex-basis:45%}.editor-fields label:last-child{flex-basis:100%}.editor-part{gap:7px}.editor-part>strong{font-size:18px;min-width:29px}.editor-part>div{gap:5px}.editor-token{padding:7px 3px;border-radius:14px}.editor-token b{font-size:10px}.editor-token svg{height:48px}.brand-lettering>b{font-size:26px}.creative-playing .brand-lettering>b{font-size:25px}}
@media(max-height:650px) and (min-width:700px){.creative-playing .story-stage{height:230px}.creative-playing .body-stage{min-height:270px;padding:16px 22px}.creative-playing .body-avatar{height:230px}.creative-playing .character-selector img{height:60px}.creative-playing .character-selector{margin-bottom:10px}.creative-playing .body-hint{font-size:11px}.creative-playing .body-rhythm-choice{min-height:90px;padding-top:15px}.creative-playing .body-rhythm-choice .move-picture{font-size:33px}.creative-playing .body-bottom{margin-top:12px}.creative-playing .body-bottom .activity-tap{min-height:80px}.creative-playing .ensemble-track svg{height:44px}.creative-playing .ensemble-track.chosen svg{height:70px}}
.ensemble-track>strong{font-size:16px;min-width:70px;white-space:nowrap}.part-selector button{font-size:21px}.editor-part>strong{font-size:18px;min-width:78px;white-space:nowrap}.story-caption h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.story-avatar{height:125px;width:100px;left:5%}.ensemble-track>div{position:relative}.ensemble-console.is-running .ensemble-track>div:after{content:'';position:absolute;top:3px;bottom:3px;left:var(--playhead,6.7%);width:2px;background:#ffe699;box-shadow:0 0 0 1px #17354566;pointer-events:none}.body-rhythm-choice .move-picture{font-size:34px;white-space:nowrap}.editor-part .s-note{fill:#21475d;stroke:#21475d}
@media(max-width:600px){.ensemble-track>strong{min-width:59px;font-size:13px}.editor-part>strong{min-width:54px;font-size:13px}.part-selector button{font-size:16px}.body-rhythm-choice .move-picture{font-size:24px}.story-avatar{height:100px;width:80px}}
#recover-activity{margin:18px 0}.creative-log h3{margin-top:26px;color:#fff5de;font-size:18px}.creative-playing .activity-tap:focus-visible{outline:4px solid #fff8ac;outline-offset:6px}.body-beat .body-rhythm-choice:focus-visible{outline-offset:-5px}
.story-avatar,.body-avatar[data-character=zippy]{filter:var(--skin-filter,none) drop-shadow(2px 0 #edffff) drop-shadow(-2px 0 #edffff) drop-shadow(0 6px 2px #12264b99)}
/* Illustrated choices for early readers; static artwork keeps rendering light. */
.trait-selectors{display:grid;gap:14px}.trait-selectors fieldset{margin:0;padding:0;border:0;min-width:0}.trait-selectors legend{font-size:15px;font-weight:900;margin-bottom:8px;color:#21495c}.visual-choices{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.trait-selectors fieldset:first-child .visual-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.visual-choices button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:90px;padding:8px 5px;background:#fffdf3;border:2px solid #9cbcca;border-radius:19px;color:#244352;box-shadow:0 3px 0 #94b3b7}.visual-choices svg{width:54px;height:54px}.visual-choices strong{font-size:11px;overflow-wrap:anywhere}.visual-choices button[aria-pressed=true]{border-color:#167b75;background:#b2f0db;box-shadow:0 3px 0 #167b75,0 0 0 2px #fff}.trait-selectors fieldset:last-child button[aria-pressed=true]{background:#ffe0d6;border-color:#b65968;box-shadow:0 3px 0 #b65968}.visual-choices button:hover{background:#e9fff0}.body-stage{grid-template-columns:minmax(220px,.7fr) minmax(0,1.5fr);align-items:start;gap:26px}.body-avatar{height:auto;min-height:390px;position:sticky;top:20px;align-self:start;border-radius:32px;background:radial-gradient(ellipse at 50% 40%,#fffdf7 0%,#def4ff 55%,#bfdce775 75%);border:2px solid #ffffff;margin-top:12px;padding:18px 12px;filter:none}.body-avatar img{height:290px;width:100%;object-fit:contain;filter:drop-shadow(0 7px 3px #487e8a40)}.body-avatar[data-character=zippy]{filter:none}.character-props{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:8px}.character-props>span{width:95px;text-align:center}.character-props svg{height:75px;width:75px}.character-props b{display:block;font-size:12px;color:#30576c}.dislike-prop{position:relative;background:#fff0ec;border-radius:20px;padding:4px}.dislike-prop:after{content:'';height:4px;background:#be5c64;position:absolute;left:10px;right:10px;top:40px;transform:rotate(-35deg);border-radius:4px}.mood-badge{background:#fff2b8;color:#725137;border:2px solid #fff;border-radius:20px;padding:6px 20px;font-size:15px;font-weight:900;margin-top:12px}.body-hint{margin-left:0;min-height:0}.body-rhythm{position:relative}.body-playhead{position:absolute;top:6px;bottom:6px;width:3px;background:#fe886c;box-shadow:0 0 0 2px #fff9d5;z-index:2;pointer-events:none;border-radius:4px}.body-playhead:before{content:'';position:absolute;left:-7px;top:-8px;border-left:8px solid transparent;border-right:8px solid transparent;border-top:10px solid #fe886c}.score-cursor line{stroke:#ff9b56;stroke-width:2.5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1px #fff)}.score-cursor[hidden],.body-playhead[hidden]{display:none}.s-unassigned{font-size:35px;font-weight:900;fill:#bcabc7;font-family:system-ui}.chosen .s-unassigned{fill:#386b76}.ensemble-console.is-running .ensemble-track>div:after{display:none}.ensemble-track .cue-identity{width:128px;flex:0 0 128px;padding:7px;display:flex;flex-direction:column;gap:5px;align-self:stretch;justify-content:center;background:#203352}.cue-identity strong{color:var(--part-color);font-size:16px;text-align:center}.cue-identity small{margin-left:6px;font-size:9px}.cue-identity label{display:flex;gap:4px;align-items:center;min-width:0}.cue-identity label svg{width:25px;height:25px;flex:none}.cue-identity select{font-size:11px!important;padding:6px!important;min-height:36px!important;width:100%;min-width:0;border-radius:12px!important}.ensemble-track .cue-score{flex:1;min-width:0;width:auto}.chosen .cue-identity{background:#77d7c1}.chosen .cue-identity strong{color:#173e4d}.story-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.story-catalog button{min-width:0;display:grid;grid-template-columns:60px 1fr;align-items:center;column-gap:12px;text-align:left;background:#213553;color:#fff5da;border:2px solid #8ca7c4;border-radius:24px;padding:13px;box-shadow:0 4px 0 #101e39}.story-catalog svg{height:62px;width:62px;grid-row:span 2}.story-catalog strong{font-size:16px;line-height:1.3}.story-catalog small{font-size:11px;line-height:1.35;color:#d9e5fb;margin-top:5px}.story-catalog button[aria-pressed=true]{background:#355768;border-color:#91ffe0;box-shadow:0 4px 0 #367c7b}.story-catalog button:hover{border-color:#fff0a6}.story-stage.theme-rainy{background:linear-gradient(155deg,#bceeff,#648cc6 60%,#365d92)}.story-stage.theme-rainy:after{content:'☁';font-size:200px;position:absolute;right:7%;top:-20px;color:#edf8ff;opacity:.65;pointer-events:none}.story-stage.theme-dragon{background:linear-gradient(155deg,#eedcff,#b4dbae 65%,#60968d)}.story-stage.theme-dragon:after{content:'✧';font-size:220px;position:absolute;right:12%;top:15px;color:#fffbc5;pointer-events:none}.story-stage.theme-space{background:url('/scene-3.webp') center/cover}.story-caption{z-index:1;position:relative;top:auto;left:auto;margin:18px 20px;width:70%;max-width:850px}.story-caption h2{white-space:normal;overflow:visible;font-size:clamp(20px,2.4vw,30px)}.story-stage{height:auto;min-height:280px;padding-bottom:32px}.story-avatar{left:auto;right:4%;bottom:20px;z-index:1}.story-author{z-index:1}.narration-option{display:flex;gap:8px;align-items:center;font-size:12px;color:#e5eeff}.narration-option input{min-height:20px;width:20px;height:20px;accent-color:#7ce9cb}.scene-editor{border:1px solid #7098b4;border-radius:20px;padding:15px;margin:15px 0}.scene-editor legend{color:#b0ffe4;font-size:13px;font-weight:800}.scene-editor textarea{width:100%;font:inherit;font-size:14px;line-height:1.5;color:#233d54;background:#f3fbff;border:2px solid #a1bed3;border-radius:14px;padding:12px;resize:vertical}.entry-options{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}.entry-options label{display:flex;align-items:center;gap:5px;font-size:13px}.entry-options input{min-height:20px!important;width:20px;accent-color:#71ddb4}.editor-part .editor-cue{flex:0 0 140px;display:flex;flex-direction:column;gap:8px}.editor-cue strong{color:#a4ffe5}.editor-cue select{width:100%;font-size:12px!important;padding:8px!important}.scene-editor small{color:#fbe9ab;display:block;margin-top:8px}
@media(max-width:1000px){.visual-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.body-stage{grid-template-columns:minmax(180px,.6fr) minmax(0,1.5fr);padding:20px}.body-avatar img{height:240px}.body-avatar{min-height:350px}.story-catalog button{grid-template-columns:45px 1fr;padding:10px;gap:7px}.story-catalog svg{width:45px;height:45px}.story-catalog strong{font-size:13px}.ensemble-track .cue-identity{width:112px;flex-basis:112px}.cue-identity label svg{display:none}}
@media(max-width:600px){.body-stage{grid-template-columns:1fr;gap:18px}.body-avatar{position:relative;top:auto;left:auto;bottom:auto;min-height:0;height:auto;width:100%;pointer-events:auto;display:grid;grid-template-columns:1fr 130px;padding:12px;margin:0}.body-avatar img{height:180px;grid-row:span 2}.character-props{flex-direction:column;gap:5px;margin:0}.character-props>span{display:flex;align-items:center;width:100%;gap:4px}.character-props svg{height:48px;width:48px;flex:none}.character-props b{font-size:10px}.mood-badge{justify-self:center;margin:4px 0 0;font-size:12px;padding:5px 12px}.dislike-prop:after{right:80px;left:5px;top:24px}.story-catalog{grid-template-columns:1fr;gap:10px}.story-catalog button{grid-template-columns:48px 1fr}.story-catalog svg{width:48px;height:48px}.story-catalog strong{font-size:16px}.story-catalog small{margin:0}.story-caption{margin:12px;width:calc(100% - 24px);max-width:none}.story-stage{padding-bottom:95px;min-height:0}.story-avatar{height:85px;width:70px;bottom:6px}.story-caption p{font-size:14px}.ensemble-track .cue-identity{width:90px;flex-basis:90px;padding:5px}.cue-identity strong{font-size:12px}.cue-identity small{font-size:8px;margin-left:3px}.cue-identity select{font-size:10px!important;padding:3px!important}.editor-part .editor-cue{flex-basis:94px;gap:4px}.editor-cue select{font-size:10px!important;padding:4px!important}.visual-choices button{min-height:85px}.visual-choices svg{width:50px;height:50px}}
/* One horizontal reading journey and one shared clock for all ensemble layers. */
.story-journey{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;background:#122642;border:2px solid #8e82c8;border-bottom:0;padding:48px 14px 15px;position:relative}.story-rail{display:flex;position:relative;width:max-content;gap:16px;padding:4px 12px}.journey-scene{display:flex;width:510px;gap:0;border:2px solid #6a85a4;border-radius:22px;overflow:hidden;background:#203959;flex:none}.journey-text{width:370px;flex:none;padding:15px 18px;position:relative}.journey-text small{font-size:10px;letter-spacing:1px;color:#9cffe1;font-weight:850}.journey-text p{color:#ddeafa;font-size:15px;line-height:1.65;margin:9px 0 14px}.journey-text .word-read{color:#fff3b5}.journey-cue{width:136px;flex:none;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#374d70;border-left:2px solid #6a85a4;color:#fff2ce;border-radius:0;padding:8px}.journey-cue strong{font-size:21px}.journey-cue>div{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;margin:8px 0}.journey-cue svg{width:34px;height:34px}.journey-cue small{font-size:11px}.journey-current{border-color:#9cffde;box-shadow:0 0 0 2px #9cffde30}.journey-current .journey-cue{background:#3e706e}.journey-done{border-color:#76b6a8}.reading-progress{height:4px;border-radius:4px;background:#ffffff25;overflow:hidden}.reading-progress span{display:block;width:0;height:100%;background:#ffdc91}.journey-marker{position:absolute;top:-43px;left:-15px;height:42px;width:35px;z-index:2;pointer-events:none;will-change:transform}.journey-marker img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 0 #ffffff)}.journey-marker:after{content:'';position:absolute;bottom:-5px;left:13px;border-top:7px solid #ffeab5;border-left:5px solid transparent;border-right:5px solid transparent}.journey-marker[hidden]{display:none}.cue-navigation{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.cue-navigation button,.editor-cue-tabs button{min-height:44px;border-radius:17px;border:2px solid #99afcc;background:#334568;color:#f4f8ff;padding:8px 17px;font-size:15px}.cue-navigation [aria-pressed=true],.editor-cue-tabs [aria-pressed=true]{background:#94ebd4;color:#1c4350;border-color:#dffff5}.cue-navigation>span{margin-left:auto;font-size:12px;color:#ffe5a5}.part-selector button{font-size:15px;min-height:44px}.track-instrument{display:flex;flex-direction:column;align-items:center;gap:4px}.cue-identity .track-instrument svg{height:32px;width:32px}.track-instrument small{font-size:10px;color:#f0f7ff;text-align:center}.chosen .track-instrument small{color:#214859}.ensemble-tracks{position:relative;gap:10px}.ensemble-track{border-width:2px}.ensemble-track .cue-score svg{width:100%;height:auto;aspect-ratio:776/112;min-height:0;max-height:none}.ensemble-playhead{position:absolute;top:3px;bottom:3px;width:3px;background:#ffc364;box-shadow:0 0 0 1px #173545;z-index:3;pointer-events:none;border-radius:3px}.ensemble-playhead[hidden]{display:none}.track-off .cue-score{opacity:.5}.track-off .track-instrument{opacity:.6}.editor-cue-tabs{display:flex;gap:9px;margin:20px 0}.editor-cue-tabs button{flex:1}.editor-cue>svg{width:42px;height:42px}.track-toggle{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:850}.track-toggle input{width:20px;height:20px;min-height:20px!important;accent-color:#86e6c9}.editor-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.silence-banner{padding:14px;border-radius:17px;background:#344969;color:#ffe9a5!important}.editor-part.track-off .editor-token{opacity:.5}.trait-selectors fieldset:first-child .visual-choices{grid-template-columns:repeat(5,minmax(0,1fr))}.trait-selectors fieldset>small{display:block;font-size:12px;color:#406977;font-weight:750;margin-bottom:9px}.trait-selectors legend{margin-bottom:6px}.preference-message{color:#9a435a;font-size:13px;font-weight:850;margin:8px 0}.character-props{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;width:100%;padding:5px}.character-props>span{width:auto;min-width:0;display:flex;flex-direction:column;align-items:center}.character-props svg{width:62px;height:62px}.character-props b{font-size:10px}.character-props .dislike-prop:after{left:12px;right:12px;top:33px}.body-avatar{position:sticky;min-height:390px;height:auto}.mood-atlas{height:290px;width:290px;max-width:100%;background-size:400% 200%;background-position:var(--mood-x) var(--mood-y);background-repeat:no-repeat;filter:drop-shadow(0 6px 3px #487e8a30)}.atlas-sky{background-image:url('/sky-moods.webp')}.atlas-zippy{background-image:url('/zippy-moods.webp')}.atlas-lifi{background-image:url('/lifi-moods.webp')}.body-avatar .mood-badge{font-size:14px}.creative-playing .story-stage{height:auto;min-height:180px}.story-stage .story-caption{margin:12px 18px;padding:12px 16px}.story-stage .story-caption p{font-size:13px;margin:5px 0}.story-stage .story-avatar{height:110px;width:90px}.story-stage{border-bottom:0}.story-journey+.ensemble-console{border-top:0}
@media(max-width:1000px){.journey-scene{width:450px}.journey-text{width:310px}.journey-text p{font-size:14px}.trait-selectors fieldset:first-child .visual-choices{grid-template-columns:repeat(5,minmax(0,1fr))}.trait-selectors fieldset:first-child .visual-choices svg{width:43px;height:43px}.mood-atlas{height:240px;width:240px}.character-props{grid-template-columns:repeat(2,minmax(0,1fr))}.character-props svg{height:52px;width:52px}}
@media(max-width:600px){.journey-scene{width:390px}.journey-text{width:270px;padding:12px}.journey-cue{width:116px}.journey-text p{font-size:14px;line-height:1.55}.cue-navigation{gap:6px}.cue-navigation button{flex:1;padding:7px 10px;font-size:13px}.cue-navigation>span{width:100%;text-align:center}.part-selector button{font-size:11px;padding:5px}.body-avatar{position:relative;display:flex;flex-direction:column;width:100%;padding:12px;min-height:0}.body-avatar img{height:210px}.mood-atlas{height:210px;width:210px}.character-props{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:330px}.character-props>span{display:flex;flex-direction:column;width:auto}.character-props svg{width:48px;height:48px}.character-props .dislike-prop:after{top:27px;left:12px;right:12px}.trait-selectors fieldset:first-child .visual-choices{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.trait-selectors fieldset:first-child .visual-choices svg{width:40px;height:40px}.trait-selectors fieldset:first-child .visual-choices button{padding:6px 3px;min-height:82px}.visual-choices strong{font-size:10px}.creative-playing .story-stage{min-height:0;padding-bottom:90px}.story-stage .story-caption{margin:10px;width:calc(100% - 20px)}.story-stage .story-avatar{height:80px;width:64px}.track-instrument small{font-size:9px}.cue-identity .track-instrument svg{width:25px;height:25px}.editor-cue-tabs{gap:6px}.editor-cue-tabs button{font-size:12px;padding:6px}}

/* Conductor: one readable transport, quiet static scenery. */
.conductor{display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:#10283f;border:2px solid #8cddd3;border-radius:22px;padding:16px;margin-bottom:16px;color:#f5fff9}.conductor>strong{font-size:22px;flex:1;min-width:190px}.conductor>span{width:100%;color:#dcebf5;font-size:15px}.count-lamps{display:flex;gap:9px}.count-lamps span{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;border:2px solid #7796b2;background:#203b54;color:#fff;font-size:22px;font-weight:900}.count-lamps span.active{background:#ffe396;color:#153449;border-color:#fff6cf;box-shadow:0 0 0 4px #ffe39625}.ensemble-console .activity-controls{display:flex;flex-wrap:wrap;gap:12px;padding:16px 0}.ensemble-console .activity-controls button{min-height:52px}.ensemble-console .activity-controls .primary{font-size:18px}.narration-option{min-height:44px;display:flex;align-items:center;gap:8px}.narration-option input{width:22px;height:22px;accent-color:#83efcf}.journey-text small{color:#9df6df;font-weight:900;letter-spacing:.6px}.journey-cue{border-left:3px solid #f7d38d!important}.journey-cue small{line-height:1.5;display:block}.journey-current{outline:2px solid #9ff6de;outline-offset:-2px;border-radius:16px}.story-caption p{font-size:18px;line-height:1.6;color:#fff}.ensemble-track.chosen{border-color:#fff0b3}.story-avatar img{opacity:1;filter:brightness(1.16) saturate(1.12) drop-shadow(0 3px 2px #04182a)}@media(max-width:650px){.conductor{gap:10px;padding:12px}.conductor>strong{font-size:19px}.count-lamps span{width:36px;height:36px}.ensemble-console .activity-controls button{flex:1 1 140px}.story-caption p{font-size:16px}}

.story-avatar img{opacity:1;filter:brightness(1.4) contrast(.95) saturate(1.15) drop-shadow(1px 0 0 #f4ffff) drop-shadow(-1px 0 0 #f4ffff) drop-shadow(0 3px 2px #10273d80)}
/* Class journeys, rehearsal and projector: large targets, no animated scenery. */
.continue-adventure{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:0 0 24px;padding:18px;border:1px solid #6fa29f;background:#102a3df0;border-radius:23px}.continue-adventure span{color:#d7ebf6}.cue-rehearsal{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#142d46;border:1px solid #6c879d;border-radius:20px;padding:16px;margin:14px 0}.cue-rehearsal strong{width:100%;font-size:18px;color:#baffdd}.cue-rehearsal label{display:flex;gap:8px;align-items:center;min-height:44px}.cue-rehearsal small{width:100%;color:#c4d5e6}.cue-rehearsal select,.arcade-form input,.arcade-form select,#teacher-class,#class-assignment,.arcade-code input{background:#102137;border:1px solid #8badc9;color:#fff;border-radius:12px;padding:10px;min-height:44px;font:inherit}.conductor-sign{font-size:38px;width:54px;text-align:center}.learning-feedback{background:#183d42;border:1px solid #8de6bc;border-radius:18px;padding:18px;margin:15px 0;text-align:left}.learning-feedback strong{color:#c5ffe4}.learning-feedback p{margin:10px 0;color:#f1f7ff}.class-adventures{margin:28px 0;background:#11253ded;padding:24px;border:1px solid #4e7695;border-radius:24px}.class-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.student-adventure{display:flex;flex-direction:column;text-align:left;gap:10px;border:1px solid #6f98a7;border-radius:20px;padding:12px;background:#1d354a}.student-adventure>img{width:100%;height:130px;object-fit:cover;border-radius:14px;background:#28425d}.student-adventure strong{font-size:18px;color:#eaffed}.student-adventure small{color:#c6deec}.creation-cover{width:65px;height:65px;object-fit:cover;border-radius:15px;background:#294b62}.preference-music{padding:18px;background:#112a40;border-radius:18px;margin-bottom:16px}.music-picture{display:inline-flex;flex-direction:column;align-items:center;gap:6px;width:110px;min-height:140px;background:#233b54;border:2px solid #6c91ac;border-radius:18px;margin:5px;padding:10px}.music-picture svg{width:60px;height:60px}.music-picture small{color:#a5f6d9}.music-picture.card-heard{border-color:#ffe6a3;background:#305e69}.beat-swap{min-height:36px;padding:4px 12px;margin-top:7px}#arcade-dialog{width:min(900px,94vw);max-height:90dvh;overflow:auto;padding:28px;border:1px solid #91b9be;border-radius:26px;background:#12243d;color:#f4fbff}#arcade-dialog::backdrop{background:#071226bf}.arcade-form{display:flex;gap:14px;flex-wrap:wrap;align-items:end;margin:20px 0}.arcade-form label{display:flex;flex-direction:column;gap:8px;flex:1;min-width:140px}.pilot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin:20px 0}.pilot-card{border:2px solid #5e899a;border-radius:22px;background:#203b54;color:white;padding:14px;display:flex;flex-direction:column;align-items:center;gap:8px;min-height:190px}.pilot-card img{width:90px;height:110px;object-fit:contain}.pilot-card strong{font-size:18px}.pilot-card small{font-size:11px;color:#cfdfed}.pilot-card[aria-pressed=true]{border-color:#9df5d4;background:#275358}.arcade-code{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:20px 0}.arcade-code label{display:flex;flex-direction:column;gap:8px}.class-code-display{font-size:40px;color:#a6ffdf;letter-spacing:7px;background:#20394e;border-radius:18px;padding:18px;text-align:center}.class-code-display small{display:block;letter-spacing:0;font-size:14px;color:#d5e2f1;margin-top:8px}.teacher-table-wrap{overflow:auto}.teacher-table{width:100%;border-collapse:collapse}.teacher-table td,.teacher-table th{padding:14px;border-bottom:1px solid #5e7a94;text-align:left}.discovery-room{border:1px solid #658aa6;border-radius:20px;padding:20px;background:#1b354b;margin:20px 0}.ship-parts{display:flex;gap:12px;flex-wrap:wrap}.ship-parts span{font-size:38px;padding:12px;border-radius:18px;background:#102338;opacity:.6}.ship-parts span.unlocked{opacity:1;background:#315d63}.learning-badges{display:flex;gap:10px;flex-wrap:wrap}.learning-badges span{padding:8px;border:1px solid #7fbaa8;border-radius:12px;background:#183c40}.projector-mode .topbar .top-actions>button:not(#arcade-btn){font-size:13px}.projector-mode .story-catalog,.projector-mode .creation-tools,.projector-mode .creation-library,.projector-mode .app-shell>footer,.projector-mode .class-adventures{display:none}.projector-mode .app-shell{max-width:1700px}.projector-mode .story-caption p{font-size:clamp(24px,2.6vw,34px)}.projector-mode .conductor>strong{font-size:32px}.projector-mode .conductor-sign{font-size:48px}.projector-mode .activity-tap{min-width:180px;min-height:150px}.projector-mode .ensemble-track .cue-identity{font-size:18px}.projector-mode .body-beat{font-size:24px}.projector-mode .journey-text p{font-size:20px}@media(max-width:700px){.topbar{flex-wrap:wrap}.top-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;width:100%}.top-actions .top-button{font-size:11px;padding:8px 10px}.cue-rehearsal button{flex:1 1 130px}.class-adventures{padding:16px}.pilot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#arcade-dialog{padding:23px 16px}.pilot-card{padding:10px}.music-picture{width:95px}.conductor-sign{width:40px;font-size:30px}.class-gallery{grid-template-columns:1fr}}
/* Piano Sky — static night sky, nine tactile keys, lightweight note motion. */
.adventure-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.adventure-card.piano .adventure-art{background-position:center}.piano-console{background:#102139f5;border:1px solid #6d9cae;border-radius:28px;padding:22px;box-shadow:0 10px 28px #0002}.piano-hud{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.piano-hud>div{display:grid;grid-template-columns:66px 1fr;gap:5px 12px;align-items:center}.piano-hud img{width:66px;height:73px;object-fit:contain;grid-row:1/3;filter:drop-shadow(0 3px 0 #fff3)}.piano-hud strong{font-size:22px;color:#e8fff8}.piano-hud small{color:#b9d2e7}.piano-hud>span{color:#ffdf94;font-size:20px;font-weight:900;white-space:nowrap}.piano-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.piano-toolbar button{min-height:50px}.piano-toolbar label{display:flex;gap:8px;align-items:center;min-height:44px;color:#e3eff8}.piano-toolbar select,.rhythm-song-choice select{background:#1d354a;color:#f4fbff;border:1px solid #709dab;border-radius:13px;padding:10px;font:inherit}.piano-toolbar input{width:21px;height:21px;accent-color:#aaf1dc}#piano-status{min-height:28px;font-size:16px;color:#ebf6ff;margin-bottom:15px}.piano-board{--piano-color:#b9f5df;border:2px solid #6a92b4;border-radius:23px;overflow:hidden;background:#1d3550;isolation:isolate}.piano-sky{height:clamp(260px,40dvh,450px);position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 0,#3c3266 0,transparent 70%),linear-gradient(#102138,#223f59)}.piano-lanes{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));height:100%;position:absolute;inset:0}.piano-lane{border-right:1px solid #d5f6ff12;position:relative}.piano-lane:last-child{border-right:0}.piano-lane.enabled{background:linear-gradient(#83ecd214,transparent 60%);border-right-color:#8adacb3d}.piano-lane>span{display:block;text-align:center;color:#bfd3e65c;font-size:13px;padding-top:18px}.piano-lane.enabled>span{color:#bdffe5}.piano-notes{position:absolute;inset:0;pointer-events:none}.fall-note{position:absolute;top:0;width:calc(100% / 9);height:55px;padding:3px 7px;display:flex;gap:4px;align-items:center;justify-content:center;flex-direction:column;will-change:transform;background:linear-gradient(155deg,#e8fff8,var(--piano-color));border:2px solid #f5fff4;border-radius:18px;box-shadow:0 4px 0 #07192c55;color:#15364b}.fall-note>span{position:absolute;left:8px;top:7px;color:#426776;font-size:15px}.fall-note strong{font-size:24px;line-height:1}.fall-note small{font-size:11px;font-weight:800}.fall-note.missed{background:#e6bcc2;border-color:#efc8d1;opacity:.6}.piano-goal{position:absolute;left:0;right:0;bottom:8px;height:3px;background:#ffde8d;box-shadow:0 0 0 3px #ffde8d22;pointer-events:none}.piano-goal>span{position:absolute;right:10px;bottom:8px;font-size:10px;letter-spacing:1px;color:#ffebaf;padding:4px 7px;border-radius:8px;background:#102139d9}.piano-keyboard{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));position:relative;padding:0 2px 5px;background:#0d213b;gap:3px}.piano-white{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;height:132px;border:1px solid #c1d3dd;border-radius:0 0 13px 13px;background:linear-gradient(#f7fbff,#dbe6ed);color:#34536a;padding:15px 4px;box-shadow:0 5px 0 #7495a7;touch-action:none;user-select:none;-webkit-user-select:none}.piano-white.target-key{background:linear-gradient(#f3fff9,var(--piano-color));border-color:#d7ffec}.piano-white>span{font-size:13px;font-weight:700}.piano-white>b{font-size:23px}.piano-white.down{background:#ffe397;transform:translateY(3px);box-shadow:0 2px 0 #7793a4}.piano-white.wrong{background:#ffbfae}.piano-black{position:absolute;top:0;right:-22%;width:43%;height:64px;z-index:3;border-radius:0 0 7px 7px;background:linear-gradient(100deg,#2e4860,#081a2a);border:1px solid #658295;box-shadow:0 4px 0 #081724;pointer-events:none}.piano-count{position:absolute;inset:35% 0 auto;text-align:center;font-size:84px;color:#ffde91;font-weight:900;text-shadow:0 4px #07192e;pointer-events:none}.piano-combo{position:absolute;top:15px;left:0;right:0;text-align:center;pointer-events:none;font-size:20px;color:#ffe3a4;text-shadow:0 2px #07182a;font-weight:900}.piano-help{font-size:13px;color:#c5d9e7;margin:16px 0 0}.piano-missions{padding:24px;background:#10223cf0;border:1px solid #557c96;border-radius:24px;margin-top:25px}.piano-levels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.piano-level{display:grid;grid-template-columns:38px 1fr;gap:7px 10px;text-align:left;background:#213950;border:1px solid #5c8999;border-radius:19px;padding:16px;min-height:105px}.piano-level>b{grid-row:1/4;font-size:24px;color:#c3ffe1;align-self:center}.piano-level strong{color:#f0fff9;font-size:16px}.piano-level small{font-size:12px;color:#c3d7e8}.piano-level>span{font-size:12px;color:#ffe09b}.piano-level.selected{border:2px solid #a1f3d4;background:#234d55}#piano-result,#piano-shop-dialog{background:#13293f;border:1px solid #89bcbe;border-radius:26px;color:#f3fbff;padding:30px;width:min(800px,94vw);max-height:90dvh;overflow:auto}#piano-result{width:min(570px,94vw);text-align:center}#piano-result::backdrop,#piano-shop-dialog::backdrop{background:#07182bc7}.mini-piano{display:flex;gap:4px;width:110px;height:90px}.mini-piano i{display:block;flex:1;background:linear-gradient(#f4fff8,var(--reward));border:2px solid #dcffff;border-radius:5px 5px 11px 11px}.rhythm-song-choice{display:flex;gap:5px;align-items:center;font-size:12px}.rhythm-song-choice select{padding:5px;min-height:35px;font-size:12px;max-width:170px}.piano-hop{animation:piano-hop .28s ease-out}@keyframes piano-hop{50%{transform:translateY(-10px) rotate(-4deg)}}.motion-off .piano-hop{animation:none}.projector-mode .piano-sky{height:48dvh}.projector-mode .piano-white{height:150px}.projector-mode .piano-missions{display:none}@media(max-width:1050px){.adventure-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-levels{grid-template-columns:repeat(3,minmax(0,1fr))}.piano-hud{flex-wrap:wrap}}@media(max-width:650px){.piano-console{padding:13px;border-radius:21px}.piano-hud{gap:10px}.piano-hud strong{font-size:18px}.piano-hud>div{grid-template-columns:48px 1fr}.piano-hud img{width:48px;height:57px}.piano-hud>span{font-size:15px}.piano-toolbar{gap:8px}.piano-toolbar button{padding:9px 13px;min-height:44px}.piano-white{height:112px;padding:12px 2px;gap:5px}.piano-white b{font-size:20px}.piano-white span{font-size:10px}.piano-black{height:48px}.fall-note{padding:5px 1px;border-radius:12px}.fall-note span{display:none}.fall-note strong{font-size:21px}.fall-note small{font-size:9px}.piano-levels{grid-template-columns:repeat(2,minmax(0,1fr))}.piano-level{padding:12px;grid-template-columns:25px 1fr}.piano-level strong{font-size:14px}.piano-missions{padding:16px}.piano-goal span{font-size:8px}.adventure-cards{grid-template-columns:1fr}}@media(max-height:550px){.piano-sky{height:230px}.piano-white{height:90px}.piano-black{height:40px}.piano-hud img{height:45px}.piano-toolbar{margin-bottom:8px}.piano-console{padding:13px}}

/* Keep backgrounds static; only the piano character has this short tap animation. */
.piano-hop{animation:piano-hop .28s ease-out!important}.motion-off .piano-hop{animation:none!important}@media(prefers-reduced-motion:reduce){.piano-hop{animation:none!important}}
.piano-song-guide{background:#f3faf6;color:#264b50;border-radius:22px;margin:20px 0;padding:24px;display:grid;grid-template-columns:1fr 1fr;gap:20px}.piano-song-guide h2{color:#264b50!important;text-shadow:none!important}.piano-song-guide p{color:#527276!important;font-size:13px;line-height:1.5}.piano-staff-scroll{overflow:auto;align-self:center}.piano-staff-scroll svg{width:100%;min-width:500px;height:auto}.piano-song-guide .eyebrow{color:#49877f}@media(max-width:750px){.piano-song-guide{grid-template-columns:1fr}}@media print{body:has(.piano-song-guide) .topbar,body:has(.piano-song-guide) #section-nav,body:has(.piano-song-guide) .piano-missions,body:has(.piano-song-guide) .piano-toolbar,body:has(.piano-song-guide) .piano-sky{display:none!important}.piano-song-guide{break-inside:avoid}.piano-staff-scroll{overflow:visible}.piano-staff-scroll svg{min-width:0}}

.piano-group{grid-column:1/-1;margin:20px 0 0;color:#e8f8ff;font-size:1.05rem}
