/* Chapters III/IV inherit the manuscript typography and prologue rhythm. */
.realm-prologue,.asgard-sequence,.asgard-tour{position:fixed;inset:0;z-index:7;overflow:hidden;background:#04070b;visibility:hidden;opacity:0;transition:opacity 1.5s ease,visibility 0s 1.5s;color:#f2eadc}
.realm-prologue.is-visible,.asgard-sequence.is-visible,.asgard-tour.is-visible{visibility:visible;opacity:1;transition-delay:0s}
.realm-prologue.is-leaving,.asgard-sequence.is-leaving{opacity:0;transition:opacity .9s ease;pointer-events:none}
.realm-backdrop{position:absolute;inset:-3%;background-position:center;background-size:cover;filter:blur(22px) brightness(.38)}
.realm-artframe{position:absolute;left:50%;top:50%;width:max(100vw,177.684vh);height:max(100vh,56.28vw);transform:translate(-50%,-50%)}
.realm-artframe>img{display:block;width:100%;height:100%;object-fit:fill}
.family-prologue .realm-artframe{animation:familyDrift 12s ease-in-out infinite alternate;animation-play-state:paused}
.family-prologue.is-visible .realm-artframe{animation-play-state:running}
.family-light-flow{position:absolute;inset:0;background:radial-gradient(ellipse at 49% 8%,#ffe7ad60,transparent 18%),radial-gradient(ellipse at 31% 63%,#e6ad4220,transparent 27%);mix-blend-mode:screen;animation:familyGlow 5s ease-in-out infinite}
.family-prologue:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#06091045,transparent 24%,transparent 67%,#070b14db)}
.family-caption{position:absolute;z-index:2;bottom:7%;left:6%;text-shadow:0 2px 18px #000}
.family-caption small,.asgard-caption small{font:10px Georgia,serif;letter-spacing:.32em;color:#dbc899}
.family-caption h2{font:clamp(27px,2.7vw,46px)/1.4 'Orbit Court',var(--book-serif);font-weight:400;margin:13px 0 9px;letter-spacing:.06em}
.family-caption p{font:clamp(18px,1.4vw,24px)/1.5 'Orbit Court',var(--book-serif);margin:0;color:#e8ddc9}
.realm-dust{position:absolute;inset:0;pointer-events:none;z-index:2}
.realm-dust i{position:absolute;left:var(--x);top:var(--y);width:2px;height:2px;background:#ead8a9;box-shadow:0 0 9px #ffd78b;border-radius:50%;animation:realmDust 8s ease-in-out var(--delay) infinite}
.realm-prologue:not(.is-visible) *,.asgard-sequence:not(.is-visible) *{animation-play-state:paused}
.asgard-sequence{transition:opacity .35s ease,visibility 0s .35s;background:#010205}
.asgard-night{position:absolute;inset:0;background:radial-gradient(ellipse at 40% 20%,#11203160,transparent 65%),#010205}
.asgard-lightning,.asgard-flash{position:absolute;inset:0;pointer-events:none}
.asgard-lightning{z-index:2}.asgard-lightning svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke-linejoin:round;stroke-linecap:round}
.bolt-aura{stroke:#348bef;filter:blur(9px);opacity:.7}.bolt-core{stroke:#edfaff;filter:drop-shadow(0 0 4px #88bfff)}.bolt-branches{stroke:#9cd5ff;filter:drop-shadow(0 0 3px #5cbaff)}
.asgard-flash{background:#bbdbff;opacity:0;z-index:3}
.asgard-prologue-art{position:absolute;inset:0;opacity:0;transition:opacity 1.5s cubic-bezier(.4,0,.2,1)}
.asgard-sequence.is-art .asgard-prologue-art{opacity:1}
.asgard-sequence .throne-controls{z-index:5}
.asgard-caption{position:absolute;bottom:7%;left:6%;z-index:3;text-shadow:0 2px 14px #000}
.asgard-caption strong{display:block;font:clamp(28px,2.8vw,48px)/1.5 'Orbit Court',var(--book-serif);margin-top:10px}
.asgard-electric-haze{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 13% 55% at 50% 36%,#8fd1ff1c,transparent);animation:familyGlow 3.8s ease-in-out infinite}
.asgard-tour{z-index:8;transition:opacity .65s ease,visibility 0s .65s}
.asgard-tour-slide,.asgard-slides{position:absolute;inset:0}
.asgard-tour-shade{position:absolute;inset:0;background:linear-gradient(#02060b88,transparent 22%,transparent 58%,#02060be0);pointer-events:none}
.asgard-tour-top{position:absolute;inset:24px 3% auto;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:20px}
.asgard-tour-top>span{font:9px Georgia,serif;letter-spacing:.25em;color:#e0e5ea99}
#gravityBook .asgard-tour button{color:#f1e9d8;background:transparent;border:0;cursor:pointer;font:17px/1.4 'Orbit Court',var(--book-serif);padding:10px 0;text-shadow:0 1px 10px #000}
.asgard-tour-copy{position:absolute;z-index:2;bottom:100px;left:5%;width:min(440px,43vw);text-shadow:0 1px 14px #000,0 1px 3px #000}
.tour-kicker{font:12px 'Orbit Court',var(--book-serif);letter-spacing:.2em;color:#d6d6ca}
.asgard-tour-copy h2{font:clamp(35px,3.4vw,60px)/1.25 'Orbit Court',var(--book-serif);font-weight:400;letter-spacing:.08em;margin:16px 0 10px;outline:none}
.asgard-tour-copy>em{display:block;font:11px/1.5 Georgia,serif;letter-spacing:.15em;color:#dbd4c3}
.asgard-tour-copy>p{font:clamp(17px,1.3vw,22px)/1.7 'Orbit Court',var(--book-serif);color:#dbdfde;margin:18px 0 8px}
.tour-source{color:#bec8d2a8;font-size:10px;text-decoration:none;letter-spacing:.12em}
.asgard-tour-nav{position:absolute;bottom:26px;left:5%;right:5%;display:flex;align-items:center;gap:22px;z-index:3;border-top:1px solid #d0d5db2b;padding-top:12px}
#gravityBook .asgard-tour-nav>.tour-prev,#gravityBook .asgard-tour-nav>.tour-next{font:24px Georgia,serif;width:46px;min-height:44px}
#gravityBook .asgard-tour button:disabled{opacity:.25;cursor:default}
.tour-count{font:11px Georgia,serif;letter-spacing:.2em;margin-left:auto;color:#e0e8f0ba}
.tour-dots{display:flex;align-items:center;gap:12px}
#gravityBook .tour-dots button{width:26px;min-height:40px;position:relative}
.tour-dots button:after{content:'';position:absolute;left:4px;right:4px;top:18px;height:1px;background:#ffffff4a;transition:background .3s}
.tour-dots button[aria-current='step']:after{background:#fff;box-shadow:0 0 8px #f8dc9680;height:2px}
.realm-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;fill:none;stroke:#edf4ff99;stroke-width:.055;stroke-dasharray:.3 .3;filter:drop-shadow(0 1px 2px #000)}
.realm-leaders circle{fill:#f0f4ff;stroke:none}
.realm-callout{position:absolute;transform:translateX(-50%);text-align:center;text-shadow:0 1px 5px #000,0 0 15px #000;white-space:nowrap;color:#f6f3e8;pointer-events:none}
.realm-callout strong{display:block;font:clamp(18px,1.65vw,28px)/1.3 'Orbit Court',var(--book-serif);font-weight:400;letter-spacing:.07em}
.realm-callout em{display:block;font:italic clamp(9px,.85vw,14px)/1.6 Georgia,serif;color:#e2e7ee}
.is-unlabelled .realm-callout,.is-unlabelled .realm-leaders{opacity:0}
.tour-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font:20px 'Orbit Court',var(--book-serif);text-shadow:0 2px 8px #000}
.grimoire-family-note{display:none;position:absolute;top:64%;left:50%;transform:translateX(-50%);width:min(85%,650px);text-align:center;font:21px/1.8 'Orbit Court',var(--book-serif);color:#cfc8b7}
.grimoire-tour-entry{display:none;position:absolute;top:68%;left:50%;transform:translateX(-50%)}
#gravityBook[data-chapter='family-light'] .grimoire-family-note{display:block}
#gravityBook[data-chapter='god-of-thunder'] .grimoire-tour-entry{display:block;padding:14px 30px;border:1px solid #9bb7d647;background:#8db0d609;color:#e4ebf4;font:22px 'Orbit Court',var(--book-serif);letter-spacing:.1em;clip-path:polygon(9px 0,calc(100% - 9px) 0,100% 9px,100% calc(100% - 9px),calc(100% - 9px) 100%,9px 100%,0 calc(100% - 9px),0 9px)}
#gravityBook[data-chapter='family-light'] .grimoire-replay,#gravityBook[data-chapter='god-of-thunder'] .grimoire-replay{display:block}
#gravityBook .asgard-tour button:focus-visible,#gravityBook .grimoire-tour-entry:focus-visible{outline:1px solid #f1e6c8;outline-offset:5px}
@keyframes familyDrift{from{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-50%) scale(1.025)}}
@keyframes familyGlow{0%,100%{opacity:.35}50%{opacity:.85}}
@keyframes realmDust{0%,100%{opacity:0;transform:translateY(0)}35%{opacity:.65}90%{opacity:0;transform:translateY(-40px)}}
@media (max-width:700px), (orientation:portrait) {
 .realm-artframe{width:100vw;height:56.28vw;top:41%}
 .family-caption{left:7%;bottom:15%;right:7%}.family-caption h2{font-size:27px}.family-caption p{font-size:18px}
 .asgard-caption{bottom:18%;left:7%}.asgard-caption strong{font-size:32px}
 .asgard-tour-top{inset:16px 5% auto;gap:8px}.asgard-tour-top>span{display:none}
 #gravityBook .asgard-tour button{font-size:15px}
 .asgard-tour-copy{left:7%;bottom:105px;width:86%;}.asgard-tour-copy h2{font-size:32px;margin:9px 0 7px}.asgard-tour-copy>p{font-size:17px;line-height:1.55;margin:12px 0 5px}.asgard-tour-copy>em{font-size:9px}
 .asgard-tour .realm-artframe{top:34%}.asgard-tour-shade{background:linear-gradient(#04070b66,transparent 20%,transparent 45%,#04070bf0 68%)}
 .realm-callout strong{font-size:11px}.realm-callout em{font-size:6px}.realm-leaders{stroke-width:.12}
 .asgard-tour-nav{gap:10px;bottom:20px}.tour-dots{gap:4px}.tour-count{font-size:9px}
 .grimoire-family-note{font-size:18px;top:63%}
 #gravityBook[data-chapter='god-of-thunder'] .grimoire-tour-entry{font-size:20px;white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){.realm-prologue *,.asgard-sequence *{animation:none!important}.realm-prologue,.asgard-sequence,.asgard-prologue-art,.asgard-tour{transition:none}}
body.motion-paused .realm-prologue *,body.motion-paused .asgard-sequence *{animation-play-state:paused}
