/*
 * AddWisteria Lab HOME Motion v1.0.6
 * All selectors are limited to the static homepage's existing awl-home classes.
 * Visual content remains available with JavaScript disabled.
 */

/* ---------- A: hero art, isolated network animation ---------- */
.awl-home-page .awl-home-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.awl-home-page .awl-home-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: -14%;
  pointer-events: none;
  border-radius: inherit;
  background:
    radial-gradient(ellipse at 76% 72%, rgba(70, 152, 223, .20), transparent 44%),
    radial-gradient(ellipse at 92% 10%, rgba(223, 180, 98, .12), transparent 38%);
  animation: awl-hm-ambient 17s ease-in-out infinite alternate;
}
.awl-home-page .awl-home-hero > * {
  position: relative;
  z-index: 1;
}
.awl-home-page .awl-home-hero-visual {
  position: relative;
  isolation: isolate;
  /* Preserve the original PNG's aspect ratio and border radius. */
  transition: box-shadow .65s cubic-bezier(.2,.65,.2,1), border-color .65s ease;
}
.awl-home-page .awl-home-art-stage {
  position: relative;
  width: 100%;
  overflow: hidden;
  transform: translate3d(var(--awl-hm-x, 0px), var(--awl-hm-y, 0px), 0) scale(1.01);
  transform-origin: center center;
  transition: transform .65s cubic-bezier(.2,.72,.22,1);
}
.awl-home-page .awl-home-art-stage > img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1672 / 941;
  object-fit: contain;
}
.awl-home-page .awl-home-art-stage::after {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(108deg, transparent 34%, rgba(238, 249, 255, .10) 46%, rgba(151, 208, 250, .24) 50%, transparent 59%);
  background-size: 280% 100%;
  background-position: 130% 50%;
  opacity: .76;
  animation: awl-hm-sheen 7s ease-in-out infinite;
}
.awl-home-page .awl-home-motion-network {
  position: absolute;
  z-index: 1;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
  pointer-events: none;
}
.awl-home-page .awl-home-motion-track {
  fill: none;
  stroke: #107bd0;
  stroke-width: 1.45;
  stroke-linecap: round;
  opacity: .22;
}
.awl-home-page .awl-home-motion-track--upper {
  stroke: #248bd0;
  stroke-width: 1.25;
  opacity: .28;
}
.awl-home-page .awl-home-motion-track--junction {
  stroke-width: 1.05;
  opacity: .13;
}
.awl-home-page .awl-home-motion-signal {
  filter: drop-shadow(0 0 3px rgba(14, 116, 194, .58)) drop-shadow(0 0 6px rgba(56, 162, 238, .25));
}
.awl-home-page .awl-home-motion-signal-glow,
.awl-home-page .awl-home-motion-signal-core,
.awl-home-page .awl-home-motion-signal-center {
  transform-box: fill-box;
  transform-origin: center;
}
.awl-home-page .awl-home-motion-sparkle {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  pointer-events: none;
}
.awl-home-page .awl-home-motion-sparkle-cross,
.awl-home-page .awl-home-motion-sparkle-diag {
  fill: none;
  stroke: rgba(234, 249, 255, .92);
  stroke-linecap: round;
  stroke-width: .9;
}
.awl-home-page .awl-home-motion-sparkle-diag {
  stroke: rgba(176, 231, 255, .72);
  stroke-width: .7;
}
.awl-home-page .awl-home-motion-signal.awl-hm-twinkle .awl-home-motion-signal-glow {
  animation: awl-hm-signal-glow .62s cubic-bezier(.22,.75,.2,1) 1;
}
.awl-home-page .awl-home-motion-signal.awl-hm-twinkle .awl-home-motion-signal-core,
.awl-home-page .awl-home-motion-signal.awl-hm-twinkle .awl-home-motion-signal-center {
  animation: awl-hm-signal-core .62s cubic-bezier(.22,.75,.2,1) 1;
}
.awl-home-page .awl-home-motion-signal.awl-hm-twinkle .awl-home-motion-sparkle {
  animation: awl-hm-sparkle-flare .62s cubic-bezier(.18,.82,.18,1) 1;
}
/* Exactly three smaller lights travel connected branches at distinct speeds. */
.awl-home-page .awl-home-motion-node > .awl-home-motion-ring {
  transform-box: fill-box;
  transform-origin: center;
  animation: awl-hm-node-breathe 5.4s ease-in-out infinite;
}
.awl-home-page .awl-home-motion-node--2 > .awl-home-motion-ring { animation-delay: -1.9s; }
.awl-home-page .awl-home-motion-node--3 > .awl-home-motion-ring { animation-delay: -3.7s; }
.awl-home-page .awl-home-motion-node--4 > .awl-home-motion-ring { animation-delay: -4.9s; }

