:root{--ink:#202923;--muted:#73796d;--paper:#f4f2e9;--line:#d9dace;--accent:#b7472e;--sage:#dfe5d6;--serif:'Hiragino Mincho ProN','Yu Mincho',serif;font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bf603f;outline-offset:4px}a{color:inherit}.masthead{height:76px;background:var(--ink);color:#faf9f2;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;gap:14px;align-items:center;text-decoration:none;font-size:14px;letter-spacing:.12em}.brand-mark{width:31px;height:35px;border:1px solid #b7bdaa;font:27px var(--serif);display:grid;place-items:center}.brand-divider{color:#8e9c88;margin:0 9px}.account{display:flex;align-items:center;gap:16px;font-size:12px}.account button{border:0;background:none;color:#d6ddcf;text-decoration:underline;text-underline-offset:4px;padding:10px 0}.username{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.footer{margin:0 4.5vw;padding:25px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted);letter-spacing:.12em}.initial-loading{min-height:65vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;font-size:14px;color:var(--muted)}.loading-line{width:110px;height:2px;background:var(--line);overflow:hidden}.loading-line:after{content:'';display:block;width:45%;height:100%;background:var(--accent);animation:loading 1.3s infinite ease-in-out}@keyframes loading{from{transform:translateX(-100%)}to{transform:translateX(330%)}}.eyebrow{font-size:10px;font-weight:650;letter-spacing:.2em;color:var(--accent);margin:0 0 20px}.library{max-width:1400px;padding:62px 4.5vw 70px;margin:auto}.library-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:46px}.library h1{font:400 clamp(32px,4vw,51px)/1.5 var(--serif);letter-spacing:.05em;margin:0}.intro-copy{font-size:13px;color:var(--muted);line-height:2.1;max-width:320px;margin:0 0 10px}.shelf-label{display:flex;justify-content:space-between;border-top:1px solid var(--ink);padding:16px 0 24px;font-size:11px;letter-spacing:.08em}.books{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:38px 25px}.book-card{border:0;background:none;text-align:left;padding:0;color:var(--ink);display:flex;flex-direction:column;align-items:stretch}.book-cover{background:var(--cover);height:240px;position:relative;border-left:8px solid #0002;box-shadow:3px 6px 10px #20292312;overflow:hidden;padding:24px 20px;color:#faf8ee;transition:transform .2s,box-shadow .2s;display:flex;flex-direction:column}.book-card:hover .book-cover{transform:translateY(-5px);box-shadow:4px 12px 20px #20292320}.cover-series{font-size:9px;letter-spacing:.15em;opacity:.7}.cover-title{font:400 21px/1.7 var(--serif);margin-top:24px;position:relative;z-index:1;max-height:145px;overflow:hidden}.cover-number{position:absolute;bottom:-20px;right:8px;font:italic 110px var(--serif);opacity:.1}.cover-rule{width:35px;border-top:1px solid currentColor;margin-top:auto;opacity:.65}.book-title{font-size:13px;line-height:1.8;margin:17px 0 8px;font-weight:600}.book-meta{font-size:10px;letter-spacing:.04em;color:var(--muted);margin:0}.welcome{max-width:1160px;min-height:73vh;margin:auto;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:70px;padding:70px 6vw}.welcome h1{font:400 clamp(35px,4.7vw,60px)/1.6 var(--serif);letter-spacing:.03em;margin:0 0 26px}.welcome p{font-size:13px;line-height:2;color:var(--muted)}.welcome-panel{padding:35px;border:1px solid var(--line);background:#fbfaf5}.welcome-panel h2{font:400 24px var(--serif);margin:0 0 20px}.primary{display:block;text-align:center;text-decoration:none;background:var(--ink);color:#fff;border:1px solid var(--ink);padding:16px 25px;font-size:13px;margin:28px 0 16px}.fineprint{font-size:11px!important}.error-box{border-left:3px solid var(--accent);padding:16px 20px;background:#f8eee6;line-height:1.9;font-size:13px}.error-box p{margin:5px 0}.error-box button{margin-top:12px}.reader{padding:25px 3vw 40px;min-height:78vh}.reader-top{display:flex;align-items:center;gap:22px;margin-bottom:23px}.back-link{font-size:12px;white-space:nowrap;text-underline-offset:4px}.book-picker{max-width:560px;border:0;background:transparent;color:var(--ink);font:400 18px var(--serif);text-overflow:ellipsis;padding:8px 24px 8px 0;min-width:0}.reader-tools{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}.tool-group{display:flex;align-items:center;gap:9px;font-size:11px}.plain-button,.tool-select{color:var(--ink);background:#fbfaf5;border:1px solid var(--line);border-radius:2px;min-height:34px;padding:7px 12px;font-size:11px}.tool-select{max-width:130px}.page-input{width:53px;min-height:34px;text-align:center;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:2px;font-size:12px}.page-input::-webkit-inner-spin-button{appearance:none}.page-total{color:var(--muted);font-variant-numeric:tabular-nums;min-width:42px}.reading-note{font-size:10px;color:var(--muted);letter-spacing:.04em;display:flex;justify-content:space-between;gap:10px;margin:16px 0}.desk{position:relative;min-height:420px;overflow:auto;background:#e5e7dc;border:1px solid #d9ddcf;padding:35px 24px 38px}.spread{display:flex;align-items:flex-start;justify-content:center;gap:6px;width:max-content;min-width:100%;margin:auto}.sheet{position:relative;flex:none;line-height:0;background:white;box-shadow:0 3px 12px #20292324}.sheet.target{outline:2px solid var(--accent);outline-offset:4px}.sheet canvas{display:block;max-width:none}.sheet figcaption{position:absolute;bottom:-25px;left:0;right:0;text-align:center;font-size:10px;line-height:1.2;color:var(--muted)}figure.sheet{margin:0}.desk-status{padding:95px 20px;text-align:center;line-height:2;color:var(--muted);font-size:13px;min-width:100%}.reader-bottom{display:flex;justify-content:center;gap:25px;align-items:center;padding:24px 0 0;font-size:11px}.reader-bottom .plain-button{min-width:120px}.render-message{font-size:11px;min-height:22px;color:var(--accent);margin:10px 0}.reader .error-box{margin-top:20px}.empty-state{padding:50px 0;font-size:14px;color:var(--muted)}@media(min-width:1400px){.book-cover{height:285px}}@media(max-width:1000px){.books{grid-template-columns:repeat(3,minmax(0,1fr))}.welcome{gap:35px}.library-intro{gap:25px}.desk{padding:25px 17px 35px}}@media(max-width:700px){.masthead{height:64px;padding:0 20px}.brand{font-size:12px;gap:10px}.brand-divider{margin:0 3px}.account{gap:12px;font-size:10px}.username{max-width:85px}.library{padding:38px 22px 50px}.library-intro{display:block;margin-bottom:30px}.intro-copy{margin-top:20px;max-width:none;font-size:12px}.books{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px}.book-cover{height:220px;padding:20px 13px;border-left-width:6px}.cover-title{font-size:18px;margin-top:20px}.book-title{font-size:12px}.book-meta{font-size:9px}.footer{margin:0 22px;font-size:8px;letter-spacing:.05em}.welcome{display:block;padding:45px 25px;min-height:76vh}.welcome h1{font-size:38px}.welcome-panel{margin-top:35px;padding:25px}.reader{padding:18px 12px 30px}.reader-top{gap:15px;margin-bottom:15px}.book-picker{font-size:14px;flex:1;width:0}.reader-tools{gap:10px}.tool-group{gap:6px}.plain-button,.tool-select{padding:7px 9px}.desk{padding:18px 10px 35px;min-height:350px}.reading-note{font-size:9px}.keyboard-hint{display:none}.reader-bottom{gap:12px}.reader-bottom .plain-button{min-width:95px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
