/* Homepage-only motion enhancement. The approved hero layout and media remain unchanged. */

body.home .dc-landing--homepage {
  --home-motion-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --home-motion-shift: clamp(1.4rem, 4vw, 4rem);
  --home-intro-shift: 2rem;
  --home-panel-travel: 2.2rem;
}

body.home .dc-landing--homepage [data-home-motion-hero] {
  isolation: isolate;
  overflow: clip;
}

body.home .dc-landing--homepage [data-home-motion-intro] {
  opacity: 1;
  transform: none;
}

body.home.is-home-intro-primed .dc-landing--homepage [data-home-motion-intro] {
  animation: home-intro-rise 1050ms var(--home-motion-ease) both;
}

body.home.is-home-intro-primed .dc-landing--homepage .hero-stage__rhythm[data-home-motion-intro] {
  animation: home-strategy-enter 980ms var(--home-motion-ease) 80ms both;
}

body.home.is-home-intro-primed .dc-landing--homepage [data-home-motion-intro]:nth-child(2) {
  animation-delay: 150ms;
}

body.home.is-home-intro-primed .dc-landing--homepage .hero-stage__actions[data-home-motion-intro] {
  animation-delay: 320ms;
}

@keyframes home-intro-rise {
  from {
    opacity: 0;
    transform: translate3d(0, var(--home-intro-shift), 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes home-strategy-enter {
  0% {
    opacity: 0;
    filter: blur(5px);
    transform: translate3d(0, 0.8rem, 0) scale(0.985);
  }
  58% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    filter: none;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

body.home .dc-landing--homepage [data-home-motion-section] {
  --home-scene-near-y: 0px;
  --home-scene-far-y: 0px;
  --home-scene-near-x: 0px;
  --home-scene-far-x: 0px;
  --home-scene-tilt: 0deg;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  overflow: clip;
}

body.home .dc-landing--homepage .home-motion-item {
  opacity: 0;
  will-change: opacity, transform, filter, clip-path;
}

body.home .dc-landing--homepage .home-motion-section.is-visible .home-motion-item {
  opacity: 1;
  filter: none;
  clip-path: none;
  animation-delay: var(--home-motion-delay, 0ms);
  animation-duration: 1050ms;
  animation-fill-mode: backwards;
  animation-timing-function: var(--home-motion-ease);
}

body.home .dc-landing--homepage .home-motion-section.is-visible [data-home-motion-animation="slide-left"] {
  animation-name: home-scene-slide-left;
}

body.home .dc-landing--homepage .home-motion-section.is-visible [data-home-motion-animation="slide-right"] {
  animation-name: home-scene-slide-right;
}

body.home .dc-landing--homepage .home-motion-section.is-visible [data-home-motion-animation="rise"] {
  animation-name: home-scene-rise;
}

body.home .dc-landing--homepage .home-motion-section.is-visible [data-home-motion-animation="drop"] {
  animation-name: home-scene-drop;
}

body.home .dc-landing--homepage .home-motion-section.is-visible [data-home-motion-animation="unfold"] {
  animation-name: home-scene-unfold;
}

body.home .dc-landing--homepage .home-motion-section.is-visible [data-home-motion-animation="focus"] {
  animation-name: home-scene-focus;
}

body.home .dc-landing--homepage .home-motion-section.is-visible [data-home-motion-animation="cascade"] {
  animation-name: home-scene-cascade;
}

body.home .dc-landing--homepage .home-motion-section.is-visible [data-home-motion-animation="fan"] {
  animation-name: home-scene-fan;
}

@keyframes home-scene-slide-left {
  from { opacity: 0; filter: blur(7px); transform: translate3d(-7rem, 2rem, 0) rotateY(5deg); }
  to { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0) rotateY(0); }
}

@keyframes home-scene-slide-right {
  from { opacity: 0; filter: blur(8px); transform: translate3d(7rem, 2.5rem, 0) rotateY(-5deg) scale(0.965); }
  to { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0) rotateY(0) scale(1); }
}

@keyframes home-scene-rise {
  from { opacity: 0; filter: blur(6px); transform: translate3d(0, 5.5rem, 0) scale(0.975); }
  to { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0) scale(1); }
}

@keyframes home-scene-drop {
  from { opacity: 0; filter: blur(5px); clip-path: inset(0 0 100% 0); transform: translate3d(0, -3.75rem, 0); }
  to { opacity: 1; filter: blur(0); clip-path: inset(0); transform: translate3d(0, 0, 0); }
}

@keyframes home-scene-unfold {
  from { opacity: 0; filter: blur(5px); clip-path: inset(0 48% 0 48%); transform: translate3d(0, 2.5rem, 0) scale(0.94); }
  to { opacity: 1; filter: blur(0); clip-path: inset(0); transform: translate3d(0, 0, 0) scale(1); }
}

@keyframes home-scene-focus {
  from { opacity: 0; filter: blur(16px) saturate(0.7); transform: translate3d(0, 3.5rem, -6rem) scale(1.08); }
  to { opacity: 1; filter: blur(0) saturate(1); transform: translate3d(0, 0, 0) scale(1); }
}

@keyframes home-scene-cascade {
  from { opacity: 0; filter: blur(6px); transform: translate3d(-3rem, 3rem, 0) rotate(-1.5deg); }
  to { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0) rotate(0); }
}

