/* =========================================================
   MITRE · EXPERIENCE INTELLIGENCE: full-width promo (index)
   First promo in the Selected Work (#impact) section.
   ---------------------------------------------------------
   --aid-tempo = the ONE speed control (lower = faster).
   It drives the stage animation AND the headline swaps, so
   the two always stay in sync.
   ========================================================= */

.mitre-promo {
  --aid-tempo: 18s;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 400px);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
  margin: 0 0 28px;
  padding: clamp(28px, 5vw, 64px);
  border-radius: 20px;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  text-decoration: none;
  background:
    radial-gradient(circle at 77% 28%, rgba(18,192,255,.18), transparent 30%),
    radial-gradient(circle at 24% 74%, rgba(192,0,255,.24), transparent 38%),
    linear-gradient(145deg, #050208, #110027 58%, #06020b);
  box-shadow: 0 18px 50px rgba(17, 0, 39, .28);
}

/* ---------- copy column ---------- */
.mitre-promo-copy {
  min-width: 0;
}

.mitre-promo .mitre-promo-eyebrow {
  display: table;
  margin: 0 0 24px;
  padding: 4px 7px;
  background: #c09fff;
  color: #38106f;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .19em;
}

.mitre-promo .aid-lines {
  display: grid;
  align-items: start;
}

.mitre-promo .aid-lines > * {
  grid-area: 1 / 1;
  margin: 0;
  max-width: none;
  opacity: 0;
  color: #fff;
  font-size: clamp(32px, 3.7vw, 54px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.04em;
}

.mitre-promo .aid-lines em {
  font-style: normal;
  color: #ff54c2;
}

.mitre-promo .aid-h0 { animation: aid-h0 var(--aid-tempo) infinite linear; }
.mitre-promo .aid-n1 { animation: aid-n1 var(--aid-tempo) infinite linear; }
.mitre-promo .aid-n2 { animation: aid-n2 var(--aid-tempo) infinite linear; }
.mitre-promo .aid-n3 { animation: aid-n3 var(--aid-tempo) infinite linear; }

.mitre-promo .mitre-promo-desc {
  max-width: 520px;
  margin: 28px 0 0;
  color: rgba(255, 255, 255, .74);
  font-size: 16px;
  line-height: 1.55;
}

.mitre-promo .mitre-promo-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 26px;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(255, 255, 255, .4);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  transition: border-color .25s ease, gap .25s ease;
}

.mitre-promo:hover .mitre-promo-link,
.mitre-promo:focus-visible .mitre-promo-link {
  gap: 12px;
  border-color: #ff54c2;
}

.mitre-promo:focus-visible {
  outline: 2px solid #c09fff;
  outline-offset: 4px;
}

/* ---------- animation column ---------- */
.mitre-promo-visual {
  min-width: 0;
}

.mitre-promo-note {
  margin: 14px 0 0;
  color: rgba(255, 255, 255, .6);
  font-size: 11px;
  line-height: 1.4;
  text-align: center;
}

/* The stage is the 560x315u case-study animation, cropped to its
   right-hand column (x 280u..535u). Everything scales from --u. */
.aid.aid-promo {
  --u: calc(min(100vw, 400px) / 255);
  position: relative;
  display: block;
  width: 100%;
  max-width: 400px;
  aspect-ratio: 255 / 315;
  margin: 0 auto;
  container-type: inline-size;
}

@supports (width:1cqw) {
  .aid.aid-promo {
    --u: calc(100cqw / 255);
  }
}

@media (max-width: 860px) {
  .mitre-promo {
    grid-template-columns: minmax(0, 1fr);
  }

  .aid.aid-promo {
    max-width: 340px;
  }
}

.aid * {
  box-sizing: border-box;
}

.aid .aid-stage {
  position: relative;
  font-family: inherit;
  width: 100%;
  height: calc(315 * var(--u));
  overflow: hidden;
  border-radius: calc(10 * var(--u));
  isolation: isolate;
  --cy: #12c0ff;
  --mg: #c000ff;
  --pk: #ff54c2;
  --pu: #5b00c2;
  background: none;
  color: #fff;
  max-width: 100%;
}

.aid .aid-stage *,
.aid .aid-stage *::before {
  box-sizing: border-box;
}

.aid .aid-bg {
  position: absolute;
  inset: 0;
  background: none;
}

