.aa-hero {
  min-height: 720px; padding: 0; display: flex; align-items: center;
  position: relative; overflow: hidden; isolation: isolate;
  border-bottom: 1px solid var(--color-border);
  background:
    radial-gradient(ellipse at 78% 58%, rgba(7, 45, 84, .2), transparent 42%),
    linear-gradient(105deg, var(--color-bg), #050912);
}
.aa-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background-image: radial-gradient(rgba(133, 177, 219, .17) .65px, transparent .65px);
  background-size: 28px 28px; opacity: .13;
  -webkit-mask-image: linear-gradient(90deg, transparent 10%, #000 80%);
          mask-image: linear-gradient(90deg, transparent 10%, #000 80%);
}
.aa-hero__inner { position: relative; z-index: 2; width: 100%; padding: calc(var(--aa-nav-h, 88px) + 7px) var(--space-section-x) 65px; }
.aa-hero__eyebrow {
  display: flex; align-items: center; gap: 12px; margin-bottom: 27px;
  color: var(--color-accent); font-size: 10px; letter-spacing: 2.3px; text-transform: uppercase;
}
.aa-hero__eyebrow::before { content: ""; width: 28px; height: 1px; background: var(--color-accent); box-shadow: 0 0 12px var(--color-accent-glow); }
.aa-hero__title {
  max-width: 590px; font-family: var(--font-display);
  font-size: clamp(45px, 5.6vw, 76px); line-height: .99; letter-spacing: -.055em;
  font-weight: 300; text-transform: uppercase; color: var(--color-fg);
}
.aa-hero__copy { max-width: 390px; margin-top: 25px; color: #bac3cf; font-size: 17px; line-height: 1.45; }
.aa-hero__actions { display: flex; gap: 14px; margin-top: 30px; flex-wrap: wrap; }
.aa-hero__arrow::after { content: "\2197"; }
.aa-hero__foot {
  margin-top: 65px; display: flex; align-items: center; gap: 14px;
  color: #758292; font-size: 10px; text-transform: uppercase; letter-spacing: 1.5px;
}
.aa-hero__foot i { width: 45px; height: 1px; background: #3b5067; }
.aa-hero__globe {
  position: absolute; z-index: 1; pointer-events: none; opacity: .95;
  width: min(64vw, 850px); height: min(70vw, 800px);
  right: max(-120px, calc((100vw - var(--maxw)) / 2 - 150px));
  top: 50%; transform: translateY(-43%);
}
.aa-hero__globe svg { width: 100%; height: 100%; overflow: visible; }
.aa-hero__side {
  position: absolute; z-index: 3; top: 44%; width: 145px; display: grid;
  right: max(36px, calc((100vw - var(--maxw)) / 2));
}
.aa-hero__side > span {
  border-bottom: 1px solid rgba(155, 188, 220, .13); padding: 12px 0;
  color: #bdc8d6; font-size: 10px; letter-spacing: 1.3px; text-transform: uppercase;
}
.aa-hero__side b { color: var(--color-accent); font-weight: 400; margin-left: 5px; }
body.cms-edit .aa-hero__globe { opacity: .4; }

/* Optional background images: stacked full-bleed slides that
   cross-fade (shared/site.js adds .active in turn) with a slow zoom,
   under a fade to the page ground on the text side and at the bottom
   so the headline stays readable. */
.aa-hero__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; }
/* .cph-bg-stack is the hook shared/site.js cycles; it carries no look of its own. */
.aa-hero .cph-bg-stack { pointer-events: none; }
.aa-hero .cph-bg-slide {
  position: absolute; inset: 0;
  background-size: cover; background-position: 70% 50%;
  opacity: 0; transform: scale(1.06);
  transition: opacity 1.8s ease, transform 7s ease-out;
}
.aa-hero .cph-bg-slide.active { opacity: 1; transform: scale(1); }
.aa-hero__bg::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    linear-gradient(90deg, var(--color-bg) 0%, rgba(5, 7, 11, .82) 32%, rgba(5, 7, 11, .25) 62%, rgba(5, 7, 11, .1) 100%),
    linear-gradient(0deg, var(--color-bg) 0%, transparent 28%);
}
@media (prefers-reduced-motion: reduce) {
  .aa-hero .cph-bg-slide { transition: none; transform: none; }
}

/* Editor-only thumbnail strip for the background images. */
.aa-hero__thumbs { display: none; }
body.cms-edit .aa-hero__thumbs {
  display: flex; align-items: center; gap: 8px;
  position: absolute; right: 24px; bottom: 24px; z-index: 6;
  padding: 8px; background: rgba(5, 7, 11, .75); border: 1px solid var(--color-border); border-radius: 6px;
}
.aa-hero__thumb {
  position: relative; width: 72px; height: 44px; border-radius: 3px; cursor: pointer;
  background: var(--color-surface) center / cover no-repeat; border: 1px solid var(--color-border);
}
.aa-hero__thumb:hover { border-color: var(--color-accent); }
.aa-hero__thumb--empty { display: flex; align-items: center; justify-content: center; color: var(--color-muted); font-size: 18px; border-style: dashed; }
.aa-hero__thumbs .cms-list-item-move { display: none !important; }
.aa-hero__thumb-add { width: auto !important; min-height: 0 !important; padding: 10px 12px !important; font-size: 12px; }

@media (max-width: 900px) {
  .aa-hero__globe { width: 72vw; right: -180px; opacity: .72; }
  .aa-hero__side { display: none; }
}
@media (max-width: 640px) {
  .aa-hero { min-height: 700px; align-items: flex-start; }
  .aa-hero__inner { padding-top: 145px; }
  .aa-hero__copy { font-size: 15px; max-width: 300px; }
  .aa-hero__globe { width: 115vw; height: 100vw; right: -55vw; top: 61%; opacity: .48; }
  .aa-hero .cph-bg-slide { background-position: 75% 50%; }
  .aa-hero__bg::after { background: linear-gradient(0deg, var(--color-bg) 0%, rgba(5, 7, 11, .7) 45%, rgba(5, 7, 11, .45) 100%); }
  .aa-hero__foot { margin-top: 45px; }
}

/* Motion — all of it slow, and none of it for visitors who ask for
   reduced motion. The orbit lines turn once every two minutes, the dot
   field drifts, the rim breathes, the points on the rim twinkle in
   turn, and the hero text eases in on load. */
@keyframes aa-hero-spin    { to { transform: rotate(360deg); } }
@keyframes aa-hero-drift   { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-10px, 6px); } }
@keyframes aa-hero-breathe { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
@keyframes aa-hero-twinkle { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
@keyframes aa-hero-in      { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
  .aa-hero__orbits { transform-box: view-box; transform-origin: 510px 415px; animation: aa-hero-spin 120s linear infinite; }
  .aa-hero__dots   { animation: aa-hero-drift 24s ease-in-out infinite; }
  .aa-hero__rim    { animation: aa-hero-breathe 6s ease-in-out infinite; }
  .aa-hero__sparks circle { animation: aa-hero-twinkle 3.2s ease-in-out infinite; }
  .aa-hero__sparks circle:nth-child(2) { animation-delay: .4s; }
  .aa-hero__sparks circle:nth-child(3) { animation-delay: .8s; }
  .aa-hero__sparks circle:nth-child(4) { animation-delay: 1.2s; }
  .aa-hero__sparks circle:nth-child(5) { animation-delay: 1.6s; }
  .aa-hero__sparks circle:nth-child(6) { animation-delay: 2s; }
  .aa-hero__sparks circle:nth-child(7) { animation-delay: 2.4s; }
  .aa-hero__sparks circle:nth-child(8) { animation-delay: 2.8s; }
  body:not(.cms-edit) .aa-hero__inner > * { animation: aa-hero-in .9s cubic-bezier(.2, .7, .2, 1) both; }
  body:not(.cms-edit) .aa-hero__inner > :nth-child(2) { animation-delay: .1s; }
  body:not(.cms-edit) .aa-hero__inner > :nth-child(3) { animation-delay: .2s; }
  body:not(.cms-edit) .aa-hero__inner > :nth-child(4) { animation-delay: .3s; }
  body:not(.cms-edit) .aa-hero__inner > :nth-child(5) { animation-delay: .4s; }
}

/* Over a photo, the right-hand list needs a shadow to stay legible. */
.aa-hero:has(.aa-hero__bg) .aa-hero__side > span { text-shadow: 0 1px 10px rgba(0, 0, 0, .95), 0 0 2px rgba(0, 0, 0, .9); color: #e2e8f0; }

/* "In partnership with" + partner logo, top right under the nav. */
.aa-hero__partner {
  position: absolute; z-index: 3;
  top: calc(var(--aa-nav-h, 88px) + 28px);
  right: max(var(--space-section-x), calc((100vw - var(--maxw)) / 2));
  display: flex; flex-direction: column; align-items: flex-end; gap: 10px;
}
.aa-hero__partner-label {
  font-size: 10px; letter-spacing: 2.3px; text-transform: uppercase; color: var(--color-accent-soft);
  text-shadow: 0 1px 8px rgba(0, 0, 0, .9);
}
.aa-hero__partner-link { display: block; line-height: 0; }
.aa-hero__partner-link img { height: 38px; width: auto; filter: drop-shadow(0 2px 10px rgba(0, 0, 0, .7)); transition: opacity .2s; }
.aa-hero__partner-link:hover img { opacity: .85; }
.aa-hero__partner-empty { display: inline-block; padding: 8px 12px; font-size: 12px; color: var(--color-muted); border: 1px dashed var(--color-border); line-height: 1.2; }
@media (max-width: 640px) {
  .aa-hero__partner { top: calc(var(--aa-nav-h, 74px) + 20px); gap: 6px; }
  .aa-hero__partner-label { font-size: 9px; letter-spacing: 1.6px; }
  .aa-hero__partner-link img { height: 26px; }
}

/* Compact countdown, bottom right of the hero, in line with the
   footnote. Shares the moment set on the Winners page. The raw target
   shows only in the editor, so it can be changed there. */
.aa-hero__cd {
  position: absolute; right: var(--space-section-x); bottom: 52px;
  padding: 14px 18px 12px; border: 1px solid rgba(85, 200, 255, .25); border-radius: 4px;
  background: rgba(8, 12, 19, .6); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.aa-hero__cd-label { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(--color-accent-soft); margin-bottom: 8px; }
.aa-hero__cd-clock { display: flex; gap: 16px; }
.aa-hero__cd-clock span { display: flex; align-items: baseline; gap: 3px; }
.aa-hero__cd-clock b { font-size: 30px; font-weight: 200; letter-spacing: -.02em; line-height: 1; color: var(--color-fg); font-variant-numeric: tabular-nums; }
.aa-hero__cd-clock i { font-style: normal; font: 11px var(--font-mono); color: var(--color-accent); }
.aa-hero__cd-target { display: none; }
body.cms-edit .aa-hero__cd-target { display: block; margin-top: 8px; font: 11px var(--font-mono); color: var(--color-muted); }
.aa-hero__cd.is-done { display: none; }
body.cms-edit .aa-hero__cd.is-done { display: block; opacity: .5; }
@media (max-width: 900px) {
  .aa-hero__cd { position: static; display: inline-block; margin-top: 34px; }
}
@media (max-width: 640px) {
  .aa-hero__cd { margin-top: 28px; padding: 12px 14px 10px; }
  .aa-hero__cd-clock { gap: 12px; }
  .aa-hero__cd-clock b { font-size: 24px; }
}
