@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{color-scheme:dark;--green:#071f1b;--green2:#103c32;--gold:#e1bd67;--cream:#f7edcf}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:radial-gradient(ellipse at 50% 15%,#174238 0,#091f1b 55%,#04110f 100%);color:var(--cream);font-family:'DM Sans',sans-serif}
body{min-height:100svh}
.reader{min-height:100svh;display:flex;flex-direction:column;padding:0 24px max(12px,env(safe-area-inset-bottom))}
.topbar{height:66px;flex:none;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #cba64b55;max-width:1200px;width:100%;margin:0 auto}
.brand{display:flex;align-items:center;gap:9px;color:var(--cream);text-decoration:none;font-size:11px;letter-spacing:.15em;font-weight:700}
.brand b{color:var(--gold)}
.monogram{height:31px;width:31px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font:italic 20px 'Playfair Display',serif}
.controls{display:flex;align-items:center;gap:12px}
.controls button{width:35px;height:35px;border:1px solid #d7b65c;border-radius:50%;background:#0b2d26;color:var(--gold);font-size:22px;cursor:pointer;transition:background .2s,transform .2s}
.controls button:hover:not(:disabled){background:#1b4a3a;transform:scale(1.06)}
.controls button:disabled{opacity:.35;cursor:default}
#page-number{min-width:70px;text-align:center;color:var(--gold);font-size:10px;font-weight:700;letter-spacing:.14em}
.book-area{position:relative;flex:1;min-height:0;display:grid;place-items:center;padding:12px 0}
.page-frame{height:min(100%,calc(100svh - 126px));width:min(100%,calc((100svh - 126px)*.706));position:relative;overflow:hidden;background:#041b18;box-shadow:0 18px 54px #0009,0 0 0 1px #dcba6240;border-radius:2px;touch-action:pan-y}
.page-frame img{width:100%;height:100%;display:block;object-fit:contain;user-select:none;-webkit-user-drag:none}
.page-frame.turn-next{animation:arrive-next .22s ease-out both}.page-frame.turn-previous{animation:arrive-previous .22s ease-out both}
@keyframes arrive-next{from{opacity:.45;transform:translateX(4%)}to{opacity:1;transform:translateX(0)}}
@keyframes arrive-previous{from{opacity:.45;transform:translateX(-4%)}to{opacity:1;transform:translateX(0)}}
.edge{position:absolute;z-index:2;top:50%;translate:0 -50%;height:54px;width:42px;border:1px solid #e3c56d7a;background:#09251fe6;color:var(--gold);font:38px/1 'Playfair Display',serif;cursor:pointer}
.edge-left{left:max(0px,calc((100% - min(100%,calc((100svh - 126px)*.706)))/2 - 54px));border-radius:28px 0 0 28px}
.edge-right{right:max(0px,calc((100% - min(100%,calc((100svh - 126px)*.706)))/2 - 54px));border-radius:0 28px 28px 0}
.edge:disabled{opacity:.25;cursor:default}
footer{max-width:1200px;width:100%;margin:0 auto;min-height:34px;display:flex;align-items:center;justify-content:space-between;color:#cfb76e;font-size:9px;letter-spacing:.13em}
footer span:last-child{color:#c9c5ae;letter-spacing:.04em}
@media(max-width:600px){
 .reader{padding:0 10px max(8px,env(safe-area-inset-bottom))}
 .topbar{height:54px}
 .brand{font-size:9px;gap:6px}.monogram{width:27px;height:27px;font-size:18px}
 .controls{gap:6px}.controls button{width:32px;height:32px;font-size:20px}#page-number{min-width:55px;font-size:9px}
 .book-area{padding:8px 0}
 .page-frame{width:min(100%,calc((100svh - 105px)*.706));height:min(100%,calc(100svh - 105px))}
 .edge{height:40px;width:29px;font-size:30px;background:#08211ddd}
 .edge-left{left:-2px}.edge-right{right:-2px}
 footer{min-height:32px;justify-content:center}footer span:first-child{display:none}footer span:last-child{font-size:8px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
