/* Gesture responses preserve the existing layout and native controls. */
.responsive-surface{--pointer-x:50%;--pointer-y:50%;--tilt-x:0deg;--tilt-y:0deg;--drift-x:0px;--drift-y:0px;--scene-scroll:0px}
.hero-art{perspective:1100px}
.hero-art .hero-image-wrap{transform:rotate(1deg) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));translate:0 var(--scene-scroll);transition:transform .65s cubic-bezier(.2,.65,.25,1),translate .5s ease-out;will-change:auto}
.hero-art .floating-label{translate:var(--drift-x) var(--drift-y);transition:translate .65s ease-out}
.hero-art .label-code{translate:calc(var(--drift-x) * -1) calc(var(--drift-y) * -1)}
.hero-art::after{content:'';position:absolute;inset:-12px;border-radius:45%;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),#c176ed40,transparent 43%);z-index:-1;opacity:0;transition:opacity .6s;pointer-events:none}
.hero-art.pointer-engaged::after{opacity:1}
.home-service-card,.service-photo,.work-card,.demo-browser{perspective:1000px;transition:rotate .45s ease-out,transform .45s,box-shadow .45s,border-color .45s}
/* Independent rotation leaves each card's existing hover lift intact. */
.home-service-card,.service-photo,.work-card,.demo-browser{rotate:none}
.home-service-card.pointer-engaged,.work-card.pointer-engaged,.demo-browser.pointer-engaged{rotate:y var(--tilt-y)}
.home-card-image,.service-photo,.work-image,.demo-browser{position:relative}
.home-card-image::after,.service-photo::after,.work-image::after,.demo-browser::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),#ead3ff4a,transparent 54%);opacity:0;transition:opacity .4s;pointer-events:none;z-index:2;border-radius:inherit}
.pointer-engaged .home-card-image::after,.service-photo.pointer-engaged::after,.pointer-engaged .work-image::after,.demo-browser.pointer-engaged::after{opacity:1}
.home-service-card:focus-visible{outline:2px solid #9d5ed2;outline-offset:5px;box-shadow:0 0 24px #a97bdd40}
.featured-image img{translate:0 var(--scene-scroll,0px);scale:1.045;transition:translate .55s ease-out,transform .55s,scale .55s}
.neon-button.pointer-engaged{translate:var(--drift-x) var(--drift-y)}
.neon-button{transition:translate .55s ease-out,transform .3s,box-shadow .3s,background .3s}
.motion-paused .responsive-surface,.tab-hidden .responsive-surface{rotate:none;translate:none}
.motion-paused .hero-art .hero-image-wrap,.motion-paused .hero-art .floating-label,.motion-paused .featured-image img{translate:none;transition:none}
.motion-paused .hero-art .hero-image-wrap{transform:rotate(1deg)}
@media(hover:none),(pointer:coarse){.responsive-surface{rotate:none!important}.neon-button{translate:none!important}.hero-art .hero-image-wrap{transform:rotate(1deg)}.hero-art .floating-label{translate:none}.home-card-image::after,.service-photo::after,.work-image::after,.demo-browser::after{display:none}}
@media(prefers-reduced-motion:reduce){.responsive-surface{rotate:none!important;translate:none!important}.hero-art .hero-image-wrap{transform:rotate(1deg);translate:none;transition:none}.hero-art .floating-label,.featured-image img{translate:none;transition:none}.hero-art::after,.home-card-image::after,.service-photo::after,.work-image::after,.demo-browser::after{display:none}}
