:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ground:#f6f4ef;--ink:#1f1e1c;--gray:#6b675f;--accent:#ec5b13;--on-accent:var(--ink);--line:color-mix(in oklab, var(--gray) 30%, var(--ground));--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.75rem;--leading:1.5;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--control-height:3rem;--radius-control:12px;--dot:8px;--dot-gap:6px;--duration:.18s;--ease-out:cubic-bezier(.16, 1, .3, 1)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ground:#1b1a18;--ink:#f2efe8;--gray:#a39e94;--accent:#ff7a2e;--on-accent:var(--ground)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--ground);min-height:100dvh;color:var(--ink);font-family:var(--font);font-size:var(--text-md);line-height:var(--leading);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;caret-color:var(--accent);accent-color:var(--accent);scrollbar-color:var(--gray) var(--ground);margin:0}::selection{background:var(--accent);color:var(--on-accent)}h1,h2,p{margin:0}h1,h2{text-wrap:balance;letter-spacing:-.02em}p{text-wrap:pretty}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.button{box-sizing:border-box;min-height:var(--control-height);padding:0 var(--space-5);border-radius:var(--radius-control);color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation;transition:background-color var(--duration) var(--ease-out), color var(--duration) var(--ease-out);background:0 0;border:0;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.button[data-block]{width:100%}.button[data-variant=primary]{background:var(--accent);color:var(--on-accent)}.button[data-variant=quiet]{padding:0 var(--space-3);font-weight:500}@media (hover:hover){.button[data-variant=primary]:hover:not(:disabled){background:color-mix(in oklab, var(--accent) 88%, var(--ink))}.button[data-variant=quiet]:hover:not(:disabled){background:color-mix(in oklab, var(--gray) 14%, var(--ground))}}.button:active:not(:disabled){transform:translateY(1px)}.button[aria-busy=true]{cursor:progress}.button:disabled{color:var(--gray);box-shadow:inset 0 0 0 1px var(--gray);cursor:not-allowed;background:0 0}.dot-grid{grid-template-columns:repeat(var(--columns), var(--dot));gap:var(--dot-gap);width:max-content;display:grid}.dot{width:var(--dot);height:var(--dot);transition:background-color var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out);border-radius:50%}.dot[data-state=off]{visibility:hidden}.dot-grid[data-variant=progress] .dot[data-state=empty]{box-shadow:inset 0 0 0 1.5px var(--gray)}.dot-grid[data-variant=grille] .dot[data-state=empty]{background:var(--gray)}.dot[data-state=filled]{background:var(--accent)}@media (prefers-reduced-motion:no-preference){.dot-grid[data-busy] .dot[data-state=empty]{animation:dot-sweep 1.8s var(--ease-out) infinite;animation-delay:calc(var(--column) * 90ms)}}@keyframes dot-sweep{20%{background-color:var(--accent)}}.text-field{gap:var(--space-2);display:grid}.text-field label{font-size:var(--text-sm);font-weight:500}.text-field input{min-height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--gray);border-radius:var(--radius-control);background:var(--ground);color:var(--ink);font:inherit;transition:border-color var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out)}.text-field input:focus-visible{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);outline:none}.text-field input[aria-invalid=true]{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.text-field input:disabled{opacity:.6}.login{align-content:center;gap:var(--space-6);width:min(100%,24rem);min-height:100dvh;padding:var(--space-7) var(--space-5) var(--space-6);grid-template-columns:minmax(0,1fr);margin:0 auto;display:grid}.login-grille{--dot:7px;--dot-gap:7px;justify-self:center}.login-intro{justify-items:center;gap:var(--space-2);text-align:center;display:grid}.login-intro h1{font-size:var(--text-xl);font-weight:600;line-height:1.15}.login-intro p{max-width:30ch;color:var(--gray);text-wrap:balance}.login-form{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.login-error{font-size:var(--text-sm);text-align:center;text-wrap:balance;font-weight:500}.login-error--field{min-height:3em}.login-code input{box-sizing:border-box;width:100%;min-width:0;font-size:var(--text-xl);font-variant-numeric:tabular-nums;letter-spacing:.4em;text-indent:.4em;text-align:center;font-weight:600}.status-dot{width:.75rem;height:.75rem;box-shadow:inset 0 0 0 1.5px var(--gray);border-radius:50%;flex:none;display:inline-block}.status-dot[data-status=working]{box-shadow:inset 0 0 0 2px var(--accent)}.status-dot[data-status=ready]{background:var(--accent);box-shadow:none}@media (prefers-reduced-motion:no-preference){.status-dot[data-status=working]{animation:2s ease-in-out infinite status-pulse}}@keyframes status-pulse{50%{background-color:color-mix(in oklab, var(--accent) 45%, transparent)}}.page{width:min(100%,40rem);padding:0 var(--space-5) var(--space-8);margin:0 auto}.app-header{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:4rem;padding-top:env(safe-area-inset-top);margin-right:calc(var(--space-3) * -1);display:flex}.app-wordmark{letter-spacing:-.01em;font-weight:600}.page-alert:not(:empty){padding:var(--space-3) 0;font-size:var(--text-sm);font-weight:500}.page-main{gap:var(--space-6);padding-top:var(--space-6);display:grid}.page-title{font-size:var(--text-xl);font-weight:600;line-height:1.15}.state-screen{text-align:center;place-content:center;justify-items:center;gap:var(--space-5);min-height:100dvh;padding:var(--space-6) var(--space-5);width:min(100%,24rem);margin:0 auto;display:grid}.state-screen-text{gap:var(--space-2);display:grid}.state-screen h1{font-size:var(--text-lg);font-weight:600}.state-screen p{max-width:34ch;color:var(--gray);text-wrap:balance}.chapter-item{border-bottom:1px solid var(--line)}.chapter-item>.section-row{border-bottom:0}.chapter-toggle{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:0}.chapter-toggle:focus-visible{outline-offset:2px}.chapter-name{gap:.125rem;min-width:0;display:grid}.chapter-line{color:var(--gray);font-size:var(--text-sm)}@media (hover:hover){.chapter-toggle:hover .section-title{text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px}}.chapter-panel{gap:var(--space-4);padding:0 0 var(--space-4) calc(2rem + var(--space-3));justify-items:start;display:grid}.chapter-panel .book-alert:empty{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.chapter-status{max-width:48ch;color:var(--gray);font-size:var(--text-sm)}.language-choice{gap:var(--space-1);border:0;min-width:0;margin:0;padding:0;display:grid}.language-choice legend{margin-bottom:var(--space-1);font-size:var(--text-sm);padding:0;font-weight:500}.language-option{align-items:center;gap:var(--space-3);min-height:var(--control-height);cursor:pointer;display:flex}.language-option input{width:1.25rem;height:1.25rem;cursor:inherit;margin:0}.language-option[data-disabled]{color:var(--gray);cursor:not-allowed}.language-hint{color:var(--gray);font-size:var(--text-sm);max-width:48ch}.reading{gap:var(--space-5);display:grid}.reading-heading{gap:var(--space-2);display:grid}.reading-meta{color:var(--gray);font-size:var(--text-sm)}.reading-text{max-width:65ch;padding-top:var(--space-5);border-top:1px solid var(--line);overflow-wrap:break-word;gap:1em;font-size:1.0625rem;line-height:1.65;display:grid}.chapter-panel .audio-actions{margin-left:0}.chapter-panel-rule{border:0;border-top:1px solid var(--line);width:100%;height:0;margin:0}.voice-choice{gap:var(--space-2);width:min(100%,20rem);display:grid}.voice-choice label{font-size:var(--text-sm);font-weight:500}.voice-select{min-height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--gray);border-radius:var(--radius-control);background:var(--ground);color:var(--ink);font:inherit;transition:border-color var(--duration) var(--ease-out), box-shadow var(--duration) var(--ease-out)}.voice-select:focus-visible{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink);outline:none}.round-button{background:var(--accent);width:4.5rem;height:4.5rem;color:var(--on-accent);cursor:pointer;touch-action:manipulation;transition:background-color var(--duration) var(--ease-out), transform var(--duration) var(--ease-out);border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid}.round-button[data-size=sm]{width:3rem;height:3rem}.round-button[data-size=lg]{width:5.5rem;height:5.5rem}.round-button>svg{width:40%;height:40%}@media (hover:hover){.round-button:hover:not(:disabled){background:color-mix(in oklab, var(--accent) 88%, var(--ink))}}.round-button[aria-busy=true]{cursor:progress}.round-button:active:not(:disabled){transform:scale(.96)}.round-button:disabled{color:var(--gray);box-shadow:inset 0 0 0 1.5px var(--gray);cursor:not-allowed;background:0 0}.now-playing{gap:var(--space-4);padding-bottom:var(--space-5);border-bottom:1px solid var(--line);justify-items:start;display:grid}.now-playing-text{gap:.125rem;min-width:0;display:grid}.now-playing-title{font-size:var(--text-lg);overflow-wrap:anywhere;font-weight:600;line-height:1.25}.now-playing-meta,.now-playing-clock,.now-playing-notice p{color:var(--gray);font-size:var(--text-sm)}.now-playing-controls{align-items:center;gap:var(--space-4);display:flex}.now-playing-controls .button{font-variant-numeric:tabular-nums}.now-playing-resume{align-items:center;gap:var(--space-4);display:flex}.now-playing-notice{gap:var(--space-2);justify-items:start;display:grid}.seek-grid{padding:var(--space-2) 0;cursor:pointer;touch-action:manipulation;border-radius:4px}.seek-grid[aria-disabled]{cursor:default}.now-playing-clock{width:calc(20 * 10px + 19 * var(--dot-gap));font-variant-numeric:tabular-nums;justify-content:space-between;max-width:100%;display:flex}.now-playing .book-alert:empty{display:none}.mini-player{z-index:10;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:var(--ground);position:fixed;inset:auto 0 0}.mini-player-inner{align-items:center;gap:var(--space-3);width:min(100%,40rem);min-height:4.5rem;padding:var(--space-3) var(--space-5);margin:0 auto;display:flex}.mini-player-text{min-width:0;min-height:var(--control-height);flex:1;align-content:center;text-decoration:none;display:grid}.mini-player-title,.mini-player-meta{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mini-player-title{font-weight:500}.mini-player-meta{color:var(--gray);font-size:var(--text-sm);font-variant-numeric:tabular-nums}@media (hover:hover){.mini-player-text:hover .mini-player-title{text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px}}@media (width<=22rem){.mini-player-progress{display:none}}body:has(.mini-player) .page{padding-bottom:calc(var(--space-8) + 4.5rem)}.book-heading{gap:var(--space-2);display:grid}.book-heading .page-title{overflow-wrap:anywhere}.book-summary,.book-message p,.book-sections-head p{color:var(--gray)}.book-message{gap:var(--space-3);justify-items:start;display:grid}.book-message-text{max-width:48ch;padding-top:var(--space-5);border-top:1px solid var(--line)}.book-sections{gap:var(--space-4);display:grid}.book-sections-head{gap:var(--space-1);display:grid}.book-sections-head h2{font-size:var(--text-lg);font-weight:600;line-height:1.25}.book-sections-head p{font-size:var(--text-sm)}.section-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.section-row{align-items:baseline;gap:var(--space-3);min-height:3.5rem;padding:var(--space-3) 0;border-bottom:1px solid var(--line);grid-template-columns:2rem 1fr auto;display:grid}.section-number,.section-time{color:var(--gray);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.section-title{overflow-wrap:anywhere;min-width:0}.section-time{white-space:nowrap}.chapter-row{grid-template-columns:2rem 1fr auto auto;align-items:center}.chapters-busy{gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--line);color:var(--gray);display:grid}.book-sections .book-message{padding-top:var(--space-4);border-top:1px solid var(--line)}.book-alert{min-height:1.5em;font-size:var(--text-sm)}.library-head{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.library-head .page-title:focus-visible{outline-offset:6px}.library-top{gap:var(--space-3);display:grid}.library-feedback{display:grid}.library-message{font-size:var(--text-sm);font-weight:500}.upload-status{gap:var(--space-2);display:grid}.upload-status p{font-size:var(--text-sm);overflow-wrap:anywhere;font-weight:500}.tabular{font-variant-numeric:tabular-nums}.library-loading{padding-top:var(--space-6);border-top:1px solid var(--line)}.library-empty{gap:var(--space-5);padding-top:var(--space-6);border-top:1px solid var(--line);display:grid}.library-empty-text{gap:var(--space-2);max-width:36ch;display:grid}.library-empty-text h2{font-size:var(--text-lg);font-weight:600;line-height:1.25}.library-empty-text p{color:var(--gray)}.book-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.book-row{border-bottom:1px solid var(--line)}.book-row-main{align-items:center;gap:var(--space-4);width:100%;min-height:4rem;padding:var(--space-3) 0;color:inherit;font:inherit;text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:0;display:flex}.book-row-main:focus-visible{outline-offset:2px}.book-row-text{flex:1;gap:.125rem;min-width:0;display:grid}.book-title{overflow-wrap:anywhere;font-weight:600;line-height:1.3}.book-meta{color:var(--gray);font-size:var(--text-sm)}@media (hover:hover){.book-row-main:hover .book-title{text-underline-offset:.2em;text-decoration:underline;text-decoration-thickness:1px}}.book-panel{gap:var(--space-3);padding-bottom:var(--space-4);display:grid}.book-failure,.book-confirm p{font-size:var(--text-sm);max-width:48ch}.book-confirm{gap:var(--space-3);display:grid}.book-actions{gap:var(--space-2);margin-left:calc(var(--space-3) * -1);flex-wrap:wrap;display:flex}.book-confirm .book-actions{margin-left:0}.button[data-tone=strong]:not(:disabled){box-shadow:inset 0 0 0 1px var(--ink)}
