/* =========================================================
   V30 · Mobile expressive motion
   More visible depth and particles without cropping full images
   or modifying the compact V29 layout.
   ========================================================= */

@media (max-width:900px){
  body.cinematic-home .cinema-scene,
  body.cinematic-home .cinema-scene.cinema-hero{
    perspective:880px!important;
    perspective-origin:50% 38%!important;
  }

  body.cinematic-home .cinema-sticky,
  body.cinematic-home .cinema-media,
  body.cinematic-home .cinema-copy,
  body.cinematic-home .cinema-word-inner,
  body.cinematic-home .cinema-detail-line,
  body.cinematic-home [data-cinema-line],
  body.cinematic-home .kinetic-word-inner,
  body.cinematic-home .scroll-3d-block{
    transform-style:preserve-3d!important;
    backface-visibility:hidden!important;
    -webkit-backface-visibility:hidden!important;
  }

  body.cinematic-home .cinema-media{
    transform-origin:50% 58%!important;
    will-change:transform!important;
    box-shadow:
      0 25px 58px rgba(22,59,85,.16),
      0 8px 18px rgba(22,59,85,.08)!important;
  }

  /* Moving light sweep, driven by scroll variables from home-cinematic.js. */
  body.cinematic-home .cinema-media::before{
    display:block!important;
    position:absolute!important;
    z-index:5!important;
    top:-22%!important;
    bottom:-22%!important;
    left:-18%!important;
    right:auto!important;
    width:48%!important;
    height:auto!important;
    border:0!important;
    background:linear-gradient(
      102deg,
      transparent 0%,
      rgba(255,255,255,.04) 24%,
      rgba(177,220,250,.32) 43%,
      rgba(255,255,255,.76) 52%,
      rgba(128,192,237,.18) 64%,
      transparent 100%
    )!important;
    opacity:var(--media-shine-opacity)!important;
    transform:translate3d(var(--media-shine-x),0,3px) rotate(10deg)!important;
    mix-blend-mode:screen!important;
    pointer-events:none!important;
  }

  /* White edge integration plus a scroll-following teal glow. */
  body.cinematic-home .cinema-media::after{
    display:block!important;
    position:absolute!important;
    z-index:4!important;
    inset:0!important;
    border:1px solid rgba(255,255,255,.9)!important;
    border-radius:inherit!important;
    background:
      radial-gradient(circle at var(--media-glow-x) var(--media-glow-y),rgba(74,211,222,var(--media-glow-opacity)),transparent 31%),
      linear-gradient(180deg,rgba(255,255,255,.23),transparent 13%,transparent 84%,rgba(255,255,255,.42)),
      linear-gradient(90deg,rgba(255,255,255,.23),transparent 10%,transparent 90%,rgba(255,255,255,.23))!important;
    opacity:1!important;
    pointer-events:none!important;
  }

  body.cinematic-home .ambient-particles.is-active{
    opacity:.88!important;
    filter:drop-shadow(0 0 3px rgba(38,135,204,.24));
  }
  body.cinematic-home .ambient-particles.dissolve-particles.is-active{
    opacity:1!important;
  }

  body.cinematic-home .cinema-copy{
    box-shadow:
      0 22px 52px rgba(25,59,83,.12),
      0 1px 0 rgba(255,255,255,.94) inset!important;
  }

  /* The card remains anchored by V29; motion occurs inside it. */
  body.cinematic-home .cinema-title-line,
  body.cinematic-home .cinema-word,
  body.cinematic-home .kinetic-word{
    overflow:visible!important;
  }

  body.cinematic-home .cinema-word-inner,
  body.cinematic-home .kinetic-word-inner{
    will-change:transform,opacity!important;
    transform-origin:50% 72%!important;
  }

  body.cinematic-home .cinema-actions .cinema-btn,
  body.cinematic-home .cinema-text-link{
    will-change:transform!important;
  }
}

@media (max-width:420px){
  body.cinematic-home .cinema-scene,
  body.cinematic-home .cinema-scene.cinema-hero{
    perspective:760px!important;
  }

  body.cinematic-home.low-power-motion .ambient-particles.is-active{opacity:.7!important}
  body.cinematic-home.low-power-motion .ambient-particles.dissolve-particles.is-active{opacity:.86!important}
}
