:root{--cream:#f1e6c6;--cream-2:#e8d9ac;--cream-edge:#d8c184;--ink:#221a10;--ink-soft:#4a3826;--gold:#c9932f;--blue:#1c3f8f;--red:#a32020;--green:#2f5c3f;--rose:#b04a68;--slate:#4c5a74;--ochre:#b9762a;--stage-1:#1d1d1d;--stage-2:#000;--f-display:"Cinzel", serif;--f-blackletter:"UnifrakturMaguntia", cursive;--f-body:"EB Garamond", serif;--f-caption:"Cormorant Garamond", serif;--page-w:clamp(230px, 42vw, 460px);--page-h:calc(var(--page-w) * 1.5);--book-w:calc(var(--page-w) * 2)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(ellipse at 50% 15%, var(--stage-1) 0%, transparent 60%), linear-gradient(180deg, var(--stage-1) 0%, var(--stage-2) 100%);min-height:100vh;font-family:var(--f-body);color:var(--cream);overflow-x:hidden}.stage{perspective:2600px;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:6vh 2vw 4vh;display:flex;position:relative}.stage-title{font-family:var(--f-display);letter-spacing:.35em;color:var(--gold);text-transform:uppercase;opacity:.85;text-align:center;margin-bottom:clamp(1.2rem,3vh,2.2rem);font-size:clamp(.7rem,1.6vw,.95rem)}.book-wrap{width:var(--book-w);transform-style:preserve-3d;-webkit-transform-style:preserve-3d;position:relative}.book{width:var(--book-w);height:var(--page-h);transform-style:preserve-3d;-webkit-transform-style:preserve-3d;margin:0 auto;position:relative}.spine{z-index:60;pointer-events:none;background:linear-gradient(90deg,#0000,#0000004d 45%,#0006 55%,#0000);width:14px;margin-left:-7px;position:absolute;top:0;bottom:0;left:50%}.tray{width:var(--page-w);height:var(--page-h);background:var(--cream);border-radius:2px;position:absolute;top:0}.tray-left{left:0}.tray-right{left:50%}.book.closed .tray{opacity:0}.leaf{width:var(--page-w);height:var(--page-h);transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transform-origin:0;will-change:transform;transition:transform .95s cubic-bezier(.45,.06,.18,1);position:absolute;top:0;left:50%;transform:rotateY(0)}.leaf.dragging{transition:none}.leaf-face{background:var(--cream);backface-visibility:hidden;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;border-radius:1px;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 0 1px #0000001f}.leaf-face.recto{transform:rotateY(0)translateZ(1px)}.leaf-face.verso{transform:rotateY(180deg)translateZ(1px)}.leaf-face.recto:after,.tray-right:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000001a,#0000 6% 92%,#785a2d1a);position:absolute;inset:0}.leaf-face.verso:after,.tray-left:after{content:"";pointer-events:none;background:linear-gradient(90deg,#785a2d1a,#0000 8% 94%,#0000001a);position:absolute;inset:0}.leaf .turn-shade{opacity:0;pointer-events:none;z-index:5;background:linear-gradient(90deg,#0000006b,#0000 60%);position:absolute;inset:0}.leaf.flipping .turn-shade{animation:.95s cubic-bezier(.45,.06,.18,1) shade-sweep}@keyframes shade-sweep{0%{opacity:0}45%{opacity:.5}to{opacity:0}}.beads{justify-content:center;gap:.45em;margin:0 0 .6em;display:flex}.beads span{border:2px solid var(--ink);border-radius:50%;width:9px;height:9px}.p-recto{z-index:2;height:100%;color:var(--ink);flex-direction:column;padding:8% 9% 7%;display:flex;position:relative}.p-kicker{font-family:var(--f-display);letter-spacing:.28em;text-transform:uppercase;margin:0 0 .3em;font-size:clamp(.55rem,1vw,.68rem)}.p-numeral{font-family:var(--f-blackletter);margin:0 0 .1em;font-size:clamp(1.6rem,3.6vw,2.3rem);line-height:1}.p-title{font-family:var(--f-display);color:var(--ink);margin:0 0 .1em;font-size:clamp(1.1rem,2vw,1.55rem);font-weight:700;line-height:1.1}.p-latin{font-family:var(--f-caption);color:var(--ink-soft);border-bottom:3px solid var(--ink);margin:0 0 .55em;padding-bottom:.5em;font-size:clamp(.72rem,1.2vw,.85rem);font-style:italic}.p-verse{font-family:var(--f-caption);margin:0 0 .8em;font-size:clamp(.72rem,1.3vw,.88rem);font-style:italic}.p-body{color:var(--ink-soft);flex:1;font-size:clamp(.78rem,1.35vw,.95rem);line-height:1.55;overflow:auto}.dropcap{float:left;font-family:var(--f-blackletter);padding:.04em .1em 0 0;font-size:2.9em;line-height:.78}.p-foot{font-family:var(--f-caption);letter-spacing:.04em;color:var(--ink-soft);justify-content:space-between;align-items:center;margin-top:.7em;font-size:clamp(.62rem,1vw,.72rem);font-style:italic;display:flex}.p-verso{z-index:2;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:9% 8%;display:flex;position:relative}.frame{border:4px solid var(--ink);background:var(--cream-2);border-radius:2px;width:100%;padding:6px;position:relative}.frame .corner{border:3px solid var(--ink);width:16px;height:16px;position:absolute}.frame .corner.tl{border-bottom:none;border-right:none;top:-9px;left:-9px}.frame .corner.tr{border-bottom:none;border-left:none;top:-9px;right:-9px}.frame .corner.bl{border-top:none;border-right:none;bottom:-9px;left:-9px}.frame .corner.br{border-top:none;border-left:none;bottom:-9px;right:-9px}.miniature{aspect-ratio:4/3;cursor:pointer;border:2px solid var(--ink);justify-content:center;align-items:center;width:100%;text-decoration:none;display:flex;position:relative;overflow:hidden}.miniature.not-ready{cursor:default;filter:grayscale(55%);opacity:.72}.miniature.has-thumb{background-position:50%;background-size:cover}.miniature .veil{background:#140f0800;transition:background .2s;position:absolute;inset:0}.miniature:not(.not-ready):hover .veil{background:#140f082e}.miniature .icon-wrap{z-index:1;width:62%;height:62%;position:relative}.soon-badge{z-index:2;background:var(--ink);color:var(--cream);font-family:var(--f-display);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--cream);white-space:nowrap;border-radius:2px;padding:.35em .7em;font-size:clamp(.5rem,1vw,.62rem);position:absolute;bottom:8%;left:50%;translate:-50%}.p-recto.not-ready .p-title{color:var(--ink-soft)}.p-recto.not-ready .p-body{opacity:.75}.toc button.not-ready{opacity:.55}.toc button.not-ready .l{letter-spacing:.06em;text-transform:uppercase;font-size:.72em;font-style:normal}.play{z-index:2;aspect-ratio:1;background:var(--gold);border:3px solid var(--ink);border-radius:50%;justify-content:center;align-items:center;width:15%;min-width:32px;display:flex;position:absolute}.play:after{content:"";border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent var(--ink);margin-left:3px}.p-caption{text-align:center;font-family:var(--f-caption);color:var(--cream);margin-top:.9em;font-size:clamp(.7rem,1.2vw,.85rem);font-style:italic}.p-caption small{letter-spacing:.18em;text-transform:uppercase;font-style:normal;font-family:var(--f-display);color:var(--gold);opacity:.9;margin-top:.25em;font-size:.62em;display:block}.cover{text-align:center;background:var(--cream);height:100%;color:var(--ink);flex-direction:column;justify-content:center;align-items:center;padding:9% 8%;display:flex;position:relative}.cover-frame{border:3px solid var(--ink);position:absolute;inset:10px}.cover-frame:before{content:"";border:1px solid var(--gold);position:absolute;inset:6px}.cover h1{font-family:var(--f-display);letter-spacing:.1em;text-transform:uppercase;margin:.5em 0 .25em;font-size:clamp(1.05rem,2.4vw,1.5rem);font-weight:700;line-height:1.25}.cover .sub{font-family:var(--f-caption);color:var(--ink-soft);margin-bottom:1.1em;font-size:clamp(.68rem,1.3vw,.85rem);font-style:italic}.cover .hint{font-family:var(--f-display);letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft);margin-top:1em;font-size:.6rem}.cover-icons{flex-wrap:wrap;justify-content:center;gap:.4em;max-width:80%;display:flex}.cover-icons svg{width:15%;min-width:26px}.plate{text-align:center;height:100%;color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;padding:12% 10%;display:flex}.plate .glyph-mid{font-family:var(--f-blackletter);color:var(--red);margin-bottom:.3em;font-size:2.3rem}.plate p{font-family:var(--f-caption);margin:0;font-size:.95rem;font-style:italic;line-height:1.7}.plate .rule{background:var(--ink);width:40%;height:2px;margin:1em auto}.toc{height:100%;color:var(--ink);flex-direction:column;padding:9% 8%;display:flex}.toc h2{font-family:var(--f-display);letter-spacing:.2em;text-transform:uppercase;text-align:center;border-bottom:3px solid var(--ink);margin:0 0 .7em;padding-bottom:.55em;font-size:clamp(.85rem,1.6vw,1.05rem)}.toc ol{flex:1;margin:0;padding:0;list-style:none;overflow:auto}.toc li{margin:0 0 .55em}.toc button{all:unset;cursor:pointer;width:100%;font-family:var(--f-caption);color:var(--ink-soft);align-items:baseline;gap:.6em;font-size:clamp(.76rem,1.3vw,.9rem);display:flex}.toc button .n{font-family:var(--f-blackletter);min-width:1.4em;font-size:1.25em}.toc button .t{border-bottom:1px dotted var(--ink-soft);flex:1;padding-bottom:.15em}.toc button .l{opacity:.7;font-size:.85em;font-style:italic}.arrow{border:2px solid var(--gold);background:var(--stage-1);width:2.6rem;height:2.6rem;color:var(--gold);font-family:var(--f-display);cursor:pointer;z-index:3000;border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;transition:background .2s,border-color .2s;display:flex;position:absolute;top:50%;translate:0 -50%}.arrow:hover{background:var(--stage-2);border-color:var(--cream)}.arrow:disabled{opacity:.25;cursor:default}.arrow.prev{left:-1.3rem}.arrow.next{right:-1.3rem}.corner-grab{z-index:75;cursor:grab;touch-action:none;width:34%;height:34%;position:absolute;bottom:0;right:0}@media (width<=640px){.arrow.prev{left:-.6rem}.arrow.next{right:-.6rem}.stage{padding:5vh 3vw 3vh}}
