/* ==========================================================================
   AIDH — motion & hover layer
   --------------------------------------------------------------------------
   Sits on top of aidh-sections.css + aidh-hero.css and only ADDS motion.
   Neither of those files was edited, so removing this file (and its
   enqueue in inc/aidh-assets.php) puts the site back exactly as it was.

   One visual idea runs through everything: a teal "skill thread" — a line
   that draws itself around a card's edge on hover, beside a section
   number on scroll, and under the hero title on load.

   Paired with assets/js/aidh-motion.js, which:
     - adds .aidh-rv / .is-in for scroll reveals (only to things that
       start below the fold, so nothing already on screen ever flashes),
     - splits headings into words (.aidh-w > .aidh-w__in),
     - injects <svg class="aidh-trace"> into each card, sized to the
       card's real width/height/corner radius,
     - feeds the pointer position into --aidh-mx / --aidh-my (spotlight),
     - runs the magnetic button pull, image parallax and stat count-up.
   ========================================================================== */

.aidh-sec,
.aidh-hero {
  --aidh-mo-ease: cubic-bezier(.19, 1, .22, 1);
  --aidh-mo-soft: cubic-bezier(.33, 1, .68, 1);
  --aidh-glow:    rgba(15, 155, 142, .16);
  --aidh-lift:    0 26px 50px -24px rgba(27, 36, 48, .32);
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .aidh-sec,
  .aidh-hero { --aidh-glow: color-mix(in srgb, var(--aidh-accent) 16%, transparent); }
}

/* ==========================================================================
   1 · Scroll reveal
   ========================================================================== */
.aidh-rv {
  opacity: 0;
  transform: translate3d(0, 38px, 0);
}
.aidh-rv.is-in {
  opacity: 1;
  transform: none;
  transition:
    opacity .9s var(--aidh-mo-soft) calc(var(--rv-i, 0) * 90ms),
    transform 1.1s var(--aidh-mo-ease) calc(var(--rv-i, 0) * 90ms);
}

/* Image frames wipe open from the bottom instead of sliding. */
.aidh-rv.aidh-rv--wipe {
  opacity: 1;
  transform: none;
  clip-path: inset(100% 0 0 0 round 16px);
}
.aidh-rv.aidh-rv--wipe.is-in {
  clip-path: inset(0 0 0 0 round 16px);
  transition: clip-path 1.3s var(--aidh-mo-ease) calc(var(--rv-i, 0) * 90ms);
}

/* Headings rise word by word out of an invisible mask. */
.aidh-w {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  /* Room for descenders (g, y, p) so the mask never clips them. */
  padding-bottom: .12em;
  margin-bottom: -.12em;
}
.aidh-w__in { display: inline-block; }
.aidh-split-pending .aidh-w__in { transform: translate3d(0, 110%, 0); }
.aidh-split-pending.is-in .aidh-w__in {
  transform: none;
  transition: transform 1s var(--aidh-mo-ease) calc(var(--w, 0) * 42ms + 80ms);
}

/* Section header number: a thread draws out beside it. */
.aidh-head__num {
  display: flex;
  align-items: center;
  gap: 12px;
}
.aidh-head__num:not(:empty)::after {
  content: '';
  flex: none;
  height: 2px;
  width: 34px;
  background: var(--aidh-accent);
  transform-origin: left center;
  transition: transform 1.2s var(--aidh-mo-ease) .3s;
}
.aidh-rv.aidh-head .aidh-head__num::after { transform: scaleX(0); }
.aidh-rv.aidh-head.is-in .aidh-head__num::after { transform: scaleX(1); }

/* Tab switches: the incoming cards cascade in. */
.aidh-tab-anim > * > * {
  animation: aidh-mo-card-in .7s var(--aidh-mo-ease) both;
  animation-delay: calc(var(--rv-i, 0) * 60ms);
}
@keyframes aidh-mo-card-in {
  from { opacity: 0; transform: translate3d(0, 22px, 0) scale(.98); }
  to   { opacity: 1; transform: none; }
}

/* ==========================================================================
   2 · Card chrome — border trace + pointer spotlight
   ========================================================================== */
