@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap";:root{font-family:DM Sans,sans-serif;color:#283d32;background:#f7f5ee;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--paper:#f7f5ee;--green:#244e3d;--muted:#7a8275;--line:#dedfd3}*{box-sizing:border-box}body{margin:0}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d19d4d;outline-offset:4px}button:disabled{opacity:.55}button svg{flex-shrink:0}::selection{background:#e5d7ab}h1,h2,h3,p{margin:0}.site-header{max-width:1360px;margin:auto;padding:27px 54px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:11px;font-family:Manrope,sans-serif;font-weight:800;font-size:20px;letter-spacing:-.8px;line-height:1.1}.brand-icon{display:grid;place-items:center;color:var(--green);width:37px}.bamboo-mark{width:56px;height:60px}.bamboo-mark.small{width:36px;height:40px}.brand-sub{display:block;font-family:DM Sans,sans-serif;font-size:9px;font-weight:600;letter-spacing:3.5px;margin-top:7px}.header-label{color:var(--muted);font-size:12px;margin-left:-60px}.demo-badge{border:1px solid #d9dfd0;padding:9px 12px;border-radius:30px;font-size:9px;letter-spacing:1.2px;font-weight:700;display:flex;gap:7px;align-items:center}.demo-badge>span,.eyebrow>span{width:6px;height:6px;background:#80965a;border-radius:50%;display:inline-block}main{max-width:1252px;margin:auto;padding:0 0 28px}.intro{display:flex;align-items:center;justify-content:space-between;padding:39px 0 33px}.eyebrow{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700;letter-spacing:1.8px;color:#7c8c6e}.intro h1{font-family:Manrope,sans-serif;font-size:clamp(36px,4.5vw,57px);letter-spacing:-2.8px;font-weight:800;line-height:1.2;margin:12px 0}.intro h1 em{font-style:normal;color:#85965c}.title-spark{display:inline-block;font-size:37px;color:#d8ab5c;vertical-align:top;transform:rotate(10deg);margin:3px 0 0 13px}.intro-copy{font-size:14px;color:#77816f;line-height:1.8}.mobile-break{display:none}.intro-stamp{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border:1px solid #d8dbca;border-radius:50%;width:125px;height:125px;color:#9aa67e;transform:rotate(9deg);margin-right:16px}.intro-stamp .bamboo-mark{width:43px;height:46px}.intro-stamp>span{font-size:6px;letter-spacing:1.2px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.game-card{background:#fffefa;border:1px solid #dce1d4;border-radius:19px;overflow:hidden;box-shadow:0 5px 24px #244e3d05}.game-topbar{display:flex;justify-content:space-between;align-items:center;padding:15px 24px;border-bottom:1px solid #edf0e7;height:59px}.live-label{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:500;color:#6d7b6a}.live-dot{width:6px;height:6px;background:#a2b28a;border-radius:50%}.live-dot.running{background:#5a986a;box-shadow:0 0 0 4px #5a986a15}.game-controls{display:flex;gap:7px}.icon-button{width:31px;height:31px;display:grid;place-items:center;border:1px solid #e4e7dd;border-radius:8px;background:transparent;color:#77836e}.icon-button:hover{background:#edf1e5}.icon-button svg{width:16px;height:16px}.scoreboard{display:grid;grid-template-columns:1fr 1fr 1fr;padding:22px 26px 20px;gap:12px}.scoreboard>div{display:flex;flex-direction:column;gap:7px}.stat-label{font-size:8px;letter-spacing:1.4px;color:#94a08a;font-weight:700}.scoreboard strong{font-family:Manrope,sans-serif;font-size:30px;line-height:1.2;letter-spacing:-1px;font-weight:800;font-variant-numeric:tabular-nums}.scoreboard small{font-family:DM Sans,sans-serif;font-size:11px;font-weight:400;color:#a5ad9b;letter-spacing:0}.combo-stat{text-align:center}.time-stat{text-align:right}.time-stat strong{font-size:25px;padding-top:4px}.progress-track{height:3px;background:#e9eddf;margin:0 25px;overflow:hidden;border-radius:5px}.progress-track>div{height:100%;background:#8fa36d;transition:width .1s linear}.stage{height:350px;margin:0 24px;position:relative;overflow:hidden;background:linear-gradient(180deg,#fafbf6,#f2f5e9)}.stage-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(8,1fr)}.stage-grid>div{border-right:1px solid #e4e9d96b}.stage-grid>div:first-child{border-left:1px solid #e4e9d96b}.stage-grid>div:nth-child(2n){background:#e6ecd31b}.stage-orbit{pointer-events:none;position:absolute;width:300px;height:300px;border:1px solid #dfe6cf;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%);opacity:.4}.orbit-two{width:410px;height:410px}.stage:not(.stage-idle) .stage-orbit{display:none}.hit-line{position:absolute;top:80%;width:100%;height:2px;background:#b3c19c;box-shadow:0 0 14px #8fa86d28;z-index:2}.hit-line:before,.hit-line:after{content:"";position:absolute;width:5px;height:5px;background:#8f9f78;top:-1.5px;border-radius:50%}.hit-line:after{right:0}.hit-line>span{position:absolute;left:50%;transform:translate(-50%);top:9px;font-size:7px;font-weight:700;letter-spacing:2px;color:#9eab8a;background:#f2f5e9;padding:3px 7px}.stage-idle .hit-line{opacity:.35}.stage-welcome{position:relative;z-index:3;display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:24px}.welcome-symbol{position:relative;display:grid;place-items:center;width:72px;height:76px;border-radius:40px;background:#e8eddc;color:#91a26f;margin-bottom:14px}.welcome-symbol .bamboo-mark{width:41px;height:46px}.symbol-star{position:absolute;font-size:27px;right:-13px;top:-3px;color:#c4aa65}.stage-welcome h2,.pause-overlay h2{font-family:Manrope,sans-serif;font-weight:800;letter-spacing:-.7px;font-size:23px;margin-bottom:9px}.stage-welcome p{font-size:12px;line-height:1.8;color:#8a967a}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:10px;padding:13px 23px;font-size:12px;font-weight:600;transition:background .2s,transform .15s}.button:active{transform:translateY(2px)}.primary{background:var(--green);color:#fafbf1;box-shadow:0 5px 13px #244e3d15}.primary:hover{background:#32644e}.stage-welcome .button{margin:19px 0 12px}.start-hint{font-size:9px;color:#99a38b}.keyboard{padding:13px 24px 0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:7px;background:#fffefa}.note-key{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;height:114px;background:linear-gradient(180deg,#fbf7ed,#f2ead7);border:1px solid #e3dac4;border-bottom:4px solid #d6c6a2;border-radius:7px;padding:10px 0 8px;color:#47553b;transition:transform .1s,background .1s;-webkit-user-select:none;user-select:none;overflow:hidden}.note-key:before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:var(--note-color)}.note-key:hover{background:#eae9d2}.note-key.pressed{transform:translateY(3px);border-bottom-width:1px;background:color-mix(in srgb,var(--note-color) 28%,#f8f4e8)}.note-key strong{font-family:Manrope,sans-serif;font-size:14px;font-weight:800;position:relative}.note-key kbd{font-family:DM Sans,sans-serif;font-size:9px;border:1px solid #d5ccb4;color:#95886c;border-radius:4px;min-width:17px;line-height:17px;position:relative}.tube-decoration{position:absolute;top:14px;height:36px;display:flex;gap:3px;align-items:flex-end;opacity:.5}.tube-decoration i{height:100%;width:7px;border-radius:4px;background:linear-gradient(90deg,#cfb784,#e9d9b4,#d4be8f);border-bottom:2px solid #b6a474}.tube-decoration i:after{content:"";display:block;height:1px;background:#baa273;margin-top:19px}.tube-decoration i:nth-child(2){height:25px;width:6px}.keyboard-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 25px 19px;color:#99a18d;font-size:9px}.keyboard-caption>span:first-child{display:flex;align-items:center;gap:5px}.touch-hint{display:none}.sidebar{display:flex;flex-direction:column;gap:18px}.song-card{background:#fffefa;border:1px solid #dce1d4;border-radius:16px;padding:20px}.card-eyebrow{display:flex;justify-content:space-between;font-size:8px;font-weight:700;letter-spacing:1.3px;color:#8b957b;margin-bottom:14px}.card-eyebrow>span:last-child{color:#a6ad9c;letter-spacing:0;font-weight:400}.song-art{height:132px;border-radius:10px;background:#eee7d6;position:relative;overflow:hidden}.art-sun{position:absolute;background:#d6b267;right:35px;top:18px;width:44px;height:44px;border-radius:50%}.art-hill{position:absolute;border-radius:50% 50% 0 0;transform:rotate(-10deg)}.hill-back{width:290px;height:110px;background:#a7b28b;left:8px;top:63px}.hill-front{width:280px;height:90px;transform:rotate(11deg);background:#768b61;left:-75px;top:84px}.art-bamboo{position:absolute;top:22px;left:38px;display:flex;gap:6px;align-items:flex-start;transform:rotate(-8deg)}.art-bamboo:before,.art-bamboo:after{content:"";position:absolute;left:-6px;right:-6px;top:12px;height:3px;background:#385b40;z-index:1}.art-bamboo:after{top:66px}.art-bamboo i{display:block;height:77px;width:10px;border-radius:3px;background:linear-gradient(90deg,#b9a260,#d9c18c,#a08d54);box-shadow:2px 3px 4px #344b3620}.art-bamboo i:after{content:"";display:block;margin-top:37px;border-bottom:2px solid #8f8859}.art-bamboo i:nth-child(2){height:65px;margin-top:12px}.art-bamboo i:nth-child(3){height:54px;margin-top:23px}.art-bamboo i:nth-child(4){height:43px;margin-top:34px}.art-bamboo i:nth-child(5){height:32px;margin-top:45px}.art-note{position:absolute;left:140px;top:27px;color:#6b8059;font-size:27px;transform:rotate(10deg)}.art-note.second{left:165px;top:54px;font-size:20px;transform:rotate(-8deg)}.art-label{position:absolute;bottom:12px;right:13px;color:#eff0df;font-size:9px;font-style:italic;letter-spacing:.4px}.song-heading{display:flex;justify-content:space-between;align-items:center;margin:15px 0 6px}.song-heading h2{font-family:Manrope,sans-serif;font-size:17px;font-weight:800;letter-spacing:-.5px}.song-heading>span{width:26px;height:26px;display:grid;place-items:center;border:1px solid #e4e7da;border-radius:50%;color:#8b9e74;font-size:13px}.song-description{color:#96a087;font-size:10px}.song-tags{display:flex;gap:6px;margin-top:13px}.song-tags>span{font-size:8px;color:#859472;border:1px solid #e3e8d9;border-radius:5px;padding:4px 7px}.mode-heading{border-top:1px solid #e7eadf;margin-top:19px;padding-top:17px;display:flex;justify-content:space-between;align-items:center}.mode-heading h3{font-size:10px;font-weight:600}.mode-heading>span{font-size:8px;color:#a4ac97}.mode-picker{display:flex;padding:4px;background:#f0f2e9;border-radius:9px;margin-top:11px;gap:3px}.mode-picker>button{border:1px solid transparent;border-radius:6px;width:50%;background:transparent;padding:9px 3px;font-size:10px;font-weight:600;color:#929d82}.mode-picker>button>span{display:block;font-size:8px;margin-top:4px;font-weight:400;opacity:.8}.mode-picker>button.selected{background:#fffefa;color:var(--green);border-color:#e4e6d7;box-shadow:0 2px 3px #344b3609}.guide-switch{position:relative;display:flex;gap:9px;align-items:center;margin-top:16px;cursor:pointer}.guide-switch input{position:absolute;opacity:0;left:0;width:30px;height:25px;margin:0}.switch-track{flex-shrink:0;display:block;background:#d2d7c7;width:29px;height:17px;border-radius:12px;padding:3px;transition:background .15s}.switch-track:after{content:"";width:11px;height:11px;display:block;border-radius:50%;background:#fffefa;transition:transform .15s}.guide-switch input:checked+.switch-track{background:#7d9662}.guide-switch input:checked+.switch-track:after{transform:translate(12px)}.guide-switch input:focus-visible+.switch-track{outline:2px solid #c19b53;outline-offset:3px}.guide-switch input:disabled~span{opacity:.6}.guide-switch>span:last-child{font-size:10px;color:#76866a}.guide-switch>span:last-child>span{display:block;font-size:8px;color:#a1aa95;margin-top:3px}.howto-card{padding:22px 20px;background:#ecf0e3;border-radius:16px;border:1px solid #dfe5d4}.howto-card .eyebrow{font-size:8px;letter-spacing:1.4px}.howto-card h2{font-family:Manrope,sans-serif;font-size:20px;font-weight:750;letter-spacing:-.7px;line-height:1.4;margin-top:8px}.howto-card ol{list-style:none;padding:0;margin:19px 0}.howto-card li{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px}.howto-card li>span{font-family:Manrope,sans-serif;font-size:10px;width:24px;height:24px;display:grid;place-items:center;border:1px solid #ccd6bc;border-radius:50%;color:#85966e;flex-shrink:0}.howto-card li strong{font-size:10px;font-weight:600}.howto-card li p{font-size:9px;color:#8b977c;line-height:1.8;margin-top:3px}.best-score{border-top:1px solid #d7dfcc;padding-top:15px;display:flex;justify-content:space-between;align-items:center}.best-score>span{font-size:10px;color:#748766}.best-score small{font-size:8px;margin-left:3px;color:#99a78a}.best-score>strong{font-family:Manrope,sans-serif;font-size:17px;letter-spacing:-.4px}.culture-note{display:flex;align-items:center;gap:18px;margin-top:24px;padding:20px 24px;border:1px dashed #d6ddc8;border-radius:12px}.culture-note>span:first-child{color:#acb786;font-size:30px}.culture-note p{font-size:10px;line-height:1.9;color:#94a082}.culture-note strong{font-weight:500;color:#758867}.culture-signature{margin-left:auto;font-size:10px;font-style:italic;color:#91a17c;white-space:nowrap}footer{max-width:1360px;margin:auto;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;padding:22px 54px 28px;font-size:8px;color:#9ca58e}footer>span:first-child{letter-spacing:.3px}.footer-dot{padding:0 8px}.countdown-overlay,.pause-overlay,.result-overlay{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#f4f7ecee;padding:24px}.countdown-overlay>span{font-size:10px;letter-spacing:2px;color:#85956e}.countdown-overlay>strong{font-family:Manrope,sans-serif;font-size:86px;color:var(--green);font-weight:800;line-height:1.4}.countdown-overlay p{font-size:12px;color:#8c987b}.pause-overlay .eyebrow{margin-bottom:12px}.pause-overlay p{font-size:12px;color:#8c987b;margin:5px 0 23px}.text-button{display:block;border:0;background:transparent;color:#7f906c;font-size:10px;margin-top:16px;padding:5px;text-decoration:underline;text-underline-offset:3px}.falling-note{position:absolute;z-index:3;width:9.5%;height:35px;border-radius:8px;background:var(--note-color);color:#fffefa;box-shadow:0 3px color-mix(in srgb,var(--note-color) 60%,#283d32);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.falling-note>span{position:absolute;bottom:5px;width:65%;height:1px;background:#fff3}.feedback{position:absolute;z-index:4;top:34%;left:50%;transform:translate(-50%);font-family:Manrope,sans-serif;font-size:17px;font-weight:800;color:#a28f6a;text-shadow:0 2px 5px #f7f5ee;background:#f4f7ecdf;padding:8px 14px;border-radius:9px;white-space:nowrap;pointer-events:none}.feedback.good{color:#4f7c4c}.feedback small{display:block;text-align:center;font-family:DM Sans,sans-serif;font-size:10px;font-weight:400;margin-top:5px}.result-flower{font-size:39px;line-height:1;color:#c0a45e;margin-bottom:12px}.result-overlay h2{font-family:Manrope,sans-serif;font-size:27px;font-weight:800;letter-spacing:-1px;margin:7px 0}.result-overlay p{font-size:11px;color:#8c987b;line-height:1.7}.result-stats{display:flex;gap:29px;margin:21px 0}.result-stats>div{display:flex;flex-direction:column;gap:5px}.result-stats strong{font-family:Manrope,sans-serif;font-size:23px;letter-spacing:-.6px}.result-stats span{font-size:9px;color:#8c987b}.error-message{padding:14px;border-radius:8px;background:#f7e4d6;color:#91452e;font-size:12px;margin-top:16px}.falling-note{transform:translateY(-50%)}.game-card{align-self:stretch;display:flex;flex-direction:column}.stage{flex-grow:1;min-height:350px}.stage-welcome{height:100%;justify-content:center;padding:0 0 26px}@media(max-width:800px){.stage{flex-grow:0;min-height:0}}@media(min-width:1500px){main{padding-top:13px}.intro{padding-bottom:42px}.stage{height:370px}}@media(max-width:1360px){main{padding-left:40px;padding-right:40px}.site-header{padding-left:40px;padding-right:40px}footer{padding-left:40px;padding-right:40px}}@media(max-width:1050px){.game-layout{grid-template-columns:minmax(0,1fr) 260px;gap:18px}.song-card,.howto-card{padding:17px}.intro-stamp{width:110px;height:110px}.keyboard{padding-left:15px;padding-right:15px;gap:5px}.stage{margin:0 15px}.note-key{height:105px}.scoreboard,.game-topbar{padding-left:18px;padding-right:18px}.song-heading h2{font-size:15px}.keyboard-caption{padding-left:17px;padding-right:17px}.keyboard-caption>span:last-child{font-size:8px}.culture-signature{display:none}}@media(max-width:800px){.site-header{padding:20px 24px}.header-label{display:none}main{padding-left:24px;padding-right:24px}.intro{padding:30px 0 27px}.intro h1{font-size:43px;letter-spacing:-2px}.intro-stamp{width:97px;height:97px;margin-right:0}.intro-stamp>span{font-size:5px}.game-layout{grid-template-columns:1fr}.stage{height:340px}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:18px}.howto-card{display:flex;flex-direction:column}.best-score{margin-top:auto}.song-art{height:115px}.howto-card ol{margin-bottom:5px}.culture-note{margin-top:18px}footer{padding:20px 24px;flex-wrap:wrap;line-height:1.8}.keyboard-caption>span:last-child{font-size:9px}}@media(max-width:480px){.site-header{padding:16px}.brand{font-size:17px;gap:7px}.brand-sub{font-size:7px;letter-spacing:3px;margin-top:5px}.brand-icon{width:30px}.bamboo-mark.small{width:29px;height:34px}.demo-badge{font-size:7px;letter-spacing:.6px;padding:7px 8px;gap:5px}main{padding:0 12px 20px}.intro{padding:27px 5px 24px}.intro .eyebrow{font-size:8px;letter-spacing:1.2px}.intro h1{font-size:36px;letter-spacing:-1.8px;margin-top:11px}.title-spark{font-size:24px;margin:4px 0 0 6px}.intro-copy{font-size:11px}.mobile-break{display:block}.intro-stamp{display:none}.game-card{border-radius:14px}.game-topbar{height:49px;padding:10px 14px}.scoreboard{padding:17px 14px 16px}.scoreboard strong{font-size:25px}.scoreboard small{font-size:8px}.stat-label{font-size:7px}.time-stat strong{font-size:22px}.progress-track{margin:0 11px}.stage{height:320px;margin:0 10px}.stage-welcome{padding-top:23px}.stage-welcome h2{font-size:22px}.welcome-symbol{height:67px;width:65px;margin-bottom:13px}.stage-welcome .button{margin-top:17px}.keyboard{padding:10px 9px 0;gap:4px}.note-key{height:92px;border-radius:5px;border-bottom-width:3px;padding:8px 0 6px;gap:4px}.note-key strong{font-size:12px}.note-key kbd{font-size:8px;line-height:14px;min-width:15px}.tube-decoration{top:11px;height:28px;gap:2px}.tube-decoration i{width:5px}.tube-decoration i:nth-child(2){height:19px;width:5px}.tube-decoration i:after{margin-top:13px}.keyboard-caption{padding:13px 11px;font-size:8px}.keyboard-caption>span:last-child{font-size:7px}.touch-hint{display:inline}.desktop-hint{display:none}.falling-note{font-size:9px;height:30px;border-radius:5px}.sidebar{grid-template-columns:1fr}.song-card{padding:18px;display:grid;grid-template-columns:100px minmax(0,1fr);column-gap:15px}.card-eyebrow{grid-column:1/-1}.song-art{grid-column:1;grid-row:2/5;height:100px}.song-heading{grid-column:2;margin:4px 0}.song-heading h2{font-size:16px}.song-heading>span{display:none}.song-description{grid-column:2;font-size:9px;line-height:1.6}.song-tags{grid-column:2;margin-top:5px;gap:4px;align-items:center}.song-tags>span{font-size:7px;padding:4px 5px}.mode-heading,.mode-picker,.guide-switch{grid-column:1/-1}.art-bamboo{left:12px;top:14px;gap:3px;transform:scale(.7) rotate(-8deg);transform-origin:top left}.art-sun{width:28px;height:28px;right:10px;top:12px}.art-note{left:64px;top:35px;font-size:19px}.art-note.second{display:none}.art-label{font-size:6px;right:8px;bottom:9px}.hill-back{top:52px;left:-10px}.hill-front{top:64px;left:-155px}.howto-card{padding:20px}.howto-card h2{font-size:20px}.howto-card h2 br{display:none}.howto-card ol{margin:18px 0 0}.howto-card li{margin-bottom:15px}.howto-card li strong{font-size:11px}.howto-card li p{font-size:10px}.best-score{margin-top:3px}.culture-note{gap:12px;padding:15px}.culture-note p{font-size:9px}.culture-note>span:first-child{font-size:24px}footer{padding:18px 17px;gap:5px;flex-direction:column;font-size:7px}.result-overlay{padding:17px}.result-overlay h2{font-size:25px}.result-overlay p{font-size:10px}.result-stats{gap:20px;margin:17px 0}.result-stats strong{font-size:21px}.result-overlay .text-button{margin-top:11px}.pause-overlay h2{font-size:21px}.feedback{font-size:14px}.result-flower{font-size:31px;margin-bottom:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}.gesture-song{margin:24px 0;padding:clamp(18px,4vw,30px);border:1px solid #d9dfd1;border-radius:24px;background:#f4f6ee;color:#243c31}.gesture-song-header{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.gesture-song-header h3{margin:6px 0 16px;font-size:clamp(22px,3vw,30px)}.gesture-song-header label{display:grid;gap:6px;font-size:13px;max-width:100%}.gesture-song-header select{min-height:44px;max-width:100%;padding:10px 14px;border:1px solid #b9c6b5;border-radius:12px;background:#fff;color:inherit;font:inherit}.gesture-song-target{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin:20px 0}.gesture-song-target strong{font-size:clamp(36px,6vw,52px)}.gesture-song-target span{flex:1;min-width:150px}.gesture-song-sequence{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.gesture-song-sequence span{padding:10px 12px;background:#fff;border:2px solid;border-radius:12px}.gesture-song-sequence [aria-current]{box-shadow:0 0 0 2px #243c31;font-weight:700}.gesture-song progress{width:100%;height:10px;accent-color:#51968a}.gesture-song-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:18px 0 12px}.gesture-song-actions>span{margin-right:auto}.gesture-song>p{font-size:13px;line-height:1.7;margin-bottom:0}@media(max-width:480px){.gesture-song-header label{width:100%}.gesture-song-actions .button{flex:1 1 140px}.gesture-song-actions>span{width:100%}}.gesture-stage{background:#142d27;color:#f7f5ee;border-color:#36594b;overflow:hidden}.gesture-stage .eyebrow{color:#d8c38e}.stage-settings{display:flex;flex-wrap:wrap;gap:10px;max-width:100%}.gesture-stage .gesture-song-header select{background:#213f34;color:#fff;border-color:#52705b}.stage-score{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin:15px 0 22px;font-size:12px;color:#c1cfc1}.stage-score strong{color:#f5db99;font-size:24px;margin-right:3px}.stage-score>span:last-child{margin-left:auto;font-size:10px;letter-spacing:1.4px}.stage-highway{position:relative;height:174px;overflow:hidden;border:1px solid #4c6756;border-radius:18px;background:repeating-linear-gradient(90deg,transparent,transparent calc(22% - 1px),#ffffff08 calc(22% - 1px),#ffffff08 22%),linear-gradient(0deg,#24463a,#152e27)}.stage-hitline{position:absolute;left:20%;top:0;bottom:0;width:3px;background:#f3d18d;box-shadow:0 0 22px #f3d18d66}.stage-hitline>span{position:absolute;top:10px;white-space:nowrap;transform:translate(-50%);font-size:8px;color:#f3d18d;letter-spacing:1px}.stage-note{position:absolute;top:40px;width:92px;height:113px;transform:translate(-50%);border:2px solid var(--note-color);border-radius:14px;background:#203d32;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:5px;box-shadow:0 4px 14px #0003;will-change:left}.stage-note small{font-size:25px}.stage-note strong{font-size:20px;color:#fff5da}.stage-note>span{font-size:8px;text-align:center;padding:0 4px;color:#d6e0d2}.stage-note.resolved{opacity:.3}.stage-countdown{position:absolute;inset:0;background:#142d27dd;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:58px;color:#f3d18d;pointer-events:none}.stage-countdown small{font-size:14px}.stage-cue{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:20px 0}.stage-cue>span{font-size:32px}.stage-cue strong{font-size:22px}.stage-cue p{font-size:12px;line-height:1.6;color:#c1cfc1}.stage-feedback{flex:1 1 150px;text-align:right}.stage-backing{display:flex;align-items:center;gap:8px;font-size:12px;min-height:44px}.stage-backing input{width:18px;height:18px;accent-color:#d8c38e}.stage-result{margin-top:16px;padding:14px;border:1px solid #6d865d;border-radius:12px;background:#34523b}@media(max-width:480px){.stage-settings{width:100%}.stage-settings label{flex:1 1 120px;width:auto;min-width:0}.stage-settings select{width:100%}.stage-note{width:65px}.stage-note>span{font-size:7px}.stage-feedback{text-align:left;flex-basis:100%}.stage-score{gap:12px}.stage-score>span:last-child{width:100%;margin:0}}@media(max-width:480px){.stage-note>span{display:none}.stage-note{height:92px;top:48px}.stage-note small{font-size:23px}.stage-note strong{font-size:18px}}.demo-badge>.version-tag{font-size:8px;border-left:1px solid #d4dbc9;padding-left:7px;color:#829764;background:none;width:auto;height:auto;border-radius:0}.song-library{margin-bottom:23px}.library-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.library-heading>span{font-size:10px;color:#929c84}.song-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.song-option{display:flex;align-items:center;gap:12px;text-align:left;border:1px solid #dfe3d5;background:#fffefa;padding:15px;border-radius:12px;color:#63745a;transition:border-color .15s,background .15s}.song-option:hover{border-color:#a0b086}.song-option.chosen{border-color:#82996b;background:#f0f3e6;box-shadow:0 0 0 1px #82996b22}.song-option-icon{height:43px;width:43px;border-radius:10px;display:grid;place-items:center;background:#e6ecd8;font-size:26px;color:#7e9664;flex-shrink:0}.song-option.sunset .song-option-icon{background:#f2e8d7;color:#b4925b}.song-option.forest .song-option-icon{background:#e0eade;color:#5f8463}.song-option-copy{min-width:0}.song-option-copy strong{display:block;font-family:Manrope,sans-serif;font-size:13px;font-weight:750;letter-spacing:-.3px}.song-option-copy>span{display:block;font-size:9px;color:#94a082;margin-top:5px}.song-option i,.current-song i,.keyboard-caption i,.result-detail i{font-style:normal;padding:0 4px;opacity:.65}.song-option-state{margin-left:auto;font-size:10px;color:#8ca173}.current-song{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 24px 0;font-size:10px;color:#7b8d6c}.current-song>span:last-child{font-size:9px;color:#99a68a}.game-card{align-self:start;box-shadow:0 8px 25px #244e3d06}.stage{height:clamp(290px,43vh,390px);min-height:0;flex-grow:0}.stage-welcome{padding-bottom:20px}.stage-result{height:425px}.stage-grid>div{transition:background .08s}.stage-grid .lane-lit{background:color-mix(in srgb,var(--note-color) 16%,transparent)}.combo-hot{border-color:#aabb8c}.combo-flame{color:#c9a14f;font-size:18px;margin-left:6px;vertical-align:middle}.preview-stop{font-size:9px;border:0;background:#eff2e6;padding:7px 9px;border-radius:7px;color:#7c8f65}.game-controls{align-items:center}.listen-button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:11px 10px;border:1px solid #dbe3cf;border-radius:8px;background:#f3f6ed;color:#718761;font-size:10px;margin-top:14px;gap:7px}.listen-button:hover{background:#eaf0df}.listen-button>span{font-size:8px;color:#a1ac93}.song-story{font-size:10px;color:#8e9d7e;line-height:1.8;margin-top:13px}.mode-picker>button{width:33.333%}.mode-picker>button>span{font-size:7px}.song-card .best-score{margin-top:17px;padding-top:14px}.sunset .song-art{background:#f0e5d8}.sunset .hill-back{background:#c8b38a}.sunset .hill-front{background:#9d9165}.sunset .art-sun{background:#c6875f}.forest .song-art{background:#e3e9de}.forest .hill-back{background:#93ae87}.forest .hill-front{background:#547b60}.forest .art-sun{background:#c9bc77}.scoring-guide{display:flex;justify-content:space-between;gap:8px;padding-top:14px;border-top:1px solid #d6dfc9;font-size:8px;color:#8f9e7e}.scoring-guide b{font-size:10px;display:block;color:#758b5f;margin-bottom:3px}.result-stars{display:flex;gap:8px;font-size:28px;margin-bottom:12px;color:#dce3cf;line-height:1}.result-stars .earned{color:#c5a252}.result-stars span:nth-child(2){font-size:36px;margin-top:-5px}.result-overlay .eyebrow{font-size:8px}.result-overlay h2{font-size:29px}.result-overlay .result-stats{margin:18px 0 10px;gap:30px}.result-detail{font-size:9px!important}.unlock-notice{font-size:9px;color:#7d905f;background:#e6edd6;border:1px solid #dae3c9;padding:8px 12px;border-radius:7px;max-width:90%;margin-top:12px;line-height:1.6}.result-actions{display:flex;gap:9px;margin-top:18px}.secondary{background:#fbfcf6;color:#738763;border:1px solid #d1dcc1;box-shadow:none}.secondary:hover{background:#edf2e2}.result-actions .button{font-size:11px;padding:12px 17px}.result-overlay .text-button{margin-top:11px}.result-error{font-size:10px!important;color:#a26348!important;margin-top:7px}.confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}.confetti i{position:absolute;left:calc(var(--i)*6.3%);top:-15px;width:5px;height:10px;background:#c9b775;animation:confetti-drop 2.7s ease-out both;animation-delay:calc(var(--i)*35ms);transform:rotate(calc(var(--i)*30deg))}.confetti i:nth-child(3n){background:#91a87b;border-radius:50%;width:7px;height:7px}.confetti i:nth-child(3n+1){background:#c88f77}@keyframes confetti-drop{0%{top:-15px;opacity:0;rotate:0deg}15%{opacity:.8}to{top:100%;opacity:0;rotate:210deg}}.journey-panel{margin-top:25px;background:#fffefa;border:1px solid #dfe4d5;border-radius:16px;padding:25px}.journey-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.journey-heading .eyebrow{font-size:8px}.journey-heading h2{font-family:Manrope,sans-serif;letter-spacing:-.8px;font-weight:800;font-size:26px;margin-top:7px}.journey-count{display:flex;align-items:center;gap:10px}.journey-count strong{font-family:Manrope,sans-serif;font-size:32px;font-weight:800;color:#879a6d}.journey-count span{font-size:10px;color:#93a083;max-width:80px;line-height:1.6}.achievements{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.achievement{padding:14px 11px;background:#f5f6f0;border:1px dashed #dce3d1;border-radius:10px;display:flex;flex-direction:column;gap:10px;color:#9eab90}.achievement-icon{display:grid;place-items:center;width:32px;height:32px;background:#e9ede1;border-radius:50%;font-size:20px;color:#a1ae92}.achievement strong{font-size:10px;font-weight:600}.achievement p{font-size:9px;line-height:1.7;margin-top:5px;min-height:30px}.achievement-state{display:block;font-size:8px;margin-top:8px}.achievement.unlocked{background:#f0f4e5;border-style:solid;border-color:#cfdbbb;color:#7e9268}.achievement.unlocked strong{color:#526d40}.achievement.unlocked .achievement-icon{background:#dde8c8;color:#7d9957}.achievement.unlocked .achievement-state{color:#6b8a4c}.history-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #e6eadd;margin-top:24px;padding-top:20px}.history-heading h3{font-size:12px;font-weight:600}.history-heading>span{font-size:9px;color:#9aa58d}.history-empty{display:flex;align-items:center;gap:14px;background:#f7f8f2;border-radius:10px;padding:22px;margin-top:15px}.history-empty>span{font-size:26px;color:#a6b58f}.history-empty p{font-size:11px;color:#819471;line-height:1.9}.history-empty strong{font-size:10px;font-weight:400;color:#9ca88e}.history-scroll{overflow-x:auto;margin-top:13px}.history-table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:10px;color:#7b8e6c}.history-table th{font-size:8px;letter-spacing:.5px;color:#9aa68b;font-weight:500;padding:11px 12px;background:#f4f6ee}.history-table td{padding:12px;border-bottom:1px solid #edf0e6;font-variant-numeric:tabular-nums}.history-table td:first-child strong{display:block;font-size:11px;font-weight:500;color:#627c50}.history-table td:first-child>span{display:block;font-size:8px;color:#a1ad94;margin-top:4px}.history-table tr:last-child td{border-bottom:0}.history-stars{color:#bd9d5a;font-size:13px;letter-spacing:2px}footer a{text-decoration:underline;text-underline-offset:3px}@media(max-width:1050px){.song-option{gap:9px;padding:12px}.song-option-icon{width:35px;height:35px;font-size:21px}.song-option-copy strong{font-size:11px}.song-option-state{display:none}.listen-button{font-size:9px}.listen-button>span{font-size:7px}.achievements{grid-template-columns:repeat(3,minmax(0,1fr))}.current-song{padding-left:18px;padding-right:18px}}@media(max-width:800px){.stage{height:340px}.stage-result{height:410px}.current-song{font-size:10px}.sidebar{align-items:start}.song-story{font-size:9px}.mode-picker>button{font-size:9px}.mode-picker>button>span{font-size:6px}.journey-panel{padding:21px}.song-option-copy strong{font-size:10px}.song-option-copy>span{font-size:8px}.song-option{gap:7px}.song-option-icon{width:29px;height:33px}.song-library{margin-bottom:18px}.howto-card h2{font-size:18px}}@media(max-width:480px){.intro-copy{max-width:330px}.library-heading{padding:0 5px}.library-heading .eyebrow{font-size:7px;letter-spacing:1px}.library-heading>span{font-size:8px}.song-options{display:flex;overflow-x:auto;gap:8px;padding:2px 4px 8px;scroll-snap-type:x mandatory}.song-option{min-width:210px;scroll-snap-align:start;padding:12px;gap:10px;flex:0 0 auto}.song-option-copy strong{font-size:12px}.song-option-copy>span{font-size:8px}.song-option-icon{width:34px;height:34px}.song-option-state{display:inline;margin-left:7px}.current-song{padding:11px 14px 0;font-size:9px}.current-song>span:last-child{font-size:8px}.stage{height:310px}.stage-result{height:420px}.scoreboard{padding-top:14px}.stage-welcome{padding-top:0;padding-bottom:19px}.song-story,.listen-button,.song-card .best-score{grid-column:1/-1}.song-story{font-size:10px;margin-top:13px}.listen-button{font-size:10px}.listen-button>span{font-size:8px}.mode-picker>button{font-size:10px;padding:10px 2px}.mode-picker>button>span{font-size:7px}.song-card .best-score{margin-top:17px}.song-description{font-size:8px}.song-heading h2{font-size:15px}.result-overlay h2{font-size:26px}.result-overlay .result-stats{gap:24px;margin:17px 0 8px}.result-stars{font-size:25px}.result-stars span:nth-child(2){font-size:32px}.result-actions .button{font-size:10px;padding:12px 14px}.unlock-notice{max-width:100%;font-size:8px}.journey-panel{padding:18px 14px;margin-top:18px;border-radius:13px}.journey-heading{gap:9px;margin-bottom:17px}.journey-heading h2{font-size:23px}.journey-heading .eyebrow{font-size:6px;letter-spacing:1px}.journey-count{gap:7px}.journey-count strong{font-size:27px}.journey-count span{font-size:8px;max-width:56px}.achievements{grid-template-columns:1fr 1fr;gap:8px}.achievement{padding:12px;flex-direction:row;gap:9px;align-items:flex-start}.achievement-icon{width:25px;height:25px;font-size:17px;flex-shrink:0}.achievement strong{font-size:9px}.achievement p{font-size:8px;min-height:0}.achievement-state{font-size:7px}.achievement:last-child{grid-column:1/-1}.history-heading{align-items:flex-start;flex-direction:column;gap:6px;margin-top:20px;padding-top:17px}.history-heading>span{font-size:8px}.history-empty{padding:17px 12px;gap:10px}.history-empty p{font-size:10px}.history-empty strong{font-size:9px}.history-table{min-width:430px}.history-table th,.history-table td{padding:10px 8px}.preview-stop{font-size:8px;padding:6px}.live-label{font-size:9px}.keyboard-caption .desktop-hint{display:none}}.grand-instrument{margin:0 24px;padding:15px 0 0;background:linear-gradient(180deg,#fffefa,#f6f3e8);border-radius:0 0 9px 9px}.instrument-heading{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:0 11px;font-size:8px;letter-spacing:1.5px;color:#9c875e}.instrument-heading b{font-family:serif;font-size:14px;font-weight:400;letter-spacing:0;margin-left:3px;color:#77613c}.instrument-heading>span:last-child{font-size:8px;color:#a29b85;letter-spacing:0}.grand-rack{display:block;width:100%;height:170px;margin-top:4px;overflow:visible}.grand-note{cursor:pointer;outline:none;touch-action:manipulation}.grand-note .tube-set{transition:filter .1s}.grand-note:hover .tube-set,.grand-note:focus-visible .tube-set{filter:brightness(1.15) drop-shadow(0 0 3px var(--note-color))}.grand-note:focus-visible>rect{stroke:var(--note-color);stroke-width:2;rx:8}.grand-note.playing .tube-set{animation:bamboo-shake .3s ease-out;filter:brightness(1.18) drop-shadow(0 0 5px var(--note-color))}.grand-note.playing .grand-note-light{opacity:1}.grand-note.disabled{cursor:default}.grand-note.disabled:hover .tube-set{filter:none}.instrument-note{text-align:center;font-size:8px;color:#a69c82;margin:1px 0 12px}.grand-instrument+.keyboard{padding-top:9px}.grand-instrument+.keyboard .note-key{height:75px}.grand-instrument+.keyboard .tube-decoration{display:none}.instrument-reference{display:flex;align-items:center;gap:10px;padding:13px 17px;border:1px solid #e3e1d2;border-radius:10px;color:#969378;background:#f2f1e7;margin-top:18px}.instrument-reference>span{font-size:23px;color:#b8a572}.instrument-reference p{font-size:9px;line-height:1.8}.instrument-reference a{color:#7e8c67;text-decoration:underline;text-underline-offset:2px}@keyframes bamboo-shake{0%,to{rotate:0deg}20%{rotate:-3deg}45%{rotate:3deg}70%{rotate:-2deg}90%{rotate:1deg}}@media(max-width:1050px){.grand-instrument{margin:0 15px}.grand-rack{height:145px}}@media(max-width:800px){.grand-rack{height:160px}}@media(max-width:480px){.grand-instrument{margin:0 10px;padding-top:12px}.grand-rack{height:auto;aspect-ratio:960/285}.instrument-heading{font-size:6px;letter-spacing:1px;padding:0 3px}.instrument-heading b{font-size:11px}.instrument-heading>span:last-child{font-size:6px}.instrument-note{font-size:7px;margin-top:-1px;margin-bottom:10px}.grand-instrument+.keyboard .note-key{height:68px}.instrument-reference{padding:12px;align-items:flex-start;gap:9px}.instrument-reference p{font-size:8px}.stage{height:280px}.stage-result{height:420px}}@media(prefers-reduced-motion:reduce){.confetti{display:none}.grand-note.playing .tube-set{animation:none}}.song-options{grid-template-columns:repeat(4,minmax(0,1fr))}.song-option.nusantara .song-option-icon{background:#f3e3dd;color:#b66954}.nusantara .song-art{background:#f3e6db}.nusantara .art-sun{background:#c97d65}.score-source{display:block;margin-top:7px;text-decoration:underline;text-underline-offset:3px;color:#6f875c}.stage-grid,.keyboard{grid-template-columns:repeat(var(--lane-count,8),minmax(0,1fr))}.extended-notes .falling-note{font-size:9px;flex-direction:column;gap:2px;height:40px}.falling-note small{font-size:8px;opacity:.8;font-weight:500}.extended-notes .note-key strong{font-size:12px}.extended-notes .keyboard-caption{flex-wrap:wrap}@media(max-width:1050px)and (min-width:481px){.song-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.extended-notes .keyboard{grid-template-columns:repeat(6,minmax(0,1fr))}.extended-notes .grand-instrument+.keyboard .note-key{height:56px}.extended-notes .falling-note{font-size:7px;border-radius:4px}.extended-notes .falling-note small{font-size:8px}.extended-notes .note-key strong{font-size:12px}}.experience-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 20px}.experience-picker>button{display:flex;align-items:center;gap:13px;text-align:left;border:1px solid #dfe4d5;border-radius:12px;background:#fffefa;padding:16px 20px;color:#80926c}.experience-picker>button[aria-pressed=true]{background:#eef3e3;border-color:#809965;box-shadow:0 0 0 1px #80996522;color:#365c41}.experience-picker>button>span{font-size:27px}.experience-picker strong{display:block;font-size:13px}.experience-picker small{display:block;margin-top:5px;font-size:10px;color:#8e9e7d}.experience-picker b{margin-left:auto;font-size:7px;letter-spacing:1px;padding:5px 7px;border-radius:5px;background:#e5ebd4;color:#7e945f}.lesson-topbar{display:flex;justify-content:space-between;gap:15px;padding:23px 24px 18px;align-items:center}.lesson-topbar .eyebrow{font-size:8px}.lesson-topbar h2{font-family:Manrope,sans-serif;font-size:26px;letter-spacing:-1px;margin-top:9px}.lesson-count{font-size:26px;font-weight:700;color:#879d6b;text-align:right;white-space:nowrap}.lesson-count small{display:block;font-size:8px;font-weight:400;margin-top:5px;color:#99a78a}.lesson-summary{display:flex;justify-content:space-between;gap:10px;padding:0 24px 16px;font-size:10px;color:#7d916a}.lesson-summary>span:last-child{font-size:8px;color:#9da98e}.lesson-parts{display:flex;flex-wrap:wrap;gap:6px;padding:0 24px 20px}.lesson-parts button{width:35px;height:32px;border:1px solid #dfe5d5;border-radius:7px;background:#f7f8f1;color:#9aa88b;font-size:10px}.lesson-parts button.learned{background:#eaf1dd;color:#75944f;border-color:#d1dfb9}.lesson-parts button.current{border-color:#567b46;background:#e1ecd0;color:#345b36;box-shadow:0 0 0 2px #839f5e22}.lesson-board{margin:0 24px;padding:20px;border:1px solid #e2e6d5;border-radius:13px;background:radial-gradient(ellipse at 50% 10%,#f4f5e6,#fafbf5)}.lesson-part-heading{display:flex;justify-content:space-between;gap:8px;font-size:8px;letter-spacing:1.2px;color:#879873}.lesson-part-heading>span:last-child{font-size:9px;letter-spacing:0;color:#a0ab90}.lesson-steps{display:flex;gap:7px;justify-content:center;margin:23px 0}.lesson-steps span{font-size:9px;border:1px solid #e0e5d4;border-radius:20px;padding:7px 10px;color:#a4ae96;background:#fbfcf7}.lesson-steps .current{color:#486b3d;background:#e4edd7;border-color:#c6d7b0}.lesson-steps .complete{color:#79975c}.lesson-sequence{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;min-height:88px}.lesson-note{width:62px;min-height:83px;border:1px solid #e4dfcd;border-top:3px solid var(--note-color);border-radius:8px;background:#fffefa;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;position:relative;transition:transform .1s,background .1s,box-shadow .1s}.lesson-note small{font-size:8px;color:#b0b59d}.lesson-note strong{font-family:Manrope,sans-serif;font-size:14px;color:#72815d}.lesson-note kbd{font-family:inherit;font-size:9px;color:#a29a7b}.lesson-note.sounding{transform:translateY(-5px);background:color-mix(in srgb,var(--note-color) 18%,#fffefa);box-shadow:0 4px 14px #69894422}.lesson-note.correct{background:#edf4e1;border-color:#d1dfbb}.lesson-note.correct small{color:#6f914a}.lesson-note.next{box-shadow:0 0 0 2px #8aa567;transform:translateY(-3px)}.lesson-feedback{text-align:center;min-height:40px;max-width:470px;margin:20px auto 0;font-size:12px;line-height:1.8;color:#77915e}.lesson-feedback.try-again{color:#b18251}.lesson-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin:8px 0 21px}.lesson-actions .button{font-size:11px;padding:12px 17px}.lesson-settings{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:15px;padding-top:17px;border-top:1px solid #e3e8d7}.lesson-settings label{font-size:9px;color:#899a75;display:flex;align-items:center;gap:8px}.lesson-settings select{font:inherit;padding:8px 10px;border:1px solid #d9e2cd;border-radius:6px;background:#fffefa;color:#70865b}.lesson-hint input{accent-color:#7f995d;width:15px;height:15px}.lesson-tip{margin:13px 0 0;text-align:center;font-size:9px;color:#a0ac90;line-height:1.8}.lesson-error{text-align:center;color:#b37a51;font-size:11px;margin-top:10px}.lesson-studio .grand-instrument{margin-top:16px}.note-key.expected-note{box-shadow:0 0 0 2px #7b9956,inset 0 0 0 2px #fff7;position:relative}.note-key.expected-note:after{content:"●";position:absolute;top:4px;right:5px;font-size:7px;color:#789957}.song-option.sunda .song-option-icon{background:#e6ead9;color:#83965b}.sunda .song-art{background:#eee9d5}.sunda .art-sun{background:#c6ae67}.sunda .hill-front{background:#728c60}@media(min-width:1051px){.song-options{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.lesson-topbar{padding:20px 18px 16px}.lesson-topbar h2{font-size:23px}.lesson-summary,.lesson-parts{padding-left:18px;padding-right:18px}.lesson-board{margin:0 15px;padding:17px 14px}.lesson-note{width:53px}.experience-picker>button{padding:14px}.experience-picker small{font-size:9px}}@media(max-width:480px){.experience-picker{gap:8px;margin-bottom:15px}.experience-picker>button{padding:12px 9px;gap:7px;position:relative;align-items:center}.experience-picker>button>span{font-size:19px}.experience-picker strong{font-size:10px}.experience-picker small{font-size:7px;line-height:1.6}.experience-picker b{position:absolute;right:6px;top:-7px;padding:3px 5px;font-size:6px}.lesson-topbar{padding:20px 14px 14px;gap:8px}.lesson-topbar h2{font-size:21px}.lesson-topbar .eyebrow{font-size:6px;letter-spacing:1.2px}.lesson-count{font-size:22px}.lesson-count small{font-size:7px}.lesson-summary{padding:0 14px 15px;flex-wrap:wrap;gap:6px}.lesson-parts{padding:0 14px 15px;gap:5px}.lesson-parts button{width:33px;height:33px}.lesson-board{margin:0 10px;padding:16px 10px}.lesson-part-heading{font-size:7px;letter-spacing:1px}.lesson-part-heading>span:last-child{font-size:8px}.lesson-steps{gap:5px;margin:18px 0}.lesson-steps span{font-size:8px;padding:6px 8px}.lesson-sequence{gap:6px}.lesson-note{width:calc((100% - 18px)/4);min-height:70px;gap:4px}.lesson-note strong{font-size:12px}.lesson-note small,.lesson-note kbd{font-size:8px}.lesson-feedback{font-size:10px;min-height:36px;margin-top:16px}.lesson-actions{gap:7px;margin-bottom:16px}.lesson-actions .button{font-size:10px;padding:11px 13px}.lesson-settings{gap:12px;padding-top:14px}.lesson-settings label,.lesson-tip{font-size:8px}.lesson-studio .grand-instrument{margin-top:10px}.lesson-studio .keyboard-caption{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.lesson-note{transition:none}}.game-layout.gesture-layout{display:block}.experience-picker:has(button:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}.gesture-studio{background:#173f32;color:#f4f1df;border-radius:19px;padding:27px;overflow:hidden;box-shadow:0 12px 34px #183e301f}.gesture-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.gesture-heading .eyebrow{color:#b9ca9d}.gesture-heading h2{font-family:Manrope,sans-serif;font-size:30px;line-height:1.2;letter-spacing:-1.2px;margin-top:9px}.gesture-heading h2 em{font-style:normal;color:#d7b96f}.gesture-counter{text-align:right;border-left:1px solid #ffffff1f;padding-left:22px}.gesture-counter strong{display:block;font-family:Manrope,sans-serif;font-size:28px;color:#efd181}.gesture-counter span{display:block;font-size:8px;letter-spacing:.8px;color:#bdc8b5;margin-top:4px}.camera-stage{position:relative;aspect-ratio:16/9;min-height:410px;background:radial-gradient(circle at 50% 30%,#315e4a,#102f26 70%);border:1px solid #ffffff1f;border-radius:15px;overflow:hidden}.camera-stage video,.camera-stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-stage canvas{transform:none;pointer-events:none}.camera-stage video{opacity:.72;filter:saturate(.7) contrast(1.08)}.camera-zones{position:absolute;inset:auto 0 0;display:grid;grid-template-columns:repeat(8,1fr);height:60px;background:linear-gradient(transparent,#0a251de8);z-index:2}.camera-zones span{display:flex;align-items:flex-end;justify-content:center;padding-bottom:13px;border-left:1px solid #ffffff14;font-size:9px;color:#d9e0cf;transition:background .12s}.camera-zones span.active{background:linear-gradient(transparent,color-mix(in srgb,var(--note-color) 54%,transparent));color:#fff;font-weight:700}.camera-intro{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;background:radial-gradient(circle at 50% 40%,#315e4ae8,#102f26f5 75%)}.gesture-illustration{display:flex;align-items:center;gap:14px;color:#ead087;margin-bottom:20px}.gesture-illustration .hold-hand{font-size:46px;filter:grayscale(1) brightness(2)}.gesture-illustration i{font-style:normal;font-size:27px;animation:gesture-sway .9s ease-in-out infinite alternate}.bamboo-mini{font-size:51px;font-family:serif;color:#c8ad69;transform:rotate(90deg)}.camera-intro .eyebrow{color:#aebd98}.camera-intro h3{font-family:Manrope,sans-serif;font-size:25px;margin:7px 0 9px}.camera-intro>p:not(.eyebrow){max-width:410px;color:#c1cbbb;font-size:11px;line-height:1.8}.camera-intro .button{margin:20px 0 11px;background:#e5c66f;color:#17382d}.camera-intro small{font-size:8px;color:#8fa294}.camera-live{position:absolute;left:15px;top:15px;z-index:3;border-radius:20px;background:#102a22c9;padding:8px 11px;font-size:8px;letter-spacing:1.2px}.camera-live span{display:inline-block;width:6px;height:6px;border-radius:50%;background:#ef7a65;margin-right:6px;box-shadow:0 0 0 4px #ef7a6525}.camera-close{position:absolute;right:14px;top:14px;z-index:3;width:33px;height:33px;border-radius:50%;border:1px solid #ffffff32;background:#102a22bd;color:#fff;font-size:21px}.gesture-prompt{position:absolute;z-index:3;left:50%;top:17px;transform:translate(-50%);text-align:center;background:#102a22c9;border:1px solid #ffffff22;border-radius:10px;padding:8px 18px;min-width:225px}.gesture-prompt strong{display:block;font-size:10px}.gesture-prompt span{display:block;color:#b7c3b2;font-size:8px;margin-top:4px}.gesture-prompt.ready{border-color:#e8cd7866;box-shadow:0 0 0 3px #e8cd7812}.gesture-prompt.ready strong{color:#f0d680}.gesture-error{margin-top:12px;padding:11px 13px;border-radius:8px;background:#7d392f;color:#ffe9dd;font-size:10px}.gesture-howto{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:17px}.gesture-howto>div{display:flex;gap:10px;padding:12px;border:1px solid #ffffff16;border-radius:10px;background:#ffffff08}.gesture-howto>div>span{width:25px;height:25px;display:grid;place-items:center;border:1px solid #cbd3b552;border-radius:50%;font-size:8px;color:#d4ba73;flex-shrink:0}.gesture-howto strong{display:block;color:#edf0df;font-size:9px;margin-bottom:5px}.gesture-howto p{font-size:8px;line-height:1.6;color:#aebaad}.gesture-fallback{border-top:1px solid #ffffff17;margin-top:20px;padding-top:17px}.gesture-fallback>span{display:block;color:#aebaad;font-size:9px;margin-bottom:10px}.gesture-fallback>div{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.gesture-fallback button{border:1px solid #ffffff20;background:#ffffff0b;color:#dfe6d8;border-radius:7px;padding:10px 2px 8px;font-size:9px}.gesture-fallback button i{display:block;width:16px;height:3px;border-radius:5px;background:var(--note-color);margin:0 auto 7px}.gesture-fallback button.active{background:#ffffff1c;transform:translateY(2px)}@keyframes gesture-sway{to{transform:translate(9px)}}@media(max-width:800px){.experience-picker:has(button:nth-child(3)){grid-template-columns:1fr}.gesture-studio{padding:22px}.camera-stage{min-height:380px;aspect-ratio:4/3}.gesture-howto{grid-template-columns:1fr}.gesture-howto>div{padding:10px}.gesture-fallback button{min-height:49px}}@media(max-width:480px){.gesture-studio{margin:0 -2px;padding:16px;border-radius:14px}.gesture-heading h2{font-size:25px}.gesture-counter{padding-left:12px}.gesture-counter strong{font-size:23px}.camera-stage{min-height:390px;aspect-ratio:3/4}.camera-intro{padding:22px 19px}.gesture-illustration .hold-hand{font-size:39px}.camera-intro h3{font-size:22px}.camera-intro>p:not(.eyebrow){font-size:10px}.gesture-prompt{top:auto;bottom:69px;min-width:240px}.camera-zones{height:62px}.gesture-fallback>div{gap:3px}.gesture-fallback button{font-size:7px;padding-left:0;padding-right:0}.gesture-howto{gap:7px}}@media(prefers-reduced-motion:reduce){.gesture-illustration i{animation:none}}.handsign-guide{position:absolute;right:14px;bottom:113px;z-index:62;width:min(390px,calc(100% - 28px));border:1px solid #e6ca785c;border-radius:12px;background:#102a22f5;padding:11px;box-shadow:0 15px 35px #071b14a6}.handsign-guide>div{display:flex;align-items:center;justify-content:space-between;padding:1px 2px 9px}.handsign-guide strong{font-size:10px;letter-spacing:.4px}.handsign-guide>div button{width:27px;height:27px;border:1px solid #ffffff29;border-radius:50%;background:transparent;color:#fff;font-size:17px}.handsign-guide img{display:block;width:100%;height:auto;border-radius:7px}.handsign-guide small{display:block;color:#b7c3b2;font-size:8px;padding:9px 2px 1px}.gesture-diagnostic{margin-top:12px;border:1px solid #e6ca785c;border-radius:10px;background:#102a22;color:#dfe6d8;padding:12px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.gesture-diagnostic-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.gesture-diagnostic-heading strong{color:#e6ca78}.gesture-diagnostic-heading button{border:1px solid #ffffff38;border-radius:6px;background:transparent;color:inherit;padding:4px 8px;font:inherit;cursor:pointer}.gesture-diagnostic dl{display:grid;gap:6px;margin:10px 0 0}.gesture-diagnostic dl div{display:flex;gap:12px}.gesture-diagnostic dt{min-width:125px;color:#aebaad}.gesture-diagnostic dd{margin:0;color:#fff}.gesture-diagnostic small{display:block;margin-top:10px;color:#aebaad;font:10px/1.5 sans-serif}.gesture-diagnostic code{color:#e6ca78}.gesture-diagnostic-controls{display:flex;align-items:end;flex-wrap:wrap;gap:6px;margin-top:10px}.gesture-diagnostic-controls label{display:grid;gap:3px;color:#aebaad;font:10px sans-serif}.gesture-diagnostic-controls select,.gesture-diagnostic-controls button{border:1px solid #ffffff38;border-radius:6px;background:#173f32;color:#fff;padding:5px 7px;font:11px ui-monospace,SFMono-Regular,Menlo,monospace}.gesture-diagnostic-controls button{cursor:pointer}.gesture-diagnostic-controls button:disabled{cursor:not-allowed;opacity:.45}.gesture-diagnostic-controls span{color:#aebaad;font:10px sans-serif;padding:5px 0}@media(max-width:480px){.handsign-guide-button{right:9px;bottom:68px;padding-right:8px}.handsign-guide-button b{display:none}.handsign-guide{right:8px;bottom:108px;width:calc(100% - 16px)}}.gesture-studio.is-live{position:fixed;inset:0;width:100vw;height:100vh;min-height:0;padding:0;border-radius:0;box-shadow:none;z-index:60;background:#000;overflow:hidden}.gesture-studio.is-live .gesture-heading,.gesture-studio.is-live .gesture-howto,.gesture-studio.is-live .gesture-fallback,.gesture-studio.is-live .gesture-error{display:none}.camera-stage.is-live{position:fixed;inset:0;width:100vw;height:100vh;min-height:0;aspect-ratio:auto;border-radius:0;border:none;z-index:61;background:#000}.camera-stage.is-live .camera-close{position:absolute;right:14px;top:14px;z-index:62}.handsign-guide-button{position:absolute;right:14px;bottom:70px;z-index:62;display:flex;align-items:center;gap:7px;border:1px solid #ffffff38;border-radius:22px;background:#102a22dc;color:#f4f1df;padding:7px 11px 7px 8px;box-shadow:0 5px 18px #071b1466}.handsign-guide-button>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e6ca78;color:#17382d;font-size:16px}.handsign-guide-button b{font-size:8px;letter-spacing:.6px}.handsign-guide-button[aria-expanded=true]{border-color:#e6ca78}