/* ---------- B: initial introduction, responsive buttons, subtle cards ---------- */
.awl-home-page .awl-home-hero-heading {
  animation: awl-hm-intro .9s cubic-bezier(.18,.75,.2,1) .06s both;
}
.awl-home-page .awl-home-hero-content {
  animation: awl-hm-intro .9s cubic-bezier(.18,.75,.2,1) .23s both;
}
.awl-home-page .awl-home-hero-visual {
  animation: awl-hm-intro .95s cubic-bezier(.18,.75,.2,1) .34s both;
}
.awl-home-page .awl-button,
.awl-home-dual-button {
  transition:
    transform .28s cubic-bezier(.2,.72,.25,1),
    box-shadow .28s ease,
    background-color .28s ease,
    border-color .28s ease,
    filter .28s ease !important;
}
.awl-home-page .awl-home-service-card,
.awl-home-page .awl-home-problem-card,
.awl-home-dual-card {
  transition:
    transform .38s cubic-bezier(.2,.72,.2,1),
    border-color .38s ease,
    box-shadow .38s ease,
    opacity .7s ease;
}
@media (hover: hover) and (pointer: fine) {
  .awl-home-page .awl-home-hero-visual:hover {
    border-color: rgba(38, 124, 190, .35);
    box-shadow: 0 20px 46px rgba(15, 73, 126, .15);
  }
  .awl-home-page .awl-button:hover,
  .awl-home-dual-button:hover {
    transform: translate3d(0, -3px, 0);
    box-shadow: 0 10px 20px rgba(9, 56, 101, .16);
    filter: brightness(1.035);
  }
  .awl-home-page .awl-home-service-card:hover,
  .awl-home-page .awl-home-problem-card:hover,
  .awl-home-dual-card:hover {
    transform: translate3d(0, -4px, 0);
    border-color: rgba(60, 137, 199, .36);
    box-shadow: 0 13px 30px rgba(16, 64, 106, .085);
  }
}
.awl-home-page .awl-button:focus-visible,
.awl-home-dual-button:focus-visible,
.awl-home-page .awl-text-link:focus-visible {
  outline: 3px solid #2c83ce;
  outline-offset: 4px;
}
.awl-home-page .awl-button:active,
.awl-home-dual-button:active {
  transform: translate3d(0, 0, 0) scale(.985);
}

