/* cta section (Aurix design) — measured from #cta (outline/cta@1440|1024|390, styles/cta@*.json)
   box: ≥1200 240/200 padding · below 200/200 · radial-gradient floor light
   glows: three blurred conic discs centred 21px under the section's bottom edge, one turn per 6000ms
          (1 and 3 clockwise, 2 counter-clockwise), their container fades in over 5250ms (motion.js fadeLong, delay 300) */

/* the particle field is wider than the section below 1072px (as on the original); clip it sideways
   only, so the glows still reach down under the footer */
.ax-cta { overflow-x: clip; }

.ax-cta__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding: 240px 0 200px;
  background-image: radial-gradient(50% 100% at 50% 100%, rgba(59, 68, 89, 0.4) 0%, rgba(171, 171, 171, 0) 100%);
}

/* ---- dot texture: 3px squares on a 6px pitch; per-dot alpha .094 (60%) / .298 (28%) / .584 (12%),
   measured from the original's texture at its rendered size (321px tile). Base dots are the conic layer,
   the brighter ones an overlay tile (alphas pre-composited so each dot lands on the measured value). */
.ax-cta__dots {
  position: absolute;
  inset: 0;
  pointer-events: none;
  -webkit-mask-image: radial-gradient(50% 75% at 50% 100%, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 100%);
  mask-image: radial-gradient(50% 75% at 50% 100%, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0) 100%);
}
.ax-cta__dots::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='144' height='144'%3E%3Cpath fill='rgb(218,218,218)' fill-opacity='0.225' d='M24 0h3v3h-3zM30 0h3v3h-3zM42 0h3v3h-3zM54 0h3v3h-3zM60 0h3v3h-3zM72 0h3v3h-3zM84 0h3v3h-3zM108 0h3v3h-3zM114 0h3v3h-3zM138 0h3v3h-3zM12 6h3v3h-3zM36 6h3v3h-3zM42 6h3v3h-3zM54 6h3v3h-3zM72 6h3v3h-3zM96 6h3v3h-3zM102 6h3v3h-3zM114 6h3v3h-3zM132 6h3v3h-3zM12 12h3v3h-3zM114 12h3v3h-3zM18 18h3v3h-3zM30 18h3v3h-3zM36 18h3v3h-3zM42 18h3v3h-3zM60 18h3v3h-3zM78 18h3v3h-3zM96 18h3v3h-3zM30 24h3v3h-3zM48 24h3v3h-3zM60 24h3v3h-3zM78 24h3v3h-3zM108 24h3v3h-3zM114 24h3v3h-3zM132 24h3v3h-3zM24 30h3v3h-3zM78 30h3v3h-3zM90 30h3v3h-3zM102 30h3v3h-3zM114 30h3v3h-3zM24 36h3v3h-3zM30 36h3v3h-3zM78 36h3v3h-3zM102 36h3v3h-3zM108 36h3v3h-3zM114 36h3v3h-3zM126 36h3v3h-3zM36 42h3v3h-3zM84 42h3v3h-3zM96 42h3v3h-3zM102 42h3v3h-3zM138 42h3v3h-3zM30 48h3v3h-3zM42 48h3v3h-3zM48 48h3v3h-3zM78 48h3v3h-3zM96 48h3v3h-3zM132 48h3v3h-3zM138 48h3v3h-3zM18 54h3v3h-3zM24 54h3v3h-3zM54 54h3v3h-3zM60 54h3v3h-3zM84 54h3v3h-3zM96 54h3v3h-3zM102 54h3v3h-3zM108 54h3v3h-3zM30 60h3v3h-3zM48 60h3v3h-3zM96 60h3v3h-3zM108 60h3v3h-3zM120 60h3v3h-3zM132 60h3v3h-3zM138 60h3v3h-3zM6 66h3v3h-3zM42 66h3v3h-3zM54 66h3v3h-3zM60 66h3v3h-3zM90 66h3v3h-3zM108 66h3v3h-3zM126 66h3v3h-3zM0 72h3v3h-3zM6 72h3v3h-3zM12 72h3v3h-3zM24 72h3v3h-3zM84 72h3v3h-3zM102 72h3v3h-3zM132 72h3v3h-3zM0 78h3v3h-3zM6 78h3v3h-3zM36 78h3v3h-3zM66 78h3v3h-3zM72 78h3v3h-3zM78 78h3v3h-3zM90 78h3v3h-3zM126 78h3v3h-3zM0 84h3v3h-3zM6 84h3v3h-3zM54 84h3v3h-3zM84 84h3v3h-3zM90 84h3v3h-3zM102 84h3v3h-3zM120 84h3v3h-3zM138 84h3v3h-3zM0 90h3v3h-3zM6 90h3v3h-3zM12 90h3v3h-3zM18 90h3v3h-3zM30 90h3v3h-3zM54 90h3v3h-3zM60 90h3v3h-3zM66 90h3v3h-3zM96 90h3v3h-3zM114 90h3v3h-3zM6 96h3v3h-3zM24 96h3v3h-3zM42 96h3v3h-3zM66 96h3v3h-3zM90 96h3v3h-3zM96 96h3v3h-3zM108 96h3v3h-3zM114 96h3v3h-3zM126 96h3v3h-3zM132 96h3v3h-3zM6 102h3v3h-3zM48 102h3v3h-3zM54 102h3v3h-3zM60 102h3v3h-3zM84 102h3v3h-3zM126 102h3v3h-3zM138 102h3v3h-3zM0 108h3v3h-3zM18 108h3v3h-3zM54 108h3v3h-3zM90 108h3v3h-3zM96 108h3v3h-3zM114 108h3v3h-3zM132 108h3v3h-3zM138 108h3v3h-3zM60 114h3v3h-3zM84 114h3v3h-3zM96 114h3v3h-3zM108 114h3v3h-3zM120 114h3v3h-3zM126 114h3v3h-3zM132 114h3v3h-3zM6 120h3v3h-3zM18 120h3v3h-3zM66 120h3v3h-3zM96 120h3v3h-3zM108 120h3v3h-3zM120 120h3v3h-3zM132 120h3v3h-3zM24 126h3v3h-3zM30 126h3v3h-3zM36 126h3v3h-3zM48 126h3v3h-3zM66 126h3v3h-3zM96 126h3v3h-3zM102 126h3v3h-3zM132 126h3v3h-3zM12 132h3v3h-3zM72 132h3v3h-3zM102 132h3v3h-3zM18 138h3v3h-3zM30 138h3v3h-3zM66 138h3v3h-3zM72 138h3v3h-3zM84 138h3v3h-3zM102 138h3v3h-3zM114 138h3v3h-3zM132 138h3v3h-3z'/%3E%3Cpath fill='rgb(217,217,217)' fill-opacity='0.541' d='M6 0h3v3h-3zM48 0h3v3h-3zM78 0h3v3h-3zM30 6h3v3h-3zM66 6h3v3h-3zM120 6h3v3h-3zM0 12h3v3h-3zM30 12h3v3h-3zM60 12h3v3h-3zM78 12h3v3h-3zM138 12h3v3h-3zM12 18h3v3h-3zM102 18h3v3h-3zM114 18h3v3h-3zM12 24h3v3h-3zM72 24h3v3h-3zM84 24h3v3h-3zM120 24h3v3h-3zM6 30h3v3h-3zM30 30h3v3h-3zM0 36h3v3h-3zM96 36h3v3h-3zM138 36h3v3h-3zM12 42h3v3h-3zM18 42h3v3h-3zM24 42h3v3h-3zM66 42h3v3h-3zM120 54h3v3h-3zM132 54h3v3h-3zM138 54h3v3h-3zM12 60h3v3h-3zM72 60h3v3h-3zM114 60h3v3h-3zM126 60h3v3h-3zM36 66h3v3h-3zM48 66h3v3h-3zM72 66h3v3h-3zM78 66h3v3h-3zM96 66h3v3h-3zM120 66h3v3h-3zM36 72h3v3h-3zM24 78h3v3h-3zM54 78h3v3h-3zM60 78h3v3h-3zM108 78h3v3h-3zM132 78h3v3h-3zM42 84h3v3h-3zM108 84h3v3h-3zM42 90h3v3h-3zM36 96h3v3h-3zM84 96h3v3h-3zM102 96h3v3h-3zM72 102h3v3h-3zM102 102h3v3h-3zM36 108h3v3h-3zM60 108h3v3h-3zM24 114h3v3h-3zM36 114h3v3h-3zM48 114h3v3h-3zM78 114h3v3h-3zM54 120h3v3h-3zM6 126h3v3h-3zM90 126h3v3h-3zM120 126h3v3h-3zM36 132h3v3h-3zM48 132h3v3h-3zM78 132h3v3h-3zM120 132h3v3h-3zM0 138h3v3h-3zM54 138h3v3h-3z'/%3E%3C/svg%3E"),
    conic-gradient(from 270deg at 3px 3px, rgba(223, 223, 223, 0.094) 0deg 90deg, rgba(223, 223, 223, 0) 90deg);
  background-size: 144px 144px, 6px 6px;
  background-position: 0 0, 0 0;
}

