/* High-resolution artwork carries the event; UI only supplies a future title and controls. */
.future-media{overflow:hidden;background:#305b84}
.future-scene-image,.future-event-video{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;pointer-events:none}
.future-scene-image{opacity:0;transition:opacity 260ms ease}
.future-media[data-future-ready=true]>.future-scene-image{opacity:1}
.future-event-video{opacity:0;z-index:2}
.future-fallback-person{position:absolute;right:132px;top:78px;width:690px;height:806px;object-fit:contain;pointer-events:none}
.future-media[aria-busy=true]::before{content:'';position:absolute;left:68%;top:48%;width:44px;height:44px;border:3px solid #e7f0fc55;border-top-color:#ffe3ad;border-radius:50%;animation:future-loading 1s linear infinite}
#journey [data-future-composition=complete]>.hero-scene{display:none}
#journey[data-phase=future] .game-backdrop.future-media{inset:0;transform-origin:70% 50%}
#journey[data-phase=future] .game-backdrop.future-media::after{z-index:3;background:linear-gradient(180deg,#173f63ad 0,#204d7299 76px,#204d7200 142px),linear-gradient(90deg,#214e7aab 0%,#315d815c 29%,#315d8100 52%),linear-gradient(0deg,#173f6333,transparent 22%)}
#journey[data-phase=future] .future-copy{left:76px;top:260px;width:520px;text-align:left}
#journey[data-phase=future] .future-copy .journey-kicker{font-size:28px;line-height:1.5;letter-spacing:0;margin:0 0 26px;color:#ffe4b4}
#journey[data-phase=future] .future-copy h1{font-size:66px;line-height:1.24;font-weight:700;letter-spacing:0;text-wrap:balance;text-shadow:0 3px 18px #1d45695c}
#journey[data-phase=future] .future-promise{font-size:29px;line-height:1.65;max-width:500px;margin:29px 0 0;color:#fff7e8;text-wrap:balance}
#journey[data-phase=future] .future-actions{width:520px;gap:25px;margin-top:46px;flex-wrap:wrap}
#journey[data-phase=future] .future-actions .journey-primary{height:64px;min-width:244px;padding:0 28px;font-size:27px}
#journey[data-phase=future] .future-actions .journey-text-action{font-size:26px;line-height:1.5}
#journey[data-phase=future] .future-actions [data-j-action=replay]{flex-basis:100%;width:max-content;text-align:left;padding:0;border:0;text-decoration:underline;text-underline-offset:10px}
#journey[data-phase=future] .future-tags{display:none}
#journey button:disabled{opacity:.6;cursor:progress}
#journey .future-media[data-future-error=true]::before{content:'画面暂未载入';position:absolute;left:65%;top:48%;font-size:28px;color:#fff}
#gesture-explorer[data-level=future]::before,#gesture-explorer[data-level=future]>.g-atmosphere{opacity:0}
#gesture-explorer .g-future-scene{background-image:none;overflow:hidden}
#gesture-explorer .g-future-scene::after{z-index:3;background:linear-gradient(180deg,#173f63ad 0,#204d7299 76px,#204d7200 142px),linear-gradient(90deg,#214e7aab 0%,#315d815c 29%,#315d8100 52%),linear-gradient(0deg,#173f6370,transparent 24%)}
#gesture-explorer .g-future-scene>.future-scene-image{inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
#gesture-explorer .g-future-scene>.future-fallback-person{right:132px;top:78px;width:690px;height:806px;object-fit:contain;z-index:1}
#gesture-explorer .g-future-copy{left:76px;top:157px;width:520px}
#gesture-explorer .g-future-copy h1{font-size:28px;line-height:1.5;letter-spacing:0;margin:0 0 26px;color:#ffe4b4}
#gesture-explorer .g-future-role{font-size:66px;line-height:1.24;font-weight:700;letter-spacing:0;text-wrap:balance;margin:0;text-shadow:0 3px 18px #1d45695c}
#gesture-explorer .g-future-copy .g-value{font-size:29px;line-height:1.65;max-width:500px;margin:29px 0 0;color:#fff7e8;text-wrap:balance}
#gesture-explorer .g-future-tags{display:none}
.g-future-card-art.future-media{position:absolute;inset:0;width:100%;height:100%}
.g-future-card-art.future-media>.future-scene-image{object-position:73% center}
.g-future-card-art.future-media>.future-fallback-person{right:0;left:auto;top:0;height:100%;width:70%;object-fit:contain}
@keyframes future-loading{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.future-scene-image{transition:none}.future-media[aria-busy=true]::before{animation:none}.future-event-video{display:none}}

/* Keep top controls legible over bright artwork without adding a panel. */
#stage[data-level=journey]>header button,#gesture-explorer[data-level=future] .g-top{ text-shadow:0 2px 9px #173f63cc; }
#stage[data-level=journey]>#gesture-toggle{filter:drop-shadow(0 2px 5px #173f6380)}
