@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./outfit-latin-ext-wght-normal-DdQaqQDo.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./outfit-latin-wght-normal-Bc-8i84L.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light dark;--bg: #f5f7fc;--surface: #ffffff;--raised: #ebf0fa;--line: #dce2f0;--control-line: #b4bed6;--text: #0b1533;--muted: #55617f;--ink: #0b1533;--accent: #2453e6;--accent-hover: #1a3fc0;--accent-dim: #9bb3f2;--accent-soft: #e5ecff;--on-accent: #ffffff;--amber: #a35f00;--error: #c0261a;--shadow: 0 18px 48px rgba(11, 21, 51, .16);--brand-gradient: linear-gradient( 115deg, #1673e6 0%, #2f55e8 55%, #7a2ef2 100% );--brand-gradient-hover: linear-gradient( 115deg, #0f63cf 0%, #2446d4 55%, #6a1fe0 100% );--on-brand: #ffffff;--brand-text-gradient: var(--brand-gradient);--sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--display: "Outfit Variable", Outfit, Inter, -apple-system, "Segoe UI", sans-serif;--serif: Georgia, "Times New Roman", serif;--mono: "SFMono-Regular", Consolas, monospace}@media(prefers-color-scheme:dark){:root{--bg: #070b1d;--surface: #0d1430;--raised: #141d40;--line: #1e2850;--control-line: #34406e;--text: #edf0fa;--muted: #9ba5c6;--ink: #ffffff;--accent: #7ea8ff;--accent-hover: #a3c0ff;--accent-dim: #3e5bb0;--accent-soft: #16224d;--on-accent: #071033;--amber: #f0bf7a;--error: #ffb3a6;--shadow: 0 18px 48px rgba(0, 0, 0, .45);--brand-text-gradient: linear-gradient( 115deg, #3fa9ff 0%, #6f8cff 55%, #a46bff 100% )}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation;display:inline-flex;align-items:center;justify-content:center;gap:9px;color:inherit;min-height:48px;border:0;background:none;transition:background .16s,color .16s,opacity .12s}button:disabled{opacity:.38;cursor:default}button:not(:disabled):active{opacity:.7}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.2}a{color:var(--accent)}svg{flex-shrink:0}hr{border:0;border-top:1px solid var(--line);margin:28px 0}input,select,textarea{width:100%;min-height:48px;border:1px solid var(--control-line);border-radius:9px;background:var(--bg);color:var(--text);padding:11px 13px;font-size:16px}textarea{resize:vertical;line-height:1.65}input[type=range]{padding:0;accent-color:var(--accent);border:0;background:none;cursor:pointer}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:20px;accent-color:var(--accent);flex-shrink:0;padding:0}label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--muted)}label strong{float:right;color:var(--text);font-weight:400}.checkbox-label{flex-direction:row;align-items:center;min-height:48px;font-size:14px;color:var(--text)}.hint{color:var(--muted);font-size:12px;line-height:1.7}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600;color:var(--accent)}.text-button{min-height:44px;color:var(--muted);font-size:13px;padding:0 4px}.text-button:hover{color:var(--text)}.icon-button{width:48px;height:48px;border-radius:50%;color:var(--muted);flex-shrink:0}.icon-button:hover{background:var(--surface);color:var(--text)}.primary{background:var(--brand-gradient);color:var(--on-brand);border-radius:9px;padding:13px 22px;font-weight:600}.primary:hover{background:var(--brand-gradient-hover)}.secondary{border:1px solid var(--control-line);border-radius:9px;padding:10px 16px;background:var(--surface);font-size:13px}.secondary:hover{background:var(--raised)}.full-width{width:100%}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-heading h2{font-size:17px}.section-heading h2 span{margin-left:10px;color:var(--muted);font-size:12px;font-family:var(--mono)}.status-dot{display:inline-block;background:var(--accent);width:5px;height:5px;border-radius:50%}.app-header{height:98px;max-width:1240px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:30px;padding:0}.wordmark{display:inline-flex;align-items:baseline;font-family:var(--display);font-weight:800;letter-spacing:-.035em;line-height:1;color:var(--ink);white-space:nowrap}.wordmark-c{width:.98em;height:.98em;margin:0 -.02em 0 .01em;align-self:center;transform:translateY(.06em)}.tagline{font-family:var(--display);font-weight:400;letter-spacing:.12em;color:var(--muted)}.header-right{display:flex;align-items:center;gap:24px}.header-tag{font-size:9px;letter-spacing:2px;color:var(--muted)}.header-import{background:var(--brand-gradient);color:var(--on-brand);width:44px;height:44px;min-height:44px;border-radius:50%;display:none}.header-record{width:46px;min-height:46px;border-radius:50%;color:var(--accent);border:1px solid var(--control-line)}.header-record:hover{background:var(--surface)}main{max-width:1144px;min-height:calc(100dvh - 184px);margin:auto;padding:0 48px}.library{padding:60px 0 20px}.library-heading{display:flex;align-items:center;justify-content:space-between;margin:22px 0 60px;gap:36px}.library h1{font-size:clamp(32px,3.3vw,48px);letter-spacing:-1.5px;line-height:1.18}.library h1 em{font-style:normal;font-weight:700;letter-spacing:-1px;background:var(--brand-text-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.library-heading p{color:var(--muted);margin-top:20px;font-size:14px}.library-heading .primary{flex-shrink:0}.local-tag{font-family:var(--mono);font-size:9px;letter-spacing:1px;color:var(--muted);display:flex;gap:8px;align-items:center}.empty-state{background:var(--surface);border:1px solid var(--line);border-radius:15px;margin-top:22px;padding:44px 28px 0;text-align:center;overflow:hidden}.empty-icon{width:70px;height:70px;border:1px solid var(--control-line);border-radius:50%;margin:0 auto 24px;display:grid;place-items:center;color:var(--accent)}.empty-state h2{font-family:var(--display);font-size:33px;line-height:1.15;letter-spacing:-.5px}.empty-state p{color:var(--muted);font-size:13px;line-height:1.8;margin:20px 0 24px}.file-hint{display:block;color:var(--muted);font-size:10px;margin:14px 0 36px}.steps{display:flex;justify-content:space-evenly;gap:16px;border-top:1px solid var(--line);padding:20px 0;font-size:11px;color:var(--muted)}.steps b{color:var(--accent);font-family:var(--mono);font-size:10px;font-weight:400;margin-right:12px}.privacy-note{display:flex;align-items:center;gap:14px;max-width:570px;margin:26px auto 0;color:var(--muted)}.privacy-note svg{color:var(--accent)}.privacy-note p{font-size:11px;line-height:1.7}.privacy-note strong{font-weight:500;color:var(--text)}.restore{display:flex;margin:13px auto 0;font-size:11px}.recordings{display:grid;gap:12px;margin-top:22px}.recording{width:100%;text-align:left;justify-content:flex-start;padding:26px 30px;border:1px solid var(--line);border-radius:12px;background:var(--surface);gap:24px}.recording:hover{background:var(--raised);border-color:var(--control-line)}.recording-icon{width:58px;height:70px;display:grid;place-items:center;color:var(--accent);border-radius:8px;background:var(--raised)}.recording-info{flex:1;min-width:0}.recording h3{font-size:20px;overflow-wrap:anywhere}.recording p{font-size:11px;color:var(--muted);margin-top:7px}.recording p span{margin:0 7px}.progress-track{height:3px;background:var(--control-line);margin-top:18px;border-radius:5px;overflow:hidden}.progress-track>span{height:100%;display:block;background:var(--brand-gradient)}.recording-progress{font-family:var(--mono);font-size:9px;color:var(--muted);display:flex;justify-content:space-between;margin-top:7px}.recording-arrow{margin-left:8px;color:var(--muted)}.add-recording{border:1px dashed var(--control-line);border-radius:10px;color:var(--muted);padding:18px}.app-footer{max-width:1240px;margin:auto;padding:28px 48px;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}.app-footer>span{display:flex;align-items:center;gap:8px}.practice{padding:18px 0 32px}.practice-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:12px}.practice-top .eyebrow{color:var(--muted);font-size:9px}.practice-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:44px}.player-column{min-width:0}.piece-heading{text-align:center;margin:12px 0 27px}.piece-heading h1{font-size:26px;letter-spacing:-.7px;overflow-wrap:anywhere}.piece-heading p{font-size:11px;color:var(--muted);margin-top:10px}.piece-heading p span{margin:0 8px}.mode-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:8px;position:relative;z-index:1}.mode-tabs button{position:relative;min-width:0;min-height:48px;margin-bottom:8px;border:1px solid var(--line);border-radius:8px;font-size:11px;color:var(--muted);padding:8px}.mode-tabs button[aria-pressed=true]{min-height:57px;margin-bottom:-1px;padding-bottom:17px;color:var(--accent);background:var(--surface);border-bottom-color:var(--surface);border-radius:10px 10px 0 0;box-shadow:inset 0 2px 0 var(--accent-dim)}.mode-tabs button[aria-pressed=true]:before,.mode-tabs button[aria-pressed=true]:after{content:"";position:absolute;bottom:-1px;width:10px;height:10px;pointer-events:none}.mode-tabs button[aria-pressed=true]:before{left:-11px;background:radial-gradient(circle at 0 0,transparent 9px,var(--line) 9px,var(--line) 10px,var(--surface) 10.5px)}.mode-tabs button[aria-pressed=true]:after{right:-11px;background:radial-gradient(circle at 100% 0,transparent 9px,var(--line) 9px,var(--line) 10px,var(--surface) 10.5px)}.mode-tabs button[aria-pressed=true]:first-child:before,.mode-tabs button[aria-pressed=true]:last-child:after{display:none}.mode-tabs:has(>button:first-child[aria-pressed=true])+.focus-card{border-top-left-radius:0}.mode-tabs:has(>button:last-child[aria-pressed=true])+.focus-card{border-top-right-radius:0}.focus-card .range-controls{margin:4px 0 18px}.range-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:20px}.range-controls label{flex:1}.range-controls>span{font-size:12px;color:var(--muted);padding-top:22px}.focus-card{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:22px 28px}.focus-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.focus-meta .eyebrow{font-size:8px;letter-spacing:1.4px}.duration-pill{color:var(--muted);font-family:var(--mono);font-size:10px}.focus-card h2{font-size:27px;letter-spacing:-1px;margin:27px 0 18px}.focus-card h2>span{color:var(--accent)}.focus-card h2 small{font-size:12px;letter-spacing:0;color:var(--muted);margin-left:10px}.chunk-title{color:var(--muted);margin:-10px 0 18px;overflow-wrap:anywhere}.chunk-progress{display:flex;gap:4px;width:100%;height:3px}.chunk-progress>span{flex:1;min-width:0;background:var(--control-line);border-radius:2px}.chunk-progress>span.learned{background:var(--accent-dim)}.chunk-progress>span.current{background:var(--accent)}.transcript-content{min-height:190px;padding:32px 0;display:flex;flex-direction:column;justify-content:center;gap:14px}.transcript-content p{font-family:var(--serif);font-size:25px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.transcript-content small{font-size:10px;color:var(--muted)}.transcript-chunk small{display:block;margin-top:8px}mark.spoken{color:var(--on-accent);background:var(--accent);border-radius:4px;box-shadow:0 0 0 2px var(--accent);-webkit-box-decoration-break:clone;box-decoration-break:clone}.mini-line mark.spoken{box-shadow:0 0 0 1px var(--accent);border-radius:3px}.verify-line{color:var(--muted)}.verify-link{font:inherit;font-weight:700;color:var(--accent);text-decoration:underline;text-underline-offset:2px;padding:4px 2px;margin:-4px 0}.verify-link:hover{color:var(--accent-hover)}.verify-link:disabled{opacity:.5}.letter-hints p{font-family:var(--mono);font-size:21px;letter-spacing:3px}.hidden-lines{display:flex;flex-direction:column;gap:13px;margin:8px 0 18px}.hidden-lines>span{height:9px;background:var(--control-line);border-radius:5px;width:85%}.hidden-lines>span:nth-child(2){width:95%}.hidden-lines>span:nth-child(3){width:60%}.transcript-content .quiet{font-family:var(--sans);font-size:13px;color:var(--muted)}.compare-panel{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:0 12px;margin:14px 0 0}.compare-panel.is-open{padding-bottom:14px}.compare-heading-row h2{margin:0;font-size:14px}.compare-toggle{width:100%;min-height:52px;justify-content:space-between;padding:6px 0;text-align:left}.compare-label,.compare-trailing{display:inline-flex;align-items:center;gap:10px}.compare-label{color:var(--text);font-size:13px}.compare-label svg{color:var(--accent)}.compare-trailing{color:var(--muted)}.compare-panel.is-open .compare-trailing>svg{transform:rotate(180deg)}.compare-details{border-top:1px solid var(--line);padding-top:14px}.compare-details>.hint{margin-bottom:12px}.compare-score{color:var(--accent);font-size:13px;white-space:nowrap}.compare-controls{display:flex;align-items:center;gap:14px}.compare-status{color:var(--muted);font-size:12px}.recognized-text{margin-top:14px;padding:12px;border-radius:8px;background:var(--bg);font-family:var(--serif);overflow-wrap:anywhere}.recognized-text strong{font-family:var(--sans);color:var(--muted);font-size:11px}.text-controls{border-top:1px solid var(--line);padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:5px}.text-controls>div{display:flex;gap:9px}.text-controls button{font-size:10px;padding:0 2px;color:var(--muted)}.text-controls button[aria-pressed=true]{color:var(--accent)}.text-controls .text-button{gap:5px}.playback-area{padding:20px 8px 0}.waveform{height:68px;position:relative}.waveform svg{width:100%;height:100%;display:block}.wave-muted{fill:var(--control-line)}.wave-active{fill:var(--accent)}.waveform input{position:absolute;inset:0;opacity:0;height:100%;min-height:48px;margin:0}.waveform:focus-within{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}.wave-caption{position:absolute;left:0;right:0;bottom:-2px;text-align:center;font-size:9px;color:var(--muted);pointer-events:none}.time-labels{position:relative;font-family:var(--mono);font-size:10px;display:flex;justify-content:space-between;color:var(--muted);margin-top:6px}.time-labels .selection-end{position:absolute;top:0;transform:translate(-50%);color:var(--accent);font-weight:600}.selection-badge{position:relative;width:max-content;transform:translate(-50%);margin-bottom:6px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;color:var(--on-brand);background:var(--brand-gradient);white-space:nowrap}.playback-status{text-align:center;font-size:11px;color:var(--muted);min-height:40px;margin:20px 0 3px}.playback-status span{padding:0 8px}.transport{display:flex;align-items:center;justify-content:center;gap:46px}.transport-secondary{flex-direction:column;gap:6px;min-width:65px;color:var(--muted);padding:9px}.transport-secondary span{font-size:10px}.play-button{height:90px;width:90px;background:var(--brand-gradient);color:var(--on-brand);border-radius:50%;flex-shrink:0}.play-button:hover{background:var(--brand-gradient-hover)}.play-button svg{stroke-width:1.3}.replay-button{display:flex;margin:16px auto 9px;font-size:11px}.playback-settings-button{width:100%;border:1px solid var(--line);border-radius:9px;justify-content:space-between;padding:10px 15px;gap:8px;color:var(--muted);font-size:11px}.playback-settings-button span{display:flex;gap:7px;align-items:center}.settings-panel{padding:16px 20px 24px;background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-top:10px}.settings-panel h3{font-size:18px}.settings-panel>.settings-grid{margin:10px 0 20px}.settings-panel>label{margin-top:12px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.learning-actions{display:flex;gap:10px;margin-top:20px}.learning-actions button{border:1px solid var(--control-line);border-radius:9px;font-size:12px}.learned-action{flex:1}.learned-action.selected{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-dim)}.difficult-action{padding:10px 18px;color:var(--muted)}.difficult-action.selected{color:var(--amber);border-color:var(--amber)}.chunk-sidebar{border-left:1px solid var(--line);padding-left:26px;padding-top:20px}.chunk-sidebar .section-heading h2{font-size:15px}.chunk-sidebar>.hint{margin:12px 0 23px;font-size:11px}.chunk-list{padding:0;margin:0;list-style:none;max-height:820px;overflow:auto}.chunk-list li{margin:5px 0}.chunk-list button{width:100%;border:1px solid transparent;border-radius:8px;padding:12px 10px;text-align:left;justify-content:flex-start;gap:12px;min-height:64px}.chunk-list button:hover{background:var(--surface)}.chunk-list button[aria-current=true]{background:var(--surface);border-color:var(--line)}.chunk-number{font-family:var(--mono);font-size:10px;color:var(--muted);min-width:18px}.chunk-list button[aria-current=true] .chunk-number{color:var(--accent)}.chunk-list-title{flex:1;font-size:12px;overflow-wrap:anywhere;min-width:0}.chunk-list-title small{display:block;font-family:var(--mono);font-size:9px;color:var(--muted);margin-top:6px}.chunk-list svg{color:var(--accent)}.chunk-length{font-family:var(--mono);font-size:9px;color:var(--muted)}.editor{max-width:700px;margin:auto;padding:18px 0 36px}.editor>h1{font-size:32px;letter-spacing:-.8px}.editor-intro{font-size:13px;color:var(--muted);margin-top:12px}.notice{background:var(--surface);border-left:2px solid var(--accent-dim);border-radius:0 6px 6px 0;padding:16px;font-size:12px;color:var(--muted);line-height:1.7;margin-top:20px}.editor-wave{margin:24px 0 18px;border:1px solid var(--line);border-radius:10px;padding:20px}.editor-navigation{display:flex;align-items:center;gap:16px;margin-bottom:20px}.transcript-editor{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:24px;margin:0 0 24px}.transcript-editor .section-heading{align-items:flex-start;margin-bottom:18px}.transcript-editor .section-heading .hint{margin-top:6px;max-width:560px}.transcript-editor .section-heading .eyebrow{white-space:nowrap;padding-top:5px}.transcript-editor textarea{min-height:160px}.transcript-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px}.transcript-actions .hint{max-width:560px}.editor-navigation label{flex:1}.editor-navigation .icon-button{margin-top:26px}.chunk-form{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:26px}.chunk-form .section-heading{margin-bottom:24px}.chunk-form .section-heading h2{font-size:22px}.chunk-form>.full-width{margin-top:16px}.chunk-form>.hint{margin-top:10px}.split-row{display:flex;align-items:flex-end;gap:12px;margin-top:24px}.split-row label{flex:1}.split-row button{min-width:120px}.editor-tools{display:flex;justify-content:space-between;gap:10px;margin-top:8px}.editor-tools .text-button{font-size:11px}.edit-warning{padding:14px;border:1px solid var(--line);border-radius:8px}.chunk-form>label{margin-top:18px}.rechunk-form>p{color:var(--muted);margin:12px 0 18px}.radio-choice{flex-direction:row;align-items:flex-start;gap:12px;border:1px solid var(--line);border-radius:9px;padding:12px;margin:8px 0;color:var(--text)}.radio-choice input{width:18px;min-height:18px;height:18px;margin:2px 0 0;padding:0;accent-color:var(--accent)}.radio-choice span{display:grid;gap:4px}.radio-choice small{color:var(--muted)}.rechunk-form>label:not(.radio-choice){margin:16px 0}.recorder-modal>p{color:var(--muted);margin:14px 0}.recorder-timer{font-family:var(--mono);font-size:clamp(38px,12vw,58px);text-align:center;color:var(--text);padding:30px 0}.recorder-timer small{color:var(--muted);font-size:18px}.recorder-controls{display:flex;justify-content:center;gap:12px}.recorder-controls>button{flex:1}.recorder-preview{width:100%;margin:0 0 18px}.recorder-privacy{margin-top:18px!important}.optional{font-size:10px;color:var(--muted)}.piece-details{margin-top:38px;padding-top:28px;border-top:1px solid var(--line)}.piece-details h2{font-size:20px;margin-bottom:22px}.title-form{display:flex;align-items:flex-end;gap:12px;margin-bottom:14px}.title-form label{flex:1}.backup-row{display:flex;justify-content:space-between;gap:12px;margin:20px 0 12px}.danger{color:var(--error)}.danger-button{color:var(--error);border:1px solid var(--error);border-radius:8px;padding:10px 18px}.error-banner{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:12px 18px;border:1px solid var(--error);border-radius:10px;margin-top:20px;color:var(--error);font-size:13px}.inline-error{color:var(--error);margin:20px 0;font-size:13px}.loading{min-height:60vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;color:var(--muted)}.spin{animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.busy-overlay{position:fixed;inset:0;background:var(--bg);z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:28px;text-align:center}.busy-overlay svg{color:var(--accent)}.busy-overlay h2{font-size:22px}.busy-overlay p{font-size:13px;color:var(--muted)}.modal{position:fixed;inset:0;z-index:50;margin:0;padding:24px;border:0;width:100%;height:100dvh;max-width:none;max-height:none;background:none;color:var(--text);display:flex;align-items:center;justify-content:center}.modal-scrim{position:absolute;inset:0;background:#040714db}.modal-body{position:relative;width:100%;max-width:520px;max-height:90dvh;overflow:auto;background:var(--surface);border:1px solid var(--control-line);border-radius:16px;padding:28px}.modal-body h2{font-size:24px}.modal-body h3{font-size:17px;display:flex;align-items:center;gap:10px;margin:18px 0 12px}.modal-body p{font-size:13px;color:var(--muted);line-height:1.8;margin:16px 0}.modal-body .full-width{margin-top:20px}.help-icon{color:var(--accent);margin-top:25px}.update-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);width:min(560px,calc(100% - 32px));z-index:35;display:flex;align-items:center;gap:20px;background:var(--raised);border:1px solid var(--control-line);border-radius:10px;padding:16px;font-size:12px}.update-toast button{flex-shrink:0}.visually-hidden{position:absolute!important;clip:rect(0,0,0,0);clip-path:inset(50%);width:1px!important;height:1px!important;min-height:1px!important;overflow:hidden;white-space:nowrap;padding:0!important;border:0!important}.account-button{min-height:42px;padding:0 13px;border:1px solid var(--control-line);border-radius:22px;color:var(--text);font-size:12px}.account-button:hover{background:var(--surface)}.project-heading{margin-bottom:14px}.project-tabs{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-bottom:42px}.project-tab,.project-add{min-width:0;min-height:76px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.project-tab{display:flex;align-items:stretch}.project-tab.selected{border-color:var(--accent-dim);background:var(--accent-soft)}.project-select{flex:1;min-width:0;justify-content:flex-start;text-align:left;padding:12px 10px 12px 16px}.project-select>span{min-width:0}.project-select strong,.project-select small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-select strong{font-size:13px;font-weight:550}.project-select small{color:var(--muted);font-size:10px;margin-top:3px}.project-select svg{color:var(--accent)}.project-menu{width:44px;min-height:44px;color:var(--muted)}.project-add{color:var(--muted);font-size:12px}.project-add:hover{color:var(--text);border-color:var(--control-line)}.tracks-heading{margin-top:6px}.compact-empty{padding-bottom:38px}.compact-empty>svg{color:var(--accent);margin-bottom:16px}.auth-shell{max-width:none;min-height:100dvh;padding:calc(28px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));display:grid;place-items:center;background:radial-gradient(circle at 50% 10%,var(--raised),var(--bg) 46%)}.auth-card{width:min(440px,100%);padding:34px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.auth-mark{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:34px}.auth-mark .wordmark{font-size:40px}.auth-mark .tagline{font-size:13px}.auth-card h1{font-family:var(--display);font-size:38px;margin:10px 0 12px}.auth-intro{color:var(--muted);font-size:13px;line-height:1.7;margin-bottom:24px}.auth-mode{display:grid;grid-template-columns:.8fr 1.2fr;padding:4px;margin:0 0 22px;border:1px solid var(--line);border-radius:11px;background:var(--bg)}.auth-mode button{min-height:42px;padding:8px 11px;border-radius:7px;color:var(--muted);font-size:11px}.auth-mode button[aria-pressed=true]{background:var(--raised);color:var(--text)}.auth-card form{display:grid;gap:17px}.beta-honeypot{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important}.beta-label{display:flex;justify-content:space-between;gap:12px}.beta-label>span:last-child{color:var(--muted);font-size:11px}.beta-confirmation{display:grid;justify-items:start;gap:14px;padding:22px;border:1px solid var(--accent-dim);border-radius:12px;background:var(--bg)}.beta-confirmation>svg{color:var(--accent)}.beta-confirmation h2{font-family:var(--display);font-size:26px}.beta-confirmation p{margin-bottom:5px;color:var(--muted);font-size:13px;line-height:1.7}.auth-field{display:grid;gap:8px}.password-field{display:flex;align-items:center;position:relative}.password-field input{padding-right:50px}.password-field .icon-button{position:absolute;right:1px;width:46px;height:46px}.auth-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:10px;margin:20px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid var(--line)}.google-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:50px;color:var(--text);text-decoration:none}.auth-hint{text-align:center;margin-top:18px}.auth-legal{display:flex;justify-content:center;gap:10px;margin:24px 0 0}.auth-legal a{color:var(--muted)}.auth-legal a:hover{color:var(--text)}.account-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--muted);margin-top:8px}.plan-badge{border:1px solid var(--control-line);border-radius:999px;padding:5px 10px;color:var(--muted);font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:1px}.plan-badge.premium{border-color:var(--accent-dim);color:var(--accent)}.password-form{display:grid;gap:16px;margin-top:26px}.password-form h3{margin-bottom:2px}.success-message{display:flex;align-items:center;gap:8px;color:var(--accent);font-size:12px}.account-actions{display:flex;justify-content:space-between;gap:14px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}.account-security{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px!important}.admin-screen{padding:20px 0 48px}.admin-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:30px 0}.admin-heading h1{font-family:var(--display);font-size:38px}.admin-heading p{color:var(--muted);margin-top:10px}.new-user-card{padding:26px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.approval-card{position:relative;display:grid;grid-template-columns:minmax(150px,.8fr) minmax(280px,1.2fr);gap:24px;margin-bottom:22px;padding:24px 68px 24px 26px;border:1px solid var(--accent-dim);border-radius:13px;background:var(--surface)}.approval-card h2{margin-top:7px;font-size:18px}.approval-card p{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.approval-password{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 14px}.approval-password>span{grid-column:1 / -1;color:var(--muted);font-size:10px;letter-spacing:.5px;text-transform:uppercase}.approval-password code{min-width:0;padding:12px;border:1px solid var(--control-line);border-radius:8px;background:var(--bg);color:var(--accent);font-family:var(--mono);font-size:13px;overflow-wrap:anywhere}.approval-close{position:absolute;top:10px;right:10px}.beta-queue{margin-bottom:22px;padding:26px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.beta-queue .section-heading{margin-bottom:18px}.beta-queue .eyebrow{margin-bottom:8px}.beta-empty{display:flex;align-items:center;gap:11px;padding:18px 0 4px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.beta-request-list{display:grid}.beta-request{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:20px 0;border-top:1px solid var(--line)}.beta-request h3{font-size:15px}.beta-email{margin-top:4px;color:var(--muted);font-size:11px}.beta-note{max-width:650px;margin:12px 0 8px;color:var(--text);font-size:13px;line-height:1.65;white-space:pre-wrap}.beta-actions{display:flex;gap:9px}.beta-actions button{white-space:nowrap}.new-user-card .section-heading h2{display:flex;align-items:center;gap:9px}.tts-admin{margin-bottom:22px;padding:26px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.tts-admin h2{display:flex;align-items:center;gap:9px}.tts-admin>.hint{margin:14px 0 0}.tts-admin .admin-form-grid{align-items:start}.tts-admin .admin-form-grid>button{grid-column:1 / -1;justify-self:start}.tts-usage h3{display:flex;justify-content:space-between;gap:12px;font-size:15px;margin:0 0 10px}.tts-usage h3 span{color:var(--muted);font-weight:400}.tts-usage ul{list-style:none;margin:0;padding:0}.tts-usage li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}.tts-usage li>span:last-child{text-align:right}.tts-usage small{display:block;color:var(--muted);font-size:12px}.tts-modal label{margin-top:14px}.tts-modal textarea{resize:vertical;min-height:160px}.voice-preview{width:34px;height:34px;min-height:34px;flex:none;border:1px solid var(--control-line);border-radius:50%;color:var(--accent)}.voice-choices{border:0;min-width:0;padding:0;margin:14px 0 0;display:grid;gap:8px}.voice-choices legend,.tts-voice-admin legend{font-size:13px;color:var(--muted);margin-bottom:8px;padding:0}.voice-choice{display:flex;flex-direction:row;align-items:center;gap:10px;margin:0;padding:8px 10px 8px 14px;border:1px solid var(--line);border-radius:11px;cursor:pointer}.voice-choice.selected{border-color:var(--accent-dim);background:var(--accent-soft)}.voice-choice input{accent-color:var(--accent);margin:0}.voice-choice span{flex:1;font-size:14px;color:var(--text)}.voice-single{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;font-size:14px}.tag-palette{margin-top:14px}.modal-body .tag-palette>.hint{margin:0 0 10px}.tag-groups{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.tag-groups button{flex:none;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-size:13px}.tag-groups button[aria-selected=true]{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.tag-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag-chip{min-height:34px;padding:0 10px;border-radius:8px;border:1px dashed var(--control-line);font-family:var(--mono);font-size:12px;color:var(--accent)}.tag-chip:hover{background:var(--raised)}.tts-voice-admin{border:0;min-width:0;padding:0;margin:20px 0 0}.tts-voice-admin ul{list-style:none;margin:0;padding:0}.tts-voice-admin li{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.tts-voice-admin .voice-name{flex:1;min-width:0;font-size:14px}.tts-voice-admin .voice-name small{display:block;color:var(--muted);font-size:12px}.voice-toggle{display:inline-flex;flex-direction:row;align-items:center;gap:5px;flex:none;font-size:13px;color:var(--muted);margin:0}.voice-toggle input{accent-color:var(--accent);margin:0}.tts-voice-admin>.text-button{margin-top:8px}.autotag-option{margin-top:14px;align-items:flex-start;color:var(--text)}.autotag-option input{margin-top:2px}.autotag-option span{display:grid;gap:3px;font-size:14px}.autotag-option small{color:var(--muted);font-size:12px;line-height:1.5}.modal-body .tts-count{margin:8px 0 0;text-align:right}.modal-body .tts-count.over{color:var(--error)}.admin-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:22px 0}.user-list{margin-top:38px}.user-row{display:grid;grid-template-columns:46px minmax(160px,1fr) 150px 92px;align-items:center;gap:18px;padding:18px 20px;border-bottom:1px solid var(--line)}.user-avatar{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:var(--surface);color:var(--accent)}.user-identity h3{font-size:15px}.user-identity p{color:var(--muted);font-size:11px;margin-top:3px}.user-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.user-tags span{color:var(--muted);font-family:var(--mono);font-size:8px;letter-spacing:.5px}.project-picker{margin:18px 0}@media(min-width:1300px){main{max-width:1240px;padding:0 96px}.library{padding-top:72px}}.mini-spacer{height:96px}.mini-player{position:fixed;z-index:40;right:24px;bottom:24px;width:min(420px,calc(100vw - 48px));display:flex;align-items:center;gap:6px;padding:10px 10px 10px 16px;background:var(--raised);border:1px solid var(--control-line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;animation:mini-in .22s ease-out}@keyframes mini-in{0%{transform:translateY(16px);opacity:0}}.mini-progress{position:absolute;left:0;right:0;top:0;height:2px;background:var(--brand-gradient);transform-origin:left;transition:transform .12s linear}.mini-open{flex:1;min-width:0;display:grid;grid-template-columns:1fr auto;column-gap:8px;text-align:left;padding:4px 0}.mini-title{font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-line{grid-column:1;font-family:var(--serif);font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.mini-meta{grid-column:1;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-chevron{grid-column:2;grid-row:1 / span 3;align-self:center;color:var(--muted)}.mini-play{width:46px;height:46px;flex:none;border-radius:50%;background:var(--brand-gradient);color:var(--on-brand);display:grid;place-items:center}.mini-next,.mini-close{width:40px;height:40px;min-height:40px;flex:none}@media(prefers-reduced-motion:reduce){.mini-player{animation:none}.mini-progress{transition:none}}@media(max-width:900px){.app-header{padding:0 30px;height:84px}.header-record{width:44px;min-height:44px}main{padding:0 30px}.practice-layout{grid-template-columns:minmax(0,1fr) 220px;gap:24px}.chunk-sidebar{padding-left:18px}.focus-card{padding:20px}.transport{gap:30px}.app-footer{padding:25px 30px}.library-heading{gap:20px}.library-heading .primary{padding:12px 16px}}@media(max-width:700px){.mini-player{left:0;right:0;bottom:0;width:100%;border-radius:16px 16px 0 0;border-width:1px 0 0;padding:10px 8px calc(10px + env(safe-area-inset-bottom)) 16px}.mini-spacer{height:calc(84px + env(safe-area-inset-bottom))}.app-header{height:78px;padding:env(safe-area-inset-top) 22px 0}.brand{font-size:26px}.header-tag{display:none}.header-right{gap:5px}.header-import{display:flex}main{padding:0 22px;min-height:calc(100dvh - 160px)}.library{padding-top:38px}.library>.eyebrow{font-size:9px;letter-spacing:1.7px}.library-heading{margin:20px 0 38px}.library h1{font-size:34px;letter-spacing:-1.2px}.library h1 em{font-size:32px}.library-heading p{margin-top:17px;font-size:12px;max-width:250px}.import-desktop{display:none}.section-heading h2{font-size:16px}.local-tag{font-size:8px;letter-spacing:.6px}.empty-state{margin-top:18px;padding:32px 20px 0}.empty-icon{width:60px;height:60px;margin-bottom:23px}.empty-state h2{font-size:30px}.empty-state p{font-size:12px;margin:18px 0 22px}.empty-state .primary{padding:13px 18px;font-size:13px;width:100%;max-width:310px}.file-hint{font-size:9px;margin-bottom:30px}.steps{flex-direction:column;text-align:left;gap:12px;padding:20px 4px;font-size:10px;align-items:flex-start}.steps b{margin-right:14px}.privacy-note{margin-top:23px;gap:12px;align-items:flex-start}.privacy-note p{font-size:10px}.privacy-note svg{margin-top:2px}.restore{font-size:10px}.app-footer{padding:26px 22px calc(24px + env(safe-area-inset-bottom));font-size:9px}.app-footer>span:first-child{max-width:205px;line-height:1.7}.app-footer>span:last-child{white-space:nowrap}.recording{padding:20px 17px;gap:14px}.recording-icon{width:42px;height:56px}.recording h3{font-size:17px}.recording p{font-size:10px}.recording-arrow{display:none}.recording p span{margin:0 4px}.recording-progress{font-size:8px}.practice{padding-top:10px}.practice-top{margin-bottom:8px}.practice-top .text-button{font-size:12px}.practice-top .eyebrow{font-size:8px;letter-spacing:1.5px}.practice-layout{display:block}.piece-heading{margin:14px 0 18px}.piece-heading h1{font-size:23px}.piece-heading p{font-size:10px}.mode-tabs{gap:5px}.mode-tabs button{font-size:11px;line-height:1.25;min-height:48px;padding:6px 4px}.mode-tabs button[aria-pressed=true]{min-height:57px;padding-bottom:15px}.focus-card{padding:18px 20px}.focus-card h2{margin:23px 0 15px;font-size:27px}.focus-card h2 small{font-size:11px}.transcript-content{min-height:158px;padding:24px 0}.transcript-content p{font-size:23px}.transcript-content .quiet{font-size:12px}.letter-hints p{font-size:19px}.focus-meta .eyebrow{font-size:7px;letter-spacing:1px}.text-controls{padding-top:7px}.text-controls button{font-size:9px}.text-controls>div{gap:13px}.text-controls .text-button{gap:4px}.text-controls svg{width:14px}.playback-area{padding:13px 0 0}.waveform{height:52px}.playback-status{margin:16px 0 0;min-height:35px;font-size:10px}.transport{gap:28px}.play-button{width:112px;height:112px}.play-button svg{width:40px;height:40px}.transport-secondary{min-width:64px;padding:8px 2px}.transport-secondary span{font-size:9px}.replay-button{margin:12px auto 7px}.playback-settings-button{padding:10px 12px;font-size:10px}.learning-actions{margin-top:16px}.learning-actions button{min-height:52px}.chunk-sidebar{border-left:0;border-top:1px solid var(--line);margin-top:32px;padding:24px 0 0}.chunk-sidebar .section-heading h2{font-size:17px}.chunk-sidebar>.hint{margin:8px 0 16px}.chunk-list{max-height:390px}.chunk-list button{padding:12px 14px;gap:18px}.chunk-list-title{font-size:13px}.chunk-list-title small,.chunk-length{font-size:10px}.editor{padding-top:10px}.editor>h1{font-size:28px;margin-top:24px}.editor-intro{font-size:12px}.editor-wave{padding:15px;margin-top:22px}.editor-navigation{gap:10px}.chunk-form{padding:20px}.compare-controls{align-items:stretch;flex-direction:column;gap:8px}.compare-controls>button{width:100%}.transcript-editor{padding:18px}.transcript-editor .section-heading{flex-direction:column;gap:8px}.transcript-actions{align-items:stretch;flex-direction:column;gap:8px}.transcript-actions .primary{width:100%}.settings-grid{gap:12px}.chunk-form .section-heading h2{font-size:20px}.chunk-form .secondary{font-size:12px;padding:10px 12px}.split-row button{min-width:88px}.editor-tools{flex-direction:column;align-items:flex-start;gap:0}.editor-tools .text-button{font-size:12px}.title-form{flex-direction:column;align-items:stretch}.backup-row{flex-wrap:wrap}.backup-row button{flex:1;font-size:12px;white-space:nowrap}.modal{padding:16px}.modal-body{padding:23px;max-height:85dvh}.modal-body h2{font-size:23px}.settings-panel{padding:12px 17px 20px}.desktop-only,.account-button span{display:none}.account-button{width:46px;padding:0}.project-tabs{grid-template-columns:1fr;margin-bottom:34px}.project-tab,.project-add{min-height:68px}.auth-card{padding:28px 22px}.auth-card h1{font-size:34px}.auth-mode{grid-template-columns:1fr 1.35fr}.approval-card,.beta-request,.approval-password{grid-template-columns:1fr}.approval-password>span{grid-column:1}.approval-card{padding:22px 58px 22px 20px}.beta-queue,.new-user-card{padding:22px 18px}.beta-actions{display:grid;grid-template-columns:.8fr 1.2fr}.admin-form-grid{grid-template-columns:1fr}.user-row{grid-template-columns:42px minmax(0,1fr);gap:12px;padding:18px 4px}.user-row>label,.user-row>button{grid-column:2}.admin-heading h1{font-size:31px}.admin-heading{align-items:center}}@media(max-width:460px){.app-header.has-speech .brand{font-size:23px}}@media(max-width:360px){main{padding:0 16px}.app-header{padding-left:8px;padding-right:8px}.app-header .brand{font-size:21px}.header-right{gap:2px}.header-right .icon-button,.header-record,.header-import,.account-button{width:44px;height:44px;min-height:44px}.library h1{font-size:30px}.library h1 em{font-size:29px}.focus-card{padding:16px}.transport{gap:30px}.text-controls>div{gap:10px}.playback-settings-button{font-size:9px}.app-footer{padding-left:16px;padding-right:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.degree-library{margin:-24px 0 48px;padding:24px;border:1px solid var(--accent-dim);border-radius:15px;background:linear-gradient(160deg,var(--accent-soft),var(--surface) 55%)}.degree-library h2{display:flex;align-items:center;gap:9px}.degree-library>.hint{margin:8px 0 18px}.degree-loading{display:flex;align-items:center;gap:8px}.degree-group+.degree-group{margin-top:18px}.degree-group h3{font-size:12px;font-family:var(--mono);letter-spacing:1px;color:var(--muted);font-weight:500;margin-bottom:8px}.degree-item{width:100%;justify-content:flex-start;text-align:left;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}.degree-item+.degree-item{margin-top:8px}.degree-item:hover{border-color:var(--accent-dim)}.degree-item-icon{width:36px;height:36px;flex:none;display:grid;place-items:center;border-radius:50%;color:var(--on-brand);background:var(--brand-gradient)}.degree-item-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.degree-item-text small{color:var(--muted);font-size:12px}.degree-badge{display:inline-block;margin-bottom:8px;padding:4px 10px;border-radius:999px;font-size:11px;letter-spacing:.5px;color:var(--on-brand);background:var(--brand-gradient)}.upgrade-note{max-width:420px;margin:14px auto 0;text-align:center}.admin-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:-8px 0 24px}.admin-tabs button{min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--muted)}.admin-tabs button[aria-selected=true]{color:var(--on-brand);border-color:transparent;background:var(--brand-gradient)}.admin-card{margin-bottom:22px;padding:26px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}.admin-card h2{display:flex;align-items:center;gap:9px}.admin-card>.hint{margin-top:10px}.admin-card .admin-form-grid>button{grid-column:1 / -1;justify-self:start}.admin-subheading{display:flex;gap:10px;align-items:baseline;font-size:15px;margin-top:8px}.admin-subheading span{color:var(--muted);font-family:var(--mono);font-size:12px}.library-admin-list,.log-list{list-style:none;margin:12px 0 0;padding:0}.library-admin-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.library-admin-list li.unpublished{opacity:.6}.library-admin-list li>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.library-admin-list small,.log-list small{color:var(--muted);font-size:12px}.library-admin-actions{display:flex;align-items:center;gap:4px;flex:none}.secondary.danger{color:var(--error);border-color:var(--error)}.log-list li{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px;overflow-wrap:anywhere}.log-list code{font-family:var(--mono);color:var(--accent)}.segmented{display:inline-flex;margin:14px 0 4px;border:1px solid var(--line);border-radius:999px;overflow:hidden}.segmented button{min-height:38px;padding:6px 14px;font-size:13px;color:var(--muted)}.segmented button[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:18px 0 0}.stat-grid div{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.stat-grid dt,.support-facts dt{color:var(--muted);font-size:11px}.stat-grid dd{margin:4px 0 0;font-family:var(--display);font-size:20px;font-weight:600}.support-facts{display:grid;gap:10px;margin:18px 0}.support-facts div{display:grid;grid-template-columns:130px 1fr;gap:12px}.support-facts dd{margin:0;font-size:13px}.support-dialog h3{font-size:15px;margin-top:8px}.modal-close{position:absolute;top:14px;right:14px}.support-button{min-height:32px;margin-top:6px;padding:0;font-size:12px}.user-row .degree-editor{grid-column:1 / -1}.degree-chips{display:flex;flex-wrap:wrap;gap:6px}.degree-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 10px;border:1px solid var(--accent-dim);border-radius:999px;color:var(--accent);font-size:12px}.degree-chip button{min-height:24px;width:24px;border-radius:50%;color:var(--muted)}.degree-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr) auto;gap:8px;margin-top:10px}.degree-form input,.degree-form select{min-height:40px;padding:8px 10px;font-size:13px}@media(max-width:700px){.degree-form{grid-template-columns:1fr 1fr}.degree-library{margin-top:8px;padding:18px}.support-facts div{grid-template-columns:1fr;gap:2px}.library-admin-list li{flex-direction:column;align-items:flex-start}}.app-greeting,.continue-card{display:none}html.app-shell{--tab-height: 62px;--tab-gap: 0px;--glass: color-mix(in srgb, var(--surface) 78%, transparent);--glass-line: color-mix(in srgb, var(--accent) 16%, var(--line))}html.app-shell body{background:radial-gradient(110% 55% at 100% -8%,rgba(122,46,242,.16),transparent 62%),radial-gradient(90% 45% at -10% 0%,rgba(22,115,230,.13),transparent 60%),var(--bg);background-attachment:fixed}html.app-shell .app-header{height:auto;min-height:56px;padding:calc(env(safe-area-inset-top) + 8px) 18px 8px;border-bottom:0}html.app-shell .app-header .brand{font-size:22px}.plan-badge,.shell-add,.shell-account{flex:none}html.app-shell .header-right{gap:10px}.plan-badge{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 11px;border-radius:999px;font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.01em;text-transform:none;color:var(--muted);border:1px solid var(--control-line)}.plan-badge.plan-premium,.plan-badge.plan-masonic{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:var(--accent-soft)}.shell-add,.shell-account{width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;justify-content:center}.shell-add{color:var(--text);border:1px solid var(--control-line);background:var(--glass)}.shell-account{color:var(--on-brand);background:var(--brand-gradient);font-family:var(--display);font-weight:600;font-size:17px}html.app-shell .header-tag,html.app-shell .header-record,html.app-shell .header-import,html.app-shell .account-button,html.app-shell .app-footer,html.app-shell .privacy-note,html.app-shell .restore,html.app-shell .library>.eyebrow,html.app-shell .library-heading{display:none}html.app-shell main{padding:0 16px;min-height:calc(100dvh - 64px)}html.app-shell main:after{content:"";display:block;height:calc(var(--tab-height) + var(--tab-gap) * 2 + env(safe-area-inset-bottom) + 12px)}html.app-shell .mini-spacer{height:72px}html.app-shell .library{padding:6px 0 0}html.app-shell .app-greeting{display:block;margin:4px 2px 18px}html.app-shell .app-greeting p{color:var(--muted);font-size:15px}html.app-shell .app-greeting h1{margin-top:2px;font-family:var(--display);font-weight:300;font-size:clamp(32px,9vw,40px);line-height:1.08;letter-spacing:-.02em}html.app-shell .app-greeting em{font-style:normal;font-weight:500;background:var(--brand-text-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}html.app-shell .continue-card{display:flex;align-items:center;gap:14px;width:100%;min-height:0;margin-bottom:22px;padding:16px 16px 16px 18px;text-align:left;border:1px solid var(--glass-line);border-radius:24px;background:linear-gradient(150deg,var(--accent-soft),var(--glass) 62%);box-shadow:var(--shadow)}.continue-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.continue-text small{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.continue-text strong{font-family:var(--display);font-size:19px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.continue-text>span:not(.continue-progress){font-size:13px;color:var(--muted)}.continue-progress{display:block;height:4px;margin-top:8px;border-radius:99px;background:var(--line);overflow:hidden}.continue-progress span{display:block;height:100%;border-radius:99px;background:var(--brand-gradient)}.continue-play{width:54px;height:54px;flex:none;display:grid;place-items:center;border-radius:50%;color:var(--on-brand);background:var(--brand-gradient);box-shadow:0 8px 24px #2f55e859}html.app-shell .degree-library{margin:0 0 22px;padding:16px;border-radius:24px}html.app-shell .degree-library>.hint{margin:4px 0 10px;font-size:13px;line-height:1.5}html.app-shell .section-heading h2{font-size:19px}html.app-shell .project-heading{margin-bottom:10px}html.app-shell .project-tabs{display:flex;gap:8px;overflow-x:auto;margin:0 -16px 22px;padding:2px 16px 6px;scrollbar-width:none}html.app-shell .project-tabs::-webkit-scrollbar{display:none}html.app-shell .project-tab{flex:none;display:flex;align-items:center;min-height:0;border-radius:999px;border:1px solid var(--glass-line);background:var(--glass);padding:0 4px 0 0}html.app-shell .project-tab.selected{border-color:var(--accent);background:var(--accent-soft)}html.app-shell .project-select{min-height:40px;padding:6px 4px 6px 14px;gap:8px}html.app-shell .project-select svg{display:none}html.app-shell .project-select:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand-gradient)}html.app-shell .project-select>span{display:flex;align-items:baseline;gap:6px}html.app-shell .project-select small{margin-top:0}html.app-shell .project-select strong{font-size:14px;font-weight:600}html.app-shell .project-select small{font-size:12px}html.app-shell .project-menu{width:32px;min-height:32px}html.app-shell .project-add{flex:none;min-height:42px;padding:0 16px;border-radius:999px;border:1px dashed var(--control-line);font-size:14px}.recording-detail,.recording-meta,.recording-play{display:none}html.app-shell .tracks-heading{margin-bottom:2px}html.app-shell .recordings{display:flex;flex-direction:column;gap:0}html.app-shell .recording{min-height:0;align-items:center;padding:12px 2px;gap:14px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;box-shadow:none}html.app-shell .recording-icon{position:relative;width:58px;height:58px;flex:none;border-radius:12px;color:var(--on-brand);background:var(--brand-gradient);overflow:hidden}html.app-shell .recording-icon:after{content:"";position:absolute;left:0;bottom:0;height:4px;width:var(--done, 0%);background:#ffffffd9}html.app-shell .recording-info{display:flex;flex-direction:column;gap:3px;min-width:0}html.app-shell .recording-info h3{font-size:15.5px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}html.app-shell .recording-info p,html.app-shell .recording-info .progress-track,html.app-shell .recording-info .recording-progress,html.app-shell .recording-arrow{display:none}html.app-shell .recording-detail,html.app-shell .recording-meta{display:block;font-size:12.5px;color:var(--muted)}html.app-shell .recording-meta{font-size:12px;opacity:.8}html.app-shell .recording-play{display:grid;place-items:center;flex:none;width:38px;height:38px;margin-left:auto;border-radius:50%;color:var(--text);border:1px solid var(--control-line)}html.app-shell .empty-state{padding:28px 18px 0;border-radius:24px}html.app-shell .empty-state h2{font-size:26px}html.app-shell .add-recording{border-radius:20px}.tab-bar{position:fixed;z-index:45;left:0;right:0;bottom:0;height:calc(var(--tab-height) + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;padding:6px 4px env(safe-area-inset-bottom);border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.tab-item{grid-row:1;min-width:0;min-height:54px;flex-direction:column;gap:4px;padding:4px 0;border-radius:12px;background:none;color:color-mix(in srgb,var(--text) 66%,transparent);font-size:11.5px;letter-spacing:.01em}.tab-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.tab-item[aria-current=page]{color:var(--text);font-weight:600}.tab-item[aria-current=page] svg{color:var(--accent)}.tab-item:disabled{opacity:.35}.app-view-title{margin:4px 2px 18px;font-family:var(--display);font-weight:600;font-size:clamp(28px,8vw,34px);letter-spacing:-.02em}.upgrade-list{list-style:none;margin:14px 0;padding:0;display:grid;gap:10px}.upgrade-list li{display:flex;align-items:center;gap:10px}.upgrade-list svg{flex:none;color:var(--accent)}html.app-shell .mini-player{left:8px;right:8px;width:auto;bottom:calc(var(--tab-height) + env(safe-area-inset-bottom) + 6px);border-radius:16px;border-color:var(--glass-line);background:color-mix(in srgb,var(--raised) 92%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}html.app-shell .update-toast{bottom:calc(var(--tab-height) + env(safe-area-inset-bottom) + 14px)}html.app-shell .modal{padding:0;align-items:flex-end}html.app-shell .modal-body{max-width:none;max-height:88dvh;padding:22px 20px calc(22px + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;border-bottom:0;animation:sheet-up .22s ease-out}@keyframes sheet-up{0%{transform:translateY(24px);opacity:.6}}@media(prefers-reduced-motion:reduce){html.app-shell .modal-body{animation:none}}.sheet-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.sheet-close{width:38px;height:38px;min-height:38px;border-radius:50%;background:var(--raised);color:var(--muted)}.add-sheet ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.sheet-option{width:100%;justify-content:flex-start;gap:14px;padding:12px 14px;text-align:left;border:1px solid var(--glass-line, var(--line));border-radius:18px;background:var(--raised)}.sheet-option>span:last-child{display:flex;flex-direction:column;gap:2px}.sheet-option strong{font-size:15px;font-weight:600}.sheet-option small{color:var(--muted);font-size:12px}.sheet-icon{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:14px;color:var(--on-brand);background:var(--brand-gradient)}html.app-shell .practice{padding-top:0}html.app-shell .practice-top{margin:2px 0 10px}html.app-shell .practice-top .eyebrow{display:none}html.app-shell .practice-top>.text-button,html.app-shell .practice-top>.icon-button{width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;justify-content:center;background:var(--glass);border:1px solid var(--glass-line);color:var(--text);font-size:0}html.app-shell .practice-top>.text-button svg{margin:0}html.app-shell .piece-heading{margin:-50px 56px 16px}html.app-shell .piece-heading h1{font-size:20px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html.app-shell .piece-heading p{margin-top:4px}html.app-shell .mode-tabs{display:flex;gap:4px;overflow-x:auto;margin:0 0 12px;padding:4px;border-radius:999px;border:1px solid var(--glass-line);background:var(--glass);scrollbar-width:none}html.app-shell .mode-tabs::-webkit-scrollbar{display:none}html.app-shell .mode-tabs button,html.app-shell .mode-tabs button[aria-pressed=true]{flex:1 0 auto;min-height:38px;margin:0;padding:6px 12px;border:0;border-radius:999px;box-shadow:none;font-size:13px;white-space:nowrap;background:none}html.app-shell .mode-tabs button[aria-pressed=true]{color:var(--on-brand);background:var(--brand-gradient)}html.app-shell .mode-tabs button[aria-pressed=true]:before,html.app-shell .mode-tabs button[aria-pressed=true]:after{display:none}html.app-shell .mode-tabs+.focus-card,html.app-shell .focus-card{border-radius:24px;padding:16px 18px;background:var(--glass);border-color:var(--glass-line)}html.app-shell .focus-card h2{font-size:26px}html.app-shell .practice .waveform{margin-top:4px}html.app-shell .practice .transport{position:fixed;z-index:44;left:12px;right:12px;bottom:calc(var(--tab-gap) + env(safe-area-inset-bottom));height:calc(var(--tab-height) + 22px);gap:34px;border:1px solid var(--glass-line);border-radius:30px;background:color-mix(in srgb,var(--surface) 84%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow)}html.app-shell .practice .transport-secondary{width:52px;height:52px;min-width:0;min-height:52px;padding:0;border-radius:50%;background:var(--raised);color:var(--text)}html.app-shell .practice .transport-secondary span{display:none}html.app-shell .practice .play-button{width:74px;height:74px;box-shadow:0 10px 28px #2f55e873}html.app-shell .practice .play-button svg{width:30px;height:30px}html.app-shell[data-screen=practice] .app-header{display:none}html.app-shell[data-screen=practice] .practice{padding-top:calc(env(safe-area-inset-top) + 10px)}html.app-shell .mode-tabs button{padding:6px 11px;font-size:12.5px}.dock-extra,.back-collapse{display:none}html.app-shell .practice .dock-extra{display:inline-flex;width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;color:var(--muted)}html.app-shell .practice .dock-extra[aria-expanded=true]{color:var(--accent);background:var(--accent-soft)}html.app-shell .practice .transport{gap:14px}html.app-shell .practice .replay-button,html.app-shell .practice-top .back-arrow{display:none}html.app-shell .practice-top .back-collapse{display:block}html.app-shell .practice .transcript-content p{font-size:clamp(22px,6.4vw,27px);line-height:1.38}html.app-shell .practice .verify-line.is-verified{font-size:11px;opacity:.55}.dock-actions,.chunk-edit{display:none}html.app-shell{--dock-actions: 60px;--dock-controls: 84px}html.app-shell[data-screen=practice] main:after{height:calc(var(--dock-actions) + var(--dock-controls) + env(safe-area-inset-bottom) + 24px)}html.app-shell .practice .learning-actions,html.app-shell .practice .playback-settings-button,html.app-shell .practice .transport .dock-extra:first-child{display:none}html.app-shell .practice .transport{left:0;right:0;bottom:calc(var(--dock-actions) + env(safe-area-inset-bottom));height:var(--dock-controls);gap:22px;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:color-mix(in srgb,var(--surface) 94%,transparent)}html.app-shell .practice .transport .dock-extra:last-child{order:-1}html.app-shell .practice .transport:after{content:"";width:44px;flex:none}html.app-shell .practice .transport-secondary{background:none;width:48px;height:48px;min-height:48px}html.app-shell .practice .play-button{width:72px;height:72px}html.app-shell .practice .dock-actions{position:fixed;z-index:44;left:0;right:0;bottom:0;height:calc(var(--dock-actions) + env(safe-area-inset-bottom));padding:0 8px env(safe-area-inset-bottom);display:flex;align-items:flex-start;justify-content:space-around;background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}html.app-shell .practice .dock-actions button{flex:1;min-width:0;min-height:54px;flex-direction:column;gap:3px;padding:4px 2px;border-radius:14px;color:var(--muted);font-size:11px}html.app-shell .practice .dock-actions strong{font-family:var(--display);font-size:16px;line-height:20px;color:var(--text)}html.app-shell .practice .dock-actions .selected,html.app-shell .practice .dock-actions [aria-expanded=true]{color:var(--accent)}html.app-shell .practice .dock-actions .selected svg{stroke-width:2.6}html.app-shell .practice .settings-panel{position:fixed;z-index:46;left:8px;right:8px;bottom:calc(var(--dock-actions) + var(--dock-controls) + env(safe-area-inset-bottom) + 8px);max-height:58dvh;overflow-y:auto;margin:0;border-radius:22px;box-shadow:var(--shadow);animation:sheet-up .2s ease-out}html.app-shell .mode-tabs+.focus-card,html.app-shell .focus-card{border:0;border-radius:28px;padding:20px 20px 18px;background:linear-gradient(165deg,color-mix(in srgb,var(--accent) 22%,var(--surface)),color-mix(in srgb,#8b2cf6 14%,var(--surface)));box-shadow:0 18px 40px -22px #2f55e88c}html.app-shell .practice .transcript-content p{font-weight:700;letter-spacing:-.01em}html.app-shell .chunk-list li{display:flex;align-items:center;gap:6px}html.app-shell .chunk-list li>button:first-child{flex:1;min-width:0}html.app-shell .chunk-edit{display:inline-flex;flex:none;width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;justify-content:center;color:var(--muted)}html.app-shell main.welcome{padding:0;min-height:100dvh}html.app-shell main.welcome:after{display:none}.auth-card{animation:auth-in .5s cubic-bezier(.2,.8,.2,1) both}@keyframes auth-in{0%{opacity:0;transform:translateY(24px)}}@media(prefers-reduced-motion:reduce){.auth-card{animation:none}}.welcome{--p: 0;color:var(--text);background:var(--bg);overflow:clip}html.welcome-snap{scroll-snap-type:y mandatory}.welcome-hero,.welcome-about,.welcome-start{position:sticky;top:0;min-height:100dvh;scroll-snap-align:start;background:var(--bg)}.welcome-about{z-index:2;box-shadow:0 -24px 48px -24px #00000073}.welcome-start{z-index:3;box-shadow:0 -24px 48px -24px #00000073}@media(max-height:700px){.welcome-about{position:relative}}.welcome em{font-style:normal;background:var(--brand-text-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.welcome-splash{position:fixed;z-index:60;inset:0;display:grid;place-items:center;background:var(--bg);pointer-events:none;animation:splash-out .45s ease 1.6s forwards}.splash-orb,.splash-mark{grid-area:1 / 1}.splash-orb{width:190px;height:190px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#22b8ff,transparent 60%),radial-gradient(circle at 70% 70%,#a23bff,transparent 62%),#3b5bff;filter:blur(30px);opacity:0;animation:orb-pulse 1.5s ease-in-out .1s forwards}.splash-mark{position:relative;filter:drop-shadow(0 6px 18px rgba(37,99,235,.35));animation:mark-in .5s cubic-bezier(.2,.8,.2,1) both,mark-out .4s ease-in 1.35s forwards}@keyframes orb-pulse{0%{opacity:0;transform:scale(.5)}35%{opacity:.95;transform:scale(1.12)}60%{opacity:.85;transform:scale(.94)}to{opacity:0;transform:scale(.7)}}@keyframes mark-in{0%{opacity:0;transform:scale(.6)}}@keyframes mark-out{to{opacity:0;transform:scale(.7)}}@keyframes splash-out{to{opacity:0;visibility:hidden}}.welcome-hero{min-height:100dvh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}.welcome-wash{position:absolute;inset:0 0 auto;height:62%;background:radial-gradient(70% 90% at 0% 0%,color-mix(in srgb,#8b5cf6 38%,transparent),transparent 70%),radial-gradient(70% 90% at 100% 0%,color-mix(in srgb,#22b8ff 40%,transparent),transparent 70%),radial-gradient(60% 70% at 50% 0%,color-mix(in srgb,#3b82f6 30%,transparent),transparent 75%);mask-image:linear-gradient(to bottom,#000 40%,transparent);-webkit-mask-image:linear-gradient(to bottom,#000 40%,transparent);opacity:0;animation:welcome-fade .9s ease 1.7s forwards}.welcome-skip{position:absolute;z-index:3;top:calc(env(safe-area-inset-top) + 12px);right:14px;min-height:38px;padding:0 16px;border-radius:999px;color:var(--text);border:1px solid color-mix(in srgb,var(--text) 16%,transparent);background:color-mix(in srgb,var(--surface) 70%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:14px;opacity:0;animation:welcome-fade .6s ease 2.5s forwards}.welcome-collage{position:absolute;z-index:1;top:calc(env(safe-area-inset-top) + 34px);left:50%;width:min(100%,520px);height:min(58dvh,140vw);margin-left:max(-50%,-260px);container-type:inline-size;translate:0 calc(var(--p) * -140px);opacity:0;animation:collage-in 1.15s cubic-bezier(.2,.8,.2,1) 1.7s forwards}.collage-drift{position:absolute;inset:0;animation:collage-drift 22s ease-in-out 2.8s infinite alternate}.poster{position:absolute;left:var(--x);top:var(--y);width:var(--w);aspect-ratio:1;padding:1.5cqw;border-radius:2.6cqw;background:#fff;box-shadow:0 2.4cqw 6cqw -2cqw #0f172a59,0 0 0 1px #0f172a0d;rotate:var(--r);animation:poster-float 7s ease-in-out infinite alternate;animation-delay:var(--d, 0s)}.poster-face{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:1.1cqw;padding:2.6cqw;border-radius:1.6cqw;overflow:hidden;isolation:isolate;color:#fff;font-family:var(--display);font-size:3.3cqw;line-height:1.08;background:var(--shadow)}.poster-photo{position:absolute;z-index:-1;inset:-18%;background:radial-gradient(38% 34% at 28% 30%,var(--light),transparent 70%),radial-gradient(46% 40% at 74% 62%,var(--accent),transparent 72%),radial-gradient(30% 26% at 62% 18%,color-mix(in srgb,var(--light) 70%,#fff),transparent 70%),linear-gradient(160deg,var(--accent),var(--shadow) 75%);filter:blur(2.2cqw) saturate(1.15)}.poster-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 30%,rgba(5,8,20,.62))}.poster-face strong{font-size:1.28em;font-weight:700;text-shadow:0 1px 6px rgba(0,0,0,.35)}.poster-face small{font-size:.7em;font-weight:500;letter-spacing:.02em;opacity:.88}.poster-wave{display:flex;align-items:center;gap:.5cqw;height:3.2cqw}.poster-wave i{flex:1;height:40%;border-radius:1cqw;background:#ffffffe6}.poster-wave i:nth-child(3n){height:100%}.poster-wave i:nth-child(3n+1){height:62%}.poster-wave i:nth-child(4n){height:84%}.poster-1{--x: -6%;--y: 2%;--w: 30%;--r: -5deg;--d: -1s}.poster-2{--x: 30%;--y: 9%;--w: 30%;--r: 3deg;--d: -3s}.poster-3{--x: 68%;--y: 0%;--w: 34%;--r: -3deg;--d: -5s}.poster-4{--x: 2%;--y: 37%;--w: 31%;--r: 4deg;--d: -2s}.poster-5{--x: 38%;--y: 43%;--w: 27%;--r: -4deg;--d: -6s}.poster-6{--x: 70%;--y: 34%;--w: 33%;--r: 5deg;--d: -4s}.poster-7{--x: -9%;--y: 71%;--w: 30%;--r: -3deg;--d: -.5s}.poster-8{--x: 27%;--y: 76%;--w: 28%;--r: 3deg;--d: -2.5s}.poster-9{--x: 61%;--y: 68%;--w: 30%;--r: -5deg;--d: -4.5s}.poster-10{--x: 101%;--y: 18%;--w: 30%;--r: 4deg;--d: -3.5s}.welcome-copy{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:26px 24px calc(env(safe-area-inset-bottom) + 30px);background:linear-gradient(to bottom,transparent,var(--bg) 22%);opacity:calc(1 - var(--p) * 1.4)}.welcome-wordmark{font-size:22px;opacity:0;color:var(--muted);animation:welcome-rise .7s ease 2s forwards}.welcome-copy h1{margin:10px 0 22px;font-family:var(--display);font-weight:600;font-size:clamp(38px,11vw,54px);line-height:1.04;letter-spacing:-.025em}.welcome-copy h1>*{display:block;opacity:0;transform:translateY(18px);animation:welcome-rise .75s cubic-bezier(.2,.8,.2,1) forwards}.welcome-copy h1>:nth-child(1){animation-delay:2.05s}.welcome-copy h1>:nth-child(2){animation-delay:2.15s}.welcome-copy h1>:nth-child(3){animation-delay:2.25s}.welcome-arrow{width:54px;height:54px;min-height:54px;padding:0;border-radius:50%;color:#fff;background:var(--brand-gradient);box-shadow:0 12px 28px -10px #2f55e8e6;opacity:0;transform:translateY(18px);animation:welcome-rise .7s cubic-bezier(.2,.8,.2,1) 2.4s forwards,welcome-bob 1.8s ease-in-out 3.4s infinite}.welcome-about{max-width:560px;margin:0 auto;padding:64px 24px 24px}.welcome-kicker{margin:0 0 10px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}.welcome-about h2,.welcome-start h2{margin:0;font-family:var(--display);font-weight:300;font-size:clamp(30px,8.4vw,42px);line-height:1.12;letter-spacing:-.02em}.welcome-about h2 em,.welcome-start h2 em{font-weight:600}.welcome-steps{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:14px}.welcome-step{display:flex;gap:16px;align-items:center;padding:18px;border-radius:24px;border:1px solid var(--line);background:linear-gradient(150deg,color-mix(in srgb,var(--accent) 10%,var(--surface)),var(--surface))}.welcome-step:nth-child(2){transition-delay:.08s}.welcome-step:nth-child(3){transition-delay:.16s}.welcome-step h3{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-family:var(--display);font-size:19px}.welcome-step h3 svg{color:var(--accent)}.welcome-step p{margin:0;font-size:14.5px;line-height:1.5;color:var(--muted)}.step-art{flex:none;width:74px;height:74px;border-radius:20px;background:var(--brand-gradient);box-shadow:0 10px 26px -10px #2f55e8cc}.art-listen{display:flex;align-items:center;justify-content:center;gap:3px}.art-listen span{width:4px;height:34px;border-radius:4px;background:#ffffffeb;animation:welcome-eq 1.1s ease-in-out infinite alternate}.art-repeat,.art-know{display:flex;flex-direction:column;justify-content:center;padding:0 13px}.art-repeat{gap:5px}.art-repeat span{height:7px;border-radius:4px;background:#ffffffeb;transform-origin:left;animation:welcome-grow 3.2s ease-in-out infinite}.art-repeat span:nth-child(1){width:70%}.art-repeat span:nth-child(2){width:92%;animation-delay:.35s}.art-repeat span:nth-child(3){width:60%;animation-delay:.7s}.art-repeat span:nth-child(4){width:82%;animation-delay:1.05s}.art-know{gap:7px}.art-know span{height:8px;border-radius:4px;background:#fffffff2;animation:welcome-cue 3.6s ease-in-out infinite}.art-know span:nth-child(2){width:80%;animation-delay:.3s}.art-know span:nth-child(3){width:55%;animation-delay:.6s}.welcome-start{max-width:560px;margin:0 auto;padding:56px 24px calc(56px + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:14px}.welcome-start p{margin:0 0 14px;color:var(--muted)}.welcome-cta{width:min(360px,100%);min-height:56px;border-radius:999px;font-size:17px;box-shadow:0 14px 34px -12px #2f55e8e6}.welcome .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}.welcome .reveal.is-in{opacity:1;transform:none}@keyframes collage-in{0%{opacity:0;transform:scale(1.35) translateY(40px)}to{opacity:1;transform:none}}@keyframes collage-drift{to{transform:translate(-14cqw)}}@keyframes poster-float{to{translate:0 -1.6cqw}}@keyframes welcome-rise{to{opacity:1;transform:none}}@keyframes welcome-fade{to{opacity:1}}@keyframes welcome-bob{50%{transform:translateY(6px)}}@keyframes welcome-eq{0%{transform:scaleY(.25)}to{transform:scaleY(1)}}@keyframes welcome-grow{0%,to{transform:scaleX(.15);opacity:.4}40%,80%{transform:none;opacity:1}}@keyframes welcome-cue{0%,20%,to{opacity:1}50%,70%{opacity:.12}}@media(prefers-reduced-motion:reduce){.welcome-splash{display:none}.welcome *,.welcome-collage{animation:none!important;transition:none!important}.welcome .reveal,.welcome-wash,.welcome-skip,.welcome-collage,.welcome-wordmark,.welcome-copy h1>*,.welcome-arrow{opacity:1;transform:none}}.degree-unlock{display:grid;gap:12px;margin-top:6px}.degree-unlock input{font-size:22px;letter-spacing:.4em;text-align:center}.degree-lock-now{flex:none}@media(min-width:761px){html.app-shell{--column: 860px;--reach: 720px}html.app-shell main{max-width:var(--column);margin:0 auto;padding:0 24px}html.app-shell[data-screen=practice] main,html.app-shell[data-screen=editor] main,html.app-shell[data-screen=admin] main{max-width:1180px}html.app-shell .app-header{padding-left:max(24px,calc((100vw - var(--column)) / 2 + 24px));padding-right:max(24px,calc((100vw - var(--column)) / 2 + 24px))}html.app-shell .tab-bar{padding-left:max(4px,calc((100vw - var(--reach)) / 2));padding-right:max(4px,calc((100vw - var(--reach)) / 2))}html.app-shell .mini-player{left:max(8px,calc((100vw - var(--reach)) / 2));right:max(8px,calc((100vw - var(--reach)) / 2))}html.app-shell .practice .dock-actions{padding-left:max(8px,calc((100vw - var(--reach)) / 2));padding-right:max(8px,calc((100vw - var(--reach)) / 2))}html.app-shell .practice .settings-panel{left:max(8px,calc((100vw - 600px)/2));right:max(8px,calc((100vw - 600px)/2))}html.app-shell .modal-body{width:min(600px,100%);margin:0 auto}}@media(min-width:761px)and (orientation:landscape){html.app-shell .practice .focus-card{max-height:max(180px,calc(100dvh - 450px));overflow-y:auto;overscroll-behavior:contain}}.button-link{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:44px;text-decoration:none;white-space:nowrap}@media(min-width:761px){html.app-shell{--edge: max(24px, calc((100vw - 1180px)/2 + 24px) );--side: 260px;--tablet-dock: 104px;--controls: 340px}html.app-shell[data-screen=practice] main:after{height:calc(var(--tablet-dock) + env(safe-area-inset-bottom) + 24px)}html.app-shell .practice{position:relative}html.app-shell .practice .transport{left:0;right:0;bottom:env(safe-area-inset-bottom);height:var(--tablet-dock);justify-content:flex-end;gap:16px;padding-right:var(--edge)}html.app-shell .practice .transport:after{display:none}html.app-shell .practice .playback-area{position:fixed;z-index:45;left:var(--edge);right:calc(var(--edge) + var(--controls));bottom:calc(env(safe-area-inset-bottom) + 10px);margin:0}html.app-shell .practice .playback-area .selection-badge{margin-bottom:4px}html.app-shell .practice .transport{z-index:1}html.app-shell .practice .playback-area .selection-badge,html.app-shell .practice .playback-area .waveform,html.app-shell .practice .playback-area .time-labels{z-index:2}html.app-shell .practice .waveform{height:46px;margin-top:0}html.app-shell .practice .playback-status{display:none}html.app-shell .practice .dock-actions{left:auto;right:var(--edge);bottom:calc(var(--tablet-dock) + env(safe-area-inset-bottom) + 16px);width:calc(var(--side) - 26px);height:auto;padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px;border:1px solid var(--glass-line);border-radius:20px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow)}html.app-shell .practice .dock-actions button{min-height:64px;border-radius:14px;background:var(--raised)}html.app-shell .chunk-sidebar{padding-bottom:200px}html.app-shell .practice .settings-panel{left:auto;right:calc(var(--edge) + var(--side) + 12px);bottom:calc(var(--tablet-dock) + env(safe-area-inset-bottom) + 16px);width:min(420px,calc(100vw - var(--side) - 2 * var(--edge) - 12px))}}@media(min-width:761px)and (max-width:900px){html.app-shell{--side: 220px;--controls: 300px}}@media(min-width:1000px){html.app-shell .piece-heading{margin:-50px 526px 16px 56px;text-align:left}html.app-shell .practice .mode-tabs{position:absolute;z-index:30;top:calc(env(safe-area-inset-top) + 10px);right:56px;width:460px;margin:0}}@media(min-width:761px)and (orientation:landscape){html.app-shell .practice .focus-card{max-height:max(220px,calc(100dvh - 300px))}}.mini-player{flex-wrap:wrap}.mini-wave{flex:0 0 100%;order:-1;height:30px;margin:0 0 4px}.mini-wave .waveform{height:30px}.mini-player:has(.mini-wave) .mini-progress{display:none}html.app-shell .mini-spacer{height:108px}.live-wave{width:100%;height:56px;margin:8px 0 10px}.live-wave canvas{display:block;width:100%;height:100%}@media(max-width:760px){html.app-shell{--dock-actions: 60px;--dock-controls: 80px;--dock-wave: 88px;--dock-modes: 52px;--dock-total: calc( var(--dock-actions) + var(--dock-controls) + var(--dock-wave) + var(--dock-modes) )}html.app-shell[data-screen=practice] main:after{height:calc(var(--dock-total) + env(safe-area-inset-bottom) + 20px)}html.app-shell .practice .focus-meta .eyebrow{display:none}html.app-shell .practice .playback-area{position:fixed;z-index:43;left:0;right:0;bottom:0;margin:0;padding:14px 18px calc(var(--dock-actions) + var(--dock-modes) + var(--dock-controls) + env(safe-area-inset-bottom));border-top:1px solid var(--line);border-radius:22px 22px 0 0;background:var(--surface);box-shadow:0 -14px 30px -20px #0009}html.app-shell .practice .playback-status{display:none}html.app-shell .practice .selection-badge{margin-bottom:4px;font-size:10.5px}html.app-shell .practice .waveform{height:40px;margin-top:0}html.app-shell .practice .time-labels{margin-top:4px}html.app-shell .practice .mode-tabs{position:fixed;z-index:44;left:14px;right:14px;bottom:calc(var(--dock-actions) + env(safe-area-inset-bottom) + 2px);margin:0;background:var(--raised)}html.app-shell .practice .transport{z-index:44;bottom:calc(var(--dock-actions) + var(--dock-modes) + env(safe-area-inset-bottom));height:var(--dock-controls);border-top:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none}html.app-shell .practice .dock-actions{z-index:44;background:none;-webkit-backdrop-filter:none;backdrop-filter:none}html.app-shell .practice .settings-panel{bottom:calc(var(--dock-total) + env(safe-area-inset-bottom) + 8px)}html.app-shell .chunk-sidebar{display:none}}.support-passcode{margin:18px 0 6px;padding:14px;border:1px solid var(--line);border-radius:14px}.support-passcode h3{margin:0 0 4px}.support-passcode-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.support-passcode-row input{flex:1 1 140px;min-width:0}html.app-shell .practice .compare-panel:not(.is-open){display:none}html.app-shell .practice .compare-panel.is-open{position:fixed;z-index:46;left:8px;right:8px;bottom:calc(var(--dock-total, 280px) + env(safe-area-inset-bottom) + 8px);max-height:58dvh;overflow-y:auto;margin:0;border-radius:22px;background:var(--surface);box-shadow:var(--shadow);animation:sheet-up .2s ease-out}.fullscreen-toggle{display:none}@media(min-width:761px){html.app-shell .practice .compare-panel.is-open,html.app-shell .practice .settings-panel{left:auto;right:calc(var(--edge) + var(--side) + 48px);bottom:calc(var(--tablet-dock) + env(safe-area-inset-bottom) + 16px);width:min(420px,calc(100vw - var(--side) - 2 * var(--edge) - 12px))}html.app-shell .practice .fullscreen-toggle{position:fixed;z-index:45;right:calc(var(--edge) + var(--side) - 26px + 12px);bottom:calc(var(--tablet-dock) + env(safe-area-inset-bottom) + 16px);display:grid;place-items:center;width:48px;height:48px;min-height:48px;padding:0;border-radius:50%;border:1px solid var(--glass-line);background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text);box-shadow:var(--shadow)}html.app-shell .practice .fullscreen-toggle[aria-pressed=true]{color:var(--accent)}}.lyrics-view{position:fixed;z-index:70;inset:0;display:flex;flex-direction:column;overflow:hidden;color:var(--lyric-ink);background:var(--bg);--lyric-ink: #0e1633;--lyric-soft: rgba(14, 22, 51, .5);--lyric-shadow: 0 1px 16px rgba(255, 255, 255, .6);--lyric-chip: rgba(14, 22, 51, .08);--lyric-veil: linear-gradient( to bottom, rgba(255, 255, 255, .12), rgba(255, 255, 255, .28) 55%, rgba(255, 255, 255, .72) )}@media(prefers-color-scheme:dark){.lyrics-view{--lyric-ink: #fff;--lyric-soft: rgba(255, 255, 255, .6);--lyric-shadow: 0 2px 18px rgba(0, 0, 0, .35);--lyric-chip: rgba(255, 255, 255, .14);--lyric-veil: linear-gradient( to bottom, rgba(5, 8, 26, .25), rgba(5, 8, 26, .35) 55%, rgba(5, 8, 26, .82) )}}.lyrics-art{position:absolute;inset:0;background:url(../backgrounds/fullscreen-light.webp) center / cover;filter:hue-rotate(10deg) saturate(1.08)}@media(prefers-color-scheme:dark){.lyrics-art{background-image:url(../backgrounds/fullscreen-dark.webp)}}.lyrics-view:after{content:"";position:absolute;inset:0;z-index:0;background:var(--lyric-veil)}html.lyrics-open .practice-top{position:fixed;z-index:71;top:calc(env(safe-area-inset-top) + 10px);left:16px;right:16px;margin:0}html.lyrics-open .piece-heading{position:fixed;z-index:71;top:calc(env(safe-area-inset-top) + 12px);left:72px;right:72px;margin:0;color:var(--lyric-ink)}html.lyrics-open .piece-heading p{color:var(--lyric-soft)}html.lyrics-open body{overflow:hidden}.lyrics-list{position:relative;z-index:1;flex:1;overflow-y:auto;padding:calc(env(safe-area-inset-top) + 96px) 28px 42vh;scrollbar-width:none;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 78%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 78%,transparent)}.lyrics-list::-webkit-scrollbar{display:none}.lyric{max-width:900px;margin:0 auto 24px;font-family:var(--display);font-weight:700;font-size:clamp(26px,7.2vw,46px);line-height:1.22;letter-spacing:-.01em;text-shadow:var(--lyric-shadow);transition:opacity .45s ease,filter .45s ease}.lyric.is-next{opacity:calc(.62 - var(--away) * .1);filter:blur(calc(var(--away) * .7px))}.lyric.is-past{opacity:.32}.lyric.is-active:has(mark) span{opacity:.72}.lyric mark.spoken{padding:0;border:0;border-radius:0;outline:none;box-shadow:none;color:transparent;background:linear-gradient(90deg,var(--lyric-ink) 50%,var(--lyric-soft) 50%);background-size:200% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;animation:lyric-fill .45s linear forwards}@keyframes lyric-fill{to{background-position:0 0}}.lyric-hidden i{display:inline-block;height:.5em;margin-right:.3em;border-radius:.25em;background:currentColor;opacity:.55}.lyric-quiet{opacity:.5}.lyrics-controls{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:14px;padding:10px 0 calc(env(safe-area-inset-bottom) + 24px)}.lyrics-transport{display:flex;align-items:center;gap:28px}.lyrics-view .lyrics-play{width:76px;height:76px}.lyrics-step{display:grid;place-items:center;width:52px;height:52px;min-height:52px;padding:0;border-radius:50%;color:var(--lyric-ink);background:var(--lyric-chip)}.lyrics-step:disabled{opacity:.3}.lyrics-exit{min-height:38px;padding:0 18px;border-radius:999px;color:var(--lyric-ink);background:var(--lyric-chip);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:13px}@media(prefers-reduced-motion:reduce){.lyric{transition:opacity .2s ease}.lyric.is-next{filter:none}.lyric mark.spoken{animation:none;background-position:0 0}}@media(max-width:760px){html.app-shell .practice .fullscreen-toggle{position:fixed;z-index:45;left:calc(50% + 128px);bottom:calc(var(--dock-actions) + var(--dock-modes) + env(safe-area-inset-bottom) + (var(--dock-controls) - 44px) / 2);display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;color:var(--muted);background:none}}.practice-backdrop,.panel-title{display:none}html.app-shell .practice-backdrop{display:block;position:fixed;z-index:-1;inset:-70px;filter:blur(var(--art-blur, 54px)) saturate(1.25);opacity:.9;pointer-events:none}html.app-shell .practice-backdrop.art-waves{--art-blur: 20px;inset:-40px;opacity:1}html.app-shell .practice-backdrop.art-waves:after{background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 8%,transparent) 0%,color-mix(in srgb,var(--bg) 30%,transparent) 45%,var(--bg) 84%)}html.app-shell .practice-backdrop:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 18%,transparent) 0%,color-mix(in srgb,var(--bg) 52%,transparent) 45%,var(--bg) 82%)}@media(prefers-reduced-transparency:reduce){html.app-shell .practice-backdrop{opacity:.35}}html.app-shell[data-screen=practice] body{overflow:hidden;overscroll-behavior:none}html.app-shell[data-screen=practice]{background:var(--bg)}html.app-shell[data-screen=practice] body{background:none}@media(max-width:760px){html.app-shell{--dock-title: 46px;--dock-total: calc( var(--dock-title) + var(--dock-actions) + var(--dock-controls) + var(--dock-wave) + var(--dock-modes) )}html.app-shell[data-screen=practice] main{height:100dvh;min-height:0;overflow:hidden}html.app-shell[data-screen=practice] main:after{display:none}html.app-shell .practice .piece-heading{display:none}html.app-shell .practice .focus-card,html.app-shell .mode-tabs+.focus-card{position:fixed;z-index:2;left:0;right:0;top:calc(env(safe-area-inset-top) + 64px);bottom:calc(var(--dock-total) + env(safe-area-inset-bottom) + 46px);display:flex;flex-direction:column;margin:0;padding:0 24px;overflow:clip;border:0;border-radius:0;background:none;box-shadow:none}html.app-shell .practice .transcript-content{position:relative;justify-content:flex-start;flex:1;min-height:0;overflow-y:auto;padding:18px 0 28px;scrollbar-width:none;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 7%,#000 86%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 7%,#000 86%,transparent)}html.app-shell .practice .transcript-content::-webkit-scrollbar{display:none}html.app-shell .practice .focus-meta,html.app-shell .practice .focus-card>h2,html.app-shell .practice .chunk-title,html.app-shell .practice .chunk-progress{display:none}html.app-shell .practice .transcript-content p{color:var(--text);text-shadow:0 1px 16px color-mix(in srgb,var(--bg) 75%,transparent)}html.app-shell .practice .text-controls{position:fixed;z-index:3;left:16px;right:16px;bottom:calc(var(--dock-total) + env(safe-area-inset-bottom) + 8px);justify-content:center;margin:0;padding:0;border:0}html.app-shell .practice .playback-area{isolation:isolate;padding-top:calc(var(--dock-title) + 12px);background:none}html.app-shell .practice .playback-area:before{content:"";position:absolute;z-index:-1;inset:0;border-radius:inherit;background:color-mix(in srgb,var(--surface) 72%,transparent);-webkit-backdrop-filter:blur(24px) saturate(1.2);backdrop-filter:blur(24px) saturate(1.2)}html.app-shell .practice .panel-title{position:absolute;top:12px;left:20px;right:20px;display:flex;flex-direction:column;gap:2px;margin:0;font-size:17px}html.app-shell .practice .panel-title h2{margin:0;font-family:var(--display);font-size:17px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html.app-shell .practice .panel-title span{font-size:12px;color:var(--muted)}}@media(min-width:761px){html.app-shell[data-screen=practice] main{height:100dvh;min-height:0;overflow:hidden}html.app-shell[data-screen=practice] main:after{display:none}html.app-shell .practice .focus-card{max-height:calc(100dvh - 150px - var(--tablet-dock));overflow-y:auto}html.app-shell .chunk-sidebar{max-height:calc(100dvh - 90px - var(--tablet-dock));overflow-y:auto}html.app-shell .practice .focus-card{border-color:color-mix(in srgb,var(--text) 10%,transparent);background:color-mix(in srgb,var(--surface) 42%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:none}}.passage-image{display:flex;gap:14px;align-items:center;margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:14px}.passage-image-preview{flex:none;width:76px;height:76px;border-radius:14px;filter:saturate(1.1)}.passage-image-text{display:flex;flex-direction:column;gap:4px;min-width:0}.passage-image-text small{color:var(--muted)}.passage-image-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.library-admin-image{flex:none;display:grid;place-items:center;width:48px;height:48px;margin-right:12px;border-radius:12px;color:#fff;cursor:pointer}.library-admin-image svg{filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}html.app-shell.lyrics-open .practice .piece-heading{display:block}.art-waves{background:url(../backgrounds/fullscreen-light.webp) center / cover}@media(prefers-color-scheme:dark){.art-waves{background-image:url(../backgrounds/fullscreen-dark.webp)}}html.app-shell .recording-icon.art-waves{background:url(../backgrounds/fullscreen-light.webp) center / cover}@media(prefers-color-scheme:dark){html.app-shell .recording-icon.art-waves{background-image:url(../backgrounds/fullscreen-dark.webp)}}html.app-shell{--header-h: calc(env(safe-area-inset-top) + 64px) }html.app-shell .app-header{position:sticky;z-index:42;top:0;background:transparent}html.app-shell[data-screen=practice] .app-header{display:flex;position:fixed;left:0;right:0}@media(max-width:760px){html.app-shell{--dock-title: 0px;--title-row: 58px}html.app-shell[data-screen=practice] .practice .practice-top{position:fixed;z-index:6;top:var(--header-h);left:12px;right:12px;height:var(--title-row);display:flex;align-items:center;justify-content:space-between;margin:0}html.app-shell[data-screen=practice] .practice .practice-top>.text-button,html.app-shell[data-screen=practice] .practice .practice-top>.icon-button{width:40px;height:40px;min-height:40px}html.app-shell[data-screen=practice] .practice .panel-title{position:fixed;z-index:6;top:calc(var(--header-h) + 9px);left:64px;right:64px}html.app-shell .practice .focus-card,html.app-shell .mode-tabs+.focus-card{top:calc(var(--header-h) + var(--title-row))}html.app-shell .practice-backdrop,html.app-shell .practice-backdrop.art-waves{top:0;bottom:0}html.app-shell .practice .playback-area{padding-top:10px;border-top:0;border-radius:0;box-shadow:none}html.app-shell .practice .playback-area:before{background:none;-webkit-backdrop-filter:none;backdrop-filter:none}html.app-shell .practice-backdrop:after,html.app-shell .practice-backdrop.art-waves:after{background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 4%,transparent) 0%,color-mix(in srgb,var(--bg) 12%,transparent) calc(100% - var(--dock-total) - 340px),color-mix(in srgb,var(--bg) 40%,transparent) calc(100% - var(--dock-total) - 230px),color-mix(in srgb,var(--bg) 75%,transparent) calc(100% - var(--dock-total) - 140px),color-mix(in srgb,var(--bg) 94%,transparent) calc(100% - var(--dock-total) - 70px),var(--bg) calc(100% - var(--dock-total) - 30px))}}@media(min-width:761px){html.app-shell[data-screen=practice] .practice{padding-top:calc(var(--header-h) + 10px)}html.app-shell .practice .focus-card{max-height:calc(100dvh - 150px - var(--tablet-dock) - 64px)}html.app-shell .chunk-sidebar{max-height:calc(100dvh - 90px - var(--tablet-dock) - 64px)}html.app-shell .practice-backdrop{top:0}}@media(min-width:1000px){html.app-shell .practice .mode-tabs{top:calc(var(--header-h) + 10px)}}html.app-shell.lyrics-open .practice .practice-top{z-index:71;top:calc(env(safe-area-inset-top) + 10px);height:auto}@media(min-width:761px){html.app-shell[data-screen=practice] .app-header,html.app-shell[data-screen=editor] .app-header,html.app-shell[data-screen=admin] .app-header{max-width:none;padding-left:max(24px,calc((100vw - 1180px)/2 + 24px));padding-right:max(24px,calc((100vw - 1180px)/2 + 24px))}}.lyrics-view .lyrics-art{inset:-14%;filter:blur(24px) saturate(1.15) hue-rotate(10deg);animation:lyrics-drift 26s ease-in-out infinite alternate}@keyframes lyrics-drift{0%{transform:scale(1.04) translate(0) rotate(0)}to{transform:scale(1.16) translate(-4%,3%) rotate(2deg)}}.lyrics-view .lyrics-list{min-height:0;padding-top:0;padding-bottom:0}.lyrics-view .lyrics-list:before,.lyrics-view .lyrics-list:after{content:"";display:block;height:38vh}.lyrics-view .lyrics-list:after{height:46vh}.lyrics-view .lyric{font-weight:500;font-size:clamp(30px,8.2vw,52px);line-height:1.2;transform:scale(.82);transform-origin:left center;opacity:.5;filter:blur(1.8px);transition:transform .7s cubic-bezier(.2,.8,.2,1),opacity .7s ease,filter .7s ease}.lyrics-view .lyric.is-active{transform:none;opacity:1;filter:none}.lyrics-view .lyric.is-next{opacity:calc(.5 - var(--away) * .08);filter:blur(calc(1.6px + var(--away) * .9px))}.lyrics-view .lyric.is-past{opacity:.3;filter:blur(2.4px)}.lyrics-view .lyric.is-active:has(mark) span{opacity:1;color:var(--lyric-soft);transition:color .3s ease}.lyrics-view .lyric.is-active span:has(~mark){color:var(--lyric-ink)}.lyrics-view .lyric mark.spoken{font-weight:800}@media(prefers-reduced-motion:reduce){.lyrics-view .lyrics-art{animation:none}.lyrics-view .lyric{transform:none;transition:opacity .2s ease}}.recording-row{display:flex;align-items:center;gap:4px}.recording-row>.recording{flex:1;min-width:0}.recording-edit{flex:none;color:var(--muted)}html.app-shell .recording-row{border-bottom:1px solid var(--line)}html.app-shell .recording-row>.recording{border-bottom:0}html.app-shell[data-screen=practice] .practice .practice-top{display:none}@media(max-width:760px){html.app-shell[data-screen=practice] .practice .panel-title{left:18px;right:18px}}@media(min-width:761px){html.app-shell[data-screen=practice] .piece-heading{margin:0 0 16px;text-align:left}}@media(min-width:1000px){html.app-shell[data-screen=practice] .piece-heading{margin:0 486px 16px 0}html.app-shell[data-screen=practice] .practice .mode-tabs{right:0}}html.app-shell.lyrics-open .app-header{display:flex;position:fixed;z-index:72;left:0;right:0;top:0}html.app-shell.lyrics-open .app-header .plan-badge,html.app-shell.lyrics-open .app-header .shell-add{display:none}html.app-shell.lyrics-open .practice .piece-heading{display:block;position:fixed;z-index:71;top:var(--header-h);left:18px;right:18px;margin:0;text-align:center}.role-badges{display:flex;align-items:center;gap:6px}.role-badge{flex:none;height:30px;min-height:30px;padding:0 10px;border-radius:999px;border:1px solid var(--control-line);background:color-mix(in srgb,var(--surface) 60%,transparent);color:var(--text);font-size:12px;font-weight:600;white-space:nowrap}.role-adm{font-weight:800;letter-spacing:.08em}.role-adm,.role-mason,.role-plan.plan-premium{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft)}.role-mason{width:30px;padding:0;justify-content:center}.role-badge[aria-expanded=true]{box-shadow:0 0 0 2px var(--accent)}.role-menu{position:fixed;z-index:60;top:var(--header-h, 64px);right:12px;width:min(320px,calc(100vw - 24px));display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);animation:sheet-up .15s ease-out}.role-menu-title{margin:0;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.role-menu-item{width:100%;min-height:42px;justify-content:flex-start;gap:8px;padding:0 12px;border-radius:12px;background:var(--raised);color:var(--text);text-align:left}.role-menu-item.primary{color:var(--on-brand);background:var(--brand-gradient)}.role-menu-note{margin:0;font-size:13px;line-height:1.45}.role-menu-note.quiet{font-size:12px;color:var(--muted)}.role-menu-degrees{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px}.role-menu-degrees li{display:flex;align-items:center;gap:6px}.role-menu-degrees svg{color:var(--accent)}html.app-shell.lyrics-open .app-header .role-badges{display:none}
