/* ============================================================
   TENSHOKU V8.04 — CINEMATIC SCENE VIDEO UPGRADE
   Isolated patch: three existing still visuals become lightweight
   autoplay loops. Existing section structure/copy remains unchanged.
   ============================================================ */

.section-visual .tp-scene-video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  transform:scale(1.015);
  transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter .55s ease,opacity .25s ease;
  will-change:transform;
  background:#090a0c;
}

.section-visual:hover .tp-scene-video{
  transform:scale(1.035);
}

.section-visual.tp-scene-shell{
  background:#090a0c;
}

.section-visual.tp-scene-shell::before{
  background:
    linear-gradient(180deg,rgba(0,0,0,.015) 30%,rgba(0,0,0,.50) 100%),
    radial-gradient(circle at 65% 28%,rgba(175,10,19,.06),transparent 42%);
}

.tp-scene-shell .visual-chip{
  transition:border-color .28s ease,background-color .28s ease,transform .28s ease;
}

.tp-scene-shell.is-scene-playing .visual-chip{
  border-color:rgba(255,55,62,.27);
  background:rgba(8,9,11,.78);
}

.tp-scene-shell.is-scene-playing .visual-chip i{
  animation:tpScenePulse 1.8s ease-out infinite;
}

.tp-scene-shell .tp-scene-status{
  position:absolute;
  z-index:5;
  right:16px;
  bottom:16px;
  display:flex;
  align-items:center;
  gap:3px;
  height:26px;
  padding:0 9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(8,9,11,.58);
  backdrop-filter:blur(9px);
  pointer-events:none;
  opacity:.68;
}

.tp-scene-status b{
  width:2px;
  border-radius:99px;
  background:#ff343b;
  transform-origin:center bottom;
  animation:tpSceneEq .78s ease-in-out infinite alternate;
}
.tp-scene-status b:nth-child(1){height:5px;animation-delay:-.42s}
.tp-scene-status b:nth-child(2){height:10px;animation-delay:-.20s}
.tp-scene-status b:nth-child(3){height:7px;animation-delay:-.58s}
.tp-scene-status b:nth-child(4){height:12px;animation-delay:-.08s}

@keyframes tpScenePulse{
  0%{box-shadow:0 0 0 0 rgba(255,47,47,.28)}
  70%{box-shadow:0 0 0 6px rgba(255,47,47,0)}
  100%{box-shadow:0 0 0 0 rgba(255,47,47,0)}
}

@keyframes tpSceneEq{
  from{transform:scaleY(.55);opacity:.62}
  to{transform:scaleY(1);opacity:1}
}

@media(max-width:720px){
  .section-visual .tp-scene-video,
  .section-visual:hover .tp-scene-video{
    transform:none;
  }
  .tp-scene-shell .tp-scene-status{
    right:12px;
    bottom:12px;
    height:24px;
    padding:0 8px;
  }
}

@media(prefers-reduced-motion:reduce){
  .tp-scene-shell .tp-scene-status b,
  .tp-scene-shell.is-scene-playing .visual-chip i{
    animation:none!important;
  }
  .section-visual .tp-scene-video{
    transform:none!important;
    transition:none!important;
  }
}