@keyframes home-scene-fan {
  from { opacity: 0; filter: blur(7px); clip-path: inset(0 0 0 88%); transform: translate3d(5rem, 2rem, 0) rotate(1.75deg); }
  to { opacity: 1; filter: blur(0); clip-path: inset(0); transform: translate3d(0, 0, 0) rotate(0); }
}

@keyframes home-scene-mobile {
  from { opacity: 0; filter: blur(4px); transform: translate3d(0, 1.25rem, 0) scale(0.99); }
  to { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0) scale(1); }
}

body.home .dc-landing--homepage .home-motion-section::after {
  position: absolute;
  top: 0;
  left: var(--dc-shell-gutter);
  width: 0;
  height: 2px;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(90deg, var(--dc-brand-bay), rgba(202, 164, 99, 0.8));
  content: "";
  transition: width 1100ms var(--home-motion-ease) 120ms;
}

body.home .dc-landing--homepage .home-motion-section > * {
  position: relative;
  z-index: 1;
}

body.home .dc-landing--homepage .home-motion-section.is-visible::after {
  width: min(9rem, 22vw);
}

body.home .dc-landing--homepage [data-home-motion-scene] [data-home-motion-role="near"] {
  translate: var(--home-scene-near-x) var(--home-scene-near-y);
}

body.home .dc-landing--homepage [data-home-motion-scene] [data-home-motion-role="far"] {
  translate: var(--home-scene-far-x) var(--home-scene-far-y);
  rotate: var(--home-scene-tilt);
}

body.home .dc-landing--homepage [data-home-motion-heading] {
  transform: translate3d(0, var(--home-heading-shift, 0px), 0);
  will-change: transform;
}

body.home .dc-landing--homepage #county-atlas .atlas-stage__bridge-map {
  transform: translate3d(var(--home-map-shift-x, 0px), clamp(-10.5rem, -13vw, -8rem), 0);
  will-change: transform;
}

body.home .dc-landing--homepage .home-motion-media {
  overflow: clip;
}

body.home .dc-landing--homepage .home-motion-media :is(img, video, svg) {
  will-change: transform;
  transform: translate3d(0, var(--home-media-shift, 0px), 0) scale(var(--home-media-scale, 1.025));
  transform-origin: center;
}

body.home .dc-landing--homepage .home-concierge__choices {
  isolation: isolate;
}

body.home .dc-landing--homepage .home-concierge__choices::after {
  position: absolute;
  top: var(--home-concierge-indicator-y, 0);
  left: var(--home-concierge-indicator-x, 0);
  width: var(--home-concierge-indicator-width, 0);
  height: var(--home-concierge-indicator-height, 0);
  z-index: -1;
  pointer-events: none;
  border: 1px solid rgba(31, 111, 159, 0.46);
  border-radius: 0.9rem;
  background: linear-gradient(135deg, rgba(232, 241, 247, 0.88), rgba(255, 253, 248, 0.72));
  box-shadow: 0 18px 42px rgba(31, 111, 159, 0.14);
  content: "";
  opacity: 0;
  transition:
    top 480ms var(--home-motion-ease),
    left 480ms var(--home-motion-ease),
    width 480ms var(--home-motion-ease),
    height 480ms var(--home-motion-ease),
    opacity 240ms ease;
}

