/* Hero: background layers, headline, CTAs, the agent-logo row, and the product screenshot. */
.hero {
  position: relative;
  max-width: var(--container);
  margin: 0 auto;
  padding: 172px var(--gutter) 100px;
}

.hero-copy {
  max-width: 100%;
  margin: 0 auto;
  text-align: center;
  opacity: 0;
}
/* reveal hero text only once webfonts are ready — avoids the font-swap flicker */
.fonts-ready .hero-copy {
  opacity: 1;
  transition: opacity 0.3s ease;
}

/* page grid — only behind the hero, fading out below it */
.bg-grid {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 740px;
  z-index: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px);
  background-size: 56px 56px, 56px 56px;
  -webkit-mask: linear-gradient(to bottom, #000 0%, #000 76%, transparent 100%);
  mask: linear-gradient(to bottom, #000 0%, #000 76%, transparent 100%);
}

/* hero aurora — exact Figma gradient (#10E510 / #0CB8AA / #43A8D0 / #267C26):
   four screen-blended radial glows, concentrated at the top (behind the nav),
   fading out toward the bottom. Static, full-bleed, anchored to the page top. */
.hero-aurora {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  height: 820px;
  transform: translateX(-50%);
  z-index: 0;
  pointer-events: none;
  background-image:
    radial-gradient(ellipse 42% 66% at 50% 4%, rgba(16, 229, 16, 0.22) 0%, rgba(16, 229, 16, 0) 72%),
    radial-gradient(ellipse 88% 62% at 50% 0%, rgba(12, 184, 170, 0.18) 0%, rgba(12, 184, 170, 0) 73%),
    radial-gradient(ellipse 156% 60% at 50% -4%, rgba(67, 168, 208, 0.17) 0%, rgba(67, 168, 208, 0) 71%),
    radial-gradient(ellipse 176% 50% at 50% -10%, rgba(38, 124, 38, 0.38) 0%, rgba(38, 124, 38, 0) 67%);
  background-blend-mode: screen;
}
/* keep hero content above the aurora */
.hero-copy,
.hero .marquee-label,
.hero .logo-row {
  position: relative;
  z-index: 1;
}

.hero-title {
  max-width: 100%;
  margin: 0 auto 28px;
  color: #fff;
  font-size: 46px;
  font-weight: 800;
  line-height: 1.06;
  letter-spacing: -0.015em;
  text-wrap: balance;
}

.hero-title .accent {
  color: var(--green);
}

.hero-subtitle {
  max-width: 100%;
  margin: 0 auto 46px;
  color: #a6a6a6;
  font-size: 18px;
  font-weight: 450;
  line-height: 1.6;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  margin-bottom: 22px;
}

.hero-note {
  color: #bfbfbf;
  font-family: var(--mono);
  font-size: 12.5px;
}

.hero-note strong {
  color: #bfbfbf;
  font-weight: 400;
}

/* static "works with your agents" logo row */
.marquee-label {
  margin: 40px auto 18px;
  text-align: center;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: #6a6a6a;
}
.logo-row {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 38px;
  margin: 0 auto 56px;
}
.ml-logo {
  height: 27.5px;
  width: auto;
  flex: 0 0 auto;
  opacity: 0.9;
}
/* inline SVG agent mark (Codex) — set its currentColor */
.ml-logo--codex {
  color: #ededed;
}

/* app showcase — window screenshot inside a latitude-style frame. The padding
   ring is a thick, half-opacity frosted matte (not a hairline). The panel is
   enlarged, pulled up over the hero, and cropped at the end of the hero section
   so it bleeds into the page below. */
.product-wrap {
  position: relative;
  z-index: 1;
  max-width: min(1260px, calc(100% - 2 * var(--gutter)));
  /* pull up so the screenshot overlaps the hero's bottom edge */
  margin: -60px auto 0;
  /* the ~11px matte frame the user borrowed from latitude — a neutral,
     half-opacity frosted ring, not the colorful wallpaper. See --frame-* */
  padding: 11px;
  border-radius: var(--frame-radius);
  border: 1px solid var(--frame-hairline);
  background: var(--frame-ring);
  background-clip: padding-box;
  box-shadow: var(--frame-shadow);
  overflow: hidden;
  /* fade the bottom into the page background — the "crop" at the hero's end.
     Start the fade around 70% so the bottom of the screenshot dissolves well
     before its real edge. */
  -webkit-mask-image: linear-gradient(to bottom, #000 70%, transparent 96%);
  mask-image: linear-gradient(to bottom, #000 70%, transparent 96%);
}

/* the screenshot already has baked rounded corners + transparent edges */
.app-shot {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 11px;
}

@media (max-width: 720px) {
  .hero {
    padding-top: 58px;
  }

  .hero-title {
    font-size: 34px;
  }

  .hero-subtitle {
    font-size: 16px;
  }

  .product-wrap {
    margin-top: -32px;
  }
}

@media (max-width: 420px) {
  .hero-actions {
    align-items: stretch;
    flex-direction: column;
  }
}
