/* v2.5.0 — Polish Release
 * Cross-browser resilience, responsive refinement, performance containment,
 * accessible focus states and restrained cinematic motion.
 */

/* Global detail-page stability */
body.single-whender_world{
  overflow-x:clip;
  background:var(--ww-color-ink-deep,#02090d);
}
.whender-world-experience{
  overflow:clip;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
.whender-world-experience *,
.whender-world-experience *::before,
.whender-world-experience *::after{box-sizing:border-box}
.whender-world-experience img,
.whender-world-experience video{max-width:100%}

/* Canonical hero / door portal: WebKit and Firefox-safe compositing */
.ww-portal__canonical-scene,
.ww-portal__canonical-view,
.ww-portal__canonical-overlay{
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  transform:translateZ(0);
}
.ww-portal__canonical-view{
  isolation:isolate;
  will-change:auto;
}
.ww-portal__canonical-overlay{
  pointer-events:none;
  image-rendering:auto;
}

/* Restrained arrival motion — only once when the page loads */
@media (prefers-reduced-motion:no-preference){
  .ww-hero__copy{animation:wwPolishCopyIn .9s var(--ww-ease-cinematic) both}
  .ww-portal__canonical-scene{animation:wwPolishPortalIn 1.15s var(--ww-ease-cinematic) both}
  @keyframes wwPolishCopyIn{
    from{opacity:0;transform:translate3d(-18px,12px,0)}
    to{opacity:1;transform:none}
  }
  @keyframes wwPolishPortalIn{
    from{opacity:0;transform:translate3d(18px,10px,0) scale(.985)}
    to{opacity:1;transform:none}
  }
}

/* Keyboard accessibility */
.whender-world-experience a:focus-visible,
.whender-world-experience button:focus-visible{
  outline:2px solid var(--ww-color-gold);
  outline-offset:5px;
}
.ww-cosmos__node:focus-visible .ww-cosmos__node-glass{
  box-shadow:0 0 0 2px #02090d,0 0 0 4px var(--ww-color-gold),0 18px 38px rgba(0,0,0,.56);
}

/* Journey performance and browser consistency */
.ww-journey--v220,
.ww-story-panels--v240,
.ww-story-section{
  content-visibility:auto;
  contain-intrinsic-size:900px;
}
.ww-cosmos__glass,
.ww-cosmos__node-glass,
.ww-cosmos__media{
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  transform:translateZ(0);
}
.ww-cosmos__media{
  -webkit-mask-image:-webkit-radial-gradient(white,black);
}
.ww-cosmos__media img,
.ww-cosmos__media video,
.ww-cosmos__node img{
  -webkit-user-drag:none;
  user-select:none;
}
.ww-cosmos__node{
  -webkit-tap-highlight-color:transparent;
}
.ww-cosmos__video-toggle,
.ww-cosmos__arrow,
.ww-trailer{
  transition:background-color var(--ww-motion-fast) ease,border-color var(--ww-motion-fast) ease,color var(--ww-motion-fast) ease,transform var(--ww-motion-fast) ease;
}
.ww-cosmos__video-toggle:hover,
.ww-cosmos__arrow:hover,
.ww-trailer:hover{transform:translateY(-1px)}

/* Story-panel polish */
.ww-story-card__link{position:relative;z-index:2}
.ww-story-card__copy strong{text-wrap:balance}
.ww-story-section__content h2,
.ww-story-panels__heading h2{text-wrap:balance}
.ww-story-section__media{
  background-repeat:no-repeat;
  transform:translateZ(0);
}

/* World navigation remains balanced when only one neighbour exists */
.ww-world-nav{
  min-height:118px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
  gap:24px;
  padding:28px var(--ww-space-page);
}
.ww-world-nav__previous{justify-self:start}
.ww-world-nav__mark{justify-self:center}
.ww-world-nav__next{justify-self:end;text-align:right}
.ww-world-nav a{text-decoration:none}

/* Modal: stable viewport sizing on Safari/iOS */
.ww-video-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));
  background:rgba(1,5,8,.94);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.ww-video-modal[hidden]{display:none!important}
