:root{--bg:#faf8f6;--surface:#fff;--surface-2:#f3f2ef;--surface-3:#e9e7e3;--ink:#1b1a18;--ink-2:#55524c;--muted:#8c8881;--border:#ecebe7;--accent:#d2441c;--accent-strong:#b23a17;--accent-soft:#fce9e2;--accent-ink:#fff;--good:#2f8f46;--danger:#c43d3d;--flame:#ff7a1a;--shadow:0 1px 2px #14141408, 0 6px 20px #14141409;--shadow-lg:0 24px 64px #14141424;--radius:20px;--heat-0:#ecebe7;--heat-1:#f6d3a4;--heat-2:#eeaa5c;--heat-3:#d27f24;--heat-4:#9c5710;--hl-yellow:#ffd43b;--hl-green:#69db7c;--hl-blue:#5aaaff;--hl-pink:#ff7eb0;--hl-purple:#b197fc;--sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--serif:"Literata", Georgia, "Times New Roman", serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#14120e;--surface:#1a1918;--surface-2:#232220;--surface-3:#2e2c29;--ink:#f2f0ec;--ink-2:#c4c0b9;--muted:#8e8a83;--border:#2a2826;--accent:#ff7a55;--accent-strong:#ff9c7f;--accent-soft:#3a1f17;--accent-ink:#1b1308;--good:#5cc46f;--danger:#ef6b6b;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--shadow-lg:0 20px 60px #00000080;--heat-0:#262422;--heat-1:#5a3b17;--heat-2:#8f5a1c;--heat-3:#c97d27;--heat-4:#f7b25f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#14120e;--surface:#1a1918;--surface-2:#232220;--surface-3:#2e2c29;--ink:#f2f0ec;--ink-2:#c4c0b9;--muted:#8e8a83;--border:#2a2826;--accent:#ff7a55;--accent-strong:#ff9c7f;--accent-soft:#3a1f17;--accent-ink:#1b1308;--good:#5cc46f;--danger:#ef6b6b;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--shadow-lg:0 20px 60px #00000080;--heat-0:#262422;--heat-1:#5a3b17;--heat-2:#8f5a1c;--heat-3:#c97d27;--heat-4:#f7b25f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}html{-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--accent-strong)}h1,h2,h3{margin:0;line-height:1.2}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shell{grid-template-columns:232px 1fr;height:100%;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:4px;padding:20px 14px;display:flex;overflow-y:auto}.brand{letter-spacing:-.01em;align-items:center;gap:10px;padding:4px 10px 18px;font-size:19px;font-weight:700;display:flex}.brand img{width:30px;height:30px}.nav-short{display:none}.nav-item{color:var(--ink-2);text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:9px 12px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--ink)}.nav-item.active{background:var(--accent-soft);color:var(--accent-strong)}.nav-item .badge{margin-left:auto}.sidebar-foot{background:var(--surface-2);border-radius:12px;flex-direction:column;gap:8px;margin-top:auto;padding:12px;display:flex}.main{min-width:0;overflow-y:auto}.page{max-width:1240px;margin:0 auto;padding:28px 32px 64px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-head h1{letter-spacing:-.02em;font-size:28px}.page-head p{color:var(--muted);margin:6px 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;padding:20px}.card h2{align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.sub{color:var(--muted);font-size:13px}.btn{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-weight:500;transition:background .15s,transform .1s;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:var(--accent-strong)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{color:var(--danger)}.btn.sm{border-radius:8px;padding:5px 10px;font-size:13px}.btn.lg{border-radius:12px;padding:12px 20px;font-size:16px}.icon-btn{width:36px;height:36px;color:inherit;background:0 0;border:0;border-radius:10px;place-items:center;display:inline-grid}.icon-btn:hover{background:color-mix(in srgb, currentColor 10%, transparent)}.icon-btn.on{background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--accent-strong)}.badge{background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:500}.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.input,select.input,textarea.input{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;padding:8px 12px}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.bar{background:var(--surface-3);border-radius:999px;height:8px;overflow:hidden}.bar>span{background:var(--accent);border-radius:999px;height:100%;transition:width .5s;display:block}.bar.good>span{background:var(--good)}.empty{text-align:center;color:var(--muted);padding:40px 20px}.empty .big{margin-bottom:8px;font-size:40px}input[type=range]{accent-color:var(--accent);width:100%}.switch{background:var(--surface-3);border:0;border-radius:999px;flex-shrink:0;width:40px;height:22px;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(18px)}.kbd{border:1px solid var(--border);background:var(--surface);border-bottom-width:2px;border-radius:5px;padding:0 5px;font-family:ui-monospace,monospace;font-size:11px}.btn.primary .kbd{color:inherit;background:0 0;border-color:currentColor}.dash-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;display:grid}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.hero{grid-template-columns:auto 1fr;align-items:center;gap:28px;display:grid}.hero-continue{align-items:center;gap:18px;min-width:0;display:flex}.hero-continue .meta{flex:1;min-width:0}.hero-continue h3{font-family:var(--serif);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:2px 0 4px;font-size:22px;font-weight:600;display:-webkit-box;overflow:hidden}.ring-wrap{place-items:center;display:grid;position:relative}.ring-label{text-align:center;line-height:1.1;position:absolute}.ring-label .big{letter-spacing:-.02em;font-size:30px;font-weight:700}.ring-label .small{color:var(--muted);font-size:12px}.streak-pill{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;font-weight:600;display:inline-flex}.streak-pill .flame{font-size:18px}.streak-pill.cold .flame{filter:grayscale();opacity:.6}.level-pill{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:12px;min-width:240px;padding:8px 14px;display:flex}.level-pill .lv{background:var(--accent);width:30px;height:30px;color:var(--accent-ink);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:grid}.stat-tiles{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;display:grid}.stat{flex-direction:column;gap:2px;display:flex}.stat .label{color:var(--muted);font-size:13px}.stat .value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.quest{border-top:1px solid var(--border);grid-template-columns:26px 1fr auto;align-items:center;gap:10px;padding:10px 0;display:grid}.quest:first-of-type{border-top:0}.quest .check{border:2px solid var(--border);border-radius:50%;place-items:center;width:24px;height:24px;font-size:13px;display:grid}.quest.done .check{background:var(--good);border-color:var(--good);color:#fff}.quest.done .qlabel{color:var(--muted);text-decoration:line-through}.review-quote{font-family:var(--serif);border-left:3px solid var(--accent);margin:0;padding-left:16px;font-size:19px;line-height:1.55}.garden{background:linear-gradient(180deg, color-mix(in srgb, var(--good) 8%, var(--surface)), color-mix(in srgb, var(--good) 18%, var(--surface)));border-radius:12px;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:4px;min-height:72px;padding:12px;display:grid}.garden span{text-align:center;font-size:24px;line-height:34px}.garden span.withered{filter:grayscale();opacity:.45}.chart-svg text{fill:var(--muted);font-size:11px;font-family:var(--sans)}.chart-svg .grid{stroke:var(--border);stroke-width:1px}.chart-svg .bar-mark{fill:var(--heat-3)}.chart-svg .bar-mark.today{fill:var(--accent)}.chart-svg .goal-line{stroke:var(--ink-2);stroke-width:1px}.chart-svg .hit:hover+.bar-mark,.chart-svg .bar-mark:hover{opacity:.8}.heatmap{gap:3px;padding-bottom:4px;display:flex;overflow-x:auto}.heatmap .col{flex-direction:column;gap:3px;display:flex}.heatmap .cell{background:var(--heat-0);border-radius:3px;width:13px;height:13px}.heatmap .cell.l1{background:var(--heat-1)}.heatmap .cell.l2{background:var(--heat-2)}.heatmap .cell.l3{background:var(--heat-3)}.heatmap .cell.l4{background:var(--heat-4)}.heatmap .cell.frozen{background:#8cc7ef}.heatmap .cell.future{visibility:hidden}.heat-legend{color:var(--muted);align-items:center;gap:3px;font-size:12px;display:flex}.heat-legend .cell{border-radius:3px;width:11px;height:11px}.tooltip{pointer-events:none;background:var(--ink);color:var(--bg);z-index:1000;white-space:nowrap;box-shadow:var(--shadow);border-radius:8px;padding:6px 10px;font-size:12px;position:fixed;transform:translate(-50%,calc(-100% - 8px))}.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:26px 22px;display:grid}.book-card{cursor:pointer;flex-direction:column;gap:8px;min-width:0;display:flex;position:relative}.book-card:hover .cover{box-shadow:var(--shadow-lg);transform:translateY(-4px)rotate(-.5deg)}.cover{aspect-ratio:2/3;background:var(--surface-3);border-radius:4px 10px 10px 4px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden;box-shadow:0 2px 4px #0000001f,0 10px 26px #00000024}.cover img{object-fit:cover;width:100%;height:100%;display:block}.cover:before{content:"";z-index:1;background:linear-gradient(90deg,#00000040,#ffffff14,#0000);width:6px;position:absolute;top:0;bottom:0;left:0}.gen-cover{color:#fff;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:18px 14px;display:flex}.gen-cover .t{font-family:var(--serif);text-shadow:0 1px 2px #00000040;-webkit-line-clamp:5;-webkit-box-orient:vertical;font-size:17px;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.gen-cover .a{opacity:.85;font-size:12px}.gen-cover .orn{background:#fff9;width:36px;height:2px;margin:10px 0}.book-card .title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.book-card .author{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.book-card .menu-btn{z-index:2;color:#fff;opacity:0;background:#00000073;width:28px;height:28px;position:absolute;top:6px;right:6px}.book-card:hover .menu-btn,.book-card .menu-btn:focus-visible{opacity:1}.book-menu{z-index:5;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:10px;flex-direction:column;min-width:170px;padding:6px;display:flex;position:absolute;top:38px;right:6px}.book-menu button{text-align:left;background:0 0;border:0;border-radius:6px;padding:7px 10px;font-size:13px}.book-menu button:hover{background:var(--surface-2)}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted);margin-bottom:26px;padding:22px;transition:border-color .2s,background .2s}.dropzone.over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.drop-overlay{z-index:50;background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent-strong);pointer-events:none;place-items:center;font-size:24px;font-weight:600;display:grid;position:fixed;inset:0}.reader{--r-bg:#fdfbf7;--r-ink:#231e18;--r-muted:#8b8176;--r-chrome:#fdfbf7eb;--r-border:#00000014;--r-accent:#c8741c;z-index:20;background:var(--r-grad,none), var(--r-bg);color:var(--r-ink);flex-direction:column;transition:background-color .8s,color .8s;display:flex;position:fixed;inset:0}.reader.dark-theme mark.hl{color:inherit}.atmosphere{pointer-events:none;z-index:0;opacity:.9;width:100%;height:100%;animation:2s fade;position:absolute;inset:0}.reader-scroll{z-index:1;position:relative}.reader-overlay{pointer-events:none;z-index:5;transition:background .6s;position:absolute;inset:0}.reader-scroll.smooth{scroll-behavior:smooth}.reader-scroll.paged{background:var(--r-bg);border-radius:6px;flex:1;align-self:center;margin:58px auto 62px;overflow:hidden;box-shadow:0 1px 2px #0000001f,0 28px 60px -24px #00000073}.reader-scroll.paged .reader-content{column-width:var(--col);column-gap:var(--gap);column-fill:auto;max-width:none;height:100%;padding:50px var(--padx) 50px;-webkit-hyphens:auto;hyphens:auto;margin:0}.reader-scroll.paged .blk.p{text-indent:1.4em;margin:0}.reader-scroll.paged .blk.p:first-child,.reader-scroll.paged .blk:not(.p)+.blk.p{text-indent:0}.reader-scroll.paged .blk:not(.p)+.blk.p{margin-top:.4em}.reader.book-mode{background:var(--r-grad,none), color-mix(in srgb, var(--r-bg) 82%, #000)}.reader.book-mode.dark-theme{background:var(--r-grad,none), color-mix(in srgb, var(--r-bg) 55%, #000)}.book-frame{z-index:2;pointer-events:none;font-family:var(--sans);color:var(--r-muted);position:absolute;top:58px;bottom:62px;left:50%;transform:translate(-50%)}.book-frame .spine{background:linear-gradient(90deg,#0000,#0000000d 38%,#00000024 50%,#0000000d 62%,#0000);width:90px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.reader.dark-theme .book-frame .spine{background:linear-gradient(90deg,#0000,#0000002e 38%,#0006 50%,#0000002e 62%,#0000)}.book-frame .run,.book-frame .folio{letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;max-width:calc(50% - var(--padx) * 2);opacity:.8;font-size:11px;position:absolute;overflow:hidden}.book-frame .run{top:20px}.book-frame .folio{letter-spacing:.05em;font-variant-numeric:oldstyle-nums;bottom:18px}.book-frame .run-l,.book-frame .folio-l{left:var(--padx)}.book-frame .run-r,.book-frame .folio-r{right:var(--padx)}.book-frame.single .run-l,.book-frame.single .folio-l{max-width:80%;left:50%;transform:translate(-50%)}.reader.chrome-hidden .book-frame .run{opacity:.8}@media (width<=999px){.reader-scroll.paged{box-shadow:none;border-radius:0;margin:54px 0 40px}.book-frame{top:54px;bottom:40px}}.reader-scroll.paged .blk{break-inside:auto}.reader-scroll.paged .blk.img img{max-height:calc(100vh - 200px)}.flip-layer{z-index:3;pointer-events:none;background:var(--r-grad,none), var(--r-bg);backface-visibility:hidden;will-change:transform;position:fixed;overflow:hidden}.flip-layer .reader-scroll{overflow:hidden}.flip-shade{pointer-events:none;position:absolute;inset:0}.flip-layer.shade-r .flip-shade{background:linear-gradient(90deg,#0000001f,#0000 8% 85%,#0000001a)}.flip-layer.shade-l .flip-shade{background:linear-gradient(270deg,#0000001f,#0000 8% 85%,#0000001a)}.flip-layer.shade-r,.flip-layer.shade-l{box-shadow:0 0 40px #0000002e}.reader-scroll.paged .page-spacer{break-before:column;height:1px}.reader-scroll.paged .chapter-end{break-inside:avoid;gap:8px;margin-top:1.2em;padding-top:14px;font-size:14px}.reader-scroll.paged .blk.hr+.chapter-end{border-top:0;margin-top:0;padding-top:0}.chapter-end-meta{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 14px;width:100%;display:flex}.chapter-end-meta form{flex-basis:100%;justify-content:center}.chapter-end .chapter-end-note{color:var(--r-muted);font-size:13.5px}.page-turn-zone{z-index:2;cursor:pointer;width:12%;position:absolute;top:60px;bottom:60px}.page-turn-zone.left{left:0}.page-turn-zone.right{right:0}.page-indicator{font-variant-numeric:tabular-nums}.recap{z-index:9;background:color-mix(in srgb, var(--r-bg) 70%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);place-items:center;padding:20px;animation:.5s fade;display:grid;position:absolute;inset:0}.recap-card{background:var(--surface);width:100%;max-width:620px;max-height:85vh;color:var(--ink);box-shadow:var(--shadow-lg);font-family:var(--sans);border-radius:20px;padding:28px 30px;overflow-y:auto}.recap-card .excerpt{font-family:var(--serif);color:var(--ink-2);border-left:3px solid var(--accent);margin:10px 0 16px;padding-left:14px;font-size:16px;line-height:1.7}.people-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 6px;display:flex}.people-row .av{color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:grid}.search-hit{text-align:left;background:0 0;border:0;border-radius:8px;width:100%;padding:8px 10px;font-size:13px;line-height:1.45;display:block}.search-hit:hover{background:var(--surface-2)}.search-hit mark{background:var(--accent-soft);color:var(--accent-strong);border-radius:3px}.stars-input{gap:4px;font-size:28px;display:flex}.stars-input button{color:var(--border);background:0 0;border:0;padding:0;line-height:1}.stars-input button.on{color:#f4b400}.stars-input button{-webkit-tap-highlight-color:transparent;cursor:pointer}.mood-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.mood-grid button{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:7px 4px;font-size:12px}.mood-grid button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.track-btn{text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:9px 12px;display:flex}.track-btn small{color:var(--muted);font-size:12px}.track-btn.on{border-color:var(--accent);background:var(--accent-soft)}.now-playing{color:var(--r-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:8px;max-width:180px;padding:0 8px;font-size:12px;display:flex;overflow:hidden}.eq{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.eq i{background:var(--r-accent);border-radius:2px;width:3px;animation:1.2s ease-in-out infinite eq}.eq i:nth-child(2){animation-delay:.3s}.eq i:nth-child(3){animation-delay:.6s}@keyframes eq{0%,to{height:3px}50%{height:12px}}.onboard{z-index:300;background:radial-gradient(1200px 700px at 20% 0%, var(--accent-soft), transparent 60%), var(--bg);place-items:center;padding:20px;animation:.5s fade;display:grid;position:fixed;inset:0;overflow-y:auto}.onboard-card{background:var(--surface);border:1px solid var(--border);width:min(640px,100%);box-shadow:var(--shadow-lg);border-radius:24px;padding:34px 34px 28px}.onboard-card h1{font-family:var(--serif);letter-spacing:-.01em;margin-bottom:6px;font-size:30px;font-weight:600}.choice-group h2{font:600 11px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:18px 0 -8px}.choice-group .choice{padding:12px 14px}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0;display:grid}.choice{text-align:left;border:1.5px solid var(--border);background:var(--surface);border-radius:16px;flex-direction:column;gap:4px;padding:16px;transition:border-color .2s,transform .15s,background .2s;display:flex}.choice:hover{transform:translateY(-2px)}.choice.on{border-color:var(--accent);background:var(--accent-soft)}.choice .ic{width:40px;height:40px;color:var(--accent);background:var(--accent-soft);border-radius:12px;place-items:center;display:inline-grid}.with-ic{align-items:center;gap:8px;display:inline-flex}.with-ic svg{color:var(--accent);flex:none}.chip svg,.seg svg{vertical-align:-2px}.choice strong{font-size:15px}.choice span{color:var(--muted);font-size:13px}.steps{gap:6px;margin-bottom:22px;display:flex}.steps i{background:var(--surface-3);border-radius:4px;flex:1;height:4px}.steps i.on{background:var(--accent)}@media (width<=760px){.reader-top{scrollbar-width:none;overflow-x:auto}.reader-top .session-timer,.reader-top .now-playing{display:none}.reader-title{min-width:90px}.reader-content{padding-left:18px;padding-right:18px}.choice-grid{grid-template-columns:1fr}.onboard-card{padding:24px 20px}.progress-line span:last-child{display:none}}.reader.theme-sepia{--r-bg:#f4ecd8;--r-ink:#3f3122;--r-muted:#8a7458;--r-chrome:#f4ecd8eb}.reader.theme-mist{--r-bg:#eef1f4;--r-ink:#1e2630;--r-muted:#6b7684;--r-chrome:#eef1f4eb;--r-accent:#2f6fb5}.reader.theme-dawn{--r-bg:#fbf1ea;--r-ink:#3b2a26;--r-muted:#9a7b70;--r-chrome:#fbf1eae6;--r-accent:#d9776a;--r-grad:radial-gradient(1200px 600px at 80% -10%, #ffc8aa59, transparent 60%)}.reader.theme-sage{--r-bg:#eef1e8;--r-ink:#27301f;--r-muted:#75806a;--r-chrome:#eef1e8e6;--r-accent:#6b8f4e;--r-grad:radial-gradient(1000px 600px at 10% 110%, #aac8964d, transparent 60%)}.reader.theme-lavender{--r-bg:#f1eef7;--r-ink:#2d2640;--r-muted:#857c9c;--r-chrome:#f1eef7e6;--r-accent:#8a6fc2;--r-grad:radial-gradient(1100px 700px at 90% 0%, #c8b4f059, transparent 60%)}.reader.theme-ocean{--r-bg:#e6eff2;--r-ink:#1a2c35;--r-muted:#66808c;--r-chrome:#e6eff2e6;--r-accent:#2f7f95;--r-grad:linear-gradient(180deg, #a0cddc40, transparent 40%, #78aabe33)}.reader.theme-forest{--r-bg:#1d2620;--r-ink:#d9e2d3;--r-muted:#8a9a86;--r-chrome:#1d2620e6;--r-border:#ffffff14;--r-accent:#9cc27a;--r-grad:radial-gradient(900px 600px at 50% 120%, #50784659, transparent 70%)}.reader.theme-candle{--r-bg:#221a13;--r-ink:#ead9c2;--r-muted:#a08a70;--r-chrome:#221a13e6;--r-border:#ffffff14;--r-accent:#f0a04b;--r-grad:radial-gradient(900px 700px at 50% 110%, #f0963c2e, transparent 70%)}.reader.theme-dusk{--r-bg:#2b2a33;--r-ink:#e3dfd6;--r-muted:#9a96a4;--r-chrome:#2b2a33eb;--r-border:#ffffff1a;--r-accent:#f0a04b}.reader.theme-night{--r-bg:#141312;--r-ink:#cfcac1;--r-muted:#857f76;--r-chrome:#141312eb;--r-border:#ffffff14;--r-accent:#f0a04b}.reader.theme-oled{--r-bg:#000;--r-ink:#aaa59c;--r-muted:#6d6860;--r-chrome:#000000eb;--r-border:#ffffff14;--r-accent:#d9913f}.reader-top,.reader-bottom{z-index:3;background:var(--r-chrome);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .35s,transform .35s;position:absolute;left:0;right:0}.reader-top{border-bottom:1px solid var(--r-border);align-items:center;gap:4px;padding:8px 12px;display:flex;top:0}.reader-bottom{border-top:1px solid var(--r-border);padding:8px 20px 10px;bottom:0}.reader.chrome-hidden .reader-top{opacity:0;pointer-events:none;transform:translateY(-100%)}.reader.chrome-hidden .reader-bottom:not(.pinned){opacity:0;pointer-events:none;transform:translateY(100%)}.reader-title{flex:1;min-width:0;padding:0 8px;line-height:1.2}.reader-title .bt{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.reader-title .ct{color:var(--r-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.session-timer{font-variant-numeric:tabular-nums;color:var(--r-muted);align-items:center;gap:6px;padding:0 10px;font-size:13px;display:flex}.session-timer .dot{background:var(--r-muted);border-radius:50%;width:7px;height:7px}.session-timer .dot.live{background:#3fb05a;box-shadow:0 0 0 3px #3fb05a33}.reader-scroll{scroll-behavior:auto;flex:1;overflow-y:auto}.reader-content{font-size:var(--fs);line-height:var(--lh);max-width:var(--w);margin:0 auto;padding:90px 28px 160px}.reader-content.f-literata{font-family:var(--serif)}.reader-content.f-georgia{font-family:Georgia,Times New Roman,serif}.reader-content.f-inter{font-family:var(--sans)}.reader-content.f-atkinson{font-family:"Atkinson Hyperlegible", var(--sans)}.reader-content.justify .blk.p{text-align:justify;-webkit-hyphens:auto;hyphens:auto}.blk{margin:0 0 .9em;transition:opacity .35s;position:relative}.blk.h1{text-align:center;letter-spacing:-.01em;margin:1.5em 0 1.1em;font-size:1.7em;font-weight:600;line-height:1.25}.blk.h1:after{content:"";background:var(--r-accent);opacity:.8;border-radius:2px;width:44px;height:2px;margin:.6em auto 0;display:block}.blk.h2{margin:1.9em 0 .6em;font-size:1.22em;font-weight:600;line-height:1.3}.blk.h2:before{content:"";background:var(--r-accent);opacity:.7;border-radius:2px;width:28px;height:2px;margin-bottom:.55em;display:block}.blk.h3{font-variant:small-caps;letter-spacing:.04em;margin:1.4em 0 .4em;font-size:1.02em;font-weight:600}:is(.blk.h3:has(+.blk.h1),.blk.h3:has(+.blk.h3+.blk.h1),.blk.h3:has(+.blk.hr+.blk.h1)){text-align:center;font-variant:normal;text-transform:uppercase;letter-spacing:.18em;color:var(--r-muted);margin:1.6em 0 .3em;font-size:.78em;font-weight:500}.blk.h3+.blk.hr:has(+.blk.h1){margin:.3em 0}.blk.h3+.blk.h1,.blk.h3+.blk.hr+.blk.h1{margin-top:.5em}.blk.cap{text-align:center;color:var(--r-muted);text-indent:0;margin:.4em 0 1.2em;font-size:.82em;font-style:italic}.blk.h1+.blk.p,.blk.h1+.blk.quote+.blk.p{font-size:1.06em}.blk.h1+.blk.p:first-line,.blk.h1+.blk.quote+.blk.p:first-line{font-variant:small-caps;letter-spacing:.03em}.blk.h1+.blk.quote{text-align:center;border-left:0;margin:0 0 1.6em;padding:0 10%;font-size:.94em}.blk.quote{border-left:3px solid var(--r-accent);color:color-mix(in srgb, var(--r-ink) 85%, var(--r-bg));padding-left:1em;font-style:italic}.blk.li{padding-left:1.4em}.blk.li:before{content:"•";color:var(--r-muted);position:absolute;left:.4em}.blk.pre{white-space:pre-wrap;background:color-mix(in srgb, var(--r-ink) 6%, transparent);border-radius:8px;padding:12px;font-family:ui-monospace,monospace;font-size:.8em}.blk.hr{text-align:center;color:var(--r-muted);border:0;margin:1.4em 0}.blk.hr:before{content:"✦ ✦ ✦";letter-spacing:.8em;color:var(--r-accent);opacity:.7;font-size:.7em}.blk.img{text-align:center}.blk.img img{border-radius:6px;max-width:100%;max-height:70vh}.focus-lens .blk{opacity:.22}.focus-lens .blk.lens-on{opacity:1}.chapter-end{text-align:center;border-top:1px solid var(--r-border);font-family:var(--sans);flex-direction:column;align-items:center;gap:12px;margin-top:60px;padding-top:30px;font-size:15px;display:flex}.chapter-end .btn{border-color:var(--r-border);color:var(--r-ink);background:0 0}.chapter-end .btn.primary{background:var(--r-accent);border-color:var(--r-accent);color:#fff}mark.hl{color:inherit;cursor:pointer;border-radius:3px;padding:.05em 0}mark.hl-yellow{background:#ffcc336b}mark.hl-green{background:#66cc7761}mark.hl-blue{background:#5aaaff5c}mark.hl-pink{background:#ff6ea057}mark.hl-purple{background:#aa82ff61}mark.hl.has-note{text-underline-offset:4px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.tts-sent{background:color-mix(in srgb, var(--r-accent) 14%, transparent);box-shadow:0 0 0 2px color-mix(in srgb, var(--r-accent) 14%, transparent);border-radius:3px}.tts-word{background:color-mix(in srgb, var(--r-accent) 45%, transparent);border-radius:3px}.bionic b{font-weight:700}.progress-line{color:var(--r-muted);font-variant-numeric:tabular-nums;align-items:center;gap:14px;font-size:12px;display:flex}.progress-track{background:color-mix(in srgb, var(--r-ink) 12%, transparent);cursor:pointer;border-radius:999px;flex:1;height:4px;position:relative}.progress-track>span{background:var(--r-accent);border-radius:999px;position:absolute;inset:0 auto 0 0}.progress-track .tick{background:color-mix(in srgb, var(--r-ink) 25%, transparent);width:1px;height:8px;position:absolute;top:-2px}.panel{z-index:6;background:var(--surface);width:340px;max-height:calc(100% - 140px);color:var(--ink);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-family:var(--sans);border-radius:14px;padding:16px;font-size:14px;position:absolute;top:60px;right:12px;overflow-y:auto}.panel.left{left:12px;right:auto}.panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 8px;font-size:13px;font-weight:600}.panel h3:first-child{margin-top:0}.theme-swatches{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.theme-swatches button{aspect-ratio:1;border:2px solid var(--border);font-weight:600;font-family:var(--serif);border-radius:50%}.theme-swatches button.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.seg{background:var(--surface-2);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;padding:3px;display:grid}.seg button{background:0 0;border:0;border-radius:8px;padding:6px 4px;font-size:13px}.seg button.on{background:var(--surface);box-shadow:var(--shadow);font-weight:600}.setting-row{justify-content:space-between;align-items:center;gap:12px;padding:7px 0;display:flex}.setting-row .lbl{flex-direction:column;display:flex}.setting-row .lbl small{color:var(--muted);font-size:12px}.toc-item{text-align:left;background:0 0;border:0;border-radius:8px;width:100%;padding:8px 10px;font-size:14px;display:block}.toc-item:hover{background:var(--surface-2)}.toc-item.on{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.sel-toolbar{z-index:30;color:#f3ede3;font-family:var(--sans);background:#1f1b16;border-radius:12px;align-items:center;gap:2px;padding:5px;font-size:13px;display:flex;position:fixed;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 10px 30px #0000004d}.sel-toolbar.below{transform:translate(-50%,10px)}.sel-toolbar.touch{flex-wrap:wrap;justify-content:center;row-gap:4px;width:max-content;max-width:calc(100vw - 16px);transform:translate(-50%)}.sel-toolbar.touch .sw{width:28px;height:28px}.sel-toolbar.touch button.tb{padding:9px 10px}.sel-toolbar .sw{border:2px solid #0000;border-radius:50%;width:22px;height:22px;margin:0 2px}.sel-toolbar .sw.on{border-color:#fff}.sel-toolbar .sep{background:#fff3;width:1px;height:22px;margin:0 4px}.sel-toolbar button.tb{color:inherit;background:0 0;border:0;border-radius:8px;align-items:center;gap:5px;padding:6px 8px;display:flex}.sel-toolbar button.tb:hover{background:#ffffff1f}.sw-yellow{background:#ffd43b}.sw-green{background:#69db7c}.sw-blue{background:#5aaaff}.sw-pink{background:#ff7eb0}.sw-purple{background:#b197fc}.audio-bar{font-family:var(--sans);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.audio-bar .play{background:var(--r-accent);color:#fff;border:0;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.audio-bar .rate{flex:1;align-items:center;gap:8px;min-width:220px;max-width:340px;font-size:13px;display:flex}.audio-bar .rate input{flex:1}.audio-bar select{border:1px solid var(--r-border);background:0 0;border-radius:8px;max-width:200px;padding:5px 8px;font-size:13px}.audio-bar select option{color:#000}.focus-toast{z-index:4;background:var(--r-chrome);border:1px solid var(--r-border);font-family:var(--sans);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:10px;padding:6px 16px 6px 10px;font-size:14px;display:flex;position:absolute;top:64px;left:50%;transform:translate(-50%)}.focus-toast .plant{font-size:22px}.focus-toast .time{font-variant-numeric:tabular-nums;font-weight:600}.rsvp{z-index:8;background:var(--r-bg);font-family:var(--sans);flex-direction:column;justify-content:center;align-items:center;gap:30px;display:flex;position:absolute;inset:0}.rsvp-word{font-family:var(--serif);border-top:1px solid var(--r-border);border-bottom:1px solid var(--r-border);grid-template-columns:1fr auto 1fr;width:min(900px,90vw);min-height:80px;padding:20px 0;font-size:54px;display:grid}.rsvp-word .l{text-align:right}.rsvp-word .c{color:#e0493a}.lookup{z-index:40;background:var(--surface);width:380px;max-height:460px;color:var(--ink);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-family:var(--sans);border-radius:14px;font-size:14px;position:fixed;overflow-y:auto}.lookup-head{border-bottom:1px solid var(--border);background:var(--surface);padding:14px 16px 10px;position:sticky;top:0}.lookup-head .word{font-family:var(--serif);font-size:24px;font-weight:600}.lookup-body{padding:12px 16px 16px}.lookup .pos{color:var(--accent-strong);font-size:13px;font-style:italic}.lookup ol{margin:4px 0 10px;padding-left:20px}.lookup li{margin-bottom:6px}.lookup .ex{color:var(--muted);font-size:13px;font-style:italic;display:block}.hl-card{grid-template-columns:4px 1fr;gap:16px;padding:18px 20px;display:grid}.hl-card .stripe{border-radius:4px}.hl-card blockquote{font-family:var(--serif);margin:0;font-size:17px;line-height:1.6}.hl-card .note{background:var(--surface-2);color:var(--ink-2);border-radius:8px;margin-top:10px;padding:8px 12px;font-size:14px}.hl-card .foot{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;font-size:13px;display:flex}.stack{flex-direction:column;gap:14px;display:flex}.flash-wrap{perspective:1400px;max-width:640px;margin:0 auto}.flash{min-height:320px;transform-style:preserve-3d;cursor:pointer;transition:transform .5s;position:relative}.flash.flipped{transform:rotateY(180deg)}.flash-face{backface-visibility:hidden;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:32px;display:flex;position:absolute;inset:0}.flash-face.back{overflow-y:auto;transform:rotateY(180deg)}.flash-term{font-family:var(--serif);font-size:42px;font-weight:600}.grade-row{grid-template-columns:repeat(4,1fr);gap:10px;max-width:640px;margin:18px auto 0;display:grid}.grade-row .btn{flex-direction:column;gap:0;padding:10px}.grade-row small{color:var(--muted);font-size:11px}.vocab-table{border-collapse:collapse;width:100%}.vocab-table td,.vocab-table th{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:12px 10px}.vocab-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:12px;font-weight:600}.vocab-table .term{font-family:var(--serif);font-size:17px;font-weight:600}.ach-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.ach{align-items:center;gap:14px;padding:16px;display:flex}.ach .medal{background:var(--accent-soft);border-radius:50%;flex-shrink:0;place-items:center;width:54px;height:54px;font-size:26px;display:grid}.ach.locked .medal{filter:grayscale();opacity:.45;background:var(--surface-2)}.ach .name{font-weight:600}.toasts{z-index:100;flex-direction:column;gap:10px;width:340px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--surface);color:var(--ink);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-family:var(--sans);border-radius:14px;align-items:flex-start;gap:12px;padding:12px 14px;animation:.35s cubic-bezier(.2,1.4,.4,1) toast-in;display:flex}.toast .ic{font-size:24px;line-height:1}.toast .tt{font-size:14px;font-weight:600}.toast .tb{color:var(--muted);font-size:13px}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)scale(.96)}}.celebrate{z-index:200;background:#0a080573;place-items:center;animation:.25s fade;display:grid;position:fixed;inset:0}.celebrate canvas{pointer-events:none;position:absolute;inset:0}.celebrate-card{background:var(--surface);color:var(--ink);text-align:center;box-shadow:var(--shadow-lg);max-width:420px;font-family:var(--sans);border-radius:22px;padding:34px 40px;animation:.5s cubic-bezier(.2,1.5,.4,1) pop;position:relative}.celebrate-card .ic{margin-bottom:10px;font-size:64px;line-height:1}.celebrate-card h2{margin-bottom:6px;font-size:26px}.celebrate-card p{color:var(--ink-2);margin:0 0 20px}@keyframes pop{0%{opacity:0;transform:scale(.6)}}@keyframes fade{0%{opacity:0}}.modal-back{z-index:150;background:#0a080580;place-items:center;padding:20px;animation:.2s fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-lg);width:min(560px,100%);max-height:90vh;font-family:var(--sans);border-radius:18px;padding:24px;overflow-y:auto}.modal h2{margin-bottom:14px;font-size:20px}.alarm-ring{text-align:center;font-size:56px;animation:1s ease-in-out infinite ring}@keyframes ring{0%,to{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}}.day-picker{gap:4px;display:flex}.day-picker button{border:1px solid var(--border);background:var(--surface);border-radius:50%;width:32px;height:32px;font-size:12px;font-weight:600}.day-picker button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}@media (width<=1100px){.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 12}.stat-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.shell{grid-template-rows:1fr auto;grid-template-columns:1fr}.sidebar{padding:4px 4px calc(4px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--border);scrollbar-width:none;flex-direction:row;order:2;gap:0;overflow-x:auto}.brand,.sidebar-foot,.nav-item .nav-label{display:none}.sidebar .nav-item{text-align:center;border-radius:12px;flex-direction:column;flex:1 1 0;justify-content:center;gap:3px;min-width:50px;min-height:56px;padding:7px 2px 6px;position:relative}.sidebar .nav-item svg{width:24px;height:24px}.sidebar .nav-item.active{box-shadow:none;background:var(--accent-soft)}.nav-item .nav-short{letter-spacing:0;white-space:nowrap;font-size:11px;font-weight:600;line-height:1.1;display:block}.sidebar .nav-item .badge{min-width:16px;height:16px;padding:0 4px;font-size:10px;line-height:16px;position:absolute;top:3px;right:calc(50% - 22px)}.page{padding:18px 16px 40px}.hero{grid-template-columns:1fr;justify-items:center}.stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.panel,.lookup{width:calc(100% - 24px)}}.blk.flash{border-radius:6px;animation:1.8s flash-block}@keyframes flash-block{0%,40%{background:color-mix(in srgb, var(--r-accent) 22%, transparent);box-shadow:0 0 0 8px color-mix(in srgb, var(--r-accent) 22%, transparent)}}.paywall{width:min(520px,100%);padding:36px 36px 26px;position:relative}.pw-close{color:var(--muted);position:absolute;top:14px;right:14px}.pw-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);align-items:center;gap:12px;margin:0 0 14px;font-size:11px;font-weight:600;display:flex}.pw-eyebrow:after{content:"";background:var(--accent);opacity:.7;flex:0 0 36px;height:1px}.pw-title{font-family:var(--serif);letter-spacing:-.015em;margin:0 0 10px;font-size:32px;font-weight:500;line-height:1.15}.pw-title em{color:var(--accent);font-style:italic}.pw-lede{color:var(--ink-2);margin:0 0 22px;font-size:15px;line-height:1.55}.pw-benefits{color:var(--ink-2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin:0 0 22px;padding:18px 0;font-size:13.5px;list-style:none;display:grid}.pw-benefits li{align-items:baseline;gap:9px;line-height:1.4;display:flex}.pw-benefits svg{color:var(--accent);flex:none;transform:translateY(2px)}.pw-plans{flex-direction:column;gap:8px;display:flex}.pw-plan{text-align:left;border:1px solid var(--border);width:100%;color:var(--ink);background:0 0;border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 16px;transition:border-color .2s,background .2s;display:grid}.pw-plan:hover{border-color:color-mix(in srgb, var(--ink) 30%, var(--border))}.pw-plan.on{border-color:var(--ink);background:var(--surface)}.pw-radio{border:1px solid color-mix(in srgb, var(--ink) 35%, transparent);border-radius:50%;place-items:center;width:16px;height:16px;display:grid}.pw-plan.on .pw-radio{border-color:var(--ink)}.pw-plan.on .pw-radio:after{content:"";background:var(--ink);border-radius:50%;width:8px;height:8px}.pw-plan-name{flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:15px;font-weight:500;display:flex}.pw-tag,.pw-save{letter-spacing:.14em;text-transform:uppercase;font-size:10.5px;font-weight:600}.pw-tag{color:var(--accent)}.pw-save{color:var(--muted)}.pw-plan-price{font-family:var(--serif);text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;font-size:19px;font-weight:500;line-height:1.2;display:flex}.pw-plan-price small{font-family:var(--sans);color:var(--muted);font-size:11.5px;font-weight:400}.pw-note{color:var(--muted);margin:10px 2px 20px;font-size:12px}.pw-email{width:100%;font:inherit;color:var(--ink);border:0;border-bottom:1px solid var(--border);background:0 0;outline:none;padding:10px 2px;font-size:15px;transition:border-color .2s}.pw-email:focus{border-bottom-color:var(--ink)}.pw-email::placeholder{color:var(--muted)}.pw-consents{color:var(--muted);flex-direction:column;gap:8px;margin:16px 0 18px;font-size:12px;line-height:1.45;display:flex}.pw-consents label{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.pw-consents input{width:14px;height:14px;accent-color:var(--ink);flex:none;margin:1px 0 0}.pw-consents a{color:var(--ink-2);text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border)}.pw-cta{background:var(--ink);width:100%;height:52px;color:var(--bg);font:inherit;letter-spacing:.01em;cursor:pointer;border:0;border-radius:12px;font-size:15px;font-weight:500;transition:opacity .2s,transform .2s}.pw-cta:hover:not(:disabled){transform:translateY(-1px)}.pw-cta:disabled{opacity:.35;cursor:not-allowed}.pw-msg{color:var(--accent-strong);margin:12px 0 0;font-size:13px}.pw-trust{color:var(--muted);justify-content:center;align-items:center;gap:6px;margin:14px 0 0;font-size:11.5px;display:flex}.pw-foot{border-top:1px solid var(--border);text-align:center;color:var(--muted);margin-top:18px;padding-top:16px;font-size:12px}.pw-foot p{margin:8px 0 0}.pw-link{font:inherit;color:var(--ink-2);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--border);text-decoration-color:var(--border);cursor:pointer;background:0 0;border:0;padding:0;font-size:12.5px}@media (width<=560px){.paywall{padding:30px 20px 20px}.pw-title{font-size:27px}.pw-benefits{grid-template-columns:1fr;gap:8px}}.lock{margin-left:4px;font-size:10px}.trial-banner{background:linear-gradient(90deg, var(--accent-soft), transparent);border:1px solid var(--border);border-radius:12px;align-items:center;gap:10px;margin-bottom:18px;padding:10px 16px;font-size:14px;display:flex}.legal h2{margin:26px 0 8px;font-size:18px}.legal p,.legal li{color:var(--ink-2);line-height:1.65}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (width<=560px){.reader-top .hide-sm{display:none}.reader-top .icon-btn{width:32px}}.coach{background:linear-gradient(120deg, color-mix(in srgb, var(--accent) 9%, var(--surface)), var(--surface) 60%)}.coach-grid{grid-template-columns:1fr auto;align-items:start;gap:24px;display:grid}.coach-title{font-family:var(--serif);margin:2px 0 4px;font-size:24px!important;font-weight:600!important}.coach-note{background:var(--surface);border:1px dashed var(--accent);border-radius:12px;max-width:640px;padding:12px 14px;font-size:14px}.coach-side{flex-direction:column;align-items:flex-start;gap:6px;min-width:220px;display:flex}.week-dots{gap:6px;display:flex}.week-dots .wd{flex-direction:column;align-items:center;width:24px;font-size:16px;display:flex}.week-dots .wd small{color:var(--muted);font-size:10px}.week-dots .wd.rest i{color:var(--muted)}@media (width<=760px){.coach-grid{grid-template-columns:1fr}}.choice strong{color:var(--ink)}body{letter-spacing:-.005em}.sidebar{background:var(--bg);border-right:1px solid var(--border)}.brand{letter-spacing:-.02em;font-size:18px}.nav-item{border-radius:12px;font-size:14.5px}.nav-item.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.nav-item.active svg{color:var(--accent)}.sidebar-foot{background:var(--surface);border:1px solid var(--border)}.card{border-radius:var(--radius);padding:22px 24px}.page-head h1{letter-spacing:-.03em;font-size:30px;font-weight:650}.page-head p{font-size:15px}.card h2{letter-spacing:-.01em;font-size:15px}.streak-pill,.level-pill{box-shadow:none}.btn{border-radius:12px}.btn.primary{box-shadow:0 1px 0 #ffffff26 inset, 0 4px 14px color-mix(in srgb, var(--accent) 28%, transparent)}.stat .value{letter-spacing:-.03em;font-weight:650}.coach{background:linear-gradient(135deg, var(--accent-soft), var(--surface) 55%);border-color:color-mix(in srgb, var(--accent) 18%, var(--border))}.coach-note{border-style:solid;border-color:color-mix(in srgb, var(--accent) 30%, var(--border))}.trial-banner{background:var(--surface)}.quirk{color:var(--ink-2);margin-top:4px;font-size:15px}.palette-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 14px;display:grid}.palette{text-align:left;border:1.5px solid var(--border);background:var(--surface);border-radius:16px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;transition:border-color .2s,transform .15s;display:flex}.palette:hover{transform:translateY(-1px)}.palette.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.palette .dots{margin-bottom:6px;display:flex}.palette .dots i{border:2px solid var(--surface);width:20px;height:20px;box-shadow:0 0 0 1px var(--border);border-radius:50%;margin-right:-6px}.palette strong{font-size:14px}.palette small{color:var(--muted);font-size:12px}@media (width<=560px){.palette-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.brand>span{flex-direction:column;line-height:1.1;display:flex}.brand-tag{color:var(--muted);letter-spacing:0;font-size:11px;font-weight:500}.sources{border:1px solid var(--border);background:var(--surface);border-radius:16px;margin:0 0 22px}.sources-head{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.sources-head span{flex-direction:column;gap:2px;display:flex}.sources-head small{color:var(--muted);font-size:13px}.sources-head svg{color:var(--muted);transition:transform .2s}.sources.open .sources-head svg{transform:rotate(180deg)}.sources-body{padding:0 18px 16px}.sources-group h3{color:var(--ink);margin:14px 0 8px;font-size:14px}.sources-note{color:var(--muted);max-width:70ch;margin:0 0 10px;font-size:13px}.sources-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;display:grid}.source{border:1px solid var(--border);color:var(--ink);border-radius:12px;flex-direction:column;gap:4px;padding:12px 14px;text-decoration:none;transition:border-color .2s,transform .15s;display:flex}.source:hover{border-color:var(--accent);transform:translateY(-1px)}.source-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.source-top svg{color:var(--muted);flex:none}.source-what{color:var(--muted);font-size:13px}.source-tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-self:flex-start;margin-top:4px;padding:3px 8px;font-size:11px;font-weight:600}.source-tag.ext{background:var(--surface-3);color:var(--muted)}.reader.pacing .reader-content .blk:not(.img):not(.hr){color:color-mix(in srgb, var(--r-ink) 42%, transparent);transition:color .3s}.reader.pacing .tts-sent{color:var(--r-ink);background:color-mix(in srgb, var(--r-accent) 10%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--r-accent) 10%, transparent);border-radius:4px;transition:background .25s}.reader.pacing .reader-content{cursor:pointer}.pacer-inline{border-bottom:1px solid var(--r-border);color:var(--r-ink);font-family:var(--sans);white-space:nowrap;justify-content:center;align-items:center;gap:2px;margin-bottom:6px;padding:0 0 6px;font-size:13px;display:flex}.pacer-inline>svg{color:var(--r-accent)}.pacer-inline .icon-btn{width:30px;height:30px}.pacer-label{margin:0 6px 0 4px;font-weight:600}.pacer-wpm{cursor:text;align-items:baseline;gap:3px;display:inline-flex}.pacer-wpm input{width:48px;color:inherit;font:600 14px/1.2 var(--sans);font-variant-numeric:tabular-nums;text-align:center;-moz-appearance:textfield;background:0 0;border:1px solid #0000;border-radius:6px;padding:2px 4px}.pacer-wpm input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pacer-wpm input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.pacer-wpm input:hover{border-color:var(--r-border)}.pacer-wpm input:focus{border-color:var(--r-accent);background:var(--r-bg);outline:none}.pacer-wpm small{color:var(--r-muted);font-weight:400}.link-btn{color:var(--accent);font:600 14px/1.3 var(--sans);cursor:pointer;white-space:nowrap;text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-underline-offset:4px;background:0 0;border:0;padding:4px 0}.link-btn:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.welcome-back{width:100%;max-width:480px;padding:30px 28px 24px;position:relative}.welcome-back h2{font-family:var(--serif);margin:2px 0 6px;font-size:30px}.wb-close{position:absolute;top:14px;right:14px}.wb-eyebrow{font:600 11px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0}.wb-lede{color:var(--muted);margin:0 0 18px}.wb-option{text-align:left;border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--ink);cursor:pointer;border-radius:14px;align-items:flex-start;gap:14px;margin-bottom:10px;padding:14px;transition:border-color .2s;display:flex}.wb-option.static{cursor:default}.wb-option:not(.static):hover{border-color:var(--accent)}.wb-option .ic{width:40px;height:40px;color:var(--accent);background:var(--accent-soft);border-radius:12px;flex:none;place-items:center;display:inline-grid}.wb-option strong{font-size:15px;display:block}.wb-option small{color:var(--muted);margin-top:2px;font-size:13px;display:block}.wb-option .input{flex:1;min-width:0}.wb-msg{color:var(--ink);margin:4px 0 0;font-size:13px}.wb-foot{color:var(--muted);text-align:center;margin:14px 0 0;font-size:12px}.ob-head{align-items:baseline;gap:12px;display:flex}.ob-head h1{flex:1}@media (width<=560px){.ob-head{flex-direction:column-reverse;align-items:flex-start;gap:2px}}.acct-back{z-index:400}.acct{width:100%;max-width:440px;padding:30px 28px 24px;position:relative}.acct h2{font-family:var(--serif);margin:2px 0 6px;font-size:30px}.acct-google{border:1.5px solid var(--border);background:var(--surface);width:100%;color:var(--ink);font:600 15px/1.2 var(--sans);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:12px 16px;transition:border-color .2s,background .2s;display:inline-flex}.acct-google:hover{border-color:var(--ink)}.acct-or{color:var(--muted);align-items:center;gap:12px;margin:16px 0 12px;font-size:12px;display:flex}.acct-or:before,.acct-or:after{content:"";background:var(--border);flex:1;height:1px}.acct-cta{justify-content:center;width:100%;margin-top:12px}.acct-check{color:var(--ink);cursor:pointer;align-items:flex-start;gap:8px;margin-top:12px;font-size:13px;display:flex}.acct-check input{margin-top:2px}.acct-legal{color:var(--muted);text-align:center;margin:14px 0 0;font-size:12px}.acct-err{color:#c0392b;margin:10px 0 0;font-size:13px}.acct-skip{color:var(--muted);margin:10px auto 0;font-weight:500;display:block}.acct-label{color:var(--ink);margin:14px 0 6px;font-size:13px;font-weight:600;display:block}.acct-label small{color:var(--muted);margin-left:6px;font-weight:400}.acct-cc{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;place-items:center;height:42px;padding:0 10px;font-size:14px;font-weight:600;display:inline-grid}.acct-verified,.acct-inline-ok{color:#2e7d4f;align-items:center;gap:6px;font-weight:600;display:inline-flex}.acct-verified{margin:0}.acct-nudge{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:linear-gradient(120deg, var(--accent-soft), var(--surface) 70%);border-radius:16px;align-items:center;gap:14px;margin:0 0 18px;padding:14px 16px;display:flex}.acct-nudge .ic{width:40px;height:40px;color:var(--accent);background:var(--surface);border-radius:12px;flex:none;place-items:center;display:inline-grid}.acct-nudge-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.acct-nudge-text span{color:var(--muted);font-size:13px}@media (width<=560px){.acct-nudge{flex-wrap:wrap}.acct-nudge .btn{flex:1}}.pick-tag{color:var(--muted);align-self:flex-start;align-items:center;gap:5px;margin:2px 0;font-weight:600;display:inline-flex;font-size:12px!important}.pick-tag.free{color:#2e7d4f!important}.tour{z-index:500;position:fixed;inset:0}.tour-dim{background:#0a08058c;animation:.25s fade;position:absolute;inset:0}.tour-spot{outline:2px solid var(--accent);outline-offset:2px;pointer-events:none;border-radius:14px;transition:left .3s,top .3s,width .3s,height .3s;position:fixed;box-shadow:0 0 0 9999px #0a08058c}.tour-spot:after{content:"";border-radius:inherit;border:2px solid var(--accent);animation:1.8s ease-out infinite tour-pulse;position:absolute;inset:-2px}@keyframes tour-pulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.12)}}.tour-card{z-index:1;background:var(--surface);color:var(--ink);font-family:var(--sans);border-radius:18px;padding:20px 20px 16px;animation:.25s tour-in;position:fixed;box-shadow:0 20px 60px #0000004d}@keyframes tour-in{0%{opacity:0;transform:translateY(6px)}}.tour-x{width:30px;height:30px;position:absolute;top:10px;right:10px}.tour-count{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0;font-size:11px;font-weight:700}.tour-card h3{font-family:var(--serif);margin:4px 30px 6px 0;font-size:21px}.tour-body{color:var(--ink-2,var(--muted));margin:0;font-size:14px;line-height:1.55}.tour-nav{justify-content:space-between;align-items:center;gap:10px;margin-top:16px;display:flex}.tour-skip{color:var(--muted);font-size:13px;font-weight:500}.tour-dots{gap:5px;display:flex}.tour-dots i{background:var(--border);border-radius:50%;width:6px;height:6px}.tour-dots i.on{background:var(--accent);border-radius:4px;width:16px}.tour-gesture{background:var(--surface-2);border-radius:12px;place-items:center;height:96px;margin:-4px 0 10px;display:grid;overflow:hidden}.g-stage{background:repeating-linear-gradient(to bottom, transparent 0 14px, color-mix(in srgb, var(--ink) 12%, transparent) 14px 17px);border-radius:8px;width:200px;height:70px;position:relative}.g-hand{color:var(--ink);filter:drop-shadow(0 2px 3px #0003);position:absolute;top:30px;left:86px}.g-ripple{border:2px solid var(--accent);opacity:0;border-radius:50%;width:22px;height:22px;position:absolute;top:22px;left:88px}.g-tap .g-ripple,.g-double-tap .g-ripple{animation:1.6s ease-out infinite g-ripple}.g-double-tap .g-ripple.r2{animation-delay:.25s}.g-tap .g-hand,.g-double-tap .g-hand{animation:1.6s ease-in-out infinite g-press}@keyframes g-ripple{0%{opacity:.9;transform:scale(.4)}40%,to{opacity:0;transform:scale(1.6)}}@keyframes g-press{0%,to{transform:translateY(0)}10%{transform:translateY(3px)scale(.95)}20%{transform:translateY(0)}26%{transform:translateY(3px)scale(.95)}34%{transform:translateY(0)}}.g-swipe .g-hand{animation:1.8s ease-in-out infinite g-swipe}.g-page{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 22%, transparent));transform-origin:0;border-radius:8px;animation:1.8s ease-in-out infinite g-page;position:absolute;inset:0}@keyframes g-swipe{0%{opacity:0;transform:translate(60px)}15%{opacity:1}70%{opacity:1;transform:translate(-70px)}to{opacity:0;transform:translate(-70px)}}@keyframes g-page{0%,15%{opacity:0;transform:scaleX(1)}40%{opacity:1}70%,to{opacity:0;transform:scaleX(.2)}}.g-sel{background:color-mix(in srgb, var(--accent) 35%, transparent);border-radius:3px;height:14px;animation:2s ease-in-out infinite g-sel;position:absolute;top:14px;left:20px}.g-select .g-hand{animation:2s ease-in-out infinite g-drag}@keyframes g-sel{0%,15%{width:0}65%,to{width:150px}}@keyframes g-drag{0%,15%{transform:translate(-66px,-14px)}65%,to{transform:translate(84px,-14px)}}@media (prefers-reduced-motion:reduce){.tour-spot:after,.g-hand,.g-ripple,.g-page,.g-sel{animation:none!important}}.look-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.look{border:1.5px solid var(--border);color:#2d2640;cursor:pointer;font-family:var(--sans);background:linear-gradient(135deg,#f1eef7,#e6eff2 55%,#2b2a33);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;display:flex}.look.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent)}.look-aa{font-family:var(--serif);font-size:20px;line-height:1}.look-name{font-size:11px;font-weight:600}.lookup-line .line-quote{border-left:3px solid var(--r-accent,var(--accent));font-family:var(--serif);opacity:.85;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:8px 0 0;padding-left:10px;font-size:14px;font-style:italic;line-height:1.5;display:-webkit-box;overflow:hidden}.line-simple{margin:0 0 10px;font-size:15px;line-height:1.6}.line-loading{animation:1.2s ease-in-out infinite pulse-text}@keyframes pulse-text{50%{opacity:.45}}.line-words{gap:6px;margin:4px 0 0;padding:0;font-size:14px;list-style:none;display:grid}.line-words li{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.reader.pacing .book-frame .folio{bottom:32px}.toc-sections{border-left:2px solid color-mix(in srgb, var(--r-accent,var(--accent)) 40%, transparent);flex-direction:column;gap:2px;margin:6px 0 2px;padding-left:10px;display:flex}.toc-section{opacity:.85;cursor:pointer;border-radius:6px;padding:4px 8px;font-size:13px;display:block}.toc-section:hover{opacity:1;background:color-mix(in srgb, var(--r-accent,var(--accent)) 10%, transparent)}.toc-section.lvl-h3{padding-left:18px;font-size:12px}.acct-tabs{background:color-mix(in srgb, var(--ink) 6%, transparent);border-radius:12px;gap:4px;margin:4px 0 12px;padding:4px;display:flex}.acct-tabs button{white-space:nowrap;color:var(--muted);font:600 14px/1.2 var(--sans);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 6px;display:inline-flex}.acct-tabs button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.acct-hint{color:var(--muted);text-align:center;margin:8px 0 0;font-size:12.5px}.acct-code{text-align:center;letter-spacing:.4em;font-variant-numeric:tabular-nums;padding:12px;font-size:26px}.acct-code-actions{justify-content:space-between;margin-top:10px}.acct-user{align-items:center;display:flex;position:relative}.acct-user svg{color:var(--muted);position:absolute;left:11px}.acct-user .input{padding-left:32px;padding-right:120px}.acct-user-state{color:var(--muted);font-size:12px;position:absolute;right:12px}.acct-user-state.free{color:var(--good)}.acct-user-state.taken,.acct-user-state.invalid{color:var(--danger)}.acct-sync{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;display:flex}.acct-sync-note{margin:0 0 12px;font-size:13px}.sync-btn{border:1.5px solid var(--accent);background:var(--accent-soft);min-height:44px;color:var(--accent-strong);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-weight:700;display:inline-flex;position:relative}.sync-btn.compact{min-height:40px;padding:8px 14px;font-size:14px}.sync-btn.pending{background:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent)}.sync-btn:disabled{opacity:.75;cursor:default}.sync-dot{border:2px solid var(--bg);background:#f5b700;border-radius:50%;width:11px;height:11px;position:absolute;top:-2px;right:-2px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.cloud-shelf{border:1px dashed var(--border);border-radius:16px;margin:0 0 22px;padding:18px 20px}.cloud-shelf h2{margin:0 0 4px;font-size:17px}.cloud-shelf .sub{margin:0 0 12px}.cloud-shelf ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.cloud-shelf li{background:color-mix(in srgb, var(--ink) 4%, transparent);border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.cloud-meta{flex-direction:column;flex:1;min-width:0;display:flex}.cloud-meta strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cloud-meta span{color:var(--muted);font-size:12.5px}.ob-returning{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));background:var(--accent-soft);width:100%;color:var(--ink);text-align:left;font:inherit;cursor:pointer;border-radius:14px;align-items:center;gap:12px;margin:14px 0 6px;padding:12px 14px;display:flex}.ob-returning .ic{background:var(--surface);width:38px;height:38px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.ob-returning .txt{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ob-returning small{color:var(--ink-2);font-size:13px}.ob-returning .go{background:var(--accent);color:var(--accent-ink);border-radius:999px;flex:none;padding:7px 14px;font-size:14px;font-weight:600}.ob-new{color:var(--ink);margin:12px 0 4px;font-weight:600}.intro-back{z-index:350}.intro{width:min(600px,100%);padding:26px 26px 20px;position:relative}.intro-head{align-items:flex-end;gap:16px;padding-right:28px;display:flex}.intro-head h2{font-family:var(--serif);margin:4px 0;font-size:26px;line-height:1.15}.intro-by{color:var(--muted);margin:0;font-size:13.5px}.intro-hook{font-family:var(--serif);color:var(--ink);margin:20px 0 8px;font-size:21px;font-style:italic;line-height:1.35}.intro-brief{color:var(--ink-2);margin:8px 0 12px;font-size:15px;line-height:1.6}.intro-themes{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.intro-themes .chip{cursor:default;padding:4px 10px;font-size:12.5px}.intro-quotes{border-top:1px solid var(--border);margin-top:18px;padding-top:14px}.intro-quotes h3{align-items:center;gap:8px;margin:0 0 10px;font-size:15px;display:flex}.intro-quotes h3 svg{color:var(--accent)}.intro-quotes ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.intro-quotes blockquote{border-left:3px solid var(--accent);font-family:var(--serif);color:var(--ink);margin:0;padding:2px 0 2px 14px;font-size:16px;line-height:1.5}.intro-q-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 14px;margin:6px 0 0 17px;font-size:12.5px;display:flex}.intro-q-meta span{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.intro-q-meta .link-btn{align-items:center;gap:4px;font-size:12.5px;display:inline-flex}.intro-loading{color:var(--muted);gap:10px;margin:22px 0 8px;font-size:14px;display:grid}.intro-loading svg{vertical-align:-3px;color:var(--accent);display:inline}.intro-skel{background:linear-gradient(90deg, var(--surface-2), var(--surface-3), var(--surface-2));background-size:200% 100%;border-radius:6px;height:12px;animation:1.2s linear infinite intro-shimmer;display:block}.intro-skel.short{width:60%}@keyframes intro-shimmer{to{background-position:-200% 0}}.intro-cta{justify-content:center;width:100%;margin-top:20px}@media (width<=560px){.intro{padding:22px 18px 16px}.intro-head h2{font-size:22px}.intro-hook{font-size:19px}}.share-back{z-index:420}.share-modal{width:min(520px,100%)}.share-canvas{background:var(--surface-2);border-radius:14px;justify-content:center;padding:10px;display:flex}.share-canvas canvas{box-shadow:var(--shadow);border-radius:10px;width:100%;max-width:360px;height:auto;display:block}.share-canvas.story canvas{max-width:260px}.share-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 14px;margin-top:12px;display:flex}.share-controls .seg{background:var(--surface-2);border-radius:10px;gap:4px;padding:3px;display:inline-flex}.share-controls .seg button{font:600 13px/1.2 var(--sans);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 10px}.share-controls .seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.share-swatch{outline-offset:2px;cursor:pointer;border:0;border-radius:50%;width:28px;height:28px}.share-note{color:var(--muted);margin:10px 0 0;font-size:13px}.intro-share{justify-content:center;width:100%;margin-top:8px}.touch-tip{z-index:1200;background:var(--ink);max-width:min(260px,100vw - 24px);color:var(--bg);font:600 13px/1.3 var(--sans);text-align:center;box-shadow:var(--shadow);pointer-events:none;border-radius:10px;padding:7px 12px;animation:.15s fade;position:fixed;transform:translate(-50%,-100%)}.touch-tip.below{transform:translate(-50%)}@media (pointer:coarse){button,.icon-btn,.nav-item{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}.panel-close{z-index:7;background:var(--surface-2);width:34px;height:34px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:66px;right:18px}@media (pointer:coarse){.reader-content{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.reader-content textarea,.reader-content input{-webkit-user-select:text;user-select:text}}::highlight(rr-pick){background-color:#4285f459}.ios-hint{margin-bottom:16px;position:relative}.ios-hint-head{align-items:flex-start;gap:14px;padding-right:28px;display:flex}.ios-hint-head img{border-radius:12px;flex:none}.ios-hint .sub{margin:4px 0 0}.ios-hint-x{position:absolute;top:8px;right:8px}.ios-steps{margin:12px 0;padding-left:22px;line-height:1.55}.ios-steps li+li{margin-top:4px}.ios-pointer{z-index:1100;background:var(--accent);color:var(--accent-ink);font:700 13px/1.25 var(--sans);text-align:center;max-width:180px;box-shadow:var(--shadow-lg);pointer-events:none;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;animation:1s ease-in-out infinite ios-bob;display:flex;position:fixed}.ios-pointer.at-bottom-right{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));flex-direction:column-reverse}.ios-pointer.at-bottom{left:50%;bottom:calc(12px + env(safe-area-inset-bottom));flex-direction:column-reverse;width:180px;margin-left:-90px}.ios-pointer.at-top-right{right:12px;top:calc(12px + env(safe-area-inset-top))}@keyframes ios-bob{50%{transform:translateY(6px)}}.ios-pointer.at-top-right{animation-name:ios-bob-up}@keyframes ios-bob-up{50%{transform:translateY(-6px)}}.ob-tour{margin:10px 0 2px;font-weight:600;display:block}.stars-input span{color:var(--border);line-height:1}.stars-input span.on{color:#f4b400}.rate-modal{max-width:440px;position:relative}.rate-x{position:absolute;top:12px;right:12px}.rate-head{align-items:center;gap:14px;padding-right:32px;display:flex}.rate-q{margin:18px 0 6px;font-weight:600}.rate-modal .input{margin-top:12px}.back-link{align-items:center;gap:6px;margin-bottom:14px;display:inline-flex}.chip-add{color:var(--ink-2);border-style:dashed}.challenge-count{align-items:baseline;gap:8px;margin:2px 0 10px;display:flex}.challenge-count strong{font-family:var(--serif);font-size:44px;line-height:1}.challenge-count span{color:var(--ink-2);font-size:16px}.challenge-count .link-btn{font-size:16px}.challenge-cover{cursor:pointer;background:0 0;border:0;flex:none;padding:0}.book-hero{align-items:flex-start;gap:28px;margin-bottom:24px;display:flex}.book-hero-cover{flex:none;width:170px}.book-hero-info h1{margin:0;font-size:clamp(24px,4vw,36px);line-height:1.15}.book-author{color:var(--ink-2);margin:6px 0 12px;font-size:17px}.book-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:16px 0 0;display:grid}.book-facts dt{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.book-facts dd{margin:2px 0 0;font-weight:600}.book-hl{gap:10px;margin:0;padding:0;list-style:none;display:grid}.book-hl-item{text-align:left;border:1px solid var(--border);background:var(--surface);width:100%;color:inherit;font:inherit;cursor:pointer;border-left-width:4px;border-radius:12px;gap:4px;padding:12px 14px;display:grid}.book-hl-item .q{font-family:var(--serif);font-size:16px;line-height:1.5}.book-hl-item .n{color:var(--ink-2);font-size:14px}.book-hl-item .c{color:var(--muted);font-size:12px}.book-hl-item.hl-yellow{border-left-color:#ffd43b}.book-hl-item.hl-green{border-left-color:#69db7c}.book-hl-item.hl-blue{border-left-color:#4dabf7}.book-hl-item.hl-pink{border-left-color:#f783ac}.book-hl-item.hl-purple{border-left-color:#b197fc}@media (width<=640px){.book-hero{gap:16px}.book-hero-cover{width:110px}}.year-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px;display:grid}.year-tile{border:1px solid var(--border);background:var(--surface);border-radius:16px;gap:4px;padding:16px;display:grid}.year-tile strong{font-family:var(--serif);font-size:30px;line-height:1.1}.year-tile span{color:var(--ink-2);font-size:13px}@media (width<=640px){.year-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}.eyebrow-sm{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.year-feature-book{width:100%;color:inherit;text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:16px;padding:0;display:flex}.year-feature-book h3{margin:4px 0 0}.year-books{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:14px;display:grid}.year-book{color:inherit;cursor:pointer;background:0 0;border:0;justify-items:start;gap:6px;padding:0;display:grid}.shelf-modal{max-width:440px}.shelf-list{gap:6px;max-height:46vh;display:grid;overflow-y:auto}.shelf-row{border:1px solid var(--border);border-radius:12px;align-items:center;gap:6px;padding:2px 4px 2px 2px;display:flex}.shelf-row.on{border-color:var(--accent);background:var(--accent-soft)}.shelf-toggle{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:10px;min-height:44px;padding:10px;font-weight:600;display:flex}.shelf-check{border:2px solid var(--border);width:22px;height:22px;color:var(--accent-ink);border-radius:6px;place-items:center;display:grid}.shelf-row.on .shelf-check{background:var(--accent);border-color:var(--accent)}.mood-note{z-index:8;background:var(--surface);max-width:calc(100% - 24px);color:var(--ink);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-family:var(--sans);border-radius:999px;align-items:center;gap:12px;padding:8px 8px 8px 16px;font-size:14px;animation:.25s fade;display:flex;position:absolute;top:64px;left:50%;transform:translate(-50%)}
