/* Cinematic motion (ashtaherian.net + playbook). Scoped under html.cine-on, set by cinematic.js. */
@keyframes cineHero{0%{transform:scale(1.05) translate3d(0,0,0)}100%{transform:scale(1.30) translate3d(-7%,-5%,0)}}
@keyframes cineImg{0%{transform:scale(1.05) translate3d(0,0,0)}100%{transform:scale(1.25) translate3d(-6.4%,-6.4%,0)}}
html.cine-on .hero-cine__bg{transform-origin:50% 50%;will-change:transform,translate;animation:cineHero 11s ease-in-out infinite alternate!important}
html.cine-on .cine-frame{position:relative;overflow:hidden;isolation:isolate;max-width:100%}
html.cine-on .cine-frame>img.cine-img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;margin:0!important;border-radius:0!important;object-fit:cover;transform-origin:50% 50%;will-change:transform;animation:cineImg 8s ease-in-out infinite alternate}
html.cine-on .cine-reveal{opacity:0;transform:translate3d(0,60px,0) scale(.96);transform-origin:50% 0;transition:opacity 1.2s ease-out,transform 1.2s cubic-bezier(.2,.7,.2,1)}
html.cine-on .cine-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.cine-on .hero-cine__bg,html.cine-on .cine-frame>img.cine-img{animation:none!important;transform:none!important;translate:none!important}html.cine-on .cine-reveal{opacity:1!important;transform:none!important;transition:none!important}}
/* v2: per-hero motion. Drone fly-through (.net hub) and flying plane with parallax layers (playbook). */
@keyframes cineDrone{0%{opacity:1;transform:translate3d(5%,0,0) scale(1.16) rotate(-.4deg)}46%{opacity:1}50%{opacity:0;transform:translate3d(-6%,2.5%,0) scale(1.32) rotate(.4deg)}50.1%{opacity:0;transform:translate3d(5%,0,0) scale(1.16) rotate(-.4deg)}96%{opacity:0;transform:translate3d(5%,0,0) scale(1.16) rotate(-.4deg)}100%{opacity:1;transform:translate3d(5%,0,0) scale(1.16) rotate(-.4deg)}}
html.cine-on .hero-cine--drone .hero-cine__bg{transform-origin:50% 50%;animation:cineDrone 44s linear infinite!important}
html.cine-on .hero-cine--drone .hero-cine__bg.cine-clone{animation-delay:-22s!important}
@keyframes cineSky{0%{opacity:1;transform:translate3d(-5%,0,0) scale(1.14)}45%{opacity:1}50%{opacity:0;transform:translate3d(5%,-1%,0) scale(1.18)}50.1%{opacity:0;transform:translate3d(-5%,0,0) scale(1.14)}95%{opacity:0;transform:translate3d(-5%,0,0) scale(1.14)}100%{opacity:1;transform:translate3d(-5%,0,0) scale(1.14)}}
html.cine-on .hero-cine--plane .hero-cine__bg:not(.hero-cine__plane){transform-origin:50% 50%;animation:cineSky 28s linear infinite!important}
html.cine-on .hero-cine--plane .hero-cine__bg.cine-clone{animation-delay:-14s!important}
@keyframes cinePlane{0%{transform:translate3d(0,0,0) rotate(0deg)}12.5%{transform:translate3d(-1.6%,-1.4%,0) rotate(-2deg)}25%{transform:translate3d(-3.2%,-2.2%,0) rotate(-3.2deg)}37.5%{transform:translate3d(-4.6%,-1.2%,0) rotate(-1.5deg)}50%{transform:translate3d(-5.2%,.4%,0) rotate(.8deg)}62.5%{transform:translate3d(-4.4%,1.8%,0) rotate(2.6deg)}75%{transform:translate3d(-2.8%,2.4%,0) rotate(3deg)}87.5%{transform:translate3d(-1.2%,1.2%,0) rotate(1.4deg)}100%{transform:translate3d(0,0,0) rotate(0deg)}}
html.cine-on .hero-cine--plane .hero-cine__plane{z-index:0;transform-origin:60% 43%;animation:cinePlane 11s ease-in-out infinite!important}
.hero-cine__plane{pointer-events:none}
@media (prefers-reduced-motion:reduce){html.cine-on .hero-cine__bg.cine-clone{display:none}html.cine-on .hero-cine--drone .hero-cine__bg,html.cine-on .hero-cine--plane .hero-cine__bg{animation:none!important;transform:none!important;opacity:1!important}}
html.cine-on .hero-cine--drone .hero-cine__bg:not(.cine-clone),html.cine-on .hero-cine--plane .hero-cine__bg:not(.cine-clone){opacity:1!important}
