:root{--gold:#c8ab72;--ivory:#eee1c5;--wine:#662a40;--ink:#4c392f;--paper:#e9d9b8}*{box-sizing:border-box}body{margin:0;min-height:100svh;overflow-x:hidden;color:var(--ivory);background:radial-gradient(ellipse at 52% 35%,#58334360,transparent 60%),repeating-linear-gradient(115deg,#ffffff01 0,#ffffff01 1px,transparent 1px,transparent 5px),#1c121b;font-family:Georgia,'Times New Roman',serif}button,a{color:inherit;-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid #e2c38b;outline-offset:5px}.room-glow{position:fixed;z-index:-1;inset:0;background:conic-gradient(from 60deg at 65% 0,transparent,#81516d12 15%,transparent 30%);pointer-events:none}.dust{position:fixed;inset:0;pointer-events:none;opacity:.3;background-image:radial-gradient(circle,#e3bf8c 1px,transparent 1px),radial-gradient(circle,#b9966b 1px,transparent 1px);background-size:213px 237px,311px 297px;background-position:25px 15px,90px 160px;mask-image:linear-gradient(transparent,#0008,transparent)}.topbar{height:72px;max-width:1450px;margin:auto;padding:0 5vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ad81531a}.brand{text-decoration:none;font-size:15px;letter-spacing:.04em}.brand-symbol{font-size:25px;color:var(--gold);vertical-align:middle;margin-right:12px}.top-actions{display:flex;gap:24px;align-items:center}.quiet{background:none;border:0;font:11px/1.5 system-ui;letter-spacing:.05em;color:#c6b5b6;padding:6px 0;display:flex;align-items:center;gap:8px}.equalizer{display:flex;align-items:center;gap:2px;height:15px}.equalizer i{display:block;width:2px;height:12px;background:#b8976b;animation:bars 1s ease-in-out infinite alternate}.equalizer i:nth-child(2){animation-delay:-.3s;height:6px}.equalizer i:nth-child(3){animation-delay:-.7s;height:15px}.equalizer i:nth-child(4){animation-delay:-.1s;height:8px}.sound[aria-pressed=false] .equalizer i{animation:none;height:3px}.reading-room{max-width:1390px;min-height:calc(100svh - 126px);margin:auto;display:grid;grid-template-columns:minmax(230px,1fr) auto minmax(110px,.7fr);gap:5vw;align-items:center;padding:22px 5vw 8px}.margin-note{padding-bottom:30px}.tiny{font:9px/1.8 system-ui;letter-spacing:.22em;color:#ab8d6c}.fine-rule{height:1px;width:44px;background:#9a75444d;margin:24px 0}.margin-note h1{font-size:clamp(28px,2.8vw,43px);font-weight:normal;line-height:1.25;letter-spacing:-.025em;margin:0 0 24px}.margin-note h1 em{color:#dbb995}.margin-note p{font-size:14px;line-height:1.9;color:#ae969f}.small-ornament{font-size:30px;color:#8b6a4f;margin:32px 0 16px}.margin-note .handwritten{font-size:20px;font-style:italic;color:#d3b89c}.reader{width:min(470px,calc((100svh - 191px)*.704));min-width:300px;margin:auto}.book-wrap{position:relative;perspective:1600px;width:100%;aspect-ratio:.704;filter:drop-shadow(12px 24px 25px #0009)}.book{container-type:inline-size;position:relative;width:100%;height:100%;border-radius:2px 7px 7px 2px;background:#7a3d49;box-shadow:-4px 0 2px #1d111a,0 0 0 1px #e0b4713a;perspective:1800px;touch-action:pan-y}.page-edges{position:absolute;inset:5px -7px -5px 5px;background:repeating-linear-gradient(0deg,#c6ad86 0,#c6ad86 1px,#e5d7b6 1px,#e5d7b6 3px);border-radius:0 7px 7px 0;border:1px solid #8f674b;transform:rotate(.5deg)}.binding{position:absolute;z-index:6;inset:0 auto 0 0;width:12px;background:linear-gradient(90deg,#160e1c7a,#4b20301a 70%,transparent);pointer-events:none}.ribbon{position:absolute;right:9%;top:-8px;width:18px;height:45px;background:linear-gradient(90deg,#763244,#b25565,#713041);clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%);z-index:8}.sheet{position:absolute;inset:0;overflow:hidden;border-radius:2px 6px 6px 2px;display:none;background:var(--paper);color:var(--ink);isolation:isolate}.sheet.active{display:block;z-index:2}.sheet:after{content:'';position:absolute;inset:2.6%;border:1px solid #d6b77665;pointer-events:none;z-index:12}.sheet.parchment:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at center,#fff7df80,transparent 68%),repeating-linear-gradient(13deg,#5b391c05 0,#5b391c05 1px,transparent 1px,transparent 3px);box-shadow:inset 0 0 55px #6a411d30}.page-inner{position:relative;z-index:3;height:100%;padding:9% 9% 7%;display:flex;flex-direction:column;align-items:center;text-align:center}.sheet h2{font-size:8.7cqw;line-height:1.05;font-weight:normal;margin:4cqw 0;letter-spacing:-.035em}.sheet p{font-size:3.3cqw;line-height:1.7;margin:0}.sheet .tiny{font-size:1.8cqw;letter-spacing:.23em;line-height:1.8}.page-no{position:absolute;bottom:4.6%;left:0;right:0;text-align:center;font-size:2.2cqw;color:#aa8861;letter-spacing:.12em;z-index:5}.decor{font-size:5cqw;color:#a7834c;line-height:1}.flourish{width:50%;display:flex;align-items:center;gap:15px;margin:4cqw auto;color:#99703b;font-size:3cqw}.flourish:before,.flourish:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,#ad8c57)}.flourish:after{transform:rotate(180deg)}.antique-border{position:absolute;inset:6%;border:1px solid #bd9b5d;box-shadow:0 0 0 4px #562b3d,0 0 0 5px #b5996040;pointer-events:none}.antique-border:before,.antique-border:after{content:'❦';position:absolute;font-size:28px;left:50%;transform:translateX(-50%);background:#63283c;color:#c7a469;padding:0 8px;top:-20px}.antique-border:after{top:auto;bottom:-20px;transform:translateX(-50%) rotate(180deg)}.cover{background:radial-gradient(ellipse at 35% 25%,#a05566aa,transparent 70%),repeating-linear-gradient(60deg,#e4ad8930 0,#e4ad8900 1px,transparent 1px,transparent 4px),#5d263c;color:#d6bd8a}.cover .page-inner{padding:13% 12%}.cover .tiny{color:#d1b580}.cover-emblem{font-size:14cqw;line-height:1;margin-top:6cqw;color:#d4b27b;text-shadow:0 1px 2px #0008}.cover h2{font-size:13cqw;line-height:1.03;letter-spacing:-.05em;margin:5cqw -2cqw 3cqw;text-shadow:0 2px 2px #0005}.cover .subtitle{font-size:3.5cqw;font-style:italic;max-width:80%;color:#ddc9a8}.cover-bottom{margin-top:auto;display:flex;flex-direction:column;align-items:center}.open-book{border:0;background:none;color:#e1ca9d;display:flex;flex-direction:column;align-items:center;gap:3cqw;font-size:2.8cqw;letter-spacing:.13em;padding:5cqw 12cqw 2cqw}.wax{display:grid;place-items:center;width:15cqw;height:15cqw;border-radius:48% 53% 47% 51%;background:radial-gradient(circle at 35% 25%,#ac4c5e,#6a2436 67%,#451b2c);box-shadow:2px 4px 6px #1c0b1d77,inset 0 0 0 1cqw #a0475355,inset 0 0 0 1.3cqw #4b1c2d4d;font-size:7cqw;color:#bb7980;transform:rotate(-12deg);transition:transform .4s}.open-book:hover .wax{transform:rotate(4deg) scale(1.06)}.edition{font:1.6cqw system-ui;letter-spacing:.24em;margin-top:6cqw}.dedication .page-inner{justify-content:center}.cameo{width:37cqw;height:43cqw;border:1px solid #ac8b51;border-radius:50%;padding:3cqw;position:relative;margin-bottom:6cqw;box-shadow:0 0 0 1cqw #e4d2ac,0 0 0 1.15cqw #ad8b5840}.cameo img{width:100%;height:100%;object-fit:cover;border-radius:50%;filter:sepia(.25)}.dedication h2{font-size:11cqw;font-style:italic}.dedication .dedication-copy{font-size:4cqw;max-width:90%;font-style:italic}.ex-libris{margin-top:7cqw;color:#9b7e52;letter-spacing:.25em;font-size:2cqw}.toc .page-inner{align-items:stretch}.toc h2{text-align:center;font-style:italic;font-size:10cqw;margin:3cqw 0 5cqw}.toc-row{display:flex;align-items:baseline;width:100%;gap:2cqw;background:none;border:0;border-bottom:1px solid #99714820;color:#584431;padding:2.4cqw .5cqw;text-align:left;font-size:3.1cqw}.toc-row:after{content:attr(data-num);font-size:2.4cqw;color:#96784f;margin-left:1cqw}.dotted{height:1px;flex:1;min-width:3px;border-bottom:1px dotted #ab8c6580}.toc-row:hover{color:#a14c64;background:#b08b5320}.toc .decor{margin-top:auto}.full-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.shade{position:absolute;inset:0;background:linear-gradient(#0d102c55,#18122408 35%,#22152a55 60%,#201022ec);z-index:-1}.scene{color:#f5e5c7}.scene .tiny{color:#e0c18c}.scene .page-inner{padding:9% 9% 10%}.scene h2{font-style:italic;text-shadow:0 2px 15px #190e1e80}.scene-bottom{margin-top:auto;max-width:100%;padding:4cqw 0}.scene-bottom p{font-size:3.3cqw;text-shadow:0 1px 8px #100b18}.scene .page-no{color:#c5a77a}.scene .quote{font-style:italic;font-size:4.7cqw!important;line-height:1.45;margin-bottom:4cqw}.school .full-image{object-position:50% 45%}.school .shade{background:linear-gradient(#15192ec9,transparent 35%,transparent 47%,#211425f5 83%)}.school h2{font-size:8.6cqw}.reunion h2{font-size:11cqw}.story .page-inner{align-items:stretch;text-align:left;padding:10% 10% 9%}.story h2{font-size:7cqw;margin:4cqw 0 5cqw;line-height:1.12}.story-body p{font-size:3.5cqw;line-height:1.82;text-align:left;margin-bottom:3.8cqw}.story .flourish{margin-top:auto}.story .running-head{font-size:1.8cqw;color:#9a7e58;letter-spacing:.18em;border-bottom:1px solid #ac8b572e;padding-bottom:2cqw}.story.variant-1{background:#e4cdb5}.story.variant-2{background:#e6dbc2}.story.variant-3{background:#e9d4c1}.story .chapter-date{font-size:2.3cqw;font-style:italic;color:#a47b58;margin-top:-2cqw;margin-bottom:4cqw}.postcard-stage{width:100%;height:50cqw;position:relative;margin:5cqw 0 3cqw}.postcard{position:absolute;background:#f8e9c8;box-shadow:2px 6px 10px #55362338;border:1px solid #c7af80;padding:4cqw;text-align:left;width:76%;height:41cqw;left:11%;top:3cqw;transform:rotate(-8deg)}.postcard:before{content:'';position:absolute;height:75%;width:1px;left:53%;top:12%;background:#b4966a40}.postcard:after{content:'SAUDADE';position:absolute;right:5%;top:7%;border:2px solid #a16b5b77;border-radius:50%;width:17cqw;height:17cqw;text-align:center;padding-top:6cqw;transform:rotate(12deg);font-size:2.5cqw;color:#a16b5b}.post-mark{font-size:3cqw;font-style:italic;width:45%;color:#8f6c49;margin-top:3cqw}.post-lines{width:35%;margin-left:auto;margin-top:13cqw;height:13cqw;background:repeating-linear-gradient(transparent 0,transparent 4cqw,#b7a07b66 4.1cqw,#b7a07b66 4.3cqw)}.distance h2{font-size:8.4cqw}.distance .story-copy{font-size:3.5cqw;line-height:1.85;text-align:left}.distance .flourish{margin:3cqw auto}
.kitchen{background:radial-gradient(ellipse at 50% 25%,#b68b79,#714f67 58%,#3b314e);color:#f1dfc4}.kitchen .tiny{color:#e8cda0}.kitchen h2{font-size:9.6cqw;line-height:1.1}.fairylights{position:absolute;left:-10%;top:31%;width:120%;height:13%;border-bottom:1px solid #503431;border-radius:50%;transform:rotate(-8deg)}.fairylights i{position:absolute;bottom:-2cqw;width:1.4cqw;height:2cqw;background:#ffe4a4;border-radius:50%;box-shadow:0 0 4cqw 1cqw #ffbf7355}.kitchen-scene{height:57cqw;width:100%;position:relative;margin-top:2cqw}.tabletop{position:absolute;bottom:0;left:-15%;width:130%;height:14cqw;background:linear-gradient(0deg,#714934,#bc8f67);box-shadow:0 1cqw 2cqw #33253888;border-radius:50%}.bowl{position:absolute;bottom:7cqw;left:5cqw;width:39cqw;height:21cqw;border-radius:4% 4% 48% 48%;background:repeating-linear-gradient(90deg,#e6cda4 0,#e6cda4 7cqw,#b35e5d 7cqw,#b35e5d 13cqw);box-shadow:inset -4cqw -3cqw 7cqw #503d4155,2cqw 3cqw 4cqw #2e213a55}.popcorn{position:absolute;left:5%;top:-12cqw;width:90%;height:16cqw}.kernel{position:absolute;width:9cqw;height:8cqw;border-radius:45% 50% 50% 42%;background:radial-gradient(ellipse at 40% 30%,#fff2c9 15%,#d8bc88 70%);box-shadow:inset -1cqw -1cqw 1.5cqw #9f754a40}.brigadeiros{position:absolute;right:1cqw;bottom:8cqw;width:32cqw;height:10cqw;background:#d1b899;border:1cqw solid #f4dfc1;border-radius:50%;box-shadow:1cqw 2cqw 3cqw #3d254866}.brigadeiros i{position:absolute;width:10cqw;height:10cqw;border-radius:50%;top:-4cqw;background:radial-gradient(#bc875c 1px,transparent 1px),radial-gradient(circle at 30% 25%,#885d40,#412e2c 75%);background-size:4px 4px,100% 100%;border-bottom:1cqw solid #b99679}.kitchen .scene-note{font-style:italic;font-size:4cqw;line-height:1.6;margin-top:4cqw}.kitchen .page-no{color:#d4ad81}.night{background:radial-gradient(ellipse at 80% 5%,#626482,#292b48 50%,#191a2b);color:#e9ddcb}.night .tiny{color:#beac89}.moon{position:absolute;top:8%;right:15%;width:17cqw;height:17cqw;border-radius:50%;background:radial-gradient(circle at 40% 40%,#e9d9b0,#c5b38d);box-shadow:0 0 18cqw 5cqw #e1d5a31a}.moon:after{content:'';position:absolute;inset:10% 5% 40% 40%;border-radius:50%;background:#b5a78c33;box-shadow:-5cqw 7cqw 0 #ada38c22}.night .page-inner{align-items:flex-start;text-align:left;padding:12% 10% 7%}.night h2{font-size:8.5cqw;line-height:1.1;max-width:75%;margin:9cqw 0 0}.phone{width:36cqw;height:59cqw;margin:5cqw auto;background:linear-gradient(130deg,#5a4c61,#b1a2a3 45%,#343142);padding:1.3cqw;border-radius:6cqw;transform:rotate(9deg);box-shadow:5cqw 5cqw 10cqw #11132088}.phone-screen{height:100%;border-radius:5cqw;background:linear-gradient(#3d405c,#1a2338);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #ddd3bf33}.phone-screen .initial{display:grid;place-items:center;background:#a47b86;color:#f1d9cb;width:14cqw;height:14cqw;border-radius:50%;font-size:7cqw}.phone-screen strong{font-weight:normal;font-size:4cqw;margin-top:3cqw}.phone-screen small{font:1.8cqw system-ui;color:#c3c0cd;margin-top:2cqw}.call-wave{height:8cqw;width:80%;display:flex;align-items:center;justify-content:center;gap:1.4cqw;margin-top:5cqw}.call-wave i{height:5cqw;width:.5cqw;background:#d3b79a;animation:bars 1.6s infinite alternate}.call-wave i:nth-child(2n){height:2.4cqw;animation-delay:-.5s}.call-wave i:nth-child(3n){height:6.4cqw;animation-delay:-1s}.bottom-note{font-size:3.1cqw!important;line-height:1.75!important;margin-top:auto!important}.night .page-no{color:#a49176}.cinema{background:linear-gradient(#2e2138,#604154 60%,#211b2d);color:#ecd7b5}.cinema .tiny{color:#cbb088}.cinema h2{margin:3cqw 0 2cqw;font-size:9cqw}.marquee{width:96%;margin:9cqw auto 4cqw;position:relative;background:#e9d8b2;color:#53394b;border:1cqw solid #b58d59;outline:2px solid #312034;box-shadow:0 0 0 2cqw #754d48,0 0 0 2.3cqw #d1a76b,0 0 10cqw #ffb86830;padding:5cqw 2cqw}.marquee:before,.marquee:after{content:'•  •  •  •  •  •  •  •  •  •';position:absolute;left:-2%;right:-2%;top:-3.2cqw;color:#ffe2a8;font-size:4cqw;text-shadow:0 0 2cqw #e3ac62;white-space:nowrap}.marquee:after{top:auto;bottom:-3cqw}.marquee strong{font-size:7.5cqw;letter-spacing:.08em;font-weight:normal}.marquee small{display:block;font-size:2.2cqw;letter-spacing:.2em;border-top:1px solid #b396724d;padding-top:1cqw;margin-top:1cqw}.curtains{position:absolute;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(90deg,#6e2a4199,transparent 20%,transparent 80%,#6e2a4199)}.tickets{display:flex;gap:2cqw;transform:rotate(-7deg);margin:6cqw auto}.ticket{background:#d9bf8d;color:#5a3a3c;padding:3cqw;text-align:left;border-top:1px dashed #775149;border-bottom:1px dashed #775149;box-shadow:0 2cqw 3cqw #150d1f70}.ticket+.ticket{transform:rotate(13deg) translateY(3cqw)}.ticket strong{font-size:3.5cqw;font-weight:normal;display:block}.ticket small{font:1.8cqw/1.7 system-ui;letter-spacing:.08em}.barcode{height:5cqw;background:repeating-linear-gradient(90deg,#5b3c3b 0,#5b3c3b 1px,transparent 1px,transparent 3px,#5b3c3b 3px,#5b3c3b 5px,transparent 5px,transparent 7px);margin-top:2cqw;opacity:.65}.cinema .bottom-note{margin-top:5cqw!important}.cinema .page-no{color:#bc976e}.gallery{background:linear-gradient(#403b59,#88708a 62%,#c49c9a);color:#f8e8cb}.gallery .tiny{color:#e4c99f}.gallery h2{font-size:9cqw;font-style:italic;margin:3cqw 0}.gallery-sub{font-size:2.8cqw!important;font-style:italic;color:#dbc8c4}.photo-grid{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:5cqw 4cqw;margin-top:9cqw}.polaroid{background:#eadfc6;padding:2cqw 2cqw 4cqw;box-shadow:0 3cqw 5cqw #251d3b55;color:#5f463c;position:relative;transform:rotate(-6deg)}.polaroid:nth-child(2){transform:rotate(5deg)}.polaroid:nth-child(3){transform:rotate(4deg)}.polaroid:nth-child(4){transform:rotate(-4deg)}.polaroid:before{content:'';position:absolute;top:-3cqw;left:40%;width:3cqw;height:6cqw;border-radius:1px;background:linear-gradient(90deg,#9a724d,#d2b383,#90724f);box-shadow:0 2px 2px #0005;z-index:2}.polaroid .photo{height:28cqw;overflow:hidden;position:relative;background:#66576b}.polaroid img{width:100%;height:100%;object-fit:cover;display:block}.photo-symbol{font-size:14cqw;display:flex;align-items:center;justify-content:center;background:radial-gradient(#c9a289,#6b5165)!important;text-shadow:0 1cqw 1cqw #51334b88}.polaroid figcaption{font-size:2.9cqw;text-align:center;font-style:italic;padding-top:2cqw;line-height:1.4}.photo-grid figure{margin:0}.gallery .page-no{color:#f2debb}.jar-page{background:linear-gradient(#a2818b,#dab7a2 60%,#c19b81);color:#583d3b}.jar-page .tiny{color:#79524a}.jar-page h2{font-size:9cqw;font-style:italic}.jar-stage{position:relative;width:100%;height:69cqw;margin:4cqw 0}.jar{position:absolute;width:45cqw;height:58cqw;border-radius:6cqw 6cqw 9cqw 9cqw;left:20%;bottom:0;border:1.1cqw solid #eee3cc88;background:linear-gradient(90deg,#fff2db2b,transparent 25%,#f6e5c933 70%,#fff4de5e);box-shadow:inset 3cqw 0 3cqw #ffffff33,3cqw 4cqw 7cqw #60484c4d;overflow:hidden}.jar:after{content:'';position:absolute;inset:0;box-shadow:inset 3cqw 0 2cqw #fff6df40;pointer-events:none}.jar-lid{position:absolute;left:19%;top:2cqw;width:47cqw;height:12cqw;border-radius:45% 45% 20% 20%;background:repeating-linear-gradient(90deg,#ac8a5e 0,#ac8a5e 2px,#c4a371 2px,#c4a371 4px);border-top:2cqw solid #d1b68e;box-shadow:1cqw 1cqw 3cqw #77564666;z-index:2;transform:rotate(-4deg)}.paper-slip{position:absolute;width:19cqw;height:8cqw;background:#eadcaa;box-shadow:1px 2px 3px #3a2b3b33;transform:rotate(var(--rot));left:var(--left);bottom:var(--bottom)}.paper-slip:nth-child(3n){background:#d7aca9}.paper-slip:nth-child(4n){background:#b9c1b2}.jar-tag{position:absolute;right:1cqw;top:17cqw;background:#e9d6ac;padding:3cqw;width:30cqw;font-style:italic;font-size:3.4cqw;transform:rotate(12deg);box-shadow:1cqw 1cqw 3cqw #60484c4d}.take-note{border:1px solid #80574780;background:#efd7ab;color:#795343;padding:3cqw 7cqw;border-radius:3px;font-size:3cqw;box-shadow:0 1cqw 2cqw #66434a22}.take-note:hover{background:#fae8c9}.jar-page .bottom-note{font-size:2.8cqw!important;margin-top:4cqw!important;font-style:italic}.music-page{background:#28253b;color:#f5e3c0}.music-page .full-image{filter:brightness(.65);object-position:30% 50%}.music-page .shade{background:linear-gradient(#21162b70,#21162b08 40%,#20142be0)}.music-page .tiny{color:#d3b482}.music-page h2{font-size:10cqw;font-style:italic}.record-player{position:relative;width:73cqw;height:54cqw;background:linear-gradient(140deg,#9c6c4e,#523946);border:1.8cqw solid #a77d58;border-radius:4px;box-shadow:3cqw 4cqw 7cqw #100d2066;margin:auto 0 5cqw;transform:rotate(-4deg)}.record{position:absolute;left:5cqw;top:4cqw;width:43cqw;height:43cqw;border-radius:50%;background:repeating-radial-gradient(circle,#19151f 0,#19151f .5cqw,#39303a .6cqw,#19151f .8cqw);box-shadow:0 2cqw 3cqw #1d132b99;animation:record 13s linear infinite;display:grid;place-items:center}.record-label{width:17cqw;height:17cqw;background:#a45e6e;border:1px solid #ca9c89;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:2.4cqw;font-style:italic;line-height:1.3;color:#edd5b2}.record-label:after{content:'';position:absolute;width:1.2cqw;height:1.2cqw;background:#332532;border-radius:50%}.tonearm{position:absolute;right:6cqw;top:8cqw;height:31cqw;width:4cqw;transform:rotate(32deg);transform-origin:50% 0;border-radius:2cqw;background:linear-gradient(90deg,#9e8b7c,#e2d3b0,#796a63);box-shadow:1cqw 1cqw 2cqw #221d2e66}.tonearm:after{content:'';position:absolute;bottom:-3cqw;left:-1cqw;width:6cqw;height:7cqw;background:#3d3040;border:1px solid #be9877;border-radius:1cqw}.player-light{position:absolute;right:4cqw;bottom:3cqw;width:1.5cqw;height:1.5cqw;border-radius:50%;background:#e3b16f;box-shadow:0 0 2cqw #ffe7a2}.track-title{font-size:4.2cqw!important;font-style:italic}.track-detail{font-size:2.4cqw!important;font-family:system-ui;color:#c8b0b4;margin:2cqw 0 4cqw!important}.music-page .quote{font-size:3.5cqw;font-style:italic;line-height:1.6}.letter-page .page-inner{justify-content:space-between;padding-top:11%;padding-bottom:14%}.letter-page h2{font-size:10cqw;font-style:italic}.envelope-button{position:relative;width:72cqw;height:48cqw;padding:0;border:0;background:none;perspective:600px;margin:6cqw 0}.envelope{position:absolute;inset:0;background:#d5bc92;box-shadow:2cqw 3cqw 7cqw #77503c40;border:1px solid #b5996b}.envelope:before{content:'';position:absolute;inset:0;background:#ead7b2;clip-path:polygon(0 0,50% 52%,100% 0);z-index:3;transform-origin:top;transition:transform .6s}.envelope:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,#eddab7,#e1caa4);clip-path:polygon(0 0,50% 50%,100% 0,100% 100%,0 100%);z-index:2}.envelope-letter{position:absolute;inset:9% 9% 5%;background:#fff2d0;box-shadow:0 0 2cqw #68442922;transition:transform .6s;font-size:4cqw;font-style:italic;padding-top:5cqw;color:#88664a;z-index:1}.envelope-button:hover .envelope:before{transform:rotateX(165deg);z-index:0}.envelope-button:hover .envelope-letter{transform:translateY(-14cqw)}.envelope .wax{position:absolute;z-index:4;width:13cqw;height:13cqw;top:41%;left:41%;font-size:5cqw}.open-caption{font-size:3.2cqw!important;letter-spacing:.02em;margin-top:5cqw!important}.soft-copy{max-width:90%;font-size:3.2cqw!important;font-style:italic;line-height:1.7}.ring-page{background:#050507;color:#e8e4df}.ring-page:after{border-color:#d9c4a42b}.ring-page .page-inner{padding:11% 8% 10%;pointer-events:none}.ring-page h2{font-size:8.5cqw;letter-spacing:-.04em}.ring-page .tiny{color:#a19588}.ring-canvas{position:absolute;left:0;right:0;top:22%;width:100%;height:62%;z-index:1}.ring-caption{margin-top:auto!important;font-size:3cqw!important;line-height:1.6!important;font-style:italic;max-width:86%;color:#b8aca1;z-index:3}.ring-replay{pointer-events:auto;border:1px solid #c7b39944;background:#151316;color:#baa98f;border-radius:20px;padding:1.8cqw 4cqw;font-size:2.3cqw;margin-top:3cqw;z-index:4}.closing .page-inner{justify-content:center}.closing .tiny{margin-top:7cqw}.closing h2{font-size:10cqw;font-style:italic}.closing p{font-size:3.8cqw;font-style:italic;max-width:90%}.end-button{margin-top:9cqw;background:none;border:0;border-bottom:1px solid #94744a;padding:2cqw;color:#8b6546;font-size:2.8cqw}
.reader-controls{display:flex;align-items:center;justify-content:space-between;margin:20px 4px 0;gap:18px}.arrow{width:38px;height:34px;border:1px solid #ae8a622a;background:#ac6d7e09;border-radius:50%;font-size:20px;color:#d4bc98}.arrow:hover{background:#a16c7f26}.arrow:disabled{opacity:.2;cursor:default}.page-progress{border:0;background:none;padding:0;display:grid;grid-template-columns:auto auto;gap:6px;font:9px system-ui;letter-spacing:.05em;width:68%;text-align:left;color:#bfa4a1}.progress-track{grid-column:1 / -1;grid-row:2;height:2px;background:#a98a6a33;display:block}.progress-track span{display:block;background:#bfa06a;height:100%;transition:width .6s}#page-count{grid-column:2;grid-row:1;text-align:right;font-size:8px;letter-spacing:.15em}.reader-hint{font:10px/1.6 system-ui;text-align:center;color:#8e7783;margin:13px -20px 0}.edge-note{align-self:center;display:flex;flex-direction:column;align-items:center;gap:30px;opacity:.55;padding-left:20px}.edge-note>span{writing-mode:vertical-rl;font:9px system-ui;letter-spacing:.26em;color:#b69a7f}.vertical-line{height:66px;width:1px;background:#a47d4f66}.edge-note b{font:8px system-ui;letter-spacing:.2em;font-weight:normal;color:#b99b78}.footer{max-width:1450px;padding:8px 5vw 14px;display:flex;justify-content:space-between;align-items:center;margin:auto;color:#826a76;font:10px system-ui}.footer .quiet{font-size:10px;color:#9a818d}#turn-layer{position:absolute;inset:0;pointer-events:none;z-index:10;perspective:1500px}.turn-leaf{position:absolute;inset:0;transform-style:preserve-3d;transform-origin:0 50%;animation:page-turn .85s cubic-bezier(.48,.07,.32,1) forwards}.turn-leaf.reverse{transform-origin:100% 50%;animation-name:page-back}.turn-face{position:absolute;inset:0;backface-visibility:hidden;overflow:hidden;border-radius:2px 6px 6px 2px}.turn-face .sheet{display:block;position:absolute;inset:0}.turn-face:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0001,transparent 20%,#0000 70%,#0004);animation:turn-shadow .85s both;pointer-events:none}.turn-back{transform:rotateY(180deg);background:linear-gradient(90deg,#d2bb92,#f2e2bf 15%,#d5c29b 95%);box-shadow:inset 4px 0 10px #68422544}.back-ornament{display:grid;place-items:center;height:100%;color:#a2805255;font-size:70px}.turn-leaf canvas{visibility:hidden}dialog{padding:0;border:1px solid #b59b75;border-radius:3px;background:#eee0c3;color:#503c30;max-height:89svh;box-shadow:0 25px 100px #0009}dialog::backdrop{background:#120b18e8;backdrop-filter:blur(9px)}#letter-dialog{width:min(680px,94vw)}.dialog-toolbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;padding:12px 25px;background:#eee0c3;border-bottom:1px solid #ac8c5830;font:9px system-ui;letter-spacing:.18em}.dialog-toolbar button,.close-note{font-size:26px;font-family:Georgia;background:none;border:0;color:#80574b;padding:0 4px}.letter-paper{padding:40px 54px;background:repeating-linear-gradient(transparent 0,transparent 31px,#b3936520 32px)}.letter-paper h2{font-size:38px;font-weight:normal;font-style:italic;margin:20px 0 35px}.letter-content p{font-size:16px;line-height:2;margin:0 0 19px}.letter-end{text-align:center;font-size:35px;color:#a5804c;margin-top:35px}#note-dialog{width:min(360px,88vw);padding:38px 35px;text-align:center;transform:rotate(-2deg);background:linear-gradient(130deg,#f0e3bf,#e2cfa5)}.close-note{position:absolute;right:12px;top:5px}#note-dialog h2{font-size:26px;line-height:1.2;font-weight:normal;font-style:italic;margin:20px 0}#note-dialog p{font-size:19px;line-height:1.7;font-style:italic}.note-flower{font-size:35px;color:#a17a4d}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.full-reading .margin-note,.full-reading .edge-note{display:none}.full-reading .reading-room{display:block;padding:16px 20px}.full-reading .reader{width:min(510px,calc((100svh - 185px)*.704));min-width:280px}.paused .record,.paused .equalizer i{animation-play-state:paused}.paused .player-light{background:#796d64;box-shadow:none}@keyframes bars{to{transform:scaleY(.35)}}@keyframes record{to{transform:rotate(360deg)}}@keyframes page-turn{0%{transform:rotateY(0deg)}100%{transform:rotateY(-177deg)}}@keyframes page-back{0%{transform:rotateY(0deg)}100%{transform:rotateY(177deg)}}@keyframes turn-shadow{0%,100%{opacity:0}45%{opacity:1}}@media(min-width:1600px){.reader{width:min(540px,calc((100svh - 205px)*.704))}.reading-room{gap:6vw}}@media(max-width:1000px){.reading-room{grid-template-columns:1fr auto;gap:4vw;padding-left:6vw;padding-right:8vw}.edge-note{display:none}.margin-note h1{font-size:30px}.reader{width:min(440px,calc((100svh - 191px)*.704))}}@media(max-width:700px){.topbar{height:58px;padding:0 19px}.brand{font-size:12px}.brand-symbol{font-size:20px;margin-right:6px}.top-actions{gap:18px}.quiet{font-size:10px}.sound #sound-label{display:none}.reading-room{display:block;min-height:unset;padding:22px 21px 10px}.margin-note,.edge-note{display:none}.reader{width:min(470px,calc((100svh - 190px)*.704),100%);min-width:0}.reader-controls{margin-top:22px}.reader-hint{font-size:9px;margin-top:15px}.footer{padding:10px 20px;font-size:9px}.footer .quiet{font-size:9px}.book-wrap{filter:drop-shadow(7px 20px 17px #0009)}.letter-paper{padding:25px 26px}.letter-paper h2{font-size:30px}.letter-content p{font-size:15px}.full-reading .reader{width:min(470px,calc((100svh - 185px)*.704),100%);min-width:0}}@media(max-height:630px) and (min-width:701px){.topbar{height:53px}.reading-room{min-height:unset;padding-top:17px}.reader{width:calc((100svh - 158px)*.704);min-width:230px}.margin-note h1{font-size:27px}.reader-hint{display:none}.reader-controls{margin-top:14px}.margin-note .small-ornament{margin:15px 0}.footer{padding-top:4px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.turn-leaf{display:none}}

.toc-row{font-size:2.9cqw;line-height:1.5;padding:1.7cqw .5cqw}

.story-body p{font-size:3.3cqw;line-height:1.7;margin-bottom:2.2cqw}
.story-body{flex:1;min-height:0;padding-right:.4cqw}.story-body p{font-size:max(12px,3.3cqw)}.story .flourish{flex-shrink:0;margin:2cqw auto}.toc .page-inner{padding-bottom:11%}
/* Each leaf supplies its own typography scale, including the turning leaf. */
.sheet { container-type: inline-size; }
.monogram { display:grid; place-content:center; gap:1cqw; background:#eddfc0; color:#8d5c49; }
.monogram b { font-size:21cqw; font-weight:normal; font-style:italic; line-height:1; }
.monogram span { color:#9c763e; font-size:4cqw; }
.story-body p { font-family: Georgia, 'Times New Roman', serif; font-size:max(14px, 3.45cqw); line-height:1.65; }
.page-no { color:#806044; }
.sheet.parchment .tiny { color:#785b40; }
.reader-hint,.footer,.quiet { font-size:12px; }
.page-progress,#page-count { font-size:11px; }
.scene .page-inner { text-shadow:0 2px 10px #130a17; }
.scene .tiny { color:#f0d6a6; }
@media (min-width:760px) and (min-height:560px) {
  .reading-room,.full-reading .reading-room { display:block; padding:24px 24px 12px; }
  .margin-note,.edge-note { display:none; }
  .reader,.full-reading .reader { width:min(100%, 1120px, calc((100svh - 179px) * 1.408)); min-width:0; }
  .book-wrap { aspect-ratio:1.408; }
  .book:not(.spread) { width:50%; margin-inline:auto; }
  .book.spread .sheet { width:50%; }
  .book.spread .right-page { left:50%; }
  .book.spread .binding { left:calc(50% - 16px); width:32px; background:linear-gradient(90deg,transparent,#26132155 47%,#1e121a88 50%,#2b19254d 56%,transparent); }
  .page-edges,.ribbon { display:none; }
  .book { box-shadow:0 4px 0 #aa8b63,0 8px 0 #5d2d41,0 12px 18px #0005; }
  .spread-turn { width:50%; right:auto; left:50%; }
  .spread-turn.reverse { left:0; }
  .book.spread .turn-face .sheet { width:100%; left:0; }
  .book:not(.spread) .spread-turn { width:100%; left:0; }
  .reader-controls { max-width:620px; margin-inline:auto; }
}
.illustrated-memory .shade { background:linear-gradient(#17101be0,transparent 39%,transparent 59%,#18101aed); }
.illustrated-memory .scene-bottom { padding-bottom:2cqw; }

/* The staged book keeps the stationary leaf visible until the turn lands. */
.book-wrap.turning > :is(.book,.page-edges,.ribbon) { visibility:hidden; }
.turn-stage { position:absolute; inset:0; transform-style:preserve-3d; }
.resting-page { position:absolute; inset:0; overflow:hidden; border-radius:3px; box-shadow:0 5px 0 #a98c64,0 8px 0 #593046; }
.resting-page .sheet,.turn-face .sheet { display:block; width:100%; inset:0; }
.turn-leaf { animation-duration:1.05s; animation-timing-function:cubic-bezier(.42,.04,.23,1); }
.turn-face:after { animation-duration:1.05s; background:linear-gradient(90deg,#210f1840,transparent 45%,#1d0d1829); }
@keyframes page-turn { from { transform:rotateY(0); } to { transform:rotateY(-180deg); } }
@keyframes page-back { from { transform:rotateY(0); } to { transform:rotateY(180deg); } }
@media (min-width:760px) and (min-height:560px) {
  .rest-left,.rest-right { width:50%; }
  .rest-right { left:50%; }
  .cover-motion { animation:shift-cover 1.3s cubic-bezier(.42,.04,.23,1) both; }
  .cover-motion .turn-leaf,.cover-motion .turn-face:after { animation-duration:1.3s; }
  .cover-motion .turn-leaf { border-radius:2px 7px 7px 2px; box-shadow:3px 3px 0 #653749; }
  .closing-motion,.closing-motion .turn-leaf,.closing-motion .turn-face:after { animation-direction:reverse; }
}
@keyframes shift-cover { from { transform:translateX(-25%); } to { transform:translateX(0); } }

/* Cover engraving and a full-size keyboard-accessible cover hit area. */
.cover .page-inner { padding:14% 11% 12%; }
.cover .cover-emblem { width:37cqw; height:23cqw; margin-top:11cqw; }
.cover h2 { margin:6cqw 0 0; font:normal 12.3cqw/.97 Georgia,serif; letter-spacing:-.055em; }
.cover h2 em { font-weight:normal; }
.cover .subtitle { margin-top:3cqw; font:italic 3.75cqw/1.55 Georgia,serif; }
.cover .edition { margin-top:auto; }
.cover .antique-border { box-shadow:0 0 0 1.6cqw #a7855738,inset 0 0 0 1.3cqw #6a3041; }
.cover .antique-border::before,.cover .antique-border::after { content:'✦'; font-size:3.5cqw; top:-.7em; }
.cover .antique-border::after { top:auto; bottom:-.7em; }
.cover-rule { display:flex; width:39%; align-items:center; gap:2cqw; margin:6cqw auto 0; font-size:2cqw; color:#d4b57b; }
.cover-rule::before,.cover-rule::after { content:''; height:1px; flex:1; background:currentColor; opacity:.65; }
.cover-hit { position:absolute; z-index:5; inset:0; width:100%; border:0; background:transparent; }
.cover-hit:focus-visible { outline:2px solid #e8d1a2; outline-offset:-10px; }

/* Paper bends across the leaf. Each strip shows the matching portion of both faces. */
.turn-leaf.curling { animation:none; }
.paper-strip { position:absolute; inset:0 auto 0 0; transform-origin:left center; transform-style:preserve-3d; }
.reverse .paper-strip { left:auto; right:0; transform-origin:right center; }
.strip-surface { position:absolute; inset:0; overflow:hidden; backface-visibility:hidden; background:#eadabb; transform:translateZ(.06px); }
.strip-surface.strip-back { transform:rotateY(180deg) translateZ(.06px); }
.strip-surface > .turn-face { transform:none; overflow:visible; backface-visibility:visible; border-radius:0; }
.strip-surface > .turn-face::after { animation:none; background:rgb(58 30 43 / var(--paper-shadow,0)); }
.strip-surface .sheet { border-radius:0; }
.turn-stage { isolation:auto; }
@media (min-width:760px) and (min-height:560px) {
  .page-motion { border-radius:2px 7px 7px 2px; box-shadow:0 4px 0 #aa8b63,0 8px 0 #5d2d41,0 12px 18px #0005; }
  .page-motion .resting-page { box-shadow:none; }
  .page-motion::after { content:''; position:absolute; inset:0 auto 0 calc(50% - 16px); width:32px; pointer-events:none; background:linear-gradient(90deg,transparent,#26132155 47%,#1e121a88 50%,#2b19254d 56%,transparent); }
}
.reunion h2 { font-size:9.2cqw; }
.reunion .shade { background:linear-gradient(#17101b70,transparent 30%,transparent 65%,#18101ac0); }
.reunion .scene-bottom { padding-bottom:3cqw; }
.jar-page h2 { font-size:8.1cqw; }
.jar-page .jar-stage { height:61cqw; margin:1cqw 0 2cqw; }
.jar-illustration { display:block; width:100%; height:100%; object-fit:contain; }
.jar-page .take-note { padding:2.5cqw 6.5cqw; }
.jar-page .bottom-note { margin-top:2.5cqw!important; }
.story .running-head { display:flex; align-items:center; justify-content:space-between; gap:6px; }
.chapter-icon { width:4.4cqw; height:4.4cqw; min-width:16px; color:#805441; flex:none; }
.story-vignette { margin:3cqw 0 1cqw; }
.story-vignette img { display:block; width:100%; max-height:34cqw; object-fit:cover; border-radius:3px; }
@media (max-width:759px) {
  .reader-controls .arrow { min-width:44px; min-height:44px; }
  .ring-page .ring-caption { font-size:max(11px,3.1cqw); }
  .ring-replay,.take-note { min-height:38px; }
  .story-vignette img { max-height:41cqw; }
}

@media (max-width:759px), (max-height:559px) {
  .reader,.full-reading .reader { min-width:min(100%,320px); }
  .reader-controls .arrow { min-width:44px; min-height:44px; }
}
.letter-pause .letter-sprig { width:49cqw; height:31cqw; margin:4cqw auto 3cqw; color:#646e51; }
.letter-pause h2 { font-size:8cqw; }
.letter-pause p { font-size:max(13px,3.6cqw); }

.story-picture .story-vignette { margin:5cqw 0 2cqw; }
.story-picture .story-vignette img { max-height:63cqw; }
.story-body p { font-size:max(13px,3.45cqw); }
.story h2 { font-size:6.2cqw; margin:3.2cqw 0 3.8cqw; }
.story-body p { font-size:max(12px,3.1cqw); line-height:1.57; margin-bottom:2.5cqw; }
.story-continuation h2,.story-continuation .chapter-date { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); margin:0; }
.story-continuation .story-body { padding-top:4cqw; }

.story-body h3 { font:normal 4.15cqw/1.25 Georgia,serif; color:#714b3b; margin:3cqw 0 1.5cqw; }
.final-portrait { width:51cqw; aspect-ratio:1; margin:5cqw auto 3cqw; padding:1cqw; border:1px solid #b28d57; border-radius:50%; }
.final-portrait img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 44%; border-radius:50%; }
.final-dedication h2 { font-size:8cqw; }
.final-dedication p { font-size:max(13px,3.6cqw); }
.final-dedication .page-inner { padding-bottom:15cqw; }
.final-dedication .final-portrait { width:46cqw; height:54cqw; flex:none; margin:4cqw auto 2cqw; }
.final-dedication h2 { margin:3cqw 0; }
.final-dedication .flourish { margin:2cqw auto; }
.final-dedication p { line-height:1.5; }


.layout-mode { display:none; }
@media (max-width:759px), (max-height:559px) {
  .layout-mode {
    display:flex; align-items:center; justify-content:center; gap:8px;
    min-height:44px; margin:10px auto 0; padding:0 14px;
    border:1px solid #bb96615e; border-radius:22px; background:#2d202b;
    color:#f1debd; font:inherit; font-size:12px; cursor:pointer;
  }
  .layout-mode:disabled { opacity:.65; }
  .reader:has(.spread-layout),.full-reading .reader:has(.spread-layout) {
    width:min(100%,640px); min-width:0;
  }
  .book-wrap.spread-layout { aspect-ratio:1.408; }
  .spread-layout .book:not(.spread) { width:50%; margin-inline:auto; }
  .spread-layout .book.spread .sheet { width:50%; }
  .spread-layout .right-page { left:50%; }
  .spread-layout .book.spread .binding {
    left:calc(50% - 8px); width:16px;
    background:linear-gradient(90deg,transparent,#27152266 49%,#27152277 50%,transparent);
  }
  .spread-layout .book { box-shadow:0 3px 0 #aa8b63,0 6px 0 #5d2d41; }
  .spread-layout :is(.page-edges,.ribbon) { display:none; }
  .spread-layout .spread-turn { width:50%; left:50%; right:auto; }
  .spread-layout .spread-turn.reverse,.spread-layout .rest-left { left:0; }
  .spread-layout :is(.rest-left,.rest-right) { width:50%; }
  .spread-layout .rest-right { left:50%; }
  .spread-layout .cover-motion { animation:shift-cover 1.3s cubic-bezier(.42,.04,.23,1) both; }
  .spread-layout .cover-motion .turn-leaf,.spread-layout .cover-motion .turn-face:after { animation-duration:1.3s; }
  .spread-layout :is(.closing-motion,.closing-motion .turn-leaf,.closing-motion .turn-face:after) { animation-direction:reverse; }
  .spread-layout .story-body p { font-size:3.45cqw; }
  .spread-layout .final-dedication p { font-size:3.6cqw; }
  .spread-layout :is(.take-note,.envelope-button) { min-height:0; }
}
/* In single-page mode the other side of the spine is outside the viewport. */
.single-turn #turn-layer { clip-path:inset(-22% -12% -22% 0); }

/* Keep the back cover and paper block in place while the moving leaf turns. */
.book-wrap:not(.spread-layout)::before {
  content:''; position:absolute; z-index:-1; inset:1px -3px -6px 0;
  border-radius:3px 7px 7px 3px;
  background:linear-gradient(to bottom,transparent calc(100% - 7px),#b99a69 calc(100% - 7px),#e1c79b calc(100% - 4px),#603044 calc(100% - 4px));
  box-shadow:0 4px 9px #10091165;
}
.book-wrap:not(.spread-layout) .page-edges { display:none; }
.book-wrap:not(.spread-layout) .book,.book-wrap:not(.spread-layout) .rest-single { box-shadow:none; }
.single-turn .rest-single::after {
  content:''; position:absolute; z-index:6; inset:0 auto 0 0; width:12px;
  pointer-events:none; background:linear-gradient(90deg,#160e1c7a,#4b20301a 70%,transparent);
}
.rigid-cover .turn-leaf { animation-duration:1.15s; }
.rigid-cover .turn-face:after { animation-duration:1.15s; }
.rigid-cover.closing-motion .turn-leaf,.rigid-cover.closing-motion .turn-face:after { animation-direction:reverse; }

/* Center the book and toolbar in the same column. */
body { display:flex; flex-direction:column; min-height:100svh; }
.topbar {
  flex:none; width:min(calc(100% - 32px),1120px); height:auto;
  flex-direction:column; justify-content:center; gap:8px;
  padding:13px 0 10px; margin:0 auto;
}
.topbar .brand { display:flex; align-items:center; gap:9px; font-size:15px; }
.topbar .brand-symbol { margin:0; }
.top-actions { justify-content:center; flex-wrap:wrap; gap:4px 10px; }
.top-actions .quiet {
  display:inline-flex; align-items:center; justify-content:center; gap:7px;
  min-height:34px; padding:0 11px; border-radius:16px;
}
.top-actions .quiet:hover,.top-actions .quiet[aria-pressed=true]#fullscreen { background:#bc9a6421; }
.reading-room {
  flex:1; display:grid; place-items:center; grid-template-columns:minmax(0,1fr);
  min-height:0; width:100%; max-width:none; margin:0;
  padding:15px clamp(12px,3vw,36px) 22px;
}
.margin-note,.edge-note { display:none; }
.reader { max-width:100%; min-width:0; }
.reader-controls { margin-inline:auto; }
.sheet h2:focus { outline:none; }
.reader-fullscreen .topbar { flex-direction:row; gap:18px; padding:7px 0; }
.reader-fullscreen .reading-room { padding-top:9px; padding-bottom:12px; }
@media (min-width:760px) and (min-height:560px) {
  .reader { width:min(100%,1240px,calc((100svh - 156px) * 1.408)); }
  .reader-fullscreen .reader { width:min(100%,1480px,calc((100svh - 105px) * 1.408)); }
}
@media (max-width:759px), (max-height:559px) {
  .topbar { gap:4px; padding:9px 0 6px; }
  .top-actions .quiet { min-height:40px; padding-inline:8px; }
  .reader-fullscreen .topbar .brand { display:none; }
  .reader-fullscreen .reader:not(:has(.spread-layout)) {
    width:min(100%,470px,max(300px,calc((100svh - 153px) * .704)));
  }
}

/* A fixed reading viewport. The book is sized from the room left by the toolbar. */
html,body { height:100%; overflow:hidden; overscroll-behavior:none; }
body { height:100dvh; min-height:0; }
.topbar,.reader-fullscreen .topbar {
  display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  grid-template-areas:"contents brand fullscreen" ". sound .";
  column-gap:6px; row-gap:0; width:min(calc(100% - 24px),1240px);
  padding:5px 0 3px;
}
.topbar .brand,.reader-fullscreen .topbar .brand {
  display:flex; grid-area:brand; justify-self:center; white-space:nowrap;
  gap:7px; font-size:clamp(12px,2.9vw,16px);
}
.topbar .brand-symbol { font-size:1.3em; }
.top-actions { display:contents; }
#contents { grid-area:contents; justify-self:start; }
#fullscreen { grid-area:fullscreen; justify-self:end; }
#sound { grid-area:sound; justify-self:center; }
.top-actions .quiet { min-height:34px; padding-inline:7px; white-space:nowrap; }
#sound-label { display:inline; }
.reading-room,.reader-fullscreen .reading-room {
  flex:1 1 0; min-height:0; box-sizing:border-box; container-type:size;
  padding:8px clamp(12px,3vw,36px) 12px;
}
.reader,.reader-fullscreen .reader {
  width:min(100%,470px,calc((100cqh - 101px) * .704)); min-width:0;
}
.reader:has(.spread-layout),.reader-fullscreen .reader:has(.spread-layout) {
  width:min(100%,680px,calc((100cqh - 101px) * 1.408)); min-width:0;
}
.reader-controls { height:44px; margin-top:9px; }
.layout-mode { margin-top:4px; min-height:40px; }
.book-wrap:not(.spread-layout)::before { inset:1px 0 -5px; border-radius:3px 6px 6px 3px; }
@media (min-width:760px) and (min-height:560px) {
  .reader:has(.spread-layout),.reader-fullscreen .reader:has(.spread-layout) {
    width:min(100%,1480px,calc((100cqh - 57px) * 1.408));
  }
}
@media (max-width:440px) {
  #fullscreen-label { max-width:65px; white-space:normal; text-align:right; line-height:1.08; }
  .top-actions .quiet { font-size:11px; padding-inline:3px; gap:4px; }
  .topbar .brand { gap:4px; }
}

/* The back cover follows the right and bottom edges as one continuous rim. */
.book-wrap:not(.spread-layout)::before {
  inset:2px -5px -5px 0;
  border:0 solid #603044;
  border-right-width:3px;
  border-bottom-width:3px;
  border-radius:3px 7px 7px 3px;
  background:repeating-linear-gradient(0deg,#c3a477 0 1px,#e4cda8 1px 3px);
  box-shadow:0 4px 9px #10091165;
}
