/* Celestial motion, aged metal, and illuminated manuscript details. */
:root{--gold:#e5c68c;--line:#d6b87645;--muted:#bfc3c5}
body{background:radial-gradient(ellipse at 100% 55%,#18302c20,transparent 45%),#080c10}
.hero-art{inset:-9%;animation:galaxy-drift 46s ease-in-out infinite alternate;transform-origin:65% 45%;will-change:transform}
.hero-art:before{background:none}
.hero:after{background:linear-gradient(90deg,#070c11f2,#070c11c9 28%,#070c1130 62%,#070c1110),linear-gradient(0deg,#080c10,transparent 35%,#070c1125);z-index:-2}
@keyframes galaxy-drift{from{transform:translate3d(-2%,1%,0) scale(1.02) rotate(-1deg)}to{transform:translate3d(3%,-2%,0) scale(1.09) rotate(1.5deg)}}
.site-header{background:linear-gradient(180deg,#070b10e8,#070b1060);border-bottom-color:#d6b8763d;box-shadow:0 1px 0 #000,0 12px 45px #0002}
.brand img{box-shadow:0 0 0 1px #d6b87645,0 0 28px #d6b87618}
.brand{color:#f2e7cf;text-shadow:0 2px 12px #000}
.nav-links a:not(.nav-cta),.site-footer>div a{position:relative}
.nav-links a:not(.nav-cta):after,.site-footer>div a:after{content:'';position:absolute;bottom:5px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#e5c68c,transparent);transform:scaleX(0);transition:transform .3s}
.nav-links a:hover:after,.nav-links a:focus-visible:after,.site-footer>div a:hover:after{transform:scaleX(1)}
.button,.site-header nav .nav-cta,.menu-toggle,.motion-toggle{border:1px solid #d3b47970;border-radius:2px;background:linear-gradient(135deg,#22302c,#0b1116 55%,#182321);color:#ead6af;box-shadow:inset 0 0 0 3px #050a0d,inset 0 0 0 4px #c7a3662b,0 8px 24px #0005;transition:box-shadow .3s,background .3s,transform .3s,border-color .3s}
.button{font-family:var(--serif);letter-spacing:.06em;padding:16px 28px;font-size:.82rem}
.button:before{content:'';width:7px;height:7px;flex:none;border:1px solid currentColor;transform:rotate(45deg);margin-right:12px;opacity:.8}
.button-gold{background:linear-gradient(130deg,#b48d4b,#edcf91 45%,#c8a563);color:#16180f;border-color:#f4d6a0;box-shadow:inset 0 0 0 3px #8a69395c,inset 0 0 0 4px #fff4d645,0 8px 28px #0006,0 0 24px #d2ad5e15;text-shadow:0 1px 0 #fff5}
.button:hover,.button:focus-visible,.nav-cta:hover,.menu-toggle:hover,.motion-toggle:hover{border-color:#f2d69f;box-shadow:inset 0 0 0 3px #050a0d,inset 0 0 0 4px #c7a36655,0 10px 28px #0008,0 0 24px #d2ad5e2a;transform:translateY(-2px)}
.button-gold:hover,.button-gold:focus-visible{box-shadow:inset 0 0 0 3px #8a69395c,inset 0 0 0 4px #fff4d675,0 10px 30px #0008,0 0 32px #d2ad5e38}
.motion-toggle{padding:8px 12px;min-height:44px}.motion-toggle[aria-pressed=true]{border-color:#8e8f83;color:#aaa}
.text-link{border-bottom:0;position:relative;padding-bottom:13px;transition:color .25s,text-shadow .25s}
.text-link:after{content:'';position:absolute;left:0;right:0;bottom:5px;height:1px;background:linear-gradient(90deg,#d6b876,transparent)}
.text-link:hover{text-shadow:0 0 18px #e5c68c77}
.book-card{border:1px solid #bfa27138;background:linear-gradient(135deg,#d6b87609,transparent 35%),linear-gradient(180deg,#18211f,#090f14);box-shadow:inset 0 0 0 4px #080c1050,0 16px 35px #0003}
.book-card:before,.book-card:after{content:'';position:absolute;width:16px;height:16px;pointer-events:none;border-color:#d6b87698;border-style:solid}
.book-card:before{left:5px;top:5px;border-width:1px 0 0 1px}.book-card:after{right:5px;bottom:5px;border-width:0 1px 1px 0}
.book-card:hover{box-shadow:inset 0 0 0 4px #080c1050,0 16px 40px #0005,0 0 26px color-mix(in srgb,var(--book-color) 12%,transparent)}
.book-detail{font-family:var(--serif);letter-spacing:.025em;background:linear-gradient(90deg,#d6b87608,transparent);padding:17px 8px;border-top-color:#d6b87655;transition:color .3s,background .3s}
.book-detail:hover{background:linear-gradient(90deg,#d6b87620,transparent);color:#ffe4b3}.book-detail span{transition:transform .35s}.book-detail:hover span{transform:rotate(90deg)}
.book-number{box-shadow:inset 0 0 0 3px #d6b87615;letter-spacing:.1em;background:#0b1116f5}
.begin-section{border-color:#d6b87666;background:radial-gradient(ellipse at 16% 50%,#71312b40,transparent 60%),linear-gradient(135deg,#1c2522,#0c1318);box-shadow:inset 0 0 0 7px #080c1066,inset 0 0 0 8px #d6b87620,0 30px 90px #0007}
.begin-section:after{content:'✦';position:absolute;top:-21px;left:calc(50% - 21px);width:42px;height:42px;text-align:center;line-height:42px;color:#e5c68c;background:#0b1116;border:1px solid #d6b87666;transform:rotate(45deg);font-size:20px;box-shadow:0 0 30px #d6b87614}
.section-heading h2,.author-copy h2{color:#f2e7cf;text-shadow:0 2px 20px #0008}
.eyebrow{color:#dfbd7b}.author-section{border-top-color:#d6b87650}.author-orbit{box-shadow:0 0 45px #d6b8760d}
.site-footer{background:linear-gradient(180deg,#101916,#05080c);border-top-color:#d6b87650}
dialog{--accent:#b66752;background:linear-gradient(135deg,#d6b8760a,transparent 32%),#0d141a;border:1px solid #dfc089a8;border-radius:3px;box-shadow:inset 0 0 0 6px #060b10,inset 0 0 0 7px #d6b87630,0 40px 120px #000d,0 0 65px color-mix(in srgb,var(--accent) 18%,transparent);scrollbar-width:thin;scrollbar-color:#89734f #0d141a}
dialog[data-edition="2"]{--accent:#65a9c6}dialog[data-edition="3"]{--accent:#c7a25e}dialog[data-edition="4"]{--accent:#66aa7c}
dialog::backdrop{background:radial-gradient(ellipse at 50% 40%,#18302c60,#030609e8 75%);backdrop-filter:blur(14px)}
dialog[open]{animation:chamber-reveal .45s cubic-bezier(.16,1,.3,1)}
dialog[open]::backdrop{animation:veil-reveal .4s ease-out}
@keyframes chamber-reveal{from{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes veil-reveal{from{opacity:0}to{opacity:1}}
.dialog-layout{position:relative}.dialog-art{position:relative;padding:90px 36px 65px;background:radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--accent) 28%,transparent),transparent 65%),linear-gradient(#090f1690,#090f16e8),url('assets/milky-way-sharp.webp') 70% center/cover;border-right:1px solid #d6b87635}
.dialog-art:before{content:'✦';position:absolute;top:25px;left:calc(50% - 15px);width:30px;color:#dfc089;font-size:26px;text-align:center;text-shadow:0 0 24px var(--accent)}
.dialog-art:after{content:'';position:absolute;inset:14px;border:1px solid #d6b87630;pointer-events:none}
.dialog-art img{box-shadow:5px 4px 0 #c5bda860,8px 6px 0 #131d21,0 25px 50px #000c;position:sticky}
.dialog-copy{padding:68px 48px 46px}.dialog-copy .eyebrow{letter-spacing:.15em;font-size:.68rem;border-bottom:1px solid #d6b87640;padding-bottom:20px;max-width:90%}
.dialog-copy h2{color:#f4e9d3;font-size:clamp(1.8rem,2.7vw,2.8rem);text-shadow:0 3px 20px #000;line-height:1.3}
.dialog-hook{border-left:2px solid #d6b87688;padding:6px 0 6px 20px;background:linear-gradient(90deg,#d6b87609,transparent);color:#eed2a0}
.dialog-close{width:46px;height:46px;border:1px solid #d6b87688;background:linear-gradient(135deg,#29332b,#080f16);box-shadow:inset 0 0 0 4px #080c10,inset 0 0 0 5px #d6b87630;transition:color .25s,box-shadow .25s;line-height:1;border-radius:2px}
.dialog-close:hover{color:#fff0cf;box-shadow:inset 0 0 0 4px #080c10,inset 0 0 0 5px #d6b87666,0 0 22px #d6b87625}
.dialog-copy .format-links{border-top:1px solid #d6b87635;padding-top:24px}.dialog-copy .button{font-size:.72rem;padding:14px 16px}.dialog-copy .button:before{margin-right:8px}
button:focus-visible,a:focus-visible{outline:2px solid #ffe0a1;outline-offset:5px}
button[aria-busy=true]{cursor:progress;opacity:.65}
@media(max-width:720px){.hero-art{inset:-8%;animation-duration:36s}.site-header{background:#090f15}.nav-links{background:linear-gradient(135deg,#1b2822fa,#080e16fa);border-bottom-color:#d6b87688;box-shadow:inset 0 0 0 5px #d6b8760d,0 25px 40px #0009}.nav-links a:not(.nav-cta):after{display:none}.motion-toggle{padding:8px;min-width:44px}.button{padding:15px 20px;letter-spacing:.025em}.button:before{margin-right:8px}.begin-section{padding-top:58px}.dialog-art{padding:64px 30px 28px;border-right:0;border-bottom:1px solid #d6b87635}.dialog-art:before{top:18px;font-size:22px}.dialog-art img{position:static;width:135px}.dialog-copy{padding:28px 24px 36px}.dialog-copy .eyebrow{font-size:.62rem;max-width:100%;padding-bottom:15px}.dialog-copy .format-links{gap:12px}.dialog-copy .button{font-size:.8rem}dialog[open]{display:grid;grid-template-columns:minmax(0,1fr)}.dialog-layout{grid-area:1/1;width:100%;min-width:0}.dialog-close{grid-area:1/1;position:sticky;top:12px;float:none;align-self:start;justify-self:end;margin:12px;z-index:3}.book-detail{font-size:.75rem;padding:15px 4px}}
@media(prefers-reduced-motion:reduce){.hero-art{animation:none;will-change:auto}dialog[open],dialog[open]::backdrop{animation:none}}
.motion-paused .hero-art,.hero-offscreen .hero-art{animation-play-state:paused!important}
/* A stable outer chamber; only its contents scroll. */
html{scrollbar-gutter:stable}
dialog,dialog[open]{display:block;overflow:hidden;max-height:90svh}
dialog:not([open]){display:none}
.dialog-layout{max-height:calc(90svh - 2px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#89734f #0d141a;grid-area:auto}
.dialog-close{position:absolute;top:16px;right:16px;float:none;margin:0;z-index:4}
dialog:before{content:'';position:absolute;top:1px;right:8px;width:68px;height:76px;z-index:3;pointer-events:none;background:linear-gradient(#0d141a 80%,transparent)}
.dialog-copy .eyebrow{max-width:calc(100% - 50px)}
@media(max-width:720px){.dialog-close{position:absolute;top:12px;right:12px;grid-area:auto;margin:0}.dialog-layout{display:grid;grid-template-columns:minmax(0,1fr)}.dialog-copy .eyebrow{max-width:100%}.dialog-art{padding-top:68px}}
.dialog-toolbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:9px 16px 9px 24px;border-bottom:1px solid #d6b87630;background:#0d141a;position:relative;z-index:4}
.dialog-toolbar>span{font-family:var(--serif);font-size:.7rem;letter-spacing:.15em;color:#d6b876}
.dialog-toolbar .dialog-close{position:static;margin:0;width:44px;height:44px;flex:none}
dialog:before{display:none}
.dialog-layout{max-height:calc(90svh - 68px)}
.dialog-copy{padding-top:36px}.dialog-art{padding-top:65px}.dialog-art:before{top:15px}.dialog-copy .eyebrow{max-width:100%}
@media(max-width:720px){.dialog-copy{padding-top:26px}.dialog-art{padding-top:54px}.dialog-toolbar{padding-left:24px}}
