:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#f7f3ea;--paper-raised:#fffcf5;--paper-sunken:#efe8da;--ink:#23262b;--ink-soft:#5f6570;--line:#ded5c2;--line-strong:#c9bda5;--accent:#33507a;--accent-deep:#243b5c;--accent-soft:#e7edf6;--rubric:#9a3b2e;--gold:#a9863f;--gold-soft:#f1e7cd;--wood:#7c5a3c;--wood-light:#a47c55;--wood-dark:#4e3522;--shadow:#23262b1a;--shadow-strong:#23262b38;--serif-display:"Cormorant Garamond", "Iowan Old Style", "Times New Roman", serif;--serif-body:"Literata", Georgia, "Times New Roman", serif;--sans:"Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--read-size:1.0625rem;--read-line:1.72;--measure:68ch;--radius:8px;--radius-lg:14px;--header-h:3.8rem}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#15181d;--paper-raised:#1c2027;--paper-sunken:#111318;--ink:#e8e2d6;--ink-soft:#9aa1ac;--line:#2b313a;--line-strong:#3c444f;--accent:#92aed8;--accent-deep:#b1c8e8;--accent-soft:#202b3a;--rubric:#d08a7c;--gold:#c9a45c;--gold-soft:#362f22;--wood:#33251a;--wood-light:#4a3625;--wood-dark:#1d1510;--shadow:#0000004d;--shadow-strong:#0000008c}[data-fontsize=sm]{--read-size:.95rem}[data-fontsize=lg]{--read-size:1.22rem}[data-lineheight=compact]{--read-line:1.52}[data-lineheight=relaxed]{--read-line:1.95}[data-width=narrow]{--measure:56ch}[data-width=wide]{--measure:82ch}[data-fontfamily=georgia]{--serif-body:"Bookerly", Georgia, "Times New Roman", serif}[data-fontfamily=palatino]{--serif-body:Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif}[data-fontfamily=sans]{--serif-body:var(--sans)}[data-fontfamily=lexend]{--serif-body:"Lexend", var(--sans);--read-line:1.78;letter-spacing:.012em}[data-fontfamily=dyslexic]{--serif-body:"OpenDyslexic", "Lexend", sans-serif;--read-line:1.9;letter-spacing:.02em}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition-duration:.001ms!important;animation-duration:.001ms!important}}body{background:var(--paper);color:var(--ink);font-family:var(--serif-body);font-size:var(--read-size);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.7}a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent-deep)}img{max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}hr{border:0;border-top:1px solid var(--line)}:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:2px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:.6rem 1rem;position:absolute;top:-4rem;left:1rem}.skip-link:focus{top:.8rem}.app-shell{flex-direction:column;min-height:100vh;display:flex}.page{flex:1;width:100%;padding-bottom:4rem}.container{width:min(100% - 2rem,76rem);margin-inline:auto}.container-narrow{width:min(100% - 2rem,44rem);margin-inline:auto}.site-footer{border-top:1px solid var(--line);font-family:var(--sans);text-align:center;padding:2rem 1rem 6rem;font-size:.85rem}.site-footer,.site-footer a{color:var(--ink-soft)}.topbar{z-index:30;min-height:var(--header-h);background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:.6rem;padding:.55rem calc(clamp(1rem,4vw,2rem));display:flex;position:sticky;top:0}.topbar .spacer{flex:1}.wordmark{font-family:var(--serif-display);letter-spacing:.01em;align-items:center;gap:.5rem;font-size:1.42rem;font-weight:700;text-decoration:none;display:inline-flex}.wordmark,.wordmark:hover{color:var(--ink)}.wordmark .mark{background:var(--accent);width:1.65rem;height:1.65rem;color:var(--paper-raised);font-family:var(--serif-display);border-radius:3px;place-items:center;font-size:1rem;font-weight:700;display:inline-grid;box-shadow:inset -3px 0 #0000002e}.primary-nav{align-items:center;gap:.15rem;margin-left:.6rem;display:flex}.primary-nav a{font-family:var(--sans);color:var(--ink-soft);border-radius:6px;padding:.45rem .65rem;font-size:.9rem;text-decoration:none}.primary-nav a.router-link-active,.primary-nav a:hover{color:var(--ink);background:var(--paper-sunken)}@media (width<=760px){.primary-nav .optional{display:none}}.iconbtn{border:1px solid var(--line);background:var(--paper-raised);width:2.35rem;height:2.35rem;color:var(--ink);border-radius:7px;flex:none;justify-content:center;align-items:center;font-size:1rem;line-height:1;text-decoration:none;display:inline-flex}.iconbtn:hover{border-color:var(--gold);color:var(--ink)}.iconbtn.active{background:var(--gold-soft);border-color:var(--gold)}.iconbtn:disabled{opacity:.35;cursor:not-allowed;border-color:var(--line)}h1,h2,h3,h4{font-family:var(--serif-display);margin:0 0 .5rem;font-weight:600;line-height:1.14}h1{letter-spacing:-.01em;font-size:calc(clamp(2rem,4.5vw,3rem))}h2{font-size:calc(clamp(1.5rem,3vw,2rem))}h3{font-size:1.28rem}.eyebrow{font-family:var(--sans);letter-spacing:.15em;text-transform:uppercase;color:var(--gold);font-size:.72rem;font-weight:600}.lede{max-width:62ch;font-size:1.08rem}.lede,.muted{color:var(--ink-soft)}.small{font-family:var(--sans);font-size:.82rem}.ebook-page-label,.tabular{font-variant-numeric:tabular-nums}mark{background:var(--gold-soft);color:inherit;border-radius:2px;padding:0 .1em}.btn{font-family:var(--sans);border:1px solid var(--line-strong);background:var(--paper-raised);white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:.45rem;padding:.55rem .95rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.btn,.btn:hover{color:var(--ink)}.btn:hover{border-color:var(--gold)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--paper-raised)}.btn-primary:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:var(--paper-raised)}.btn-ghost{color:var(--ink-soft);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--paper-sunken);color:var(--ink)}.btn-danger{border-color:color-mix(in srgb,var(--rubric) 50%,transparent);color:var(--rubric);background:0 0}.btn-danger:hover{background:color-mix(in srgb,var(--rubric) 10%,transparent);border-color:var(--rubric);color:var(--rubric)}.btn-sm{padding:.35rem .6rem;font-size:.8rem}.btn-lg{padding:.75rem 1.3rem;font-size:1rem}.btn-block{width:100%}.field{flex-direction:column;gap:.35rem;margin-bottom:.9rem;display:flex}.field label{font-size:.8rem;font-weight:600}.field .hint,.field label{font-family:var(--sans);color:var(--ink-soft)}.field .hint{font-size:.75rem}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],input[type=url],select,textarea{border:1px solid var(--line-strong);background:var(--paper-raised);width:100%;color:var(--ink);font-family:var(--sans);border-radius:6px;padding:.55rem .7rem;font-size:.92rem}textarea{resize:vertical;min-height:6rem;line-height:1.55}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}input::-moz-placeholder{color:color-mix(in srgb,var(--ink-soft) 70%,transparent)}textarea::-moz-placeholder{color:color-mix(in srgb,var(--ink-soft) 70%,transparent)}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--ink-soft) 70%,transparent)}input[type=color]{border:1px solid var(--line-strong);background:var(--paper-raised);border-radius:6px;width:3rem;height:2.2rem;padding:.1rem}.checkline{font-family:var(--sans);align-items:center;gap:.5rem;font-size:.9rem;display:flex}.checkline input{width:auto}.row,.row-end{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.row-end{justify-content:flex-end}.grid-2{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}@media (width<=680px){.grid-2{grid-template-columns:1fr}}.pill{font-family:var(--sans);letter-spacing:.03em;background:var(--paper-sunken);color:var(--ink-soft);border:1px solid var(--line);text-transform:uppercase;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.pill.accent{background:var(--accent-soft);color:var(--accent-deep);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.pill.gold{background:var(--gold-soft);color:var(--gold);border-color:color-mix(in srgb,var(--gold) 40%,transparent)}.pill.green{color:#2f7a5a;background:#2f7a5a1f;border-color:#2f7a5a59}.pill.red{background:color-mix(in srgb,var(--rubric) 12%,transparent);color:var(--rubric);border-color:color-mix(in srgb,var(--rubric) 35%,transparent)}[data-theme=dark] .pill.green{color:#7ec9a5}.panel{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 1px 2px var(--shadow);padding:1.25rem}.panel h2,.panel h3{margin-bottom:.35rem}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.9rem;display:flex}.panel+.panel{margin-top:1rem}.divider{background:var(--line);height:1px;margin:1.2rem 0}.home{padding-top:calc(clamp(1.5rem,5vw,3.5rem))}.home-hero{grid-template-columns:1.35fr .65fr;align-items:end;gap:2rem;margin-bottom:2.2rem;display:grid}@media (width<=860px){.home-hero{grid-template-columns:1fr;gap:1rem}}.home-hero h1{margin-bottom:.6rem;font-size:calc(clamp(2.4rem,6vw,4rem))}.home-hero .lede{font-size:1.12rem}.hero-stats{flex-wrap:wrap;justify-content:flex-end;gap:1.4rem;padding-bottom:.4rem;display:flex}@media (width<=860px){.hero-stats{justify-content:flex-start}}.hero-stat{flex-direction:column;display:flex}.hero-stat b{font-family:var(--serif-display);font-size:1.7rem;font-weight:700;line-height:1}.hero-stat span{font-family:var(--sans);color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em;margin-top:.25rem;font-size:.75rem}.continue-card{background:var(--paper-raised);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--radius);color:var(--ink);box-shadow:0 1px 2px var(--shadow);align-items:center;gap:1rem;margin-bottom:1.6rem;padding:.9rem 1rem;text-decoration:none;display:flex}.continue-card:hover{background:var(--gold-soft);color:var(--ink)}.continue-card .cc-cover{flex:none;width:2.6rem}.continue-card .cc-body{flex:1;min-width:0}.continue-card .cc-kicker{font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-size:.68rem}.continue-card .cc-title{font-family:var(--serif-display);font-size:1.2rem;font-weight:700}.continue-card .cc-where{font-family:var(--sans);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.continue-card .cc-arrow{font-family:var(--sans);color:var(--gold);font-size:.85rem;font-weight:600}.shelf-toolbar{align-items:center;gap:.4rem;margin-bottom:1.2rem;display:flex}.shelf-toolbar .spacer{flex:1}.segmented{border:1px solid var(--line);background:var(--paper-raised);border-radius:7px;display:inline-flex;overflow:hidden}.segmented button{font-family:var(--sans);color:var(--ink-soft);background:0 0;border:0;padding:.4rem .7rem;font-size:.8rem}.segmented button+button{border-left:1px solid var(--line)}.segmented button.active{background:var(--accent-soft);color:var(--accent-deep);font-weight:600}.shelf-block{margin-bottom:2.4rem}.shelf-sign{justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:.7rem;display:flex}.shelf-sign h2{margin:0;font-size:1.55rem}.shelf-sign p{font-family:var(--sans);color:var(--ink-soft);margin:.15rem 0 0;font-size:.85rem}.shelf-stage{background:linear-gradient(180deg,color-mix(in srgb,var(--wood-light) 26%,var(--paper-sunken)) 0,var(--paper-sunken) 100%);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:inset 0 1px 0 #ffffff40,0 12px 30px -18px var(--shadow-strong);padding:calc(clamp(1rem,3vw,1.8rem)) calc(clamp(1rem,3vw,1.8rem)) 0;position:relative}[data-theme=dark] .shelf-stage{box-shadow:inset 0 1px #ffffff0d,0 14px 34px -18px #000}.shelf-tier{padding-bottom:1.2rem}.shelf-books{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:calc(clamp(1rem,3vw,2rem));display:grid}@media (width<=780px){.shelf-books{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){.shelf-books{grid-template-columns:1fr;max-width:17rem;margin-inline:auto}}.shelf-slot{flex-direction:column;align-items:center;gap:.55rem;display:flex}.shelf-rail{background:linear-gradient(180deg,var(--wood-light),var(--wood) 55%,var(--wood-dark));height:.65rem;box-shadow:0 6px 12px -6px var(--shadow-strong),inset 0 1px 0 #ffffff40;border-radius:3px;margin:0 -.35rem}.shelf-caption{font-family:var(--sans);color:var(--ink-soft);text-align:center;font-size:.76rem}.shelf-caption b{color:var(--ink);font-family:var(--serif-body);font-size:.9rem;font-weight:500;display:block}.shelf-progress{background:var(--line);border-radius:2px;width:100%;max-width:12rem;height:3px;overflow:hidden}.shelf-progress span{background:var(--gold);height:100%;display:block}.bookcases{flex-direction:column;gap:2.4rem;display:flex}.bookcase{background:linear-gradient(180deg,var(--wood-light),var(--wood) 55%,var(--wood-dark)) 0 0/100% .85rem no-repeat,linear-gradient(180deg,var(--wood-light),var(--wood) 55%,var(--wood-dark)) 0 100%/100% 1.15rem no-repeat,linear-gradient(90deg,var(--wood-dark),var(--wood-light) 45%,var(--wood) 72%,var(--wood-dark)) 0 0/calc(clamp(.9rem,2vw,1.15rem)) 100% no-repeat,linear-gradient(90deg,var(--wood-dark),var(--wood-light) 45%,var(--wood) 72%,var(--wood-dark)) 100% 0/calc(clamp(.9rem,2vw,1.15rem)) 100% no-repeat,repeating-linear-gradient(90deg,transparent 0 92px,#00000047 92px 94px),linear-gradient(180deg,color-mix(in srgb,var(--wood-dark) 72%,#000),color-mix(in srgb,var(--wood-dark) 88%,#000));box-shadow:0 20px 44px -24px var(--shadow-strong),inset 0 1px 0 #ffffff0f;border-radius:12px;padding:1rem calc(clamp(1.2rem,3vw,1.7rem)) 1.5rem;position:relative}.bookcase-head{flex-wrap:wrap;align-items:center;gap:.8rem;margin:.15rem 0 .9rem;display:flex}.bookcase-sign{font-family:var(--serif-display);letter-spacing:.02em;color:#f2e6c9;text-shadow:0 1px 2px #0009;background:linear-gradient(180deg,var(--wood-light),var(--wood) 62%,color-mix(in srgb,var(--wood) 82%,#000));border:1px solid var(--wood-dark);border-radius:6px;padding:.32rem 1rem .42rem;font-size:calc(clamp(1.05rem,2.6vw,1.3rem));font-weight:700;display:inline-block;box-shadow:inset 0 1px #ffffff38,0 3px 7px -2px #0000008c}.bookcase-count{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#f4e9c9b8;font-size:.7rem}.rack-row{padding:.15rem .2rem 0}.rack-subject-plaque{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#f2e6c9;text-shadow:0 1px 1px #0000008c;background:linear-gradient(180deg,var(--wood-light),var(--wood) 70%);border:1px solid var(--wood-dark);border-radius:4px;padding:.26rem .7rem .3rem;font-size:.68rem;font-weight:600;display:inline-block;box-shadow:inset 0 1px #fff3,0 2px 4px #00000073}.rack-books{scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--wood) transparent;align-items:flex-end;gap:calc(clamp(.85rem,2vw,1.35rem));padding:.55rem .65rem;display:flex;overflow-x:auto}.rack-book{scroll-snap-align:start;flex:none;width:calc(clamp(7rem,21vw,8.6rem))}.rack-book .rack-link{display:block}.rack-book:nth-child(3n+1) .book-cover{transform:rotate(-1.3deg)}.rack-book:nth-child(3n+2) .book-cover{transform:rotate(.9deg)translateY(2px)}.rack-book:nth-child(3n) .book-cover{transform:rotate(-.4deg)}.rack-book:focus-within .book-cover,.rack-book:hover .book-cover{transform:translateY(-6px)rotate(0)}.rack-book .shelf-caption{color:#f4e9c9c7}.rack-book .shelf-caption b{color:#f7edd4}.rack-plank{background:repeating-linear-gradient(88deg,#0000001a 0 3px,transparent 3px 11px,#ffffff0d 11px 14px,transparent 14px 27px),linear-gradient(180deg,var(--wood-light) 0,var(--wood) 42%,var(--wood) 62%,var(--wood-dark) 100%);height:.95rem;box-shadow:inset 0 1px 0 #ffffff42,inset 0 -2px 3px #00000061,0 8px 15px -6px var(--shadow-strong);border-radius:4px;margin:.15rem 0 1.15rem}.rack-row:last-child .rack-plank{margin-bottom:.35rem}@media (width<=560px){.bookcase{padding:.85rem .9rem 1.1rem}.rack-books{padding-inline:.3rem}}.shelf-list{border-top:1px solid var(--line)}.shelf-list-item{border-bottom:1px solid var(--line);color:var(--ink);grid-template-columns:3.2rem 1fr auto;align-items:center;gap:1rem;padding:.9rem .3rem;text-decoration:none;display:grid}.shelf-list-item:hover{background:var(--paper-sunken)}.shelf-list-item .sl-cover{width:3.2rem}.shelf-list-item .sl-title{font-family:var(--serif-display);font-size:1.15rem;font-weight:700}.shelf-list-item .sl-meta{font-family:var(--sans);color:var(--ink-soft);font-size:.8rem}.shelf-list-item .sl-side{font-family:var(--sans);color:var(--ink-soft);text-align:right;font-size:.78rem}.book-cover{--cover-accent:var(--accent);aspect-ratio:2/3;background:radial-gradient(ellipse at 30% 12%,#ffffff38,transparent 55%),linear-gradient(145deg,color-mix(in srgb,var(--cover-accent) 88%,#000) 0,var(--cover-accent) 52%,color-mix(in srgb,var(--cover-accent) 72%,#000) 100%);color:#fffaf0;border-radius:3px 7px 7px 3px;width:100%;text-decoration:none;transition:transform .25s,box-shadow .25s;display:block;position:relative;overflow:hidden;box-shadow:-3px 2px 6px #0000003d,4px 10px 20px -8px #00000073,inset -2px 0 #ffffff1f}.book-cover:before{content:"";z-index:2;background:linear-gradient(90deg,#00000061,#ffffff24 55%,#0000003d);border-right:1px solid #00000038;width:11px;position:absolute;top:0;bottom:0;left:0}.book-cover:after{content:"";border:1px solid color-mix(in srgb,var(--gold) 70%,transparent);pointer-events:none;z-index:1;border-radius:2px;position:absolute;inset:9px 9px 9px 15px}.book-cover:hover{transform:translateY(-5px)rotate(-.4deg);box-shadow:-4px 4px 8px #00000042,6px 18px 30px -10px #00000080,inset -2px 0 #ffffff29}.book-cover img{-o-object-fit:cover;object-fit:cover;z-index:0;width:100%;height:100%;position:absolute;inset:0}.book-cover .cover-inner{z-index:2;text-align:center;flex-direction:column;justify-content:space-between;height:100%;padding:1.15rem .9rem 1rem 1.3rem;display:flex;position:relative}.book-cover .cover-top{font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--gold) 85%,#fff);font-size:.55rem}.book-cover .cover-title{font-family:var(--serif-display);text-shadow:0 1px 3px #00000073;margin:.25rem 0;font-size:calc(clamp(.95rem,2.4vw,1.25rem));font-weight:700;line-height:1.14}.book-cover .cover-sub{font-family:var(--sans);color:#fffaf0c7;font-size:.6rem;line-height:1.3}.book-cover .cover-rule{background:color-mix(in srgb,var(--gold) 75%,transparent);width:2.2rem;height:1px;margin:.45rem auto}.book-cover .cover-author{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#fffaf0d1;font-size:.58rem}.book-cover .cover-imprint{font-family:var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#fffaf08c;overflow-wrap:anywhere;margin-top:.4rem;font-size:.46rem;line-height:1.5}.book-cover.is-large .cover-title{font-size:calc(clamp(1.2rem,2.5vw,1.7rem))}.cover-progress{z-index:3;background:#ffffff38;height:2px;position:absolute;bottom:.5rem;left:1.3rem;right:.9rem}.cover-progress span{background:var(--gold);height:100%;display:block}.book-detail{padding-top:2rem}.backlink{font-family:var(--sans);color:var(--ink-soft);align-items:center;gap:.35rem;margin-bottom:1.4rem;font-size:.85rem;text-decoration:none;display:inline-flex}.backlink:hover{color:var(--ink)}.book-hero{grid-template-columns:15rem 1fr;align-items:start;gap:calc(clamp(1.5rem,5vw,3.5rem));display:grid}@media (width<=760px){.book-hero{grid-template-columns:1fr}.book-hero .book-cover-wrap{max-width:12rem}}.book-cover-wrap{width:100%}.book-info h1{margin-bottom:.25rem;font-size:calc(clamp(2rem,5vw,3.2rem))}.book-info .book-sub{font-family:var(--serif-body);color:var(--ink-soft);margin:0 0 .5rem;font-size:1.15rem;font-style:italic}.book-info .book-author{font-family:var(--sans);color:var(--ink-soft);margin-bottom:1rem;font-size:.95rem}.book-desc{max-width:62ch;color:var(--ink-soft)}.book-actions{gap:.6rem;margin:1.3rem 0}.book-actions,.book-meta{flex-wrap:wrap;display:flex}.book-meta{font-family:var(--sans);color:var(--ink-soft);border-top:1px solid var(--line);gap:1.4rem;padding-top:1rem;font-size:.82rem}.book-meta b{color:var(--ink);font-weight:600}.progress-line{background:var(--paper-sunken);border-radius:3px;height:5px;margin:.4rem 0 .3rem;overflow:hidden}.progress-line span{background:var(--gold);height:100%;display:block}.toc{margin-top:2.5rem}.toc-chapter{border-top:1px solid var(--line)}.toc-chapter summary{cursor:pointer;font-family:var(--serif-display);align-items:center;gap:.8rem;padding:.9rem .2rem;font-size:1.2rem;font-weight:700;list-style:none;display:flex}.toc-chapter summary::-webkit-details-marker{display:none}.toc-chapter summary .num{font-family:var(--sans);color:var(--gold);text-transform:uppercase;letter-spacing:.08em;flex:none;width:2.2rem;font-size:.72rem;font-weight:600}.reader-bar .spacer,.toc-chapter summary .spacer{flex:1}.toc-sections{margin:0 0 .6rem;padding:0 0 0 3rem;list-style:none}.toc-sections li a{color:var(--ink-soft);border-bottom:1px dashed #0000;justify-content:space-between;gap:.8rem;padding:.38rem 0;font-size:.95rem;text-decoration:none;display:flex}.toc-sections li a:hover{color:var(--ink);border-bottom-color:var(--line)}.toc-sections .words{font-family:var(--sans);white-space:nowrap;font-size:.72rem}.reader-shell{background:var(--paper);min-height:100vh}.reader-bar{z-index:30;background:color-mix(in srgb,var(--paper) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.5rem calc(clamp(.8rem,3vw,1.6rem));display:flex;position:sticky;top:0}.reader-bar .book-title{font-family:var(--serif-display);color:var(--ink);font-size:1.05rem;font-weight:700;text-decoration:none}.reader-bar .book-title,.reader-bar .chapter-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.reader-bar .chapter-label{font-family:var(--sans);color:var(--ink-soft);font-size:.75rem}.reader-progress{background:var(--gold);z-index:40;height:2px;transition:width .15s linear;position:fixed;top:0;left:0}.reader-main{width:min(100% - 2rem,var(--measure));margin:0 auto;padding:2.2rem 0 7rem}.reader-chapter-head{border-bottom:1px solid var(--line);margin-bottom:2.2rem;padding-bottom:1.2rem}.reader-chapter-head .chapter-num{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-size:.72rem}.reader-chapter-head h1{margin:.2rem 0 .4rem}.reader-chapter-head .chapter-meta{font-family:var(--sans);color:var(--ink-soft);font-size:.8rem}.section-card{border-bottom:1px solid var(--line);margin-bottom:1.6rem;padding:.2rem 0 1.8rem;scroll-margin-top:5rem;position:relative}.section-card:last-of-type{border-bottom:0}.section-card.active{border-bottom-color:var(--gold)}.section-head{align-items:flex-start;gap:.8rem;margin-bottom:.8rem;display:flex}.section-head h2{flex:1;margin:.1rem 0 0;font-size:calc(clamp(1.35rem,2.6vw,1.75rem))}.section-actions{opacity:.35;gap:.2rem;transition:opacity .15s;display:flex}.section-card:focus-within .section-actions,.section-card:hover .section-actions{opacity:1}.section-actions button{color:var(--ink-soft);background:0 0;border:1px solid #0000;border-radius:5px;place-items:center;width:1.9rem;height:1.9rem;font-size:.85rem;display:inline-grid}.section-actions button:hover{background:var(--paper-sunken);color:var(--ink);border-color:var(--line)}.section-actions button.is-on{color:var(--gold);background:var(--gold-soft)}.section-read-time{font-family:var(--sans);color:var(--ink-soft);margin-bottom:.5rem;font-size:.72rem}.prose{font-size:var(--read-size);line-height:var(--read-line)}.prose>*+*{margin-top:.95em}.prose p{margin:0}.prose h2,.prose h3,.prose h4{margin-top:1.7em;margin-bottom:.45em}.prose h2{font-size:1.55em}.prose h3{font-size:1.25em}.prose ol,.prose ul{margin:.4em 0;padding-left:1.35em}.prose li+li,.prose>ol+ol{margin-top:.3em}.prose>.exercise-option{text-indent:-2.15em;margin-top:.25em;margin-left:1.4em;padding-left:2.15em}.prose>ol+.exercise-option{margin-top:.55em}.prose blockquote{border-left:3px solid var(--gold);font-family:var(--serif-display);margin:1.3em 0;padding:.2em 0 .2em 1.1em;font-size:1.18em;font-style:italic;line-height:1.5}.prose blockquote cite{font-family:var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-top:.45em;font-size:.68rem;font-style:normal;display:block}.prose figure{margin:1.5em 0}.prose figure img{border:1px solid var(--line);border-radius:4px}.prose figcaption{font-family:var(--sans);color:var(--ink-soft);text-align:center;margin-top:.4em;font-size:.78rem}.prose .table-wrap{width:fit-content;min-width:min(100%,28rem);max-width:calc(min(72rem,100vw - 2rem));margin:1.2em 0;position:relative;left:50%;transform:translate(-50%)}.prose table{border-collapse:collapse;width:auto;min-width:100%;max-width:100%;font-family:var(--sans);margin:0;font-size:.88rem}.prose td,.prose th{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.45rem .6rem}.prose th{background:var(--paper-sunken);font-weight:600}.prose .table-wrap .katex-display{width:auto;min-width:0;max-width:100%;margin:0;padding:0;position:static;left:auto;overflow:visible;transform:none}.prose .table-wrap .katex-display>.katex{text-align:left;display:inline-block}@media (width<=48rem){.prose .table-wrap{scrollbar-width:thin;overflow:auto hidden}}.prose code{font-family:var(--mono);background:var(--paper-sunken);border-radius:3px;padding:.1em .3em;font-size:.86em}.prose a{text-decoration-thickness:1px}.prose mark{background:var(--gold-soft)}.poetry{margin:1.4em 0;font-style:italic;line-height:1.65}.poetry .line,.poetry cite{display:block}.poetry cite{font-family:var(--sans);color:var(--ink-soft);margin-top:.5em;font-size:.72rem;font-style:normal}.callout{border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--accent-soft);border-radius:5px;padding:.85rem 1rem;font-size:.95em}.callout.tip{background:color-mix(in srgb,#2f7a5a 8%,var(--paper-raised));border-left-color:#2f7a5a}.callout.warning{border-left-color:var(--rubric);background:color-mix(in srgb,var(--rubric) 8%,var(--paper-raised))}.footnote{color:var(--ink-soft);border-top:1px dotted var(--line-strong);padding-top:.5rem;font-size:.85em}.footnote .marker{color:var(--gold);margin-right:.3rem;font-weight:700}.block-divider{color:var(--gold);align-items:center;gap:.8rem;margin:1.8em 0;display:flex}.block-divider:after,.block-divider:before{content:"";background:var(--line);flex:1;height:1px}.block-divider span{font-family:var(--serif-display);letter-spacing:.4em;font-size:1rem}.audio-block audio{width:100%;margin:.6em 0}.reader-end{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper-raised);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:2.5rem;padding:1.4rem;display:flex}.reader-end .next-label{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-size:.7rem}.reader-end .next-title{font-family:var(--serif-display);font-size:1.35rem;font-weight:700}.reader-theme-sepia{--paper:#f3e8d2;--paper-raised:#faf1df;--paper-sunken:#ebdcc0;--ink:#3a2f22;--ink-soft:#6b5a45;--line:#d9c7a5;--line-strong:#c4ad84}[data-theme=light] .reader-theme-paper{--paper:#fbfaf6;--paper-raised:#fffefb;--paper-sunken:#f0eee5}.reader-theme-night{--paper:#101216;--paper-raised:#171a1f;--paper-sunken:#0b0d10;--ink:#d7d3c9;--ink-soft:#918d85;--line:#252930;--line-strong:#333942;--accent:#9db4d6;--gold:#c3a268}.reader-theme-night .prose a{color:#a9c3e6}.drawer-backdrop{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a0c1059;position:fixed;inset:0}.drawer{z-index:51;background:var(--paper-raised);border-left:1px solid var(--line);width:min(22rem,100%);box-shadow:-10px 0 30px -10px var(--shadow-strong);padding:1.2rem;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.drawer.left{border-left:0;border-right:1px solid var(--line);box-shadow:10px 0 30px -10px var(--shadow-strong);left:0;right:auto}.drawer-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.drawer-head h2,.drawer-head h3{margin:0}.setting-group{margin-bottom:1.3rem}.setting-group>.label,.setting-group>label{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.4rem;font-size:.74rem;font-weight:600;display:block}.choice-row{flex-wrap:wrap;gap:.35rem;display:flex}.choice-row button{border:1px solid var(--line);background:var(--paper);font-family:var(--sans);color:var(--ink-soft);border-radius:6px;padding:.35rem .6rem;font-size:.8rem}.choice-row button.active{border-color:var(--accent);color:var(--accent-deep);background:var(--accent-soft);font-weight:600}.toc-drawer-list{margin:0;padding:0;list-style:none}.toc-drawer-list .toc-book{font-family:var(--serif-display);margin-bottom:.6rem;font-size:1.1rem;font-weight:700}.toc-drawer-list a{color:var(--ink-soft);border-radius:5px;justify-content:space-between;gap:.6rem;padding:.38rem .4rem;font-size:.88rem;text-decoration:none;display:flex}.toc-drawer-list a.active,.toc-drawer-list a:hover{background:var(--paper-sunken);color:var(--ink)}.toc-drawer-list .chapter{font-family:var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:.9rem 0 .25rem;font-size:.68rem;font-weight:700}.ebook-shell{background:var(--paper);min-height:100vh}.ebook-shell,.ebook-stage{flex-direction:column;display:flex}.ebook-stage{flex:1;min-height:0;padding:0 .6rem}.ebook-viewport{scroll-snap-type:x mandatory;scrollbar-width:none;flex:1;height:calc(100vh - 9.6rem);min-height:0;padding:0 calc(max(1rem,50vw - 39rem));overflow:auto hidden}.ebook-viewport::-webkit-scrollbar{display:none}.ebook-columns{-moz-column-width:34rem;column-width:34rem;-moz-column-gap:4rem;height:calc(100vh - 11rem);font-size:var(--read-size);line-height:var(--read-line);column-gap:4rem;padding:.5rem 0}.ebook-columns.spread{-moz-column-width:30rem;column-width:30rem}.ebook-columns>*{-moz-column-break-inside:avoid;break-inside:avoid}.ebook-columns .section-card{border:0;margin:0 0 1.2rem;padding:0;scroll-margin:0}.ebook-columns .section-actions{display:none}.ebook-columns .section-head{margin-bottom:.4rem}.ebook-columns .section-head h2{font-size:1.3em}.ebook-columns .reader-chapter-head{margin-bottom:1.2rem}.ebook-footer{border-top:1px solid var(--line);background:var(--paper-raised);font-family:var(--sans);color:var(--ink-soft);align-items:center;gap:.8rem;padding:.5rem calc(clamp(.8rem,3vw,1.6rem));font-size:.76rem;display:flex}.ebook-footer .scrubber{background:var(--paper-sunken);cursor:pointer;border-radius:2px;flex:1;height:4px;overflow:hidden}.ebook-footer .scrubber span{background:var(--gold);height:100%;display:block}.ebook-page-label{text-align:right;min-width:5.5rem}.ebook-turn{z-index:20;border:1px solid var(--line);background:color-mix(in srgb,var(--paper-raised) 85%,transparent);width:2.6rem;height:5rem;color:var(--ink-soft);border-radius:6px;font-size:1.2rem;position:fixed;top:50%;transform:translateY(-50%)}.ebook-turn:hover{color:var(--ink);border-color:var(--gold)}.ebook-turn.prev{left:.4rem}.ebook-turn.next{right:.4rem}@media (width<=640px){.ebook-turn{display:none}.ebook-viewport{padding:0 .8rem}.ebook-columns{-moz-column-width:100%;column-width:100%}}.player-bar{z-index:45;background:color-mix(in srgb,var(--paper-raised) 94%,transparent);border-top:1px solid var(--line);box-shadow:0 -8px 24px -18px var(--shadow-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:.8rem;padding:.55rem calc(clamp(.8rem,3vw,1.6rem));display:flex;position:fixed;bottom:0;left:0;right:0}.player-bar .pb-cover{flex:none;width:2.4rem}.player-bar .pb-body{flex:1;min-width:0}.player-bar .pb-title{font-size:.84rem;font-weight:600}.player-bar .pb-sub,.player-bar .pb-title{font-family:var(--sans);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.player-bar .pb-sub{color:var(--ink-soft);font-size:.7rem}.player-bar .pb-controls{align-items:center;gap:.2rem;display:flex}.player-bar .pb-progress{background:0 0;height:2px;position:absolute;top:-1px;left:0;right:0}.player-bar .pb-progress span{background:var(--gold);height:100%;display:block}.player-bar button{color:var(--ink);background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;width:2.1rem;height:2.1rem;display:inline-grid}.player-bar button:hover{background:var(--paper-sunken)}.player-bar button.play{background:var(--accent);color:var(--paper-raised)}.player-bar button.play:hover{background:var(--accent-deep)}.player-bar .speed{font-family:var(--sans);border-radius:5px;width:2.6rem;font-size:.72rem}@media (width<=620px){.player-bar .pb-controls .optional,.player-bar .pb-cover{display:none}}.player-panel{z-index:60;background:var(--paper);flex-direction:column;display:flex;position:fixed;inset:0}.player-panel-head{border-bottom:1px solid var(--line);align-items:center;gap:.6rem;padding:.8rem calc(clamp(1rem,4vw,2rem));display:flex}.player-panel-head .spacer{flex:1}.player-panel-body{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,22rem);align-items:start;gap:2rem;padding:2rem calc(clamp(1rem,5vw,4rem)) 6rem;display:grid;overflow-y:auto}@media (width<=820px){.player-panel-body{grid-template-columns:1fr}}.player-art{width:min(100%,20rem);margin:0 auto 1.4rem}.player-now{text-align:center}.player-now .pn-kicker{font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-size:.7rem}.player-now h1{margin:.25rem 0;font-size:calc(clamp(1.6rem,4vw,2.4rem))}.player-now .pn-sub{font-size:.88rem}.player-now .pn-sub,.player-scrub{font-family:var(--sans);color:var(--ink-soft)}.player-scrub{align-items:center;gap:.7rem;max-width:34rem;margin:1.6rem auto .8rem;font-size:.72rem;display:flex}.player-scrub input[type=range]{accent-color:var(--accent);flex:1}.player-controls{justify-content:center;align-items:center;gap:.6rem;margin:1.2rem 0;display:flex}.player-controls button{border:1px solid var(--line);background:var(--paper-raised);border-radius:50%;place-items:center;width:2.8rem;height:2.8rem;font-size:1rem;display:inline-grid}.player-controls button:hover{border-color:var(--gold)}.player-controls button.play{background:var(--accent);border-color:var(--accent);width:3.8rem;height:3.8rem;color:var(--paper-raised);font-size:1.2rem}.player-extras{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-top:.8rem;display:flex}.player-queue h3{margin-bottom:.5rem}.queue-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.queue-list li{border-bottom:1px solid var(--line)}.queue-list button{text-align:left;width:100%;color:var(--ink-soft);background:0 0;border:0;align-items:baseline;gap:.7rem;padding:.6rem .4rem;display:flex}.queue-list button:hover{background:var(--paper-sunken);color:var(--ink)}.queue-list button.active{color:var(--ink);background:var(--gold-soft)}.queue-list .qi-num{font-family:var(--sans);color:var(--gold);flex:none;width:1.5rem;font-size:.7rem}.queue-list .qi-title{font-size:.9rem}.queue-list .qi-src{font-family:var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin-left:auto;font-size:.66rem}.page-head{padding:2.2rem 0 1.2rem}.page-head h1{margin-bottom:.3rem}.search-box{margin:1rem 0 1.4rem;position:relative}.search-box input{border-radius:var(--radius);padding:.9rem 1rem .9rem 2.6rem;font-size:1.05rem}.search-box .search-icon{color:var(--ink-soft);position:absolute;top:50%;left:.9rem;transform:translateY(-50%)}.search-filters{flex-wrap:wrap;gap:.4rem;margin-bottom:1.2rem;display:flex}.search-hit{border-bottom:1px solid var(--line);color:var(--ink);padding:1rem .2rem;text-decoration:none;display:block}.search-hit:hover{background:var(--paper-sunken)}.search-hit .sh-book{font-family:var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--gold);font-size:.72rem}.search-hit .sh-title{font-family:var(--serif-display);margin:.1rem 0;font-size:1.18rem;font-weight:700}.search-hit .sh-snippet{color:var(--ink-soft);font-size:.92rem}.search-hit mark{background:var(--gold-soft);color:var(--ink)}.tabs{border-bottom:1px solid var(--line);gap:.2rem;margin-bottom:1.2rem;display:flex}.tabs button{font-family:var(--sans);color:var(--ink-soft);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.6rem .9rem;font-size:.88rem}.tabs button.active{color:var(--ink);border-bottom-color:var(--gold);font-weight:600}.bookmark-card,.note-card{border-bottom:1px solid var(--line);padding:1rem 0}.note-card .nq{font-family:var(--serif-display);color:var(--ink-soft);border-left:3px solid var(--gold);margin-bottom:.5rem;padding-left:.8rem;font-style:italic}.note-card .nb{white-space:pre-wrap}.bookmark-card .bm,.note-card .nm{font-family:var(--sans);color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:.5rem;font-size:.74rem;display:flex}.bookmark-card .bm a,.note-card .nm a{color:var(--accent);text-decoration:none}.empty{text-align:center;border:1px dashed var(--line-strong);border-radius:var(--radius-lg);color:var(--ink-soft);padding:3rem 1rem}.empty .empty-title{font-family:var(--serif-display);color:var(--ink);margin-bottom:.3rem;font-size:1.4rem;font-weight:700}.auth-page{background:radial-gradient(ellipse at top,var(--paper-sunken),var(--paper) 60%);place-items:center;min-height:100vh;padding:2rem 1rem;display:grid}.auth-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(100%,30rem);box-shadow:0 20px 50px -30px var(--shadow-strong);padding:calc(clamp(1.4rem,5vw,2.4rem))}.auth-card .wordmark{justify-content:center;width:100%;margin-bottom:1.2rem}.auth-card h1{margin-bottom:.3rem;font-size:1.9rem}.auth-card .lede{margin-bottom:1.4rem;font-size:.95rem}.auth-foot{color:var(--ink-soft);text-align:center;margin-top:1rem;font-size:.82rem}.auth-foot,.form-error{font-family:var(--sans)}.form-error{background:color-mix(in srgb,var(--rubric) 10%,transparent);border:1px solid color-mix(in srgb,var(--rubric) 35%,transparent);color:var(--rubric);border-radius:6px;margin-bottom:.9rem;padding:.6rem .8rem;font-size:.85rem}.setup-progress{gap:.3rem;margin-bottom:1.4rem;display:flex}.setup-progress span{background:var(--line);border-radius:2px;flex:1;height:3px}.setup-progress span.done{background:var(--gold)}.studio-shell{background:var(--paper);grid-template-columns:15.5rem 1fr;min-height:100vh;display:grid}@media (width<=900px){.studio-shell{grid-template-columns:1fr}.studio-sidebar{display:none}.studio-shell.menu-open .studio-sidebar{display:flex}}.studio-sidebar{border-right:1px solid var(--line);background:var(--paper-raised);flex-direction:column;gap:1rem;height:100vh;padding:1rem;display:flex;position:sticky;top:0}.studio-sidebar .wordmark{font-size:1.25rem}.studio-sidebar .studio-tag{font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-top:-.6rem;font-size:.66rem}.studio-nav{flex-direction:column;gap:.15rem;display:flex}.studio-nav a{font-family:var(--sans);color:var(--ink-soft);border-radius:6px;align-items:center;gap:.55rem;padding:.5rem .6rem;font-size:.88rem;text-decoration:none;display:flex}.studio-nav a:hover{background:var(--paper-sunken);color:var(--ink)}.studio-nav a.router-link-exact-active{background:var(--accent-soft);color:var(--accent-deep);font-weight:600}.studio-nav .nav-count{background:var(--gold-soft);color:var(--gold);border-radius:999px;margin-left:auto;padding:.05rem .4rem;font-size:.7rem}.studio-sidebar .spacer{flex:1}.studio-user{border-top:1px solid var(--line);align-items:center;gap:.55rem;padding-top:.8rem;display:flex}.avatar{background:var(--accent);width:2rem;height:2rem;color:var(--paper-raised);font-family:var(--sans);border-radius:50%;place-items:center;font-size:.7rem;font-weight:700;display:grid}.studio-user .su-name{font-family:var(--sans);font-size:.82rem;font-weight:600}.studio-user .su-role{font-family:var(--sans);color:var(--ink-soft);text-transform:capitalize;font-size:.68rem}.studio-main{min-width:0;padding:1.4rem calc(clamp(1rem,3vw,2rem)) 4rem}.studio-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.2rem;display:flex}.studio-head h1{margin:0;font-size:calc(clamp(1.7rem,3vw,2.2rem))}.studio-head .lede{margin-top:.2rem;font-size:.92rem}.studio-mobile-bar{display:none}@media (width<=900px){.studio-mobile-bar{z-index:20;background:var(--paper);border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.6rem 1rem;display:flex;position:sticky;top:0}}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.7rem;margin-bottom:1.3rem;display:grid}.stat-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:.8rem .9rem}.stat-card .sc-label{font-family:var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-soft);font-size:.68rem}.stat-card .sc-value{font-family:var(--serif-display);font-size:1.8rem;font-weight:700;line-height:1.15}.stat-card .sc-note{font-family:var(--sans);color:var(--ink-soft);font-size:.7rem}.data-table{border-collapse:collapse;width:100%;font-family:var(--sans);font-size:.85rem}.data-table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line-strong);padding:.5rem .6rem;font-size:.68rem}.data-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:.6rem}.data-table tr:hover td{background:color-mix(in srgb,var(--paper-sunken) 60%,transparent)}.data-table .title-cell{font-family:var(--serif-body);font-size:.95rem;font-weight:500}.data-table .title-cell a{color:var(--ink);text-decoration:none}.data-table .title-cell a:hover{color:var(--accent)}.data-table .actions{text-align:right;white-space:nowrap}.editor-layout{grid-template-columns:17rem minmax(0,1fr);align-items:start;gap:1rem;display:grid}.structure-panel{max-height:calc(100vh - 2rem);position:sticky;top:1rem;overflow-y:auto}@media (width<=1100px){.editor-layout{grid-template-columns:1fr}.structure-panel{max-height:24rem;position:static}}.structure-book{font-family:var(--serif-display);margin-bottom:.2rem;font-size:1.1rem;font-weight:700}.structure-chapter{margin-top:.6rem}.structure-chapter-head{align-items:center;gap:.3rem;padding:.3rem 0;display:flex}.structure-chapter-head .sc-title{font-family:var(--sans);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.8rem;font-weight:600;overflow:hidden}.structure-chapter-head button{color:var(--ink-soft);background:0 0;border:0;border-radius:3px;padding:.1rem .2rem;font-size:.7rem}.structure-chapter-head button:hover{background:var(--paper-sunken);color:var(--ink)}.structure-sections{margin:0;padding:0 0 0 .5rem;list-style:none}.structure-sections button{text-align:left;width:100%;font-family:var(--sans);color:var(--ink-soft);background:0 0;border:0;border-radius:4px;align-items:center;gap:.4rem;padding:.28rem .4rem;font-size:.78rem;display:flex}.structure-sections button:hover{background:var(--paper-sunken);color:var(--ink)}.structure-sections button.active{background:var(--accent-soft);color:var(--accent-deep);font-weight:600}.structure-sections .dot{background:var(--line-strong);border-radius:50%;flex:none;width:.35rem;height:.35rem}.structure-sections .dot.pending{background:var(--gold)}.structure-sections .dot.audio{background:#2f7a5a}.editor-panel{min-width:0}.editor-top{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.9rem;display:flex}.editor-top input{min-width:12rem;font-family:var(--serif-display);flex:1;padding:.35rem .5rem;font-size:1.3rem;font-weight:700}.save-state{font-family:var(--sans);color:var(--ink-soft);white-space:nowrap;font-size:.74rem}.save-state.saving{color:var(--gold)}.save-state.saved{color:#2f7a5a}.save-state.error{color:var(--rubric)}.block-list{flex-direction:column;gap:.6rem;display:flex}.block-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);overflow:hidden}.block-row:hover{border-color:var(--line-strong)}.block-row-head{background:var(--paper-sunken);border-bottom:1px solid var(--line);align-items:center;gap:.4rem;padding:.3rem .5rem;display:flex}.block-row-head .bt{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);flex:1;font-size:.68rem;font-weight:700}.block-row-head button{color:var(--ink-soft);background:0 0;border:0;border-radius:3px;width:1.6rem;height:1.6rem;font-size:.7rem}.block-row-head button:hover{background:var(--paper);color:var(--ink)}.block-row-body{padding:.6rem}.block-row-body textarea{min-height:4.2rem}.block-row-body .block-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}@media (width<=640px){.block-row-body .block-grid{grid-template-columns:1fr}}.block-toolbar{flex-wrap:wrap;gap:.15rem;margin-bottom:.3rem;display:flex}.block-toolbar button{border:1px solid var(--line);background:var(--paper);font-family:var(--sans);color:var(--ink-soft);border-radius:4px;padding:.12rem .4rem;font-size:.72rem}.block-toolbar button:hover{border-color:var(--gold);color:var(--ink)}.add-block-bar{border-top:1px dashed var(--line-strong);flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.8rem;padding-top:.8rem;display:flex}.add-block-bar select{width:auto;min-width:10rem}.block-preview{border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--paper);padding:1rem}.metadata-panel{margin-top:1rem}.metadata-panel summary{cursor:pointer;font-family:var(--sans);color:var(--ink-soft);font-size:.85rem;font-weight:600}.metadata-grid{grid-template-columns:1fr 1fr;gap:.7rem;margin-top:.8rem;display:grid}@media (width<=720px){.metadata-grid{grid-template-columns:1fr}}.metadata-grid .span-2{grid-column:1/-1}.review-grid{grid-template-columns:20rem minmax(0,1fr);align-items:start;gap:1rem;display:grid}@media (width<=950px){.review-grid{grid-template-columns:1fr}}.review-list{max-height:calc(100vh - 10rem);overflow-y:auto}.review-item{text-align:left;border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);background:0 0;padding:.7rem .5rem;display:block}.review-item:hover{background:var(--paper-sunken)}.review-item.active{background:var(--gold-soft)}.review-item .ri-title{font-family:var(--serif-body);font-size:.9rem;font-weight:500}.review-item .ri-meta{font-family:var(--sans);color:var(--ink-soft);margin-top:.15rem;font-size:.7rem}.diff-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=800px){.diff-grid{grid-template-columns:1fr}}.diff-col h3{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.5rem;font-size:.72rem}.diff-block{border:1px solid var(--line);background:var(--paper-raised);border-radius:5px;margin-bottom:.45rem;padding:.5rem .7rem}.diff-block.added{background:color-mix(in srgb,#2f7a5a 7%,var(--paper-raised));border-color:#2f7a5a73}.diff-block.removed{border-color:color-mix(in srgb,var(--rubric) 45%,transparent);background:color-mix(in srgb,var(--rubric) 7%,var(--paper-raised))}.diff-block.changed{border-color:color-mix(in srgb,var(--gold) 50%,transparent)}.diff-block .db-type{font-family:var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.2rem;font-size:.6rem}.narration-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:.8rem;padding:.65rem .2rem;display:grid}.narration-row .nr-title{font-family:var(--sans);font-size:.86rem}.narration-row .nr-meta{font-family:var(--sans);color:var(--ink-soft);font-size:.7rem}.narration-row .nr-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.3rem;display:flex}.modal-backdrop{z-index:70;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a0c106b;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(100%,34rem);max-height:calc(100vh - 2rem);box-shadow:0 30px 70px -30px var(--shadow-strong);overflow-y:auto}.modal.wide{width:min(100%,52rem)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem;display:flex}.modal-head h2{margin:0;font-size:1.3rem}.modal-body{padding:1.2rem}.modal-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;padding:.9rem 1.2rem;display:flex}.modal-foot .spacer{flex:1}.coach-selection-btn{z-index:95;border:1px solid var(--gold);background:var(--paper-raised);color:var(--ink);box-shadow:0 8px 24px -10px var(--shadow-strong);font-family:var(--sans);cursor:pointer;border-radius:999px;padding:.42rem .72rem;font-size:.76rem;font-weight:600;position:fixed}.coach-selection-btn:hover{background:var(--gold-soft)}.coach-modal{width:min(100%,44rem)}.coach-modal .eyebrow{margin-bottom:.18rem}.coach-body{gap:1rem;display:grid}.coach-location{font-family:var(--sans);color:var(--ink-soft);font-size:.76rem}.coach-selection{border-left:3px solid var(--gold);background:var(--paper-sunken);max-height:9rem;margin:0;padding:.8rem 1rem;font-size:.93rem;line-height:1.55;overflow-y:auto}.coach-answer{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:1rem;line-height:1.65}.coach-answer .katex-display{padding:.25rem 0;overflow:auto hidden}.coach-thinking{color:var(--ink-soft);padding:1rem;font-style:italic}.coach-note{font-family:var(--sans);color:var(--ink-soft);margin:0;font-size:.7rem}@media (width<=40rem){.coach-modal{max-height:calc(100vh - 1rem)}.coach-selection-btn{font-size:.72rem}}.coach-log-list{display:grid}.coach-log-item{border-top:1px solid var(--line)}.coach-log-item:first-child{border-top:0}.coach-log-item summary{cursor:pointer;grid-template-columns:auto minmax(10rem,1fr) auto;align-items:center;gap:.7rem;padding:.85rem 1rem;display:grid}.coach-log-detail{gap:.8rem;padding:0 1rem 1rem 3.8rem;display:grid}.coach-log-detail p{white-space:pre-wrap;margin:.2rem 0 0}@media (width<=44rem){.coach-log-item summary{grid-template-columns:auto 1fr}.coach-log-item summary .small{grid-column:1/-1}.coach-log-detail{padding-left:1rem}}.toast-stack{z-index:80;flex-direction:column;gap:.4rem;max-width:calc(min(22rem,100vw - 2rem));display:flex;position:fixed;bottom:5.5rem;right:1rem}.toast{background:var(--ink);color:var(--paper);font-family:var(--sans);box-shadow:0 10px 24px -12px var(--shadow-strong);border-radius:6px;padding:.6rem .8rem;font-size:.84rem}.toast.error{background:var(--rubric)}.toast.success{background:#2f7a5a}.loading-line{background:linear-gradient(90deg,transparent,var(--gold),transparent);background-size:200% 100%;height:3px;animation:1.2s linear infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:var(--paper-sunken);border-radius:4px;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}.block-chart{margin:1.5em 0;position:relative}.block-chart canvas{touch-action:pan-y;width:100%;display:block}.block-chart canvas.rotatable{cursor:grab}.block-chart canvas.rotatable:active{cursor:grabbing}.block-chart .chart-3d-btn{z-index:2;font-family:var(--sans);letter-spacing:.06em;color:var(--accent);background:var(--paper-raised);border:1px solid var(--line);cursor:pointer;border-radius:4px;padding:.15rem .5rem;font-size:.68rem;font-weight:600;position:absolute;top:0;right:0}.block-chart .chart-3d-btn:hover{border-color:var(--accent)}.block-chart .chart-3d-btn[aria-pressed=true]{background:var(--accent);color:#fff;border-color:var(--accent)}.block-chart .chart-tip{pointer-events:none;z-index:3;background:var(--ink);color:var(--paper);font-family:var(--sans);white-space:nowrap;box-shadow:0 8px 18px -8px var(--shadow-strong);border-radius:5px;padding:.25rem .55rem;font-size:.74rem;position:absolute;transform:translate(-50%,-100%)}.block-chart .chart-tip strong{margin-right:.3em;font-weight:600}.block-chart .chart-caption{margin-top:.4rem;font-size:.74rem}.block-chart .chart-caption,.block-chart .chart-empty{font-family:var(--sans);color:var(--ink-soft);text-align:center}.block-chart .chart-empty{border:1px dashed var(--line);border-radius:6px;padding:1.4rem;font-size:.8rem}.katex{font-size:1.06em}.katex-display{margin:.35em 0}.prose .katex-display{scrollbar-width:thin;width:max-content;min-width:100%;max-width:calc(100vw - 2rem);padding:.2em .4em;position:relative;left:50%;overflow:auto hidden;transform:translate(-50%)}.prose .katex-display>.katex{text-align:center;display:block}@media (width<=40rem){.prose .katex-display{max-width:calc(100vw - 1rem);padding-inline:.25rem}}@media print{.ebook-footer,.ebook-turn,.player-bar,.reader-bar,.section-actions,.site-footer,.topbar{display:none!important}.reader-main{width:100%;padding:0}.section-card{-moz-column-break-inside:avoid;break-inside:avoid}body{color:#000;background:#fff}}.figure-block{margin:1.5em 0}.plot-host{border:1px solid var(--line);background:var(--paper-raised);border-radius:6px;min-height:220px;padding:.4rem;position:relative}.plot-canvas{width:100%;height:360px}.scene-host{border:1px solid var(--line);background:var(--paper-raised);border-radius:6px;position:relative;overflow:hidden}.scene-box{width:100%;height:420px}.scene-box .scene-canvas{cursor:grab;width:100%;height:100%;display:block}.scene-box .scene-canvas:active{cursor:grabbing}.scene-reset{font-family:var(--sans);border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:4px;padding:.25rem .6rem;font-size:.74rem;position:absolute;top:.5rem;right:.5rem}.scene-hint{pointer-events:none;font-size:.72rem;position:absolute;bottom:.4rem;left:.6rem}.figure-fallback,.scene-hint{font-family:var(--sans);color:var(--ink-soft);margin:0}.figure-fallback{padding:1.2rem;font-size:.88rem}@media (width<=600px){.plot-canvas{height:300px}.scene-box{height:340px}}
