:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#eee8de;background:#111017;font-synthesis:none;color-scheme:dark;--muted:#aaa4b2;--gold:#ecc477;--line:#ffffff16;--panel:#1b1821}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 75% 15%,#36233936,transparent 50%),#111017}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none}button:disabled{cursor:default;opacity:.65}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button svg,footer svg,.library-search svg,.brand svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}a{color:var(--gold)}.app-shell{max-width:1536px;margin:auto;padding:0 64px}.topbar{height:106px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;gap:13px;align-items:center;font:700 30px Georgia,serif;letter-spacing:-1px;text-decoration:none;color:#f1ebdf}.brand-dot{color:var(--gold)}.brand-icon{display:grid;place-items:center;background:#d5ae6912;border:1px solid #e5b66330;width:42px;height:42px;border-radius:12px;color:var(--gold)}.brand svg{width:24px;height:24px}.topbar-right{display:flex;align-items:center;gap:18px}.local-badge{font-size:10px;letter-spacing:1.6px;color:#a9a2ae;display:flex;align-items:center;gap:8px}.local-badge i{height:5px;width:5px;border-radius:50%;background:#9eb9a4}.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;gap:9px;min-height:45px;padding:12px 19px;border-radius:9px;font-size:13px;font-weight:600}.primary{background:var(--gold);color:#282018;box-shadow:0 3px 20px #e4b56c0a}.primary:hover{background:#f7d692}.secondary{background:#ffffff04;border:1px solid #ffffff25;color:#e5dedb}.secondary:hover{background:#ffffff0c;border-color:#bdad943f}.icon-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:10px}.icon-button:hover{background:#ffffff09}.intro{padding:55px 0 42px;display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2.1px;color:#c4a77a;margin:0 0 17px}h1,h2,h3,p{margin-top:0}h1{font:400 clamp(34px,4vw,51px)/1.15 Georgia,serif;letter-spacing:-1.3px;margin-bottom:14px}h1>span{color:var(--gold)}.subtitle{font-size:14px;line-height:1.6;color:var(--muted);margin:0}.stats{display:flex;gap:34px;padding-top:15px}.stats>div{display:flex;flex-direction:column;gap:9px;min-width:90px}.stats>div+div{padding-left:30px;border-left:1px solid var(--line)}.stats strong{font:400 34px Georgia,serif;color:#ead2a7}.stats span{font-size:11px;color:var(--muted)}.library-controls{border:1px solid var(--line);border-radius:12px;background:#ffffff02;display:flex;align-items:center;justify-content:space-between;padding:7px;gap:12px}.view-tabs{display:flex;gap:4px}.view-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;border-radius:7px;min-height:42px;padding:10px 14px;color:#a6a0ae;font-size:12px;white-space:nowrap}.view-tabs button[aria-pressed=true]{color:#f1d495;background:#d1ac6220}.view-tabs button:hover{color:#f1d495}.view-tabs svg{width:16px;height:16px}.filter-row{display:flex;align-items:center;gap:6px;min-width:0}.library-search{display:flex;gap:10px;align-items:center;color:#8d8597;min-width:0;padding-left:12px}.library-search input{background:none;border:0;color:inherit;padding:10px 0;width:215px;min-width:0;font-size:12px;outline-offset:0}.library-search input::placeholder{color:#8d8597}select{color:#d4cdd7;border:1px solid var(--line);background:#201c26;border-radius:7px;padding:10px;font-size:12px;min-height:42px;max-width:100%}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:33px 0 25px;gap:12px}.section-heading>div{display:flex;align-items:center;gap:12px}.section-heading h2{font:400 20px Georgia,serif;margin:0}.section-heading #result-count{font-size:10px;color:#aaa1ad;border:1px solid var(--line);padding:4px 7px;border-radius:5px}.section-heading #view-hint{font:italic 12px Georgia,serif;color:#948b9c}.library{min-height:400px}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:38px 27px;padding:2px 0 42px}.book-card{text-align:left;display:block;padding:0;min-width:0;border-radius:4px}.book-cover{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;aspect-ratio:2/3;width:100%;overflow:hidden;background:linear-gradient(95deg,#0005 0%,transparent 6%,#fff1 7%,transparent 10%),var(--cover,#5e4f65);color:#fff0d3;border-radius:2px 5px 5px 2px;box-shadow:7px 10px 18px #0003,inset -3px 0 #0002,inset 0 0 0 1px #ffffff0d;padding:10% 11%;transition:transform .22s,box-shadow .22s;text-align:center}.book-card:hover .book-cover{transform:translateY(-5px) rotate(-1deg);box-shadow:7px 17px 28px #0005}.cover-top{font-size:clamp(6px,.57vw,9px);letter-spacing:2px;opacity:.65;line-height:1.5}.cover-rule{height:1px;width:35%;background:currentColor;margin:15% auto;opacity:.45}.book-cover>strong{font:400 clamp(15px,1.8vw,25px)/1.15 Georgia,serif;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.cover-orbit{font-size:clamp(23px,3vw,42px);font-weight:300;opacity:.68;margin:auto 0}.cover-author{font:400 10px/1.5 Georgia,serif;letter-spacing:.7px;max-height:32px;overflow:hidden}.book-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--cover)}.book-meta{display:block;padding:17px 0 0}.book-meta>strong{display:block;font-size:13px;font-weight:500;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-meta>span:not(.book-bottom){display:block;font-size:11px;color:#9b91a5;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-bottom{display:flex;justify-content:space-between;align-items:center;gap:4px;margin-top:13px}.book-status{font-size:9px;color:#9d94a8;display:flex;align-items:center;gap:5px}.book-status i{width:4px;height:4px;background:#8c8397;border-radius:50%}.book-status.read{color:#a9bfae}.book-status.read i{background:#a9bfae}.book-status.reading{color:#e9c484}.book-status.reading i{background:#e9c484}.rating{font-size:11px;color:#d9b574}.empty-state{padding:22px 12px 37px;text-align:center;border:1px solid #ffffff07;border-radius:16px;background:radial-gradient(ellipse at 50% 30%,#4d335b2c,transparent 65%)}.empty-state h2{font:400 36px/1.2 Georgia,serif;letter-spacing:-.6px;margin-bottom:15px}.empty-state>.eyebrow{margin-bottom:13px;font-size:9px}.empty-state>p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.8}.empty-buttons{display:flex;justify-content:center;gap:12px;margin:25px 0 14px}.text-button{font-size:12px;color:#c5af87;padding:10px 0;min-height:42px}.empty-state>.text-button{font-size:11px;color:#8e8399}.empty-art{height:186px;width:290px;margin:auto;position:relative;display:flex;justify-content:center;align-items:center}.mini-book{font:14px/1.3 Georgia,serif;width:78px;height:116px;padding:19px 7px 8px;position:absolute;box-shadow:0 15px 18px #0004,inset 4px 0 #0002;z-index:2;color:#e1d6bb;border-radius:2px}.mini-book span{display:block;font-size:23px;margin-top:9px}.mini-one{background:#536457;transform:rotate(-17deg) translate(-72px,-11px);font-size:11px}.mini-two{background:#7a5864;transform:translateY(-4px);z-index:3}.mini-three{background:#9c7745;transform:rotate(17deg) translate(71px,-10px);font-size:11px}.art-star{position:absolute;color:#d9b574}.star-one{left:7px;top:30px;font-size:22px}.star-two{right:9px;bottom:22px;font-size:16px}.art-orbit{width:270px;height:97px;border:1px solid #c5a36727;position:absolute;border-radius:50%;transform:rotate(-16deg);bottom:13px}.carousel-view .book-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:50px;padding:20px 25% 40px}.carousel-view .book-card{flex:0 0 min(240px,64vw);scroll-snap-align:center}.carousel-view .book-cover>strong{font-size:28px}.no-results{text-align:center;padding:80px 20px;color:var(--muted)}.no-results h3{font:25px Georgia,serif;color:#e8dacc}.big-symbol{font-size:48px;display:block;color:var(--gold);margin-bottom:18px}.timeline-list{max-width:750px;margin:auto;padding:0 0 40px}.timeline-book{position:relative;width:100%;display:grid;grid-template-columns:130px 70px 1fr;gap:28px;text-align:left;padding:22px 10px;border-bottom:1px solid var(--line);align-items:center}.timeline-book time{color:#aa9dad;font-size:12px}.timeline-book .book-cover{width:70px;height:105px;padding:7px}.timeline-book .book-cover strong{font-size:12px}.timeline-book .cover-top,.timeline-book .cover-author{font-size:5px}.timeline-book>span:not(.book-cover){display:flex;flex-direction:column;gap:8px}.timeline-book>span>strong{font:20px Georgia,serif}.timeline-book>span>span{font-size:12px;color:var(--muted)}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;padding:27px 0 30px;color:#847c8e;font-size:10px}footer>span{display:flex;gap:9px;align-items:center}footer svg{width:15px;height:15px}footer button{font-size:10px;color:#a397ad;padding:8px 0;min-height:36px}dialog{background:#1d1923;color:#eee8de;border:1px solid #ffffff20;border-radius:18px;width:min(610px,calc(100% - 28px));max-height:90vh;max-height:90dvh;padding:29px;box-shadow:0 35px 100px #0008}dialog::backdrop{background:#07060cbc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dialog-header{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:22px}.dialog-header .eyebrow{font-size:8px;letter-spacing:1.8px;margin-bottom:12px}.dialog-header h2{font:30px/1.15 Georgia,serif;margin:0;letter-spacing:-.4px}.muted{color:var(--muted);font-size:12px;line-height:1.7}.online-search{display:flex;gap:8px}.online-search input{flex:1;min-width:0}.online-search button{padding:10px 14px}input,textarea{border:1px solid #ffffff20;border-radius:7px;background:#ffffff04;color:#eee8de;padding:12px;font-size:14px;width:100%;min-height:44px}input::placeholder,textarea::placeholder{color:#81768b}textarea{resize:vertical;line-height:1.6}.search-results{min-height:200px;max-height:47vh;overflow-y:auto;padding:14px 0}.search-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:210px;color:#8c7b9e;font-size:12px;gap:15px}.search-placeholder svg{height:40px;width:40px;fill:none;stroke:#ad9167;stroke-width:1}.search-result{display:flex;gap:15px;padding:14px 0;border-bottom:1px solid var(--line);align-items:center}.search-result .book-cover{width:48px;height:72px;flex-shrink:0;padding:7px 4px}.search-result .book-cover strong{font-size:9px}.search-result .cover-top,.search-result .cover-author{display:none}.search-result .cover-orbit{font-size:16px}.search-result>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}.search-result>div strong{font-size:13px}.search-result>div span,.search-result small{font-size:11px;color:var(--muted)}.search-result small{color:#8f809b}.search-result button{min-height:40px;font-size:11px;padding:8px 12px}.search-message{padding:45px 12px;color:#b1a1bb;text-align:center;font-size:13px;line-height:1.8}.dialog-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:12px;font-size:11px;color:var(--muted)}#edit-book label{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#bfb3c8;margin-bottom:17px}.book-detail{display:flex;gap:22px;align-items:center;margin-bottom:7px}.book-detail>.book-cover{width:106px;height:159px;flex-shrink:0;padding:13px 10px;margin-bottom:20px}.book-detail .book-cover strong{font-size:17px}.book-detail .cover-top{font-size:5px}.book-detail .cover-author{font-size:7px}.book-fields{flex:1;min-width:0}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}#edit-book select{width:100%;font-size:14px}.label-note{font-size:10px;color:#8e8099;margin-top:-3px}.form-actions{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:17px;gap:12px}.danger{color:#d3928b}.menu-section{padding:4px 0 22px;margin-bottom:20px;border-bottom:1px solid var(--line)}.menu-section h3{font:21px Georgia,serif;margin-bottom:12px}.menu-section p,.menu-section small{font-size:12px;line-height:1.8;color:#aaa0b4}.menu-section small{font-size:10px}.menu-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:13px}.menu-buttons button{font-size:11px;min-height:42px}.menu-section.about{border:0;margin:0;padding:0}.about p{font-size:10px}.highlight{border-left:2px solid var(--gold);padding-left:10px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:#eee0c9;color:#31251e;box-shadow:0 5px 35px #0007;border-radius:9px;padding:14px 20px;max-width:calc(100% - 30px);width:max-content;font-size:12px;line-height:1.6;z-index:10}.toast button{text-decoration:underline;font-weight:700;margin-left:15px;color:#5b3b23}.storage-error{position:fixed;bottom:0;left:0;right:0;padding:12px 20px;background:#742f36;color:#fff;font-size:12px;z-index:11}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@media(min-width:1400px){.book-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:1120px){.app-shell{padding:0 35px}.library-controls{flex-wrap:wrap}.view-tabs{width:100%}.view-tabs button{flex:1}.filter-row{width:100%;padding:2px 4px 4px}.library-search{flex:1;padding-left:9px}.library-search input{width:100%}.stats{gap:17px}.stats>div+div{padding-left:17px}.stats>div{min-width:75px}.book-cover>strong{font-size:23px}.cover-top{font-size:7px}}@media(max-width:640px){.app-shell{padding:0 20px}.topbar{height:83px;gap:10px}.brand{font-size:26px;gap:8px}.brand-icon{width:35px;height:35px;border-radius:9px}.brand svg{width:22px;height:22px}.topbar-right{gap:8px}.local-badge{display:none}.add-button{padding:10px 12px;font-size:11px;min-height:41px}.add-button svg{width:16px}.icon-button{width:38px;height:41px}.intro{padding:35px 0 26px;display:block}.eyebrow{font-size:8px;letter-spacing:1.6px;margin-bottom:15px}h1{font-size:35px;letter-spacing:-.9px;max-width:330px}.subtitle{font-size:12px;max-width:270px}.stats{padding-top:25px;gap:23px}.stats>div{flex-direction:row;align-items:baseline;gap:8px}.stats>div+div{padding-left:23px}.stats strong{font-size:26px}.stats span{font-size:9px}.library-controls{border-radius:10px;padding:5px;gap:4px}.view-tabs{gap:0}.view-tabs button{padding:10px 5px;gap:5px;font-size:10px;min-height:42px}.view-tabs svg{width:14px;height:14px}.view-tabs button[data-view=constellation]{flex:1.5}.filter-row{padding:3px 2px;gap:2px}.library-search{gap:7px;padding-left:6px}.library-search svg{width:15px}.library-search input{font-size:11px}.filter-row select{font-size:10px;padding:8px;max-width:119px;min-height:38px}.section-heading{margin:26px 0 21px;align-items:flex-start}.section-heading #view-hint{display:none}.section-heading h2{font-size:19px}.section-heading #result-count{font-size:9px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px;padding-bottom:30px}.book-cover>strong{font-size:21px}.cover-top{font-size:6px;letter-spacing:1.4px}.cover-author{font-size:9px}.cover-orbit{font-size:33px}.book-meta{padding-top:13px}.book-meta>strong{font-size:12px}.book-meta>span:not(.book-bottom){font-size:10px}.book-bottom{margin-top:11px}.book-status{font-size:8px}.empty-state{padding:0 8px 27px}.empty-art{transform:scale(.85);height:175px;width:260px}.empty-state h2{font-size:28px}.empty-state>p:not(.eyebrow){font-size:11px}.empty-buttons{flex-direction:column;align-items:center;gap:9px;margin-top:20px}.empty-buttons button{width:235px;font-size:11px}.empty-state>.eyebrow{font-size:8px}.carousel-view .book-grid{padding-left:15%;padding-right:15%;gap:25px}.timeline-book{grid-template-columns:63px 50px 1fr;gap:15px;padding:18px 0}.timeline-book time{font-size:9px;line-height:1.6}.timeline-book .book-cover{width:50px;height:75px}.timeline-book .cover-top,.timeline-book .cover-rule,.timeline-book .cover-author{display:none}.timeline-book .book-cover strong{font-size:9px}.timeline-book>span>strong{font-size:15px}.timeline-book>span>span{font-size:10px}footer{flex-direction:column;align-items:flex-start;gap:7px;padding:21px 0 24px;font-size:9px}footer button{font-size:9px}dialog{padding:22px 18px;max-height:92dvh;border-radius:14px}.dialog-header h2{font-size:26px}.dialog-header .eyebrow{font-size:7px}.online-search input{font-size:12px}.online-search .primary{padding:10px 12px}.online-search button span{display:none}.book-detail{gap:15px}.book-detail>.book-cover{width:78px;height:117px}.book-detail .book-cover strong{font-size:13px}.book-detail .cover-author{font-size:6px}input,textarea,#edit-book select{font-size:16px}.toast{font-size:11px;bottom:15px}.menu-section p{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.form-error{color:#f0afa4;background:#71323824;border:1px solid #a15b4e55;border-radius:7px;padding:12px;font-size:12px;line-height:1.6}
