@font-face{font-family:Cormorant;src:url('vendor/CormorantGaramond.ttf') format('truetype');font-weight:300 700;font-display:swap}
:root{color-scheme:dark;--bg:#171617;--panel:#1d1c1d;--line:#363135;--text:#e5ded2;--muted:#a59c96;--gold:#c4a47a;--red:#75413d;--binding:#592c2c;font-family:Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline-offset:4px}button{cursor:pointer;border:1px solid transparent;color:inherit;background:none;transition:background .15s,color .15s}button:hover{color:#fff;background:#ffffff0b}button:disabled{cursor:default;opacity:.3}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold)}[hidden]{display:none!important}.topbar{height:96px;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between}.brand{color:var(--text);text-decoration:none;display:flex;gap:14px;align-items:center;font:32px Cormorant,Georgia,serif;letter-spacing:.4px}.brand svg{width:39px;height:44px;stroke:var(--gold);fill:none;stroke-width:1.1}.brand i{color:var(--gold);font-size:26px}.brand small{display:block;font:8px Arial,sans-serif;letter-spacing:2.7px;color:var(--muted);margin-top:4px}.top-actions{display:flex;align-items:center;gap:25px;font-size:12px}.saved{font-size:11px;color:var(--muted)}.saved:before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:#8f9b7a;margin-right:8px}.primary{padding:13px 21px;background:var(--gold);color:#201b16;border:1px solid var(--gold);font-weight:600;font-size:12px}.primary:hover{background:#d7b88e;color:#201b16}.primary span{font-size:18px;margin-right:9px}.quiet{padding:10px 8px;font-size:12px}.quiet span{margin-left:6px;color:var(--gold);font-size:10px}.icon-btn{font-size:25px;width:35px;height:35px;display:grid;place-items:center;color:var(--muted)}main{display:grid;grid-template-columns:360px 1fr;min-height:calc(100vh - 96px)}.workbench{background:var(--panel);border-right:1px solid var(--line);padding:32px 27px 23px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.eyebrow{font-size:8px;letter-spacing:2.6px;color:var(--gold);font-weight:600}h1{font:32px/1.1 Cormorant,Georgia,serif;margin:10px 0 0;font-weight:400}h2{font:28px Cormorant,Georgia,serif;margin:8px 0 0;font-weight:400}.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:25px;gap:24px}.tabs button{font-size:11px;padding:0 0 13px;color:var(--muted);border-bottom:2px solid transparent}.tabs button[aria-selected=true]{color:var(--text);border-color:var(--gold)}label{display:block;font-size:8px;font-weight:600;letter-spacing:1.5px;color:var(--muted);margin-bottom:10px}input:not([type=range]),select{width:100%;padding:11px 12px;color:var(--text);background:#171617;border:1px solid #40383b;border-radius:2px;font-size:12px;margin-bottom:21px}#title{font-family:Cormorant,Georgia,serif;font-size:20px;padding-top:8px;padding-bottom:8px}.section-line{display:flex;justify-content:space-between;margin-top:5px}.section-line span{font-size:9px;color:var(--muted)}.formatting{border:1px solid #40383b;border-bottom:none;display:flex;justify-content:space-between;padding:6px}.formatting button{font-size:13px;color:var(--gold);padding:4px}.formatting span{font:9px Arial,sans-serif;color:var(--muted);margin-left:3px}textarea{resize:vertical;min-height:260px;height:calc(100vh - 530px);max-height:1000px;width:100%;background:#191819;border:1px solid #40383b;padding:16px;color:#cfc7bd;font:15px/1.65 Cormorant,Georgia,serif;border-radius:0 0 2px 2px}.hint{font-size:10px;line-height:1.75;color:var(--muted);margin:12px 0 20px}.hint b{font-weight:400;color:var(--text)}.editor-bottom{border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:space-between}.text-button{font-size:10px;padding:5px 0;color:var(--gold)}.reading-desk{position:relative;overflow:hidden;min-width:0;background:radial-gradient(ellipse at 55% 40%,#2e2828 0,transparent 65%),#191819;padding:33px 38px 17px;display:flex;flex-direction:column}.reader-heading{display:flex;justify-content:space-between;align-items:center}.reader-heading h2{font-size:30px}.reader-tools{display:flex;align-items:center;gap:15px}.reader-tools .quiet{color:var(--muted)}.book-stage{position:relative;flex:1;min-height:460px;display:flex;align-items:center;justify-content:center;perspective:2000px;padding:42px 0 34px}.desk-halo{position:absolute;inset:20% 5% 5%;background:radial-gradient(ellipse,#b6955a13,transparent 70%);filter:blur(15px)}.book-wrap{position:relative;aspect-ratio:1.5;width:min(100%,1050px);filter:drop-shadow(0 25px 24px #0009);transition:width .6s}.book{width:100%;height:100%;position:relative;display:flex;transform:rotateX(5deg);transform-style:preserve-3d;border-radius:4px;background:var(--binding);box-shadow:0 0 0 7px var(--binding),0 6px 0 8px #261c1c}.book>canvas{width:50%;height:100%;position:relative;border-radius:3px 2px 2px 3px}.book-edge{position:absolute;inset:6px -2px -7px;background:repeating-linear-gradient(#bbae90 0px,#bbae90 1px,#65523d 2px,#ddcda6 3px);border-radius:0 0 5px 5px}.spine-shadow{position:absolute;left:45%;top:0;width:10%;height:100%;background:linear-gradient(90deg,transparent,#33241816 30%,#33241866 49%,#fff5 51%,#33241818 65%,transparent);pointer-events:none}.turn-leaf,.cover-leaf{position:absolute;top:0;left:50%;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;pointer-events:none;z-index:3;display:none}.turn-leaf canvas,.cover-leaf canvas{position:absolute;width:100%;height:100%;backface-visibility:hidden}.turn-leaf #turn-back{transform:rotateY(180deg)}.turn-leaf.moving{display:block;animation:turnPage .8s cubic-bezier(.28,.48,.25,1) forwards}.turn-leaf.reverse{animation-direction:reverse}.cover-leaf{display:block;transform:rotateY(-180deg);opacity:0;transition:transform 1s cubic-bezier(.25,.6,.25,1),opacity .2s .8s}.book.closed .cover-leaf{opacity:1;transform:rotateY(0);transition:transform 1s cubic-bezier(.25,.6,.25,1),opacity .1s}.book.closed #left-page{opacity:.08}.book.closed .spine-shadow{opacity:0}.cover-leaf canvas{border-radius:2px 5px 5px 2px;box-shadow:6px 8px 12px #0006}.page-navigation{display:flex;align-items:center;justify-content:center;gap:28px;font-family:Cormorant,Georgia,serif;min-height:60px;margin-top:0;margin-bottom:24px}.page-navigation>div{text-align:center;min-width:110px}.page-navigation span{font-size:18px}.page-navigation small{display:block;font:9px Arial,sans-serif;color:var(--muted);margin-top:7px;letter-spacing:.5px}.page-arrow{font-size:21px;width:37px;height:37px;color:var(--gold);border:1px solid #49403b;border-radius:50%}.reader-footer{border-top:1px solid var(--line);padding-top:17px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;color:var(--muted);gap:15px}.reader-footer span:last-child{letter-spacing:0}.reader-footer i{margin:0 10px}.accessible-text{margin-top:15px;color:var(--muted);font-size:10px}.accessible-text summary{cursor:pointer}.accessible-text div{font-size:16px;line-height:1.6;white-space:pre-wrap;max-height:300px;overflow:auto;margin:15px 0}.swatches{display:flex;gap:15px;margin:14px 0 32px}.swatches button{height:35px;width:35px;border-radius:50%;background:var(--swatch);border:4px solid var(--panel);outline:1px solid #544a45}.swatches button[aria-pressed=true]{outline:2px solid var(--gold)}input[type=range]{width:100%;accent-color:var(--gold);margin:7px 0 28px}output{float:right;color:var(--gold)}.asset-card{border:1px solid #49403b;background:#252022;padding:20px;margin-top:10px}.asset-card h2{font-size:24px}.asset-card p{font-size:11px;line-height:1.7;color:var(--muted)}.secondary{width:100%;border:1px solid #6c5947;padding:12px;font-size:11px;color:var(--gold);margin:8px 0}.asset-card .asset-status{font-size:9px;color:var(--gold);margin-bottom:0}dialog{background:#201d1f;color:var(--text);border:1px solid #59493e;padding:30px;width:min(600px,92vw);max-height:80vh}dialog::backdrop{background:#000a;backdrop-filter:blur(5px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.library-item{display:flex;align-items:center;gap:16px;border-top:1px solid var(--line);padding:15px 0}.library-item .mini-book{width:30px;height:42px;border-left:4px solid #0003;box-shadow:2px 2px #aa9b79}.library-item .book-meta{flex:1;text-align:left}.book-meta strong{display:block;font:22px Cormorant,Georgia,serif}.book-meta small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.library-item .delete-book{font-size:10px;color:#b09b95}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:14px 24px;background:#eee2cc;color:#2c231b;box-shadow:0 6px 30px #0006;z-index:20;font-size:12px;max-width:90vw}.reading-only .workbench{display:none}.reading-only main{grid-template-columns:1fr}.reading-only .book-wrap{width:min(100%,1050px)}@keyframes turnPage{0%{transform:rotateY(0deg)}100%{transform:rotateY(-180deg)}}@media(min-width:1600px){main{grid-template-columns:400px 1fr}.workbench{padding-left:36px;padding-right:36px}.reading-desk{padding-left:65px;padding-right:65px}}@media(max-width:1100px){main{grid-template-columns:310px 1fr}.workbench{padding:27px 20px}.reading-desk{padding:30px 26px}.reader-heading h2{font-size:25px}.reader-heading{align-items:flex-start}.reader-tools{gap:3px}.reader-tools .quiet{font-size:10px}.book-stage{min-height:350px}.reader-footer{flex-direction:column;gap:9px}.topbar{padding:0 26px}.top-actions{gap:12px}.saved{display:none}}@media(max-width:760px){.topbar{height:82px;padding:0 18px}.brand{font-size:27px}.brand svg{width:29px}.brand small{font-size:6px;letter-spacing:1.8px}.top-actions{gap:4px}.top-actions .primary{padding:10px;font-size:10px}.top-actions .quiet{font-size:10px}.top-actions .primary span{margin:0 4px 0 0}main{display:flex;flex-direction:column}.workbench{order:2;border-right:0;border-top:1px solid var(--line);padding:25px}.reading-desk{order:1;padding:24px 22px 16px}.reader-heading h2{font-size:24px}.reader-heading .eyebrow{font-size:7px}.book-stage{min-height:260px;padding:30px 0 20px}.reader-footer{display:none}.page-navigation{margin:0 0 4px;min-height:50px}.accessible-text{margin-top:7px}.reader-tools .icon-btn{display:none}textarea{height:300px}.panel-heading{margin-bottom:23px}.reading-only .workbench{display:none}.reading-only .reader-tools .icon-btn{display:grid}.reading-only .reading-desk{min-height:calc(100vh - 82px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.check-label{display:flex;align-items:center;gap:8px;letter-spacing:0;font-size:10px;font-weight:400;line-height:1.5;margin-bottom:20px}.check-label input{width:auto!important;margin:0!important;accent-color:var(--gold)}
@media(min-width:761px){main{height:calc(100vh - 96px);min-height:560px}.workbench{overflow-y:auto}.reading-desk{overflow-y:auto}.book-stage{min-height:260px;padding:28px 0}.book-wrap{width:min(100%,1050px,calc((100vh - 370px)*1.5))}.page-navigation{margin-bottom:16px}.accessible-text{flex-shrink:0}.reader-heading,.reader-footer{flex-shrink:0}.reading-only .book-wrap{width:min(100%,1050px,calc((100vh - 370px)*1.5))}}
.book{transition:transform .9s ease,box-shadow .9s ease}.book.closed{transform:translateX(-25%) rotateX(5deg);background:transparent;box-shadow:none}.book.closed .book-edge,.book.closed #left-page,.book.closed #right-page{opacity:0}

/* Keep the longer library name readable alongside the book actions. */
.brand{flex-shrink:0}.brand>span{white-space:nowrap}
@media(max-width:600px){.topbar{height:auto;min-height:112px;flex-wrap:wrap;justify-content:center;gap:12px;padding:16px 18px}.brand{font-size:27px}.top-actions{width:100%;justify-content:center}.reading-only .reading-desk{min-height:calc(100vh - 112px)}}