.ww-video-modal video{width:min(1180px,92vw);max-height:82dvh;background:#000;box-shadow:0 30px 100px rgba(0,0,0,.72)}
.ww-video-modal button{position:absolute;top:max(22px,env(safe-area-inset-top));right:max(24px,env(safe-area-inset-right));width:44px;height:44px;border:1px solid rgba(216,181,106,.55);border-radius:50%;background:rgba(2,9,13,.75);color:#f3efe5;font-size:28px;cursor:pointer}

/* Medium screens: prevent orbit clipping and oversized typography */
@media (max-width:1180px) and (min-width:721px){
  .ww-journey--v220{min-height:720px;padding-inline:24px}
  .ww-cosmos{width:min(960px,96vw);height:510px}
  .ww-cosmos__center{width:min(330px,36vw)}
  .ww-cosmos__node{width:106px}
  .ww-cosmos__node,
  .ww-cosmos__node:hover,
  .ww-cosmos__node:focus-visible{
    transform:translate(-50%,-50%) rotate(var(--angle)) translateX(min(34vw,330px)) rotate(calc(var(--angle) * -1)) scale(.82);
  }
  .ww-cosmos__node:hover,.ww-cosmos__node:focus-visible{transform:translate(-50%,-50%) rotate(var(--angle)) translateX(min(34vw,330px)) rotate(calc(var(--angle) * -1)) scale(.9)}
}

/* Mobile: remove desktop-only visual weight and retain a clear linear journey */
@media (max-width:720px){
  body.single-whender_world .site-header{position:absolute}
  .whender-world-experience{overflow-x:hidden}
  .whender-world-experience .ww-hero__copy{padding-top:96px}
  .whender-world-experience .ww-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .whender-world-experience .ww-meta div{min-width:0;padding:0 9px}
  .whender-world-experience .ww-meta dt{font-size:8px}
  .whender-world-experience .ww-meta dd{font-size:12px}

  .ww-journey--v220{min-height:0;padding:64px 18px 42px;overflow:hidden}
  .ww-journey--v220 .ww-journey__intro{margin-bottom:28px}
  .ww-journey--v220 .ww-journey__intro h2{font-size:clamp(38px,12vw,58px)}
  .ww-cosmos{width:100%;height:auto;display:flex;flex-direction:column;align-items:center;touch-action:pan-y}
  .ww-cosmos__rings,.ww-cosmos__arrow{display:none}
  .ww-cosmos__center{position:relative;left:auto;top:auto;width:min(82vw,360px);transform:none;order:1}
  .ww-cosmos__caption{min-height:0;margin-top:20px}
  .ww-cosmos__nodes{position:relative;inset:auto;order:2;display:flex;width:calc(100vw - 36px);gap:13px;margin-top:30px;padding:4px 4px 18px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scrollbar-width:none}
  .ww-cosmos__nodes::-webkit-scrollbar{display:none}
  .ww-cosmos__node,
  .ww-cosmos__node:hover,
  .ww-cosmos__node:focus-visible{
    position:relative;left:auto;top:auto;flex:0 0 92px;width:92px;transform:none!important;opacity:.72;scroll-snap-align:center;
  }
  .ww-cosmos__node.is-active{opacity:1;pointer-events:none}
  .ww-cosmos__node.is-active .ww-cosmos__node-glass{box-shadow:0 0 0 2px rgba(216,181,106,.8),0 14px 30px rgba(0,0,0,.5)}
  .ww-cosmos__node-label strong{white-space:normal;line-height:1.25}
  .ww-cosmos__hint{margin-top:8px}

  .ww-story-panels--v240{padding-inline:18px}
  .ww-story-card{min-height:330px}
  .ww-world-nav{grid-template-columns:1fr auto 1fr;gap:10px;padding:24px 18px;min-height:94px}
  .ww-world-nav strong{display:block;max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ww-world-nav small{font-size:8px}
}

/* Small phones */
@media (max-width:390px){
  .whender-world-experience .ww-meta{grid-template-columns:1fr;gap:10px}
  .whender-world-experience .ww-meta div{padding:0;border:0}
  .ww-cosmos__center{width:86vw}
  .ww-world-nav strong{max-width:86px}
}

/* Reduced-motion guarantee */
@media (prefers-reduced-motion:reduce){
  .ww-hero__copy,.ww-portal__canonical-scene{animation:none!important}
  .whender-world-experience *,
  .whender-world-experience *::before,
  .whender-world-experience *::after{scroll-behavior:auto!important}
}

/* Intersection-based reveal, disabled automatically without JavaScript. */
@media (prefers-reduced-motion:no-preference){
  .ww-reveal-ready{opacity:0;transform:translate3d(0,24px,0);transition:opacity .85s var(--ww-ease-cinematic),transform .85s var(--ww-ease-cinematic)}
  .ww-reveal-ready.is-revealed{opacity:1;transform:none}
  .ww-story-section__media.ww-reveal-ready{transform:translate3d(0,18px,0) scale(1.012)}
  .ww-story-section__media.ww-reveal-ready.is-revealed{transform:translateZ(0) scale(1)}
}