body.home .dc-landing--homepage .home-concierge__choices.home-concierge-motion-ready::after {
  opacity: 1;
}

body.home .dc-landing--homepage .home-concierge__choices.home-concierge-motion-ready .home-concierge__choice[aria-pressed="true"] {
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}

body.home .dc-landing--homepage .home-concierge__panel.is-home-panel-entering {
  animation: home-panel-enter 580ms var(--home-motion-ease) both;
}

body.home .dc-landing--homepage .home-concierge__panel.is-home-panel-entering .home-concierge__panel-copy > *,
body.home .dc-landing--homepage .home-concierge__panel.is-home-panel-entering .home-concierge__panel-proof > * {
  animation: home-panel-detail 520ms var(--home-motion-ease) both;
  animation-delay: calc(var(--home-motion-panel-item, 0) * 55ms);
}

@keyframes home-panel-enter {
  from { opacity: 0.18; transform: translate3d(calc(var(--home-panel-direction, 1) * var(--home-panel-travel)), 0, 0) scale(0.992); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}

@keyframes home-panel-detail {
  from { opacity: 0; transform: translate3d(0, 1rem, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

body.home .dc-landing--homepage .home-signature-sequence .split-panel__content {
  transform: translate3d(0, var(--home-expertise-content-shift, 0px), 0);
  will-change: transform;
}

body.home .dc-landing--homepage .home-signature-sequence .split-panel__aside {
  transform: translate3d(0, var(--home-expertise-aside-shift, 0px), 0);
  will-change: transform;
}

body.home .dc-landing--homepage .home-signature-sequence {
  min-height: clamp(48rem, 80vh, 60rem);
  align-items: center;
  isolation: isolate;
}

body.home .dc-landing--homepage .home-signature-sequence::before {
  position: absolute;
  inset: 9% 4%;
  z-index: -1;
  pointer-events: none;
  border: 1px solid rgba(202, 164, 99, 0.18);
  background:
    radial-gradient(circle at calc(18% + (var(--home-expertise-progress, 0) * 30%)) 46%, rgba(31, 111, 159, 0.19), transparent 34%),
    linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, 0.035) 48%, transparent 66%);
  content: "";
  opacity: calc(0.34 + (var(--home-expertise-progress, 0) * 0.66));
  transform: scale(calc(0.985 + (var(--home-expertise-progress, 0) * 0.015)));
}

body.home .dc-landing--homepage .home-signature-sequence .home-expertise-stage__card.home-card-interaction {
  transform:
    perspective(1000px)
    rotateX(var(--home-card-rotate-x))
    rotateY(var(--home-card-rotate-y))
    rotateZ(var(--home-expertise-card-tilt, 0deg));
  transform-origin: 50% 100%;
}

body.home .dc-landing--homepage .home-card-interaction {
  --home-card-rotate-x: 0deg;
  --home-card-rotate-y: 0deg;
  position: relative;
  transform: perspective(1100px) rotateX(var(--home-card-rotate-x)) rotateY(var(--home-card-rotate-y));
  transform-style: preserve-3d;
  transition: transform 420ms var(--home-motion-ease), box-shadow 420ms ease, border-color 420ms ease;
}

body.home .dc-landing--homepage .home-card-interaction::after {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(circle at var(--home-card-light-x, 50%) var(--home-card-light-y, 50%), rgba(255, 255, 255, 0.22), transparent 36%);
  content: "";
  opacity: 0;
  transition: opacity 300ms ease;
}

body.home .dc-landing--homepage .home-card-interaction:hover::after {
  opacity: 1;
}

body.home .dc-landing--homepage .home-carousel-motion-item {
  animation: home-carousel-next 500ms var(--home-motion-ease) both;
}

body.home .dc-landing--homepage [data-home-carousel-direction="previous"] .home-carousel-motion-item {
  animation-name: home-carousel-previous;
}

@keyframes home-carousel-next {
  0% { transform: translate3d(0, 0, 0); }
  48% { transform: translate3d(-0.55rem, 0, 0); }
  100% { transform: translate3d(0, 0, 0); }
}

@keyframes home-carousel-previous {
  0% { transform: translate3d(0, 0, 0); }
  48% { transform: translate3d(0.55rem, 0, 0); }
  100% { transform: translate3d(0, 0, 0); }
}

body.home .dc-landing--homepage :is(.dc-button, .listing-text-link, .listing-card__link) {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform 260ms var(--home-motion-ease), box-shadow 260ms ease, color 220ms ease, background-color 220ms ease;
}

body.home .dc-landing--homepage :is(.dc-button, .listing-text-link, .listing-card__link)::after {
  position: absolute;
  top: -80%;
  left: -48%;
  width: 32%;
  height: 260%;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.28), transparent);
  content: "";
  opacity: 0;
  transform: translateX(0) rotate(14deg);
  transition: transform 520ms var(--home-motion-ease), opacity 220ms ease;
}

