:root{--color-paper:#faf8f5;--color-paper-edge:#ebe5d9;--color-ink:#121212;--color-ink-soft:#4a4a4a;--color-accent:#121212;--color-brass:#b38e50;--color-gold-wash:#f1ead7;--color-line:#d8d0c1;--color-line-strong:#c4bba8;--color-danger:#8c2f39;--color-success:#2d5a38;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"IBM Plex Mono", "Courier New", monospace;--radius-sm:4px;--radius-md:6px;--radius-lg:12px;--shadow-card:0 4px 6px #1212120d, 0 16px 32px -12px #1212121a;--shadow-paper:0 4px 8px #1212120d, 0 32px 64px -24px #12121240}@media (prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background-color:var(--color-paper-edge);background-image:radial-gradient(var(--color-line) 1px, transparent 1px);color:var(--color-ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-size:20px 20px;flex-direction:column;min-height:100vh;font-size:14px;line-height:1.5;display:flex}a{color:var(--color-accent);text-decoration:none}:focus-visible{outline:2px solid var(--color-brass);outline-offset:2px}[hidden]{display:none!important}#saveIndicator,.save-indicator,#firebaseToast,.toast-message{z-index:9999!important;position:fixed!important;bottom:24px!important;left:50%!important;right:auto!important;transform:translate(-50%)!important}#btnGoCatalog,#btnGoCodexHero{color:#fff!important;background-color:#121212!important;border:1px solid #121212!important}body.dark-theme{--color-paper:#1a1a1a;--color-paper-edge:#121212;--color-ink:#eaeaea;--color-ink-soft:#9e9e9e;--color-line:#333;--color-line-strong:#4a4a4a;--color-gold-wash:#242424;--color-brass:#d4af37;--color-accent:#d4af37;background-color:var(--color-paper-edge)}body.dark-theme .paper-wrap{background:0 0}body.dark-theme .logo-wordmark,body.dark-theme .logo-primary,body.dark-theme .logo-modal{filter:invert(.92)hue-rotate(180deg)brightness(1.2);transition:filter .3s}body.dark-theme #paperWrap svg path,body.dark-theme #paperWrap svg rect,body.dark-theme #paperWrap svg line,body.dark-theme #paperWrap svg text{fill:#eaeaea!important;stroke:#eaeaea!important}body.dark-theme #paperWrap svg text{stroke:none!important}body.dark-theme #paperWrap svg .measure-hit rect{fill:#0000!important;stroke:none!important}body.dark-theme #paperWrap svg .measure-hit.active rect{fill:#d4af3726!important;stroke:var(--color-brass)!important}body.dark-theme #paperWrap h1,body.dark-theme #paperWrap h2,body.dark-theme #paperWrap h3,body.dark-theme #paperWrap p,body.dark-theme #paperWrap .composer,body.dark-theme .score-letterhead h2,body.dark-theme .score-letterhead p,body.dark-theme .score-letterhead span{color:#fff!important}body.dark-theme .player-bar .pl-time,body.dark-theme .player-bar .pl-bpm-label,body.dark-theme .player-bar .pl-bpm-symbol,body.dark-theme .player-bar .pl-bpm-eq,body.dark-theme .pl-btn{color:#eaeaea!important}body.dark-theme .pl-btn svg{fill:#eaeaea!important}body.dark-theme .pl-btn:hover{color:var(--color-brass)!important}body.dark-theme .pl-btn:hover svg{fill:var(--color-brass)!important}body.dark-theme .field-label,body.dark-theme .desk-title,body.dark-theme .check-inline,body.dark-theme .measure-controls-header span{color:#eaeaea!important}body.dark-theme .field-input,body.dark-theme .custom-select .select-selected{color:#fff!important;background-color:#2a2a2a!important;border-color:#4a4a4a!important}body.dark-theme #btnGoCatalog,body.dark-theme #btnGoCodexHero{color:#121212!important;background-color:#eaeaea!important;border:1px solid #eaeaea!important}.measure-hit rect{fill:#0000;cursor:pointer;pointer-events:all}.measure-hit.active rect{fill:#b38e5026}body.is-viewer .measure-hit,body.is-home .measure-hit{pointer-events:none!important}body.is-viewer #paperWrap svg .measure-hit.active rect,body.is-home #paperWrap svg .measure-hit.active rect,body.dark-theme.is-viewer #paperWrap svg .measure-hit.active rect{fill:#0000!important;stroke:none!important;display:none!important}.print-only{display:none}.view{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:40px 28px 64px}body.is-home .view{justify-content:center;align-items:center;padding:0;display:flex}.topbar{background:var(--color-paper);border-bottom:1px solid var(--color-line);z-index:50;justify-content:space-between;align-items:center;padding:14px 28px;transition:transform .3s;display:flex;position:sticky;top:0;box-shadow:0 1px 4px #00000008}.topbar-right{justify-content:flex-end;align-items:center;gap:16px;margin-left:auto;display:flex}.topbar-actions{border-left:1px solid var(--color-line);align-items:center;gap:12px;padding-left:16px;display:flex}body.is-home .topbar{box-shadow:none;background:0 0;border:none;width:100%;position:absolute}body.is-home .brand{opacity:0;pointer-events:none;visibility:hidden}.brand{cursor:pointer;user-select:none;align-items:center;gap:10px;transition:opacity .2s;display:flex}.brand:hover{opacity:.7}.logo-wordmark{object-fit:contain;vertical-align:middle;width:auto;height:32px}.logo-primary{object-fit:contain;width:auto;height:180px;margin:0 auto 20px;display:block}.logo-modal{object-fit:contain;width:auto;height:120px;margin:0 auto 15px;display:block}.btn{font-family:var(--font-body);border-radius:var(--radius-md);border:1px solid var(--color-line-strong);background:var(--color-paper);color:var(--color-ink);cursor:pointer;white-space:nowrap;padding:9px 16px;font-size:13px;font-weight:600;transition:all .15s}.btn:hover{border-color:var(--color-brass);background:var(--color-paper-edge)}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-paper)}.btn-primary:hover{opacity:.9}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--color-gold-wash);border-color:#0000}.btn-ghost-small{background:var(--color-paper-edge);cursor:pointer;border-radius:var(--radius-md);color:var(--color-ink-soft);border:1px solid #0000;padding:8px 12px;font-weight:600;transition:all .15s}.btn-ghost-small:hover{background:var(--color-paper);border-color:var(--color-line-strong);color:var(--color-ink)}.btn-huge{border-radius:var(--radius-lg);border:none;margin-top:24px;padding:16px 40px;font-size:16px}.btn-small{flex:1;padding:7px 10px;font-size:12px}.btn-block{width:100%;margin-top:8px}.btn-danger{color:var(--color-danger);border-color:#8c2f394d}.field-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-soft);margin:12px 0 4px;font-size:10.5px;display:block}.field-input{width:100%;font-family:var(--font-body);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);background:var(--color-paper);color:var(--color-ink);padding:8px 10px;font-size:14px}.field-input[type=file]{padding:5px;font-size:12px}.field-input:focus{border-color:var(--color-brass);box-shadow:0 0 0 2px var(--color-gold-wash);outline:none}.field-input--title{font-family:var(--font-display);font-size:20px;font-weight:600}.field-row{gap:10px;display:flex}.field-row>div{flex:1}.check-inline{color:var(--color-ink-soft);cursor:pointer;align-items:center;gap:7px;margin:10px 0 0;font-size:13px;display:flex}.custom-select{user-select:none;width:100%;font-family:var(--font-body);font-size:14px;position:relative}.select-selected{background:var(--color-paper);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);cursor:pointer;color:var(--color-ink);justify-content:space-between;padding:8px 10px;display:flex}.select-selected:focus{border-color:var(--color-brass);box-shadow:0 0 0 2px var(--color-gold-wash);outline:none}.select-items{background:var(--color-paper);z-index:99;border:1px solid var(--color-line-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-card);max-height:200px;margin-top:4px;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.custom-select.active .select-items{display:block}.select-items div{cursor:pointer;border-bottom:1px solid var(--color-paper-edge);justify-content:space-between;padding:8px 10px;display:flex}.select-items div:hover{background-color:var(--color-gold-wash)}.translucent{opacity:.4;font-size:12px;font-family:var(--font-mono)}.modal-overlay{backdrop-filter:blur(4px);z-index:200;background:#121212a6;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);width:100%;max-width:380px;padding:32px 28px 28px;position:relative}.modal-card--small{text-align:center;max-width:360px;padding:30px 24px}.modal-close{cursor:pointer;color:var(--color-ink-soft);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 8px;font-size:20px;line-height:1;position:absolute;top:14px;right:14px}.modal-close:hover{background:var(--color-gold-wash);color:var(--color-ink)}.custom-toast{color:#f4f0ea;font-family:var(--font-body);opacity:0;z-index:9999;box-shadow:var(--shadow-card);pointer-events:none;background-color:#1a1a1a;border:1px solid #ffffff1a;border-radius:50px;padding:12px 24px;font-size:14px;font-weight:500;transition:all .4s cubic-bezier(.175,.885,.32,1.275);position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px)}.custom-toast.show{opacity:1;transform:translate(-50%)}.custom-toast.toast-error{background-color:var(--color-danger)}.custom-toast.toast-success{background-color:var(--color-success)}.sync-indicator{color:var(--color-ink-soft);opacity:0;pointer-events:none;z-index:9999;align-items:center;gap:8px;font-size:12px;transition:opacity .3s;display:flex;position:fixed;bottom:20px;right:20px}.sync-indicator.is-visible{opacity:1}.sync-indicator .dot{background:var(--color-brass);border-radius:50%;width:8px;height:8px}.sync-indicator.is-syncing .dot{animation:1s infinite alternate pulse}.maintenance-banner{background:var(--color-brass);color:#1a1a1a;text-align:center;font-family:var(--font-body);z-index:10000;padding:10px 20px;font-size:14px;font-weight:600;position:relative}.home-hero{text-align:center;border-radius:var(--radius-lg);max-width:800px;box-shadow:var(--shadow-paper);border:1px solid var(--color-line);z-index:2;backdrop-filter:blur(4px);background:#faf8f5f2;padding:60px 40px;position:relative}body.dark-theme .home-hero{background:#1e1e1ef2}.home-hero h1{font-family:var(--font-display);color:var(--color-brass);margin:0 0 20px;font-size:32px;font-style:italic;font-weight:600}.home-hero .hero-sub{color:var(--color-ink-soft);max-width:600px;margin:0 auto 32px;font-size:18px;line-height:1.6}.hero-actions{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.catalog-header{flex-direction:column;gap:20px;margin-bottom:32px;display:flex}.catalog-header h2{font-family:var(--font-display);color:var(--color-ink);margin:0;font-size:40px;font-weight:700}.catalog-toolbar{background:var(--color-paper);border-radius:var(--radius-md);border:1px solid var(--color-line);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:center;gap:16px;padding:16px 24px;display:flex}.search-input{flex:3;min-width:250px;padding:10px 16px;font-size:15px}.sort-select{cursor:pointer;flex:1.5;min-width:200px;padding:10px 12px;font-size:14px}.catalog-filters{background:var(--color-gold-wash);border-radius:var(--radius-md);border:1px solid var(--color-line-strong);flex-wrap:wrap;align-items:flex-end;gap:24px;margin-top:-10px;padding:20px 24px;display:flex}.filter-group{flex-direction:column;flex:1;min-width:150px;display:flex}.library-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;display:grid}.library-empty{background:var(--color-paper);color:var(--color-ink-soft);text-align:center;border:2px dashed var(--color-line-strong);border-radius:var(--radius-lg);margin-top:20px;padding:80px 20px}.library-empty h3{font-family:var(--font-display);color:var(--color-ink);margin-top:0;margin-bottom:8px;font-size:28px}.score-card{background:var(--color-paper);border:1px solid var(--color-line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);flex-direction:column;min-height:200px;padding:24px;transition:transform .15s,box-shadow .15s;display:flex;position:relative}.score-card:hover{border-color:var(--color-brass);transform:translateY(-4px);box-shadow:0 20px 40px -16px #12121240}.score-card .card-eyebrow{font-family:var(--font-mono);color:var(--color-brass);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.score-card h3{font-family:var(--font-display);margin:8px 0 4px;font-size:26px;font-weight:700;line-height:1.2}.score-card .composer{color:var(--color-ink-soft);font-size:15px;font-style:italic}.score-card .meta{color:var(--color-ink-soft);justify-content:space-between;align-items:center;padding-top:16px;font-size:12px;display:flex}.card-actions-row{border-top:1px dashed var(--color-line);gap:8px;margin-top:auto;padding-top:16px;display:flex}.lang-switch{border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);background:var(--color-paper);gap:4px;padding:2px;display:flex}.lang-btn{cursor:pointer;color:var(--color-ink-soft);background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:11px;font-weight:600}.lang-btn.active{background:var(--color-gold-wash);color:var(--color-ink)}.btn-pin{color:var(--color-line-strong);cursor:pointer;background:0 0;border:none;font-size:20px;transition:color .2s;position:absolute;top:15px;right:15px}.btn-pin:hover,.btn-pin.is-pinned{color:var(--color-brass)}.account-logged{background:var(--color-paper);border:1px solid var(--color-line-strong);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:4px;transition:background .15s;display:flex}.account-logged:hover{background:var(--color-gold-wash);border-color:var(--color-brass)}.account-avatar{background:var(--color-brass);color:#121212;width:24px;height:24px;font-family:var(--font-mono);background-position:50%;background-size:cover;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.account-email{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;max-width:140px;margin-right:6px;font-size:12px;font-weight:600;overflow:hidden}.auth-tabs{border-bottom:1px solid var(--color-line);margin-bottom:14px;display:flex}.auth-tab{font-family:var(--font-body);color:var(--color-ink-soft);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:10px 4px;font-size:14px;font-weight:600}.auth-tab.is-active{color:var(--color-ink);border-bottom-color:var(--color-brass)}.auth-subtitle{color:var(--color-ink-soft);margin:0 0 18px;font-size:13px;line-height:1.5}.auth-error{color:var(--color-danger);border-radius:var(--radius-sm);background:#8c2f391a;border:1px solid #8c2f394d;margin:10px 0 0;padding:8px 10px;font-size:12.5px}.auth-divider{text-align:center;color:var(--color-ink-soft);text-transform:uppercase;letter-spacing:.06em;align-items:center;margin:18px 0;font-size:11px;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-bottom:1px solid var(--color-line);flex:1}.auth-divider span{padding:0 10px}.auth-google-btn{justify-content:center;align-items:center;gap:10px;display:flex}.profile-header{align-items:center;gap:14px;margin-bottom:12px;display:flex}.profile-avatar-large{background:var(--color-brass);color:#121212;border:2px solid var(--color-line-strong);background-position:50%;background-size:cover;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;font-weight:700;display:flex}.profile-info h3{font-family:var(--font-display);color:var(--color-ink);margin:0;font-size:22px}.profile-info p{color:var(--color-ink-soft);font-size:13px;font-family:var(--font-mono);margin:0}.profile-danger-zone{border-top:1px dashed var(--color-danger);margin-top:24px;padding-top:12px}.floating-notes{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.note-anim{color:var(--color-brass);opacity:.12;font-size:40px;animation:linear infinite floatUp;position:absolute}@keyframes floatUp{0%{transform:translateY(100vh)rotate(0)}to{transform:translateY(-100px)rotate(360deg)}}@keyframes pulse{0%{opacity:.4;transform:scale(.8)}to{opacity:1;transform:scale(1.2)}}.sitefooter{width:100%;color:var(--color-ink-soft);border-top:1px solid var(--color-line);background:0 0;justify-content:space-between;align-items:center;padding:24px 40px;font-size:13px;display:flex}.footer-controls{align-items:center;gap:16px;display:flex}.cloud-save-indicator,#firebaseSaveIndicator{z-index:100;position:fixed;bottom:24px;right:180px!important}.paper-wrap{padding-bottom:20px!important}.print-footer-content,.print-header-content{display:none}@media (width<=768px){.topbar{flex-wrap:wrap;gap:12px;padding:12px 16px}.topbar-left{justify-content:space-between;width:100%}.topbar-nav{border:none;margin-left:auto;padding-left:0}.topbar-right{flex-wrap:wrap;justify-content:flex-end;gap:8px;width:100%}.topbar-actions{border:none;justify-content:space-between;width:100%;padding-left:0}.brand img.logo-wordmark{height:24px}.btn{padding:8px 12px;font-size:12px}.custom-toast{text-align:center;width:90vw}.catalog-toolbar{flex-direction:column;align-items:stretch}.catalog-filters{flex-direction:column;align-items:stretch;gap:16px}}#viewEditor{width:100%;max-width:100%;padding-left:48px;padding-right:48px}.editor-layout{background:0 0;align-items:stretch;gap:32px;max-width:100%;margin:0 auto;display:flex;overflow:hidden}.editor-main-area{flex-direction:column;flex:1;align-items:center;width:100%;padding-top:24px;display:flex;position:relative}body.is-viewer .engrave-desk{display:none!important}body.is-viewer .editor-layout{border:none;justify-content:center}body.is-viewer .paper-wrap{padding-top:0}body.is-viewer .measure-hit{opacity:0!important;pointer-events:none!important;display:block!important}.footer-logo{transition:filter .3s,opacity .3s;opacity:1!important;filter:brightness(0)!important}body.dark-theme .footer-logo{filter:brightness(0)invert()!important;opacity:.9!important}.engrave-desk{width:360px;min-width:360px;height:calc(100vh - var(--editor-sticky-offset,120px) - 40px);top:var(--editor-sticky-offset,120px);background:0 0;flex-direction:column;gap:20px;padding:0 16px 40px 0;display:flex;position:sticky;overflow-y:auto}.desk-section{background:var(--color-paper);border:1px solid #0000000d;border-radius:12px;padding:20px;box-shadow:0 4px 12px #00000008}.desk-title{font-family:var(--font-body);text-transform:uppercase;color:var(--color-ink-soft);letter-spacing:.5px;margin:0 0 16px;font-size:13px;font-weight:700}.pill{background:var(--color-gold-wash);color:var(--color-ink);font-family:var(--font-mono);border-radius:999px;margin-left:6px;padding:4px 12px;font-size:11px;font-weight:600;display:inline-block}.staff-toggle{background:var(--color-paper-edge);border-radius:8px;gap:4px;margin-bottom:16px;padding:4px;display:flex;overflow:hidden}.toggle-btn{cursor:pointer;color:var(--color-ink-soft);background:0 0;border:none;border-radius:6px;flex:1;padding:8px;font-size:13px;font-weight:600;transition:all .2s}.toggle-btn.is-active{background:var(--color-ink);color:var(--color-paper);box-shadow:0 2px 6px #00000026}.note-list-container{background:var(--color-paper-edge);border:1px solid #0000;border-radius:8px;flex-wrap:wrap;gap:8px;min-height:60px;max-height:120px;margin-bottom:16px;padding:12px;display:flex;overflow-y:auto}.note-list-container:hover{border-color:#0000000d}.note-tag{background:var(--color-paper);font-family:var(--font-mono);color:var(--color-ink);border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;transition:transform .1s;display:inline-flex;box-shadow:0 2px 4px #0000000a}.note-tag:hover{transform:translateY(-1px)}.note-tag-del{cursor:pointer;color:var(--color-danger);opacity:.6;font-size:10px;font-family:var(--font-body)}.note-tag-del:hover{opacity:1}.note-builder{background:#b38e500d;border:1px solid #b38e5033;border-radius:12px;padding:16px}.duration-grid{justify-content:space-between;gap:8px;margin-top:8px;margin-bottom:16px;display:flex}.dur-btn{background:var(--color-paper);cursor:pointer;color:var(--color-ink);border:none;border-radius:8px;flex:1;padding:12px 0;font-size:22px;line-height:1;transition:all .2s;box-shadow:0 2px 4px #00000008}.dur-btn.is-active{background:var(--color-ink);color:var(--color-paper);box-shadow:0 4px 8px #00000026}.editor-top-controls{background:var(--color-paper);border:1px solid var(--color-line);z-index:10;border-radius:50px;justify-content:center;align-items:center;width:max-content;margin:-80px auto 100px;padding:6px;transition:padding .4s cubic-bezier(.4,0,.2,1);display:flex;position:sticky;top:0;box-shadow:0 6px 24px #00000014}.control-pill{color:var(--color-ink-soft);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;border-radius:50px;flex-shrink:0;justify-content:center;align-items:center;padding:10px 20px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.control-pill:hover{color:var(--color-ink);background:var(--color-paper-edge)}#btnToggleLayout{padding:8px 16px;font-size:18px}.player-bar-wrapper{opacity:1;max-width:800px;transition:max-width .4s cubic-bezier(.4,0,.2,1),opacity .3s;display:flex;overflow:hidden}body:not(.is-viewer) .player-bar-wrapper{opacity:0;pointer-events:none;max-width:0}.player-bar{border-left:1px solid var(--color-line-strong);border-right:1px solid var(--color-line-strong);align-items:center;gap:16px;min-width:max-content;padding:0 16px;display:flex}.pl-btn{border:1px solid var(--color-line-strong);background:var(--color-paper);width:36px;height:36px;color:var(--color-ink);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex}.pl-btn:hover{border-color:var(--color-brass)}.pl-progress{background:var(--color-paper-edge);border:1px solid var(--color-line-strong);cursor:pointer;border-radius:999px;flex:1 0;min-width:140px;height:8px;position:relative;overflow:hidden}.pl-progress-fill{background:var(--color-brass);border-radius:999px;width:0%;transition:width .1s linear;position:absolute;top:0;bottom:0;left:0}.pl-time{font-family:var(--font-mono);color:var(--color-ink-soft);white-space:nowrap;font-size:11.5px}.pl-speeds{gap:4px;display:flex}.pl-speed-btn{font-family:var(--font-mono);border:1px solid var(--color-line-strong);color:var(--color-ink-soft);cursor:pointer;background:0 0;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:600}.pl-speed-btn.is-active{background:var(--color-ink);border-color:var(--color-ink);color:var(--color-paper)}.pl-bpm-label{font-family:var(--font-mono);color:var(--color-ink-soft);align-items:center;gap:6px;display:flex}.pl-bpm-symbol{color:var(--color-ink);margin-top:-3px;font-size:22px;line-height:1}.pl-bpm-eq{font-size:16px;font-weight:600}.pl-bpm-input{width:50px;height:28px;font-family:var(--font-mono);border:1px solid var(--color-line-strong);text-align:center;color:var(--color-ink);background:0 0;border-radius:6px;padding:4px 0;font-size:13px}.paper-wrap{background-color:#0000;flex:1;width:100%;padding:0 0 80px;display:block;position:relative;overflow-x:auto}.paper-wrap.layout-continuous #vexPagesContainer{transform:scale(var(--zoom-level,1));transform-origin:top;flex-direction:column;align-items:center;gap:32px;transition:transform .1s linear;display:flex}.paper-wrap.layout-continuous .paper-page{aspect-ratio:1200/1697;background:var(--color-paper);width:100%;max-width:1200px;box-shadow:var(--shadow-paper);border:1px solid var(--color-line);box-sizing:border-box;border-radius:6px;flex-shrink:0;margin:0;padding:0;position:relative}.paper-wrap.layout-book #vexPagesContainer{perspective:3000px;max-width:2400px;transform:scale(var(--zoom-level,1));transform-origin:top;flex-flow:wrap;justify-content:center;align-items:flex-start;margin:0 auto;transition:transform .1s linear;display:flex;position:relative}.paper-wrap.layout-book .paper-page{aspect-ratio:1200/1697;background:var(--color-paper);box-sizing:border-box;flex:1 0;min-width:300px;max-width:1200px;margin:0;padding:0;position:relative;overflow:hidden}.paper-wrap.layout-book .book-page-left{border:1px solid var(--color-line);border-right:1px solid var(--color-line-strong);border-radius:12px 0 0 12px;box-shadow:-15px 15px 40px #00000014}.paper-wrap.layout-book .book-page-right{border:1px solid var(--color-line);border-left:none;border-radius:0 12px 12px 0;box-shadow:15px 15px 40px #00000014}.paper-wrap.layout-book .book-page-left:after{content:"";pointer-events:none;z-index:20;background:linear-gradient(90deg,#0000,#0000000f);width:80px;position:absolute;top:0;bottom:0;right:0}.paper-wrap.layout-book .book-page-right:after{content:"";pointer-events:none;z-index:20;background:linear-gradient(270deg,#0000,#0000000f);width:80px;position:absolute;top:0;bottom:0;left:0}.book-flipper{background:var(--color-paper);z-index:500;border:1px solid var(--color-line-strong);pointer-events:none;width:50%;transform-style:preserve-3d;animation:.7s cubic-bezier(.4,0,.2,1) forwards flipAnim;position:absolute;top:0;bottom:0}.book-flipper:after{content:"";opacity:0;background:linear-gradient(90deg,#00000026,#0000);animation:.7s forwards shadowFade;position:absolute;inset:0}.book-flipper.flip-next{transform-origin:0;border-radius:0 12px 12px 0;animation-name:flipNext;right:0;box-shadow:inset 20px 0 40px #0000000d,-15px 10px 30px #00000026}.book-flipper.flip-prev{transform-origin:100%;border-radius:12px 0 0 12px;animation-name:flipPrev;left:0;box-shadow:inset -20px 0 40px #0000000d,15px 10px 30px #00000026}@keyframes flipNext{0%{opacity:1;background-color:var(--color-paper);transform:rotateY(0)}50%{background-color:var(--color-paper-edge)}to{opacity:0;background-color:var(--color-line);transform:rotateY(-180deg)}}@keyframes flipPrev{0%{opacity:1;background-color:var(--color-paper);transform:rotateY(0)}50%{background-color:var(--color-paper-edge)}to{opacity:0;background-color:var(--color-line);transform:rotateY(180deg)}}@keyframes shadowFade{0%{opacity:0}50%{opacity:1}to{opacity:0}}.turn-zone{z-index:100;cursor:pointer;width:120px;height:120px;transition:background .2s;position:absolute}.turn-zone:hover{background:radial-gradient(circle,#b38e5026 0%,#0000 60%)}.turn-tl{border-bottom-right-radius:100%;top:0;left:0}.turn-bl{border-top-right-radius:100%;bottom:0;left:0}.turn-tr{border-bottom-left-radius:100%;top:0;right:0}.turn-br{border-top-left-radius:100%;bottom:0;right:0}.paper-page .svg-wrap{width:100%;margin:0;padding:0;line-height:0;position:relative}.paper-page svg{z-index:1;display:block;position:relative;width:100%!important;height:auto!important}.measure-hit{cursor:pointer;pointer-events:all}.measure-hit rect{fill:#0000}.measure-hit.active rect{fill:#b38e5026;stroke:var(--color-brass)}.playback-line-svg{pointer-events:none;will-change:transform;stroke-linecap:round;z-index:100}.note-playing path,.note-playing rect{fill:var(--color-brass)!important;stroke:var(--color-brass)!important}#practiceFloatingOverlay{z-index:900;pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:40px;left:0;right:0}.practice-pill{background:var(--color-ink);color:#fff;font-family:var(--font-mono);pointer-events:all;border:1px solid var(--color-brass);border-radius:50px;align-items:center;gap:12px;padding:12px 24px;font-size:13px;display:flex;box-shadow:0 10px 25px #0000004d}.practice-pulse{background:var(--color-danger);border-radius:50%;width:10px;height:10px;animation:1s infinite alternate pulse}.measure-controls-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}@media (width<=1200px){.paper-wrap.layout-book #vexPagesContainer{flex-direction:column}.paper-wrap.layout-book .paper-page{border:1px solid var(--color-line);border-radius:6px;width:100%}.paper-wrap.layout-book .paper-page:after{display:none}}@media (width<=850px) and (orientation:portrait){#viewEditor{padding:0 12px}.editor-layout{gap:0;padding-bottom:52vh;display:block}.editor-main-area{padding-top:12px}.engrave-desk{z-index:1000;background:var(--color-paper);border:1px solid var(--color-line);border-bottom:none;border-radius:24px 24px 0 0;width:100%;min-width:100%;height:50vh;margin:0;padding:16px 20px 40px;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -4px 30px #00000026}.engrave-desk:before{content:"";background:var(--color-line-strong);opacity:.5;border-radius:10px;width:40px;height:5px;margin:0 auto 20px;display:block}.editor-top-controls{z-index:100;width:92vw;max-width:400px;margin:0 0 16px;padding:4px;position:fixed;top:auto;bottom:52vh;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0003}.paper-wrap{padding-bottom:40px!important}}@media (width<=1024px) and (orientation:landscape){#viewEditor{padding:0 20px}.engrave-desk{width:300px;min-width:300px;padding-right:12px}.editor-layout{gap:16px}.editor-top-controls{margin-top:-60px;margin-bottom:60px;transform:scale(.9)}}body.dark-theme #paperWrap svg .svg-title{fill:#fff!important}body.dark-theme #paperWrap svg .svg-composer{opacity:.8;fill:#eaeaea!important}@media print{body,html,#viewEditor,.editor-layout,.editor-main-area,.paper-wrap{font-family:var(--font-display,Georgia, serif);color:#000!important;box-shadow:none!important;background:#fff!important;border:none!important;margin:0!important;padding:0!important;display:block!important}.topbar,.engrave-desk,.editor-subnav,.sitefooter,.paper-hint,.player-bar,.modal-overlay,.editor-top-controls,.back-pill,#viewHome,#viewLibrary,.custom-toast,.sync-indicator,.btn-exit-zen{display:none!important}::-webkit-scrollbar{display:none!important}@page{size:A4 portrait;margin:0}.print-footer-content img.footer-logo{opacity:1!important;filter:brightness(0)!important}.paper-wrap.layout-continuous #vexPagesContainer,.paper-wrap.layout-book #vexPagesContainer{box-shadow:none!important;background:0 0!important;border:none!important;margin:0!important;padding:0!important;display:block!important;transform:none!important}.paper-page:not(.is-hidden-print){box-shadow:none!important;page-break-after:always!important;break-after:page!important;box-sizing:border-box!important;background:#fff!important;border:none!important;width:210mm!important;max-width:100%!important;height:297mm!important;max-height:100%!important;margin:0!important;padding:0!important;position:relative!important}.paper-page.is-hidden-print{page-break-after:avoid!important;page-break-before:avoid!important;break-after:avoid!important;visibility:hidden!important;width:0!important;height:0!important;margin:0!important;padding:0!important;display:none!important;overflow:hidden!important}.paper-page:not(.is-hidden-print):last-of-type{page-break-after:auto!important;break-after:auto!important}.paper-page svg{width:100%!important;height:100%!important;display:block!important}#vexPagesContainer svg path,#vexPagesContainer svg text,#vexPagesContainer svg rect:not(.measure-hit rect){fill:#000!important;stroke:#000!important}.measure-hit,.measure-hit rect,.turn-zone,.book-flipper{fill:none!important;stroke:none!important;pointer-events:none!important;display:none!important}.print-footer-content{border-top:1px dashed #000;justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;font-size:10px;display:flex!important}.print-only{display:block!important}}
