.olympus-prologue { position:fixed;inset:0;z-index:6;background:#05070c;visibility:hidden;opacity:0;overflow:hidden;transition:opacity 1.5s ease,visibility 0s 1.5s; }
.olympus-prologue.is-visible { visibility:visible;opacity:1;transition-delay:0s; }
.olympus-prologue.is-leaving { opacity:0;transition:opacity .9s ease;pointer-events:none; }
.olympus-scene { position:absolute;inset:0;transition:opacity 1.6s ease; }
.olympus-inheritance { opacity:0; }
.olympus-prologue.is-second .olympus-council { opacity:0; }
.olympus-prologue.is-second .olympus-inheritance { opacity:1; }
.olympus-backdrop { position:absolute;inset:-20px;background:var(--art) center/cover;filter:blur(18px) brightness(.24); }
.olympus-artboard { position:absolute;left:50%;top:50%;width:max(100vw,177.778svh);aspect-ratio:16/9;transform:translate(-50%,-50%); }
.olympus-artboard>img { position:absolute;inset:0;width:100%;height:100%;object-fit:fill; }
.olympus-hero-breath { position:absolute;inset:0;background:var(--art) center/100% 100%;mask-image:radial-gradient(ellipse 13% 24% at 53% 65%,#000 65%,transparent);animation:olympusHeroBreath 5s ease-in-out infinite; }
.olympus-inheritance .olympus-hero-breath { mask-image:radial-gradient(ellipse 25% 40% at 48% 44%,#000 65%,transparent); }
.olympus-council .olympus-hero-breath { display:none; }
.olympus-connectors { position:absolute;inset:0;width:100%;height:100%;overflow:visible; }
.olympus-connector { fill:none;stroke:#f5f5eff0;stroke-width:.07;filter:drop-shadow(0 1px 1px #101d31); }
.olympus-line-reveal { stroke:#fff;stroke-width:.3;stroke-dasharray:1;stroke-dashoffset:1;animation:olympusDraw 1.1s var(--delay) ease both; }
.olympus-line-dashes { stroke-width:.09;stroke-dasharray:.25 .6;opacity:.85; }
.olympus-connector circle { fill:#f5f5ef;stroke:none;opacity:0;animation:olympusName 1s var(--delay) ease both; }
.olympus-callout { position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:9%;text-align:center;color:#fffdf7;text-shadow:0 1px 3px #102137,0 0 7px #102137,0 0 14px #172d45;opacity:0;animation:olympusName 1.2s var(--delay) ease both,olympusNameBreath 5s calc(var(--delay) + 1.2s) ease-in-out infinite; }
.olympus-callout small { display:block;font:clamp(10px,.66vw,13px)/1.4 'Orbit Court',var(--book-serif);letter-spacing:.06em; }
.olympus-callout strong { display:block;margin:3px 0;font:clamp(15px,1.1vw,22px)/1.1 'Orbit Court',var(--book-serif);white-space:nowrap; }
.olympus-callout em { display:block;font:italic clamp(9px,.64vw,13px)/1.3 Georgia,serif; }
.olympus-callout.is-principal { width:15%; }
.olympus-callout.is-principal strong { font-size:clamp(23px,1.8vw,36px); }
.olympus-callout.is-principal small { font-size:clamp(11px,.85vw,17px); }
.olympus-callout.is-principal em { font-size:clamp(12px,.8vw,16px); }
.olympus-inheritance-caption { position:absolute;left:5%;bottom:12%;color:#fff6de;text-shadow:0 2px 8px #102137,0 0 22px #14293c; }
.olympus-inheritance-caption small { font:11px Georgia,serif;letter-spacing:.12em; }
.olympus-inheritance-caption strong { display:block;font:clamp(30px,3.3vw,60px) 'Orbit Court',var(--book-serif); }
.olympus-inheritance-caption em { display:block;font:italic 18px Georgia,serif; }
.olympus-inheritance-caption p { font:clamp(17px,1.4vw,26px) 'Orbit Court',var(--book-serif); }
.olympus-magic { position:absolute;inset:0;pointer-events:none; }
.olympus-aura { position:absolute;inset:0;background:radial-gradient(ellipse at 51% 37%,#ffd99624,transparent 45%);animation:olympusRadiance 5s ease-in-out infinite; }
.olympus-magic b { position:absolute;left:var(--x);top:var(--y);width:2px;height:2px;background:#ffe3a2;box-shadow:0 0 8px #fff0c1;border-radius:50%;opacity:0;animation:olympusMote 6s var(--delay) ease-in-out infinite; }
#gravityBook .olympus-prologue .throne-controls button { font:16px 'Orbit Court',var(--book-serif);color:#fff8e8;text-shadow:0 1px 8px #142336,0 0 16px #142336;border:0;background:transparent;padding:12px 0; }
.olympus-mobile-cast { display:none; }
.olympus-prologue:not(.is-visible) * { animation-play-state:paused; }
.olympus-prologue:not(.is-visible) .olympus-callout,.olympus-prologue:not(.is-visible) .olympus-line-reveal,.olympus-prologue:not(.is-visible) .olympus-connector circle { animation:none; }
#gravityBook.is-olympus-prologue .grimoire-space-titlegroup { visibility:hidden; }
@keyframes olympusDraw { from{stroke-dashoffset:1} to{stroke-dashoffset:0} }
@keyframes olympusName { from{opacity:0} to{opacity:.9} }
@keyframes olympusNameBreath { 0%,100%{opacity:.9} 50%{opacity:.66} }
@keyframes olympusHeroBreath { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes olympusRadiance { 0%,100%{opacity:.25} 50%{opacity:.9} }
@keyframes olympusMote { 0%,100%{opacity:0;transform:translateY(0)} 35%{opacity:.7} 90%{opacity:0;transform:translate3d(16px,-90px,0)} }
@media (max-width:700px), (orientation:portrait) {
  .olympus-artboard { width:100vw; }
  .olympus-council .olympus-artboard { top:29%;transform:translate(-50%,-50%); }
  .olympus-callout:not(.is-principal),.olympus-connector:not(.is-principal) { display:none; }
  .olympus-callout.is-principal { width:25%; }
  .olympus-callout.is-principal strong { font-size:17px; }
  .olympus-callout.is-principal small,.olympus-callout.is-principal em { font-size:8px; }
  .olympus-callout.is-principal:nth-last-child(13) { left:32%;top:11%; }
  .olympus-mobile-cast { display:grid;position:absolute;top:48%;left:7%;right:7%;grid-template-columns:repeat(3,1fr);gap:14px 8px;color:#eee2c9;transition:opacity 1s ease; }
  .olympus-mobile-cast span { text-align:center; }
  .olympus-mobile-cast small { display:block;font:10px 'Orbit Court',var(--book-serif);opacity:.7; }
  .olympus-mobile-cast strong { display:block;font:16px 'Orbit Court',var(--book-serif);margin:3px 0; }
  .olympus-mobile-cast em { display:block;font:italic 10px Georgia,serif;opacity:.8; }
  .is-second .olympus-mobile-cast { opacity:0;pointer-events:none; }
  .olympus-inheritance .olympus-artboard { width:178vw;top:39%; }
  .olympus-inheritance-caption { left:8%;bottom:13%; }
  .olympus-inheritance-caption strong { font-size:36px; }
  .olympus-inheritance-caption p { font-size:20px; }
}
/* The image and its callouts share one undistorted cover canvas. */
@media(orientation:landscape) {
  .olympus-prologue .olympus-artboard { width:max(100vw,177.778svh);top:50%;transform:translate(-50%,-50%); }
  .olympus-prologue .olympus-inheritance .olympus-artboard { top:0;transform:translateX(-50%); }
}
#gravityBook.instant-turn .olympus-prologue,#gravityBook.instant-turn .olympus-scene { transition:none; }
#gravityBook.instant-turn .olympus-prologue * { animation:none; }
#gravityBook.instant-turn .olympus-callout { opacity:.9; }
#gravityBook.instant-turn .olympus-line-reveal { stroke-dashoffset:0; }
@media(prefers-reduced-motion:reduce) { .olympus-prologue,.olympus-scene { transition:none; }.olympus-prologue * { animation:none; }.olympus-callout { opacity:.9; }.olympus-line-reveal { stroke-dashoffset:0; } }
