/* First-chapter cinematic prologue; native text shares the book's handwritten face. */
@font-face { font-family:'Orbit Court'; src:url('assets/grimoire/court-manuscript.woff?v=17') format('woff'); font-weight:400; font-display:swap; }
.throne-prologue { position:fixed; inset:0; z-index:6; background:#040a17; visibility:hidden; opacity:0; overflow:hidden; transition:opacity 1.5s ease,visibility 0s 1.5s; }
.throne-prologue.is-visible { visibility:visible; opacity:1; transition-delay:0s; }
.throne-prologue.is-leaving { opacity:0; transition:opacity .85s ease; pointer-events:none; }
.throne-tableau { position:absolute; inset:0; overflow:hidden; }
.throne-prologue .throne-tableau * { animation-play-state:paused; }
.throne-prologue.is-visible .throne-tableau * { animation-play-state:running; }
.throne-hall,.throne-sovereign { position:absolute; inset:0; background:url('assets/grimoire/throne-hall-v1-4k.webp') center / 100% 100% no-repeat; }
.throne-hall::after { content:""; position:absolute; inset:0; background:linear-gradient(#02091d26,transparent 32%,#01071820); }
.throne-sovereign { mask-image:radial-gradient(ellipse 16% 26% at 50% 27%,#000 65%,transparent 100%); animation:throneBreath 4s ease-in-out infinite; will-change:transform; }
.throne-torchlight { position:absolute; inset:0; pointer-events:none; background:radial-gradient(ellipse at 50% 24%,#85cfff19,transparent 50%),linear-gradient(110deg,transparent 25%,#74bfff0d 40%,transparent 60%); animation:throneLight 4s ease-in-out infinite; }
.throne-principal { position:absolute; transform:translateX(-50%); text-align:center; color:#f0f6ff; white-space:nowrap; text-shadow:0 2px 12px #020919,0 1px 3px #020919; }
.throne-principal span { display:block; font-family:'Orbit Court',var(--book-serif); font-size:clamp(23px,2.05vw,40px); letter-spacing:.12em; }
.throne-principal small { display:block; margin-top:5px; font:italic clamp(10px,.8vw,15px) Georgia,serif; letter-spacing:.08em; color:#c3d8f3; }
.throne-judo { left:50%; top:1.8%; }
.throne-judo span { font-size:clamp(38px,3.8vw,72px); letter-spacing:.2em; }
.throne-judo small { font-size:clamp(14px,1.2vw,22px); }
.throne-freestyle { left:32.2%; top:16.5%; }
.throne-greco { left:65.1%; top:16.5%; }
.throne-assembly { position:absolute; inset:0; margin:0; padding:0; list-style:none; }
.throne-subject { position:absolute; left:var(--x); top:var(--y); width:var(--figure); aspect-ratio:1; transform:translate(-50%,-96%); text-align:center; }
.throne-bearing { display:block; position:relative; width:100%; height:100%; }
.throne-contact { position:absolute;bottom:2%;left:10%;width:80%;height:10%;border-radius:50%;background:#01091670;filter:blur(2px); }
.throne-figure { position:relative;display:block; width:100%; height:100%; background:url('assets/grimoire/kneeling-court-v2.png') var(--sprite-x) var(--sprite-y) / 400% 400% no-repeat; animation:throneBow 4.8s ease-in-out var(--phase) infinite; transform-origin:50% 98%; }
.throne-subject.is-centred .throne-figure { background-image:url('assets/grimoire/kneeling-centre-v1.png');background-size:200% 200%;background-position:var(--centre-x) var(--centre-y); }
.throne-sport { position:absolute; z-index:1; bottom:90%; left:50%; transform:translateX(-50%); padding:1px 3px; color:#dbeaff; white-space:nowrap; font:clamp(13px,1.22vw,23px)/1.15 'Orbit Court',var(--book-serif); letter-spacing:.025em; text-shadow:0 1px 3px #001025,0 0 7px #001025; }
.throne-subject[data-tier='1'] .throne-sport { font-size:clamp(20px,1.6vw,30px); color:#f2ecd6; }
.throne-subject[data-tier='2'] .throne-sport { font-size:clamp(17px,1.5vw,28px); color:#e9e4d7; }
.throne-subject[data-tier='6'] .throne-sport { font-size:clamp(11px,1vw,19px); }
.prologue-loading { position:absolute; right:3%; bottom:2%; z-index:4; text-align:right; color:#fff; opacity:.55; text-shadow:0 1px 8px #00132f,0 0 18px #00132f; animation:throneLoading 4s ease-in-out infinite; pointer-events:none; }
.prologue-loading > span { font:italic clamp(28px,2.3vw,44px)/1 Georgia,serif; letter-spacing:.02em; white-space:nowrap; }
.prologue-loading small { display:block; margin-top:4px; font:clamp(13px,1.05vw,18px)/1.3 'Orbit Court',var(--book-serif); letter-spacing:.16em; }
.throne-ellipsis { display:inline-block; width:1.2em; text-align:left; }
.throne-controls { position:absolute; inset:20px 32px auto; display:flex; justify-content:space-between; z-index:3; }
#gravityBook .throne-controls button { border:0; background:transparent; padding:12px 0; color:#d9e6f4b8; font:16px/1.4 'Orbit Court',var(--book-serif); letter-spacing:.1em; text-shadow:0 1px 8px #001029; }
#gravityBook.is-throne-prologue .grimoire-space-titlegroup { visibility:hidden; }
#gravityBook .grimoire-replay { position:absolute; bottom:90px; left:50%; transform:translateX(-50%); border:1px solid #c7b5803d; padding:10px 20px; color:#c8b996; background:transparent; font:16px 'Orbit Court',var(--book-serif); letter-spacing:.1em; }
@keyframes throneBreath { 0%,100% { transform:translate3d(0,1px,0); } 50% { transform:translate3d(0,-3px,0); } }
@keyframes throneBow { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(.985); } }
@keyframes throneLight { 0%,100% { opacity:.2; } 50% { opacity:.75; } }
@keyframes throneLoading { 0%,100% { opacity:.34; } 50% { opacity:.68; } }
@media (max-width:700px), (orientation:portrait) {
  .throne-controls { inset:12px 15px auto; }
  #gravityBook .throne-controls button { font-size:13px; }
  .throne-hall,.throne-sovereign { background-size:auto 42%; background-position:center 50px; background-color:#0e315c; }
  .throne-tableau::after { content:""; position:absolute; inset:33% 0 0; background:linear-gradient(transparent,#173a67 22%,#091b36); pointer-events:none; }
  .throne-assembly,.throne-loading,.throne-principal { z-index:1; }
  .throne-judo { top:4.5%; }
  .throne-judo span { font-size:26px; }
  .throne-freestyle,.throne-greco { top:13.5%; }
  .throne-freestyle { left:21%; }
  .throne-greco { left:75%; }
  .throne-principal:not(.throne-judo) span { font-size:11px; letter-spacing:0; }
  .throne-principal:not(.throne-judo) small { font-size:7px; letter-spacing:0; }
  .throne-subject { left:var(--mobile-x); top:var(--mobile-y); width:23px; }
  .throne-subject[data-tier='1'] { width:56px; }
  .throne-subject[data-tier='2'] { width:43px; }
  .throne-subject[data-tier='3'] { width:35px; }
  .throne-subject[data-tier='4'] { width:30px; }
  .throne-subject[data-tier='5'] { width:26px; }
  .throne-subject .throne-sport { font-size:10px; letter-spacing:0; padding:0; }
  .throne-subject[data-tier='1'] .throne-sport { font-size:13px; width:4.5em; white-space:normal; text-wrap:balance; }
  .throne-subject[data-tier='2'] .throne-sport { font-size:12px; }
  .throne-subject[data-tier='6'] .throne-sport { font-size:10px; }
  .prologue-loading { right:16px; bottom:12px; }
  .prologue-loading > span { font-size:23px; }
  .prologue-loading small { font-size:12px; }
}
#gravityBook.instant-turn .throne-prologue { transition:none; }
#gravityBook.instant-turn .throne-tableau * { animation:none; }
@media(prefers-reduced-motion:reduce) { .throne-prologue { transition:none; } .throne-tableau * { animation:none; } }
