/* Individual camera movements within the existing artwork. */
.kt-hero-motion { display: none !important; }
.kt-animated-hero { position: relative; isolation: isolate; overflow: hidden; }
.main > section:first-child::after, .production-hero::before, .production-hero::after, .ai-membership-shell::after { display: none !important; }
.kt-photo-layer { position: absolute; inset: -4%; pointer-events: none; z-index: 0; }
.kt-photo-host { background-image: none !important; }
.kt-photo-host > .container { position: relative; z-index: 1; }
/* Home: readable screen, gently floating in place. */
.home-production-teaser .production-monitor { animation: kt-device-hover 14s ease-in-out infinite alternate; transform-origin: 50% 70%; }
@keyframes kt-device-hover { from { transform: perspective(1400px) translateY(5px) rotateY(-1deg); } to { transform: perspective(1400px) translateY(-7px) rotateY(1deg); } }
/* Production: rise through the architecture behind the stationary copy. */
.production-hero > .kt-photo-layer { animation: kt-city-rise 28s ease-in-out infinite alternate; }
.production-intro-merged .production-monitor { animation: kt-production-depth 19s ease-in-out infinite alternate; }
@keyframes kt-city-rise { from { transform: scale(1.06) translateY(1.5%); } to { transform: scale(1.12) translateY(-1.5%); } }
@keyframes kt-production-depth { from { transform: perspective(1600px) rotateY(-1.3deg) translateY(3px); } to { transform: perspective(1600px) rotateY(.5deg) translateY(-5px); } }
/* Company: follow the neon vanishing point. */
.main > section:first-child .company-platform-visual img { animation: kt-platform-dolly 26s ease-in-out infinite alternate; transform-origin: 62% 46%; }
@keyframes kt-platform-dolly { from { transform: scale(1.07) translateX(-1%); } to { transform: scale(1.17) translateX(1%); } }
/* Hosting: a lateral survey of the infrastructure. */
.hosting-hero > .kt-photo-layer { animation: kt-server-pan 30s ease-in-out infinite alternate; }
@keyframes kt-server-pan { from { transform: scale(1.08) translateX(-2%); } to { transform: scale(1.08) translateX(2%); } }
/* Marketing: approach the android from the side. */
.marketing-hero > .kt-photo-layer { animation: kt-android-pan 25s ease-in-out infinite alternate; transform-origin: 75% 40%; }
@keyframes kt-android-pan { from { transform: scale(1.04) translateX(1%); } to { transform: scale(1.11) translateX(-1.5%); } }
/* AI: move toward the network in the city image. */
.main > section:first-child .ai-membership-shell::before { animation: kt-network-approach 24s ease-in-out infinite alternate; transform-origin: 70% 45%; }
.ai-timeshift-hero .hero-background img { animation: kt-network-pan 29s ease-in-out infinite alternate; }
@keyframes kt-network-approach { from { transform: scale(1.015) translateX(-1%); filter: saturate(1.05) brightness(.94); } to { transform: scale(1.10) translateX(1%); filter: saturate(1.12) brightness(1.01); } }
@keyframes kt-network-pan { from { transform: scale(1.08) translateX(1.5%); } to { transform: scale(1.13) translateX(-1.5%); } }
/* Signature: straight into the corridor, product remains still. */
.main > .signature-hero:first-child .hero-background img { animation: kt-corridor-dolly 27s ease-in-out infinite alternate; transform-origin: 52% 58%; }
@keyframes kt-corridor-dolly { from { transform: scale(1.03); } to { transform: scale(1.15); } }
/* Gold artwork: rotate the existing light field, do not add particles. */
.main > .motion-projects:first-child .motion-poster, .motion-home .motion-poster { animation: kt-gold-turn 32s ease-in-out infinite alternate; transform-origin: 72% 48%; }
@keyframes kt-gold-turn { from { transform: scale(1.08) rotate(-1.5deg); filter: brightness(.94); } to { transform: scale(1.13) rotate(1.5deg); filter: brightness(1.06); } }
.motion-production .motion-poster { animation: kt-city-rise 28s ease-in-out infinite alternate; }
.motion-hosting .motion-poster { animation: kt-server-pan 30s ease-in-out infinite alternate; }
.motion-marketing .motion-poster { animation: kt-android-pan 25s ease-in-out infinite alternate; }
.motion-signature .motion-poster { animation: kt-corridor-dolly 27s ease-in-out infinite alternate; }
.motion-ai .motion-poster { animation: kt-network-pan 29s ease-in-out infinite alternate; }
/* Login: a camera push toward the meeting hands. */
.login-stage-image { animation: kt-hands-approach 28s ease-in-out infinite alternate; transform-origin: 53% 59%; }
@keyframes kt-hands-approach { from { transform: scale(1.02) translateY(.5%); } to { transform: scale(1.10) translateY(-.5%); } }
.kt-motion-paused .kt-photo-layer, .kt-motion-paused .motion-poster, .kt-motion-paused .hero-background img, .kt-motion-paused .production-monitor { animation-play-state: paused; }
@media (prefers-reduced-motion: reduce) {
  .kt-animated-hero, .kt-animated-hero *, .kt-animated-hero::before, .kt-animated-hero::after, .ai-membership-shell::before { animation: none !important; }
}