.aidh-card {
  isolation: isolate;
  transition:
    border-color .35s ease-out,
    transform .6s var(--aidh-mo-ease),
    box-shadow .6s var(--aidh-mo-ease),
    background-color .45s ease-out,
    color .45s ease-out;
}

.aidh-trace {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
  z-index: 3;
}
.aidh-trace rect {
  fill: none;
  stroke: var(--aidh-accent);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-dasharray: var(--aidh-len, 3000) var(--aidh-len, 3000);
  stroke-dashoffset: var(--aidh-len, 3000);
  transition: stroke-dashoffset .55s var(--aidh-mo-soft);
}

/* Soft accent light that follows the pointer. */
.aidh-card::after,
.aidh-split__panel::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(340px circle at var(--aidh-mx, 50%) var(--aidh-my, 50%), var(--aidh-glow), transparent 65%);
  opacity: 0;
  transition: opacity .45s ease-out;
}
.aidh-split__panel { position: relative; overflow: hidden; }
.aidh-split__panel > * { position: relative; z-index: 1; }

.aidh-card:focus-visible { outline: 2px solid var(--aidh-accent); outline-offset: 3px; }

@media (hover: hover) and (pointer: fine) {
  .aidh-card:hover,
  .aidh-card:focus-visible {
    transform: translate3d(0, -6px, 0);
    box-shadow: var(--aidh-lift);
    border-color: transparent;
  }
  .aidh-card:hover .aidh-trace rect,
  .aidh-card:focus-visible .aidh-trace rect {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset 1.1s var(--aidh-mo-ease);
  }
  .aidh-card:hover::after,
  .aidh-split__panel:hover::after { opacity: 1; }

  /* The short static accent bar hands over to the trace. */
  .aidh-card:hover::before {
    width: 100%;
    opacity: 0;
    transition: width .5s var(--aidh-mo-ease), opacity .4s ease-out .15s;
  }
}
@media (hover: none) {
  .aidh-card:active { transform: scale(.985); }
}

/* ==========================================================================
   3 · Per-card details — each card type answers hover in its own way
   ========================================================================== */

/* Shared icon box + "read more" link */
.aidh-iconbox {
  transition: background-color .45s ease-out, border-color .45s ease-out, color .45s ease-out, transform .7s var(--aidh-mo-ease);
}
.aidh-iconbox i,
.aidh-iconbox svg { transition: transform .7s var(--aidh-mo-ease); }
.aidh-more { position: relative; }
.aidh-more::after {
  content: '';
  position: absolute;
  left: 0; bottom: -5px;
  height: 1px; width: 100%;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform .5s var(--aidh-mo-ease);
}
.aidh-more i { transition: transform .5s var(--aidh-mo-ease); }

@media (hover: hover) and (pointer: fine) {
  .aidh-card:hover .aidh-iconbox {
    background: var(--aidh-accent);
    border-color: var(--aidh-accent);
    color: #fff;
    transform: rotate(-8deg) scale(1.08);
  }
  .aidh-card:hover .aidh-iconbox i,
  .aidh-card:hover .aidh-iconbox svg { transform: rotate(8deg); }
  .aidh-card:hover .aidh-iconbox svg { fill: currentColor; }

  .aidh-card:hover .aidh-more::after,
  .aidh-more:hover::after { transform: scaleX(1); transform-origin: left center; }
  .aidh-card:hover .aidh-more i,
  .aidh-more:hover i { transform: translateX(6px); }
}

/* Editorial — the big faded index turns into an outlined numeral */
.aidh-editorial__index {
  -webkit-text-stroke: 1px transparent;
  transition: color .5s ease-out, -webkit-text-stroke-color .5s ease-out, transform .8s var(--aidh-mo-ease);
}
.aidh-editorial__title { transition: color .4s ease-out; }
@media (hover: hover) and (pointer: fine) {
  .aidh-editorial:hover .aidh-editorial__index {
    color: transparent;
    -webkit-text-stroke-color: var(--aidh-accent);
    transform: translate3d(-6px, -10px, 0) scale(1.25);
  }
  .aidh-editorial:hover .aidh-editorial__title { color: var(--aidh-accent-dark); }
}

