/* Emil design engineering + animate: motion is confined to decorative media. */
.eh-home { --ease-out: cubic-bezier(0.23,1,0.32,1); --ease-in-out: cubic-bezier(0.77,0,0.175,1); }
body:has(.eh-home) .eh-hero-copy { animation:none; transform:none; }
.eh-home .eh-collage, .eh-home .eh-project-collage { perspective:1200px; }
.eh-home .eh-photo, .eh-home .eh-project-collage figure {
  box-shadow:0 18px 44px rgba(8,31,59,.18);
  transform-style:preserve-3d;
  transition:transform 250ms var(--ease-out);
}
.eh-home .eh-link a { transition:transform 160ms var(--ease-out); }
.eh-home .eh-link a:hover { gap:24px; }
.eh-home .eh-photo img, .eh-home .eh-project-collage img { transition:transform 250ms var(--ease-out); }
.eh-home .eh-photo:hover img { transform:none; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .eh-home .eh-photo-one { transform:rotateY(-4deg) rotateX(2deg); }
  .eh-home .eh-photo-two { transform:rotateY(4deg) rotateX(-2deg); }
  .eh-home .eh-photo:hover, .eh-home .eh-project-collage figure:hover {
    transform:rotateX(-2deg) rotateY(3deg) translateZ(12px);
  }
  .eh-home .eh-photo:hover img, .eh-home .eh-project-collage figure:hover img { transform:scale(1.025); }
  .eh-home .eh-link a:hover { transform:translateY(-2px); }
  .eh-home .eh-link a:active { transform:scale(.97); }
}
.eh-home .eh-link a:focus-visible { transition:none; transform:none; }
@media (prefers-reduced-motion:reduce) {
  .eh-home .eh-photo, .eh-home .eh-project-collage figure, .eh-home .eh-photo img,
  .eh-home .eh-project-collage img, .eh-home .eh-link a { transform:none!important; }
}

body:has(.eh-home) .eh-hero::before { content:""; position:absolute; inset:-3%; z-index:-2; background:inherit; pointer-events:none; }

/* Rounded media and compact rotating project deck. */
.eh-home .eh-photo, .eh-home .eh-project-collage figure { border-radius:22px; overflow:hidden; border:1px solid rgba(255,255,255,.7); box-shadow:0 24px 48px -18px rgba(8,31,59,.38),0 3px 8px rgba(8,31,59,.08); }
.eh-home .eh-photo img, .eh-home .eh-project-collage img { border-radius:inherit; }
.eh-home .eh-project-collage.eg-deck { position:relative; width:100%; max-width:560px; margin-inline:auto; perspective:1200px; padding:18px 14px 0; box-sizing:border-box; }
.eh-home .eg-deck > .wp-block-group__inner-container { display:block!important; position:relative; height:clamp(270px,31vw,420px); }
.eh-home .eg-deck .eh-photo-pair, .eh-home .eg-deck .eh-photo-pair > .wp-block-group__inner-container { display:contents; }
.eh-home .eg-deck figure { position:absolute!important; inset:0 0 42px!important; margin:0!important; width:100%!important; height:auto!important; opacity:0; transform:translateY(-24px) scale(.96); transition:transform 650ms var(--ease-out),opacity 650ms var(--ease-out); pointer-events:none; }
.eh-home .eg-deck figure img { display:block; width:100%!important; height:100%!important; object-fit:cover; transform:none!important; }
.eh-home .eg-deck figure[data-deck-position="0"] { z-index:3; opacity:1; transform:translateY(0) rotateX(0) scale(1); }
.eh-home .eg-deck figure[data-deck-position="1"] { z-index:2; opacity:.65; transform:translateY(-12px) rotateX(3deg) scale(.95); }
.eh-home .eg-deck figure[data-deck-position="2"] { z-index:1; opacity:.35; transform:translateY(-24px) rotateX(6deg) scale(.9); }
.eh-home .eg-deck-controls { position:absolute; bottom:0; inset-inline:0; display:flex; align-items:center; justify-content:center; gap:8px; z-index:4; }
.eh-home .eg-deck-controls button { display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; padding:0; border:1px solid #c5d3df; border-radius:50%; background:#fff; color:#123b66; cursor:pointer; font:16px/1 sans-serif; }
.eh-home .eg-deck-controls button[aria-current="true"] { background:#123b66; color:#fff; border-color:#123b66; }
.eh-home .eg-deck-controls button:focus-visible { outline:2px solid #1687bf; outline-offset:3px; }
@media(max-width:800px) { .eh-home .eh-photo { border-radius:18px; } .eh-home .eg-deck > .wp-block-group__inner-container { height:clamp(290px,76vw,420px); } }
@media(prefers-reduced-motion:reduce) { .eh-home .eg-deck figure { transition:opacity 160ms ease; transform:none!important; opacity:0; } .eh-home .eg-deck figure[data-deck-position="0"] { opacity:1; } }

/* Continuous circular flow: foreground -> side -> background -> foreground. */
.eh-home .eg-orbit > .wp-block-group__inner-container { perspective:1100px; transform-style:preserve-3d; }
.eh-home .eg-orbit figure { animation:eg-photo-orbit-spacious 27s linear infinite; transition:none; opacity:1; z-index:auto; transform-origin:center; backface-visibility:hidden; inset:18px 12% 42px!important; width:76%!important; }
@media(max-width:800px) { .eh-home .eg-orbit figure { inset:18px 14% 42px!important; width:72%!important; } }
.eh-home .eg-orbit figure[data-orbit-slide="0"] { animation-delay:0s; }
.eh-home .eg-orbit figure[data-orbit-slide="1"] { animation-delay:-18s; }
.eh-home .eg-orbit figure[data-orbit-slide="2"] { animation-delay:-9s; }
.eh-home .eg-orbit .eg-deck-controls { transform:translateZ(40px); }
.eh-home .eg-orbit[data-orbit-paused="true"] figure { animation-play-state:paused; }
.eh-home .eh-project-collage.eg-deck{max-width:640px;padding-inline:0}
.eh-home .eg-orbit figure{inset:18px 9% auto!important;width:82%!important;height:auto!important;aspect-ratio:16/9}
.eh-home .eg-deck-controls{display:none!important}
/* Wider circular path keeps the cards apart when their depths cross. */
@keyframes eg-photo-orbit-spacious {
  0%,5.5556%,100% { transform:translate3d(0,0,0) scale(1); }
  22.222% { transform:translate3d(-60%,-5%,-90px) scale(.96); }
  33.333%,44.444% { transform:translate3d(-60%,-10%,-230px) scale(.9); }
  55.555% { transform:translate3d(0,-14%,-310px) scale(.86); }
  66.666%,77.777% { transform:translate3d(60%,-10%,-230px) scale(.9); }
  88.888% { transform:translate3d(60%,-5%,-90px) scale(.96); }
}
/* Gentle opacity alternative for reduced motion. */
@keyframes eg-photo-dissolve {
  0%,33.332% { opacity:1; z-index:1; }
  33.333%,83.332% { opacity:0; z-index:1; }
  83.333% { opacity:0; z-index:3; animation-timing-function:var(--ease-in-out); }
  100% { opacity:1; z-index:3; }
}
@media(prefers-reduced-motion:reduce) {
 .eh-home .eg-orbit figure { animation-name:eg-photo-dissolve; transform:none!important; }
}
@keyframes eg-photo-orbit-gentle {
 0%,25%,100% { opacity:1; z-index:3; }
 33.333%,91.666% { opacity:0; z-index:1; }
}


