:root{--bg:#f6f1e8;--surface:#fffcf6;--surface-2:#efe6d8;--ink:#231c14;--muted:#6c6052;--faint:#978a79;--line:#e2d7c5;--accent:#b24a22;--accent-strong:#983c18;--accent-ink:#fff8f0;--accent-soft:#f4ddcd;--focus:#2459c9;--shadow:0 1px 2px #231c140f, 0 10px 30px #231c141a;--cover-shadow:0 1px 1px #231c1424, 0 6px 16px #231c1429;--backdrop:#140f0a6b;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mini-h:64px;--gutter:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#15120f;--surface:#1f1a16;--surface-2:#2a241e;--ink:#f1e9dd;--muted:#b2a594;--faint:#85796a;--line:#342c25;--accent:#ec8453;--accent-strong:#f29a6e;--accent-ink:#1c0f07;--accent-soft:#3d2619;--focus:#7aa2ff;--shadow:0 1px 2px #0006, 0 12px 32px #00000073;--cover-shadow:0 1px 1px #00000080, 0 8px 20px #00000073;--backdrop:#0009}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font:16px/1.5 var(--sans);-webkit-font-smoothing:antialiased;min-height:100vh;margin:0}html.has-player body{padding-bottom:calc(var(--mini-h) + 28px + env(safe-area-inset-bottom))}html.np-open body{overflow:hidden}a{color:inherit}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2.5px solid var(--focus);outline-offset:2px;border-radius:6px}[hidden]{display:none!important}.skip{background:var(--surface);z-index:100;border-radius:8px;padding:8px 12px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.icon{flex:none;width:22px;height:22px;display:block}.bar-inner,#main,.foot{max-width:1120px;padding-left:max(var(--gutter), env(safe-area-inset-left));padding-right:max(var(--gutter), env(safe-area-inset-right));margin:0 auto}.bar-inner{padding-top:max(14px, env(safe-area-inset-top));justify-content:space-between;align-items:center;gap:12px;padding-bottom:6px;display:flex}.brand{font-family:var(--serif);letter-spacing:-.01em;align-items:center;gap:9px;font-size:23px;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{width:30px;height:30px;color:var(--accent)}.bar-note{color:var(--muted);text-align:right;margin:0;font-size:14px}.bar-note abbr{text-decoration:none}@media (max-width:560px){.bar-inner{flex-direction:column;align-items:flex-start;gap:0}.bar-note{text-align:left;margin-top:-2px;padding-left:39px}}#main{outline:none;padding-bottom:24px}.search{margin:14px 0 6px;position:relative}.search-icon{color:var(--faint);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.search-input{border:1px solid var(--line);background:var(--surface);appearance:none;border-radius:999px;width:100%;height:50px;padding:0 18px 0 48px;font-size:17px;box-shadow:0 1px 2px #231c140a}.search-input::placeholder{color:var(--faint)}.search-input:focus-visible{outline-offset:0;border-radius:999px}.shelf{margin-top:26px}.shelf-title{font-family:var(--serif);letter-spacing:-.01em;margin:0 0 12px;font-size:22px;font-weight:700}.shelf-row{scroll-snap-type:x proximity;scroll-padding-left:var(--gutter);margin:0 calc(-1 * var(--gutter));padding:4px var(--gutter) 10px;scrollbar-width:thin;grid-auto-columns:124px;grid-auto-flow:column;gap:14px;display:grid;overflow-x:auto}.shelf-row>*{scroll-snap-align:start}@media (min-width:720px){.shelf-row{grid-auto-columns:144px;gap:18px}}.card{flex-direction:column;gap:4px;min-width:0;text-decoration:none;display:flex}.card .cover{margin-bottom:6px;transition:transform .18s,box-shadow .18s}.card:hover .cover{transform:translateY(-2px)}.card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14.5px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.card-sub{color:var(--muted);font-size:13px;font-family:var(--serif);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-style:italic;line-height:1.3;display:-webkit-box;overflow:hidden}.card-author,.card-note{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.card-note{color:var(--accent);font-weight:600}.card-progress{background:var(--line);border-radius:3px;height:3px;margin:-2px 0 4px;overflow:hidden}.card-progress span{background:var(--accent);height:100%;display:block}.cover{aspect-ratio:2/3;background:var(--surface-2);box-shadow:var(--cover-shadow);border-radius:8px;position:relative;overflow:hidden;container-type:inline-size}.cover img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.cover-art{--hue:20;color:#fff7ec;background:radial-gradient(120% 60% at 0% 0%, #ffffff24, transparent 60%), linear-gradient(165deg, hsl(var(--hue) 34% 40%), hsl(calc(var(--hue) + 28) 40% 24%));font-family:var(--serif);flex-direction:column;justify-content:space-between;padding:11cqi 10cqi;display:flex;position:absolute;inset:0}.cover-art:after{content:"";background:#00000024;width:1.5cqi;position:absolute;top:0;bottom:0;left:7cqi}.cover-title{-webkit-line-clamp:6;-webkit-box-orient:vertical;padding-left:4cqi;font-size:12.5cqi;font-weight:700;line-height:1.12;display:-webkit-box;overflow:hidden}.cover-author{opacity:.85;font-size:9cqi;font-family:var(--sans);padding-left:4cqi}.cover-sm{box-shadow:none;border-radius:6px}.cover-sm .cover-art{padding:8cqi}.cover-sm .cover-author,.cover-sm .cover-title{display:none}.all{margin-top:36px}.all-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.count{color:var(--muted);margin:0;font-size:14px}.controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:2px 0 18px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 14px;font-size:14.5px;font-weight:600;line-height:1.2}.chip:hover{border-color:var(--faint)}.chip.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}.sort{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 14px;font-size:14.5px}.grid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:22px 14px;display:grid}@media (min-width:720px){.grid{grid-template-columns:repeat(auto-fill,minmax(144px,1fr));gap:26px 18px}}.loading{color:var(--muted);align-items:center;gap:12px;margin:24px 0;display:flex}.spinner{border:2.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.notice{background:var(--accent-soft);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:20px 0;padding:16px 18px;display:flex}.notice p{margin:0}.notice-actions{flex-wrap:wrap;gap:8px;display:flex}.button{border:1px solid var(--line);background:var(--surface);border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:0 20px;font-weight:650;line-height:1.15;text-decoration:none;display:inline-flex}.button:hover{border-color:var(--faint)}.button .icon{width:20px;height:20px}.button-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);min-height:52px;padding:0 26px 0 20px;font-size:17px}.button-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.button-primary span{flex-direction:column;align-items:flex-start;display:flex}.button-primary small{opacity:.9;font-size:12.5px;font-weight:500}.button-quiet{background:0 0}.icon-button{background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:inline-grid}.icon-button:hover{background:var(--surface-2)}.back{color:var(--muted);border-radius:999px;align-items:center;gap:4px;margin:10px 0 6px -6px;padding:8px 10px 8px 4px;font-weight:600;text-decoration:none;display:inline-flex}.back:hover{color:var(--ink)}.book-hero{text-align:center;grid-template-columns:1fr;justify-items:center;gap:22px;margin-top:8px;display:grid}.book-hero .cover{width:min(58vw,230px)}.book-info{flex-direction:column;align-items:center;min-width:0;display:flex}@media (min-width:720px){.book-hero{text-align:left;grid-template-columns:240px 1fr;place-items:end start;gap:36px}.book-hero .cover{width:240px}.book-info{align-items:flex-start}}.book-title{font-family:var(--serif);letter-spacing:-.015em;outline:none;margin:0;font-size:clamp(27px,5vw,40px);line-height:1.1}.book-subtitle{font-family:var(--serif);color:var(--muted);margin:8px 0 0;font-size:18px}.book-author{margin:10px 0 0;font-size:18px;font-weight:600}.book-facts{color:var(--muted);margin:8px 0 0;font-size:15px}.tags{gap:6px;justify-content:inherit;flex-wrap:wrap;margin:14px 0 0;padding:0;list-style:none;display:flex}.tags li{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:13px}.book-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px;display:flex}@media (min-width:720px){.book-actions{justify-content:flex-start}}.lead{border-left:3px solid var(--accent);font-family:var(--serif);color:var(--muted);max-width:44em;margin:30px 0 0;padding:2px 0 2px 18px;font-size:18px;font-style:italic;line-height:1.55}.lead p{margin:0}.chapters-wrap{max-width:760px;margin-top:34px}.chapters{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.chapter-section{letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:18px 12px 6px;font-size:12.5px;font-weight:750}.chapter{text-align:left;border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;grid-template-columns:2.4em 1fr auto;align-items:center;gap:10px;width:100%;padding:13px 12px;display:grid}.chapter:hover{background:var(--surface)}.chapter-num{color:var(--faint);font-variant-numeric:tabular-nums;align-items:center;height:18px;font-size:14px;font-weight:600;display:flex;position:relative}.chapter-title{overflow-wrap:anywhere;min-width:0}.chapter-time{color:var(--faint);font-variant-numeric:tabular-nums;font-size:14px}.chapter-intro .chapter-title{color:var(--muted);font-style:italic}.chapter.current .chapter-title{color:var(--accent);font-weight:650}.chapter.current .chapter-num{color:#0000}.chapter.current .chapter-num:before,.chapter.current .chapter-num:after{content:"";background:var(--accent);width:4px;height:8px;box-shadow:6px 3px 0 0 var(--accent), 12px -2px 0 0 var(--accent);border-radius:2px;position:absolute;bottom:2px;left:2px}.chapter.current .chapter-num:after{display:none}.is-playing .chapter.current .chapter-num:before{animation:.9s ease-in-out infinite alternate bars}@keyframes bars{0%{height:6px;box-shadow:6px 6px 0 0 var(--accent), 12px 1px 0 0 var(--accent)}50%{height:14px;box-shadow:6px -2px 0 0 var(--accent), 12px 4px 0 0 var(--accent)}to{height:9px;box-shadow:6px 3px 0 0 var(--accent), 12px -3px 0 0 var(--accent)}}.mini{left:0;right:0;bottom:calc(12px + env(safe-area-inset-bottom));width:min(720px, calc(100% - 2 * var(--gutter)));height:var(--mini-h);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.4);box-shadow:var(--shadow);border:1px solid var(--line);z-index:30;border-radius:16px;grid-template-columns:1fr auto;align-items:center;gap:4px;margin:0 auto;padding:0 8px 0 0;display:grid;position:fixed;overflow:hidden}.mini-progress{background:0 0;height:2.5px;position:absolute;top:0;left:0;right:0}.mini-progress span{background:var(--accent);width:0;height:100%;transition:width .25s linear;display:block}.mini-main{text-align:left;background:0 0;border:0;align-items:center;gap:12px;min-width:0;height:100%;padding:0 0 0 10px;display:flex}.mini-cover{flex:none;width:40px}.mini-text{flex-direction:column;min-width:0;display:flex}.mini-title,.mini-book{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mini-title{font-size:15px;font-weight:650}.mini-book{color:var(--muted);font-size:13px}.mini-play{background:var(--ink);width:48px;height:48px;color:var(--bg)}.mini-play:hover{background:var(--ink);opacity:.9}.mini.has-error .mini-book{color:var(--accent)}.np{z-index:40;background:radial-gradient(100% 50% at 50% 0%, var(--accent-soft), transparent 70%), var(--bg);outline:none;animation:.22s ease-out rise;position:fixed;inset:0;overflow-y:auto}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.np-inner{max-width:480px;height:100%;min-height:560px;padding:max(10px, env(safe-area-inset-top)) 22px calc(24px + env(safe-area-inset-bottom));flex-direction:column;gap:16px;margin:0 auto;display:flex}.np-head{text-align:center;grid-template-columns:44px 1fr 44px;align-items:center;display:grid}.np-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:700}.np-cover{flex:1 1 0;justify-content:center;min-height:150px;margin-top:4px;display:flex}.np-cover .cover{border-radius:10px;width:auto;max-width:100%;height:100%;max-height:440px;box-shadow:0 2px 4px #0000001f,0 22px 50px #00000040}.np-text{text-align:center}.np-title{font-family:var(--serif);margin:0;font-size:23px;line-height:1.2}.np-book{color:var(--muted);margin-top:6px;text-decoration:none;display:inline-block}.np-book:hover{text-decoration:underline}.np-scrub{accent-color:var(--accent);width:100%;height:28px;margin:0}.np-times{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:13px;display:flex}.np-controls{justify-content:space-between;align-items:center;width:100%;max-width:380px;margin:0 auto;display:flex}.np-ctl .icon{width:30px;height:30px}.np-ctl{width:52px;height:52px}.np-play{background:var(--accent);width:76px;height:76px;color:var(--accent-ink);box-shadow:0 8px 22px color-mix(in srgb, var(--accent) 40%, transparent);border:0;border-radius:50%;place-items:center;display:grid}.np-play:hover{background:var(--accent-strong)}.np-play .icon{width:36px;height:36px}.np-extra{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.pill{border:1px solid var(--line);background:var(--surface);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;padding:8px 14px 8px 11px;font-size:14px;font-weight:650;display:inline-flex}.pill .icon{width:19px;height:19px}.pill.on{border-color:var(--accent);color:var(--accent)}.np-error{text-align:center;color:var(--accent);margin:0;font-weight:600}.volume{color:var(--muted);align-items:center;gap:4px;display:flex}.volume-mute[aria-pressed=true]{color:var(--accent)}.volume-slider{accent-color:var(--accent);margin:0}.np-volume{justify-content:center;width:100%;max-width:380px;margin:0 auto}.np-volume .volume-slider{flex:1;min-width:0;height:28px}.mini-volume{display:none}@media (min-width:752px){.mini{grid-template-columns:1fr auto auto}.mini-volume{padding-left:6px;display:flex}.mini-volume .volume-slider{width:96px}}.sheet-backdrop{z-index:60;background:var(--backdrop);justify-content:center;align-items:flex-end;animation:.16s ease-out fade;display:flex;position:fixed;inset:0}.sheet-backdrop.closing{opacity:0;transition:opacity .15s}@keyframes fade{0%{opacity:0}}.sheet{background:var(--surface);width:min(100%,520px);max-height:88vh;padding:10px 18px calc(20px + env(safe-area-inset-bottom));box-shadow:var(--shadow);border-radius:20px 20px 0 0;outline:none;animation:.2s ease-out rise;overflow-y:auto}.sheet-wide{width:min(100%,640px)}@media (min-width:720px){.sheet-backdrop{align-items:center}.sheet{border-radius:20px;padding-bottom:22px}}.sheet-head{background:var(--surface);z-index:1;justify-content:space-between;align-items:center;padding:6px 0;display:flex;position:sticky;top:-10px}.sheet-title{font-family:var(--serif);margin:0;font-size:21px}.choices{flex-direction:column;margin-top:4px;display:flex}.choice{text-align:left;border:0;border-bottom:1px solid var(--line);background:0 0;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:14px 4px;display:grid}.choice:last-child{border-bottom:0}.choice-label{font-size:17px;font-weight:600}.choice-hint{color:var(--muted);grid-column:1;font-size:13.5px}.choice-check{color:var(--accent);grid-area:1/2/span 2}.choice.on .choice-label{color:var(--accent)}.chapters-sheet{margin-top:6px}.foot{border-top:1px solid var(--line);color:var(--muted);max-width:1120px;margin-top:40px;padding-top:22px;padding-bottom:30px;font-size:13.5px}.foot p{max-width:62em;margin:0 0 10px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
