:root{color-scheme:dark;--bg:#11110f;--panel:#191916;--paper:#eae5d9;--muted:#8f8a7e;--line:#33322c;--red:#bb4d36;--gold:#d0a568;--mono:"DM Mono",monospace;--serif:"Playfair Display",serif;--sans:"Noto Sans SC",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--paper);font-family:var(--sans);font-size:14px}.topbar{height:76px;padding:0 7vw;border-bottom:1px solid #ffffff12;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;color:var(--paper);text-decoration:none;font-size:16px;font-weight:600;letter-spacing:.08em}.brand-mark{width:34px;height:34px;border:1px solid var(--red);color:var(--red);display:grid;place-items:center;font-size:17px}.brand small{display:block;color:#89857a;font:9px var(--mono);letter-spacing:.2em;margin-top:3px}.topnav{height:100%;display:flex;gap:40px}.topnav a{height:100%;display:flex;flex-direction:column;justify-content:center;gap:4px;color:#8b877e;text-decoration:none;font-size:12px;letter-spacing:.08em;position:relative}.topnav a span{font:9px var(--mono);letter-spacing:.15em}.topnav a.active{color:var(--paper)}.topnav a.active:after{content:"";height:2px;background:var(--red);position:absolute;bottom:-1px;left:0;right:0}.icon-button,.sort-button{background:none;border:1px solid var(--line);color:var(--paper);height:35px;width:38px;font-size:20px;cursor:pointer}.hero{min-height:495px;position:relative;padding:95px 7vw 65px;overflow:hidden;display:flex;align-items:center;border-bottom:1px solid #ffffff0d}.hero-copy{z-index:1;width:50%;padding-left:3.2vw}.eyebrow{font:10px var(--mono);letter-spacing:.2em;color:#a39d90}.eyebrow i{display:inline-block;width:6px;height:6px;background:var(--red);border-radius:50%;margin-right:9px;vertical-align:1px}.hero h1{font-size:clamp(40px,5vw,67px);font-weight:500;letter-spacing:.05em;margin:28px 0 8px;line-height:1.3}.hero h1 em{font-style:normal;color:var(--gold)}.hero-sub{font-size:17px;letter-spacing:.14em;margin:0 0 21px;color:#d0c8b8}.hero-description{color:#88847b;line-height:2;letter-spacing:.04em;font-size:12px}.text-link{color:var(--paper);text-decoration:none;display:inline-flex;align-items:center;gap:30px;border-bottom:1px solid #777063;padding:10px 0;margin-top:16px;font-size:12px;letter-spacing:.1em}.text-link span{color:var(--red);font-size:17px}.hero-art{position:absolute;right:7vw;top:34px;width:44%;height:430px;overflow:hidden;background:radial-gradient(ellipse at 60% 85%,#2a211a 0,#181916 50%,#121313 100%)}.moon{position:absolute;width:124px;height:124px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#d7b789,#9b704e 72%,#624332);opacity:.62;right:18%;top:60px;box-shadow:0 0 80px #c78d5633}.skyline{position:absolute;bottom:48px;left:0;right:0;display:flex;align-items:end;gap:7px}.skyline i{display:block;background:#1a1a17;border:1px solid #363127;position:relative}.skyline i:after{content:"";position:absolute;inset:10px 7px;background:repeating-linear-gradient(0deg,transparent 0 14px,#c28d4a 15px 18px);opacity:.35}.skyline-back{height:190px;opacity:.48}.skyline-back i:nth-child(1){height:80%;width:17%}.skyline-back i:nth-child(2){height:100%;width:14%}.skyline-back i:nth-child(3){height:72%;width:20%}.skyline-back i:nth-child(4){height:85%;width:16%}.skyline-back i:nth-child(5){height:62%;width:18%}.skyline-back i:nth-child(6){height:95%;width:15%}.skyline-back i:nth-child(7){height:70%;width:19%}.skyline-front{height:135px;bottom:25px;gap:0}.skyline-front i{width:21%;height:100%;border-color:#4b3929;background:#1c1a15}.skyline-front i:nth-child(2){height:78%}.skyline-front i:nth-child(3){height:90%}.skyline-front i:nth-child(4){height:73%}.skyline-front i:after{background:repeating-linear-gradient(0deg,transparent 0 18px,#c78b42 19px 22px);opacity:.6}.lantern{position:absolute;right:16%;top:46%;width:56px;height:94px;background:#a3402a;box-shadow:0 0 40px #d24d2b55;border-radius:20px/12px;display:grid;place-items:center;color:#ebc096;font-size:29px;writing-mode:vertical-rl}.counter{position:absolute;z-index:2;bottom:0;left:24%;right:-4%;height:64px;background:linear-gradient(180deg,#392a1f,#211a15);border-top:4px solid #6b4b32;display:flex;gap:30px;padding:0 38px;align-items:center}.counter span{width:33px;height:9px;border-radius:50%;background:#b18b5d;opacity:.7;box-shadow:0 0 14px #ce9a5633}.hero-art-label{position:absolute;bottom:17px;left:20px;color:#726b5c;font:9px var(--mono);letter-spacing:.16em}.hero-index{position:absolute;right:7vw;bottom:30px;display:flex;align-items:center;gap:9px;color:#6d695f;font:9px var(--mono)}.hero-index span:first-child{color:var(--red)}.index-line{width:38px;height:1px;background:#6b6559}.library-section{padding:75px 10vw 95px}.section-head{display:flex;justify-content:space-between;align-items:end}.section-head h2{font-size:30px;font-weight:500;letter-spacing:.1em;margin:12px 0 0}.section-head h2 span{color:var(--red)}.library-tools{display:flex;gap:10px;align-items:center}.search-box{height:38px;width:210px;border:1px solid var(--line);display:flex;align-items:center;gap:8px;padding:0 10px;color:#8e897d}.search-box>span{font-size:20px}.search-box input{background:transparent;border:0;outline:0;color:var(--paper);width:100%;font:11px var(--sans)}.search-box input::placeholder{color:#777268}.search-box kbd{white-space:nowrap;color:#777268;font:9px var(--mono);border:1px solid #393831;padding:3px 4px}.sort-button{height:38px;width:auto;padding:0 12px;font:11px var(--sans);letter-spacing:.06em}.sort-button span{color:var(--gold);margin-left:8px}.collection-tabs{display:flex;align-items:center;gap:25px;margin-top:39px;border-bottom:1px solid var(--line);position:relative}.tab{background:none;border:0;color:#8f8a7e;padding:0 0 14px;cursor:pointer;font:12px var(--sans);letter-spacing:.05em}.tab span{font:9px var(--mono);margin-left:8px;color:#67645c}.tab.active{color:var(--paper)}.tab.active:after{content:"";height:2px;background:var(--red);position:absolute;bottom:-1px;width:75px}.tab:nth-child(2).active:after{width:95px}.tab-rule{flex:1}.collection-note{font:9px var(--mono);color:#6d695f;letter-spacing:.1em;padding-bottom:14px}.book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:36px 24px;margin-top:30px}.book-card{min-width:0;cursor:pointer}.cover-wrap{height:clamp(210px,25vw,330px);position:relative;background:#292720;overflow:hidden;border:1px solid #ffffff11;box-shadow:0 9px 24px #0005}.cover-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s,filter .4s}.book-card:hover .cover-wrap img{transform:scale(1.035);filter:brightness(.76)}.cover-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,#090909d9);opacity:.7}.read-badge{position:absolute;bottom:17px;left:15px;font:10px var(--mono);letter-spacing:.13em;opacity:0;transform:translateY(5px);transition:.25s}.book-card:hover .read-badge{opacity:1;transform:none}.volume-badge{position:absolute;top:12px;left:12px;padding:6px 8px;background:#11110fce;color:#e9dfc9;font:9px var(--mono);letter-spacing:.1em}.progress-bar{position:absolute;height:2px;bottom:0;left:0;background:var(--red);transition:width .3s}.book-meta{padding:16px 2px 0}.book-title-row{display:flex;justify-content:space-between;gap:10px;align-items:start}.book-title{font-size:13px;font-weight:500;letter-spacing:.035em;line-height:1.65;margin:0}.book-vol{font:9px var(--mono);color:var(--gold);white-space:nowrap;padding-top:4px}.book-detail{display:flex;justify-content:space-between;align-items:center;color:#77736a;font-size:10px;margin-top:7px;letter-spacing:.04em}.book-detail .continue{color:#a69b86}.empty-state{text-align:center;color:#88847b;padding:80px 0}.empty-state button{background:none;border:0;color:var(--gold);cursor:pointer}.reading-note{margin:0 10vw 66px;padding:26px 30px;border-top:1px solid #3a3831;border-bottom:1px solid #3a3831;display:flex;align-items:center;gap:18px}.note-icon{color:var(--gold);font-size:21px}.reading-note p{font-size:13px;letter-spacing:.1em;margin:0}.reading-note p span{color:#89847a;margin-left:14px;font-size:11px}.note-credit{margin-left:auto;color:#66635b;font:9px var(--mono);letter-spacing:.12em}footer{border-top:1px solid #ffffff12;padding:24px 7vw;display:flex;justify-content:space-between;color:#69665e;font-size:10px;letter-spacing:.05em}.reader-dialog{border:0;padding:0;width:100vw;height:100dvh;max-width:none;max-height:none;background:#0d0d0c;color:var(--paper);overflow:hidden}.reader-dialog::backdrop{background:#000}.reader-bar{height:68px;border-bottom:1px solid #292822;display:flex;align-items:center;justify-content:space-between;padding:0 28px}.reader-bar button,.reader-controls button{background:none;border:0;color:var(--paper);cursor:pointer;font-family:var(--sans)}.reader-back{font-size:12px!important;color:#aaa396!important}.reader-back span{margin-left:8px}.reader-title{text-align:center;display:flex;flex-direction:column;gap:4px}.reader-kicker{font:8px var(--mono);letter-spacing:.2em;color:#837d70}.reader-title strong{font-size:12px;letter-spacing:.06em;font-weight:500}.reader-actions{display:flex;gap:16px;align-items:center}.reader-actions button{font-size:12px;color:#ada79a}.reader-actions button:last-child{font-size:23px}.reader-stage{height:calc(100dvh - 129px);display:flex;justify-content:center;align-items:center;overflow:auto}.reader-pages{height:100%;display:flex;justify-content:center;align-items:center;max-width:100%;transition:transform .2s}.reader-pages img{height:100%;max-width:100%;object-fit:contain;display:block}.reader-dialog.fit-width .reader-pages img{height:auto;width:min(100vw,1100px);max-height:none}.page-message{max-width:500px;padding:30px;color:#aaa396;line-height:2;text-align:center}.reader-controls{height:61px;border-top:1px solid #292822;display:flex;gap:25px;justify-content:center;align-items:center}.reader-controls button{font-size:20px}.reader-controls button:disabled{color:#4e4c45}.page-status{display:flex;align-items:center;gap:8px;font:10px var(--mono);color:#aaa396}.page-status #pageNumber{color:var(--paper)}#pageRange{width:min(23vw,240px);accent-color:var(--red)}.keyboard-hint{font-size:9px;color:#625f57;margin-left:18px}.reader-dialog iframe{position:absolute;inset:68px 0 0;width:100%;height:calc(100% - 68px);border:0;background:#fff}.reader-dialog.epub-mode .reader-stage{height:calc(100dvh - 129px)}#epubView{width:100%;height:100%;background:#161613}#epubView iframe{background:#f2eee6!important}.reader-dialog.epub-mode .reader-bar{position:relative;z-index:2;background:#11110f}.reader-dialog.epub-mode #readerClose{margin-left:10px}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}[hidden]{display:none!important}
@media(max-width:800px){.topbar{padding:0 5vw}.hero{min-height:470px;padding:70px 6vw 55px;align-items:flex-start}.hero-copy{width:75%;padding:0;z-index:2}.hero h1{font-size:clamp(37px,8vw,58px)}.hero-art{width:75%;right:0;top:110px;height:350px;opacity:.52}.hero-index{right:6vw}.library-section{padding:60px 6vw 75px}.book-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 16px}.cover-wrap{height:clamp(190px,36vw,300px)}.section-head{align-items:start;gap:20px;flex-direction:column}.library-tools{width:100%}.search-box{flex:1}.reading-note{margin-left:6vw;margin-right:6vw}.note-credit{display:none}}@media(max-width:520px){.topbar{height:64px}.brand{font-size:14px}.topnav{gap:18px}.topnav a{font-size:11px}.icon-button{width:32px;height:32px}.hero{min-height:425px;padding-top:60px}.hero-copy{width:100%}.hero-description{font-size:11px}.hero-art{width:100%;top:126px;opacity:.36}.hero h1{font-size:42px;margin-top:22px}.hero-sub{font-size:14px}.library-section{padding-top:50px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px}.cover-wrap{height:clamp(205px,66vw,310px)}.section-head h2{font-size:25px}.collection-tabs{gap:15px}.collection-note{font-size:8px}.tab{font-size:11px}.reading-note{padding:21px 10px;gap:12px}.reading-note p{font-size:12px}.reading-note p span{display:block;margin:6px 0 0}footer{padding:22px 6vw;gap:10px;flex-wrap:wrap}footer span:last-child{display:none}.reader-bar{height:58px;padding:0 14px}.reader-actions{gap:9px}.reader-actions button{font-size:10px}.reader-stage{height:calc(100dvh - 119px)}.reader-controls{height:61px;gap:14px}.keyboard-hint{display:none}.reader-dialog.epub-mode .reader-stage{height:calc(100dvh - 119px)}}
.reader-bar button,.reader-controls button,.bookmark-panel button{background:none;border:0;color:var(--paper);cursor:pointer;font-family:var(--sans)}
.reader-actions #bookmarkButton[aria-pressed="true"]{color:var(--gold)}
.bookmark-panel{position:absolute;z-index:5;top:68px;right:24px;width:min(340px,calc(100vw - 32px));max-height:min(65vh,520px);overflow:auto;background:#191916;border:1px solid #39372f;box-shadow:0 18px 48px #000a}
.bookmark-panel-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid #33322c;font-size:12px}
.bookmark-panel-head button{font-size:21px;color:#aaa396}
.bookmark-list{padding:8px}
.bookmark-item{width:100%;display:flex;align-items:center;gap:14px;padding:12px 10px;text-align:left;border-bottom:1px solid #ffffff0d!important;font-size:12px!important}
.bookmark-item span:nth-child(2){margin-left:auto;color:#a69b86;font-size:10px}
.bookmark-item .bookmark-remove{font-size:18px;color:#88847b}
.bookmark-item:hover{background:#ffffff09}
.bookmark-empty{padding:10px;color:#89847a;font-size:12px;line-height:1.8}
.reader-stage{touch-action:pan-y pinch-zoom}
.reader-pages{flex:none;width:100%;height:100%}
.reader-pages img{flex:none}
.reader-stage.is-zoomed{justify-content:flex-start;align-items:flex-start;cursor:grab}
.reader-stage.is-zoomed .reader-pages{width:max-content;min-width:100%;height:max-content;min-height:100%;transform-origin:top left}
.reader-stage.is-zoomed .reader-pages img{width:auto;height:calc((100dvh - 129px) * var(--reader-zoom,1));max-width:none;object-fit:contain}
.reader-stage.is-zoomed .reader-pages .page-message{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%)}
.reader-actions #zoomIn,.reader-actions #zoomOut,.reader-actions #zoomReset{min-width:34px;padding:5px 3px;border:1px solid #39372f;font:12px var(--mono);text-align:center}
@media(max-width:800px){.reader-actions #zoomIn,.reader-actions #zoomOut,.reader-actions #zoomReset{display:none}}
@media(max-width:520px){.reader-stage.is-zoomed .reader-pages img{height:calc(100dvh - 119px)}}
@media(max-width:520px){.reader-actions{gap:7px}.reader-actions button{font-size:9px!important}.reader-actions #readerFullscreen,.reader-actions #readerClose{font-size:20px!important}.bookmark-panel{top:58px;right:12px}}