body.home .dc-landing--homepage :is(.dc-button, .listing-text-link, .listing-card__link):is(:hover, :focus-visible) {
  transform: translate3d(0.18rem, -0.1rem, 0);
}

body.home .dc-landing--homepage :is(.dc-button, .listing-text-link, .listing-card__link):is(:hover, :focus-visible)::after {
  opacity: 1;
  transform: translateX(440%) rotate(14deg);
}

body.home .dc-landing--homepage .home-service-stage .home-service-card,
body.home .dc-landing--homepage .home-featured-listings .listing-card,
body.home .dc-landing--homepage .home-reviews-stage [data-carousel-item] {
  transition:
    transform 500ms var(--home-motion-ease),
    box-shadow 500ms ease,
    border-color 500ms ease;
}

@media (hover: hover) and (pointer: fine) {
  body.home .dc-landing--homepage .home-card-interaction:is(:hover, :focus-within) {
    transform: perspective(1100px) rotateX(var(--home-card-rotate-x)) rotateY(var(--home-card-rotate-y)) translateY(-0.2rem);
  }

  body.home .dc-landing--homepage .home-featured-listings .listing-card.home-card-interaction:is(:hover, :focus-within),
  body.home .dc-landing--homepage .home-reviews-stage [data-carousel-item].home-card-interaction:is(:hover, :focus-visible),
  body.home .dc-landing--homepage .home-video-stage .video-preview-card.home-card-interaction:is(:hover, :focus-within) {
    transform: perspective(1100px) rotateX(var(--home-card-rotate-x)) rotateY(var(--home-card-rotate-y)) translateY(-0.35rem);
  }

  body.home .dc-landing--homepage .home-signature-sequence .home-expertise-stage__card.home-card-interaction:is(:hover, :focus-within) {
    transform:
      perspective(1000px)
      rotateX(var(--home-card-rotate-x))
      rotateY(var(--home-card-rotate-y))
      rotateZ(var(--home-expertise-card-tilt, 0deg))
      translateY(-0.2rem);
  }
}

