/* Shared studio gestures: restrained travel, tactile depth, stable native links. */
.studio-magnetic { translate: var(--magnet-x, 0px) var(--magnet-y, 0px); }
.studio-depth { transform: perspective(1000px) rotateX(var(--depth-x, 0deg)) rotateY(var(--depth-y, 0deg)); transform-origin: 50% 50%; }
.studio-pointer-active { will-change: transform; }
.studio-magnetic.studio-pointer-active { will-change: translate; }
.service-overview-visual.studio-depth { overflow: hidden; }
.service-overview-visual.studio-depth::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(115deg, transparent 20%, #ffffff0d 48%, transparent 75%); opacity: 0; transform: translateX(-45%); transition: opacity .4s, transform .85s cubic-bezier(.22,1,.36,1); }
.service-overview-visual.studio-pointer-active::after { opacity: 1; transform: translateX(25%); }
.gallery-static-image.studio-depth { overflow: hidden; }
.header .brand .star { transition: transform .8s cubic-bezier(.22,1,.36,1); }
.desktop-nav a { position: relative; }
.desktop-nav a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -7px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform .4s cubic-bezier(.22,1,.36,1); }
.desktop-nav a:is(:hover,:focus-visible)::after { transform: scaleX(1); transform-origin: left; }
@media (hover: hover) and (pointer: fine) {
  body:not(.motion-paused) .header .brand:hover .star { transform: rotate(90deg); }
  body:not(.motion-paused) .studio-magnetic:hover > :is(svg, .project-arrow, .ui-icon) { transform: translate(4px,-4px); }
  body:not(.motion-paused) .service-overview-row:hover .service-overview-card.front { transform: translate(-2px,-3px) rotate(-3deg); }
  body:not(.motion-paused) .service-overview-row:hover .service-overview-card.back { transform: translate(3px,3px) rotate(4deg); }
  body:not(.motion-paused) .service-overview-row:hover .service-overview-sheet { transform: translateY(-3px) rotate(-2deg); }
  .service-overview-card, .service-overview-sheet { transition: transform .65s cubic-bezier(.22,1,.36,1); }
}
.motion-paused .studio-magnetic { translate: none; }
.motion-paused .studio-depth { transform: none; }
.motion-paused .header .brand .star { transform: none; transition: none; }
.motion-paused .desktop-nav a::after { transition: none; }
.motion-paused .service-overview-visual::after { opacity: 0; transition: none; }
.motion-paused .service-overview-row :is(.service-overview-card,.service-overview-sheet) { transform: none; transition: none; }
@media (hover: none), (pointer: coarse) {
  .studio-magnetic { translate: none; }
  .studio-depth { transform: none; }
  .service-overview-visual.studio-depth::after { display: none; }
  body .service-overview-row:hover :is(.service-overview-card,.service-overview-sheet) { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  body:not(.motion-enabled) .studio-magnetic { translate: none; }
  body:not(.motion-enabled) .studio-depth { transform: none; }
  body:not(.motion-enabled) .service-overview-visual.studio-depth::after { display: none; }
  body:not(.motion-enabled) .service-overview-row:hover :is(.service-overview-card,.service-overview-sheet) { transform: none; }
}
