/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.stroke-1{stroke-width:1px}}:root{color-scheme:dark;font-synthesis:none;--canvas:#0a0d12;--surface:#11161f;--surface-strong:#171d28;--border:#28303d;--text:#f8fafc;--muted:#aeb8c8;--brand:#d81f27;--focus:#fca5a5;font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100%;margin:0}body{background:var(--canvas);color:var(--text);overflow:hidden}button,input{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button:disabled,input:disabled{cursor:not-allowed}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.touch-target{min-width:44px;min-height:48px}.landscape-workspace,.portal-frame{width:100%;height:100dvh}.portal-frame{background:radial-gradient(circle at 82% 4%,#d81f2714,transparent 25%),var(--canvas);flex-direction:column;display:flex;overflow:hidden}.skip-link{z-index:100;background:var(--text);color:var(--canvas);border-radius:10px;padding:12px 16px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.portal-header{min-height:72px;padding:max(10px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 10px max(24px,env(safe-area-inset-left));border-bottom:1px solid var(--border);background:#0a0d12f0;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);align-items:center;gap:20px;display:grid;box-shadow:0 12px 32px #00000047}.brand-link,.brand-lockup,.brand-suffix,.primary-nav,.nav-item,.header-actions,.service-chip,.login-link,.icon-action,.primary-action,.secondary-action,.page-controls button,.account-heading,.account-fields dt,.player-header,.transport-dock,.control-button{align-items:center;display:flex}.brand-link{border-radius:12px;width:fit-content}.brand-lockup{gap:12px}.brand-logo{width:auto;height:32px;display:block}.brand-suffix{color:var(--muted);letter-spacing:.22em;white-space:nowrap;border-left:1px solid #ffffff38;padding-left:12px;font-size:12px}.player-header .brand-logo{height:24px}.session-state-page .brand-logo{height:40px}.primary-nav{border:1px solid var(--border);background:var(--surface);border-radius:14px;gap:8px;padding:5px}.nav-item{min-width:88px;color:var(--muted);border-radius:10px;justify-content:center;gap:8px;padding:0 16px;font-size:14px;font-weight:700;transition:background-color .18s,color .18s,box-shadow .18s}.nav-item:hover,.login-link:hover,.icon-action:hover,.secondary-action:hover{color:var(--text);background:var(--surface-strong)}.nav-item.is-active{color:#fff;background:var(--brand);box-shadow:0 0 18px #d81f2761}.nav-item.is-locked{cursor:not-allowed;opacity:.42}.authorization-lock{color:var(--text-primary);background:#e81c2614;border:1px solid #e81c2661;border-radius:14px;align-items:flex-start;gap:14px;margin-bottom:20px;padding:18px 20px;display:flex}.authorization-lock svg{color:var(--brand);flex:none}.authorization-lock h2{margin:0 0 5px;font-size:17px}.authorization-lock p{color:var(--text-secondary);margin:0;line-height:1.6}.header-actions{justify-content:flex-end;gap:10px}.service-chip,.login-link{border:1px solid var(--border);min-height:48px;color:var(--muted);background:var(--surface);border-radius:11px;justify-content:center;gap:8px;padding:0 13px;font-size:12px;font-weight:700}.portal-main{flex:1;min-height:0;overflow:auto}.catalog-page,.tools-page,.account-page{width:100%;min-height:100%;padding:32px clamp(24px,3vw,48px) 40px}.textbook-catalog-page,.library-page{flex-direction:column;display:flex}.page-heading{justify-content:space-between;align-items:flex-end;gap:32px;width:100%;max-width:1440px;margin:0 auto 28px;display:flex}.eyebrow{color:#ff6469;letter-spacing:.13em;margin:0 0 8px;font-size:11px;font-weight:800}.page-heading h1,.auth-panel h2,.status-panel h2,.paper-placeholder h1,.player-empty h1{letter-spacing:-.025em;margin:0;font-weight:800}.page-heading h1{font-size:clamp(28px,3vw,40px)}.page-heading p:not(.eyebrow),.auth-description,.status-panel>p:not(.eyebrow),.paper-placeholder p,.player-empty p,.tool-card p,.account-heading p{color:var(--muted);line-height:1.65}.search-field,.input-shell{border:1px solid var(--border);color:var(--muted);background:var(--surface);border-radius:12px;align-items:center;gap:10px;display:flex}.search-field{width:min(340px,34vw);min-height:48px;padding:0 14px}.catalog-search{align-items:center;gap:10px;display:flex}.search-field input,.input-shell input{width:100%;min-width:0;min-height:44px;color:var(--text);background:0 0;border:0;outline:0;font-size:16px}.catalog-layout{flex-direction:column;flex:1;width:100%;max-width:1440px;min-height:520px;margin:0 auto;display:flex}.textbook-catalog-page .catalog-layout{min-height:0}.status-panel,.tool-card,.account-card,.reader-sidebar{border:1px solid var(--border);background:#11161fe0;border-radius:16px}.outline-skeleton{gap:12px;margin-top:20px;display:grid}.outline-skeleton span{background:#202633;border-radius:10px;height:44px}.status-panel{text-align:center;background:linear-gradient(135deg,#d81f2717,#0000 40%),#11161fdb;place-content:center;justify-items:center;min-height:420px;padding:48px;display:grid}.status-panel h2{margin-top:4px;font-size:26px}.status-panel>p:not(.eyebrow){max-width:560px;margin:10px 0 24px}.catalog-results{min-width:0}.textbook-catalog-results{flex-direction:column;flex:1;display:flex}.textbook-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;display:grid}.textbook-card{border:1px solid var(--border);background:var(--surface);border-radius:15px;flex-direction:column;min-width:0;transition:border-color .18s,background-color .18s,box-shadow .18s;display:flex;overflow:hidden}.textbook-card:hover,.textbook-card:focus-visible{background:var(--surface-strong);border-color:#d81f27b8;box-shadow:0 16px 34px #00000047}.textbook-cover{aspect-ratio:16/10;color:#ff7478;background:linear-gradient(145deg,#222936,#10151d);place-items:center;display:grid;position:relative;overflow:hidden}.textbook-cover img{object-fit:cover;width:100%;height:100%}.textbook-cover:after{content:"";pointer-events:none;background:linear-gradient(#0000,#080b10b8);height:42%;position:absolute;inset:auto 0 0}.textbook-cover>span{z-index:1;color:#fff;background:#0a0d12d6;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700;position:absolute;bottom:10px;right:10px}.textbook-card-copy{gap:7px;padding:17px;display:grid}.textbook-card-copy>p,.textbook-card-copy>span{color:var(--muted);margin:0;font-size:12px}.textbook-card-copy>p{color:#ff7478;font-weight:750}.textbook-card-copy h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:19px;line-height:1.35;overflow:hidden}.textbook-card-copy dl{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px 14px;margin:7px 0 0;padding-top:12px;display:flex}.textbook-card-copy dl div{gap:5px;font-size:11px;display:flex}.textbook-card-copy dt{color:var(--muted)}.textbook-card-copy dd{margin:0;font-weight:700}.textbook-card-skeleton{background:linear-gradient(110deg,#151b25 8%,#202733 18%,#151b25 33%) 0 0/200% 100%;min-height:294px;animation:1.4s linear infinite skeleton-sheen}@keyframes skeleton-sheen{to{background-position-x:-200%}}.catalog-pagination{justify-content:center;align-items:center;gap:16px;margin-top:22px;display:flex}.catalog-pagination .secondary-action{margin-top:0}.catalog-pagination>span{min-width:150px;color:var(--muted);text-align:center;font-size:12px}.textbook-catalog-results .catalog-pagination{margin-top:auto;padding-top:32px}.inline-load-error{color:#ffd4d6;background:#d81f2714;border:1px solid #d81f276b;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;padding:10px 14px;font-size:12px;display:flex}.inline-load-error button{color:#fff;cursor:pointer;background:0 0;border:0;min-width:48px;min-height:44px}.status-icon,.auth-icon,.tool-card>span:first-child{color:#ff7478;background:#d81f271a;border:1px solid #d81f276b;border-radius:16px;place-items:center;width:58px;height:58px;margin-bottom:16px;display:grid}.primary-action,.secondary-action{cursor:pointer;border:1px solid #0000;border-radius:11px;justify-content:center;gap:9px;padding:0 18px;font-weight:750}.primary-action{color:#fff;background:var(--brand)}.primary-action:hover:not(:disabled){background:#ed252d}.primary-action:disabled,.secondary-action:disabled{opacity:.48}.library-grid-shell{flex-direction:column;flex:1;width:100%;max-width:1440px;margin:0 auto;display:flex}.library-grid-shell .catalog-pagination{margin-top:auto;padding-top:32px}.library-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.library-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;min-width:0;transition:border-color .18s,background-color .18s,box-shadow .18s;overflow:hidden}.library-card:hover,.library-card:focus-visible,.song-row:hover,.song-row:focus-visible{background:var(--surface-strong);border-color:#d81f27b8;box-shadow:0 16px 34px #00000047}.library-cover{aspect-ratio:16/8;color:#ff7478;background:radial-gradient(circle at 72% 28%,#d81f2747,#0000 25%),linear-gradient(145deg,#252c38,#0e1219);place-items:center;display:grid;position:relative;overflow:hidden}.library-cover img,.song-cover img,.song-hero-cover img{object-fit:cover;width:100%;height:100%}.library-cover>span{color:#fff;background:#080b10d6;border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:11px;font-weight:750;display:flex;position:absolute;bottom:12px;right:12px}.library-card-copy{gap:7px;padding:18px;display:grid}.library-card-copy p,.library-card-copy>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;overflow:hidden}.library-card-copy p{color:#ff7478;font-weight:750}.library-card-copy h2{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:20px;overflow:hidden}.tag-row{flex-wrap:wrap;gap:7px;margin-top:7px;display:flex}.tag-row small{color:var(--muted);background:#0b0f15;border-radius:6px;padding:4px 7px}.library-card-skeleton,.song-row-skeleton{background:linear-gradient(110deg,#151b25 8%,#202733 18%,#151b25 33%) 0 0/200% 100%;min-height:270px;animation:1.4s linear infinite skeleton-sheen}.library-detail-heading{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;max-width:1440px;margin:0 auto 24px;display:grid}.library-detail-title h1{margin:0;font-size:clamp(26px,3vw,38px)}.library-detail-title>p:last-child{max-width:620px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:6px 0 0;overflow:hidden}.song-list-shell{max-width:1440px;margin:0 auto}.song-list{gap:10px;display:grid}.song-row{border:1px solid var(--border);background:var(--surface);border-radius:13px;grid-template-columns:42px 52px minmax(200px,1.5fr) minmax(110px,.7fr) minmax(90px,.55fr) auto 24px;align-items:center;gap:14px;min-height:76px;padding:10px 16px;transition:border-color .18s,background-color .18s,box-shadow .18s;display:grid}.song-index{color:#ff7478;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.song-cover{color:#ff7478;background:#202733;border-radius:10px;place-items:center;width:52px;height:52px;display:grid;overflow:hidden}.song-primary,.song-meta{gap:5px;min-width:0;display:grid}.song-primary strong,.song-primary small,.song-meta strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.song-primary small,.song-meta small{color:var(--muted);font-size:11px}.song-meta strong{font-size:13px}.song-version{color:#ffb7ba;background:#d81f2724;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}.song-row-skeleton{min-height:76px}.song-detail-page{height:100%;overflow:auto}.song-detail-toolbar{border-bottom:1px solid var(--border);background:#0a0d12e6;justify-content:space-between;align-items:center;min-height:64px;padding:8px clamp(24px,3vw,48px);display:flex}.song-detail-layout{gap:24px;max-width:1360px;margin:0 auto;padding:28px clamp(24px,3vw,48px) 48px;display:grid}.song-hero{border:1px solid var(--border);background:linear-gradient(135deg,#d81f271a,#11161feb 42%);border-radius:18px;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:30px;padding:24px;display:grid}.song-hero-cover{aspect-ratio:1;color:#ff7478;background:linear-gradient(145deg,#252c38,#0e1219);border-radius:14px;place-items:center;display:grid;overflow:hidden}.song-hero-copy h1{letter-spacing:-.035em;margin:0;font-size:clamp(32px,4vw,52px)}.song-hero-copy>p:not(.eyebrow){color:var(--muted);margin:7px 0 22px}.song-facts{flex-wrap:wrap;gap:10px;display:flex}.song-facts span{border:1px solid var(--border);color:var(--muted);background:#080b108a;border-radius:9px;gap:6px;padding:9px 11px;font-size:12px;display:flex}.song-facts strong{color:var(--text)}.song-resource-section,.song-lyrics{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:24px}.song-resource-section h2,.song-lyrics h2{margin:0}.song-resource-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.song-resource-card{border:1px solid var(--border);background:#0c1118;border-radius:13px;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:14px;display:grid}.song-resource-icon{color:#ff7478;background:#d81f271f;border-radius:12px;place-items:center;width:48px;height:48px;display:grid}.song-resource-copy{gap:4px;min-width:0;display:grid}.song-resource-copy span,.song-resource-copy small{color:var(--muted);font-size:10px}.song-resource-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.song-resource-card .resource-audio{grid-column:1/-1}.song-empty{color:var(--muted);align-items:center;gap:10px;margin-top:18px;display:flex}.song-lyrics pre{color:#d6dce5;font:inherit;white-space:pre-wrap;margin:18px 0 0;line-height:1.85;overflow:auto}.auth-layout{background:var(--canvas);grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);min-height:100dvh;display:grid}.auth-stage{min-height:100dvh;padding:max(34px,env(safe-area-inset-top)) 6vw max(48px,env(safe-area-inset-bottom));background:radial-gradient(circle at 22% 28%,#d81f2738,#0000 26%),linear-gradient(145deg,#171d28,#090c11 68%);flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow:hidden}.auth-stage:after{content:"";pointer-events:none;background-image:linear-gradient(#ffffff06 1px,#0000 1px);background-size:100% 34px;position:absolute;top:0;right:0;bottom:0;left:0}.auth-stage-copy{z-index:1;max-width:620px;margin:auto 0;position:relative}.auth-stage-copy h1{letter-spacing:-.05em;max-width:620px;margin:0;font-size:clamp(42px,5.4vw,76px);line-height:1.06}.auth-stage-copy>p:last-child{max-width:530px;color:var(--muted);font-size:18px;line-height:1.75}.stage-lines{width:62%;position:absolute;bottom:12%;right:-14%;transform:rotate(-10deg)}.stage-lines span{background:linear-gradient(90deg,#0000,#d81f27bf,#0000);height:1px;margin:22px 0;display:block}.auth-panel{min-height:100dvh;padding:max(28px,env(safe-area-inset-top)) 6vw max(34px,env(safe-area-inset-bottom));background:#0d1118;flex-direction:column;display:flex;overflow-y:auto}.back-link{width:fit-content;color:var(--muted);border-radius:10px;align-items:center;gap:8px;display:flex}.auth-form-wrap{width:100%;max-width:470px;margin:auto}.auth-panel h2{font-size:34px}.auth-description{margin-bottom:28px}.auth-form,.auth-form label{gap:10px;display:grid}.auth-form{gap:20px}.form-error,.session-notice,.auth-success{background:#d81f271a;border:1px solid #ff64696b;border-radius:12px}.form-error,.session-notice{color:#ffd4d6;padding:13px 15px;font-size:13px;line-height:1.55}.session-notice{margin-bottom:20px}.form-link{color:#ff8b8f;border-radius:10px;justify-content:center;align-items:center;width:fit-content;margin:-8px auto 0;font-size:13px;font-weight:750;display:flex}.form-link:hover,.back-link:hover{color:var(--text)}.auth-success{justify-items:start;gap:12px;padding:22px;display:grid}.auth-success svg{color:#ff7478}.auth-success h3,.auth-success p{margin:0}.auth-success p{color:var(--muted);font-size:14px;line-height:1.65}.auth-success .primary-action{margin-top:6px}.auth-form label>span:first-child{font-size:13px;font-weight:700}.input-shell{min-height:52px;padding:0 15px}.form-note{color:var(--muted);text-align:center;margin:0;font-size:12px}.reader-page{flex-direction:column;height:100%;display:flex;overflow:hidden}.reader-toolbar{border-bottom:1px solid var(--border);background:#0d1118;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:8px 20px;display:flex}.icon-action{border:1px solid var(--border);color:var(--muted);background:var(--surface);cursor:pointer;border-radius:10px;justify-content:center;gap:8px;padding:0 12px}.icon-action:disabled{opacity:.45}.reader-title{text-align:center;min-width:0;display:grid}.reader-title span{color:var(--muted);font-size:11px}.toolbar-actions{gap:8px;display:flex}.reader-workspace{flex:1;min-height:0;padding:12px;position:relative;overflow:hidden}.reader-sidebar{z-index:22;overscroll-behavior:contain;visibility:hidden;opacity:0;background:#11161f;border-radius:12px;width:min(340px,36vw);min-width:0;padding:18px;transition:transform .18s,opacity .18s,visibility .18s;position:absolute;top:12px;bottom:12px;overflow:auto;box-shadow:0 24px 64px #0000006b}.reader-sidebar.is-open{visibility:visible;opacity:1;transform:translate(0)}.outline-sidebar{left:12px;transform:translate(calc(-100% - 20px))}.resource-sidebar{width:min(380px,38vw);right:12px;transform:translate(calc(100% + 20px))}.reader-sidebar h2{margin:0;font-size:18px}.drawer-close{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:grid;position:absolute;top:8px;right:8px}.outline-list,.outline-chapter{display:grid}.outline-list{gap:18px;margin-top:18px}.outline-chapter{gap:6px}.outline-chapter h3{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.outline-page{width:100%;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;align-items:center;padding:0 12px;display:flex}.outline-page:hover,.outline-page.is-active{color:var(--text);border-color:var(--border);background:var(--surface-strong)}.outline-page.is-active{box-shadow:inset 3px 0 var(--brand);border-color:#d81f278a}.sidebar-empty{color:var(--muted);margin-top:18px;font-size:13px;line-height:1.6}.outline-skeleton span:nth-child(2),.outline-skeleton span:nth-child(4){width:82%}.reader-canvas{color:#17191d;background:radial-gradient(circle at 50% 40%,#ffffff12,#0000 40%),#181c22;border:1px solid #353d4a;border-radius:12px;flex-direction:column;gap:10px;width:100%;height:100%;padding:10px;display:flex;box-shadow:0 22px 48px #00000047}.reader-canvas-shell{background-color:#20252c;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border-radius:10px;flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.reader-canvas-surface{overscroll-behavior:contain;touch-action:none;-webkit-user-select:none;user-select:none;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.reader-canvas-surface.tool-pan{cursor:grab}.reader-canvas-surface.tool-pan:active{cursor:grabbing}.reader-canvas-surface.tool-pen,.reader-canvas-surface.tool-highlighter{cursor:crosshair}.paper-page{transform-origin:50%;will-change:transform;background:#fff;position:absolute;overflow:hidden;box-shadow:0 18px 52px #00000075,0 0 0 1px #0c0f1438}.paper-page>img{object-fit:contain;pointer-events:none;-webkit-user-drag:none;width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.paper-placeholder{text-align:center;place-content:center;justify-items:center;padding:40px;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.paper-placeholder h1{margin-top:18px;font-size:26px}.paper-placeholder p{color:#4a515d;max-width:540px}.annotation-layer{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible}.annotation-stroke{stroke-linecap:round;stroke-linejoin:round}.annotation-stroke line{fill:none}.annotation-pen circle{fill:inherit}.annotation-highlighter{opacity:.32;mix-blend-mode:multiply}.drawing-toolbar,.zoom-toolbar{z-index:8;color:var(--text);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0d1118e6;border:1px solid #ffffff24;border-radius:14px;gap:8px;padding:8px;display:flex;position:absolute;box-shadow:0 16px 38px #0000005c}.drawing-toolbar{grid-template-columns:repeat(2,48px);width:118px;transition:left .18s;display:grid;top:50%;left:12px;transform:translateY(-50%)}.reader-workspace:not(.left-closed) .drawing-toolbar{left:min(364px,36vw + 24px)}.zoom-toolbar{align-items:center;bottom:12px;right:12px}.zoom-toolbar output{min-width:52px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:center;font-size:12px}.canvas-tool{min-width:48px;min-height:48px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;place-items:center;padding:0;transition:color .18s,border-color .18s,background-color .18s;display:grid}.canvas-tool:hover,.canvas-tool.is-active{color:var(--text);background:#282f3a;border-color:#ffffff24}.canvas-tool.is-active{border-color:#d81f27b8;box-shadow:inset 0 0 0 1px #d81f2733}.canvas-tool.destructive:not(:disabled){color:#ff989c}.canvas-tool:disabled{opacity:.34}.canvas-tool-divider{background:#ffffff1f;grid-column:1/-1;height:1px;margin:0 4px}.canvas-swatches,.canvas-widths{grid-column:1/-1;grid-template-columns:repeat(2,48px);justify-content:space-around;align-items:center;gap:8px;min-height:44px;display:grid}.canvas-swatches>:last-child,.canvas-widths>:last-child{grid-column:1/-1;justify-self:center}.color-swatch{cursor:pointer;background:0 0;border:0;border-radius:10px;width:44px;height:44px;padding:0;position:relative}.color-swatch:after{background:var(--swatch);content:"";border:3px solid #11161f;border-radius:50%;outline:1px solid #ffffff47;width:28px;height:28px;position:absolute;top:8px;right:8px;bottom:8px;left:8px}.color-swatch.is-active:after{outline-offset:2px;outline:3px solid #fff}.width-swatch{cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;min-width:44px;padding:0;display:grid}.width-swatch span{background:var(--muted);border-radius:50%;display:block}.width-swatch.is-active{background:#282f3a}.width-swatch.is-active span{background:#fff}.annotation-notice{z-index:7;color:#e7eaf0;pointer-events:none;background:#0d1118d1;border:1px solid #ffffff1f;border-radius:999px;margin:0;padding:7px 12px;font-size:12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.page-controls{color:#d5d9e1;justify-content:center;align-items:center;gap:18px;min-height:48px;display:flex}.page-controls button{color:#d5d9e1;cursor:pointer;background:#252b34;border:1px solid #4a5361;border-radius:10px;justify-content:center;gap:6px;min-width:104px}.page-controls button:disabled{opacity:.42;cursor:not-allowed}.resource-placeholder{color:var(--muted);text-align:center;border:1px dashed #3d4655;border-radius:12px;justify-items:center;gap:12px;margin-top:22px;padding:28px 16px;display:grid}.resource-list{gap:10px;margin-top:18px;display:grid}.resource-item{border:1px solid var(--border);background:var(--surface-strong);border-radius:11px;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.resource-kind-icon{color:#ff7478;background:#d81f271f;border-radius:9px;place-items:center;width:38px;height:38px;display:grid}.resource-copy{gap:3px;min-width:0;display:grid}.resource-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.resource-copy span,.resource-copy small{color:var(--muted);font-size:10px}.resource-copy .resource-error{color:#ff9da0}.resource-actions{gap:8px;display:flex}.resource-action{border:1px solid var(--border);min-width:44px;color:var(--text);cursor:pointer;background:#202733;border-radius:9px;place-items:center;display:grid}.resource-audio{grid-column:1/-1;width:100%;height:44px}.reader-loading,.reader-state-wrap{flex:1;place-items:center;min-height:0;padding:24px;display:grid}.reader-loading{color:var(--muted);align-content:center}.reader-state-wrap .status-panel{width:min(760px,100%)}.reader-drawer-backdrop{z-index:21;background:#0305088f;border:0;display:block;position:absolute;top:0;right:0;bottom:0;left:0}.tools-page,.account-page{max-width:1240px;margin:0 auto}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.tool-card{min-height:300px;padding:28px}.tool-card h2{margin:0;font-size:24px}.tool-card p{max-width:460px}.secondary-action{color:var(--muted);border-color:var(--border);background:var(--surface-strong);margin-top:20px}.account-card{max-width:980px;margin:0 auto;padding:28px}.account-heading{border-bottom:1px solid var(--border);gap:18px;padding-bottom:28px}.account-heading .primary-action{margin-left:auto}.account-heading h2{margin:0}.account-heading p{margin:3px 0 0}.account-avatar{color:#fff;background:var(--brand);border-radius:17px;flex:none;place-items:center;width:60px;height:60px;font-weight:900;display:grid}.account-fields{background:var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:1px 0 0;display:grid}.account-fields>div{background:var(--surface);padding:22px}.account-fields dt{color:var(--muted);gap:8px;font-size:12px}.account-fields dd{margin:10px 0 0;font-weight:750}.player-page{background:radial-gradient(circle at 50% 38%,#18202d 0,#0a0d12 52%),var(--canvas);flex-direction:column;height:100dvh;display:flex;overflow:hidden}.player-header{min-height:68px;padding:max(10px,env(safe-area-inset-top)) 18px 10px;border-bottom:1px solid var(--border);background:#0a0d12e6;gap:18px}.player-context{margin-left:6px;display:grid}.player-context span,.version-chip,.transport-status{color:var(--muted);font-size:11px}.version-chip{border:1px solid var(--border);border-radius:999px;margin-left:auto;padding:8px 11px}.player-stage{flex:1;place-items:center;min-height:0;display:grid;position:relative;overflow:hidden}.staff-lines{opacity:.18;position:absolute;top:25%;right:8%;bottom:25%;left:8%}.staff-lines span{background:linear-gradient(90deg,#0000,#aeb8c8 10%,#aeb8c8 90%,#0000);height:1px;margin:30px 0;display:block}.player-empty{z-index:1;text-align:center;max-width:640px;padding:40px;position:relative}.player-empty svg{color:#ff6469}.player-empty h1{margin-top:16px;font-size:34px}.transport-dock{min-height:88px;margin:0 0 max(18px,env(safe-area-inset-bottom));border:1px solid var(--border);background:#11161ff2;border-radius:18px;align-self:center;gap:10px;padding:12px 18px;box-shadow:0 18px 48px #00000061}.control-button{min-width:58px;min-height:56px;color:var(--muted);background:0 0;border:0;border-radius:11px;flex-direction:column;justify-content:center;gap:3px}.control-button span{font-size:10px}.play-button{color:#fff;background:var(--brand);border:0;border-radius:50%;place-items:center;width:60px;height:60px;display:grid}.transport-status{align-items:center;gap:5px;margin-left:8px;display:flex}.stem-player-page,.dynamic-score-page{background:#080b10}.dynamic-score-player{min-height:0;padding:12px 18px max(14px,env(safe-area-inset-bottom));flex:1;grid-template-rows:minmax(0,1fr) auto;gap:12px;display:grid;overflow:hidden}.dynamic-score-stage{min-width:0;min-height:0;display:grid;position:relative;overflow:hidden}.dynamic-score-loading{z-index:4;color:#cbd3df;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#11161ff5;border:1px solid #323b49;border-radius:12px;grid-template-columns:auto 1fr minmax(180px,360px) auto;align-items:center;gap:10px;width:min(680px,100% - 32px);padding:9px 12px;font-size:14px;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 12px 34px #00000057}.dynamic-score-loading progress{width:100%;height:8px;accent-color:var(--brand)}.dynamic-score-scroll{border:1px solid var(--border);overscroll-behavior:contain;background:#f7f4ec;border-radius:16px;width:100%;height:100%;min-height:0;padding:18px;position:relative;overflow:auto}.dynamic-score-surface{color:#111;min-width:720px;min-height:420px}.dynamic-score-surface.is-hidden{visibility:hidden}.dynamic-score-hidden-state{color:#5f6875;text-align:center;place-content:center;justify-items:center;gap:8px;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.dynamic-score-hidden-state svg{width:32px}.dynamic-score-hidden-state strong{color:#272e38;font-size:18px}.dynamic-score-scroll .at-cursor-bar{background:#d81f271f!important}.dynamic-score-scroll .at-cursor-beat{background:var(--brand)!important;width:3px!important}.dynamic-score-scroll .at-highlight *{fill:var(--brand)!important;stroke:var(--brand)!important}.dynamic-score-transport{border:1px solid var(--border);background:var(--surface);border-radius:16px;gap:4px;padding:10px 12px 8px;display:grid;position:relative;box-shadow:0 16px 42px #00000052}.dynamic-score-transport-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;min-width:0;display:grid}.dynamic-score-control-group{align-items:center;gap:8px;min-width:0;display:flex}.dynamic-score-control-group-right{justify-content:flex-end}.dynamic-score-tool-button,.dynamic-score-icon-button,.dynamic-score-stepper button,.dynamic-score-mix-button,.dynamic-score-notation-control,.dynamic-score-track-notation select{border:1px solid var(--border);color:#c5cdd9;background:var(--surface-strong);justify-content:center;align-items:center;display:inline-flex}.dynamic-score-notation-control{min-height:48px;color:var(--muted);border-radius:11px;grid-template-columns:auto minmax(112px,1fr);align-items:center;gap:8px;padding:4px 6px 4px 10px;font-size:13px;font-weight:750;display:grid}.dynamic-score-notation-control select,.dynamic-score-track-notation select{min-height:40px;color:var(--text);font:inherit;cursor:pointer;touch-action:manipulation;background:#171d27;border-color:#394352;border-radius:8px;padding:0 30px 0 10px;font-weight:800}.dynamic-score-notation-control select:focus-visible,.dynamic-score-track-notation select:focus-visible{outline-offset:2px;outline:3px solid #d81f2759}.dynamic-score-tool-button{white-space:nowrap;border-radius:11px;gap:7px;min-height:48px;padding:0 11px;font-size:14px;font-weight:750}.dynamic-score-tool-button>svg{flex:none;width:17px}.dynamic-score-tool-button[aria-pressed=true],.dynamic-score-mix-button[aria-pressed=true]{color:#fff;background:#d81f2738;border-color:#d81f27b8;box-shadow:inset 0 0 0 1px #d81f271f}.dynamic-score-stepper{border:1px solid var(--border);background:var(--surface-strong);border-radius:11px;grid-template-columns:44px minmax(54px,auto) 44px;align-items:center;min-height:48px;display:grid;overflow:hidden}.dynamic-score-stepper button{background:0 0;border:0;width:44px;height:46px}.dynamic-score-stepper button:first-child{border-right:1px solid var(--border)}.dynamic-score-stepper button:last-child{border-left:1px solid var(--border)}.dynamic-score-stepper button svg{width:17px}.dynamic-score-stepper output{color:var(--text);text-align:center;white-space:nowrap;padding:0 6px;font-size:14px;font-weight:780}.dynamic-score-primary-control{justify-items:center;gap:2px;min-width:84px;display:grid}.dynamic-score-primary-control .play-button{width:58px;height:58px;box-shadow:0 8px 22px #d81f2752}.dynamic-score-primary-control>span{width:92px;color:var(--muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.dynamic-score-speed{border:1px solid var(--border);min-height:48px;color:var(--muted);background:var(--surface-strong);border-radius:11px;grid-template-columns:auto minmax(72px,106px) auto;align-items:center;gap:6px;padding:0 10px;font-size:14px;display:grid}.dynamic-score-speed output{min-width:34px;color:var(--text);font-weight:780}.dynamic-score-speed input,.dynamic-score-seek input{width:100%;min-height:44px;accent-color:var(--brand)}.dynamic-score-key-control{border:1px solid var(--border);min-width:154px;min-height:48px;color:var(--muted);background:var(--surface-strong);white-space:nowrap;border-radius:11px;grid-template-columns:auto minmax(78px,1fr);align-items:center;column-gap:8px;padding:4px 8px 4px 10px;font-size:13px;display:grid}.dynamic-score-key-control select{min-width:0;min-height:40px;color:var(--text);font:inherit;cursor:pointer;background:#171d27;border:1px solid #394352;border-radius:8px;padding:0 30px 0 10px;font-weight:800}.dynamic-score-key-control select:focus-visible{outline-offset:2px;outline:3px solid #d81f2759}.dynamic-score-key-control small{color:#b9c2d0;text-overflow:ellipsis;grid-column:1/-1;font-size:12px;line-height:1.25;overflow:hidden}.dynamic-score-key-control select:disabled{cursor:default;opacity:.48}.dynamic-score-mixer-toggle>svg:last-child{width:14px}.dynamic-score-seek{color:#8f9aab;grid-template-columns:auto minmax(0,1fr) 38px;align-items:center;gap:10px;min-width:0;min-height:44px;padding:0 4px;font-size:14px;display:grid}.dynamic-score-seek output{color:var(--text);font-variant-numeric:tabular-nums;text-align:right}.dynamic-score-mixer{z-index:5;overscroll-behavior:contain;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#11161ffa;border:1px solid #343d4b;border-radius:16px;max-height:min(360px,100% - 24px);padding:14px;position:absolute;bottom:12px;left:12px;right:12px;overflow-y:auto;box-shadow:0 -16px 48px #00000075}.dynamic-score-mixer-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.dynamic-score-mixer-header>div{gap:2px;display:grid}.dynamic-score-mixer-layout{background:#222a36b8;border:1px solid #2d3543;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:10px 12px;display:flex}.dynamic-score-spacing-control{min-width:0;color:var(--muted);grid-template-columns:auto minmax(104px,132px) auto;align-items:center;gap:8px;font-size:14px;font-weight:800;display:grid}.dynamic-score-spacing-control select{min-height:40px;color:var(--text);font:inherit;cursor:pointer;background:#171d27;border:1px solid #394352;border-radius:8px;padding:0 28px 0 10px;font-weight:800}.dynamic-score-spacing-control select:focus-visible{outline-offset:2px;outline:3px solid #d81f2759}.dynamic-score-spacing-control output{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.dynamic-score-spacing-control select:disabled{cursor:default;opacity:.48}.dynamic-score-mixer-layout-hint{color:#909bab;white-space:nowrap;font-size:12px}.dynamic-score-mixer-header span{color:var(--muted);letter-spacing:.12em;font-size:14px;font-weight:800}.dynamic-score-mixer-header strong{font-size:17px}.dynamic-score-icon-button{border-radius:11px;width:48px;min-height:48px}.dynamic-score-icon-button svg{width:19px}.dynamic-score-track-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.dynamic-score-track-card{background:var(--surface-strong);border:1px solid #2d3543;border-radius:12px;grid-template-columns:30px minmax(110px,1fr) minmax(128px,.8fr) auto;align-items:center;gap:8px;min-width:0;padding:8px;display:grid}.dynamic-score-track-number{color:#9ca7b7;background:#222a36;border-radius:8px;place-items:center;width:30px;height:30px;font-size:14px;font-weight:800;display:grid}.dynamic-score-track-heading{gap:2px;min-width:0;display:grid}.dynamic-score-track-heading strong{color:#e9edf3;overflow-wrap:anywhere;min-width:0;font-size:14px;line-height:1.35}.dynamic-score-track-heading span,.dynamic-score-track-notation>span{color:#909bab;font-size:12px}.dynamic-score-track-notation{grid-template-columns:auto minmax(88px,1fr);align-items:center;gap:6px;min-width:0;display:grid}.dynamic-score-track-notation select{width:100%;min-width:0}.dynamic-score-track-actions{gap:8px;display:flex}.dynamic-score-mix-button{border-radius:9px;min-width:54px;min-height:44px;padding:0 9px;font-size:14px;font-weight:760}.dynamic-score-visibility-button{gap:5px;min-width:98px}.dynamic-score-visibility-button svg{width:16px}.dynamic-score-tool-button:disabled,.dynamic-score-stepper button:disabled,.dynamic-score-mix-button:disabled,.dynamic-score-spacing-control select:disabled{opacity:.42}@media (max-width:1199px){.dynamic-score-player{padding-left:12px;padding-right:12px}.dynamic-score-transport-row,.dynamic-score-control-group{gap:8px}.dynamic-score-tool-button{padding:0 8px}.dynamic-score-speed{grid-template-columns:auto 72px auto;padding:0 8px}.dynamic-score-track-grid{grid-template-columns:1fr}}.count-in-badge{font-size:14px;font-weight:800}.stem-player-workspace{flex:1;grid-template-columns:minmax(0,1.45fr) minmax(380px,.72fr);min-height:0;display:grid;overflow:hidden}.stem-player-video-panel{background:radial-gradient(circle at 50% 42%,#48516229,#0000 48%),#080b10;grid-template-rows:minmax(0,1fr) auto auto;align-content:stretch;gap:12px;min-width:0;min-height:0;padding:18px 20px 20px;display:grid}.stem-video-frame{background:#030406;border:1px solid #202735;border-radius:16px;place-items:center;min-height:0;display:grid;position:relative;overflow:hidden;box-shadow:0 20px 52px #00000057}.stem-video-frame video{object-fit:contain;width:100%;height:100%;display:block}.stem-video-badge{color:#dce2eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#06080cc2;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:7px;min-height:36px;padding:0 12px;font-size:12px;font-weight:750;display:inline-flex;position:absolute;top:14px;right:14px}.stem-video-badge svg{width:15px}.stem-video-curtain{color:#f8fafc;text-align:center;background:radial-gradient(circle at 50% 42%,#d81f272b,#0000 30%),#030406e6;place-content:center;justify-items:center;padding:40px;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.stem-player-kicker{color:#ff7b80;letter-spacing:.18em;font-size:10px;font-weight:850}.stem-video-curtain h1{letter-spacing:-.035em;max-width:620px;margin:12px 0 8px;font-size:clamp(28px,3vw,42px)}.stem-video-curtain p{color:#aeb8c8;max-width:520px;margin:0 0 24px;line-height:1.65}.stem-load-progress{background:#282e39;border-radius:999px;width:min(420px,72vw);height:9px;overflow:hidden;box-shadow:inset 0 1px 2px #00000085}.stem-load-progress>span{border-radius:inherit;background:linear-gradient(90deg,#d81f27,#ff5960);width:0;height:100%;transition:width .22s;display:block;box-shadow:0 0 18px #d81f277a}.stem-load-progress-label{color:#d8dee8;margin-top:11px;font-size:12px}.stem-load-progress-label+.stem-load-button{margin-top:20px}.stem-count-in{z-index:3;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#030406ad;place-content:center;justify-items:center;display:grid;position:absolute;top:0;right:0;bottom:0;left:0}.stem-count-in span{color:#ff8b90;letter-spacing:.16em;font-size:12px;font-weight:850}.stem-count-in strong{text-shadow:0 0 42px #d81f2785;font-size:clamp(72px,12vw,144px);line-height:1}.stem-load-button{color:#fff;background:var(--brand);border:0;border-radius:12px;justify-content:center;align-items:center;gap:10px;min-height:52px;padding:0 20px;font-weight:800;display:inline-flex}.stem-load-button svg{width:19px}.is-spinning{animation:.8s linear infinite session-spin}.stem-transport{background:#11161f;border:1px solid #242b37;border-radius:15px;grid-template-columns:48px 58px 48px 62px minmax(140px,1fr) 62px;align-items:center;gap:10px;padding:10px 12px;display:grid}.stem-main-play,.stem-skip-button{color:#f8fafc;border:0;place-items:center;display:grid}.stem-main-play{background:var(--brand);border-radius:50%;width:56px;height:56px;box-shadow:0 8px 24px #d81f2752}.stem-main-play svg{width:23px}.stem-skip-button{background:#1a202b;border-radius:11px;width:46px;height:46px;position:relative}.stem-skip-button svg{width:22px}.stem-skip-button span{font-size:9px;font-weight:900;position:absolute}.stem-main-play:disabled,.stem-skip-button:disabled,.stem-load-button:disabled{cursor:not-allowed;opacity:.42}.stem-time{color:#aeb8c8;text-align:center;font:700 12px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.stem-progress,.stem-master-controls input,.stem-track-volume input{accent-color:#e33139;width:100%}.stem-progress{min-height:44px}.stem-session-status{color:#748094;align-items:center;gap:8px;min-height:28px;font-size:11px;display:flex}.stem-session-status>span:first-child{background:#687386;border-radius:50%;width:8px;height:8px}.stem-session-status>span:first-child.is-ready{background:#22c55e;box-shadow:0 0 0 4px #22c55e1f}.stem-session-status strong{color:#c7cfdb}.stem-session-status>span:last-child{margin-left:auto}.stem-player-alert{color:#fcd69a;background:#78480a38;border:1px solid #f59e0b57;border-radius:10px;align-items:center;gap:9px;padding:10px 12px;font-size:12px;display:flex}.stem-player-alert svg{flex:none;width:17px}.stem-mixer-panel{overscroll-behavior:contain;background:#11161f;border-left:1px solid #242b37;min-width:0;min-height:0;padding:20px;overflow-y:auto}.stem-mixer-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.stem-mixer-header h2{color:#f8fafc;margin:5px 0 0;font-size:22px}.stem-reset-button{color:#b7c0ce;background:#191f29;border:1px solid #343c4b;border-radius:10px;min-height:44px;padding:0 13px;font-weight:750}.stem-master-controls{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.stem-master-controls label{background:#171d28;border:1px solid #2b3340;border-radius:12px;gap:11px;min-width:0;padding:13px;display:grid}.stem-master-controls label>span{color:#aeb8c8;align-items:center;gap:7px;font-size:12px;display:flex}.stem-master-controls label svg{color:#ff6c72;width:16px}.stem-master-controls label strong{color:#f8fafc;margin-left:auto;font-size:11px}.stem-video-sound{color:#aeb8c8;text-align:left;background:#171d28;border:1px solid #2b3340;border-radius:12px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:58px;margin-bottom:10px;padding:8px 12px;display:grid}.stem-video-sound.is-active{color:#f8fafc;background:#d81f271a;border-color:#d81f278c}.stem-video-sound:disabled{opacity:.64}.stem-video-sound>svg{width:20px;margin:auto}.stem-video-sound strong,.stem-video-sound small{display:block}.stem-video-sound strong{color:#f8fafc}.stem-video-sound small{color:#8490a2;margin-top:3px;font-size:10px}.stem-video-sound b{text-align:center;min-width:30px}.stem-track-list{gap:9px;display:grid}.stem-track{background:#171d28;border:1px solid #2c3441;border-radius:12px;gap:12px;padding:12px;transition:border-color .18s,opacity .18s;display:grid}.stem-track.is-silent{opacity:.62}.stem-track>header{grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;display:grid}.stem-track-number{color:#697589;font:800 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.stem-track header strong,.stem-track header small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.stem-track header strong{color:#f8fafc;font-size:14px}.stem-track header small{color:#7f8a9c;margin-top:3px;font-size:10px}.stem-track-switches{gap:8px;display:flex}.stem-track-switches button{color:#aeb8c8;background:#11161f;border:1px solid #353e4d;border-radius:9px;min-width:48px;min-height:44px;padding:0 9px;font-size:11px;font-weight:800}.stem-track-switches button.is-active{color:#fff;background:#842c31;border-color:#d95056}.stem-track-switches button.is-solo{color:#1e1608;background:#f4c35d;border-color:#c79637}.stem-track-volume{color:#8590a1;grid-template-columns:22px minmax(0,1fr) 42px;align-items:center;gap:9px;min-height:44px;display:grid}.stem-track-volume svg{width:18px}.stem-track-volume output{color:#c5cdda;text-align:right;font:750 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.player-error-actions{justify-content:center;gap:10px;margin-top:22px;display:flex}@media (max-width:1180px) and (orientation:landscape){.stem-player-workspace{grid-template-columns:minmax(0,1.25fr) minmax(350px,.8fr)}.stem-player-video-panel,.stem-mixer-panel{padding:14px}.stem-master-controls{grid-template-columns:1fr}.stem-session-status>span:last-child{display:none}}@media (max-height:680px) and (orientation:landscape){.stem-player-video-panel{gap:8px;padding-block:10px}.stem-session-status{display:none}.stem-mixer-panel{padding-block:12px}}@media (prefers-reduced-motion:reduce){.is-spinning,.stem-load-progress>span,.reader-sidebar,.drawing-toolbar{transition:none;animation:none}}.orientation-gate{display:none}.session-state-page{background:radial-gradient(circle at 50% 42%,#d81f2721,transparent 30%),var(--canvas);text-align:center;place-content:center;justify-items:center;min-height:100dvh;padding:48px;display:grid}.session-state-page>.brand-lockup{margin-bottom:42px}.session-state-page h1{margin:0;font-size:34px}.session-state-page>p:not(.eyebrow){max-width:520px;color:var(--muted);margin:12px 0 24px;line-height:1.7}.session-spinner{border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;width:48px;height:48px;margin-bottom:22px;animation:.8s linear infinite session-spin}@keyframes session-spin{to{transform:rotate(360deg)}}@media (max-width:1120px) and (orientation:landscape){.portal-header{grid-template-columns:64px auto minmax(136px,1fr);gap:10px;padding-inline:18px}.portal-header .brand-suffix,.service-chip{display:none}.nav-item{min-width:76px;padding-inline:12px}.reader-workspace{grid-template-columns:minmax(0,1fr);position:relative;overflow:hidden}.reader-sidebar{z-index:12;visibility:hidden;opacity:0;width:min(340px,42vw);transition:transform .18s,opacity .18s,visibility .18s;position:absolute;top:14px;bottom:14px}.reader-sidebar.is-open{visibility:visible;opacity:1;transform:translate(0)}.drawing-toolbar{grid-template-columns:repeat(3,48px);width:174px;left:12px}.drawing-toolbar .canvas-swatches,.drawing-toolbar .canvas-widths{grid-template-columns:repeat(3,44px)}.drawing-toolbar .canvas-swatches>:last-child,.drawing-toolbar .canvas-widths>:last-child{grid-column:auto}.reader-workspace:not(.left-closed) .drawing-toolbar{visibility:hidden;opacity:0;pointer-events:none;left:12px}.outline-sidebar{left:14px;transform:translate(calc(-100% - 20px))}.resource-sidebar{right:14px;transform:translate(calc(100% + 20px))}.drawer-close{display:grid}.reader-drawer-backdrop{z-index:11;background:#0305088f;border:0;display:block;position:absolute;top:0;right:0;bottom:0;left:0}.reader-sidebar.is-open{z-index:13}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-detail-heading{grid-template-columns:auto minmax(0,1fr);gap:16px}.library-detail-heading .catalog-search{grid-column:1/-1;justify-content:flex-end}.song-row{grid-template-columns:34px 52px minmax(180px,1fr) minmax(90px,.45fr) auto 22px}.song-row .song-meta:first-of-type{display:none}.song-hero{grid-template-columns:168px minmax(0,1fr);gap:22px}.song-resource-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-page{padding-inline:24px}.page-heading{align-items:center}.page-heading>div>p:last-child{display:none}.catalog-search .search-field{width:min(280px,28vw)}}@media (orientation:portrait){.landscape-workspace{display:none}.orientation-gate{min-height:100dvh;padding:max(40px,env(safe-area-inset-top)) 32px max(40px,env(safe-area-inset-bottom));color:var(--text);background:radial-gradient(circle at 50% 36%,#d81f272e,transparent 28%),var(--canvas);text-align:center;place-content:center;justify-items:center;display:grid}.orientation-gate h1{margin:4px 0 10px;font-size:30px}.orientation-gate>p:last-child{max-width:420px;color:var(--muted);line-height:1.7}.orientation-illustration{color:#ff6469;background:#d81f2714;border:1px solid #d81f2773;border-radius:26px;place-items:center;width:96px;height:96px;margin-bottom:18px;display:grid;position:relative}.orientation-illustration svg:last-child{position:absolute;bottom:8px;right:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.auth-workspace{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;height:100dvh;overflow-y:auto}@media (max-width:760px),(orientation:portrait){.auth-workspace .auth-layout{grid-template-columns:minmax(0,1fr);min-height:100%}.auth-workspace .auth-stage{min-height:auto;padding:max(24px,env(safe-area-inset-top)) 24px 16px}.auth-workspace .auth-stage-copy,.auth-workspace .stage-lines{display:none}.auth-workspace .auth-panel{min-width:0;min-height:auto;padding:16px max(24px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}.auth-workspace .auth-form-wrap{width:100%;max-width:440px;margin:24px auto}.auth-workspace .auth-panel h2{font-size:clamp(24px,6vw,32px)}.auth-workspace .input-shell input{min-width:0;font-size:16px}.auth-workspace .auth-description,.auth-workspace .form-error{overflow-wrap:anywhere}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
