/* A quiet text edition with uninterrupted paper and gesture navigation. */
body.reading-active{overflow:hidden}
dialog.reading-fullscreen{position:fixed;inset:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:#d9ddcf;color:#2d382f}
dialog.reading-fullscreen[open]{display:flex;flex-direction:column}
.reading-fullscreen .modal-head{position:absolute;z-index:8;top:max(8px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));padding:0;border:0;background:transparent}
.reading-fullscreen .modal-head h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.reading-fullscreen #close-modal{color:#536653;background:#f7f5edc9;backdrop-filter:blur(10px);font-size:15px}
.reading-fullscreen #modal-body{padding:0;min-height:0;flex:1;overflow:hidden}
.reader-shell{height:100%;min-height:0;position:relative}
.reader-settings{position:absolute;right:max(65px,calc(env(safe-area-inset-right) + 52px));top:max(8px,env(safe-area-inset-top));z-index:9}
.reader-settings summary{display:grid;place-items:center;list-style:none;width:44px;height:44px;border-radius:50%;color:#536653;background:#f7f5edc9;backdrop-filter:blur(10px);cursor:pointer;letter-spacing:2px;font-size:12px}
.reader-settings summary::-webkit-details-marker{display:none}
.reader-settings summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.reader-settings-panel{position:absolute;right:-44px;top:52px;width:min(340px,calc(100vw - 24px));max-height:calc(100dvh - 90px);overflow:auto;background:#fffdf5;border:1px solid #d3d7c7;border-radius:14px;box-shadow:0 18px 60px #152b2833;padding:22px;display:grid;gap:18px}
.reader-primary-tools{display:flex;align-items:center;gap:8px}
.reader-control{border:1px solid #cbd0be;background:#f8f7ee;border-radius:7px;padding:9px 12px;font-size:12px;min-height:44px}
.reader-control[aria-pressed=true]{background:var(--green);color:white}
.reader-chapters{font-size:12px;margin-top:8px;padding:12px 8px}
.reader-page-form{display:flex;align-items:center;gap:8px}.reader-page-form label{margin:0;white-space:nowrap;font-size:12px}.reader-page-form input{width:67px;font-size:16px;padding:10px}
.reading-fullscreen .music-bar{margin:0;padding:14px 0 0;background:none;border-radius:0;border-top:1px solid #dddccf;gap:10px}
.reading-fullscreen .music-bar strong{font-size:11px}.reading-fullscreen .music-bar .note{font-size:10px;padding:0}.reading-fullscreen .music-bar button{font-size:11px;padding:8px 12px}
.reader-settings-note{font-size:11px;line-height:1.7;color:#6a7363}
.reader-stage{height:100%;padding:64px 38px 36px;display:grid;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);place-items:center;overflow:hidden;overscroll-behavior:contain;touch-action:pan-y pinch-zoom;background:radial-gradient(ellipse at 50% 25%,#f3f2e7 0%,#e2e4d7 46%,#c7d0bf 100%)}
.reader-stage:focus{outline:none}.reader-stage:focus-visible{outline:2px solid #ad9b70;outline-offset:-5px}
.book-surface{--reading-size:18px;width:min(640px,100%);height:100%;min-height:0;max-height:1000px;display:flex;flex-direction:column;position:relative;isolation:isolate;background:#fcf7e9;border-radius:5px 9px 9px 5px;box-shadow:2px 2px 1px #bfb39b,4px 5px 0 -1px #e9dfc8,5px 6px 0 -1px #bbb09a,7px 9px 0 -2px #f2e8d3,8px 10px 0 -2px #b4a993,9px 14px 0 -3px #e7ddc5,11px 18px 0 -4px #345346,12px 21px 0 -5px #1e3c2f,6px 30px 38px -12px #172b285e,0 8px 70px #40523b14}
.book-surface.is-spread{width:min(1180px,100%);border-radius:7px}
.book-paper{display:flex;flex:1;min-height:0;position:relative;perspective:2100px}
.book-leaf{margin:0;position:relative;flex:1;min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;padding:clamp(24px,4vh,48px) clamp(24px,3.6vw,54px) 18px;background:linear-gradient(90deg,#e9dfc824 0%,#fffaf0 7%,#fcf8ed 88%,#e7ddc66b 100%);border-radius:6px;transform-style:preserve-3d}
.is-spread .leaf-left{background:linear-gradient(90deg,#fdf9ef 0%,#fffbf2 83%,#e1d6bd 100%);border-radius:6px 0 0 6px;padding-right:44px}
.is-spread .leaf-right{background:linear-gradient(90deg,#d5c9ac 0%,#f2ead6 3%,#fffbf2 12%,#fbf6e9 100%);border-radius:0 6px 6px 0;padding-left:44px}
.leaf-text{flex:1;min-height:0;overflow:hidden;overscroll-behavior:none;font:var(--reading-size)/1.85 var(--serif);color:#303d32;outline-offset:5px;padding:2px 5px 12px;overflow-wrap:break-word}
.leaf-text p{font:inherit;line-height:1.85;margin:0 0 1em;white-space:pre-line;text-align:justify;hyphens:none}
.leaf-text h3{font:500 1.14em/1.55 var(--serif);color:#375340;white-space:pre-line;text-align:center;letter-spacing:.03em;margin:.35em 0 1.3em}
.poetry-leaf .leaf-text{display:flex;flex-direction:column;justify-content:safe center}.leaf-text .verse{text-align:center;font-style:italic;line-height:1.9;margin:.6em 0}
.leaf-page-number{display:block;flex:none;text-align:center;font:10px var(--serif);letter-spacing:.12em;color:#99907b;padding-top:8px}
.title-leaf .leaf-text{display:flex;flex-direction:column;justify-content:center;text-align:center}.cover-content h3{font-size:clamp(32px,4.2vw,50px);line-height:1.3;text-transform:none;max-width:440px;margin:0 auto 36px;letter-spacing:-.02em}.cover-content h3:after{content:'';display:block;width:48px;height:1px;background:#ad9568;margin:32px auto 0}.cover-content p{text-align:center;font-size:16px;color:#7b7d65}.cover-content p:last-child{font-size:14px;margin-top:28px;line-height:1.9}
.book-spine{position:absolute;inset:0 auto 0 50%;width:24px;transform:translateX(-50%);pointer-events:none;background:linear-gradient(90deg,transparent,#42321b16 33%,#42321b32 49%,#fff8 51%,#42321b0b 70%,transparent);z-index:2}
.turning-leaf{position:absolute!important;top:0;height:100%;z-index:4;box-shadow:-14px 6px 35px #352e2436;pointer-events:none;backface-visibility:hidden}
.leaf-attribution{flex:none;font:9px/1.5 var(--sans);color:#8d907d;text-align:center;margin:10px 0 0}
.timer #bell-status{margin:14px auto 0;font-size:11px;color:#61735c}.timer.is-running .timer-circle{animation:quiet-breath 6s ease-in-out infinite}
@keyframes quiet-breath{0%,100%{box-shadow:0 0 0 12px #e8ecdf,0 0 0 13px #cad1bf}50%{box-shadow:0 0 0 17px #e8ecdf,0 0 0 18px #aebb9f}}
@media(max-width:650px){.virtues{grid-template-columns:1fr}.source-callout{padding:16px}.source-button{min-height:48px;font-size:14px}.source-heading span{font-size:11px}.reader-stage{padding:60px 12px max(28px,calc(env(safe-area-inset-bottom) + 18px))}.book-leaf{padding:24px 20px 14px}.leaf-text{font-size:var(--reading-size);line-height:1.8}.leaf-attribution{font-size:8px}.cover-content h3{font-size:35px}.reader-settings-panel{padding:18px}}
@media(max-height:500px){.reader-stage{padding-top:52px;padding-bottom:20px}.book-leaf{padding-top:18px}.leaf-attribution{font-size:7px;margin-top:5px}.cover-content h3{font-size:25px;margin-bottom:12px}.cover-content h3:after{margin-top:14px}.cover-content p:last-child{margin-top:10px}}
@media(prefers-reduced-motion:reduce){.turning-leaf{display:none}.timer.is-running .timer-circle{animation:none}}

.leaf-content{display:flow-root;flex:none;min-width:0;width:100%}.leaf-content>:last-child{margin-bottom:0}.reader-measure{position:absolute!important;inset:0 auto auto 0;visibility:hidden;pointer-events:none;overflow:hidden;flex:none;contain:layout style}.book-paper{overflow:hidden}.blank-leaf{pointer-events:none}