.aid .aid-ring {
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  border: 1px solid rgba(192,0,255,.24);
  width: 112%;
  height: 58%;
  transform: translate(-50%,-50%) rotate(31deg);
}

.aid .aid-ring.aid-b {
  width: 118%;
  height: 54%;
  border-color: rgba(18,192,255,.22);
  transform: translate(-50%,-50%) rotate(-34deg);
}

.aid .aid-scene {
  position: absolute;
  inset: 0;
  transform: translateX(calc(-280 * var(--u)));  /* show x = 280u..535u of the original stage */
  animation: aid-fadein .9s ease-out both;
}

.aid .aid-list {
  position: absolute;
  left: calc(300 * var(--u));
  top: calc(72 * var(--u));
  width: calc(205 * var(--u));
  animation: aid-scroll var(--aid-tempo) infinite linear;
}

.aid .aid-list-title {
  margin: 0 0 calc(9 * var(--u));
  height: calc(14 * var(--u));
  font-size: calc(11.5 * var(--u));
  line-height: calc(14 * var(--u));
  font-weight: 600;
  padding-left: calc(12 * var(--u));
  color: #fff;
  white-space: nowrap;
}

.aid .aid-card {
  position: relative;
  width: calc(205 * var(--u));
  height: calc(46 * var(--u));
  margin: 0 0 calc(10 * var(--u));
  border-radius: calc(999 * var(--u));
  background-color: rgba(255,255,255,.07);
  border: 1px solid rgba(18,192,255,.42);
  box-shadow: 0 0 calc(14 * var(--u)) rgba(18,192,255,.05);
  overflow: hidden;
}

.aid .aid-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  background: linear-gradient(115deg,rgba(18,192,255,0) 28%,rgba(120,225,255,.2) 48%,rgba(192,0,255,0) 64%);
}

.aid .aid-ic {
  position: absolute;
  left: calc(15 * var(--u));
  top: 50%;
  width: calc(22 * var(--u));
  height: calc(22 * var(--u));
  margin-top: calc(-11 * var(--u));
  fill: none;
  stroke: #8fe6ff;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.aid .aid-lb {
  position: absolute;
  left: calc(45 * var(--u));
  right: calc(8 * var(--u));
  top: 50%;
  transform: translateY(-50%);
  white-space: nowrap;
  font-size: calc(10.4 * var(--u));
  line-height: calc(12.5 * var(--u));
  font-weight: 600;
  color: #fff;
}

.aid .aid-card.aid-last {
  margin-bottom: 0;
  animation: aid-last-hover var(--aid-tempo) infinite linear;
}

.aid .aid-card.aid-last::before {
  animation: aid-sheen-last var(--aid-tempo) infinite linear;
}

.aid .aid-card.aid-last .aid-ic {
  top: calc(23 * var(--u));
  margin-top: 0;
}

.aid .aid-card.aid-last .aid-lb {
  top: calc(16 * var(--u));
  transform: none;
}

.aid .aid-hero {
  position: absolute;
  left: calc(290 * var(--u));
  top: calc(122 * var(--u));
  width: calc(225 * var(--u));
  height: calc(70 * var(--u));
  border-radius: calc(30 * var(--u));
  overflow: hidden;
  opacity: 0;
  background-color: rgba(18,192,255,.14);
  border: 1px solid rgba(18,192,255,.8);
  box-shadow: 0 0 0 0 rgba(0,0,0,0),0 0 0 0 rgba(192,0,255,0);
  animation: aid-hero var(--aid-tempo) infinite linear;
}

.aid .aid-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 1;
  background: linear-gradient(115deg,rgba(18,192,255,0) 28%,rgba(120,225,255,.2) 48%,rgba(192,0,255,0) 64%);
  animation: aid-sheen-hero var(--aid-tempo) infinite linear;
}

.aid .aid-hl {
  position: absolute;
  inset: 0;
  animation: aid-hl var(--aid-tempo) infinite linear;
}

.aid .aid-hl .aid-ic {
  top: calc(25 * var(--u));
  margin-top: 0;
  left: calc(17 * var(--u));
  animation: aid-hero-icon var(--aid-tempo) infinite linear;
}

.aid .aid-hl .aid-lb {
  left: calc(47 * var(--u));
  top: calc(15 * var(--u));
  transform: none;
  font-size: calc(10.8 * var(--u));
}