/* ---------- C: staggered scroll entrances (progressive enhancement) ---------- */
html.awl-hm-ready .awl-hm-reveal {
  transition:
    opacity .76s cubic-bezier(.2,.7,.2,1),
    transform .76s cubic-bezier(.18,.75,.2,1),
    border-color .38s ease,
    box-shadow .38s ease;
  transition-delay: var(--awl-hm-delay, 0ms), var(--awl-hm-delay, 0ms), 0ms, 0ms;
}
html.awl-hm-ready .awl-hm-reveal:not(.awl-hm-in-view) {
  opacity: 0;
  transform: translate3d(0, 20px, 0);
}
html.awl-hm-ready .awl-hm-reveal.awl-hm-in-view {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
/* Only underline strokes replay on viewport re-entry. Heading text and cards
   keep their existing one-shot reveal. No-JS fallback remains fully visible. */
html.awl-hm-ready .awl-home-page .awl-home-business > h2.awl-hm-underline-replay .awl-home-section-heading-label::after,
html.awl-hm-ready .awl-home-page .awl-home-contact > h2.awl-hm-underline-replay .awl-home-section-heading-label::after,
html.awl-hm-ready .awl-home-dual-card h2.awl-hm-underline-replay .awl-home-section-heading-label::after {
  transform: scaleX(0);
  transform-origin: left center;
  /* Reset instantly outside the viewport, even after a quick scroll. */
  transition: none;
}
html.awl-hm-ready .awl-home-page .awl-home-business > h2.awl-hm-underline-in-view .awl-home-section-heading-label::after,
html.awl-hm-ready .awl-home-page .awl-home-contact > h2.awl-hm-underline-in-view .awl-home-section-heading-label::after,
html.awl-hm-ready .awl-home-dual-card h2.awl-hm-underline-in-view .awl-home-section-heading-label::after {
  transform: scaleX(1);
  transition: transform .88s cubic-bezier(.22,.76,.2,1) .17s;
}
/* Cards combine scroll and hover with a single transform property. */
@media (hover: hover) and (pointer: fine) {
  html.awl-hm-ready .awl-home-service-card.awl-hm-in-view:hover,
  html.awl-hm-ready .awl-home-problem-card.awl-hm-in-view:hover,
  html.awl-hm-ready .awl-home-dual-card.awl-hm-in-view:hover {
    transform: translate3d(0, -4px, 0);
  }
}

/* ---------- Keyframes ---------- */
@keyframes awl-hm-intro {
  from { opacity: 0; transform: translate3d(0, 16px, 0); }
  to   { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes awl-hm-ambient {
  from { transform: translate3d(-3%, 1%, 0) scale(.97); opacity: .55; }
  to   { transform: translate3d(3%, -2%, 0) scale(1.04); opacity: 1; }
}
@keyframes awl-hm-sheen {
  0%, 23%  { background-position: 130% 50%; }
  45%,100% { background-position: -70% 50%; }
}
@keyframes awl-hm-node-breathe {
  0%, 100% { opacity: .14; transform: scale(.72); }
  50% { opacity: .66; transform: scale(1.25); }
}
@keyframes awl-hm-signal-glow {
  0%   { opacity: .85; transform: scale(1); }
  22%  { opacity: 1; transform: scale(1.42); }
  58%  { opacity: .72; transform: scale(1.15); }
  100% { opacity: .85; transform: scale(1); }
}
@keyframes awl-hm-signal-core {
  0%   { transform: scale(1); }
  24%  { transform: scale(1.22); }
  58%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}
@keyframes awl-hm-sparkle-flare {
  0%   { opacity: 0; transform: scale(.55) rotate(0deg); }
  16%  { opacity: .18; }
  36%  { opacity: .92; transform: scale(1.08) rotate(14deg); }
  70%  { opacity: .28; transform: scale(.92) rotate(18deg); }
  100% { opacity: 0; transform: scale(.66) rotate(20deg); }
}

/* ---------- Narrow screens: no hover parallax, smaller entrance distance ---------- */
@media (max-width: 780px) {
  .awl-home-page .awl-home-art-stage {
    transform: none;
    transition: none;
  }
  .awl-home-page .awl-home-art-stage::after { opacity: .38; }
  html.awl-hm-ready .awl-hm-reveal:not(.awl-hm-in-view) {
    transform: translate3d(0, 12px, 0);
  }
}

/* ---------- Accessibility: completely static when motion should be reduced ---------- */
@media (prefers-reduced-motion: reduce) {
  .awl-home-page .awl-home-hero::before,
  .awl-home-page .awl-home-art-stage::after,
  .awl-home-page .awl-home-motion-network { display: none !important; }
  .awl-home-page .awl-home-hero-heading,
  .awl-home-page .awl-home-hero-content,
  .awl-home-page .awl-home-hero-visual,
  .awl-home-page .awl-home-art-stage,
  .awl-home-page .awl-button,
  .awl-home-page .awl-home-service-card,
  .awl-home-page .awl-home-problem-card,
  .awl-home-dual-card,
  .awl-home-dual-button,
  html.awl-hm-ready .awl-hm-reveal {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
  html.awl-hm-ready .awl-home-page .awl-home-business > h2.awl-hm-underline-replay .awl-home-section-heading-label::after,
  html.awl-hm-ready .awl-home-page .awl-home-contact > h2.awl-hm-underline-replay .awl-home-section-heading-label::after,
  html.awl-hm-ready .awl-home-dual-card h2.awl-hm-underline-replay .awl-home-section-heading-label::after {
    transform: none !important;
    transition: none !important;
  }
}
