@font-face{font-family:Orion;src:url('/assets/orion-display.woff') format('woff');font-display:swap}
:root{color-scheme:light;--ink:#183c32;--muted:#64736a;--paper:#f4f1e9;--rule:#bfc7bb;--rust:#9a422d;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:5px}button,select,input{font:inherit;color:inherit}button,select{min-height:42px;border:1px solid var(--rule);border-radius:4px;background:#fffdf7;padding:8px 12px}button{cursor:pointer}button:hover:not(:disabled){background:#e4e9df}button:disabled{opacity:.35;cursor:default}button[aria-pressed=true]{background:var(--ink);color:white}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--rust);outline-offset:4px}[hidden]{display:none!important}.skip{position:fixed;top:10px;left:20px;z-index:20;background:white;padding:12px;transform:translateY(-150%)}.skip:focus{transform:none}
.room-header{max-width:1440px;margin:auto;padding:24px 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule);gap:20px}.wordmark{font:30px Georgia,serif;text-decoration:none}.wordmark span{color:var(--rust)}.room-name{font-size:10px;letter-spacing:.22em}.back-link{font-size:12px;text-decoration:none}.shelf{max-width:1360px;margin:24px auto 28px;padding:0 32px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.shelf a{padding:10px;display:flex;align-items:center;gap:14px;border:1px solid transparent;text-decoration:none;border-radius:5px;transition:background .15s}.shelf a:hover{background:#e8eadd}.shelf a[aria-current=page]{border-color:#829889;background:#e7ebe1}.shelf img{object-fit:contain;box-shadow:3px 4px 7px #233c3226;flex:none}.shelf span{font:16px/1.2 Georgia,serif}.shelf small{display:block;margin-top:7px;font:10px/1.4 Arial,sans-serif;color:var(--muted)}
.reading{max-width:1360px;margin:auto;padding:0 40px}.book-heading{display:flex;gap:24px;align-items:center;justify-content:space-between;margin:0 0 24px}.eyebrow{font-size:10px;letter-spacing:.15em;text-transform:uppercase;margin:0 0 8px;color:var(--muted)}h1{font:normal clamp(28px,3.4vw,46px)/1.05 Orion,Georgia,serif;margin:0}.book-heading>a{font-size:12px;flex:none}.content-note{font-size:12px;line-height:1.6;border-left:2px solid var(--rust);padding:7px 12px;margin:0 0 20px}.toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;border-top:1px solid var(--rule);padding:18px 0 10px;font-size:12px}.toolbar label{display:grid;gap:7px;font-size:10px;letter-spacing:.05em}.toolbar select{font-size:12px;letter-spacing:normal}.chapter-label{flex:1;min-width:180px;max-width:530px}.chapter-label select{width:100%;text-overflow:ellipsis}.resume-note{font-size:12px}.resume-note button{min-height:32px;padding:4px 10px;font-size:11px;margin-left:6px}.read-status{font-size:11px;color:var(--muted);min-height:16px;margin:6px 0 10px}
.desk{position:relative;overflow:auto;overscroll-behavior:contain;min-height:380px;max-height:75svh;padding:32px 25px 40px;background:radial-gradient(ellipse at 50% 42%,#e8e9dc,#d4dcce);border:1px solid #c8d1c3;border-radius:6px;touch-action:pan-x pan-y pinch-zoom;scrollbar-width:thin}.book-space{position:relative;margin:0 auto;min-height:1px}.open-book{position:relative;display:flex;width:100%;height:100%;perspective:2300px;filter:drop-shadow(0 16px 18px #1a35232b)}.open-book::after{content:"";position:absolute;bottom:-5px;left:1px;right:1px;height:5px;background:repeating-linear-gradient(#f8f4e9 0 1px,#bcb8a9 1px 2px);border-radius:0 0 2px 2px}.paper{position:relative;min-width:0;flex:1;height:100%;background:#fffdf7;overflow:hidden}.paper>img{width:100%;height:100%;object-fit:contain;display:block}.paper::after{position:absolute;inset:0;content:"";pointer-events:none;background:linear-gradient(90deg,#00000010,transparent 6%,transparent 97%,#00000008)}.spread .paper:first-child::after{background:linear-gradient(90deg,transparent 90%,#00000005 95%,#00000024)}.spread .paper:last-child::after{background:linear-gradient(90deg,#00000020,transparent 8%)}.paper.blank{background:#f5efdf}.paper-text{height:100%;overflow:auto;padding:9% 9% 8%;font:clamp(14px,1.25vw,19px)/1.65 Georgia,serif}.paper-text header{font:9px Arial,sans-serif;letter-spacing:.15em;padding-bottom:1.5em;border-bottom:1px solid #d8cfbd;text-align:center}.paper-text p{margin:.9em 0}.paper-text footer{text-align:center;font:10px Arial,sans-serif;padding-top:15px}.turning-leaf{position:absolute;top:0;bottom:0;z-index:4;transform-style:preserve-3d;pointer-events:none;will-change:transform}.leaf-face{position:absolute;inset:0;backface-visibility:hidden;background:#fffdf7;overflow:hidden}.leaf-face .paper{width:100%}.leaf-back{transform:rotateY(180deg)}.turning-leaf::after{content:"";position:absolute;inset:0;backface-visibility:hidden;background:linear-gradient(90deg,#0002,transparent 30%,#fff4 65%,#0002);animation:leaf-shade 800ms ease-in-out both}.turning-leaf.forward{left:50%;width:50%;transform-origin:left;animation:turn-forward 800ms cubic-bezier(.26,.07,.22,1) both}.turning-leaf.backward{left:0;width:50%;transform-origin:right;animation:turn-backward 800ms cubic-bezier(.26,.07,.22,1) both}.open-book.single .turning-leaf{left:0;width:100%}.open-book.single .turning-leaf.backward{transform-origin:left;animation:single-back 800ms cubic-bezier(.26,.07,.22,1) both}.open-book.single .turning-leaf.forward{animation:single-forward 800ms cubic-bezier(.26,.07,.22,1) both}.leaf-face::after{content:"";position:absolute;inset:0;box-shadow:inset 5px 0 30px #3e34171f;pointer-events:none}
@keyframes turn-forward{from{transform:rotateY(0deg)}to{transform:rotateY(-180deg)}}@keyframes turn-backward{from{transform:rotateY(0deg)}to{transform:rotateY(180deg)}}@keyframes single-forward{from{transform:rotateY(0deg)}to{transform:rotateY(-100deg)}}@keyframes single-back{from{transform:rotateY(-100deg)}to{transform:rotateY(0deg)}}@keyframes leaf-shade{0%,100%{opacity:0}50%{opacity:1}}
.text-view{max-width:780px;margin:15px auto;padding:35px clamp(20px,5vw,65px);background:#fffdf8;box-shadow:0 8px 30px #163c3012;font:19px/1.8 Georgia,serif;overflow-wrap:anywhere}.text-view h2{font:13px Arial,sans-serif;letter-spacing:.08em;border-bottom:1px solid var(--rule);padding-bottom:12px}.text-view p{white-space:pre-line}.page-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin:22px 0 8px;font-size:12px}.page-controls>button{min-width:115px}.page-controls form{display:flex;gap:8px;align-items:center}.page-controls input{width:65px;min-height:42px;padding:8px;border:1px solid var(--rule);background:#fffdf8;border-radius:4px}.position{text-align:center;font-size:11px;letter-spacing:.06em;margin:15px 0}.gesture-hint{text-align:center;font-size:11px;color:var(--muted);line-height:1.6}.reader-help{font-size:12px;line-height:1.7;border-top:1px solid var(--rule);padding:18px 0;max-width:780px;margin:28px auto}.reader-help summary{cursor:pointer}.fallback{padding:20px;background:white}.room-footer{display:flex;justify-content:space-between;gap:20px;max-width:1280px;margin:20px auto 0;padding:25px 0;border-top:1px solid var(--rule);font-size:10px;letter-spacing:.1em}.room-footer span:last-child{font:italic 18px Georgia,serif;letter-spacing:0}
@media(max-width:900px){.shelf{grid-template-columns:repeat(2,1fr);padding:0 15px}.reading{padding:0 20px}.room-header{padding:20px}.room-footer{margin:20px}.toolbar{gap:8px}.desk{padding:22px 12px 30px}.book-heading{align-items:start;flex-direction:column;gap:12px}.room-name{display:none}}
@media(max-width:480px){.shelf{gap:5px;margin:15px auto 24px}.shelf a{padding:7px;gap:9px}.shelf span{font-size:13px}.shelf small{font-size:9px}.shelf img{width:32px;height:48px}.reading{padding:0 12px}.toolbar .chapter-label{flex-basis:100%;max-width:none}.toolbar>button{font-size:11px;padding:8px}.page-controls{gap:8px}.page-controls>button{min-width:44px;padding:8px}.page-controls>button span{display:none}.page-controls form{gap:5px}.room-footer{flex-wrap:wrap;font-size:9px}.paper-text{font-size:15px}.text-view{font-size:18px}.desk{min-height:300px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