.aid .aid-hd {
  position: absolute;
  left: calc(47 * var(--u));
  top: calc(32 * var(--u));
  width: calc(152 * var(--u));
  font-size: calc(8.2 * var(--u));
  line-height: calc(10.4 * var(--u));
  color: rgba(255,255,255,.72);
  opacity: 0;
  animation: aid-hd var(--aid-tempo) infinite linear;
}

.aid .aid-w {
  position: absolute;
  left: 0;
  top: 0;
  width: calc(203 * var(--u));
  height: calc(276 * var(--u));
  color: #1a0b33;
  opacity: 0;
  animation: aid-wfade var(--aid-tempo) infinite linear;
}

.aid .aid-w * {
  position: absolute;
}

.aid .aid-wt {
  left: calc(22 * var(--u));
  top: calc(28 * var(--u));
  font-size: calc(8.6 * var(--u));
  line-height: calc(10 * var(--u));
  font-weight: 600;
  color: #1a0b33;
  white-space: nowrap;
}

.aid .aid-ib {
  top: calc(9 * var(--u));
  width: calc(14 * var(--u));
  height: calc(14 * var(--u));
  border-radius: 50%;
  border: 1px solid #e3d9f3;
  background: #fff;
}

.aid .aid-w .aid-ib:nth-child(1) {
  left: calc(144 * var(--u)) !important;
}

.aid .aid-w .aid-ib:nth-child(2) {
  left: calc(163 * var(--u)) !important;
}

