:root{color-scheme:light;--paper: #f8f4ec;--paper-deep: #f1eadf;--surface: #fffdf8;--ink: #171411;--muted: #7d766d;--faint: #ded5c8;--line: #e8dfd4;--brown: #6b5132;--gold: #c9a227;--shadow: 0 18px 50px rgba(41, 34, 25, .13);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:linear-gradient(100deg,#fffdf8db,#f8f4eceb),radial-gradient(circle at 100% 40%,rgba(107,81,50,.05),transparent 35%);color:var(--ink)}.plain-paper{--paper: #f6f6f3;--paper-deep: #eeeeea;--surface: #ffffff}.warm-paper{--paper: #f8f4ec;--paper-deep: #f1eadf;--surface: #fffdf8}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100dvh;padding-bottom:104px}.top-bar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:48px 1fr 48px;align-items:center;height:70px;padding:0 18px;background:#fffdf8eb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{font-family:Georgia,Times New Roman,serif;font-size:clamp(1.65rem,7vw,2.5rem);font-style:italic;text-align:center}.brand-compact{font-size:1.25rem}.icon-button,.back-button{width:44px;height:44px;display:inline-grid;place-items:center;border:0;border-radius:999px;color:var(--ink);background:transparent}.icon-button:active,.back-button:active{background:var(--paper-deep)}.upload-screen{width:min(100%,760px);margin:0 auto;padding:78px 20px 24px}.upload-intro{text-align:center;margin-bottom:48px}.upload-intro h1,.drop-zone h2,.panel-header h2{margin:0;font-family:Georgia,Times New Roman,serif;font-weight:400;letter-spacing:0}.upload-intro h1{color:var(--brown);font-size:clamp(2rem,8vw,3.4rem)}.upload-intro p{width:min(28rem,100%);margin:18px auto 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.15rem,4.8vw,1.7rem);font-style:italic;line-height:1.5}.drop-zone{display:grid;justify-items:center;gap:22px;min-height:360px;padding:50px 22px;border:1.5px dashed var(--brown);background:#fffdf88f;text-align:center}.drop-icon{color:var(--brown);margin-top:14px}.drop-zone h2{font-size:clamp(1.9rem,8vw,3rem)}.drop-zone p{max-width:25ch;margin:0;color:#393531;font-size:1rem;letter-spacing:.06em;line-height:1.35}.outline-button{min-width:190px;min-height:66px;padding:0 28px;border:1.5px solid var(--brown);border-radius:16px;background:transparent;color:var(--brown);font-size:1.14rem;letter-spacing:.05em}.recent-list{display:grid;gap:22px;margin-top:56px}.empty-upload{margin:0;padding:24px;border:1px solid rgba(222,213,200,.65);color:var(--muted);text-align:center}.recent-item,.library-row,.recent-main,.library-main{display:grid;grid-template-columns:76px 1fr;gap:22px;align-items:center}.recent-item,.library-row{min-height:108px;padding:18px;border:1px solid rgba(222,213,200,.55);background:#fffdf899}.removable-row{grid-template-columns:1fr 44px;gap:12px}.recent-main{min-width:0}.remove-button{width:42px;height:42px;display:inline-grid;place-items:center;border:1px solid rgba(107,81,50,.22);border-radius:999px;background:#fffdf8bf;color:var(--brown)}.file-thumb{width:76px;height:76px;display:grid;place-items:center;background:#eeeae4;color:#b7b1a9}.recent-item h3,.recent-item p{margin:0;font-weight:400}.recent-item h3{color:#69645e;font-size:clamp(1.08rem,5vw,1.55rem)}.recent-item p{margin-top:8px;color:#8d8882;font-size:clamp(1rem,4.4vw,1.4rem)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.reader-screen{width:min(100%,940px);margin:0 auto;padding:12px 14px 18px}.reader-screen:fullscreen{width:100%;max-width:none;margin:0;min-height:100dvh;padding:calc(10px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));box-sizing:border-box;background:var(--surface);overflow:auto}.reader-screen:-webkit-full-screen{width:100%;max-width:none;margin:0;min-height:100dvh;padding:calc(10px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));box-sizing:border-box;background:var(--surface);overflow:auto}.reader-title{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;min-height:54px;border-bottom:1px solid var(--line);gap:4px}.reader-title-spacer{width:44px;height:1px}.reader-title-center{min-width:0;text-align:center}.reader-fullscreen-btn{justify-self:end;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:transparent;color:var(--ink);cursor:pointer;display:grid;place-items:center}.reader-fullscreen-btn:hover{background:#6b513214}.reader-meta-compact{padding:10px 2px;font-size:.68rem}.reader-title strong{display:block;overflow:hidden;font-family:Georgia,Times New Roman,serif;font-size:1.03rem;text-overflow:ellipsis;white-space:nowrap}.reader-title span{display:block;margin-top:3px;color:var(--muted);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.page-stage{position:relative;display:grid;place-items:start center;min-height:58dvh;padding:12px 0;perspective:2200px;perspective-origin:50% 50%;transform-style:preserve-3d}.turn-book{width:min(100%,720px);max-width:100%;margin:0 auto;position:relative;overflow:hidden;border:0;background:#fff;box-shadow:none;transform-origin:center left;animation:pageTurnNext .42s cubic-bezier(.22,1,.36,1) both;user-select:none;-webkit-user-select:none;touch-action:pan-y}.turn-book.turn-ready{transform-style:preserve-3d}.page-hit-area{position:absolute;top:0;bottom:0;z-index:40;width:24%;border:0;background:transparent;cursor:pointer;transition:background .18s ease}.page-hit-area:hover{background:#6b513209}.page-hit-area:focus-visible{outline:2px solid rgba(107,81,50,.48);outline-offset:-8px}.page-hit-prev{left:0}.page-hit-next{right:0}.page-prev .turn-book{transform-origin:center right;animation-name:pageTurnPrev}.turn-page-shell{position:relative;width:100%;height:100%;display:grid;place-items:center;overflow:hidden;background:#fff;user-select:none;-webkit-user-select:none}.turn-ready .turn-page-shell{cursor:grab}.turn-fallback .turn-page-shell{display:none}.turn-fallback .active-turn-page{display:grid}.book-canvas-page{width:100%;height:100%;display:grid;place-items:center;padding:0}.page-placeholder{color:var(--muted);font-family:Georgia,Times New Roman,serif;font-style:italic;user-select:none;-webkit-user-select:none}@keyframes pageTurnNext{0%{opacity:0;transform:rotateY(-11deg) translate(28px) translateZ(-12px)}to{opacity:1;transform:rotateY(0) translate(0) translateZ(0)}}@keyframes pageTurnPrev{0%{opacity:0;transform:rotateY(11deg) translate(-28px) translateZ(-12px)}to{opacity:1;transform:rotateY(0) translate(0) translateZ(0)}}.pdf-page{position:relative;max-width:100%;background:#fff;box-shadow:none;user-select:none;-webkit-user-select:none}.pdf-page canvas{display:block;max-width:100%;height:auto!important;user-select:none;-webkit-user-select:none}.selectable-copy{width:min(100%,720px);margin:18px auto 0;padding:clamp(24px,7vw,54px);border:1px solid rgba(232,223,212,.8);background:#fffdf8bd;box-shadow:0 18px 42px #29221912;color:var(--ink);-webkit-user-select:text;user-select:text}.selectable-copy::selection,.selectable-copy *::selection{background:#c9a22747}.copy-heading{display:flex;align-items:center;gap:8px;margin-bottom:22px;color:var(--brown);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.selectable-copy .text-line,.selectable-copy p{margin:0 0 1.15em;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.08rem,4.8vw,1.35rem);line-height:1.72}.selectable-copy .text-line{margin-bottom:.2em;white-space:pre-wrap;overflow-wrap:anywhere}.marked{padding:.08em .1em;background:var(--mark);color:inherit}.marked-line{padding:0;background:transparent;border-bottom:2px solid var(--brown)}.page-loading{position:absolute;top:34px;z-index:2;padding:10px 14px;background:var(--ink);color:var(--surface);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.inline-loading{top:18px}.selection-toolbar{position:sticky;top:82px;z-index:15;width:fit-content;max-width:calc(100vw - 32px);display:flex;align-items:center;margin:10px auto -4px;overflow:hidden;border-radius:5px;background:#181512;box-shadow:var(--shadow)}.selection-toolbar button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 16px;border:0;border-right:1px solid #393530;background:transparent;color:#fffaf2;font-weight:650}.selection-toolbar button:last-child{border-right:0}.highlight-swatches{display:flex;align-items:center;gap:8px;padding:0 12px;border-right:1px solid #393530}.selection-toolbar .swatch{width:24px;min-height:24px;height:24px;padding:0;border:1px solid rgba(255,250,242,.34);border-radius:999px;background:var(--swatch)}.selection-toolbar .swatch-line{background:transparent;border-color:#fffaf280;border-radius:0;border-width:0 0 3px}.reader-meta{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:16px 2px;color:var(--muted);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase}.reader-tools{position:fixed;left:0;right:0;bottom:0;z-index:18;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;width:min(100%,520px);margin:0 auto;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:#151310;border-radius:10px 10px 0 0;box-shadow:0 -16px 36px #2922192e}.reader-tools button,.bottom-nav button{min-height:48px;display:grid;place-items:center;gap:4px;border:0;background:transparent;color:#f6f0e8;font-size:.68rem;font-weight:650;letter-spacing:.11em;text-transform:uppercase}.reader-tools button:disabled,.back-button:disabled,.dark-action:disabled{opacity:.38}.reader-tools .active-tool,.bottom-nav .active{color:var(--gold)}.page-text-cache{display:none}.bottom-nav{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));z-index:21;display:none;grid-template-columns:repeat(3,1fr);width:min(70vw,310px);transform:translate(-50%);overflow:hidden;border:1px solid rgba(255,253,248,.12);border-radius:16px;background:#2c2a26;box-shadow:var(--shadow)}.panel{position:fixed;inset:auto 0 0;z-index:30;max-height:86dvh;overflow:auto;padding:30px 22px calc(34px + env(safe-area-inset-bottom));background:var(--surface);border-radius:18px 18px 0 0;box-shadow:0 -28px 80px #1714112e}.panel-header{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:26px}.panel-header h2{font-size:clamp(2rem,9vw,3.1rem);font-style:italic}.panel-header p{margin:12px 0 0;color:var(--brown);font-weight:650;letter-spacing:.2em;text-transform:uppercase}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border-bottom:1px solid var(--line);margin-bottom:24px}.tabs button{text-transform:capitalize;min-height:50px;border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-family:Georgia,Times New Roman,serif;font-size:1.18rem}.two-tabs{grid-template-columns:repeat(2,1fr)}.tabs .active{border-color:var(--ink);color:var(--ink);font-weight:700}.dark-action{width:100%;min-height:58px;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:24px;border:0;border-radius:6px;background:#171411;color:#fffaf3;font-size:1rem}.panel-list{display:grid;gap:14px}.uploaded-group{display:grid;gap:10px;margin-top:16px;padding-top:18px;border-top:1px solid var(--line)}.uploaded-group h3{margin:0 0 4px;color:var(--brown);font-size:.76rem;letter-spacing:.16em;text-transform:uppercase}.bookmark-row,.note-card,.library-row{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left}.bookmark-row{padding:0 0 0 20px;border-left:2px solid var(--brown)}.row-open{width:100%;min-width:0;padding:20px 0 22px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.bookmark-row strong,.bookmark-row em{display:block}.bookmark-row strong{font-size:1.08rem;font-weight:500}.bookmark-row strong span{display:block;margin-top:10px;color:var(--brown);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.bookmark-row em{overflow:hidden;display:-webkit-box;margin-top:10px;color:var(--muted);font-family:Georgia,Times New Roman,serif;font-size:1.05rem;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.library-row{min-height:74px;padding:12px 0}.library-main{grid-template-columns:22px 1fr}.library-row strong,.library-row span{display:block}.library-row span,.empty-copy{color:var(--muted)}.note-card{position:relative;display:grid;gap:18px;padding:24px;background:#f8f4ec8a;box-shadow:0 10px 28px #2922190f}.note-card .row-open{display:grid;gap:18px;padding:0}.note-card .row-open svg{position:absolute;top:18px;right:70px;color:#17141114}.note-card q{font-family:Georgia,Times New Roman,serif;font-size:1.08rem;font-style:italic;line-height:1.55}.note-card span{color:var(--brown);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}.settings-list{display:grid;gap:18px}.settings-list label{display:flex;justify-content:space-between;gap:18px;min-height:56px;align-items:center;border-bottom:1px solid var(--line)}.settings-list input{width:44px;height:24px;flex:0 0 auto;accent-color:var(--brown)}.large-controls .reader-tools button,.large-controls .bottom-nav button{min-height:58px}.large-controls .reader-tools svg,.large-controls .bottom-nav svg{width:24px;height:24px}@media(min-width:720px){.top-bar{padding-inline:28px}.upload-screen{padding-top:110px}.reader-screen{padding-inline:28px}.page-stage{padding-bottom:86px}.reader-tools{display:none}.bottom-nav{display:grid}.panel{inset:0 0 0 auto;width:min(420px,42vw);max-height:none;border-left:1px solid var(--line);border-radius:0;box-shadow:-28px 0 80px #1714111f}}@media(max-width:430px){.upload-screen{padding-top:58px}.drop-zone{min-height:340px;padding-inline:16px}.recent-item{grid-template-columns:1fr 42px;gap:16px}.recent-main{grid-template-columns:58px 1fr;gap:16px}.file-thumb{width:58px;height:58px}.panel{padding-inline:18px}.selection-toolbar{flex-wrap:wrap;justify-content:center}.highlight-swatches{width:100%;justify-content:center;min-height:42px;border-right:0;border-bottom:1px solid #393530}.selection-toolbar button:not(.swatch){flex:1}.reader-meta{align-items:flex-start;flex-direction:column}.reader-screen{padding-inline:10px}.page-stage{min-height:auto;padding:10px 0}.selectable-copy{padding:22px 16px}}@media(prefers-reduced-motion:reduce){.turn-book{animation:none}}
