@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap";:root{color:#1f1a16;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#d7b68047,#0000 28%),linear-gradient(#f7f2e8,#efe6d7 70%,#e6ddce);font-family:Manrope,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{min-height:100svh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}a{color:inherit}::selection{background:#b56b2f2e}.app-shell{min-height:100svh}.reader-loading-screen{color:#1f1a16;background:radial-gradient(circle at 0 0,#d7b68047,#0000 28%),linear-gradient(#f7f2e8,#efe6d7 70%,#e6ddce);place-items:center;min-height:100svh;padding:24px;font-size:1rem;display:grid}.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}.button{border:0;border-radius:999px;justify-content:center;align-items:center;padding:.8rem 1.1rem;transition:transform .18s,background-color .18s,color .18s,border-color .18s,box-shadow .18s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button:disabled{cursor:wait;opacity:.6;transform:none}.button-primary{color:#f7f2e8;background:#1f1a16;box-shadow:0 18px 35px #1f1a1624}.button-primary:hover{background:#2a241f}.button-ghost{color:inherit;background:#ffffffa8;border:1px solid #1f1a1614}.button-ghost:hover{border-color:#1f1a1624}.button-small{padding:.55rem .8rem;font-size:.86rem}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:#1f1a168a;margin:0;font-size:.74rem}.muted-copy,.helper-text,.empty-copy{color:#1f1a16a3}.error-text{color:#9f3320;margin:0}.library-shell{width:min(1240px,100% - 32px);margin:0 auto;padding:48px 0 80px}.library-header{margin-bottom:28px}.library-header h1,.section-heading h2,.empty-state h2,.panel-heading h2{letter-spacing:-.03em;margin:0;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.1rem,5vw,4.8rem);font-weight:600;line-height:.95}.library-header .hero-copy{color:#1f1a16b8;max-width:34rem;margin:0;font-size:1.06rem}.hero-panel{grid-template-columns:1.2fr .9fr;align-items:stretch;gap:22px;margin-bottom:36px;display:grid}.hero-panel-copy,.import-card,.shelf-section,.reader-panel,.reader-topbar,.selection-bar,.viewport-shell,.reader-footer{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffcf6b3;border:1px solid #1f1a1614;box-shadow:0 18px 60px #1f1a160f}.hero-panel-copy{background:radial-gradient(circle at 0 0,#cdad7a57,#0000 48%),#fffcf6b8;border-radius:32px;min-height:320px;padding:28px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;height:100%;display:grid}.metric-card{background:#ffffff94;border:1px solid #1f1a160d;border-radius:24px;flex-direction:column;justify-content:space-between;min-height:130px;padding:22px;display:flex}.metric-value{font-family:Manrope,Segoe UI,sans-serif;font-size:clamp(2.2rem,6vw,3.4rem);font-weight:700;line-height:1}.metric-label{color:#1f1a169e;font-family:Manrope,Segoe UI,sans-serif;font-weight:600}.import-card{border-style:dashed;border-radius:32px;flex-direction:column;justify-content:center;gap:14px;min-height:320px;padding:30px;display:flex}.import-card h2,.section-heading h2,.empty-state h2,.panel-heading h2{font-size:clamp(1.8rem,4vw,3.2rem)}.import-card h2{max-width:10ch;line-height:1}.import-card-active{border-color:#b56b2f7a;transform:translateY(-2px);box-shadow:0 24px 75px #b56b2f29}.import-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.shelf-section{border-radius:34px;padding:28px}.section-heading{justify-content:space-between;align-items:end;gap:18px;margin-bottom:22px;display:flex}.book-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.book-card{background:#ffffff8a;border:1px solid #1f1a160f;border-radius:28px;grid-template-columns:132px 1fr;gap:18px;padding:18px;display:grid}.book-card-open{background:0 0;border:0;padding:0}.book-cover{aspect-ratio:.72;object-fit:cover;border-radius:20px;width:100%;box-shadow:0 18px 45px #1f1a162e}.book-cover-fallback{color:#1f1a16;background:linear-gradient(145deg,#b56b2f42,#1f1a1614),#ffffffc2;place-items:center;font-family:Cormorant Garamond,Georgia,serif;font-size:3.2rem;display:grid}.book-card-body{flex-direction:column;gap:14px;min-width:0;display:flex}.book-meta{flex-direction:column;gap:4px;min-width:0;display:flex}.book-title-wrap{inline-size:100%;max-inline-size:100%;contain:paint;min-width:0;position:relative;overflow:hidden}.book-title{white-space:nowrap;max-inline-size:100%;margin:0;font-size:1.15rem;font-weight:700;display:block}.book-title-marquee{will-change:transform;min-width:max-content;max-width:none;animation:shelf-title-marquee var(--title-scroll-duration,8s) ease-in-out infinite alternate;display:inline-block}.book-author{color:#1f1a16a3;margin:0}.reader-book-subtitle{color:#1f1a16a3;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.92rem;line-height:1.35;overflow:hidden}.book-progress,.book-progress-meta{flex-direction:column;gap:8px;display:flex}.progress-track{background:#1f1a1614;border-radius:999px;height:8px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg,#b56b2f,#d9a463);height:100%;display:block}@keyframes shelf-title-marquee{0%,18%{transform:translate(0)}to{transform:translateX(var(--title-scroll-distance,0))}}.book-progress-meta,.note-meta,.search-result-label{color:#1f1a169e;font-size:.9rem}.book-progress-meta{flex-wrap:wrap;justify-content:flex-start;gap:12px;display:flex}.note-meta,.search-result-label{background:#ffffffa3;border-radius:999px;align-items:center;gap:8px;padding:.45rem .65rem;display:inline-flex}.book-actions{align-items:center;gap:10px;margin-top:auto;padding-top:6px;display:flex}.book-actions .button{min-width:0}.book-actions .button-primary{flex:auto}.book-actions .button-ghost{flex:none}.empty-state{text-align:center;background:radial-gradient(circle at top,#b56b2f1f,#0000 55%),#ffffff70;border-radius:28px;place-items:center;gap:18px;min-height:280px;padding:36px;display:grid}.empty-state-copy{max-width:34rem}.reader-shell{box-sizing:border-box;height:100svh;color:var(--reader-text);background:radial-gradient(circle at top left, #ffffff29, transparent 28%), linear-gradient(180deg, var(--reader-canvas), color-mix(in srgb, var(--reader-canvas), #000 6%));flex-direction:column;padding:16px;display:flex;overflow:hidden}.reader-theme-midnight{background:radial-gradient(circle at 0 0,#5c82ff29,#0000 24%),radial-gradient(circle at 100% 0,#38bdf81a,#0000 22%),linear-gradient(#07111f,#0a1322 58%,#040913)}.reader-topbar,.reader-footer,.selection-bar,.reader-panel,.viewport-shell{background:color-mix(in srgb, var(--reader-surface), #ffffff24);border-color:color-mix(in srgb, var(--reader-text), transparent 88%)}.reader-theme-midnight .reader-topbar,.reader-theme-midnight .selection-bar,.reader-theme-midnight .reader-panel,.reader-theme-midnight .viewport-shell{background:linear-gradient(#0a1221eb,#080e1ce0);border-color:#94a3b824;box-shadow:0 22px 70px #0206176b}.reader-theme-midnight .reader-book-subtitle,.reader-theme-midnight .empty-copy,.reader-theme-midnight .panel-heading span,.reader-theme-midnight .notes-heading-row span,.reader-theme-midnight .settings-label span{color:#cbd5e1b8}.reader-theme-midnight .button-ghost{color:#e7edf7;background:#0f172ad1;border-color:#94a3b82e}.reader-theme-midnight .button-ghost:hover{background:#111b30e6;border-color:#94a3e14d}.reader-theme-midnight .button-primary{color:#08111d;background:linear-gradient(#8ec5ff,#6faaf6);box-shadow:0 18px 35px #3b82f633}.reader-theme-midnight .panel-tabs{border-bottom-color:#94a3b81f}.reader-theme-midnight .panel-tab-active,.reader-theme-midnight .choice-chip-active{background:#609aff2e;border-color:#8ec5ff57}.reader-theme-midnight .toc-item,.reader-theme-midnight .search-result,.reader-theme-midnight .note-main,.reader-theme-midnight .note-card,.reader-theme-midnight .lookup-card,.reader-theme-midnight .lookup-meaning{background:#0f172ac2;border-color:#94a3b81f}.reader-theme-midnight .search-input{color:#e7edf7;background:#0f172ac7;border-color:#94a3b82e}.reader-theme-midnight .search-input::placeholder{color:#cbd5e18a}.reader-theme-midnight .choice-chip{background:#0c1322a6;border-color:#94a3b829}.reader-theme-midnight .book-author,.reader-theme-midnight .search-result-label,.reader-theme-midnight .note-meta,.reader-theme-midnight .reader-book-subtitle{color:#cbd5e1bd}.reader-theme-midnight .note-meta,.reader-theme-midnight .search-result-label{background:#0f172ac2}.reader-topbar{border-radius:24px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.reader-topbar-group{align-items:center;gap:10px;min-width:0;display:flex}.reader-book-headline{min-width:0}.reader-book-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:700;overflow:hidden}.reader-main{flex:auto;grid-template-columns:auto minmax(0,1fr);gap:16px;min-height:0;margin-top:16px;display:grid;overflow:hidden}.reader-panel{inline-size:0;opacity:0;border-radius:28px;min-height:0;transition:inline-size .22s,opacity .22s,margin .22s;overflow:hidden}.reader-panel-open{opacity:1;flex-direction:column;inline-size:min(380px,88vw);display:flex}.panel-tabs{border-bottom:1px solid color-mix(in srgb, var(--reader-text), transparent 90%);grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:12px;display:grid}.panel-tab{min-width:0;min-height:38px;color:inherit;white-space:nowrap;text-align:center;text-overflow:ellipsis;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:.65rem .45rem;font-size:.76rem;font-weight:600;line-height:1;display:inline-flex;overflow:hidden}.panel-tab-active{background:color-mix(in srgb, var(--reader-accent), transparent 84%)}.panel-body{flex:auto;min-height:0;padding:18px;overflow:auto}.panel-section,.notes-group,.settings-group,.slider-group{flex-direction:column;gap:14px;display:flex}.panel-section{min-height:100%}.notes-group+.notes-group,.settings-group+.settings-group,.slider-group+.settings-group,.settings-group+.slider-group{border-top:1px solid color-mix(in srgb, var(--reader-text), transparent 90%);margin-top:18px;padding-top:18px}.panel-heading,.notes-heading-row,.settings-label{justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-heading h2{font-size:2.2rem}.panel-heading span,.notes-heading-row span,.settings-label span{color:color-mix(in srgb, var(--reader-text), transparent 32%);font-size:.92rem}.toc-list,.search-results,.notes-list{flex-direction:column;gap:10px;display:flex}.toc-item,.search-result,.note-main{text-align:left;background:color-mix(in srgb, var(--reader-surface), #ffffff0f);width:100%;color:inherit;border:0;border-radius:18px;padding:.95rem 1rem}.search-form{gap:10px;display:flex}.search-input{border:1px solid color-mix(in srgb, var(--reader-text), transparent 84%);color:inherit;background:#ffffff8a;border-radius:999px;flex:auto;padding:.82rem 1rem}.search-result,.note-card{flex-direction:column;gap:10px;display:flex}.search-result-excerpt,.note-title{line-height:1.45}.note-card{background:color-mix(in srgb, var(--reader-surface), #ffffff0f);border:1px solid color-mix(in srgb, var(--reader-text), transparent 92%);border-radius:20px;padding:.85rem}.note-card .button{align-self:flex-end}.lookup-card,.lookup-meaning{background:color-mix(in srgb, var(--reader-surface), #ffffff14);border:1px solid color-mix(in srgb, var(--reader-text), transparent 92%);border-radius:22px;padding:16px}.lookup-card{flex-direction:column;gap:14px;display:flex}.lookup-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.lookup-head h3,.lookup-part{margin:0}.lookup-list{flex-direction:column;gap:10px;display:flex}.lookup-part{text-transform:uppercase;letter-spacing:.08em;color:color-mix(in srgb, var(--reader-text), transparent 32%);font-size:.88rem}.lookup-definitions{flex-direction:column;gap:8px;margin:10px 0 0;padding-left:18px;display:flex}.note-quote{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.choice-row{flex-wrap:wrap;gap:10px;display:flex}.choice-chip{border:1px solid color-mix(in srgb, var(--reader-text), transparent 84%);color:inherit;text-transform:capitalize;background:0 0;border-radius:999px;padding:.7rem .95rem}.choice-chip-active{border-color:color-mix(in srgb, var(--reader-accent), transparent 18%);background:color-mix(in srgb, var(--reader-accent), transparent 82%)}.slider-group input[type=range],.progress-slider input[type=range]{width:100%;accent-color:var(--reader-accent)}.reader-stage{flex-direction:column;gap:14px;min-width:0;min-height:0;display:flex;overflow:hidden}.selection-bar,.reader-mobile-nav{border-radius:22px;padding:14px 16px}.selection-bar{justify-content:space-between;align-items:center;gap:16px;display:flex}.selection-bar p{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:auto;margin:0;display:-webkit-box;overflow:hidden}.selection-actions,.reader-mobile-nav{gap:10px;display:flex}.reader-mobile-nav{display:none}.viewport-shell{background:linear-gradient(180deg, color-mix(in srgb, var(--reader-surface), white 8%), var(--reader-canvas));border-radius:32px;flex:auto;min-height:0;padding:22px;position:relative;overflow:hidden}.reader-viewport,.reader-viewport>div,.reader-viewport>div>div{z-index:1;width:100%;height:100%;position:relative}.reader-viewport iframe{background:var(--reader-surface);border:0;border-radius:20px;width:100%;height:100%}.reader-theme-midnight .reader-viewport iframe{box-shadow:inset 0 0 0 1px #94a3b814}.reader-viewport-loading{opacity:.68}.nav-hitbox{z-index:2;opacity:0;color:#1f1a16bd;cursor:pointer;background:0 0;border:0;align-items:center;width:82px;padding:0 14px;transition:opacity .18s,background-color .18s;display:flex;position:absolute;top:0;bottom:0}.viewport-shell:hover .nav-hitbox,.nav-hitbox:focus-visible{opacity:1}.nav-hitbox-left{background:linear-gradient(90deg,#ffffff70,#0000);justify-content:flex-start;left:0}.nav-hitbox-right{background:linear-gradient(270deg,#ffffff70,#0000);justify-content:flex-end;right:0}.reader-theme-midnight .nav-hitbox-left{background:linear-gradient(90deg,#080e1cb8,#0000)}.reader-theme-midnight .nav-hitbox-right{background:linear-gradient(270deg,#080e1cb8,#0000)}.nav-hitbox:focus-visible{outline:none}.nav-chip{background:#fffcf6e0;border:1px solid #1f1a1614;border-radius:999px;place-items:center;width:42px;height:42px;font-size:1.1rem;font-weight:700;transition:transform .18s,background-color .18s,border-color .18s;display:inline-grid;box-shadow:0 10px 24px #1f1a161f}.reader-theme-midnight .nav-chip{color:#e7edf7;background:#0f172aeb;border-color:#94a3b82e;box-shadow:0 12px 28px #02061770}.nav-hitbox:hover .nav-chip,.nav-hitbox:focus-visible .nav-chip{background:#fffcf6f5;border-color:#1f1a1624;transform:scale(1.04)}.reader-theme-midnight .nav-hitbox:hover .nav-chip,.reader-theme-midnight .nav-hitbox:focus-visible .nav-chip{background:#141f38fa;border-color:#8ec5ff52}.reader-overlay{z-index:3;text-align:center;background:#fffcf6d1;border-radius:24px;place-items:center;display:grid;position:absolute;inset:22px}.reader-theme-midnight .reader-overlay{background:#080e1cd6}.reader-overlay-error{color:#8d2e24}mark{background:color-mix(in srgb, var(--reader-accent), transparent 78%);color:inherit;border-radius:.3rem;padding:.05rem .2rem}@media (width<=1100px){.library-header,.hero-panel,.book-grid,.reader-main{grid-template-columns:1fr}.reader-panel{z-index:30;opacity:0;pointer-events:none;inline-size:auto;position:fixed;inset:86px 16px 16px;transform:translateY(8px)}.reader-panel-open{opacity:1;pointer-events:auto;flex-direction:column;display:flex;transform:translateY(0)}.panel-body{min-height:0}}@media (width<=760px){.library-shell{width:min(100% - 20px,1240px);padding:22px 0 44px}.hero-panel-copy,.import-card,.shelf-section,.viewport-shell{border-radius:24px;padding:18px}.metric-grid{grid-template-columns:1fr}.panel-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.book-card{grid-template-columns:92px 1fr;gap:14px}.book-actions,.import-actions,.selection-bar,.reader-topbar{flex-direction:column;align-items:stretch}.book-actions{display:flex}.book-actions .button{width:100%}.reader-topbar{gap:12px}.reader-topbar-group{justify-content:space-between;width:100%}.reader-shell{padding:10px}.viewport-shell{min-height:0}.nav-hitbox{display:none}.reader-mobile-nav{display:flex}}
