body.reading{height:100vh;height:100dvh;overflow:hidden;overscroll-behavior:none;background:radial-gradient(120% 70% at 50% 38%,color-mix(in srgb,var(--desk-glow) 78%,var(--bg)) 0%,color-mix(in srgb,var(--desk) 85%,var(--bg)) 48%,var(--bg) 100%) fixed,var(--bg)}.stage{position:relative;z-index:1;height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;--pb: max(10px, env(safe-area-inset-bottom));padding:max(6px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) var(--pb) max(10px,env(safe-area-inset-left));--fs: 1;--glass-bg: rgba(20, 24, 41, .5);--glass-line: rgba(255, 255, 255, .09);font-family:var(--font-ui)}.stage[data-size=s]{--fs: .9}.stage[data-size=l]{--fs: 1.16}.glass,.icon-btn,.dock{background:var(--glass-bg);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);box-shadow:inset 0 0 0 1px var(--glass-line),inset 0 1px #ffffff0f}.chrome{transition:opacity .35s ease,transform .35s ease}.stage:is(.immersive,.stowed) .dock{position:absolute;left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));bottom:var(--pb);width:auto;margin:0 auto;opacity:0;pointer-events:none;transform:translateY(calc(100% + var(--pb)))}.stage:is(.stowed,.immersive){padding-bottom:calc(var(--pb) + 30px)}.top>*{transition:opacity .35s ease,transform .35s ease}.stage.immersive .top{pointer-events:none}.stage.immersive .top>:not([data-close-book]){opacity:0;transform:translateY(-8px)}.stage.immersive .top>[data-close-book]{pointer-events:auto;opacity:.62}.top{width:100%;max-width:640px;display:grid;grid-template-columns:96px 1fr 96px;align-items:center;flex:none;height:56px;padding:0 2px}.top-title{margin:0;text-align:center;font:600 16px/1.2 var(--font-display);font-variation-settings:"SOFT" 50,"WONK" 0;letter-spacing:-.005em;color:var(--text);opacity:.86;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px}.top-actions{display:flex;justify-content:flex-end;gap:8px}.icon-btn{position:relative;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:0;padding:0;cursor:pointer;color:var(--text);text-decoration:none;transition:background-color .2s,color .2s,transform .12s}.icon-btn:hover{background:#282e489e}.icon-btn:active{transform:scale(.92)}.sleep-dot{position:absolute;top:9px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--moon);box-shadow:0 0 0 2px #141829e6;opacity:0;transform:scale(.4);transition:opacity .2s,transform .2s var(--ease-spring)}.sleep-btn[aria-pressed=true]{color:var(--moon)}.sleep-btn[aria-pressed=true] .sleep-dot{opacity:1;transform:none}.wrap{flex:1;min-height:0;width:100%;container-type:size;display:grid;place-items:center;position:relative;padding:4px 0}.book{width:min(92vw,62vh,620px);height:min(76vh,110vw);--w: min(100cqw, 76cqh , 620px);position:relative;width:var(--w);height:min(100cqh,calc(var(--w) / .56));perspective:1800px;touch-action:none;user-select:none;-webkit-user-select:none;outline:none}.book:before{content:"";position:absolute;inset:0;border-radius:6px 18px 18px 6px;background:var(--paper-back);box-shadow:2px 2px 0 var(--edge-1),4px 3px 0 var(--edge-2),6px 4px 0 var(--edge-3),0 30px 60px #02041499}.leaf{position:absolute;inset:0;transform-origin:left center;transform-style:preserve-3d}.leaf:not(:first-child){visibility:hidden}.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:6px 18px 18px 6px;overflow:hidden}.face.back{transform:rotateY(180deg);background:linear-gradient(to left,var(--edge-1),var(--paper-back) 30%);border-radius:18px 6px 6px 18px}.shade,.cast{position:absolute;inset:0;pointer-events:none;opacity:0}.shade{background:linear-gradient(to left,#161a3c0d,#161a3c80)}.cast{right:auto;width:34%;transform-origin:0 50%;will-change:transform,opacity;z-index:3;background:linear-gradient(to right,#0a0c2899,#0a0c2838 35%,#0a0c2800)}.curl{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}.strip{position:absolute;top:0;bottom:0;left:0;transform-origin:0 50%;transform-style:preserve-3d;will-change:transform}.sf,.sb{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden}.sb{transform:rotateY(180deg);background:var(--paper-back)}.sb>.page{opacity:.09;transform:scaleX(-1)}.strip:first-child .sf{border-radius:6px 0 0 6px}.strip:last-child .sf{border-radius:0 18px 18px 0}.strip:first-child .sb{border-radius:0 6px 6px 0}.strip:last-child .sb{border-radius:18px 0 0 18px}.strip i{position:absolute;inset:0;pointer-events:none;opacity:0;will-change:opacity;z-index:3}.strip .sh.l{background:linear-gradient(to right,#10122c,#10122c00)}.strip .sh.r{background:linear-gradient(to left,#10122c,#10122c00)}.strip .gl{background:#fffbee}.page{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);container-type:size;font-family:var(--font-body)}.page:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:var(--grain, .5);mix-blend-mode:multiply;z-index:2;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .52 0 0 0 0 .62 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.page:after{content:"";position:absolute;inset:0 auto 0 0;width:6%;z-index:2;background:linear-gradient(to right,#14183c2e,#14183c00);pointer-events:none}.illus{height:54%;flex:0 1 54%;min-height:30%;position:relative;overflow:hidden;background:#2a3166}.story .illus{height:auto}.illus img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;-webkit-user-drag:none;filter:var(--img-filter, none);transition:filter .4s}.illus:after{content:"";position:absolute;inset:auto 0 -1px;height:16%;background:linear-gradient(to bottom,transparent,var(--paper))}.text{flex:1 0 auto;min-height:0;max-height:70%;display:flex;flex-direction:column;justify-content:center;gap:.6em;position:relative;z-index:1;padding:1cqh 8cqw 8cqh 9cqw;font-size:calc(min(5.3cqw,3cqh) * var(--fs) * var(--fit, 1));line-height:1.55}.text p{margin:0;text-wrap:pretty}.folio{position:absolute;bottom:2.6cqh;left:0;right:0;text-align:center;font:500 clamp(10px,2.8cqw,13px)/1 var(--font-ui);color:var(--p-muted);letter-spacing:.08em;font-variant-numeric:tabular-nums;z-index:1}.fraunces,.cover h1,.end h2{font-family:var(--font-display);font-variation-settings:"SOFT" 100,"WONK" 1;font-optical-sizing:auto}.cover .illus{height:66%;flex:none}.end .illus{flex:none}.cover .text{justify-content:flex-start;padding-top:3cqh;text-align:center;align-items:center;gap:.7em}.cover h1{margin:0;font-weight:700;font-size:min(9.4cqw,5.4cqh);line-height:1.04;letter-spacing:-.015em;color:var(--title);text-wrap:balance}.cover .sub{margin:0;font-size:min(4cqw,2.4cqh);font-style:italic;color:var(--p-muted-strong);text-wrap:balance;max-width:28ch;line-height:1.45}.end .illus{height:46%}.end .text{text-align:center;align-items:center;justify-content:flex-start;gap:.75em;padding:2cqh 8cqw 5cqh;font-size:min(4.2cqw,2.5cqh)}.end h2{margin:0;font-weight:700;font-size:min(12cqw,7cqh);line-height:1;letter-spacing:-.02em;color:var(--title)}.end .ded{margin:0;font-style:italic;color:var(--p-muted-strong);max-width:28ch;text-wrap:balance;line-height:1.4}.again{display:inline-flex;align-items:center;gap:.5em;font:600 1em/1 var(--font-ui);padding:.85em 1.35em;border-radius:999px;border:0;cursor:pointer;background:var(--title);color:var(--paper);margin-top:.2em;transition:transform .12s}.again:active{transform:scale(.96)}.again svg{width:1.15em;height:1.15em}.next-card{display:flex;align-items:center;gap:.8em;width:100%;max-width:26em;margin-top:auto;padding:.55em .9em .55em .55em;border-radius:14px;text-decoration:none;text-align:left;color:var(--ink);font-family:var(--font-ui);background:color-mix(in srgb,var(--ink) 6%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink) 9%,transparent);transition:transform .12s,background-color .2s}.next-card:active{transform:scale(.98)}.next-card img{width:3.6em;height:3.6em;border-radius:9px;object-fit:cover;flex:none;box-shadow:0 2px 8px #0a0c1e40}.next-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2em}.next-text small{font:600 .74em/1 var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--p-muted)}.next-text strong{font:600 1.08em/1.15 var(--font-display);font-variation-settings:"SOFT" 100,"WONK" 0;color:var(--title);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.next-text em{font:500 .8em/1 var(--font-ui);font-style:normal;color:var(--p-muted)}.next-card>svg{flex:none;color:var(--p-muted);width:1.1em;height:1.1em}.end-night{display:none;align-items:center;gap:.5em;margin:auto 0 0!important;font:600 1.1em/1.2 var(--font-display)!important;font-variation-settings:"SOFT" 100,"WONK" 1;color:var(--title);padding:.7em 1.2em;border-radius:999px;background:color-mix(in srgb,var(--title) 9%,transparent)}.end-night svg{width:1.05em;height:1.05em}.stage[data-sleep=book] .next-card{display:none}.stage[data-sleep=book] .end-night{display:inline-flex}.s{transition:background-color .35s,color .35s;border-radius:4px;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .04em}.s.reading{background-color:var(--mark)}.hint{position:absolute;left:0;right:0;bottom:10px;margin:0;text-align:center;pointer-events:none;font:500 13px/1.3 var(--font-ui);color:#fff;opacity:0;animation:hint 4.5s 1s ease both;text-shadow:0 1px 8px rgba(0,0,0,.6)}.hint.gone,.stage[data-gate=on] .hint{display:none}@keyframes hint{10%,80%{opacity:.85}to{opacity:0}}.gate{display:none;position:absolute;inset:0;z-index:200;border-radius:6px 18px 18px 6px;overflow:hidden;background:radial-gradient(70% 45% at 50% 33%,#080a1880,#080a1800),linear-gradient(to bottom,#080a1838,#080a181f 58%,#080a1800 68%);animation:gate-in .6s var(--ease-out) both}.stage[data-gate=on] .gate{display:block}@keyframes gate-in{0%{opacity:0}}.gate-play{position:absolute;left:50%;top:33%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:12px;border:0;padding:12px 20px;background:none;color:#fff;cursor:pointer;font-family:var(--font-ui);width:max-content;max-width:90%}.gate-disc{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:var(--moon);color:var(--on-moon);box-shadow:0 14px 40px -8px #0009,0 0 0 10px color-mix(in srgb,var(--moon) 22%,transparent);animation:gate-breathe 3.2s ease-in-out infinite;transition:transform .15s}.gate-disc svg{margin-left:5px}.gate-play:active .gate-disc{transform:scale(.94)}@keyframes gate-breathe{50%{box-shadow:0 14px 40px -8px #0009,0 0 0 18px color-mix(in srgb,var(--moon) 8%,transparent)}}.gate-label{margin-top:6px;font:600 22px/1.15 var(--font-display);font-variation-settings:"SOFT" 100,"WONK" 1;letter-spacing:-.01em;text-shadow:0 2px 14px rgba(0,0,0,.55)}.gate-meta{font:500 13px/1.2 var(--font-ui);color:#ffffffd1;text-shadow:0 1px 8px rgba(0,0,0,.6)}.gate-skip{position:absolute;left:50%;top:calc(33% + 112px);transform:translate(-50%);border:0;cursor:pointer;padding:0 16px;height:36px;border-radius:999px;font:600 13px/1 var(--font-ui);color:#fff;background:#0c0e1e6b;backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);box-shadow:inset 0 0 0 1px #ffffff1f}.stage[data-gate=on] .dock{opacity:0;pointer-events:none;transform:translateY(8px)}.stage[data-gate=on] .dock:before{display:none}.dock{position:relative;width:100%;max-width:520px;flex:none;margin-top:8px;padding:12px 10px 10px;border-radius:30px;display:flex;flex-direction:column;gap:10px;touch-action:none}.dock-handle{position:absolute;left:50%;bottom:var(--pb);z-index:2;width:140px;height:32px;margin-left:-70px;border:0;padding:0;background:none;cursor:pointer;display:grid;place-items:center;touch-action:none;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease,visibility 0s .3s}.dock-handle:before{content:"";position:absolute;inset:-12px -20px -8px}.dock-handle span{width:46px;height:5px;border-radius:5px;background:#f2efe86b;box-shadow:0 1px 6px #00000059;transition:background-color .2s,transform .2s}.dock-handle:active span{background:#f2efe8a6;transform:scaleX(1.12)}.dock-handle:focus-visible{outline:none}.dock-handle:focus-visible span{outline:3px solid var(--focus);outline-offset:4px}.stage:is(.stowed,.immersive) .dock-handle{opacity:1;visibility:visible;transform:none;transition-delay:.12s,.12s,0s}.progress{display:flex;gap:3px;padding:0 14px}.progress i{flex:1;height:3px;border-radius:3px;background:#ffffff24;transition:background-color .4s}.progress i.on{background:color-mix(in srgb,var(--moon) 70%,transparent)}.progress i.now{background:var(--moon)}.dock-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.nav{width:52px;height:52px;border-radius:50%;border:0;background:#ffffff12;color:var(--text);cursor:pointer;display:grid;place-items:center;padding:0;flex:none;transition:background-color .2s,transform .12s}.nav:active{background:#ffffff24;transform:scale(.94)}.nav:disabled{opacity:.28;cursor:default;transform:none}.play{flex:1;max-width:260px;height:56px;display:flex;align-items:center;gap:12px;padding:0 18px 0 5px;border-radius:999px;border:0;cursor:pointer;background:var(--moon);color:var(--on-moon);text-align:left;box-shadow:0 8px 24px -8px color-mix(in srgb,var(--moon) 55%,transparent);transition:transform .12s}.play:active{transform:scale(.97)}.play-disc{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--on-moon);color:var(--moon);flex:none}.play-text{display:flex;flex-direction:column;gap:3px;font:600 16px/1.1 var(--font-ui);letter-spacing:-.005em}.play-text small{white-space:nowrap;font:500 12.5px/1 var(--font-ui);opacity:.66;font-variant-numeric:tabular-nums}.play .i-pause,.play[aria-pressed=true] .i-play{display:none}.play[aria-pressed=true] .i-pause{display:block}.play[aria-pressed=true] .play-disc{animation:breathe 2.8s ease-in-out infinite}@keyframes breathe{50%{box-shadow:0 0 0 7px #1a140624}}.count-only{flex:1;text-align:center;font:500 15px/1 var(--font-ui);color:var(--muted);font-variant-numeric:tabular-nums}.stage[data-narrated="1"]:not([data-mode=citam]) .count-only{display:none}.stage[data-mode=citam] .play,.stage[data-mode=citam] .narr-settings{display:none}.narr-on{display:none;align-items:center;gap:7px;height:44px;padding:0 15px 0 12px;border-radius:999px;border:0;cursor:pointer;flex:none;font:600 14px/1 var(--font-ui);color:var(--moon);background:color-mix(in srgb,var(--moon) 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--moon) 26%,transparent);transition:transform .12s,background-color .2s}.narr-on:active{transform:scale(.95)}.stage[data-mode=citam][data-narrated="1"] .narr-on{display:inline-flex}.stage[data-mode=citam][data-narrated="1"] .count-only{flex:1;text-align:center;white-space:nowrap;font-size:14px}.sheet{margin:auto auto 0;width:100%;max-width:520px;border:0;padding:0;border-radius:var(--r-sheet) var(--r-sheet) 0 0;color:var(--text);background:color-mix(in srgb,var(--surface-1) 88%,transparent);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);box-shadow:0 -20px 60px #00000080,inset 0 1px #ffffff14;font-family:var(--font-ui)}.sheet::backdrop{background:#0507108c}.sheet[open]{animation:sheet-in .34s var(--ease-out)}@keyframes sheet-in{0%{transform:translateY(100%)}}.sheet form{padding:10px 20px max(20px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:20px}.grabber{width:36px;height:5px;border-radius:5px;background:#ffffff38;margin:0 auto}.sheet h2{margin:4px 0 0;font:600 22px/1.2 var(--font-display);font-variation-settings:"SOFT" 50,"WONK" 0;letter-spacing:-.01em}.sheet fieldset{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;min-width:0}.sheet legend{font:600 12px/1 var(--font-ui);color:var(--muted);margin-bottom:10px;letter-spacing:.08em;text-transform:uppercase}.seg{display:flex;background:#ffffff0f;border-radius:14px;padding:4px;gap:4px}.seg label{flex:1;position:relative}.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.seg span{display:grid;place-items:center;height:44px;border-radius:11px;font:600 15px/1 var(--font-ui);color:#f2efe8c7;transition:background-color .2s,color .2s}.seg span.serif{font-family:var(--font-body);font-weight:600}.seg input:checked+span{background:var(--text);color:var(--bg)}.seg input:focus-visible+span,.option input:focus-visible~span{outline:3px solid var(--focus);outline-offset:2px;border-radius:8px}.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;font:500 15px/1.2 var(--font-ui);cursor:pointer;min-height:44px}.switch input{appearance:none;width:50px;height:30px;border-radius:30px;background:#ffffff2e;position:relative;cursor:pointer;transition:background-color .2s;order:2;margin:0;flex:none}.switch input:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .2s}.switch input:checked{background:var(--moon)}.switch input:checked:after{transform:translate(20px)}.done{height:52px;border-radius:999px;border:0;background:#ffffff1a;color:var(--text);font:600 16px/1 var(--font-ui);cursor:pointer}.done:active{background:#ffffff29}.sheet-head{display:flex;gap:14px;align-items:flex-start}.sheet-head h2{margin-top:2px}.sheet-icon{width:44px;height:44px;border-radius:14px;flex:none;display:grid;place-items:center;background:color-mix(in srgb,var(--moon) 16%,transparent);color:var(--moon)}.sheet-note{margin:6px 0 0;font:400 14px/1.45 var(--font-ui);color:var(--muted);text-wrap:pretty}.options{display:flex;flex-direction:column;border-radius:16px;background:#ffffff0d;overflow:hidden}.option{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:0 16px;cursor:pointer;font:500 16px/1.2 var(--font-ui)}.option+.option{box-shadow:inset 0 1px 0 var(--line)}.option input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.option svg{color:var(--moon);opacity:0;transform:scale(.6);transition:opacity .15s,transform .2s var(--ease-spring)}.option input:checked~svg{opacity:1;transform:none}.option input:checked~span{color:var(--moon);font-weight:600}.option:active{background:#ffffff0d}.night{position:fixed;inset:0;z-index:60;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);transition:backdrop-filter 3s ease,-webkit-backdrop-filter 3s ease}.night.on{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.night:after{content:"";position:absolute;inset:0;opacity:0;transition:opacity 3s ease;background:radial-gradient(60% 40% at 50% 50%,#04050c8c,#04050c40)}.night.on:after{opacity:1}.night[hidden]{display:none}.night:before{content:"";position:absolute;inset:0;background:#000;opacity:0;transition:opacity 60s linear}.night.on:before{opacity:.7}.night-msg{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--moon);opacity:0;transform:translateY(6px);transition:opacity 3s ease,transform 3s var(--ease-out);text-align:center}.night.on .night-msg{opacity:.8;transform:none}.night-msg p{margin:0;font:600 36px/1.1 var(--font-display);font-variation-settings:"SOFT" 100,"WONK" 1;letter-spacing:-.015em;text-shadow:0 2px 30px rgba(0,0,0,.6)}.night-msg small{font:500 13px/1 var(--font-ui);color:#f2efe88c}.stage{--paper: #f7f3ea;--paper-back: #ece6d8;--edge-1: #ddd5c3;--edge-2: #cfc6b2;--edge-3: #bdb39d;--ink: #2a2f52;--title: #283266;--p-muted: #8a8aa3;--p-muted-strong: #5d6290;--mark: rgba(242,190,90,.42)}.stage[data-paper=night]{--paper: #1f2140;--paper-back: #191b36;--edge-1: #2a2c50;--edge-2: #24264a;--edge-3: #1d1f40;--ink: #ece3cc;--title: #f6e5a2;--p-muted: #8487b0;--p-muted-strong: #b9b8d6;--mark: rgba(242,190,90,.28);--img-filter: brightness(.82) saturate(.9);--grain: .25}.stage[data-paper=night] .page:before{mix-blend-mode:screen}.stage[data-paper=night] .again{background:var(--title);color:#1c2250}@media(min-width:700px)and (min-height:700px){.stage{padding-top:14px;--pb: 18px}.dock{margin-top:16px}}@media(prefers-reduced-motion:reduce){.chrome,.sheet[open],.play[aria-pressed=true] .play-disc,.gate,.gate-disc,.dock-handle{transition:none;animation:none}}
