:root{--bg:#f4efe7;--bg-elevated:#fffbf5d1;--bg-strong:#fffdfa;--text:#1d1b18;--text-muted:#5d554c;--line:#56422729;--shadow:0 24px 60px #46290d1f;--accent:#ff8a3d;--accent-strong:#ff5f2e;--accent-soft:#ff8a3d29;--accent-cool:#3e8dff;--panel-gradient:linear-gradient(135deg, #ffffffb8, #fff2e094);--white-key-width:24px;--white-key-height:190px;--black-key-width:15px;--black-key-height:118px;--hero-glow:radial-gradient(circle at top left, #ff974f47, transparent 34%);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--hero-glow), linear-gradient(180deg, #fbf6ee 0%, #f1e7d9 100%);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Aptos,Trebuchet MS,Segoe UI Variable,sans-serif;font-weight:400;line-height:1.4}:root[data-theme=dark]{--bg:#111315;--bg-elevated:#171b1fd6;--bg-strong:#191d22;--text:#f5efe7;--text-muted:#b5aa9a;--line:#fff1de1f;--shadow:0 28px 70px #00000061;--accent:#ff9850;--accent-strong:#ffcf6d;--accent-soft:#ff9b5024;--accent-cool:#7fb5ff;--panel-gradient:linear-gradient(135deg, #21262bd6, #14171be6);--hero-glow:radial-gradient(circle at top left, #ff814029, transparent 32%);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--hero-glow), linear-gradient(180deg, #0c0f12 0%, #171b1f 100%)}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}#app{min-height:100vh}.app-shell{width:min(1360px,100vw - 32px);margin:0 auto;padding:32px 0 42px}.home-stage{position:relative}.home-app-shell{z-index:1;position:relative}.home-score-sidebar{display:none}@media (width>=1880px){.home-score-sidebar{z-index:10;align-items:stretch;width:220px;max-height:calc(100vh - 44px);display:flex;position:fixed;top:22px;left:max(18px,50vw - 916px)}.home-score-sidebar-content{border:1px solid var(--line);background:var(--panel-gradient);width:100%;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:26px;flex-direction:column;gap:14px;padding:18px 16px 16px;display:flex;overflow:hidden}.home-score-sidebar-header{justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding-left:52px;display:flex}.home-score-sidebar-heading{min-width:0;color:var(--text-muted);font-size:.96rem;font-weight:700;line-height:1}.home-score-sidebar-count{min-width:28px;min-height:28px;color:var(--text);background:#ffffffbd;border:1px solid #785f3a29;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0 8px;font-size:.88rem;display:inline-flex}.home-score-sidebar-list{gap:10px;padding-right:2px;display:grid;overflow:auto}.home-score-library-empty{color:var(--text-muted);margin:0;padding:10px 4px 2px;font-size:.9rem;line-height:1.5}.home-score-library-item{width:100%;color:inherit;text-align:left;box-shadow:none;background:#ffffff8a;border:1px solid #785f3a1f;border-radius:18px;align-items:flex-start;gap:10px;padding:12px 12px 12px 14px;display:flex}.home-score-library-item.is-active{background:linear-gradient(#fff6ecf5,#ffeed9eb);border-color:#ff8a3d61;box-shadow:0 12px 24px #ff8a3d1f}.home-score-library-item-main{flex:1;gap:4px;min-width:0;display:grid}.home-score-library-item strong{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.96rem;line-height:1.25;overflow:hidden}.home-score-library-item span{color:var(--text-muted);font-size:.8rem;line-height:1.25}.home-score-library-delete{color:#b04848d1;cursor:pointer;background:#ffffffb8;border:1px solid #b0484824;border-radius:999px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:1.02rem;line-height:1;display:inline-flex}.home-score-sidebar-toggle{border:1px solid var(--line);z-index:2;background:#ffffffeb;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:36px;height:36px;padding:0;transition:background .14s,border-color .14s,box-shadow .14s,transform .14s;display:inline-flex;position:absolute;top:18px;left:14px;box-shadow:0 12px 24px #140e0a1f}.home-score-sidebar-toggle span{background:#3a2d24e0;border-radius:999px;width:15px;height:2px;transition:transform .14s,opacity .14s;display:block}.home-score-sidebar-toggle:hover,.home-score-sidebar-toggle:focus-visible{background:#fffaf4fa;border-color:#ff8a3d66;transform:translateY(-1px);box-shadow:0 16px 32px #140e0a29}.home-score-sidebar.is-collapsed{width:42px}.home-score-sidebar.is-collapsed .home-score-sidebar-content{opacity:0;pointer-events:none}.home-score-sidebar.is-collapsed .home-score-sidebar-toggle{box-shadow:0 12px 24px #140e0a1a}}.hero-panel,.panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--panel-gradient);border:1px solid var(--line);box-shadow:var(--shadow)}.hero-panel{border-radius:30px;justify-content:space-between;align-items:flex-start;gap:24px;padding:28px;display:flex;position:relative;overflow:hidden}.hero-panel:after{content:"";background:radial-gradient(circle, var(--accent-soft), transparent 66%);pointer-events:none;width:320px;height:320px;position:absolute;inset:auto -80px -120px auto}.hero-copy{z-index:1;max-width:760px;position:relative}.eyebrow,.section-label,.hint{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:.76rem}.hero-panel h1,.panel h2{margin:0;font-family:Georgia,Times New Roman,serif;line-height:1.02}.hero-panel h1{white-space:nowrap;max-width:none;margin-top:8px;font-size:clamp(1.6rem,3vw,2.8rem)}.home-title{font-size:clamp(1rem,1.8vw,1.55rem)!important}.home-header{align-items:center;min-height:52px;padding:8px 18px}.home-header .hero-copy{max-width:none}.home-header .hero-actions{gap:8px}.home-header .button{min-height:30px;padding:.42rem .8rem}.hero-text{max-width:none;color:var(--text-muted);white-space:nowrap;margin-top:12px;font-size:.92rem}.hero-actions{z-index:1;flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex;position:relative}.button{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%);color:#17120f;border:1px solid #0000;border-radius:999px;min-height:48px;padding:.82rem 1.15rem;font-weight:700;transition:transform .14s,box-shadow .14s,filter .14s;box-shadow:0 10px 24px #ff8a3d3d}.button:hover,.button:focus-visible{filter:brightness(1.04);transform:translateY(-1px)}.button.secondary{background:var(--bg-strong);color:var(--text);border-color:var(--line);box-shadow:none}.button.accent{min-width:180px}.panel{border-radius:28px;margin-top:18px;padding:24px}.home-layout{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:18px;display:grid}.home-main-column,.home-side-column{min-width:0}.home-main-column .panel:first-child,.home-side-column .panel:first-child{margin-top:18px}.home-side-column .controls-panel{position:sticky;top:18px}.panel-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.controls-grid{grid-template-columns:minmax(320px,1.35fr) minmax(220px,.95fr) minmax(220px,.95fr) minmax(150px,.52fr);gap:14px;display:grid}.home-side-column .controls-panel .panel-header{align-items:flex-start}.home-side-column .controls-panel .button.accent{width:100%;min-width:0}.home-side-column .controls-grid{grid-template-columns:1fr;width:100%;margin-left:0}.control-bpm,.control-accent{grid-column:auto}.control{background:var(--bg-elevated);border:1px solid var(--line);border-radius:22px;flex-direction:column;gap:10px;padding:16px;display:flex}.control span{color:var(--text-muted)}.control strong{font-size:1.8rem}.bpm-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.bpm-presets{gap:8px;display:flex}.preset-chip{border:1px solid var(--line);background:var(--bg-strong);min-width:48px;min-height:36px;color:var(--text);box-shadow:none;border-radius:999px;padding:0 12px;font-weight:700}.preset-chip:hover,.preset-chip:focus-visible{border-color:var(--accent)}.control input[type=range]{width:100%;accent-color:var(--accent)}.control select{background:var(--bg-strong);min-height:48px;color:var(--text);border:1px solid var(--line);border-radius:14px;padding:0 12px}.checkbox-control{justify-content:flex-start;align-items:flex-start}.checkbox-control input{width:22px;height:22px;accent-color:var(--accent)}.beat-strip-wrap{background:linear-gradient(#3e8dff14,#0000);border:1px solid #3e8dff2e;border-radius:24px;margin-top:20px;padding:20px}.home-side-column .beat-strip-wrap{width:100%;margin-left:0}.home-side-column .beat-dot{width:42px}.beat-strip{flex-wrap:wrap;gap:12px;display:flex}.beat-dot{aspect-ratio:1;border:1px solid var(--line);width:52px;color:var(--text-muted);background:#fff6;border-radius:999px;place-items:center;font-weight:700;transition:transform .14s,background .14s,color .14s,box-shadow .14s;display:grid;transform:scale(.94)}.beat-dot.is-accent{border-color:#ff8a3d59}.beat-dot.is-active{color:#1b140f;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%);transform:scale(1);box-shadow:0 12px 24px #ff8a3d42}.status-panel{justify-content:space-between;align-items:center;gap:14px;padding:12px 18px;display:flex}.status-panel>*{min-width:0}.status-panel>:first-child{flex:0 auto}.status-side{flex-direction:column;flex:0 720px;align-items:flex-end;gap:8px;min-width:0;margin-left:auto;display:flex}.device-current{color:var(--text-muted);white-space:nowrap;margin:4px 0 0;font-size:.86rem}.device-picker{flex-direction:column;gap:6px;width:100%;max-width:520px;display:flex}.device-picker span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.82rem}.device-picker select{background:var(--bg-strong);min-height:40px;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:0 12px}.status-copy{width:auto;max-width:min(720px,100%);color:var(--text-muted);text-align:right;white-space:nowrap;margin:0}.status-copy:empty{display:none}.score-copy{color:var(--text-muted);margin:0 0 16px}.score-status{border:1px solid var(--line);background:var(--bg-elevated);border-radius:16px;margin:0 0 14px;padding:12px 14px}.score-status[data-status=error]{color:#b03e3e;border-color:#d2585847}.score-status[data-status=success]{color:#2e7d4f;border-color:#489b5e47}.app-toast{z-index:10000;border:1px solid var(--line);color:#2d231b;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:0;background:#fff8eff5;border-radius:14px;min-width:min(320px,100vw - 32px);max-width:min(680px,100vw - 32px);padding:12px 16px;transition:opacity .18s,transform .18s;position:fixed;top:18px;left:50%;transform:translate(-50%,-12px);box-shadow:0 18px 42px #140e0a29}.app-toast.is-visible{opacity:1;transform:translate(-50%)}.app-toast[data-status=success]{color:#2e7d4f;border-color:#489b5e47}.app-toast[data-status=error]{color:#b03e3e;border-color:#d2585847}.score-actions{flex-wrap:wrap;gap:10px;display:flex}.score-display{border:1px solid var(--line);background:linear-gradient(#fffdf9fa,#f6ede2f5);border-radius:24px;padding:18px;overflow-x:auto}:root[data-theme=dark] .score-display{background:linear-gradient(#fffaf4fa,#f1e4d4f2)}.score-svg{width:max(100%,960px);height:auto;display:block}.score-svg-title{fill:#2a2119;font:700 20px Aptos,Segoe UI Variable,sans-serif}.score-svg-subtitle{letter-spacing:.08em;text-transform:uppercase;fill:#766658;font:500 11px Aptos,Segoe UI Variable,sans-serif}.score-staff-line,.score-ledger,.score-bar-line,.score-stem,.score-brace,.score-rest-mark,.score-note-head{stroke:#1f1914e0;stroke-width:1.5px;fill:none}.score-rest-block,.score-note-head.filled,.score-rest-mark,.score-augmentation-dot{fill:#1f1914e0}.score-clef,.score-time-number{fill:#1f1914eb}.score-grand-brace{fill:none;stroke:#1f1914c7;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.score-clef{dominant-baseline:alphabetic;font:400 60px Segoe UI Symbol,Noto Music,Bravura Text,Arial Unicode MS,serif}.score-clef-treble{font-size:68px}.score-clef-bass{font-size:62px}.score-time-number{text-anchor:middle;font:600 21px Georgia,Times New Roman,serif}.score-tie{fill:none;stroke:#1f1914e0;stroke-width:1.1px;stroke-linecap:round;pointer-events:visibleStroke}.composer-rendered-tie{cursor:pointer}.score-flag{stroke:#1f1914e0;stroke-width:1.5px;fill:none}.score-editor{margin-top:18px}.score-editor-grid{gap:16px;display:grid}.score-editor-card,.score-measure-card,.score-hand-card{border:1px solid var(--line);background:var(--bg-elevated);border-radius:24px}.score-editor-card{padding:18px}.score-editor-card h3,.score-measure-card h4{margin:0}.score-meta-grid,.score-hand-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.score-field{flex-direction:column;gap:8px;display:flex}.score-field span,.score-check-field span{color:var(--text-muted);font-size:.82rem}.score-field input,.score-field select{border:1px solid var(--line);background:var(--bg-strong);min-height:44px;color:var(--text);border-radius:14px;padding:0 12px}.score-editor-toolbar,.score-measure-header,.score-hand-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.score-measures{gap:16px;margin-top:16px;display:grid}.score-measure-card{padding:16px}.score-hand-card{padding:14px}.score-note-list{gap:10px;margin-top:12px;display:grid}.score-note-row{border:1px solid var(--line);background:#ffffff4d;border-radius:18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 140px auto auto;align-items:end;gap:10px;padding:12px;display:grid}.score-field.compact input,.score-field.compact select{min-height:40px}.score-check-field{align-items:center;gap:8px;min-height:40px;display:flex}.score-check-field input{width:18px;height:18px;accent-color:var(--accent)}.score-note-actions{gap:6px;display:flex}.preset-chip.danger{color:#a03e3e;border-color:#d2585847}.score-empty{color:var(--text-muted);margin:0}.piano-header{grid-template-columns:auto minmax(260px,1fr) auto;align-items:end;gap:16px;margin-bottom:14px;display:grid}.metronome-mini-bar{background:var(--bg-elevated);border:1px solid var(--line);border-radius:16px;align-items:center;gap:12px;min-height:48px;margin-bottom:2px;padding:8px 12px;display:flex}.metronome-mini-label{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;flex:none;font-size:.8rem;font-weight:700}.metronome-mini-beats{flex-wrap:nowrap;flex:none;align-items:center;gap:8px;display:flex}.metronome-mini-beats .beat-dot{width:18px;min-width:18px;box-shadow:none;transform:none}.metronome-mini-beats .beat-dot span{font-size:0}.metronome-mini-toggle{white-space:nowrap;margin-left:auto}.metronome-mini-settings{flex:none;position:relative}.metronome-icon-button{border:1px solid var(--line);background:var(--bg-strong);width:36px;height:36px;color:var(--text);box-shadow:none;border-radius:999px;place-items:center;font-size:1.05rem;display:grid}.metronome-icon-button:hover,.metronome-icon-button:focus-visible{border-color:var(--accent)}.metronome-popover{z-index:20;background:var(--panel-gradient);border:1px solid var(--line);width:min(340px,100vw - 48px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:18px;gap:12px;padding:14px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.metronome-popover[hidden]{display:none}.metronome-popover-field,.metronome-popover-check{flex-direction:column;gap:8px;display:flex}.metronome-popover-field-bpm{position:relative}.metronome-popover-field>span,.metronome-popover-check>span{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.8rem}.metronome-popover-range{align-items:center;gap:10px;display:flex;position:relative}.metronome-popover-range input[type=range]{accent-color:var(--accent);flex:1}.metronome-popover-range strong{text-align:right;min-width:34px}.metronome-bpm-guides{pointer-events:none;height:0;margin:0;position:absolute;top:24px;left:0;right:44px}.metronome-bpm-guide{box-shadow:none;pointer-events:auto;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:0;transform:translate(-50%,-50%)}.metronome-bpm-guide[data-bpm-quick="60"]{left:calc(10% + 9.6px)}.metronome-bpm-guide[data-bpm-quick="80"]{left:calc(20% + 7.2px)}.metronome-bpm-guide-dot{background:#ff8a3dd1;border-radius:999px;width:6px;height:6px}.metronome-bpm-guide:hover,.metronome-bpm-guide:focus-visible{transform:translate(-50%,-50%)scale(1.08)}.metronome-popover-field select{background:var(--bg-strong);min-height:40px;color:var(--text);border:1px solid var(--line);border-radius:12px;padding:0 12px}.metronome-popover-check{flex-direction:row;justify-content:space-between;align-items:center}.metronome-popover-check input{width:18px;height:18px;accent-color:var(--accent)}.piano-tools{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:16px;display:flex}.piano-volume-control,.piano-sound-picker{flex-direction:column;gap:8px;min-width:180px;display:flex}.piano-volume-control{min-width:280px}.piano-volume-control span,.piano-sound-picker span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.82rem}.piano-volume-row{align-items:center;gap:12px;min-height:46px;display:flex}.piano-volume-row input[type=range]{width:min(260px,32vw);accent-color:var(--accent)}.piano-volume-row strong{text-align:right;min-width:52px;font-size:1rem}.piano-volume-reset{border:1px solid var(--line);background:var(--bg-strong);min-width:62px;min-height:34px;color:var(--text);box-shadow:none;border-radius:999px;padding:0 12px;font-weight:700}.piano-volume-reset:hover,.piano-volume-reset:focus-visible{border-color:var(--accent)}.piano-sound-picker select{background:var(--bg-strong);min-height:46px;color:var(--text);border:1px solid var(--line);border-radius:14px;padding:0 12px}.piano-loading{background:var(--bg-elevated);border:1px solid var(--line);border-radius:18px;margin-top:6px;padding:14px 16px}.piano-loading-copy{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.piano-loading-copy strong{font-size:.98rem}.piano-loading-copy span{color:var(--text-muted);font-size:.9rem}.piano-loading-bar{border:1px solid var(--line);background:#ffffff59;border-radius:999px;width:100%;height:10px;overflow:hidden}.piano-loading-bar-fill{border-radius:inherit;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-strong) 100%);width:0;height:100%;transition:width .18s}.piano-scroll{padding-bottom:12px;overflow-x:auto}.piano{width:calc(var(--white-key-width) * 52);min-width:calc(var(--white-key-width) * 52);height:calc(var(--white-key-height) + 10px);margin-top:8px;position:relative}.white-keys{display:flex;position:absolute;inset:0 0 auto}.black-keys{pointer-events:none;position:absolute;inset:0}.piano-key{border:0;padding:0;transition:transform 90ms,background 90ms,box-shadow 90ms,filter 90ms;position:relative}.piano-key:focus-visible{outline:2px solid var(--accent-cool);outline-offset:2px}.white-key{width:var(--white-key-width);height:var(--white-key-height);background:linear-gradient(#fff 0%,#efe2cc 100%);border:1px solid #1f19141f;border-right-width:.5px;border-radius:0 0 14px 14px;box-shadow:inset 0 -12px 18px #bc97642e}:root[data-theme=dark] .white-key{background:linear-gradient(#fff3df 0%,#d9c3a4 100%)}.white-key.is-active{background:linear-gradient(#ffd2b0 0%,#ff9d5a 100%);transform:translateY(4px)}.key-sheen{border-radius:inherit;pointer-events:none;background:linear-gradient(#ffffffd6,#0000 38%);position:absolute;inset:0}.black-key{left:calc(var(--white-key-width) * var(--black-anchor) - (var(--black-key-width) / 2));width:var(--black-key-width);height:var(--black-key-height);pointer-events:auto;background:linear-gradient(#3e4149 0%,#111216 100%);border:1px solid #ffffff0a;border-radius:0 0 10px 10px;position:absolute;box-shadow:0 10px 18px #0000004d,inset 0 -10px 14px #ffffff0f}.black-key.is-active{background:linear-gradient(#7cb1ff 0%,#2958cf 100%);transform:translateY(3px)}.key-label{color:#16120fa6;white-space:nowrap;font-size:.63rem;font-weight:700;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.black-key .key-label{color:#fff8f0db;bottom:8px}@media (width<=1180px){.home-layout{grid-template-columns:1fr}.home-side-column .controls-panel{position:static}}@media (width<=980px){.app-shell{width:min(100vw - 20px,1360px);padding-top:16px}.composer-shell{width:calc(100vw - 20px)}.hero-panel,.panel{border-radius:24px;padding:18px}.hero-panel h1,.hero-text{white-space:normal}.hero-panel,.panel-header,.status-panel{flex-direction:column;align-items:stretch}.status-side{align-items:stretch;min-width:0}.status-copy{text-align:left}.score-meta-grid,.score-hand-columns{grid-template-columns:1fr}.score-note-row{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-actions{justify-content:flex-start}.piano-tools{justify-content:space-between;width:100%}.piano-header{grid-template-columns:1fr;align-items:stretch}.metronome-mini-bar{flex-wrap:wrap}.metronome-mini-toggle{margin-left:0}.piano-volume-control,.piano-sound-picker{min-width:0}.piano-volume-row input[type=range]{width:100%}.controls-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.control-bpm,.control-accent{grid-column:span 1}}@media (width<=640px){:root{--white-key-width:20px;--white-key-height:160px;--black-key-width:13px;--black-key-height:98px}.controls-grid{grid-template-columns:1fr}.button{width:100%}.piano-tools,.piano-volume-row,.metronome-mini-bar{flex-direction:column;align-items:stretch}.metronome-mini-beats{justify-content:flex-start}.metronome-popover{width:min(320px,100vw - 40px);left:0;right:auto}.score-note-row,.score-note-actions,.score-actions,.score-editor-toolbar,.score-measure-header,.score-hand-header{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.piano-loading-copy{flex-direction:column;align-items:flex-start}.piano-volume-control{min-width:0}.piano-volume-row strong{text-align:left}.piano-volume-reset{width:100%}.beat-dot{width:44px}}.button:disabled,.preset-chip:disabled{opacity:.56;cursor:not-allowed;filter:none;transform:none}.score-preview-display,.composer-score-display{min-height:320px}.score-preview-empty{text-align:center;min-height:280px;color:var(--text-muted);border-radius:20px;place-items:center;padding:24px;display:grid}.score-preview-empty strong{color:var(--text);margin-bottom:8px;font-size:1.05rem;display:block}.score-preview-empty p{margin:0}.composer-shell{width:calc(100vw - 32px);padding-bottom:48px}.composer-header{justify-content:space-between;align-items:center;min-height:88px;padding:14px 22px}.composer-header-title{color:var(--text);margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.15rem;font-weight:700;line-height:1.1}.composer-header .hero-actions{gap:10px}.composer-header .button{min-height:40px;padding:.62rem 1rem}.composer-layout{grid-template-columns:minmax(0,1.15fr) minmax(360px,.95fr);align-items:start;gap:18px;margin-top:18px;display:grid}.composer-preview-panel,.composer-editor-panel{margin-top:0}.composer-score-display{gap:16px;display:grid}.composer-preview-sticky{position:sticky;top:20px}.composer-preview-summary{padding:2px 2px 0}.composer-preview-summary h3{margin:0;font-size:1.08rem}.composer-preview-summary p{color:var(--text-muted);margin:8px 0 0;font-size:.92rem}.composer-preview-measures{gap:14px;display:grid}.score-measure-preview-card{border:1px solid var(--line);background:#ffffff52;border-radius:22px;padding:12px;transition:border-color .14s,box-shadow .14s,transform .14s}.score-measure-preview-card.is-active{border-color:#ff8a3d80;transform:translateY(-1px);box-shadow:0 12px 24px #ff8a3d24}.score-measure-card.is-active{border-color:#ff8a3d80;box-shadow:0 12px 24px #ff8a3d14}.score-measure-svg{width:100%;min-width:0}.composer-panel-header{margin-bottom:16px}.composer-panel-header h2{font-size:1rem;line-height:1.15}.composer-editor-grid{gap:18px}.composer-editor-panel .score-editor-card:first-child{margin-bottom:18px}@media (width<=1100px){.composer-layout{grid-template-columns:1fr}.composer-preview-sticky{position:static}}.composer-score-editor{margin-top:0}.composer-controls{gap:16px;display:grid}.composer-settings-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.composer-tool-card{gap:14px;display:grid}.composer-tool-card[hidden],.composer-tool-card-placeholder[hidden]{display:none}.composer-tool-header{align-items:baseline}.composer-grid-hint{color:var(--text-muted);font-size:.86rem}.composer-tool-grid{flex-wrap:wrap;gap:10px;display:flex}.composer-tool{border:1px solid var(--line);background:var(--bg-strong);min-width:92px;min-height:72px;color:var(--text);box-shadow:none;border-radius:18px;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:10px 12px;display:flex}.composer-tool strong{font-size:1.5rem;line-height:1}.composer-tool span{color:var(--text-muted);font-size:.82rem}.composer-tool.is-active{background:linear-gradient(#fff5e9f5,#ffecd5eb);border-color:#ff8a3d8c;box-shadow:0 10px 24px #ff8a3d24}:root[data-theme=dark] .composer-tool.is-active{background:linear-gradient(#402c1ae6,#2d1f12f0)}.composer-help-copy{color:var(--text-muted);margin:0;font-size:.9rem}.composer-score-display{min-height:360px;margin-top:18px}.composer-canvas-meta{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.composer-canvas-meta strong{color:#76624cb8;font-size:1.05rem;font-weight:700}.composer-canvas-meta span{color:#76624cb8;font-size:.88rem}.composer-canvas-scroll{padding-bottom:6px;overflow-x:auto}.composer-canvas-board{grid-template-columns:repeat(auto-fill,260px);justify-content:start;gap:16px;margin-top:16px;display:grid}.composer-measure{border:1px solid #0000;border-radius:22px;width:260px;height:286px;transition:border-color .14s,box-shadow .14s,transform .14s;position:relative}.composer-measure.is-drop-target,.composer-measure:hover{border-color:#ff8a3d80;box-shadow:0 12px 28px #ff8a3d1f}.composer-measure-svg{width:260px;height:286px;display:block}.composer-grid-line{stroke:#1f19141f;stroke-width:1px}.composer-grid-line-beat{stroke:#1f19142e}@media (width<=980px){.composer-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.composer-settings-grid{grid-template-columns:1fr}.composer-toolbox-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.composer-tool{min-width:0}}.composer-shell{width:min(1360px,100vw - 32px);margin:0 auto;padding:20px 0 48px}.composer-workspace-panel{margin-top:18px}.composer-score-display{min-height:360px;margin-top:18px;padding:18px;overflow:auto visible}.composer-canvas-sheet{background:linear-gradient(#fffcf7fa,#f4eadaf5);border:1px solid #785f3a1f;border-radius:26px;margin-top:16px;padding:18px 16px;overflow:auto visible}:root[data-theme=dark] .composer-canvas-sheet{background:linear-gradient(#fff8effa,#f0e3d2f2)}.composer-canvas-toolbox{background:#ffffff6b;border:1px solid #785f3a1f;border-radius:20px;gap:12px;margin-bottom:16px;padding:14px 14px 16px;display:grid}.composer-canvas-toolbox-title{flex:none;align-items:center;margin-right:10px;display:inline-flex}.composer-canvas-toolbox-title strong{color:#2d231b}.composer-canvas-toolbox-title span{color:#4e3c27cc;font-size:.9rem}.composer-toolbox-rows{flex-direction:column;gap:12px;display:flex}.composer-toolbox-row{grid-template-columns:72px repeat(8,44px) repeat(3,46px);align-items:center;gap:0 18px;display:grid}.composer-toolbox-row-dotted{padding-left:0}.composer-canvas-toolbox .composer-tool{width:44px;min-width:0;height:44px;min-height:0;box-shadow:none;color:#32271ab8;background:0 0;border:0;padding:4px;font-size:2.1rem;line-height:1;transition:color .14s,transform .14s,filter .14s;position:relative}.composer-canvas-toolbox .composer-tool:hover,.composer-canvas-toolbox .composer-tool:focus-visible{color:#281e13f5;transform:translateY(-1px)}.composer-canvas-toolbox .composer-tool.is-active{color:#5d3518;border-radius:0;box-shadow:none!important;filter:none!important;background:0 0!important;border:0!important}:root[data-theme=dark] .composer-canvas-toolbox .composer-tool.is-active{box-shadow:none!important;filter:none!important;background:0 0!important;border:0!important}.composer-canvas-toolbox .composer-tool-action{color:#3a2b1be0;background:#ffffffad;border:1px solid #785f3a33;border-radius:999px;justify-content:center;align-items:center;width:40px;height:40px;padding:0;font-size:1.5rem;font-weight:700;line-height:1;display:inline-flex}.composer-canvas-toolbox .composer-tool-action:hover,.composer-canvas-toolbox .composer-tool-action:focus-visible{color:#281e13f5;background:#ffffffeb}.composer-canvas-toolbox .composer-tool-action.is-active{color:#8f4d12;background:#fff2e3fa;border-color:#cb711c47}.composer-canvas-toolbox .composer-tool:after{content:attr(data-tooltip);color:#fff8f1;white-space:nowrap;opacity:0;pointer-events:none;background:#221b15f0;border-radius:10px;padding:6px 10px;font-size:.82rem;line-height:1.2;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)translateY(4px)}.composer-canvas-toolbox .composer-tool:hover:after,.composer-canvas-toolbox .composer-tool:focus-visible:after{opacity:1;transform:translate(-50%)translateY(0)}.composer-tool-clear{color:#b04848bf;justify-content:center;align-items:center;font-size:1.34rem;line-height:1;display:inline-flex}.composer-tool-clear:hover,.composer-tool-clear:focus-visible{color:#b04848fa}.composer-toolbox-spacer{width:100%;height:1px;display:block}.composer-flow-row{border:1px solid #0000;border-radius:16px;width:100%;max-width:none;transition:border-color .14s,box-shadow .14s;position:relative;overflow:visible}.composer-flow-row+.composer-flow-row{margin-top:14px}.composer-flow-row.is-drop-target{border-color:#ff8a3d73;box-shadow:0 10px 24px #ff8a3d1f}.composer-flow-row-svg{width:100%;height:auto;display:block}.composer-preview-layer{pointer-events:none;position:absolute;inset:0}.composer-preview-svg{width:100%;height:100%;display:block;overflow:visible}.composer-subdivision-layer{pointer-events:none;opacity:1;position:absolute;inset:0}.composer-subdivision-dot{background:0 0;border:1.5px dashed #787e8ad9;border-radius:999px;width:10px;height:10px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #ffffff2e}.composer-note-layer{pointer-events:none;position:absolute;inset:0}.composer-note-handle{width:30px;height:30px;box-shadow:none;pointer-events:auto;cursor:grab;background:0 0;border:1px solid #0000;border-radius:999px;position:absolute;transform:translate(-50%,-50%)}.composer-note-handle:hover,.composer-note-handle:focus-visible{background:#3e8dff14;border-color:#3e8dff61}.composer-rendered-event{pointer-events:visiblePainted;cursor:pointer;transition:opacity 90ms}.composer-rendered-event.is-tie-selected{opacity:.76;filter:drop-shadow(0 0 8px #ff8a3d38)}.composer-rendered-event.is-hidden{opacity:0}.composer-preview-layer .composer-rendered-event{opacity:.72}.composer-drag-ghost{z-index:9999;pointer-events:none;color:#2d231b;box-shadow:none;text-shadow:0 2px 10px #ffffff73;will-change:transform;background:0 0;border:0;padding:0;display:block;position:fixed;top:0;left:0}.composer-drag-glyph{font-size:2.8rem;font-weight:600;line-height:1;display:block}.composer-drag-note{width:56px;height:56px;display:block;overflow:visible}.composer-drag-notehead,.composer-drag-stem,.composer-drag-flag{stroke:#2d231b;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;fill:none}.composer-drag-notehead.is-filled,.composer-drag-dot{fill:#2d231b}@media (width<=980px){.composer-shell{width:min(100vw - 20px,1360px);padding:16px 0 40px}}