/* ---- rotating glows */
.ax-cta__rings {
  position: absolute;
  left: 50%;
  bottom: -371px;
  width: 100%;
  height: 700px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 48px;
  pointer-events: none;
  will-change: transform;
}
/* particle field (original: 2D canvas 1072×700, 700×600 ≤809) under a radial mask; drawn by js/sections/cta.js */
.ax-cta__field {
  position: relative;
  flex: none;
  width: 1072px;
  height: 700px;
  -webkit-mask-image: radial-gradient(65% 100% at 50% 100%, rgb(0, 0, 0) 51.3514%, rgba(0, 0, 0, 0) 100%);
  mask-image: radial-gradient(65% 100% at 50% 100%, rgb(0, 0, 0) 51.3514%, rgba(0, 0, 0, 0) 100%);
  overflow: hidden;
}
.ax-cta__particles { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

.ax-cta__ring {
  position: absolute;
  top: 50%;
  left: 50%;
  aspect-ratio: 1 / 1;
  border-radius: 500px;
  transform: translate(-50%, -50%) rotate(0deg);
  animation: ax-spin 6000ms linear infinite;
  will-change: transform;
}
.ax-cta__ring-fill {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.ax-cta__ring--1 { width: 400px; height: 400px; filter: blur(70px); }
.ax-cta__ring--1 .ax-cta__ring-fill {
  border-radius: 100%;
  opacity: 0.8;
  background-image: conic-gradient(rgb(129, 140, 248) 0deg, rgb(165, 180, 252) 54.8916deg, rgb(255, 202, 226) 106.699deg, rgb(255, 255, 255) 162deg, rgb(133, 184, 254) 252deg, rgb(165, 180, 252) 306deg, rgb(129, 140, 248) 360deg);
}
.ax-cta__ring--2 { width: 300px; height: 300px; filter: blur(32px); animation-direction: reverse; }
.ax-cta__ring--2 .ax-cta__ring-fill {
  border-radius: 50%;
  background-image: conic-gradient(rgb(165, 180, 252) 0deg, rgb(255, 202, 226) 180deg, rgb(129, 140, 248) 360deg);
}
.ax-cta__ring--3 { width: 300px; height: 300px; filter: blur(32px); mix-blend-mode: overlay; }
.ax-cta__ring--3 .ax-cta__ring-fill {
  border-radius: 50%;
  background-image: conic-gradient(rgb(165, 180, 252) 0deg, rgb(133, 184, 254) 180deg, rgb(129, 140, 248) 360deg);
}

/* ---- copy + button */
.ax-cta__content {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 32px;
}
.ax-cta__text {
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 24px;
  overflow: hidden;
}
.ax-cta__title {
  max-width: 740px;
  font-size: 64px;
  font-weight: 500;
  line-height: 70.4px;
  letter-spacing: -3.2px;
  text-align: center;
  text-wrap: balance;
  color: rgb(255, 255, 255);
}
/* text fill: radial-gradient(60% 200%) white → transparent, clipped to the glyphs; the 0.1em
   padding/negative margin gives the gradient room past the glyph edges (as measured) */
.ax-cta__title-fill {
  display: inline-block;
  margin: -0.1em;
  padding: 0.1em;
  text-wrap: balance;
  background-image: radial-gradient(60% 200%, rgb(255, 255, 255) 0%, rgba(255, 255, 255, 0) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.ax-cta__desc {
  max-width: 600px;
  font-size: 16px;
  line-height: 20.8px;
  letter-spacing: -0.32px;
  text-align: center;
  text-wrap: balance;
  color: rgba(255, 255, 255, 0.6);
}

/* measured: 810–1199 padding 200/200 · title 48/52.8/-2.4 */
@media (max-width: 1199px) {
  .ax-cta__inner { padding-top: 200px; }
  .ax-cta__title { font-size: 48px; line-height: 52.8px; letter-spacing: -2.4px; }
}
/* measured: ≤809 title 40/44/-2 full width · texture mask 50% 80% @ .83 · glows 300/200px, blur 60/32, container 600px tall */
@media (max-width: 809px) {
  .ax-cta__dots {
    -webkit-mask-image: radial-gradient(50% 80% at 50% 100%, rgba(0, 0, 0, 0.83) 0%, rgba(0, 0, 0, 0) 100%);
    mask-image: radial-gradient(50% 80% at 50% 100%, rgba(0, 0, 0, 0.83) 0%, rgba(0, 0, 0, 0) 100%);
  }
  .ax-cta__rings { height: 600px; bottom: -320px; }
  .ax-cta__field { width: 700px; height: 600px; }
  .ax-cta__ring--1 { width: 300px; height: 300px; filter: blur(60px); }
  .ax-cta__ring--2, .ax-cta__ring--3 { width: 200px; height: 200px; }
  .ax-cta__title { max-width: none; width: 100%; font-size: 40px; line-height: 44px; letter-spacing: -2px; }
  .ax-cta__desc { max-width: none; width: 100%; }
}