/* Programme cards */
.aidh-programme h3,
.aidh-programme__num { transition: color .4s ease-out, transform .6s var(--aidh-mo-ease); }
@media (hover: hover) and (pointer: fine) {
  .aidh-programme:hover h3 { color: var(--aidh-accent-dark); transform: translateX(4px); }
  .aidh-programme:hover .aidh-programme__num { color: var(--aidh-accent); transform: translateY(-3px); }
}

/* Feature cards — flip to the dark surface */
.aidh-feature__num,
.aidh-feature p { transition: color .45s ease-out, transform .6s var(--aidh-mo-ease); }
.aidh-feature i {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  margin-left: -9px;
  border-radius: 50%;
  transition: transform .6s var(--aidh-mo-ease), background-color .45s ease-out, color .45s ease-out, margin .6s var(--aidh-mo-ease);
}
@media (hover: hover) and (pointer: fine) {
  .aidh-feature:hover { background: var(--aidh-ink); color: #fff; }
  .aidh-feature:hover p { color: #fff; transform: translateY(-4px); }
  .aidh-feature:hover .aidh-feature__num { color: #fff; }
  .aidh-feature:hover i { margin-left: 0; background: var(--aidh-accent); color: #fff; transform: rotate(-45deg); }
}

/* Association cards */
.aidh-association__head i,
.aidh-association__head svg,
.aidh-association__logo { transition: transform .7s var(--aidh-mo-ease); }
.aidh-association .aidh-tagline { transition: letter-spacing .6s var(--aidh-mo-ease), color .4s ease-out; }
@media (hover: hover) and (pointer: fine) {
  .aidh-association:hover .aidh-association__head i,
  .aidh-association:hover .aidh-association__head svg { transform: translateY(-3px) rotate(-12deg) scale(1.15); }
  .aidh-association:hover .aidh-association__logo { transform: scale(1.06); }
  .aidh-association:hover .aidh-tagline { letter-spacing: .22em; color: var(--aidh-accent); }
}

/* Partner cards — the short rule runs the full width */
.aidh-partner .aidh-rule { transition: width .9s var(--aidh-mo-ease); }
.aidh-partner .aidh-tag,
.aidh-partner strong { transition: color .4s ease-out, transform .6s var(--aidh-mo-ease); }
@media (hover: hover) and (pointer: fine) {
  .aidh-partner:hover .aidh-rule { width: 100%; }
  .aidh-partner:hover .aidh-tag { color: var(--aidh-accent); }
  .aidh-partner:hover strong { transform: translateX(4px); }
}

/* Numbered cards (area / benefit / value) */
.aidh-numbered__num { display: inline-block; }
.aidh-numbered__num,
.aidh-numbered h3 { transition: color .4s ease-out, transform .7s var(--aidh-mo-ease); }
@media (hover: hover) and (pointer: fine) {
  .aidh-numbered:hover h3 { transform: translateX(5px); }
  .aidh-numbered--benefit:hover .aidh-numbered__num { transform: translateY(-6px) scale(1.2); transform-origin: left bottom; }
  .aidh-numbered--area:hover .aidh-numbered__num,
  .aidh-numbered--value:hover .aidh-numbered__num { transform: translateX(6px); }
}

/* News cards */
.aidh-news__thumb { overflow: hidden; }
.aidh-news__thumb img { transition: transform 1.2s var(--aidh-mo-ease); }
.aidh-news h3 a {
  background: linear-gradient(currentColor, currentColor) no-repeat left bottom / 0 1px;
  transition: background-size .6s var(--aidh-mo-ease), color .4s ease-out;
}
.aidh-news__date { transition: color .4s ease-out; }
@media (hover: hover) and (pointer: fine) {
  .aidh-news:hover .aidh-news__thumb img { transform: scale(1.08); }
  .aidh-news:hover h3 a { background-size: 100% 1px; color: var(--aidh-accent-dark); }
  .aidh-news:hover .aidh-news__date { color: var(--aidh-accent); }
}

/* Checklist lines + ticks */
.aidh-check { position: relative; }
.aidh-check::before {
  content: '';
  position: absolute;
  left: 0; top: -1px;
  height: 2px; width: 100%;
  background: var(--aidh-accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .7s var(--aidh-mo-ease);
}
.aidh-check i,
.aidh-check svg { transition: transform .6s var(--aidh-mo-ease); }
.aidh-tick { transition: transform .5s var(--aidh-mo-ease); }
.aidh-tick i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--aidh-accent-soft);
  font-size: .72rem;
  transition: transform .7s var(--aidh-mo-ease), background-color .4s ease-out, color .4s ease-out;
}
@media (hover: hover) and (pointer: fine) {
  .aidh-check:hover::before { transform: scaleX(1); }
  .aidh-check:hover i,
  .aidh-check:hover svg { transform: scale(1.3) rotate(-10deg); }
  .aidh-tick:hover { transform: translateX(4px); }
  .aidh-tick:hover i { background: var(--aidh-accent); color: #fff; transform: rotate(360deg); }
}

/* Chips */
.aidh-chip {
  background-image: linear-gradient(var(--aidh-accent-soft), var(--aidh-accent-soft));
  background-repeat: no-repeat;
  background-size: 0 100%;
  transition: background-size .5s var(--aidh-mo-ease), transform .5s var(--aidh-mo-ease), color .3s ease-out, border-color .3s ease-out;
}
@media (hover: hover) and (pointer: fine) {
  .aidh-chip:hover {
    background-size: 100% 100%;
    color: var(--aidh-accent-dark);
    border-color: var(--aidh-accent);
    transform: translateY(-3px);
  }
}

/* Feature split / closing CTA: their generic `p` colour rule was also
   catching the eyebrow and greying it out — restore the accent. */
.aidh-featuresplit .aidh-eyebrow,
.aidh-closing .aidh-eyebrow { color: var(--aidh-accent); }
.aidh-bg-ink .aidh-closing .aidh-eyebrow { color: #fff; }

/* Image frame — extra scale gives the scroll parallax room to move */
.aidh-frame { transition: transform .8s var(--aidh-mo-ease), box-shadow .8s var(--aidh-mo-ease); }
.aidh-frame img {
  scale: 1.1;
  transition: scale 1.4s var(--aidh-mo-ease);
}
.aidh-frame__caption { transition: padding .7s var(--aidh-mo-ease), letter-spacing .7s var(--aidh-mo-ease); }
@media (hover: hover) and (pointer: fine) {
  .aidh-frame:hover { transform: translateY(-6px); box-shadow: 0 34px 70px -26px rgba(27, 36, 48, .45); }
  .aidh-frame:hover img { scale: 1.17; }
  .aidh-frame:hover .aidh-frame__caption { padding-bottom: 24px; letter-spacing: .22em; }
}

/* Banner background — parallax room */
.aidh-banner__bg { scale: 1.18; }

/* Search band */
.aidh-search input[type="text"],
.aidh-search input[type="search"],
.aidh-search select {
  transition: border-color .3s ease-out, background-color .3s ease-out, box-shadow .4s var(--aidh-mo-ease);
}
.aidh-search input:hover,
.aidh-search select:hover { border-color: rgba(255, 255, 255, .32); }
.aidh-search input:focus,
.aidh-search select:focus { box-shadow: 0 0 0 4px var(--aidh-glow); }
.aidh-search__field i { transition: color .3s ease-out, transform .5s var(--aidh-mo-ease); }
.aidh-search__field:focus-within i { color: var(--aidh-accent); transform: translateY(-50%) scale(1.15); }

/* Tabs */
.aidh-tabs__btn::after { transition: transform .35s var(--aidh-mo-ease), opacity .3s ease-out; }
.aidh-tabs__btn:not(.is-active):hover::after { transform: scaleX(.35); opacity: .5; }
.aidh-tabs__count { transition: transform .5s var(--aidh-mo-ease), background-color .3s, color .3s; }
.aidh-tabs__btn:hover .aidh-tabs__count { transform: translateY(-2px) scale(1.1); }

/* ==========================================================================
   4 · Buttons — colour sweep + magnetic pull (translate is set by JS)
   ========================================================================== */
.aidh-btn,
.aidh-hero .aidh-hbtn {
  position: relative;
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 0% 100%;
  transition:
    background-size .55s var(--aidh-mo-ease),
    background-color .3s ease-out,
    border-color .3s ease-out,
    color .35s ease-out,
    transform .5s var(--aidh-mo-ease),
    translate .5s var(--aidh-mo-ease),
    box-shadow .5s var(--aidh-mo-ease);
}
.aidh-btn i,
.aidh-hero .aidh-hbtn i { transition: transform .5s var(--aidh-mo-ease), border-color .3s, background-color .3s, color .3s; }

.aidh-btn--primary,
.aidh-btn--primary:hover { background-color: var(--aidh-accent); background-image: linear-gradient(var(--aidh-ink), var(--aidh-ink)); }
.aidh-bg-ink .aidh-btn--primary,
.aidh-bg-ink .aidh-btn--primary:hover,
.aidh-banner .aidh-btn--primary,
.aidh-banner .aidh-btn--primary:hover,
.aidh-search .aidh-btn--primary,
.aidh-search .aidh-btn--primary:hover { background-image: linear-gradient(#fff, #fff); }
.aidh-btn--ghost,
.aidh-btn--ghost:hover { background-color: transparent; background-image: linear-gradient(#fff, #fff); }
.aidh-btn--dark,
.aidh-btn--dark:hover { background-color: transparent; background-image: linear-gradient(var(--aidh-ink), var(--aidh-ink)); }

.aidh-hero .aidh-hbtn--solid,
.aidh-hero .aidh-hbtn--solid:hover { background-color: var(--aidh-accent); background-image: linear-gradient(#fff, #fff); }
.aidh-hero .aidh-hbtn--outline,
.aidh-hero .aidh-hbtn--outline:hover { background-color: transparent; background-image: linear-gradient(var(--aidh-accent), var(--aidh-accent)); }

@media (hover: hover) and (pointer: fine) {
  .aidh-btn:hover,
  .aidh-hero .aidh-hbtn:hover { background-size: 100% 100%; transform: none; }

  .aidh-btn--primary:hover { color: #fff; border-color: var(--aidh-ink); box-shadow: 0 16px 30px -14px rgba(27, 36, 48, .55); }
  .aidh-bg-ink .aidh-btn--primary:hover,
  .aidh-banner .aidh-btn--primary:hover,
  .aidh-search .aidh-btn--primary:hover { color: var(--aidh-ink); border-color: #fff; }
  .aidh-btn--ghost:hover { color: var(--aidh-ink); border-color: #fff; }
  .aidh-btn--dark:hover { color: #fff; border-color: var(--aidh-ink); }
  .aidh-btn:hover i { transform: translateX(5px); }

  .aidh-hero .aidh-hbtn--solid:hover { color: var(--aidh-ink); box-shadow: 0 18px 36px -16px rgba(0, 0, 0, .6); }
  .aidh-hero .aidh-hbtn--solid:hover i { border-color: var(--aidh-ink); background: var(--aidh-ink); color: #fff; transform: rotate(-45deg); }
  .aidh-hero .aidh-hbtn--outline:hover { color: #fff; border-color: var(--aidh-accent); }
}
.aidh-btn:active,
.aidh-hero .aidh-hbtn:active { transform: scale(.97); }

/* ==========================================================================
   5 · Hero — the one orchestrated entrance
   ========================================================================== */
@media (prefers-reduced-motion: no-preference) {

  /* Title stays hidden only until the script has split it into words.
     The delayed keyframe is a safety net if the script never runs. */
  .aidh-hero__title:not(.is-split) {
    opacity: 0;
    animation: aidh-mo-failsafe .01s linear 2.5s forwards;
  }

  .aidh-hero--aurora .aidh-hero__panels > .aidh-hero__copy.is-active,
  .aidh-hero--split .aidh-hero__panels > .aidh-hero__copy.is-active { animation: none; }

  .aidh-hero__copy.is-active .aidh-hero__eyebrow {
    animation: aidh-mo-slide-x .9s var(--aidh-mo-ease) .05s both;
  }
  .aidh-hero__copy.is-active .aidh-hero__eyebrow::before {
    transform-origin: left center;
    animation: aidh-mo-scale-x 1s var(--aidh-mo-ease) .15s both;
  }
  .aidh-hero__copy.is-active .aidh-hero__title .aidh-w__in {
    animation: aidh-mo-word 1.1s var(--aidh-mo-ease) both;
    animation-delay: calc(.18s + var(--w, 0) * 60ms);
  }
  .aidh-hero__copy.is-active .aidh-hero__rule {
    transform-origin: left center;
    animation: aidh-mo-scale-x 1.2s var(--aidh-mo-ease) .55s both;
  }
  .aidh-hero__copy.is-active .aidh-hero__lead {
    animation: aidh-mo-rise 1s var(--aidh-mo-ease) .7s both;
  }
  .aidh-hero__copy.is-active .aidh-hero__cta > * {
    animation: aidh-mo-rise 1s var(--aidh-mo-ease) .85s both;
  }
  .aidh-hero__copy.is-active .aidh-hero__cta > :nth-child(2) { animation-delay: .97s; }

  .aidh-hero__stat {
    animation: aidh-mo-rise 1s var(--aidh-mo-ease) both;
    animation-delay: calc(1s + var(--rv-i, 0) * 110ms);
  }

  /* Split layout: the photo opens like a shutter on first paint. */
  .aidh-hero--split .aidh-hero__stage {
    animation: aidh-mo-shutter 1.5s var(--aidh-mo-ease) .1s both;
  }

  /* Aurora: the orbit ring slowly turns, carrying an accent dot. */
  .aidh-hero__arc { animation: aidh-mo-orbit 38s linear infinite; }
  .aidh-hero__arc::after {
    content: '';
    position: absolute;
    top: -5px; left: 50%;
    width: 10px; height: 10px;
    margin-left: -5px;
    border-radius: 50%;
    background: var(--aidh-accent);
    box-shadow: 0 0 0 6px var(--aidh-glow), 0 0 24px var(--aidh-accent);
  }
}

@keyframes aidh-mo-failsafe { to { opacity: 1; } }
@keyframes aidh-mo-word     { from { transform: translate3d(0, 110%, 0) rotate(4deg); } to { transform: none; } }
@keyframes aidh-mo-rise     { from { opacity: 0; transform: translate3d(0, 26px, 0); } to { opacity: 1; transform: none; } }
@keyframes aidh-mo-slide-x  { from { opacity: 0; transform: translate3d(-24px, 0, 0); } to { opacity: 1; transform: none; } }
@keyframes aidh-mo-scale-x  { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes aidh-mo-shutter  { from { clip-path: inset(0 0 0 100%); } to { clip-path: inset(0 0 0 0); } }
@keyframes aidh-mo-orbit    { from { transform: translateY(-50%) rotate(0deg); } to { transform: translateY(-50%) rotate(360deg); } }

/* Hero controls */
.aidh-hero__arrow { position: relative; overflow: hidden; }
.aidh-hero__dot { position: relative; }
.aidh-hero__dot::before { content: ''; position: absolute; inset: -10px 0; } /* bigger tap target */
.aidh-hero__stat strong { display: inline-block; transition: transform .6s var(--aidh-mo-ease); }
@media (hover: hover) and (pointer: fine) {
  .aidh-hero__arrow:hover { background: var(--aidh-accent); border-color: var(--aidh-accent); }
  .aidh-hero__arrow[data-aidh-next]:hover i { animation: aidh-mo-arrow-r .6s var(--aidh-mo-ease); }
  .aidh-hero__arrow[data-aidh-prev]:hover i { animation: aidh-mo-arrow-l .6s var(--aidh-mo-ease); }
  .aidh-hero__dot:not(.is-active):hover { width: 42px; background: rgba(255, 255, 255, .7); }
  .aidh-hero__thumb:hover { box-shadow: 0 12px 24px -10px rgba(0, 0, 0, .6); }
  .aidh-hero__stat:hover strong { transform: translateY(-4px) scale(1.06); }
}
@keyframes aidh-mo-arrow-r { 0% { transform: none; } 45% { transform: translateX(24px); } 46% { transform: translateX(-24px); } 100% { transform: none; } }
@keyframes aidh-mo-arrow-l { 0% { transform: none; } 45% { transform: translateX(-24px); } 46% { transform: translateX(24px); } 100% { transform: none; } }

/* ==========================================================================
   6 · Reduced motion — everything above collapses to its final state
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .aidh-rv,
  .aidh-rv.aidh-rv--wipe,
  .aidh-split-pending .aidh-w__in { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .aidh-trace { display: none; }
  .aidh-frame img,
  .aidh-banner__bg { translate: none !important; }
}
