.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lenis-app button:focus:not(:focus-visible),.lenis-app [role=button]:focus:not(:focus-visible){outline:none}.lenis-app button:focus-visible,.lenis-app [role=button]:focus-visible{outline:2px solid var(--accent, #7B8CDE);outline-offset:2px}.lenis-app button,.lenis-app [role=button]{-webkit-tap-highlight-color:transparent}.lenis-app{--app-bg: var(--bg);--app-text: var(--text-1);--app-text-dim: var(--text-muted);--app-accent: var(--accent);--app-accent-hover: var(--accent-hover);--app-accent-glow: var(--accent-glow);--app-surface: var(--surface);--app-surface-high: var(--surface-high);--app-surface-container: #FCEBE1;--app-border: var(--border-ghost);--app-chrome-bg: rgba(245, 237, 217, .8);--app-chrome-blur: 20px;--app-gradient: var(--gradient-clay);--app-progress-start: var(--progress-start);--app-progress-end: var(--progress-end);--reading-bg: #F4ECD8;--reading-text: #3E342E;--reading-text-secondary: #7C6E60;--reading-highlight: rgba(193, 138, 99, .15);--reading-dim: .3;--orp-color: #C18A63;--reading-font-size: 1.125rem;--reading-line-height: 1.7;--reading-letter-spacing: .5px;--reading-max-width: 720px;--control-height: 72px;--control-pill-bg: rgba(255, 255, 255, .08);--control-pill-active: var(--app-accent);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);min-height:100dvh;display:flex;flex-direction:column;background:var(--app-bg);color:var(--app-text);font-family:var(--font-body);position:relative;overflow:hidden}[data-theme=midnight] .lenis-app{--app-chrome-bg: rgba(28, 28, 46, .85);--app-bg: #1C1C2E;--app-text: #E0DDD5;--app-surface: rgba(255, 255, 255, .06);--app-surface-high: rgba(255, 255, 255, .1);--app-surface-container: rgba(255, 255, 255, .08);--app-border: rgba(255, 255, 255, .12);--app-accent: #7B8CDE;--app-accent-hover: #6A7BD0;--app-accent-glow: rgba(123, 140, 222, .2);--reading-bg: #1C1C2E;--reading-text: #E0DDD5;--reading-text-secondary: #9B97A0;--reading-highlight: rgba(123, 140, 222, .12);--orp-color: #7B8CDE}.app-container{flex:1;display:flex;flex-direction:column;max-width:var(--reading-max-width);width:100%;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}.input-view{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;padding:clamp(2rem,6vh,4rem) 0;animation:fadeIn .5s var(--ease-out-expo)}.input-header{text-align:center}.input-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3rem);font-weight:400;font-style:italic;color:var(--app-text);margin-bottom:.5rem;line-height:1.1}.input-subtitle{font-size:.8125rem;color:var(--reading-text-secondary);font-weight:400;letter-spacing:.02em}.input-textarea{width:100%;min-height:160px;max-height:50vh;padding:1.25rem 1.5rem;font-family:var(--font-reading);font-size:var(--reading-font-size);line-height:var(--reading-line-height);color:var(--reading-text);background:var(--app-surface);border:1.5px solid var(--app-border);border-radius:1rem;resize:vertical;outline:none;transition:border-color .25s,box-shadow .25s}.input-textarea::placeholder{color:var(--app-text-dim);font-style:italic}.input-textarea:focus{border-color:var(--app-accent);box-shadow:0 0 0 3px var(--app-accent-glow)}.input-divider{display:flex;align-items:center;gap:1rem;width:100%;font-size:.75rem;color:var(--reading-text-secondary);text-transform:uppercase;letter-spacing:.1em;font-weight:500}.input-divider:before,.input-divider:after{content:"";flex:1;height:1px;background:var(--app-border)}.input-url-row{width:100%;max-width:500px;margin:0 auto;display:flex;gap:.75rem}.input-url{flex:1;padding:.875rem 1.25rem;font-family:var(--font-body);font-size:.9375rem;color:var(--reading-text);background:var(--app-surface);border:1.5px solid var(--app-border);border-radius:.75rem;outline:none;transition:border-color .25s,box-shadow .25s,flex 1s cubic-bezier(.65,0,.35,1)}.input-url:focus{border-color:var(--app-accent);box-shadow:0 0 0 3px var(--app-accent-glow)}.input-url-btn{position:relative;overflow:hidden;padding:.875rem 1.25rem;font-family:var(--font-body);font-size:.8125rem;font-weight:600;color:var(--app-accent);background:var(--app-surface);border:1.5px solid var(--app-accent);border-radius:.75rem;cursor:pointer;white-space:nowrap;transition:background .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease,opacity .4s ease}.input-url-btn--entering{animation:extractAppear 1s cubic-bezier(.65,0,.35,1) both}.input-url-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--app-accent) 0%,var(--app-accent-hover) 100%);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-out-expo);z-index:0;border-radius:inherit}.input-url-btn span{position:relative;z-index:1}.input-url-btn:hover:not(:disabled){background:var(--app-accent);color:#fff;border-color:var(--app-accent);box-shadow:0 4px 12px #c18a6333}.input-url-btn:active:not(:disabled){background:var(--app-accent-hover);box-shadow:0 2px 6px #c18a6326}.input-url-btn:disabled{cursor:default;opacity:.4;pointer-events:none}.input-url-btn[aria-busy=true]{cursor:not-allowed;opacity:1;color:#fff;border-color:var(--app-accent);background:var(--app-accent)}.input-url-btn[aria-busy=true]:before{transform:scaleX(1);animation:extractFill 2s ease-in-out infinite alternate}@keyframes extractFill{0%{opacity:.7}to{opacity:1}}@media(prefers-reduced-motion:reduce){.input-url-btn{animation:none;transition:background .1s,color .1s}.input-url-btn:before{animation:none;transition:none}}.input-error{font-size:.8125rem;color:#d64545;text-align:center}.input-cta{margin-top:1.5rem;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;max-width:400px;padding:1rem 2rem;font-family:var(--font-body);font-size:1.0625rem;font-weight:600;color:#fff;background:var(--app-accent);border:none;border-radius:1rem;cursor:pointer;transition:opacity .2s,transform .15s,box-shadow .2s;box-shadow:0 8px 24px var(--app-accent-glow)}.input-cta:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 32px var(--app-accent-glow)}.input-cta:active:not(:disabled){transform:scale(.97)}.input-cta:disabled{opacity:.4;cursor:not-allowed;transform:none}.mode-selector{display:flex;gap:.5rem;padding:4px;background:var(--app-surface-container);border-radius:var(--radius-full);border:1px solid var(--app-border)}.mode-pill{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1.25rem;font-family:var(--font-body);font-size:.8125rem;font-weight:500;color:var(--reading-text-secondary);background:transparent;border:none;border-radius:var(--radius-full);cursor:pointer;transition:all .25s var(--ease-out-expo);white-space:nowrap}.mode-pill:hover{color:var(--app-text)}.mode-pill[data-active=true]{background:var(--app-accent);color:#fff}.reader-view{flex:1;display:flex;flex-direction:column;position:relative;animation:fadeIn .4s var(--ease-out-expo)}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;z-index:10}.top-bar-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;font-family:var(--font-body);font-size:.8125rem;font-weight:500;color:var(--reading-text-secondary);background:var(--app-surface);border:1px solid var(--app-border);border-radius:.625rem;cursor:pointer;transition:color .2s,background .2s}.top-bar-btn:hover{color:var(--app-text);background:var(--app-surface-high)}.top-bar-back{font-weight:600}.top-bar-mascot{display:block;transition:transform .3s ease}.top-bar-back:hover .top-bar-mascot{transform:scale(1.1)}.top-bar-right{display:flex;gap:.5rem}.progress-bar-wrap{width:100%;height:6px;background:var(--app-surface);border-radius:var(--radius-full);overflow:hidden;flex-shrink:0}.progress-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--app-progress-start),var(--app-progress-end));border-radius:var(--radius-full);transition:width .15s linear}.reading-card{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--reading-bg);border-radius:1rem;margin:.75rem 0 .5rem;padding:2rem;position:relative;box-shadow:0 0 60px #f4ecd840,0 2px 16px #0000000a}[data-theme=midnight] .reading-card{box-shadow:0 0 60px #1c1c2e66,0 2px 16px #00000026}.reader-watermark{position:fixed;top:0;left:0;padding:2rem;font-family:var(--font-display);font-size:12rem;font-style:italic;line-height:1;color:var(--app-text);opacity:.04;pointer-events:none;user-select:none;z-index:0}@media(max-width:768px){.reader-watermark{display:none}}.reading-zone{flex:1;align-self:stretch;width:100%;display:flex;align-items:center;justify-content:center;min-height:40vh;position:relative;padding:2rem 0;cursor:pointer;user-select:none;-webkit-user-select:none}.rsvp-container{position:relative;width:100%;flex:1;overflow:visible}.rsvp-word{position:absolute;left:50%;top:50%;font-family:inherit;font-size:clamp(1.5rem,calc(var(--reading-font-size) * 2.5),5rem);font-weight:500;color:var(--reading-text);letter-spacing:-.02em;white-space:nowrap;will-change:transform,font-size}.rsvp-word .orp{color:var(--orp-color)}.rsvp-guide{position:absolute;top:-8px;bottom:-8px;width:2px;background:var(--app-accent-glow);left:50%;transform:translate(-50%);pointer-events:none}.guided-container{width:100%;max-height:60vh;overflow-y:auto;padding:1rem 0;scroll-behavior:smooth;-ms-overflow-style:none;scrollbar-width:none;line-height:var(--reading-line-height, 1.8)}.guided-container::-webkit-scrollbar{display:none}.guided-word{font-family:inherit;font-size:var(--reading-font-size);line-height:var(--reading-line-height);letter-spacing:var(--reading-letter-spacing);color:var(--reading-text);opacity:var(--reading-dim, .5);padding:.1em .15em;border-radius:4px;transition:opacity .15s ease,background .15s ease,color .15s ease;display:inline;scroll-margin:40vh 0}.guided-word[data-state=active]{opacity:1;background:var(--reading-highlight, rgba(193, 138, 99, .22));text-shadow:0 0 .3px currentColor}.guided-word[data-state=read]{opacity:.35}.chunked-container{width:100%;display:flex;flex-direction:column;align-items:center;gap:2rem}.chunked-counter{font-family:var(--font-body);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--reading-text-secondary)}.chunked-text{font-family:inherit;font-size:var(--reading-font-size);line-height:var(--reading-line-height);letter-spacing:var(--reading-letter-spacing);color:var(--reading-text);text-align:left;width:100%;animation:chunkSlideForward .4s var(--ease-out-expo)}.chunked-text[data-dir=forward]{animation-name:chunkSlideForward}.chunked-text[data-dir=backward]{animation-name:chunkSlideBackward}.chunked-dots{display:flex;gap:6px}.chunked-dot{width:6px;height:6px;border-radius:50%;background:var(--app-border);transition:background .25s,transform .25s}.chunked-dot[data-active=true]{background:var(--app-accent);transform:scale(1.4);animation:dotPulse .4s var(--ease-out-expo)}.chunk-progress-bar{display:flex;gap:4px;width:100%;padding:0 2px}.chunk-progress-segment{flex:1;height:3px;background:var(--app-border);border-radius:2px;overflow:hidden}.chunk-progress-fill{height:100%;background:var(--app-accent);border-radius:2px;transform-origin:left;transform:scaleX(0)}.chunk-progress-fill[data-state=active]{transform:scaleX(1);transition:transform var(--chunk-duration, 3s) linear}.chunk-progress-fill[data-state=done]{transform:scaleX(1);transition:none}.chunk-progress-fill[data-state=paused]{transition:none}.chunk-progress-fill[data-state=idle],.chunk-progress-fill[data-state=upcoming]{transform:scaleX(0);transition:none}.control-bar{margin-top:auto;padding:.5rem 0 max(4rem,env(safe-area-inset-bottom));z-index:20}.control-bar-inner{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap}.control-bar-inner>.mode-selector-track{flex:1 1 100%;display:flex;justify-content:center}.ctrl-btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;min-width:44px;min-height:44px;padding:.625rem;font-family:var(--font-body);font-size:.8125rem;font-weight:600;color:var(--reading-text);background:none;border:none;border-radius:.75rem;cursor:pointer;transition:all .2s}.ctrl-btn:hover{color:var(--app-text);background:var(--app-surface-high)}.ctrl-btn:active{transform:scale(.95)}.ctrl-btn--play{background:var(--app-accent);color:#fff;border-color:var(--app-accent);min-width:56px}.ctrl-btn--play:hover{background:var(--app-accent-hover)}.speed-stepper{display:inline-flex;align-items:center;gap:0;background:var(--app-surface-container);border:1.5px solid var(--app-border);border-radius:var(--radius-full);padding:.125rem;transition:border-color .2s}.speed-stepper:hover{border-color:var(--app-accent)}.speed-stepper__btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--reading-text);cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.speed-stepper__btn:hover{background:var(--app-surface-high);color:var(--app-accent)}.speed-stepper__btn:active{transform:scale(.88);background:var(--app-accent);color:#fff}.speed-stepper__btn:disabled{opacity:.3;cursor:not-allowed}.speed-stepper__btn:disabled:active{transform:none;background:transparent;color:var(--reading-text)}.speed-stepper__value{font-family:var(--font-body);font-size:.8125rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--reading-text);min-width:5.5ch;text-align:center;padding:0 .25rem;user-select:none;line-height:1}.speed-stepper__unit{font-weight:500;font-size:.6875rem;opacity:.6;letter-spacing:.04em}.settings-overlay{position:fixed;inset:0;background:transparent;z-index:40;animation:fadeIn .2s}.settings-panel{position:fixed;bottom:0;left:0;right:0;max-height:50vh;background:var(--app-bg);border-top:1px solid var(--app-border);border-radius:1.5rem 1.5rem 0 0;display:flex;flex-direction:column;z-index:50;animation:slideUp .35s var(--ease-out-expo);box-shadow:0 -4px 24px #00000014}.settings-header{position:sticky;top:0;background:var(--app-bg);padding:1.25rem 0 0;border-radius:1.5rem 1.5rem 0 0;z-index:2}.settings-handle{width:40px;height:4px;background:var(--app-border);border-radius:var(--radius-full);margin:0 auto .75rem}.settings-header-row{display:flex;align-items:center;justify-content:space-between;padding:0 clamp(2rem,6vw,2.5rem) .75rem;border-bottom:1px solid color-mix(in srgb,var(--app-border) 50%,transparent)}.settings-title{font-family:var(--font-body);font-size:1.0625rem;font-weight:600;color:var(--app-text);margin:0}.settings-header-done{font-family:var(--font-body);font-size:.875rem;font-weight:600;color:var(--app-accent);background:none;border:none;cursor:pointer;padding:.25rem .5rem;border-radius:.375rem;transition:opacity .15s}.settings-header-done:active{opacity:.6}.settings-body{flex:1;overflow-y:auto;padding:1.25rem clamp(2rem,6vw,2.5rem) max(2rem,env(safe-area-inset-bottom));background:linear-gradient(var(--app-bg) 30%,transparent),linear-gradient(transparent,var(--app-bg) 70%) 0 100%,radial-gradient(farthest-side at 50% 0,rgba(0,0,0,.08),transparent),radial-gradient(farthest-side at 50% 100%,rgba(0,0,0,.08),transparent) 0 100%;background-repeat:no-repeat;background-size:100% 40px,100% 40px,100% 12px,100% 12px;background-attachment:local,local,scroll,scroll}.theme-options{display:flex;gap:.5rem}.theme-swatch{width:40px;height:40px;border-radius:.625rem;border:2px solid transparent;cursor:pointer;transition:border-color .2s,transform .2s}.theme-swatch:hover{transform:scale(1.1)}.theme-swatch[data-active=true]{border-color:var(--app-accent);transform:scale(1.1)}.theme-swatch--sepia{background:#f4ecd8;border-color:#d9ccba}.theme-swatch--sepia[data-active=true]{border-color:#c18a63}.theme-swatch--midnight{background:#1c1c2e;border-color:#3a3a50}.theme-swatch--midnight[data-active=true]{border-color:#7b8cde}.settings-control{margin-bottom:1.25rem}.settings-control-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.375rem}.settings-control-label{font-size:.9375rem;color:var(--app-text)}.settings-control-value{font-size:.8125rem;font-weight:600;color:var(--app-accent);font-variant-numeric:tabular-nums}.settings-range{width:100%;accent-color:var(--app-accent)}.settings-select{padding:.375rem .75rem;font-family:var(--font-body);font-size:.8125rem;color:var(--app-text);background:var(--app-surface);border:1px solid var(--app-border);border-radius:.5rem;outline:none}.settings-helper{display:block;font-size:.6875rem;color:var(--reading-text-secondary);margin-top:2px;line-height:1.3}.settings-scope-header{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--reading-text-secondary);margin:.75rem 0;padding-top:.75rem;border-top:1px solid color-mix(in srgb,var(--app-border) 40%,transparent)}.settings-scope-desc{font-size:.75rem;color:var(--reading-text-secondary);margin:0 0 .75rem;line-height:1.4}.settings-footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid color-mix(in srgb,var(--app-border) 40%,transparent);display:flex;flex-direction:column;gap:.75rem}.settings-reset-btn{display:block;width:100%;padding:.625rem;font-family:var(--font-body);font-size:.8125rem;font-weight:500;color:var(--reading-text-secondary);background:none;border:1.5px solid var(--app-border);border-radius:.75rem;cursor:pointer;min-height:44px;transition:color .2s,border-color .2s,background .2s}.settings-reset-btn:hover{color:var(--app-text);border-color:var(--app-accent)}.settings-reset-btn--confirm{color:#e27d60;border-color:#e27d60;background:#e27d6014}.settings-done-btn{display:block;width:100%;padding:.875rem;font-family:var(--font-body);font-size:.9375rem;font-weight:600;color:#fff;background:var(--app-accent);border:none;border-radius:.75rem;cursor:pointer;min-height:48px;transition:opacity .15s,transform .1s}.settings-done-btn:active{opacity:.85;transform:scale(.98)}.done-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;text-align:center;padding:3rem 0;animation:fadeIn .6s var(--ease-out-expo)}.done-check{font-size:3rem;animation:popIn .5s var(--ease-spring) .2s both}.done-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,2.5rem);font-style:italic;font-weight:400}.done-stats{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center}.done-stat{display:flex;flex-direction:column;gap:.25rem}.done-stat-value{font-family:var(--font-display);font-size:1.75rem;color:var(--app-accent);font-variant-numeric:tabular-nums}.done-stat-label{font-size:.6875rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--reading-text-secondary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes extractAppear{0%{opacity:0;transform:translate(8px) scale(.95);max-width:0;padding-inline:0;border-width:0}to{opacity:1;transform:translate(0) scale(1);max-width:10rem;padding-inline:1.25rem;border-width:1.5px}}@keyframes popIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes chunkSlideForward{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes chunkSlideBackward{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes dotPulse{0%{transform:scale(1)}50%{transform:scale(1.8)}to{transform:scale(1.4)}}@media(min-width:640px){.input-textarea{max-height:40vh}}@media(min-width:1024px){.settings-overlay{display:none}.settings-panel{position:fixed;inset:0 0 0 auto;width:360px;max-height:100vh;border-radius:0;border-left:1px solid var(--app-border);border-top:none;animation:slideLeft .35s var(--ease-out-expo)}.settings-handle{display:none}}@keyframes slideLeft{0%{transform:translate(100%)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.input-view,.reader-view,.done-screen,.settings-panel,.speed-popup,.chunked-text,.chunked-dot,.done-check{animation:none!important}.progress-bar-fill,.chunk-progress-fill,.guided-word,.rsvp-word,.mode-pill,.top-bar{transition:none!important}}
