/*!
 * IBS 3D Effects · v1.0
 * Universal 3D hover + tilt effects for all photos and cards.
 * Adds subtle depth to card grids, gallery figures, and profile photos.
 */

/* Preserve 3D transform context on containers */
.tilt-3d, figure, .profile-card, .feature-card, .card,
.gallery-grid > *, .grid-3 > *, .grid-2 > *, .grid > *,
.card-grid > *, .stat, .kpi, .role-card, .ai-mock {
  transform-style: preserve-3d;
  transition: transform .35s cubic-bezier(.2,.8,.2,1),
              box-shadow .35s cubic-bezier(.2,.8,.2,1),
              filter .35s;
  will-change: transform;
}

/* Depth on hover */
.tilt-3d:hover,
figure:hover,
.profile-card:hover,
.feature-card:hover,
.gallery-grid > *:hover,
.card-grid > *:hover,
.stat:hover,
.kpi:hover,
.role-card:hover,
.ai-mock:hover {
  transform: perspective(1200px) rotateX(3.5deg) rotateY(-5deg) translateY(-6px) scale(1.02);
  box-shadow: 0 30px 60px rgba(6,128,41,.22), 0 12px 24px rgba(0,0,0,.12);
}

/* Photos inside cards zoom subtly */
figure img, .profile-card .photo img, .card .photo img,
.gallery-grid img, .hero-panel img {
  transition: transform .5s cubic-bezier(.2,.8,.2,1), filter .35s;
}
figure:hover img, .profile-card:hover .photo img, .card:hover .photo img,
.gallery-grid > *:hover img {
  transform: scale(1.06) translateZ(30px);
  filter: brightness(1.05) saturate(1.1);
}

/* Logo depth */
img[alt*="logo" i], img[alt*="crest" i], .brand-logo, .official-logo {
  transition: transform .4s cubic-bezier(.2,.8,.2,1), filter .4s;
}
img[alt*="logo" i]:hover, img[alt*="crest" i]:hover,
.brand-logo:hover, .official-logo:hover {
  transform: perspective(600px) rotateY(15deg) rotateX(-8deg) scale(1.08);
  filter: drop-shadow(0 12px 24px rgba(6,128,41,.35));
}

/* Give images subtle rounded corners + gradient border box (if none) */
figure > img, .gallery-grid img {
  border-radius: 10px;
}

/* Portal buttons / CTA on hover lift */
.hero-actions a, .role-card .go, .cta, .btn-primary {
  transition: transform .2s cubic-bezier(.2,.8,.2,1), box-shadow .25s;
}
.hero-actions a:hover, .role-card .go:hover, .cta:hover, .btn-primary:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 12px 24px rgba(6,128,41,.25);
}

/* Skip effects on touch and reduced-motion */
@media (hover: none) {
  .tilt-3d:hover, figure:hover, .profile-card:hover,
  .feature-card:hover, .gallery-grid > *:hover,
  .card-grid > *:hover, .stat:hover, .kpi:hover,
  .role-card:hover, .ai-mock:hover {
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
  .tilt-3d, figure, .profile-card, .feature-card, .gallery-grid > *,
  .card-grid > *, .stat, .kpi, .role-card, .ai-mock, .brand-logo, .official-logo {
    transform: none !important;
  }
}