.aid .aid-ib svg {
  position: absolute;
  left: calc(3 * var(--u));
  top: calc(3 * var(--u));
  width: calc(7 * var(--u));
  height: calc(7 * var(--u));
  fill: none;
  stroke: #5b4a7d;
  stroke-width: 1.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.aid .aid-lbl {
  left: calc(22 * var(--u));
  font-size: calc(7 * var(--u));
  line-height: calc(9 * var(--u));
  font-weight: 600;
  color: #2a1648;
  white-space: nowrap;
}

.aid .aid-lbl em {
  font-style: normal;
  font-weight: 400;
  color: #9a8cb4;
}

.aid .aid-sel {
  left: calc(22 * var(--u));
  width: calc(156 * var(--u));
  border: 1px solid #e3d9f3;
  border-radius: calc(5 * var(--u));
  background: #fff;
  font-size: calc(7.4 * var(--u));
  color: #2a1648;
  display: flex;
  align-items: center;
  padding: 0 calc(8 * var(--u));
}

.aid .aid-sel * {
  position: static;
}

.aid .aid-sel span {
  flex: 1;
}

.aid .aid-sel svg {
  width: calc(7 * var(--u));
  height: calc(7 * var(--u));
  fill: none;
  stroke: #7a6aa0;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.aid .aid-ta {
  left: calc(22 * var(--u));
  top: calc(145 * var(--u));
  width: calc(156 * var(--u));
  height: calc(38 * var(--u));
  border: 1px solid #e3d9f3;
  border-radius: calc(5 * var(--u));
  padding: calc(6 * var(--u)) calc(8 * var(--u));
  font-size: calc(6.6 * var(--u));
  line-height: calc(8.6 * var(--u));
  color: #ab9fc4;
}

.aid .aid-fade {
  left: 0;
  top: calc(222 * var(--u));
  width: calc(203 * var(--u));
  height: calc(54 * var(--u));
  background: linear-gradient(rgba(255,255,255,0),rgba(78,44,122,.97) 88%);
}

.aid .aid-btn {
  left: calc(77 * var(--u));
  top: calc(237 * var(--u));
  width: calc(116 * var(--u));
  height: calc(25 * var(--u));
  border-radius: calc(999 * var(--u));
  background: #7d6ca3;
  color: #fff;
  font-size: calc(8.8 * var(--u));
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: aid-btn var(--aid-tempo) infinite linear;
}

.aid .aid-res,
.aid .aid-res2 {
  position: absolute;
  left: calc(321 * var(--u));
  top: calc(335 * var(--u));
  width: calc(203 * var(--u));
  height: calc(300 * var(--u));
  border-radius: calc(14 * var(--u));
  background: #fdfbff;
  color: #1a0b33;
  box-shadow: 0 calc(-6 * var(--u)) calc(24 * var(--u)) rgba(0,0,0,.4),0 0 calc(40 * var(--u)) rgba(192,0,255,.25);
  overflow: hidden;
}

.aid .aid-res {
  animation: aid-result3 var(--aid-tempo) infinite linear;
}

.aid .aid-res2 {
  animation: aid-result2 var(--aid-tempo) infinite linear;
}

.aid .aid-res *,
.aid .aid-res2 * {
  position: absolute;
}

.aid .aid-rt {
  left: calc(11 * var(--u));
  top: calc(11 * var(--u));
  font-size: calc(11.5 * var(--u));
  line-height: calc(14 * var(--u));
  font-weight: 600;
  color: #1a0b33;
  white-space: nowrap;
}

.aid .aid-rd {
  left: calc(11 * var(--u));
  top: calc(29 * var(--u));
  width: calc(178 * var(--u));
  font-size: calc(7.3 * var(--u));
  line-height: calc(10.2 * var(--u));
  color: #7a6d94;
}

.aid .aid-tabs {
  left: calc(9 * var(--u));
  top: calc(66 * var(--u));
  width: calc(180 * var(--u));
  height: calc(27 * var(--u));
  border: 1px solid #e6dcf5;
  border-radius: calc(6 * var(--u));
  padding: calc(3 * var(--u));
  display: flex;
}

.aid .aid-tabs div {
  position: static;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: calc(4 * var(--u));
  font-size: calc(7.6 * var(--u));
  color: #7a6d94;
}

.aid .aid-tabs .aid-on {
  background: #f1e6ff;
  color: #5b00c2;
  font-weight: 600;
}

.aid .aid-lg {
  left: calc(12 * var(--u));
  top: calc(104 * var(--u));
  display: flex;
  gap: calc(11 * var(--u));
  font-size: calc(6.6 * var(--u));
  color: #5a4a7a;
  align-items: center;
}

.aid .aid-lg span {
  position: static;
  display: flex;
  align-items: center;
  gap: calc(3 * var(--u));
}

.aid .aid-lg i {
  position: static;
  display: block;
  width: calc(11 * var(--u));
  height: 0;
  border-top: calc(1.6 * var(--u)) solid #0aa9e0;
}

.aid .aid-lg i.aid-d {
  border-top: calc(1.6 * var(--u)) solid #b300f0;
}

.aid .aid-ch {
  left: calc(4 * var(--u));
  top: calc(118 * var(--u));
  width: calc(194 * var(--u));
  height: calc(132 * var(--u));
  animation: aid-reveal var(--aid-tempo) infinite linear;
}

.aid .aid-ch svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.aid .aid-fr {
  left: calc(22 * var(--u));
  top: calc(100 * var(--u));
  width: calc(156 * var(--u));
}

.aid .aid-fr * {
  position: static;
}

.aid .aid-fr .aid-r {
  display: flex;
  align-items: center;
  height: calc(14.4 * var(--u));
  font-size: calc(7 * var(--u));
  color: #2a1648;
}

.aid .aid-fr .aid-d {
  flex: none;
  width: calc(6 * var(--u));
  height: calc(6 * var(--u));
  margin-right: calc(6 * var(--u));
  border-radius: 50%;
  background: #12c0ff;
}

.aid .aid-fr .aid-n {
  flex: none;
  width: calc(64 * var(--u));
  white-space: nowrap;
}

.aid .aid-fr .aid-t {
  flex: none;
  width: calc(58 * var(--u));
  height: calc(3 * var(--u));
  border-radius: calc(2 * var(--u));
  background: #efe6fb;
  overflow: hidden;
}

.aid .aid-fr .aid-t b {
  display: block;
  height: 100%;
  border-radius: calc(2 * var(--u));
  background: #12c0ff;
}

.aid .aid-fr .aid-g {
  margin-left: auto;
  font-size: calc(5.8 * var(--u));
  font-weight: 700;
  color: #c000ff;
}

.aid .aid-fr .aid-hi .aid-d {
  background: #c000ff;
  animation: aid-pulse 1.8s ease-in-out infinite;
}

.aid .aid-fr .aid-hi .aid-n {
  font-weight: 600;
}

.aid .aid-fr .aid-hi .aid-t b {
  background: linear-gradient(90deg,#ff54c2,#c000ff);
}

@keyframes aid-pulse {
  0%,100% {
    box-shadow: 0 0 0 0 rgba(192,0,255,.5);
  }

  50% {
    box-shadow: 0 0 0 calc(3.5 * var(--u)) rgba(192,0,255,0);
  }
}

.aid .aid-rec {
  left: calc(9 * var(--u));
  width: calc(185 * var(--u));
  height: calc(44 * var(--u));
  border: 1px solid #e6dcf5;
  border-radius: calc(8 * var(--u));
  background: #fff;
  overflow: hidden;
}

.aid .aid-rec * {
  position: absolute;
}

.aid .aid-rec:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: calc(3 * var(--u));
  background: #c000ff;
}

.aid .aid-rec.aid-m:before {
  background: #12c0ff;
}

.aid .aid-rec .aid-nb {
  left: calc(9 * var(--u));
  top: calc(8 * var(--u));
  width: calc(12 * var(--u));
  height: calc(12 * var(--u));
  border-radius: 50%;
  background: #f1e6ff;
  color: #5b00c2;
  font-size: calc(6.6 * var(--u));
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.aid .aid-rec .aid-ti {
  left: calc(28 * var(--u));
  top: calc(7 * var(--u));
  width: calc(150 * var(--u));
  font-size: calc(7.8 * var(--u));
  line-height: calc(10 * var(--u));
  font-weight: 600;
  color: #1a0b33;
  white-space: nowrap;
}

.aid .aid-rec .aid-me {
  left: calc(28 * var(--u));
  top: calc(21 * var(--u));
  font-size: calc(6.2 * var(--u));
  line-height: calc(8 * var(--u));
  color: #7a6d94;
  white-space: nowrap;
}

.aid .aid-rec .aid-bar {
  left: calc(28 * var(--u));
  top: calc(34 * var(--u));
  width: calc(150 * var(--u));
  height: calc(3 * var(--u));
  border-radius: calc(2 * var(--u));
  background: #efe6fb;
  overflow: hidden;
}

.aid .aid-rec .aid-bar b {
  display: block;
  height: 100%;
  border-radius: calc(2 * var(--u));
  background: linear-gradient(90deg,#12c0ff,#c000ff);
}

.aid .aid-btn2 {
  left: calc(9 * var(--u));
  top: calc(214 * var(--u));
  width: calc(185 * var(--u));
  height: calc(22 * var(--u));
  border-radius: calc(999 * var(--u));
  border: 1px solid #d9c5f5;
  background: #f6eeff;
  color: #5b00c2;
  font-size: calc(7.8 * var(--u));
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: aid-btn2 var(--aid-tempo) infinite linear;
}

.aid .aid-cur {
  position: absolute;
  left: calc(300 * var(--u));
  top: calc(250 * var(--u));
  width: calc(22 * var(--u));
  height: calc(22 * var(--u));
  opacity: 0;
  transform-origin: calc(3 * var(--u)) calc(2 * var(--u));
  filter: drop-shadow(0 calc(1 * var(--u)) calc(2 * var(--u)) rgba(0,0,0,.35));
  animation: aid-cur var(--aid-tempo) infinite linear;
  pointer-events: none;
}

.aid .aid-cur svg {
  width: 100%;
  height: 100%;
  display: block;
}

@keyframes aid-fadein {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes aid-scroll {
  0% {
    transform: translateY(0);
    opacity: 1;
    animation-timing-function: linear;
  }

  2.667% {
    transform: translateY(0);
    opacity: 1;
    animation-timing-function: cubic-bezier(.45,.05,.3,1);
  }

  20.000% {
    transform: translateY(calc(-309 * var(--u)));
    opacity: 1;
    animation-timing-function: cubic-bezier(.4,0,.5,1);
  }

  24.667% {
    transform: translateY(calc(-375 * var(--u)));
    opacity: .9;
    animation-timing-function: cubic-bezier(.4,0,.8,1);
  }

  28.667%,77.000% {
    transform: translateY(calc(-464 * var(--u)));
    opacity: 0;
    animation-timing-function: cubic-bezier(.2,.7,.2,1);
  }

  77.100% {
    transform: translateY(calc(26 * var(--u)));
    opacity: 0;
    animation-timing-function: cubic-bezier(.35,0,.25,1);
  }

  92.000%,100% {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes aid-last-hover {
  0%,16.000% {
    width: calc(205 * var(--u));
    height: calc(46 * var(--u));
    margin-left: 0;
    border-radius: calc(23 * var(--u));
    background-color: rgba(255,255,255,.07);
    border-color: rgba(18,192,255,.42);
    opacity: 1;
    animation-timing-function: cubic-bezier(.2,.7,.2,1);
  }

  18.667%,19.967% {
    width: calc(225 * var(--u));
    height: calc(70 * var(--u));
    margin-left: calc(-10 * var(--u));
    border-radius: calc(30 * var(--u));
    background-color: rgba(18,192,255,.14);
    border-color: rgba(18,192,255,.8);
    opacity: 1;
  }

  20.000%,77.000% {
    width: calc(225 * var(--u));
    height: calc(70 * var(--u));
    margin-left: calc(-10 * var(--u));
    border-radius: calc(30 * var(--u));
    background-color: rgba(18,192,255,.14);
    border-color: rgba(18,192,255,.8);
    opacity: 0;
  }

  77.100%,100% {
    width: calc(205 * var(--u));
    height: calc(46 * var(--u));
    margin-left: 0;
    border-radius: calc(23 * var(--u));
    background-color: rgba(255,255,255,.07);
    border-color: rgba(18,192,255,.42);
    opacity: 1;
  }
}

@keyframes aid-sheen-last {
  0%,16.000% {
    opacity: 0;
  }

  18.667%,77.000% {
    opacity: 1;
  }

  77.100%,100% {
    opacity: 0;
  }
}

@keyframes aid-sheen-hero {
  0%,24.667% {
    opacity: 1;
  }

  28.667%,100% {
    opacity: 0;
  }
}

@keyframes aid-hero {
  0%,19.967% {
    opacity: 0;
    left: calc(290 * var(--u));
    top: calc(122 * var(--u));
    width: calc(225 * var(--u));
    height: calc(70 * var(--u));
    border-radius: calc(30 * var(--u));
    background-color: rgba(18,192,255,.14);
    border-color: rgba(18,192,255,.8);
    box-shadow: 0 0 0 0 rgba(0,0,0,0),0 0 0 0 rgba(192,0,255,0);
    animation-timing-function: linear;
  }

  20.000% {
    opacity: 1;
    left: calc(290 * var(--u));
    top: calc(122 * var(--u));
    width: calc(225 * var(--u));
    height: calc(70 * var(--u));
    border-radius: calc(30 * var(--u));
    background-color: rgba(18,192,255,.14);
    border-color: rgba(18,192,255,.8);
    box-shadow: 0 0 0 0 rgba(0,0,0,0),0 0 0 0 rgba(192,0,255,0);
    animation-timing-function: cubic-bezier(.55,0,.2,1);
  }

  24.667% {
    opacity: 1;
    left: calc(287 * var(--u));
    top: calc(88 * var(--u));
    width: calc(211 * var(--u));
    height: calc(214 * var(--u));
    border-radius: calc(16 * var(--u));
    background-color: rgba(44,14,90,.9);
    border-color: rgba(18,192,255,.5);
    box-shadow: 0 0 0 0 rgba(0,0,0,0),0 0 0 0 rgba(192,0,255,0);
  }

  25.333% {
    opacity: 1;
    left: calc(287 * var(--u));
    top: calc(88 * var(--u));
    width: calc(211 * var(--u));
    height: calc(214 * var(--u));
    border-radius: calc(16 * var(--u));
    background-color: rgba(44,14,90,.9);
    border-color: rgba(18,192,255,.5);
    box-shadow: 0 0 0 0 rgba(0,0,0,0),0 0 0 0 rgba(192,0,255,0);
    animation-timing-function: cubic-bezier(.55,0,.15,1);
  }

  29.333% {
    opacity: 1;
    left: calc(312 * var(--u));
    top: calc(35 * var(--u));
    width: calc(202 * var(--u));
    height: calc(290 * var(--u));
    border-radius: calc(18 * var(--u));
    background-color: #fbf8ff;
    border-color: rgba(255,255,255,0);
    box-shadow: 0 calc(10 * var(--u)) calc(34 * var(--u)) 0 rgba(0,0,0,.45),0 0 calc(44 * var(--u)) 0 rgba(192,0,255,.3);
    animation-timing-function: cubic-bezier(.3,.7,.3,1);
  }

  32.000%,40.667% {
    opacity: 1;
    left: calc(316 * var(--u));
    top: calc(25 * var(--u));
    width: calc(203 * var(--u));
    height: calc(276 * var(--u));
    border-radius: calc(18 * var(--u));
    background-color: #fbf8ff;
    border-color: rgba(255,255,255,0);
    box-shadow: 0 calc(10 * var(--u)) calc(34 * var(--u)) 0 rgba(0,0,0,.45),0 0 calc(44 * var(--u)) 0 rgba(192,0,255,.3);
    animation-timing-function: cubic-bezier(.3,.7,.3,1);
  }

  45.333%,77.000% {
    opacity: 1;
    left: calc(319 * var(--u));
    top: calc(28 * var(--u));
    width: calc(197 * var(--u));
    height: calc(276 * var(--u));
    border-radius: calc(16 * var(--u));
    background-color: #ece1fb;
    border-color: rgba(255,255,255,0);
    box-shadow: 0 calc(10 * var(--u)) calc(34 * var(--u)) 0 rgba(0,0,0,.45),0 0 calc(44 * var(--u)) 0 rgba(192,0,255,.3);
    animation-timing-function: cubic-bezier(.5,0,.8,.4);
  }

  82.000%,100% {
    opacity: 0;
    left: calc(319 * var(--u));
    top: calc(-270 * var(--u));
    width: calc(197 * var(--u));
    height: calc(276 * var(--u));
    border-radius: calc(16 * var(--u));
    background-color: #ece1fb;
    border-color: rgba(255,255,255,0);
    box-shadow: 0 calc(10 * var(--u)) calc(34 * var(--u)) 0 rgba(0,0,0,.45),0 0 calc(44 * var(--u)) 0 rgba(192,0,255,.3);
  }
}

@keyframes aid-hl {
  0%,25.333% {
    opacity: 1;
  }

  27.667%,100% {
    opacity: 0;
  }
}

@keyframes aid-hero-icon {
  0%,20.000% {
    top: calc(24 * var(--u));
  }

  24.667%,100% {
    top: calc(35 * var(--u));
  }
}

@keyframes aid-hd {
  0%,21.333% {
    opacity: 0;
  }

  24.000%,25.333% {
    opacity: 1;
  }

  27.667%,100% {
    opacity: 0;
  }
}

@keyframes aid-wfade {
  0%,28.000% {
    opacity: 0;
    transform: translateY(calc(22 * var(--u)));
  }

  31.333%,100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes aid-btn {
  0%,38.000% {
    background-color: #7d6ca3;
    transform: scale(1);
  }

  39.000% {
    background-color: #c000ff;
    transform: scale(.94);
  }

  40.667%,100% {
    background-color: #c000ff;
    transform: scale(1);
  }
}

@keyframes aid-btn2 {
  0%,51.333% {
    background-color: #f6eeff;
    color: #5b00c2;
    transform: scale(1);
  }

  52.333% {
    background-color: #5b00c2;
    color: #fff;
    transform: scale(.97);
  }

  54.000%,100% {
    background-color: #5b00c2;
    color: #fff;
    transform: scale(1);
  }
}

@keyframes aid-result2 {
  0%,40.667% {
    top: calc(335 * var(--u));
    left: calc(321 * var(--u));
    width: calc(203 * var(--u));
    background-color: #fdfbff;
    opacity: 1;
    animation-timing-function: cubic-bezier(.16,.84,.3,1);
  }

  45.333%,54.000% {
    top: calc(57 * var(--u));
    left: calc(321 * var(--u));
    width: calc(203 * var(--u));
    background-color: #fdfbff;
    opacity: 1;
    animation-timing-function: cubic-bezier(.3,.7,.3,1);
  }

  58.667%,77.000% {
    top: calc(43 * var(--u));
    left: calc(323 * var(--u));
    width: calc(197 * var(--u));
    background-color: #f1e8fc;
    opacity: 1;
    animation-timing-function: cubic-bezier(.5,0,.8,.4);
  }

  82.000%,100% {
    top: calc(-290 * var(--u));
    left: calc(323 * var(--u));
    width: calc(197 * var(--u));
    background-color: #f1e8fc;
    opacity: 0;
  }
}

@keyframes aid-result3 {
  0%,54.000% {
    top: calc(335 * var(--u));
    opacity: 1;
    animation-timing-function: cubic-bezier(.16,.84,.3,1);
  }

  58.667%,77.000% {
    top: calc(57 * var(--u));
    opacity: 1;
    animation-timing-function: cubic-bezier(.5,0,.8,.4);
  }

  82.000%,100% {
    top: calc(-290 * var(--u));
    opacity: 0;
  }
}

@keyframes aid-reveal {
  0%,59.333% {
    clip-path: inset(0 100% 0 0);
  }

  67.333%,100% {
    clip-path: inset(0 0 0 0);
  }
}

@keyframes aid-cur {
  0%,14.000% {
    left: calc(422 * var(--u));
    top: calc(248 * var(--u));
    opacity: 0;
    transform: scale(1);
    animation-timing-function: cubic-bezier(.3,.6,.3,1);
  }

  16.000% {
    left: calc(437 * var(--u));
    top: calc(205 * var(--u));
    opacity: 1;
  }

  18.667% {
    left: calc(472 * var(--u));
    top: calc(179 * var(--u));
    opacity: 1;
    animation-timing-function: linear;
  }

  20.000% {
    left: calc(474 * var(--u));
    top: calc(181 * var(--u));
    opacity: 1;
    animation-timing-function: cubic-bezier(.5,0,.2,1);
  }

  24.667% {
    left: calc(492 * var(--u));
    top: calc(192 * var(--u));
    opacity: 1;
    animation-timing-function: cubic-bezier(.3,.7,.3,1);
  }

  29.333% {
    left: calc(518 * var(--u));
    top: calc(198 * var(--u));
    opacity: 1;
    animation-timing-function: ease-in-out;
  }

  32.000%,34.333% {
    left: calc(525 * var(--u));
    top: calc(201 * var(--u));
    opacity: 1;
    animation-timing-function: cubic-bezier(.4,0,.2,1);
  }

  38.000% {
    left: calc(448 * var(--u));
    top: calc(271 * var(--u));
    opacity: 1;
    transform: scale(1);
    animation-timing-function: ease-in;
  }

  39.000% {
    left: calc(448 * var(--u));
    top: calc(272 * var(--u));
    opacity: 1;
    transform: scale(.86);
    animation-timing-function: ease-out;
  }

  40.000% {
    left: calc(449 * var(--u));
    top: calc(272 * var(--u));
    opacity: 1;
    transform: scale(1);
    animation-timing-function: cubic-bezier(.4,0,.2,1);
  }

  45.333%,48.000% {
    left: calc(489 * var(--u));
    top: calc(273 * var(--u));
    opacity: 1;
    animation-timing-function: cubic-bezier(.4,0,.2,1);
  }

  51.333% {
    left: calc(419 * var(--u));
    top: calc(281 * var(--u));
    opacity: 1;
    transform: scale(1);
    animation-timing-function: ease-in;
  }

  52.333% {
    left: calc(419 * var(--u));
    top: calc(282 * var(--u));
    opacity: 1;
    transform: scale(.86);
    animation-timing-function: ease-out;
  }

  53.333% {
    left: calc(420 * var(--u));
    top: calc(282 * var(--u));
    opacity: 1;
    transform: scale(1);
    animation-timing-function: cubic-bezier(.4,0,.2,1);
  }

  58.667%,77.000% {
    left: calc(489 * var(--u));
    top: calc(273 * var(--u));
    opacity: 1;
    animation-timing-function: cubic-bezier(.5,0,.8,.4);
  }

  82.000%,100% {
    left: calc(553 * var(--u));
    top: calc(100 * var(--u));
    opacity: 0;
  }
}

@keyframes aid-h0 {
  0%,22.000% {
    opacity: 1;
    transform: translateY(0);
  }

  25.000%,77.500% {
    opacity: 0;
    transform: translateY(-10px);
  }

  77.510% {
    opacity: 0;
    transform: translateY(10px);
  }

  86.000%,100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes aid-n1 {
  0%,23.500% {
    opacity: 0;
    transform: translateY(10px);
  }

  27.000%,40.000% {
    opacity: 1;
    transform: translateY(0);
  }

  42.500%,100% {
    opacity: 0;
    transform: translateY(-10px);
  }
}

@keyframes aid-n2 {
  0%,41.500% {
    opacity: 0;
    transform: translateY(10px);
  }

  45.000%,53.000% {
    opacity: 1;
    transform: translateY(0);
  }

  55.500%,100% {
    opacity: 0;
    transform: translateY(-10px);
  }
}

@keyframes aid-n3 {
  0%,54.500% {
    opacity: 0;
    transform: translateY(10px);
  }

  58.000%,76.000% {
    opacity: 1;
    transform: translateY(0);
  }

  79.000%,100% {
    opacity: 0;
    transform: translateY(-10px);
  }
}

/* Reduced motion: freeze on the opening state (headline + capability list) */
@media (prefers-reduced-motion: reduce) {
  .mitre-promo *,
  .mitre-promo *::before {
    animation: none !important;
  }

  .mitre-promo .aid-h0 {
    opacity: 1;
  }
}