/* Home page. Every size is in px of a 1440x960 frame, multiplied by --s (set below). */

.hero {
  --s: calc(min(100vw / 1440, 100vh / 960));
  position: relative;
  height: 100vh;
  min-height: 480px;
  overflow: hidden;
}
.hero .nav { position: absolute; top: 0; left: 0; right: 0; padding: 0 calc(56 * var(--s)); }

/* ---------- Background photo carousel ---------- */
.hero-panel { position: absolute; inset: 0 0 25% 0; overflow: hidden; isolation: isolate; }
.hero-photo {
  position: absolute;
  inset: -4%;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity .77s ease;
  animation: drift 14s ease-in-out infinite alternate;
}
.hero-photo.is-active { opacity: 1; }
.hero-scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(13, 13, 12, .55), rgba(13, 13, 12, .3) 45%, rgba(13, 13, 12, .55));
}

/* ---------- Headline ---------- */
.headline {
  position: absolute;
  z-index: 2;
  top: calc(190 * var(--s));
  left: calc(112 * var(--s));
  font-size: calc(120 * var(--s));
  font-weight: 500;
  line-height: .95;
  letter-spacing: -.032em;
  text-shadow: 0 2px 30px rgba(0, 0, 0, .3);
}
.headline-word { display: flex; align-items: center; height: .95em; white-space: nowrap; }
.headline-word span { display: inline-block; }
.headline-word.is-entering span { animation: word-in .5s cubic-bezier(.22, 1, .36, 1) both; }
.headline-word.is-leaving span { animation: word-out .42s cubic-bezier(.55, 0, 1, .45) both; }

@keyframes word-in {
  from { opacity: 0; transform: translateY(.32em) scale(.96); filter: blur(10px); }
  to   { opacity: 1; transform: none; filter: none; }
}
@keyframes word-out {
  to { opacity: 0; transform: translateY(-.16em); filter: blur(8px); }
}

/* ---------- Call to action ---------- */
.hero-actions {
  position: absolute;
  z-index: 2;
  top: calc(578 * var(--s));
  left: calc(112 * var(--s));
  display: flex;
  align-items: center;
  gap: calc(14 * var(--s));
}
.hero-cta {
  justify-content: center;
  min-width: calc(340 * var(--s));
  height: calc(58 * var(--s));
  border-color: #fff;
  background: #fff;
  color: var(--ink);
}
.hero .hero-cta:hover { background: #F1EBE2; border-color: #F1EBE2; color: var(--ink); }
.hero-cta svg { width: calc(20 * var(--s)); height: calc(20 * var(--s)); }
.hero-caption {
  margin-left: calc(18 * var(--s));
  font-size: calc(18.5 * var(--s));
  line-height: 1.3;
  color: rgba(255, 255, 255, .82);
}

/* ---------- Stats strip ---------- */
.strip { position: absolute; left: 0; right: 0; bottom: 0; height: 25%; background: var(--cream); color: var(--ink); }
.strip-notch {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(-61.5 / 1440 * 100vw);
  display: block;
  width: 100%;
  height: calc(62 / 1440 * 100vw);
}
.strip-hint {
  position: absolute;
  z-index: 2;
  top: calc(-44 * var(--s));
  right: calc(40 * var(--s));
  font-size: calc(15 * var(--s));
  color: rgba(13, 13, 12, .42);
  text-decoration: none;
}
.strip-body { display: flex; align-items: center; gap: calc(80 * var(--s)); height: 100%; padding: 0 calc(112 * var(--s)); }
.strip-body h3 {
  flex: none;
  width: calc(220 * var(--s));
  font-size: calc(29 * var(--s));
  font-weight: 500;
  letter-spacing: -.02em;
  line-height: 1.1;
}
.strip-stats { display: flex; flex: 1; gap: calc(70 * var(--s)); }
.strip-stat b { display: block; font-size: calc(54 * var(--s)); font-weight: 500; letter-spacing: -.03em; line-height: 1; }
.strip-stat span { font-size: calc(16.5 * var(--s)); color: var(--muted); }
.sprout { flex: none; width: calc(110 * var(--s)); height: calc(110 * var(--s)); }

/* ---------- Phones ---------- */
@media (max-width: 760px) {
  .hero { --s: 1px; height: auto; min-height: 0; }
  .hero .nav { position: relative; height: 64px; padding: 0 20px; }
  .hero-panel { position: absolute; inset: 0 0 auto 0; height: 100%; }
  .hero-content { position: relative; z-index: 2; padding-bottom: 40px; }
  .headline, .hero-actions { position: relative; top: auto; left: auto; margin: 36px 20px 0; }
  .headline { font-size: clamp(34px, 9.5vw, 72px); }
  .hero-actions { flex-wrap: wrap; gap: 12px; margin-top: 28px; }
  .hero-cta { height: 50px; font-size: 16px; }
  .hero-caption { width: 100%; margin: 6px 0 0; font-size: 16px; }
  .hero-caption br { display: none; }
  .strip { position: relative; height: auto; padding-bottom: 28px; }
  .strip-notch, .strip-hint { display: none; }
  .strip-body { flex-direction: column; align-items: flex-start; gap: 22px; padding: 28px 20px; }
  .strip-body h3 { width: auto; font-size: 26px; }
  .strip-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
  .strip-stat b { font-size: 40px; }
  .strip-stat span { font-size: 14px; }
  .sprout { position: absolute; top: 28px; right: 20px; width: 80px; height: 80px; }
}

/* ---------- Platform section (below the first screen) ---------- */
.platform { max-width: var(--page-max); margin: 0 auto; padding: 96px 32px 80px; }
.platform__image {
  display: block;
  width: 100%;
  aspect-ratio: 21 / 9;
  object-fit: cover;
  border-radius: 20px;
}
.platform__text {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 56px;
  margin-top: 56px;
}
.platform__text h2 {
  font-size: clamp(30px, 3.6vw, 48px);
  font-weight: 500;
  letter-spacing: -.03em;
  line-height: 1.08;
}
.platform__text p { font-size: 19px; line-height: 1.55; text-align: justify; hyphens: auto; }
.platform__text p + p { margin-top: 20px; }

@media (max-width: 760px) {
  .platform { padding: 40px 20px 48px; }
  .platform__image { aspect-ratio: 16 / 9; border-radius: 14px; }
  .platform__text { grid-template-columns: 1fr; gap: 20px; margin-top: 28px; }
  .platform__text p { font-size: 16px; }
}
