body{background:#f9f0df;color:#65533f;background-image:radial-gradient(#d7c6a655 1px,transparent 1px);background-size:22px 22px}main{max-width:1060px;padding:22px max(22px,env(safe-area-inset-right)) 24px max(22px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:16px}header{order:0;position:relative;min-height:105px;padding-right:220px}header:after{content:'';position:absolute;right:70px;top:-20px;width:180px;height:135px;background:url(studio.svg) center/contain no-repeat;pointer-events:none}h1{font-size:32px;color:#68513f;letter-spacing:2px}small{font-size:11px;letter-spacing:3px;color:#8e7657}button,select{border:2px solid #d4bea0;background:#fffcf2;color:#66513e;border-radius:14px;padding:10px 14px;min-height:44px;max-width:100%;font-size:14px;box-shadow:0 3px 0 #e1d0b5}button:hover{background:#fff4db}button:active{transform:translateY(2px);box-shadow:none}button:disabled{opacity:.45;transform:none}button:focus-visible,select:focus-visible{outline:3px solid #69a794;outline-offset:3px}.hero{order:1;margin:0;padding:20px 24px;background:#fffdf3;border:2px solid #d9c7a7;border-radius:24px;box-shadow:0 5px 0 #e4d5ba;position:relative}.hero h2{font-size:20px;color:#8b7354;margin:0 0 14px}.hero label{font-size:13px}.hero select{margin-left:8px;background:#e8f2e8;border-color:#aec9b1;color:#486e59}#status{font-size:14px;margin:12px 0 8px;min-height:22px;color:#68533d}#notes{display:flex;flex-wrap:wrap;gap:6px;letter-spacing:0;font-size:20px;line-height:1.4;min-height:35px;color:#7d725a}#notes span,#notes em{min-width:36px;display:inline-block;text-align:center;background:#f2ebdc;border-radius:9px;padding:4px 7px;font-size:18px;font-weight:650}#notes em{background:#d8eddf;color:#356a52;outline:2px solid #7ca889;box-shadow:0 3px 0 #b4d4bb}progress{margin-top:12px;height:10px;accent-color:#79aa8a}.muted{font-size:12px;color:#88735b;margin-top:5px}.keyboard{order:2;position:relative;background:#c9966f;border:3px solid #a97552;box-shadow:0 7px 0 #946647,inset 0 3px 0 #e5b992;border-radius:21px;padding:12px 14px 19px;gap:6px}.keyboard:before{content:'✦ MOONLIGHT ✦';grid-column:1/-1;text-align:center;font-size:12px;letter-spacing:5px;color:#fff5dd;padding:2px 0 8px}.key{height:216px;border:2px solid #c1a685;border-top:1px solid #e5d2b4;border-radius:6px 6px 13px 13px;background:linear-gradient(90deg,#fffbee,#fffef6 80%,#f2e6ce);box-shadow:0 6px 0 #c7b28c,inset 0 -5px 0 #eadbc0;position:relative;color:#67523d;gap:7px;padding-bottom:18px}.key:before{content:'♪';position:absolute;top:20px;left:50%;transform:translateX(-50%);width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--note-color,#d8e9d8);color:#7a6851;font-size:17px;box-shadow:inset 0 2px 0 #ffffff88}.key b{font-size:23px}.key small{color:#a18b6d;font-size:12px;letter-spacing:0}.key:nth-child(4n+1){--note-color:#f5d79a}.key:nth-child(4n+2){--note-color:#d4e8db}.key:nth-child(4n+3){--note-color:#ecd7e4}.key:nth-child(4n){--note-color:#cce4e9}.key:hover{background:#fff7df}.key.lit{background:linear-gradient(#ecf5cf,#b9d99f);transform:translateY(5px);box-shadow:0 1px 0 #8ea873,inset 0 -3px 0 #a8c78d;color:#41633a}.key.lit:before{content:'♫';background:white;color:#60925b;transform:translate(-50%,-5px)}.controls{order:3;margin:3px 0 0;gap:9px}.controls:last-of-type{order:4}.controls select{flex:1 1 230px;min-width:0}#start,#record{background:#83b7a2;border-color:#65967f;color:#fff;box-shadow:0 3px 0 #56866d;font-weight:650}#demo,#play{background:#f7dfaa;border-color:#d8bc85}#pauseRun,#exitRun,#records{font-size:13px}footer{order:5;font-size:12px;text-align:center;color:#998368;margin:4px 0 0;line-height:1.6}dialog{background:#fffcf0;color:#65533f;border:3px solid #b9a17e;box-shadow:0 9px 0 #6f563225;border-radius:24px}dialog::backdrop{background:#58473277}@media(max-width:600px){main{padding:12px max(12px,env(safe-area-inset-right)) 18px max(12px,env(safe-area-inset-left));gap:12px}header{min-height:70px;padding-right:0}header:after{width:94px;height:76px;top:-5px;right:59px}header h1{font-size:23px;letter-spacing:0}header small{font-size:9px;letter-spacing:1px}header>div{max-width:190px;position:relative;z-index:1}header>button{font-size:12px;padding:7px 10px}.hero{padding:14px;border-radius:18px}.hero h2{font-size:15px;margin-bottom:10px}.hero select{font-size:13px;padding:7px 9px}#status{font-size:12px;margin:9px 0 6px}#notes{gap:5px;font-size:16px}#notes span,#notes em{font-size:15px;min-width:30px;padding:3px 5px}.muted{font-size:11px}.keyboard{padding:7px 7px 13px;gap:3px;border-radius:16px}.keyboard:before{font-size:10px;letter-spacing:3px;padding:3px 0 5px}.key{height:162px;padding-bottom:12px;border-width:1px;border-radius:4px 4px 9px 9px}.key b{font-size:16px}.key small{font-size:10px}.key:before{width:20px;height:20px;font-size:14px;top:16px}.controls{gap:8px}.controls button{padding:8px 10px;font-size:12px;flex:1 1 auto}.controls select{font-size:12px;padding:8px 10px;flex-basis:100%}}@media(max-width:350px){header:after{display:none}.hero h2{font-size:14px}.key b{font-size:13px}.key:before{width:18px;height:18px}.key{height:150px}#notes span,#notes em{font-size:14px;min-width:27px}.hero label{font-size:12px}}@media(orientation:landscape) and (max-height:550px){main{display:grid;grid-template-columns:minmax(190px, .8fr) minmax(0,1.6fr);gap:10px;padding-top:8px}header{grid-column:1/-1;min-height:36px;padding-right:0;order:0}header:after{display:none}header small{display:none}header h1{font-size:20px;margin:0}header>button{padding:6px 12px}.hero{grid-column:1;grid-row:2/5;align-self:start;padding:12px;order:1}.hero h2{display:none}.hero label{display:block;font-size:12px}.hero select{display:block;margin:6px 0 0;width:100%;font-size:12px}#notes{gap:4px}#notes span,#notes em{font-size:14px;min-width:25px;padding:3px 4px}#status{font-size:12px;line-height:1.5}.keyboard{grid-column:2;grid-row:2;order:2;padding:7px 7px 12px;gap:3px}.keyboard:before{font-size:10px;letter-spacing:2px}.key{height:154px;border-width:1px;padding-bottom:12px}.key b{font-size:15px}.key:before{width:20px;height:20px;font-size:14px}.controls{grid-column:2;order:3;gap:7px}.controls button{font-size:12px;padding:7px 9px;flex:1 1 auto}.controls select{font-size:12px;padding:7px 9px;flex-basis:100%}.muted{line-height:1.5}footer{display:none}}@media(prefers-reduced-motion:no-preference){.key{transition:transform .08s,background .1s}.key:before{transition:transform .12s}}
@media(min-width:601px) and (min-height:551px){header{padding-right:0}header:after{right:100px}} progress{appearance:none;border:0;border-radius:8px;overflow:hidden;background:#eee2cc}progress::-webkit-progress-bar{background:#eee2cc;border-radius:8px}progress::-webkit-progress-value{background:#83b7a2;border-radius:8px}