@media (max-width: 720px) {
  body.home .dc-landing--homepage {
    --home-motion-shift: 1.25rem;
    --home-intro-shift: 1.1rem;
    --home-panel-travel: 0.75rem;
  }

  body.home .dc-landing--homepage [data-home-motion-section][id] {
    scroll-margin-top: 5.5rem;
  }

  body.home .dc-landing--homepage .home-motion-item {
    animation-duration: 700ms;
    animation-delay: min(var(--home-motion-delay, 0ms), 180ms);
  }

  body.home .dc-landing--homepage .home-motion-section.is-visible .home-motion-item {
    animation-name: home-scene-mobile;
  }

  body.home .dc-landing--homepage [data-home-motion-scene] [data-home-motion-role] {
    translate: none;
    rotate: none;
  }

  body.home .dc-landing--homepage .home-concierge__panel.is-home-panel-entering {
    animation-duration: 460ms;
  }

  body.home .dc-landing--homepage .home-concierge__panel.is-home-panel-entering .home-concierge__panel-copy > *,
  body.home .dc-landing--homepage .home-concierge__panel.is-home-panel-entering .home-concierge__panel-proof > * {
    animation-duration: 440ms;
    animation-delay: min(calc(var(--home-motion-panel-item, 0) * 45ms), 160ms);
  }

  body.home .dc-landing--homepage .home-carousel-motion-item {
    animation-duration: 380ms;
  }

  body.home .dc-landing--homepage .home-concierge__choices::after {
    border-radius: 0.75rem;
    transition-duration: 380ms;
  }

  body.home .dc-landing--homepage .home-signature-sequence {
    min-height: 0;
    align-items: stretch;
  }

  body.home .dc-landing--homepage .home-signature-sequence::before {
    inset: 1rem;
    opacity: 0.52;
  }

  body.home .dc-landing--homepage .home-signature-sequence .home-expertise-stage__card {
    transform: none;
  }

  body.home .dc-landing--homepage .home-card-interaction {
    transform: translate3d(0, 0, 0);
  }

  body.home .dc-landing--homepage #county-atlas .atlas-stage__bridge-map {
    transform: translate3d(var(--home-map-shift-x, 0px), 0, 0);
  }

  body.home .dc-landing--homepage .home-motion-section::after {
    left: 1rem;
  }

  @media (hover: none) and (pointer: coarse) {
    body.home .dc-landing--homepage :is(
      .dc-button,
      .home-concierge__choice,
      [data-carousel-prev],
      [data-carousel-next],
      .listing-text-link,
      .listing-card__link
    ):active {
      transform: scale(0.985);
      transition-duration: 90ms;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  body.home .dc-landing--homepage .home-signature-sequence::before,
  body.home .dc-landing--homepage .home-concierge__choices::after,
  body.home .dc-landing--homepage .home-concierge__panel,
  body.home .dc-landing--homepage .home-concierge__panel *,
  body.home .dc-landing--homepage .home-signature-sequence :is(.split-panel__content, .split-panel__aside, .home-expertise-stage__card),
  body.home .dc-landing--homepage .home-card-interaction,
  body.home .dc-landing--homepage .home-card-interaction::after,
  body.home .dc-landing--homepage .home-carousel-motion-item,
  body.home .dc-landing--homepage [data-home-motion-scene] [data-home-motion-role],
  body.home .dc-landing--homepage :is(.dc-button, .listing-text-link, .listing-card__link),
  body.home .dc-landing--homepage :is(.dc-button, .listing-text-link, .listing-card__link)::after,
  body.home .dc-landing--homepage [data-home-motion-intro],
  body.home .dc-landing--homepage [data-home-motion-heading],
  body.home .dc-landing--homepage .home-motion-item,
  body.home .dc-landing--homepage .home-motion-media :is(img, video, svg),
  body.home .dc-landing--homepage .home-service-stage .home-service-card,
  body.home .dc-landing--homepage .home-featured-listings .listing-card,
  body.home .dc-landing--homepage .home-reviews-stage [data-carousel-item] {
    opacity: 1;
    animation: none !important;
    transform: none !important;
    transition: none !important;
    translate: none !important;
    rotate: none !important;
  }

  body.home .dc-landing--homepage #county-atlas .atlas-stage__bridge-map {
    margin-inline: 0;
    transform: translateY(clamp(-10.5rem, -13vw, -8rem)) !important;
    will-change: auto;
  }

  @media (max-width: 720px) {
    body.home .dc-landing--homepage #county-atlas .atlas-stage__bridge-map {
      transform: none !important;
    }
  }

  body.home .dc-landing--homepage .home-motion-section::after {
    width: min(9rem, 22vw);
    transition: none;
  }

  body.home .dc-landing--homepage .home-concierge__choices::after {
    opacity: 0;
  }

  body.home .dc-landing--homepage .home-signature-sequence::before {
    opacity: 0.42;
    transform: none;
  }

  body.home .dc-landing--homepage :is(.dc-button, .listing-text-link, .listing-card__link)::after {
    opacity: 0 !important;
  }
}
