/* Homepage motion: intentionally scoped so internal pages keep their current presentation. */
.motion-ready .home-motion [data-reveal] {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .85s ease, transform .85s cubic-bezier(.2,.7,.2,1);
}

.motion-ready .home-motion [data-reveal="left"] { transform: translateX(-34px); }
.motion-ready .home-motion [data-reveal="right"] { transform: translateX(34px); }
.motion-ready .home-motion [data-reveal].is-visible { opacity: 1; transform: translate3d(0,0,0); }
.motion-ready .home-motion [data-reveal-delay="1"] { transition-delay: .14s; }
.motion-ready .home-motion [data-reveal-delay="2"] { transition-delay: .28s; }
.motion-ready .home-motion [data-reveal-delay="3"] { transition-delay: .42s; }

.home-motion .hero-copy-wrap { z-index: 2; }
.home-motion .hero-frame::before {
  background: linear-gradient(90deg, rgba(8,12,12,.78), rgba(8,12,12,.35) 54%, rgba(8,12,12,.12));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 1;
}
.home-motion .hero-slide img { transform: scale(1.04); transition: opacity 1.25s ease, transform 7s ease; }
.home-motion .hero-slide.is-active img { transform: scale(1.12); }
.home-motion .hero-kicker { animation: home-kicker-in .9s ease both .18s; }
.home-motion .hero-title { animation: home-copy-in 1s cubic-bezier(.2,.7,.2,1) both .34s; }
.home-motion .hero-description, .home-motion .hero-actions { animation: home-copy-in 1s cubic-bezier(.2,.7,.2,1) both .5s; }
@keyframes home-kicker-in { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes home-copy-in { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }

.home-motion .motion-stat { position: relative; }
.home-motion .motion-stat::after { background: #c7a24e; bottom: -14px; content: ""; height: 2px; left: 50%; position: absolute; transform: scaleX(0) translateX(-50%); transform-origin: left; transition: transform .8s ease; width: 34px; }
.home-motion .motion-stat.is-visible::after { transform: scaleX(1) translateX(-50%); }
.home-motion .service-card, .home-motion .lot-card { transition: transform .55s cubic-bezier(.2,.7,.2,1), box-shadow .55s ease; }
.home-motion .service-card img, .home-motion .lot-card img { transition: transform .8s cubic-bezier(.2,.7,.2,1); }
@media (hover: hover) {
  .home-motion .service-card:hover, .home-motion .lot-card:hover { box-shadow: 0 22px 48px rgba(20,20,20,.14); transform: translateY(-10px); }
  .home-motion .service-card:hover img, .home-motion .lot-card:hover img { transform: scale(1.07); }
}
.home-motion .service-card img { transform-origin: center; }
.home-motion .brand-story { overflow: hidden; }
.home-motion .brand-story-stack { display: grid; }
.home-motion .brand-story-step { align-items: center; border-top: 1px solid rgba(17,17,17,.12); display: flex; min-height: 52vh; padding: clamp(52px, 8vw, 110px) 0; }
.home-motion .brand-story-step:first-child { border-top: 0; }
.home-motion .brand-story-copy { max-width: 760px; }
.home-motion .brand-story-step--right .brand-story-copy { margin-left: auto; }
.motion-ready .home-motion [data-letter-reveal] .letter-reveal-letter { display: inline-block; opacity: 0; transform: translateY(.8em) rotateX(-82deg); transform-origin: center bottom; white-space: pre; }
.motion-ready .home-motion [data-letter-reveal].is-letter-visible .letter-reveal-letter { animation: alphabet-rise .78s cubic-bezier(.2,.78,.2,1) both; animation-delay: calc(var(--letter-index) * 52ms); }
@keyframes alphabet-rise { 0% { filter: blur(3px); opacity: 0; transform: translateY(.8em) rotateX(-82deg); } 68% { filter: blur(0); opacity: 1; transform: translateY(-.06em) rotateX(8deg); } 100% { filter: blur(0); opacity: 1; transform: translateY(0) rotateX(0); } }
.home-motion .service-feature-list { display: grid; gap: 24px; }
.home-motion .service-feature { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); min-height: 380px; }
.home-motion .service-feature-media { min-height: 320px; overflow: hidden; }
.home-motion .service-feature-media img { display: block; height: 100%; object-fit: cover; width: 100%; }
.home-motion .service-feature-copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 5vw, 72px); }
.home-motion .lot-next-wrap { display: flex; justify-content: flex-end; margin-top: 24px; }
.home-motion .lot-next-control { align-items: center; background: transparent; border: 1px solid rgba(17,17,17,.18); color: #1b1c1c; cursor: pointer; display: inline-flex; font-family: Montserrat, sans-serif; font-size: 12px; font-weight: 700; gap: 12px; letter-spacing: .1em; padding: 13px 16px 13px 20px; text-transform: uppercase; transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease; }
.home-motion .lot-next-control .material-symbols-outlined { font-size: 22px; transition: transform .25s ease; }
.home-motion .lot-next-control:hover, .home-motion .lot-next-control:focus-visible { background: #775a19; border-color: #775a19; color: #fff; outline: none; }
.home-motion .lot-next-control:hover .material-symbols-outlined, .home-motion .lot-next-control:focus-visible .material-symbols-outlined { transform: translateX(4px); }

@media (min-width: 768px) {
  .home-motion .service-feature { height: 380px; min-height: 0; position: sticky; top: 122px; }
  .home-motion .service-feature-media { height: 380px; min-height: 0; }
  .home-motion .service-feature:nth-child(1) { z-index: 1; }
  .home-motion .service-feature:nth-child(2) { z-index: 2; }
  .home-motion .service-feature:nth-child(3) { z-index: 3; }
  .home-motion .service-feature + .service-feature { box-shadow: 0 -18px 44px rgba(20,20,20,.12); }

}

@media (max-width: 767px) {
  .home-motion .brand-story-step { min-height: 0; padding: 64px 0; }
  .home-motion .service-feature-list { gap: 28px; }
  .home-motion .service-feature { grid-template-columns: 1fr; min-height: 0; }
  .home-motion .service-feature-media { min-height: 240px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-motion *, .home-motion *::before, .home-motion *::after { animation-duration: .01ms !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
