/* =============================================================
   AKU WORLD — journey.css
   Page styles for journey-to-ibra.html (the book's cinematic page).
   Everything is readable with zero JS: beats stack, gallery is a
   native snap rail, the 3D canvas is decorative. journey.js adds
   .is-cine / .is-hwide for the pinned cinematic modes.
   ============================================================= */

/* ---------- HERO ---------- */
.jhero{ position:relative; min-height:calc(100svh - 53px); display:flex; flex-direction:column;
  justify-content:flex-end; overflow:hidden; background:#030712; color:#fff; }
.jhero__bg{ position:absolute; inset:0; z-index:0; }
.jhero__bg img{ width:100%; height:100%; object-fit:cover; object-position:center 38%;
  transform-origin:50% 35%; will-change:transform; }
.jhero__scrim{ position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(3,7,18,.62) 0%, rgba(3,7,18,.05) 26%,
    rgba(3,7,18,.06) 52%, rgba(3,7,18,.78) 82%, #030712 100%); }
.jhero__content{ position:relative; z-index:2; width:min(980px,100% - var(--gut)*2);
  margin:0 auto; text-align:center; padding-bottom:clamp(56px,9vh,110px); }
.jhero__title{ font-family:var(--display); font-weight:900; text-transform:uppercase;
  line-height:.92; margin:0; }
.jhero__title span{ display:block; }
.jhero__t1{ font-size:clamp(3.6rem,11vw,9rem); color:#fff;
  text-shadow:0 0 80px rgba(63,180,255,.35); }
.jhero__t2{ font-size:clamp(1.15rem,3.2vw,2.5rem); letter-spacing:.34em; margin-top:.55em;
  padding-left:.34em; /* optically recenter the tracked line */ color:var(--blue-glow);
  text-shadow:0 0 40px rgba(63,180,255,.4); }
.jhero__sub{ margin:clamp(18px,3vh,28px) auto 0; max-width:46ch; color:rgba(255,255,255,.82);
  font-size:var(--t-lede); line-height:1.55; text-wrap:balance; }
.jhero__ctas{ display:flex; gap:14px; flex-wrap:wrap; justify-content:center;
  margin-top:clamp(22px,3.5vh,34px); }
/* ---------- helmet HUD overlay ---------- */
.jhud{ position:absolute; inset:0; z-index:2; pointer-events:none; font-family:var(--mono);
  font-size:clamp(9px,1vw,11px); letter-spacing:.16em; color:rgba(159,227,255,.8);
  text-shadow:0 0 12px rgba(63,180,255,.35); overflow:hidden; }
.jhud__c{ position:absolute; width:clamp(18px,2.4vw,30px); height:clamp(18px,2.4vw,30px);
  border:0 solid rgba(63,180,255,.65); }
.jhud__c--tl{ top:16px; left:16px; border-top-width:2px; border-left-width:2px; }
.jhud__c--tr{ top:16px; right:16px; border-top-width:2px; border-right-width:2px; }
.jhud__c--bl{ bottom:16px; left:16px; border-bottom-width:2px; border-left-width:2px; }
.jhud__c--br{ bottom:16px; right:16px; border-bottom-width:2px; border-right-width:2px; }
.jhud__group{ position:absolute; display:flex; flex-direction:column; gap:7px; }
.jhud__tl{ top:clamp(28px,4.5vh,44px); left:clamp(30px,3.4vw,52px); }
.jhud__tr{ top:clamp(28px,4.5vh,44px); right:clamp(30px,3.4vw,52px); align-items:flex-end; }
.jhud__bl{ bottom:clamp(28px,4.5vh,44px); left:clamp(30px,3.4vw,52px); }
.jhud__br{ bottom:clamp(28px,4.5vh,44px); right:clamp(30px,3.4vw,52px); align-items:flex-end; }
.jhud__line{ display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.jhud__hi{ color:var(--blue-glow); }
.jhud__dim{ color:rgba(159,227,255,.45); }
[data-hud-type]::after{ content:"_"; margin-left:2px; animation:jcaret 1s steps(1) infinite; }
@keyframes jcaret{ 50%{ opacity:0; } }
.jhud__batt{ display:inline-flex; gap:2px; padding:2px 3px; border:1px solid currentColor;
  border-radius:1px; position:relative; }
.jhud__batt::after{ content:""; position:absolute; right:-4px; top:50%; transform:translateY(-50%);
  width:2px; height:5px; background:currentColor; }
.jhud__batt i{ width:4px; height:8px; background:var(--blue-glow); }
.jhud__batt i.off{ background:rgba(159,227,255,.25); }
.jhud__bars{ display:inline-flex; gap:2px; align-items:flex-end; }
.jhud__bars i{ width:3px; background:var(--blue-glow); }
.jhud__bars i:nth-child(1){ height:4px; } .jhud__bars i:nth-child(2){ height:7px; }
.jhud__bars i:nth-child(3){ height:10px; } .jhud__bars i:nth-child(4){ height:13px; }
.jhud__scan{ position:absolute; left:0; right:0; top:-2px; height:2px; opacity:.4;
  background:linear-gradient(90deg, transparent, rgba(63,180,255,.6), transparent);
  animation:jscan 7s linear infinite; }
@keyframes jscan{ from{ transform:translateY(0); } to{ transform:translateY(100vh); } }
@media (max-width:720px){
  .jhud__hide-s{ display:none; }
  .jhud{ font-size:9px; letter-spacing:.12em; }
}
@media (prefers-reduced-motion:reduce){
  .jhud__scan{ animation:none; display:none; }
  [data-hud-type]::after{ animation:none; }
}

/* hero load-in (journey.js sets .is-armed before animating; CSS itself never hides) */
.jp.js-cine .jhero [data-hline]{ opacity:0; }

/* ---------- ACCOLADES ---------- */
.jacc{ background:var(--paper); border-bottom:1px solid var(--line); }
.jacc__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(8px,0.9vw,14px);
  padding-block:clamp(44px,7vh,80px); }
.jacc__item{ display:flex; flex-direction:column; gap:10px; padding:clamp(16px,2vw,26px);
  border:1px solid var(--line); background:#fff; }
.jacc__num{ font-family:var(--display); font-weight:900; font-size:clamp(1.8rem,3.4vw,2.8rem);
  color:var(--blue); line-height:1; text-transform:uppercase; }
.jacc__label{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-3); line-height:1.6; }
@media (max-width:880px){ .jacc__grid{ grid-template-columns:repeat(2,1fr); } }

/* ---------- 01 · TRANSMISSION (beats on frosted glass) ---------- */
.jcine{ position:relative; background:#030712; color:#fff; overflow:hidden;
  padding-block:clamp(40px,7vh,90px); }
.jcine__bg{ position:absolute; inset:0; z-index:0; }
.jcine__bg img{ width:100%; height:100%; object-fit:cover; }
.jcine__bg::after{ content:""; position:absolute; inset:0;
  background:rgba(3,7,18,.30); }
.jcine__stage{ position:relative; z-index:1; display:flex; flex-direction:column;
  gap:clamp(48px,9vh,96px); width:min(940px,100% - var(--gut)*2); margin-inline:auto;
  padding:clamp(56px,9vh,110px) clamp(20px,4vw,72px); text-align:center;
  background:rgba(4,10,28,.52); border:1px solid rgba(159,227,255,.22);
  -webkit-backdrop-filter:blur(20px) saturate(1.25); backdrop-filter:blur(20px) saturate(1.25);
  box-shadow:0 30px 80px -40px rgba(0,0,0,.8); }
.jcine__hud{ color:var(--blue-glow); width:min(440px,100%); margin-inline:auto; }
.jcine__hud::before,.jcine__hud::after{ background:rgba(255,255,255,.18); }
.jbeat__big{ font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(2rem,5.6vw,4.2rem); line-height:.96; margin:0; color:#fff;
  text-shadow:0 0 60px rgba(63,180,255,.22); text-wrap:balance; }
.jbeat__sub{ margin:18px auto 0; max-width:52ch; color:rgba(255,255,255,.72);
  font-size:var(--t-lede); line-height:1.6; }
.jbeat__sub b{ font-family:var(--mono); font-weight:400; color:var(--blue-glow);
  letter-spacing:.08em; }
.jcine__meter{ display:none; }

/* pinned mode (set by journey.js on desktop + motion-ok) */
.jcine.is-cine{ height:100svh; display:flex; align-items:center; padding-block:0; }
.jcine.is-cine .jcine__stage{ height:calc(100svh - clamp(40px,9vh,110px));
  width:min(1100px,100% - var(--gut)*2); padding-block:0; justify-content:center; gap:0; }
.jcine.is-cine .jcine__hud{ position:absolute; top:clamp(64px,10vh,96px); left:50%;
  transform:translateX(-50%); }
.jcine.is-cine .jbeat{ position:absolute; inset:0; display:flex; flex-direction:column;
  justify-content:center; align-items:center; padding-inline:var(--gut); visibility:hidden; opacity:0; }
.jcine.is-cine .jcine__meter{ position:absolute; bottom:clamp(28px,5vh,48px); left:50%;
  transform:translateX(-50%); display:flex; align-items:center; gap:14px;
  font-family:var(--mono); font-size:10px; letter-spacing:.18em; color:rgba(255,255,255,.55); }
.jcine__ticks{ display:flex; gap:6px; }
.jcine__ticks i{ width:18px; height:2px; background:rgba(255,255,255,.18); transition:background .25s; }
.jcine__ticks i.is-on{ background:var(--blue-glow); box-shadow:0 0 8px rgba(63,180,255,.7); }

/* ---------- 02 · THE WORLD (three.js) ---------- */
.jworld{ position:relative; background:#030712; color:#fff; overflow:hidden;
  border-top:1px solid rgba(255,255,255,.08); }
.jworld__canvas{ position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.jworld__inner{ position:relative; z-index:1; padding-block:clamp(110px,18vh,210px);
  max-width:calc(var(--wrap) + var(--gut)*2); pointer-events:none; }
.jworld__inner a,.jworld__inner .btn{ pointer-events:auto; }
.jworld__hud{ color:var(--blue-glow); width:min(380px,100%); }
.jworld__hud::after{ background:rgba(255,255,255,.18); }
.jworld__eyebrow{ display:block; color:var(--blue-glow); margin:30px 0 26px; line-height:1.4; }
.jworld__title{ font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(2.2rem,6vw,4.4rem); line-height:.94; margin:0;
  text-shadow:0 0 60px rgba(63,180,255,.28); }
.jworld__sub{ margin:22px 0 0; max-width:54ch; color:rgba(255,255,255,.75);
  font-size:var(--t-lede); line-height:1.6; }
.jworld__sub em{ font-style:normal; color:var(--blue-glow); }
.jworld__chips{ display:flex; gap:10px; flex-wrap:wrap; margin-top:30px; }
.jchip{ font-family:var(--mono); font-size:10px; letter-spacing:.16em; padding:7px 11px 6px;
  border:1px solid rgba(63,180,255,.35); color:rgba(255,255,255,.75); }
.jworld__hint{ margin:34px 0 0; font-family:var(--mono); font-size:10px; letter-spacing:.18em;
  color:rgba(255,255,255,.38); }

/* ---------- 03 · CAST ---------- */
.jcast{ background:var(--paper); padding-block:clamp(90px,14vh,180px); }
.jcast__head{ margin-bottom:clamp(40px,6vh,72px); }
.jcast__head .hud-line{ width:min(360px,100%); }
.jcast__title{ font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(1.9rem,4.6vw,3.4rem); line-height:.96; margin:18px 0 0; color:var(--ink); }
.jcast__intro{ margin:16px 0 0; max-width:60ch; color:var(--ink-2); font-size:var(--t-lede); }
.ccast{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(8px,0.9vw,14px);
  list-style:none; margin:0; padding:0; }
.ccard{ perspective:1200px; }
.ccard__flip{ display:block; width:100%; padding:0; border:0; background:none;
  cursor:pointer; text-align:left; -webkit-tap-highlight-color:transparent; }
.ccard__flip:focus-visible{ outline:2px solid var(--blue); outline-offset:4px; }
.ccard__inner{ position:relative; display:block; aspect-ratio:5/7; width:100%;
  transform-style:preserve-3d; transition:transform .7s var(--ease-out); }
.ccard__flip.is-flipped .ccard__inner{ transform:rotateY(180deg); }
.ccard__flip:hover .ccard__inner{ box-shadow:none; }
.ccard:hover{ transform:translateY(-4px); transition:transform var(--dur-fast) var(--ease-out); }
.ccard__face{ position:absolute; inset:0; display:flex; flex-direction:column;
  backface-visibility:hidden; -webkit-backface-visibility:hidden; overflow:hidden;
  border:1px solid color-mix(in srgb, var(--acc) 65%, transparent);
  background:#061026; box-shadow:0 0 0 1px rgba(3,7,18,.4), 0 24px 50px -28px rgba(6,16,38,.65),
    inset 0 0 34px -18px var(--acc); }
.ccard__front{ z-index:1; }
/* holo sheen */
.ccard__front::after{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background:linear-gradient(118deg, transparent 32%, color-mix(in srgb, var(--acc) 26%, transparent) 46%,
    rgba(255,255,255,.16) 50%, transparent 64%);
  background-size:240% 240%; background-position:88% 0; transition:background-position .9s var(--ease-out); }
.ccard__flip:hover .ccard__front::after{ background-position:0 88%; }
.ccard__art{ flex:1; min-height:0; margin:8px 8px 0; background:#fff; overflow:hidden;
  display:flex; align-items:center; justify-content:center; position:relative; }
.ccard__art img{ width:100%; height:100%; object-fit:contain; display:block; }
.ccard__art--cover img{ object-fit:cover; }
.ccard__art--text{ background:linear-gradient(160deg, #0B2B6B, #061A44); color:var(--blue-glow);
  flex-direction:column; gap:10px; text-align:center; }
.ccard__art--text b{ font-family:var(--hand); font-size:clamp(3rem,5vw,4.6rem); font-weight:400;
  color:#FF6FA5; text-shadow:0 0 30px rgba(255,111,165,.5); }
.ccard__art--text i{ font-style:normal; font-family:var(--mono); font-size:9px;
  letter-spacing:.18em; line-height:1.9; color:rgba(159,227,255,.6); }
.ccard__bar{ display:flex; flex-direction:column; gap:3px; padding:12px 14px 14px; }
.ccard__name{ font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(.9rem,1.3vw,1.1rem); line-height:1; color:#fff; }
.ccard__role{ font-family:var(--mono); font-size:9px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--acc); }
.ccard__num{ position:absolute; top:16px; left:16px; font-family:var(--mono); font-size:9px;
  letter-spacing:.14em; color:#061026; background:color-mix(in srgb, #fff 86%, var(--acc));
  padding:3px 6px 2px; }
.ccard__hint{ position:absolute; top:16px; right:16px; font-family:var(--mono); font-size:9px;
  letter-spacing:.14em; color:var(--acc); background:rgba(6,16,38,.72); padding:3px 6px 2px;
  border:1px solid color-mix(in srgb, var(--acc) 45%, transparent); }
.ccard__back{ transform:rotateY(180deg); padding:clamp(14px,1.6vw,22px); gap:12px; z-index:0;
  background:linear-gradient(165deg, color-mix(in srgb, var(--acc) 16%, #061026), #04081A 70%); }
.ccard__bname{ font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(.95rem,1.3vw,1.15rem); line-height:1.05; color:#fff; padding-bottom:10px;
  border-bottom:1px solid color-mix(in srgb, var(--acc) 45%, transparent); }
.ccard__spec{ font-family:var(--mono); font-size:9.5px; letter-spacing:.13em; line-height:2;
  color:var(--acc); }
.ccard__bio{ font-size:clamp(.78rem,.95vw,.875rem); line-height:1.55; color:rgba(255,255,255,.82); flex:1; }
.ccard__quote{ font-family:var(--mono); font-size:9.5px; letter-spacing:.08em; line-height:1.7;
  color:rgba(255,255,255,.55); }
@media (max-width:1020px){ .ccast{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px){ .ccast{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .ccast{ grid-template-columns:1fr; }
  .ccard__inner{ max-width:380px; margin-inline:auto; } }
@media (prefers-reduced-motion:reduce){
  .ccard__inner{ transition:none; }
  .ccard:hover{ transform:none; }
}

/* ---------- 04 · ENEMY ---------- */
.jenemy{ background:#030712; color:#fff; overflow:hidden; }
.jenemy__grid{ position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr;
  gap:clamp(28px,5vw,70px); align-items:center; padding-block:clamp(100px,16vh,190px);
  max-width:calc(var(--wrap) + var(--gut)*2); }
.jenemy__hud{ color:var(--blue-glow); width:min(360px,100%); }
.jenemy__hud::after{ background:rgba(255,255,255,.18); }
.jenemy__eyebrow{ display:block; color:var(--blue-glow); margin:30px 0 26px; line-height:1.4; }
.jenemy__title{ font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(2.2rem,5.6vw,4.2rem); line-height:.94; margin:0;
  text-shadow:0 0 60px rgba(63,180,255,.25); }
.jenemy__sub{ margin:22px 0 0; max-width:50ch; color:rgba(255,255,255,.75);
  font-size:var(--t-lede); line-height:1.6; }
.jenemy__quote{ margin:30px 0 0; padding:18px 22px; border-left:2px solid var(--blue-glow);
  background:rgba(63,180,255,.06); }
.jenemy__quote p{ margin:0; font-size:1.05rem; line-height:1.6; color:rgba(255,255,255,.85);
  font-style:italic; }
.jenemy__quote cite{ display:block; margin-top:12px; font-family:var(--mono); font-style:normal;
  font-size:10px; letter-spacing:.16em; color:var(--blue-glow); }
.jenemy__media{ margin:0; position:relative; overflow:hidden; }
.jenemy__media img{ width:100%; height:auto; display:block; background:#fff; will-change:transform; }
.jenemy__tag{ position:absolute; left:18px; bottom:18px; z-index:4; display:inline-flex;
  align-items:center; gap:7px; padding:7px 11px 6px; font-family:var(--mono); font-size:10px;
  letter-spacing:.14em; color:#fff; background:rgba(3,7,18,.78);
  border:1px solid rgba(63,180,255,.4); }
.jenemy__tag .dot{ width:6px; height:6px; border-radius:50%; background:var(--red);
  box-shadow:0 0 7px var(--red); }
@media (max-width:880px){
  .jenemy__grid{ grid-template-columns:1fr; }
  .jenemy__media{ order:-1; max-width:520px; }
}

/* ---------- 05 · GALLERY ---------- */
.jgallery{ background:var(--paper-2); overflow:hidden; }
.jgallery__pin{ padding-block:clamp(100px,15vh,190px); }
.jgallery__head{ margin-bottom:clamp(40px,6vh,72px); max-width:calc(var(--wrap) + var(--gut)*2); }
.jgallery__head .hud-line{ width:min(360px,100%); }
.jgallery__title{ font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(1.9rem,4.6vw,3.4rem); line-height:.96; margin:18px 0 0; color:var(--ink); }
.jgallery__intro{ margin:14px 0 0; max-width:56ch; color:var(--ink-2); font-size:var(--t-lede); }
.jgallery__track{ display:flex; gap:clamp(8px,0.9vw,14px); padding-inline:clamp(8px,0.9vw,14px);
  overflow-x:auto; scroll-snap-type:x proximity; scrollbar-width:none; }
.jgallery__track::-webkit-scrollbar{ display:none; }
.jframe{ margin:0; flex:0 0 auto; width:min(540px,78vw); scroll-snap-align:center;
  display:flex; flex-direction:column; }
.jframe img{ width:100%; height:auto; aspect-ratio:1/1; object-fit:contain; background:#fff;
  display:block; border-bottom:1px solid var(--line); }
.jframe figcaption{ padding:13px 16px; font-family:var(--mono); font-size:10px;
  letter-spacing:.14em; color:var(--ink-3); text-transform:uppercase; }
.jgallery__cue{ margin:clamp(20px,3vh,30px) 0 0; padding-inline:var(--gut);
  font-family:var(--mono); font-size:10px; letter-spacing:.18em; color:var(--ink-3); }

/* pinned horizontal mode (journey.js, desktop only) */
.jgallery.is-hwide .jgallery__pin{ height:100svh; display:flex; flex-direction:column;
  justify-content:center; padding-block:0; }
.jgallery.is-hwide .jgallery__track{ overflow:visible; scroll-snap-type:none; will-change:transform; }
.jgallery.is-hwide .jframe{ width:min(560px,44vw); }

/* ---------- 06 · PRAISE ---------- */
.jpraise{ background:var(--paper); padding-block:clamp(90px,14vh,180px); }
.jpraise__head .hud-line{ width:min(360px,100%); }
.jpraise__title{ font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(1.9rem,4.6vw,3.4rem); line-height:.96; margin:18px 0 0; color:var(--ink); }
.jpraise__lead{ margin:clamp(34px,6vh,60px) auto; max-width:880px; text-align:center; }
.jpraise__lead p{ margin:0; font-family:var(--display); font-weight:800; text-transform:uppercase;
  font-size:clamp(1.3rem,3.2vw,2.2rem); line-height:1.18; color:var(--ink); text-wrap:balance; }
.jpraise__lead cite{ display:block; margin-top:18px; font-family:var(--mono); font-style:normal;
  font-size:11px; letter-spacing:.18em; color:var(--blue); }
.jpraise__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(8px,0.9vw,14px); }
.jquote{ margin:0; padding:clamp(20px,2.6vw,32px); background:#fff; border:1px solid var(--line);
  display:flex; flex-direction:column; gap:14px; }
.jquote__stars{ color:var(--blue); font-size:.95rem; letter-spacing:.3em; }
.jquote p{ margin:0; font-size:1.02rem; line-height:1.65; color:var(--ink-2); flex:1; }
.jquote cite{ font-family:var(--mono); font-style:normal; font-size:10px; letter-spacing:.14em;
  color:var(--ink-3); }
@media (max-width:760px){ .jpraise__grid{ grid-template-columns:1fr; } }

/* ---------- 07 · AUTHOR ---------- */
.jauthor{ background:var(--paper-2); border-block:1px solid var(--line); }
.jauthor__inner{ padding-block:clamp(80px,13vh,150px); max-width:calc(var(--wrap) + var(--gut)*2); }
.jauthor__inner .hud-line{ width:min(360px,100%); }
.jauthor__title{ font-family:var(--display); font-weight:900; text-transform:uppercase;
  font-size:clamp(1.9rem,4.6vw,3.2rem); line-height:.96; margin:18px 0 0; color:var(--ink); }
.jauthor__sub{ margin:18px 0 0; max-width:58ch; color:var(--ink-2); font-size:var(--t-lede);
  line-height:1.6; }
.jauthor__sub em{ font-style:normal; color:var(--blue); }
.jauthor__credits{ margin:26px 0 30px; font-family:var(--mono); font-size:10px;
  letter-spacing:.14em; line-height:2; color:var(--ink-3); max-width:70ch; }

/* ---------- 08 · FINALE extras ---------- */
.jfinale__retail{ margin-top:30px; font-family:var(--mono); font-size:10px; letter-spacing:.16em;
  color:rgba(255,255,255,.45); }
.jfinale__retail a{ color:var(--blue-glow); text-decoration:none; border-bottom:1px solid rgba(63,180,255,.4); }
.jfinale__retail a:hover{ color:#fff; }

/* ---------- reduced motion / no-JS safety ---------- */
@media (prefers-reduced-motion:reduce){
  .jp.js-cine .jhero [data-hline]{ opacity:1; }
  .jhero__bg img{ transform:none !important; }
}

/* ===== CAST: 3-column grid on mobile (2026-06) =================== */
@media (max-width:760px){
  .ccast{ grid-template-columns:repeat(3,1fr); grid-auto-flow:row;
    grid-template-rows:none; grid-auto-columns:auto; overflow-x:visible;
    gap:clamp(6px,1.6vw,12px); }
  .ccard{ scroll-snap-align:none; }
  .ccard__inner{ max-width:none; margin-inline:0; }
  .ccard__num, .ccard__hint{ display:none; }
}

/* hero text + buttons raised ~20% (2026-06) */
.jhero__content{ margin-bottom:20svh; }
