/* The first screen retains the launch composition; About is the next screen. */
html { scroll-padding-top: 0; }
.home-page { display: flex; flex-direction: column; min-height: calc(100svh - 112px); }
.about-section {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  min-height: 100svh;
  background: radial-gradient(ellipse at 30% 32%, #151719, #08090a 70%);
}
/* The same calibration grid as the first screen, fixed so the two line up. */
.about-section::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background: url('/red-grid.svg') center top / var(--grid-size) var(--grid-size) repeat fixed;
  opacity: var(--grid-opacity);
  -webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent 8%, #000 76%);
  mask-image: radial-gradient(ellipse at 50% 50%, transparent 8%, #000 76%);
}
.about-section::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background: url('/grain.svg') repeat;
  background-size: var(--grain-size) var(--grain-size);
  opacity: var(--grain-opacity);
  mix-blend-mode: screen;
}
/* Text and film share the grid rows, so the copy sits over the edge of the
   flower; the button follows the text. On phones they stack and the button
   closes the section. */
.about-story {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  width: min(1200px, 90%);
  margin: auto;
  padding: 160px 0 80px;
}
.about-copy {
  position: relative;
  z-index: 1;
  grid-column: 1 / 8;
  grid-row: 1;
  align-self: end;
  max-width: 580px;
  text-shadow: 0 1px 24px rgb(8 9 11 / 85%);
}
/* Black film ground screens away, so only the tracked flower shows; the
   ellipse mask dissolves the petals that overfill the frame. */
.about-film {
  grid-column: 7 / 13;
  grid-row: 1 / 3;
  justify-self: center;
  display: block;
  width: min(100%, 440px);
  aspect-ratio: 3 / 4;
  object-fit: cover;
  mix-blend-mode: screen;
  -webkit-mask-image: radial-gradient(ellipse 50% 50% at 50% 50%, #000 35%, transparent 100%);
  mask-image: radial-gradient(ellipse 50% 50% at 50% 50%, #000 35%, transparent 100%);
}
/* Hidden until revealed by main.js: the film as it scrolls into view, the
   button once the About text lands. Transitions apply only when revealing,
   so the initial hide is instant. */
.intro-pending .about-film,
.intro-pending .about-cta { opacity: 0; }
.intro-pending .about-film.is-revealed { opacity: 1; transition: opacity 1.8s ease-in-out .2s; }
.intro-pending .about-cta.is-revealed { opacity: 1; transition: opacity .6s ease; }
@media (prefers-reduced-motion: reduce) {
  .intro-pending .about-film, .intro-pending .about-cta { opacity: 1; }
}
.about-story > .about-cta {
  position: relative;
  z-index: 1;
  display: block;
  grid-column: 1 / 8;
  grid-row: 2;
  align-self: start;
  justify-self: start;
  width: fit-content;
  margin-top: 40px;
}
/* Sits level with the sticky wordmark, centred at the top of the section. */
.about-eye { position: absolute; top: 28px; left: 50%; width: 56px; height: 56px; transform: translateX(-50%); }
.about-eye-lid { transform-box: view-box; transform-origin: 32px 31px; }
.about-eye-pupil { transition: transform 160ms ease-out; }
@media (hover: none) and (pointer: coarse) {
  .about-eye-pupil { transition: transform 420ms cubic-bezier(.22, 1, .36, 1); }
}
@media (prefers-reduced-motion: reduce) {
  .about-eye-pupil { transition: none; }
}
.about-copy h2 {
  margin: 0 0 28px;
  font-family: 'SuperLegendBoy', monospace;
  font-size: clamp(24px, 2.6vw, 36px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -.035em;
}
.about-copy p {
  margin: 0 0 20px;
  color: #a9adb3;
  font-size: 16px;
  line-height: 1.8;
}
.about-copy p:not(.about-proof-label) { max-width: 540px; line-height: 1.7; text-wrap: pretty; }
.about-copy .about-lead { color: #efefed; }
/* The three customer-reported numbers from the deck, in the deck's red. */
.about-proof { margin-top: 36px; padding-top: 24px; border-top: 1px solid #26282b; }
.about-copy .about-proof-label { margin: 0 0 16px; color: #6f7378; font-size: 11px; letter-spacing: .14em; line-height: 1; text-transform: uppercase; }
.about-stats { display: flex; gap: 48px; margin: 0; }
.about-stats div { min-width: 0; }
.about-stats dt { color: #fa4839; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: clamp(40px, 4.2vw, 60px); font-weight: 600; letter-spacing: -.06em; line-height: 1; font-variant-numeric: tabular-nums; }
.about-stats dd { margin: 10px 0 0; text-wrap: balance; color: #efefed; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 1.35; }

/* Desktop: the page snaps between two full screens, the launch view and About,
   so About must fit one viewport. */
@media (min-width: 1001px) and (min-height: 640px) {
  html { scroll-snap-type: y mandatory; }
  body { scroll-snap-align: start; }
  .about-section { height: 100svh; min-height: 0; scroll-snap-align: start; overflow: hidden; }
  .about-story { padding: 112px 0 16px; }
  .about-film { width: min(100%, 440px, calc((100svh - 240px) * .75)); }
}

@media (max-width: 1000px) {
  .home-page { min-height: calc(100svh - 90px); }
  /* Mobile: About is taller than a screen, so snap only near its top. */
  html { scroll-snap-type: y proximity; }
  body, .about-section { scroll-snap-align: start; }
}
@media (max-width: 760px) {
  /* Stacked: the flower rises under the last paragraph, the button over its fade. */
  .about-story {
    grid-template-columns: minmax(0, 1fr);
    width: min(480px, 88%);
    padding: 120px 0 56px;
  }
  .about-copy { grid-column: 1; }
  .about-story > .about-cta { grid-column: 1; justify-self: center; }
  .about-film {
    grid-column: 1;
    grid-row: 2;
    justify-self: center;
    width: min(420px, 100%);
    margin-top: -110px;
  }
  .about-story > .about-cta { grid-row: 3; margin-top: -48px; }
  .about-copy h2 { font-size: clamp(20px, 5.4vw, 28px); }
  .about-copy p { font-size: 15px; }
  .about-stats { gap: 24px; }
  .about-proof { margin-top: 28px; padding-top: 20px; }
  .about-stats dt { font-size: 34px; }
  .about-stats dd { font-size: 12px; }
}
@media (max-width: 640px) {
  .home-page { min-height: calc(100svh - 83px); }
}
