:root {
  --night: #05070b;
  --ink: #fff8f3;
  --muted: rgba(255, 244, 239, .72);
  --subtle: rgba(255, 245, 241, .48);
  --coral: #ff5b58;
  --red: #ff344f;
  --pink: #ff5d83;
  --cold: #7b75ff;
  --green: #59e0b4;
  --shell: 1820px;
}

* { box-sizing: border-box; }
html { background: var(--night); scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background: var(--night);
  color: var(--ink);
  font-family: Montserrat, "Montserrat Alternates", "Segoe UI", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.shell {
  width: min(calc(100% - 5vw), var(--shell));
  margin-inline: auto;
}

.hero {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  height: 100svh;
  overflow: hidden;
  background: #07101a;
}

.hero__poster,
.hero__video,
.hero__veil,
.hero__vignette {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero__poster {
  z-index: -5;
  background-image: url("../assets/images/hero-poster.webp");
  background-size: cover;
  background-position: center center;
  transform: scale(1.012);
  opacity: 1;
  transition: opacity 160ms ease;
}

.hero__video {
  z-index: -4;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  transition: opacity 160ms ease;
  background: #07101a;
}

/* Poster and video are NEVER intentionally blended.
   Poster is the fallback before playback and after the video ends. */
.hero.video-active .hero__poster { opacity: 0; }
.hero.video-active .hero__video { opacity: 1; }
.hero.video-ended .hero__poster { opacity: 1; }
.hero.video-ended .hero__video { opacity: 0; }

.hero__veil {
  z-index: -3;
  background:
    linear-gradient(90deg, rgba(3,5,10,.96) 0%, rgba(3,5,10,.86) 24%, rgba(3,5,10,.56) 45%, rgba(3,5,10,.18) 65%, rgba(3,5,10,.12) 100%),
    linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.03) 42%, rgba(2,3,7,.56) 100%);
}

.hero__vignette {
  z-index: -2;
  pointer-events: none;
  box-shadow: inset 0 0 180px 35px rgba(0,0,0,.45);
  background: radial-gradient(circle at 62% 46%, transparent 0 34%, rgba(3,4,9,.07) 65%, rgba(3,4,9,.40) 100%);
}

.hero__motion-layer {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 900ms cubic-bezier(.22,.61,.36,1);
}
.hero.video-active:not(.video-finishing) .hero__motion-layer { opacity: 1; }
.hero.video-finishing .hero__motion-layer,
.hero.video-ended .hero__motion-layer { opacity: 0; }

.hero-lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.signal path {
  fill: none;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
}
.signal--red { color: #ff465c; }
.signal--blue { color: #8079ff; }
.signal__halo {
  stroke: currentColor;
  stroke-width: 5.8;
  opacity: .27;
  filter: blur(6px);
}
.signal__core {
  stroke: currentColor;
  stroke-width: 2.05;
  opacity: .9;
  filter: drop-shadow(0 0 7px currentColor);
}
.signal__pulse {
  opacity: 0;
  stroke: none;
}\n.signal { will-change: transform; }

.hero-heart {
  position: absolute;
  left: 64.5%;
  top: 36.5%;
  width: clamp(235px, 19vw, 365px);
  height: auto;
  transform: translate(-50%, -50%) scale(1);
  transform-origin: 50% 52%;
  opacity: .91;
  filter: drop-shadow(0 0 11px rgba(255,61,77,.34));
  animation: hero-heart-breathe 2.2s ease-in-out infinite;
  will-change: transform, filter, opacity;
}

.site-header {
  position: relative;
  z-index: 10;
  height: clamp(84px, 10vh, 108px);
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto;
  align-items: center;
  gap: clamp(24px, 3vw, 56px);
}

.brand-mark {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: max-content;
  text-decoration: none;
}
.brand-mark__heart {
  display: none;
  width: clamp(38px, 2.7vw, 50px);
  height: auto;
  filter: drop-shadow(0 0 8px rgba(255,52,79,.42));
}
.brand-wordmark {
  display: block;
  width: clamp(172px, 12.4vw, 218px);
  height: auto;
  overflow: visible;
  fill: none;
  stroke: #ff796f;
  stroke-width: 2.15;
  stroke-linecap: square;
  stroke-linejoin: bevel;
  filter:
    drop-shadow(0 0 3px rgba(255,92,79,.92))
    drop-shadow(0 0 10px rgba(255,47,62,.56))
    drop-shadow(0 0 22px rgba(255,42,67,.24));
}
.wordmark {
  display: inline-flex;
  align-items: center;
  gap: .30em;
  width: max-content;
  text-transform: uppercase;
  color: #ff8f7f;
  font-family: "Montserrat Alternates", Montserrat, "Segoe UI", sans-serif;
  font-size: clamp(20px, 1.55vw, 29px);
  font-weight: 300;
  letter-spacing: .30em;
  line-height: 1;
  text-shadow:
    0 0 5px rgba(255,80,68,.75),
    0 0 15px rgba(255,47,57,.52),
    0 0 32px rgba(255,42,67,.24);
}
.wordmark span:first-child { letter-spacing: 0; }
.wordmark--mobile { display: none; }

.site-nav {
  display: flex;
  align-items: center;
  gap: clamp(22px, 2.3vw, 42px);
  font-size: clamp(12px, .88vw, 15px);
  font-weight: 500;
  white-space: nowrap;
}
.site-nav a,
.how-link {
  position: relative;
  text-decoration: none;
  color: rgba(255,248,244,.86);
  transition: color 180ms ease;
}
.site-nav a::after,
.how-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -8px;
  height: 1px;
  background: linear-gradient(90deg, #ff443f, #ff6e82);
  box-shadow: 0 0 8px rgba(255,62,82,.65);
  transition: right 180ms ease;
}
.site-nav a:hover,
.how-link:hover { color: #fff; }
.site-nav a:hover::after,
.how-link:hover::after { right: 0; }

.header-meta {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2vw, 34px);
  white-space: nowrap;
  font-size: clamp(11px, .78vw, 14px);
}
.live-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  background: rgba(5,8,14,.34);
  backdrop-filter: blur(10px);
}
.live-badge i,
.desire-feed__head i {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 6px rgba(255,52,79,.13), 0 0 12px rgba(255,52,79,.7);
  animation: breathe 1.8s ease-in-out infinite;
}
.age { color: rgba(255,255,255,.78); }
.menu-button { display: none; }

.hero__content {
  position: relative;
  z-index: 4;
  height: calc(100% - clamp(84px, 10vh, 108px));
}

.hero__copy {
  position: absolute;
  left: 0;
  top: clamp(24px, 5.6vh, 64px);
  width: min(48vw, 670px);
}

.hero-title {
  margin: 0;
  text-transform: uppercase;
  font-family: "Montserrat Alternates", Montserrat, "Segoe UI", sans-serif;
  font-size: clamp(44px, 4.25vw, 76px);
  line-height: .98;
  letter-spacing: -.035em;
  font-weight: 300;
}
.hero-title__line { display: block; }
.hero-title__line--quiet {
  color: rgba(255,248,244,.94);
  font-weight: 300;
  margin-bottom: .11em;
}
.hero-title__line--neon {
  color: rgba(255,79,69,.03);
  -webkit-text-stroke: 1.5px #ff756b;
  text-stroke: 1.5px #ff756b;
  font-weight: 500;
  letter-spacing: .015em;
  text-shadow:
    0 0 4px rgba(255,103,92,.98),
    0 0 12px rgba(255,55,65,.73),
    0 0 34px rgba(255,39,61,.36);
}
.hero-title__line--neon .neon-letter {
  display: inline-block;
  animation: neon-letter-flicker 29.6s linear infinite;
  animation-delay: var(--flicker-delay, 0s);
}
.hero-title__line--neon .neon-space {
  display: inline-block;
  width: .26em;
}
.hero-title__line--question {
  margin-top: .12em;
  color: #f1c0bd;
  font-weight: 300;
  letter-spacing: .005em;
}

.product-kind {
  margin: clamp(30px, 4vh, 48px) 0 0;
  color: #fff9f5;
  font-size: clamp(21px, 1.78vw, 31px);
  line-height: 1.25;
  font-weight: 700;
  letter-spacing: -.015em;
  text-shadow: 0 2px 18px rgba(0,0,0,.38);
}

.hero-intro { margin-top: clamp(24px, 3vh, 34px); }
.hero-intro strong {
  display: block;
  font-size: clamp(17px, 1.23vw, 22px);
  line-height: 1.35;
  font-weight: 700;
}
.hero-intro p {
  margin: 9px 0 0;
  color: rgba(255,248,244,.78);
  font-size: clamp(14px, 1.05vw, 18px);
  line-height: 1.55;
  font-weight: 400;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: clamp(22px, 2.3vw, 38px);
  margin-top: clamp(25px, 3vh, 34px);
}
.download-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-width: clamp(218px, 17vw, 280px);
  min-height: 60px;
  padding: 0 28px;
  border: 1px solid rgba(255,137,125,.95);
  border-radius: 18px;
  background:
    linear-gradient(180deg, rgba(104,24,28,.38), rgba(51,12,18,.52)),
    rgba(44,9,16,.48);
  color: #fff9f5;
  text-decoration: none;
  font-size: clamp(16px, 1.12vw, 20px);
  font-weight: 700;
  box-shadow:
    inset 0 0 0 1px rgba(255,99,87,.17),
    inset 0 0 24px rgba(255,48,52,.11),
    0 0 10px rgba(255,67,58,.45),
    0 0 30px rgba(255,43,55,.23),
    0 12px 40px rgba(0,0,0,.22);
  transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease;
}
.download-button::before {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 21px;
  background: linear-gradient(90deg, rgba(255,63,52,.42), rgba(255,110,87,.08), rgba(255,44,99,.28));
  filter: blur(12px);
  opacity: .62;
  z-index: -1;
}
.download-button:hover {
  transform: translateY(-2px);
  background:
    linear-gradient(180deg, rgba(139,31,34,.47), rgba(69,13,22,.58)),
    rgba(50,8,18,.55);
  box-shadow:
    inset 0 0 0 1px rgba(255,126,108,.22),
    inset 0 0 28px rgba(255,61,61,.15),
    0 0 14px rgba(255,69,60,.58),
    0 0 42px rgba(255,43,69,.31),
    0 16px 44px rgba(0,0,0,.28);
}
.download-button__arrow { font-size: 25px; font-weight: 300; transform: translateY(-1px); }
.how-link {
  font-size: clamp(13px, .95vw, 16px);
  white-space: nowrap;
}
.how-link span { color: #ff756d; font-size: 1.25em; }
.build-note {
  margin: 13px 0 0;
  color: rgba(255,255,255,.43);
  font-size: clamp(10px, .72vw, 12px);
}

.desire-feed {
  position: absolute;
  z-index: 6;
  right: 3.6vw;
  bottom: clamp(70px, 8vh, 98px);
  width: clamp(280px, 22.5vw, 350px);
  padding: 18px 20px 17px;
  border: 1px solid rgba(255,255,255,.19);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(53,25,31,.72), rgba(10,12,19,.69));
  box-shadow: 0 18px 56px rgba(0,0,0,.28), inset 0 0 40px rgba(255,66,77,.035);
  backdrop-filter: blur(18px) saturate(120%);
}
.desire-feed__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(255,255,255,.18);
  font-size: 13px;
}
.desire-feed__head strong { font-size: 14px; }
.desire-feed__head span {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #ff746f;
  font-size: 10px;
  letter-spacing: .18em;
}
.desire-feed__head i { width: 7px; height: 7px; box-shadow: 0 0 10px rgba(255,52,79,.8); }
.desire-feed__viewport {
  position: relative;
  height: 54px;
  overflow: hidden;
}
.desire-feed__item {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  align-content: center;
  column-gap: 12px;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 480ms ease, transform 480ms ease;
  pointer-events: none;
}
.desire-feed__item::before {
  content: "";
  grid-row: 1 / span 2;
  align-self: center;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 11px rgba(255,52,79,.65);
}
.desire-feed__item:nth-child(2)::before { background: #ff6a78; }
.desire-feed__item:nth-child(3)::before { background: var(--green); }
.desire-feed__item:nth-child(4)::before { background: #6ea7ff; }
.desire-feed__item b { font-size: 13px; line-height: 1.4; }
.desire-feed__item span { color: rgba(255,255,255,.62); font-size: 12px; line-height: 1.35; }
.desire-feed__item.is-active { opacity: 1; transform: translateY(0); }

.hero__footer {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: clamp(32px, 4vh, 48px);
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 18px;
  color: rgba(255,255,255,.54);
  font-size: clamp(11px, .78vw, 13px);
  letter-spacing: .22em;
  white-space: nowrap;
}
.hero__footer i {
  width: min(46vw, 570px);
  height: 1px;
  background: linear-gradient(90deg, rgba(255,255,255,.55), rgba(255,255,255,.04));
}

@keyframes neon-letter-flicker {
  0%, 7%, 9%, 13%, 19%, 54%, 56%, 100% {
    opacity: 1;
    filter: brightness(1);
    text-shadow:
      0 0 4px rgba(255,103,92,.98),
      0 0 12px rgba(255,55,65,.73),
      0 0 34px rgba(255,39,61,.36);
  }
  8%, 12%, 55% {
    opacity: .42;
    filter: brightness(.72);
    text-shadow: 0 0 4px rgba(255,55,65,.35);
  }
  8.5%, 12.4%, 55.35% {
    opacity: .9;
    filter: brightness(1.18);
  }
}

@keyframes hero-heart-breathe {
  0%, 100% {
    transform: translate(-50%, -50%) scale(1);
    opacity: .88;
    filter: drop-shadow(0 0 10px rgba(255,61,77,.30));
  }
  50% {
    transform: translate(-50%, -50%) scale(1.032);
    opacity: .97;
    filter: drop-shadow(0 0 18px rgba(255,61,77,.46));
  }
}

@keyframes breathe {
  0%, 100% { opacity: .65; transform: scale(.92); }
  50% { opacity: 1; transform: scale(1.08); }
}

@media (max-width: 1180px) {
  .site-header { grid-template-columns: minmax(170px,1fr) auto; }
  .site-nav { display: none; }
  .header-meta { justify-self: end; }
  .hero__copy { width: min(57vw, 650px); }
  .desire-feed { right: 4vw; width: 300px; }
}

@media (max-width: 760px) {
  .shell { width: calc(100% - 40px); }
  .hero { min-height: 100svh; height: auto; }
  .hero__poster { background-position: 62% center; }
  .hero__video { object-position: center; }
  .hero__veil {
    background:
      linear-gradient(180deg, rgba(3,5,10,.45) 0%, rgba(3,5,10,.16) 26%, rgba(3,5,10,.56) 58%, rgba(3,5,10,.98) 100%),
      linear-gradient(90deg, rgba(3,5,10,.72), rgba(3,5,10,.08));
  }
  .site-header {
    height: 86px;
    grid-template-columns: 1fr auto auto;
    gap: 14px;
  }
  .brand-mark { gap: 8px; }
  .brand-mark__heart { display: block; width: 34px; }
  .brand-wordmark { display: none; }
  .wordmark--mobile { display: inline-flex; }
  .wordmark { font-size: 20px; letter-spacing: .20em; }
  .hero__motion-layer { display: none; }
  .header-meta .age { display: none; }
  .live-badge { padding: 9px 12px; font-size: 10px; }
  .menu-button {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 42px;
    height: 42px;
    padding: 8px;
    border: 0;
    background: transparent;
  }
  .menu-button span { height: 2px; width: 24px; background: #fff; }

  .hero__content { min-height: 920px; height: auto; }
  .hero__copy {
    position: relative;
    top: 35px;
    width: 100%;
  }
  .hero-title { font-size: clamp(39px, 11.4vw, 54px); line-height: .98; }
  .hero-title__line--neon { -webkit-text-stroke-width: 1px; }
  .product-kind { margin-top: 24px; font-size: 22px; line-height: 1.25; }
  .hero-intro { margin-top: 20px; }
  .hero-intro strong { font-size: 16px; }
  .hero-intro p { font-size: 14px; }
  .hero-actions {
    position: absolute;
    top: 665px;
    left: 0;
    right: 0;
    display: grid;
    gap: 18px;
    margin: 0;
  }
  .download-button { width: 100%; min-height: 64px; border-radius: 999px; }
  .how-link { justify-self: center; }
  .build-note { position: absolute; top: 760px; left: 0; right: 0; text-align: center; }

  .desire-feed {
    left: 20px;
    right: 20px;
    bottom: 220px;
    width: auto;
  }
  .hero__footer {
    bottom: 24px;
    width: calc(100% - 40px);
    justify-content: center;
    font-size: 8px;
  }
  .hero__footer i { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; transition-duration: 1ms !important; }
  .hero__video { display: none; }
  .hero__motion-layer { display: none !important; }
}

/* ========================================================================== 
   SCREEN 2 — HOW IT WORKS / DESKTOP
   Added after Hero v0.31. The Hero remains untouched; this is a new module.
   ========================================================================== */

.how-section {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  height: 100svh;
  overflow: hidden;
  background:
    radial-gradient(circle at 67% 38%, rgba(36, 28, 62, .20), transparent 30%),
    radial-gradient(circle at 28% 72%, rgba(117, 28, 40, .12), transparent 35%),
    #05070b;
}

.how-section__texture,
.how-section__shade {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.how-section__texture {
  z-index: -3;
  background-image: url("../assets/images/hero-poster.webp");
  background-size: 118% auto;
  background-position: center 82%;
  opacity: .16;
  filter: saturate(.72) contrast(1.05) brightness(.62) blur(1px);
  transform: scale(1.035);
}

.how-section__texture::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(5,7,11,.68) 0%, rgba(5,7,11,.90) 23%, rgba(5,7,11,.82) 68%, rgba(5,7,11,.55) 100%);
}

.how-section__shade {
  z-index: -2;
  background:
    linear-gradient(90deg, rgba(3,4,8,.98) 0%, rgba(3,4,8,.72) 31%, rgba(4,5,10,.42) 54%, rgba(3,4,8,.63) 100%),
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.52));
  box-shadow: inset 0 0 180px 22px rgba(0,0,0,.52);
}

.how-shell {
  position: relative;
  z-index: 4;
  width: min(calc(100% - 6vw), 1820px);
  height: 100%;
  margin-inline: auto;
}

.how-heading {
  position: absolute;
  top: clamp(60px, 7vh, 82px);
  left: 0;
  right: 0;
}

.how-kicker {
  margin: 0 0 18px;
  color: rgba(255,248,244,.82);
  font-size: clamp(11px, .72vw, 13px);
  font-weight: 500;
  letter-spacing: .32em;
}

.how-heading h2 {
  margin: 0;
  max-width: 1040px;
  font-family: "Montserrat Alternates", Montserrat, "Segoe UI", sans-serif;
  font-size: clamp(54px, 5.25vw, 92px);
  line-height: .93;
  letter-spacing: -.045em;
}

.how-heading h2 span,
.how-heading h2 strong {
  display: block;
}

.how-heading h2 span {
  color: #fff8f2;
  font-weight: 650;
}

.how-heading h2 strong {
  margin-top: .10em;
  color: rgba(255,75,66,.025);
  font-weight: 500;
  letter-spacing: -.015em;
  -webkit-text-stroke: 1.65px #ff756c;
  text-stroke: 1.65px #ff756c;
  text-shadow:
    0 0 4px rgba(255,103,92,.94),
    0 0 13px rgba(255,55,65,.62),
    0 0 38px rgba(255,39,61,.28);
}

.how-thesis {
  position: absolute;
  top: 44px;
  right: 2.2vw;
  margin: 0;
  color: rgba(255,248,244,.9);
  font-size: clamp(19px, 1.65vw, 30px);
  line-height: 1.28;
  font-weight: 300;
  letter-spacing: -.02em;
}

.how-thesis b {
  color: #efbbb8;
  font-weight: 500;
}

.how-flow {
  position: absolute;
  inset: 0;
}

.how-step {
  position: absolute;
}

.how-step__label {
  display: flex;
  align-items: center;
  gap: 16px;
  color: rgba(255,248,244,.92);
  white-space: nowrap;
}

.how-step__label b {
  color: #ff625f;
  font-size: clamp(26px, 2.05vw, 36px);
  font-weight: 600;
  letter-spacing: -.03em;
}

.how-step__label i {
  width: 28px;
  height: 1px;
  background: rgba(255,116,108,.92);
  box-shadow: 0 0 8px rgba(255,80,70,.35);
}

.how-step__label span {
  font-size: clamp(12px, .92vw, 17px);
  font-weight: 500;
  letter-spacing: .25em;
}

.how-step--choose {
  left: 2.5%;
  top: 36%;
  width: 30%;
}

.how-step--search {
  left: 38%;
  top: 36%;
  width: 29%;
}

.how-step--match {
  right: 2.4%;
  top: 36%;
  width: 27%;
}

.app-phone {
  position: relative;
  width: clamp(180px, 14vw, 260px);
  height: clamp(385px, 36vh, 510px);
  margin: 18px 0 0 44px;
  overflow: hidden;
  border: 2px solid rgba(174,211,255,.76);
  border-radius: 34px;
  background: #090919;
  box-shadow:
    0 0 0 3px rgba(0,0,0,.42),
    0 0 28px rgba(80,145,255,.13),
    0 34px 75px rgba(0,0,0,.48);
  transform: perspective(1000px) rotateY(8deg) rotateZ(-4deg);
  transform-origin: 50% 72%;
}

.app-phone::before {
  content: "";
  position: absolute;
  z-index: 3;
  top: 10px;
  left: 50%;
  width: 31%;
  height: 10px;
  border-radius: 999px;
  transform: translateX(-50%);
  background: rgba(0,0,0,.78);
  box-shadow: 0 1px 0 rgba(255,255,255,.08);
}

.app-phone img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  filter: saturate(.94) contrast(1.03) brightness(.92);
}

.app-phone__shine {
  position: absolute;
  inset: 0;
  background: linear-gradient(112deg, rgba(255,255,255,.16), transparent 16%, transparent 74%, rgba(75,123,255,.10));
  pointer-events: none;
}

.desire-chip {
  position: absolute;
  min-width: 155px;
  padding: 13px 25px;
  border-radius: 16px;
  text-align: center;
  color: #fff8f4;
  font-size: clamp(13px, 1vw, 18px);
  background: rgba(38,10,18,.82);
  border: 1px solid rgba(255,98,91,.92);
  box-shadow: 0 0 12px rgba(255,54,72,.4), inset 0 0 22px rgba(255,55,72,.08);
}

.desire-chip--chosen {
  left: 58%;
  top: 50%;
}

.search-radar {
  position: relative;
  width: min(100%, 470px);
  height: clamp(330px, 33vh, 440px);
  margin-top: 12px;
}

.search-radar__ring {
  position: absolute;
  left: 50%;
  top: 48%;
  border: 1px solid rgba(118,124,255,.22);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

.search-radar__ring--1 { width: 72%; aspect-ratio: 1; }
.search-radar__ring--2 { width: 48%; aspect-ratio: 1; }

.search-person {
  position: absolute;
  top: 46%;
  display: grid;
  justify-items: center;
  gap: 14px;
}

.search-person--red { left: 9%; }
.search-person--blue { right: 6%; }

.search-person i {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: currentColor;
}

.search-person span {
  min-width: 120px;
  padding: 8px 16px;
  border: 1px solid currentColor;
  border-radius: 14px;
  background: rgba(5,7,14,.78);
  color: #fffaf8;
  font-size: clamp(11px, .82vw, 15px);
  text-align: center;
}

.search-person--red {
  color: #ff5266;
}

.search-person--red i {
  box-shadow: 0 0 0 16px rgba(255,52,79,.035), 0 0 26px 7px rgba(255,52,79,.64);
}

.search-person--blue {
  color: #817aff;
}

.search-person--blue i {
  box-shadow: 0 0 0 16px rgba(92,90,255,.035), 0 0 26px 7px rgba(113,101,255,.62);
}

.search-copy,
.match-copy {
  margin: -22px 0 0;
  text-align: center;
}

.search-copy strong,
.search-copy span,
.match-copy strong,
.match-copy span {
  display: block;
}

.search-copy strong,
.match-copy strong {
  color: #fff8f4;
  font-size: clamp(17px, 1.25vw, 24px);
  font-weight: 600;
}

.search-copy span,
.match-copy span {
  margin-top: 3px;
  color: #eeb1b1;
  font-size: clamp(16px, 1.20vw, 23px);
  font-weight: 400;
}

.match-heart-wrap {
  position: relative;
  width: clamp(235px, 20vw, 355px);
  margin: 37px auto 0;
}

.match-heart {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 0 12px rgba(255,53,68,.38));
  animation: match-heart-breathe 2.8s ease-in-out infinite;
}

.match-copy {
  margin-top: 30px;
}

.how-lines {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
}

.how-line {
  fill: none;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}

.how-line--red { stroke: #ff4960; }
.how-line--blue { stroke: #7a72ff; }
.how-line--tail { stroke: #ff5ea8; }

.how-line--halo {
  stroke-width: 7;
  opacity: .18;
  filter: blur(7px);
}

.how-line--core {
  stroke-width: 1.9;
  opacity: .92;
  filter: drop-shadow(0 0 6px currentColor);
}

.how-footer {
  position: absolute;
  left: 0;
  right: 0;
  bottom: clamp(24px, 3vh, 40px);
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 18px;
  color: rgba(255,255,255,.54);
}

.how-footer span {
  font-size: clamp(9px, .68vw, 12px);
  letter-spacing: .28em;
  white-space: nowrap;
}

.how-footer i {
  height: 1px;
  background: linear-gradient(90deg, rgba(255,255,255,.62), rgba(255,255,255,.06));
}

.how-footer small {
  color: rgba(255,255,255,.34);
  font-size: clamp(10px, .74vw, 13px);
  white-space: nowrap;
}

@keyframes match-heart-breathe {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 11px rgba(255,53,68,.34)); }
  50% { transform: scale(1.028); filter: drop-shadow(0 0 19px rgba(255,53,68,.50)); }
}

@media (max-width: 1320px) {
  .how-step--choose { left: 1.5%; width: 31%; }
  .how-step--search { left: 36%; width: 31%; }
  .how-step--match { right: 1%; width: 29%; }
  .app-phone { margin-left: 26px; }
  .desire-chip--chosen { left: 55%; }
  .how-thesis { right: 0; }
}

/* Dedicated mobile art direction will replace this section later. */
@media (max-width: 760px) {
  .how-section { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .match-heart { animation: none !important; }
  .how-line { stroke-dashoffset: 0 !important; }
}

/* =========================================================
   SCREEN 2 v0.2 — staged story + continuous signal bridge
   ========================================================= */

/* Overlap the first pixels of Screen 2 with the Hero boundary so the
   two signal paths read as one continuous line instead of two SVGs. */
.how-section {
  margin-top: -1px;
}

.how-lines {
  top: -2px;
  bottom: auto;
  height: calc(100% + 2px);
}

/* The new story has no 01 / 02 / 03 service-number language. */
.how-step__label {
  gap: 0;
  min-height: 34px;
}

.how-step__label b,
.how-step__label i {
  display: none;
}

.how-step__label span {
  font-size: clamp(13px, 1.02vw, 18px);
  font-weight: 650;
  letter-spacing: .20em;
  text-shadow: 0 0 14px rgba(255,255,255,.08);
}

.how-step__label--match span {
  color: #ff746c;
  -webkit-text-stroke: .35px rgba(255,151,143,.78);
  text-shadow:
    0 0 5px rgba(255,104,94,.82),
    0 0 18px rgba(255,49,68,.46),
    0 0 38px rgba(255,41,72,.22);
}

.how-thesis {
  max-width: 470px;
}

.how-thesis span,
.how-thesis b {
  display: block;
}

.how-thesis span {
  color: rgba(255,248,244,.82);
}

.how-thesis b {
  margin-top: 5px;
  color: #f2b9b5;
  font-weight: 600;
}

.search-radar__ring--3 {
  width: 92%;
  aspect-ratio: 1;
  opacity: .48;
}

.search-radar__ring {
  transition: opacity 650ms ease, transform 650ms ease;
}

.how-step--search.is-visible .search-radar__ring {
  animation: radar-breathe 2.8s ease-in-out infinite;
}

.how-step--search.is-visible .search-radar__ring--2 { animation-delay: -.7s; }
.how-step--search.is-visible .search-radar__ring--3 { animation-delay: -1.4s; }

/* Story elements wait offstage until JS reveals them. */
[data-story="choose"],
[data-story="search"],
[data-story="match"],
[data-story="thesis"],
[data-story="connect"] {
  opacity: 0;
  transform: translateY(18px);
  transition:
    opacity 680ms cubic-bezier(.22,.61,.36,1),
    transform 680ms cubic-bezier(.22,.61,.36,1);
}

[data-story="choose"].is-visible,
[data-story="search"].is-visible,
[data-story="match"].is-visible,
[data-story="thesis"].is-visible,
[data-story="connect"].is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* The second nearby person/desire appears after the search scene itself. */
[data-story="radar-match"] {
  opacity: 0;
  transform: translateY(12px) scale(.92);
  transition:
    opacity 520ms ease,
    transform 620ms cubic-bezier(.2,.8,.2,1);
}

[data-story="radar-match"].is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* A tiny chosen-desire lift makes step one feel acted rather than static. */
.how-step--choose .desire-chip--chosen {
  transform: translateY(8px) scale(.96);
  opacity: .18;
  transition: transform 700ms cubic-bezier(.2,.8,.2,1), opacity 650ms ease;
}

.how-step--choose.is-visible .desire-chip--chosen {
  transform: translateY(0) scale(1);
  opacity: 1;
}

/* The signal is now a path that grows into the scene. It starts at the
   exact Hero exit coordinates: red 29.4%, blue 98.8%. */
.how-line {
  transition: stroke-dashoffset 4.1s cubic-bezier(.24,.72,.22,1);
}

.how-section.story-running .how-line:not([data-line-tail]) {
  stroke-dashoffset: 0;
}

.how-line[data-line-tail] {
  transition-duration: 1.55s;
}

.how-section.story-connected .how-line[data-line-tail] {
  stroke-dashoffset: 0;
}

/* Let the actual meeting moment hit harder than the service-like old labels. */
.how-step--match .match-heart-wrap {
  opacity: .25;
  transform: scale(.88);
  transition: opacity 720ms ease, transform 850ms cubic-bezier(.16,.8,.2,1);
}

.how-step--match.is-visible .match-heart-wrap {
  opacity: 1;
  transform: scale(1);
}

.match-copy[data-story="connect"] {
  margin-top: 24px;
}

.match-copy[data-story="connect"] strong {
  color: #fff8f4;
  font-size: clamp(19px, 1.5vw, 29px);
}

.match-copy[data-story="connect"] span {
  color: #efb1af;
  font-size: clamp(16px, 1.16vw, 22px);
}

.search-copy {
  margin-top: -24px;
}

.search-copy strong {
  color: #fff8f4;
}

.search-copy span {
  color: rgba(238,177,177,.76);
}

@keyframes radar-breathe {
  0%, 100% {
    opacity: .45;
    transform: translate(-50%, -50%) scale(.985);
  }
  50% {
    opacity: .9;
    transform: translate(-50%, -50%) scale(1.025);
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-story="choose"],
  [data-story="search"],
  [data-story="match"],
  [data-story="thesis"],
  [data-story="connect"],
  [data-story="radar-match"],
  .how-step--choose .desire-chip--chosen,
  .how-step--match .match-heart-wrap {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ========================================================================== 
   FINAL DESKTOP PATCH — Hero clean + local Screen 2 signal
   ========================================================================== */

/* Hero: the heart is the only animated brand object. */
.hero-lines,
.signal {
  display: none !important;
}

/* Screen 2 no longer tries to physically continue Hero paths. */
.how-section {
  margin-top: 0;
}

.how-lines {
  top: 0;
  bottom: 0;
  height: 100%;
}

/* The two paths are born locally from the two matching desires. */
.how-line {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  transition: stroke-dashoffset 1.65s cubic-bezier(.22,.72,.2,1);
}

.how-line--halo {
  stroke-width: 7.5;
  opacity: .16;
  filter: blur(7px);
}

.how-line--core {
  stroke-width: 2;
  opacity: .92;
  filter: drop-shadow(0 0 7px currentColor);
}

.how-section.story-running .how-line,
.how-section.story-connected .how-line {
  stroke-dashoffset: 1;
}

.how-section.signal-red-on .how-line--red,
.how-section.signal-blue-on .how-line--blue {
  stroke-dashoffset: 0 !important;
}

/* No outgoing tail after the match: the heart itself is the destination. */
.how-line--tail,
[data-line-tail] {
  display: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .how-line {
    stroke-dashoffset: 0 !important;
  }
}

/* ==========================================================================
   MOBILE STRUCTURAL RESCUE v0.1
   2026-09-28
   Goal: restore Screen 2 on phones and remove Hero overlap.
   Desktop is intentionally untouched.
   ========================================================================== */

@media (max-width: 760px) {

  /* HERO: stop placing the CTA/feed on hard-coded vertical coordinates. */
  .hero {
    min-height: 100svh;
    height: auto;
  }

  .hero__content {
    min-height: 0;
    height: auto;
  }

  .hero__copy {
    position: relative;
    top: auto;
    width: 100%;
    padding-top: 28px;
  }

  .hero-actions {
    position: static;
    top: auto;
    left: auto;
    right: auto;
    display: grid;
    gap: 14px;
    margin-top: 28px;
  }

  .build-note {
    position: static;
    top: auto;
    left: auto;
    right: auto;
    margin: 12px 0 0;
    text-align: center;
  }

  .desire-feed {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    width: calc(100% - 40px);
    margin: 30px auto 84px;
  }

  /* SCREEN 2: it was explicitly disabled on mobile in the desktop build.
     For this first pass we restore a clean vertical fallback.
     The final mobile art direction comes next. */
  .how-section {
    display: block;
    min-height: 100svh;
    height: auto;
    overflow: hidden;
    padding: 64px 0 48px;
  }

  .how-shell {
    width: calc(100% - 40px);
    height: auto;
    margin-inline: auto;
  }

  .how-heading {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
  }

  .how-kicker {
    margin-bottom: 14px;
    font-size: 9px;
    letter-spacing: .28em;
  }

  .how-heading h2 {
    max-width: none;
    font-size: clamp(34px, 10.5vw, 44px);
    line-height: .98;
  }

  .how-heading h2 strong {
    -webkit-text-stroke-width: 1px;
  }

  .how-thesis {
    position: relative;
    top: auto;
    right: auto;
    max-width: none;
    margin: 24px 0 0;
    font-size: 17px;
    line-height: 1.35;
  }

  .how-flow {
    position: relative;
    inset: auto;
    display: grid;
    gap: 72px;
    margin-top: 54px;
  }

  .how-step,
  .how-step--choose,
  .how-step--search,
  .how-step--match {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    width: 100%;
  }

  .how-step__label {
    min-height: 0;
    white-space: normal;
  }

  .how-step__label span {
    font-size: 11px;
    line-height: 1.45;
    letter-spacing: .18em;
  }

  .app-phone {
    width: min(58vw, 220px);
    height: auto;
    aspect-ratio: 360 / 800;
    margin: 22px auto 0;
    border-radius: 28px;
    transform: perspective(1000px) rotateY(4deg) rotateZ(-2deg);
  }

  .desire-chip--chosen {
    position: relative;
    left: auto;
    top: auto;
    width: max-content;
    min-width: 145px;
    margin: -38px 4px 0 auto;
    padding: 11px 20px;
    font-size: 13px;
  }

  .search-radar {
    width: 100%;
    height: 300px;
    margin: 14px auto 0;
  }

  .search-person {
    gap: 10px;
  }

  .search-person--red { left: 5%; }
  .search-person--blue { right: 5%; }

  .search-person span {
    min-width: 108px;
    padding: 8px 12px;
    font-size: 11px;
  }

  .search-copy,
  .match-copy,
  .match-copy[data-story="connect"] {
    margin-top: 16px;
  }

  .search-copy strong,
  .match-copy strong,
  .match-copy[data-story="connect"] strong {
    font-size: 20px;
  }

  .search-copy span,
  .match-copy span,
  .match-copy[data-story="connect"] span {
    font-size: 16px;
  }

  .match-heart-wrap {
    width: min(72vw, 285px);
    margin: 24px auto 0;
  }

  /* Desktop local-signal SVG is not reused on the temporary mobile layout.
     We will replace it with the dedicated vertical mobile signal. */
  .how-lines {
    display: none;
  }

  .how-footer {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    display: block;
    margin-top: 64px;
    text-align: center;
  }

  .how-footer span {
    display: block;
    white-space: normal;
    font-size: 8px;
    line-height: 1.5;
  }

  .how-footer i {
    display: none;
  }

  .how-footer small {
    display: block;
    margin-top: 8px;
    white-space: normal;
    font-size: 10px;
  }
}

/* ==========================================================================
   SCREEN 3 — EVENING WITH I WANT
   Desktop + mobile, v0.1
   ========================================================================== */

.life-section {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  overflow: hidden;
  background:
    radial-gradient(circle at 77% 45%, rgba(123, 48, 42, .12), transparent 32%),
    radial-gradient(circle at 24% 18%, rgba(94, 61, 125, .08), transparent 28%),
    #05070b;
}

.life-section__glow {
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(3,4,8,.99) 0%, rgba(3,4,8,.92) 31%, rgba(3,4,8,.44) 53%, rgba(3,4,8,.08) 74%, rgba(3,4,8,.12) 100%),
    linear-gradient(180deg, rgba(0,0,0,.20), rgba(0,0,0,.42));
}

.life-shell {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 6vw), 1820px);
  min-height: 100svh;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(440px, .78fr) minmax(620px, 1.32fr);
  align-items: stretch;
  gap: clamp(26px, 3.2vw, 68px);
  padding: clamp(54px, 6vh, 78px) 0 clamp(82px, 9vh, 112px);
}

.life-copy {
  position: relative;
  z-index: 2;
  align-self: start;
  padding-top: clamp(6px, 1vh, 14px);
}

.life-kicker {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 26px;
  color: rgba(255,248,244,.78);
  font-size: clamp(10px, .72vw, 13px);
  font-weight: 600;
  letter-spacing: .30em;
  text-transform: uppercase;
}

.life-kicker__brand {
  position: relative;
  color: #ff8277;
  letter-spacing: .22em;
  text-shadow:
    0 0 5px rgba(255,101,91,.85),
    0 0 18px rgba(255,52,70,.48);
}

.life-kicker__brand::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 10px;
  border-radius: 50%;
  background: #ff4358;
  box-shadow: 0 0 0 5px rgba(255,52,79,.09), 0 0 13px rgba(255,52,79,.76);
  vertical-align: 1px;
}

.life-title {
  margin: 0;
  max-width: 760px;
  font-family: "Montserrat Alternates", Montserrat, "Segoe UI", sans-serif;
  font-size: clamp(48px, 4.55vw, 82px);
  line-height: .96;
  letter-spacing: -.045em;
}

.life-title span,
.life-title strong {
  display: block;
}

.life-title span {
  color: #fff8f2;
  font-weight: 720;
}

.life-title strong {
  margin-top: .12em;
  color: rgba(255, 78, 70, .035);
  font-weight: 540;
  letter-spacing: -.025em;
  -webkit-text-stroke: 1.55px #ff776d;
  text-stroke: 1.55px #ff776d;
  text-shadow:
    0 0 4px rgba(255,103,92,.94),
    0 0 14px rgba(255,55,65,.62),
    0 0 42px rgba(255,39,61,.26);
}

.life-intro {
  max-width: 620px;
  margin: clamp(28px, 3.3vh, 40px) 0 0;
  color: rgba(255,248,244,.82);
  font-size: clamp(17px, 1.28vw, 23px);
  line-height: 1.52;
  font-weight: 400;
}

.life-scenarios {
  width: min(100%, 620px);
  margin-top: clamp(38px, 5vh, 58px);
  border-top: 1px solid rgba(255,255,255,.16);
}

.life-scenario {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  min-height: 76px;
  padding: 0 16px 0 32px;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.16);
  background: transparent;
  color: rgba(255,248,244,.62);
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: color 220ms ease, background 220ms ease, padding-left 220ms ease;
}

.life-scenario::before {
  content: "";
  position: absolute;
  left: 0;
  top: 20%;
  bottom: 20%;
  width: 2px;
  border-radius: 999px;
  background: linear-gradient(180deg, #ff7c70, #ff344f);
  box-shadow: 0 0 10px rgba(255,55,72,.68), 0 0 26px rgba(255,45,70,.24);
  opacity: 0;
  transform: scaleY(.35);
  transition: opacity 220ms ease, transform 260ms cubic-bezier(.2,.8,.2,1);
}

.life-scenario:hover,
.life-scenario:focus-visible {
  color: #fff8f4;
  outline: none;
}

.life-scenario.is-active {
  color: #fff9f5;
  background: linear-gradient(90deg, rgba(255,52,79,.08), transparent 72%);
  padding-left: 42px;
}

.life-scenario.is-active::before {
  opacity: 1;
  transform: scaleY(1);
}

.life-scenario span {
  font-size: clamp(18px, 1.35vw, 25px);
  font-weight: 650;
  letter-spacing: -.015em;
}

.life-scene {
  position: static;
  align-self: stretch;
  min-height: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.life-scene__frame {
  position: absolute;
  z-index: 0;
  top: 0;
  bottom: 0;
  left: -3vw;
  right: -3vw;
  overflow: hidden;
}

.life-scene__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 100% center;
  filter: saturate(.94) contrast(1.04) brightness(.84);
  transform: scale(1.012);
  transition: opacity 260ms ease, transform 700ms cubic-bezier(.2,.8,.2,1), filter 300ms ease;
}

.life-scene.is-changing .life-scene__image {
  opacity: .20;
  transform: scale(1.035);
  filter: saturate(.72) contrast(1.05) brightness(.58);
}

.life-scene__veil {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(
      90deg,
      rgba(5,7,11,.96) 0%,
      rgba(5,7,11,.84) 24%,
      rgba(5,7,11,.42) 43%,
      rgba(5,7,11,.08) 63%,
      rgba(5,7,11,.12) 82%,
      rgba(5,7,11,.30) 100%
    ),
    linear-gradient(
      180deg,
      rgba(5,7,11,.18),
      rgba(5,7,11,.03) 56%,
      rgba(5,7,11,.72) 100%
    );
}

.life-scene__caption {
  position: relative;
  z-index: 3;

  width: min(94%, 880px);
  margin: 0 0 clamp(12px, 1.8vh, 24px) clamp(22px, 3vw, 60px);

  padding: 16px 24px 17px;

  border-left: 2px solid rgba(255,86,80,.78);

  background:
    linear-gradient(
      90deg,
      rgba(6,7,12,.78) 0%,
      rgba(6,7,12,.58) 48%,
      rgba(6,7,12,.22) 78%,
      rgba(6,7,12,0) 100%
    );

  backdrop-filter: none;
}

.life-scene__caption span,
.life-scene__caption strong {
  display: block;
}

.life-scene__caption span {
  color: rgba(255,248,244,.78);
  font-size: clamp(15px, 1.05vw, 19px);
  line-height: 1.5;
}

.life-scene__caption strong {
  margin-top: 7px;
  color: #ffaaa1;
  font-size: clamp(17px, 1.2vw, 22px);
  font-weight: 650;
}

.life-footer {
  position: absolute;
  z-index: 4;
  left: 3vw;
  right: 3vw;
  bottom: clamp(26px, 3.5vh, 44px);
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 18px;
  color: rgba(255,255,255,.48);
}

.life-footer span {
  font-size: clamp(9px, .68vw, 12px);
  letter-spacing: .28em;
  white-space: nowrap;
}

.life-footer i {
  height: 1px;
  background: linear-gradient(90deg, rgba(255,255,255,.54), rgba(255,255,255,.035));
}

@media (max-width: 1100px) and (min-width: 761px) {
  .life-shell {
    grid-template-columns: minmax(390px, .88fr) minmax(450px, 1.12fr);
  }

  .life-title {
    font-size: clamp(44px, 5.3vw, 66px);
  }
}

@media (max-width: 760px) {
  .life-section {
    min-height: auto;
    overflow: hidden;
    background:
      radial-gradient(circle at 50% 66%, rgba(112, 40, 52, .10), transparent 30%),
      #05070b;
  }

  .life-section__glow {
    background:
      linear-gradient(180deg, rgba(3,4,8,.98) 0%, rgba(3,4,8,.86) 34%, rgba(3,4,8,.12) 68%, rgba(3,4,8,.82) 100%);
  }

  .life-shell {
    width: calc(100% - 40px);
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 64px 0 112px;
  }

  .life-copy {
    padding: 0;
  }

  .life-kicker {
    margin-bottom: 18px;
    gap: 9px;
    font-size: 9px;
    letter-spacing: .28em;
  }

  .life-kicker__brand::before {
    width: 6px;
    height: 6px;
    margin-right: 8px;
  }

  .life-title {
    max-width: none;
    font-size: clamp(36px, 10.9vw, 47px);
    line-height: .98;
  }

  .life-title strong {
    margin-top: .10em;
    -webkit-text-stroke-width: 1px;
  }

  .life-intro {
    margin-top: 22px;
    font-size: 15px;
    line-height: 1.55;
  }

  .life-scenarios {
    width: 100%;
    margin-top: 28px;
  }

  .life-scenario {
    min-height: 52px;
    padding: 0 8px 0 0;
  }

  .life-scenario.is-active {
    padding-left: 14px;
  }

  .life-scenario::before {
    top: 15%;
    bottom: 15%;
  }

  .life-scenario span {
    font-size: 16px;
    line-height: 1.3;
  }

  .life-scene {
    position: relative;
    margin-top: 26px;
    display: block;
  }

  .life-scene__frame {
  position: relative;
  inset: auto;
  width: calc(100% + 40px);
  margin-left: -20px;
  height: clamp(240px, 36vh, 320px);
  border-radius: 0;
}

  .life-scene__image {
  object-position: 100% center;
  transform: scale(1.005);
}

  .life-scene__veil {
    background:
      linear-gradient(180deg, rgba(5,7,11,.08) 0%, rgba(5,7,11,.02) 58%, rgba(5,7,11,.84) 100%),
      linear-gradient(90deg, rgba(5,7,11,.18), rgba(5,7,11,0) 40%, rgba(5,7,11,.12));
  }

  .life-scene__caption {
    width: 100%;
    margin: -34px 0 0;
    padding: 18px 0 0;
    border-left: 0;
    background: transparent;
    backdrop-filter: none;
  }

  .life-scene__caption span {
    font-size: 14px;
    line-height: 1.5;
  }

  .life-scene__caption strong {
    margin-top: 7px;
    font-size: 16px;
  }

  .life-footer {
    left: 20px;
    right: 20px;
    bottom: 34px;
    display: block;
    text-align: center;
  }

  .life-footer span {
    font-size: 8px;
    line-height: 1.45;
    white-space: normal;
  }

  .life-footer i {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .life-scene__image,
  .life-scenario {
    transition: none !important;
  }
}


/* ==========================================================================
   SCREEN 4 — PRODUCT / ANDROID v0.18 LIVE
   Detailed first pass, 2026-10-01
   ========================================================================== */
.product-section {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  overflow: hidden;
  background:
    radial-gradient(circle at 23% 48%, rgba(76,72,255,.12), transparent 31%),
    radial-gradient(circle at 78% 42%, rgba(255,60,72,.10), transparent 30%),
    #05070b;
}

.product-section__glow {
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(5,7,11,.34), rgba(5,7,11,.02) 48%, rgba(5,7,11,.62)),
    linear-gradient(180deg, rgba(0,0,0,.28), rgba(0,0,0,.66));
}

.product-shell {
  width: min(calc(100% - 6vw), 1820px);
  min-height: 100svh;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(700px, 1.05fr) minmax(620px, .95fr);
  align-items: center;
  gap: clamp(34px, 4vw, 72px);
  padding: clamp(72px, 8vh, 98px) 0;
}

.product-visual {
  position: relative;
  min-height: clamp(610px, 72vh, 780px);
}

.product-phone {
  position: absolute;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 24px;
  background: #070713;
  box-shadow: 0 36px 88px rgba(0,0,0,.54), 0 0 38px rgba(91,86,255,.08);
}

.product-phone img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.product-phone--primary {
  left: 0;
  top: 5%;
  width: clamp(230px, 17vw, 305px);
  aspect-ratio: 360 / 800;
  transform: rotate(-2deg);
  z-index: 3;
}

.product-phone--secondary {
  left: 31%;
  top: 8%;
  width: clamp(225px, 16.5vw, 295px);
  aspect-ratio: 360 / 800;
  transform: rotate(0deg);
  z-index: 2;
  opacity: .94;
}

.product-phone--tertiary {
  left: 61%;
  top: 11%;
  width: clamp(220px, 16vw, 285px);
  aspect-ratio: 360 / 800;
  transform: rotate(1.5deg);
  z-index: 1;
  opacity: .9;
}

.product-phone::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(115deg, rgba(255,255,255,.08), transparent 18%, transparent 76%, rgba(255,65,75,.06));
}

.product-screen-switch { display: none; }

.product-copy { max-width: 790px; }
.product-kicker,
.landing-kicker {
  margin: 0 0 22px;
  color: rgba(255,248,244,.66);
  font-size: clamp(10px, .72vw, 13px);
  font-weight: 650;
  letter-spacing: .30em;
  text-transform: uppercase;
}

.product-kicker { display: flex; align-items: center; gap: 11px; }
.product-kicker i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ff4358;
  box-shadow: 0 0 0 5px rgba(255,52,79,.09), 0 0 14px rgba(255,52,79,.8);
  animation: breathe 1.8s ease-in-out infinite;
}

.product-copy h2,
.faq-heading h2,
.about-heading h2,
.final-shell h2 {
  margin: 0;
  font-family: "Montserrat Alternates", Montserrat, "Segoe UI", sans-serif;
  letter-spacing: -.045em;
}

.product-copy h2 {
  font-size: clamp(50px, 4.8vw, 86px);
  line-height: .96;
  color: #fff8f2;
  font-weight: 720;
}

.product-copy h2 strong,
.faq-heading h2 strong,
.about-heading h2 strong,
.final-shell h2 strong {
  display: block;
  margin-top: .10em;
  color: rgba(255,78,70,.035);
  font-weight: 540;
  -webkit-text-stroke: 1.45px #ff776d;
  text-stroke: 1.45px #ff776d;
  text-shadow: 0 0 4px rgba(255,103,92,.9), 0 0 14px rgba(255,55,65,.55), 0 0 38px rgba(255,39,61,.23);
}

.product-proof { margin-top: clamp(30px, 4vh, 46px); }
.product-proof strong { font-size: clamp(20px, 1.55vw, 28px); color: #fff9f5; }
.product-proof p {
  max-width: 580px;
  margin: 8px 0 0;
  color: rgba(255,248,244,.72);
  font-size: clamp(15px, 1.04vw, 18px);
  line-height: 1.55;
}

.live-search-card {
  max-width: 570px;
  margin-top: 26px;
  padding: 20px 22px;
  border: 1px solid rgba(255,255,255,.14);
  border-left-color: rgba(255,86,80,.82);
  background: linear-gradient(110deg, rgba(54,14,23,.42), rgba(10,12,19,.50));
  box-shadow: 0 18px 54px rgba(0,0,0,.22), inset 0 0 38px rgba(255,52,79,.025);
}

.live-search-card__head { display: flex; align-items: center; gap: 10px; margin-bottom: 11px; }
.live-search-card__head i { width: 7px; height: 7px; border-radius: 50%; background: #59e0b4; box-shadow: 0 0 12px rgba(89,224,180,.7); }
.live-search-card__head span { color: #75e6c0; font-size: 10px; font-weight: 700; letter-spacing: .24em; }
.live-search-card strong { color: #fff8f4; font-size: clamp(16px, 1.15vw, 20px); }
.live-search-card p { margin: 7px 0 0; color: rgba(255,248,244,.62); font-size: 14px; line-height: 1.5; }

.product-download {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-width: 270px;
  min-height: 66px;
  margin-top: 30px;
  padding: 0 30px;
  border: 1px solid rgba(255,126,111,.95);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(116,27,31,.48), rgba(56,12,20,.62));
  color: #fff9f5;
  text-decoration: none;
  font-size: 18px;
  font-weight: 700;
  box-shadow: 0 0 13px rgba(255,67,58,.42), 0 0 36px rgba(255,43,55,.18), inset 0 0 24px rgba(255,48,52,.08);
  transition: transform 180ms ease, box-shadow 180ms ease;
}
.product-download:hover { transform: translateY(-2px); box-shadow: 0 0 18px rgba(255,67,58,.55), 0 0 44px rgba(255,43,55,.25); }
.product-download b { font-size: 25px; font-weight: 300; }
.product-download-note { max-width: 520px; margin: 12px 0 0; color: rgba(255,255,255,.38); font-size: 11px; line-height: 1.45; }

.product-test-note {
  max-width: 720px;
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.14);
}
.product-test-note strong {
  display: block;
  color: #fff8f4;
  font-size: clamp(18px, 1.35vw, 24px);
  line-height: 1.35;
  font-weight: 700;
}
.product-test-note p {
  max-width: 680px;
  margin: 8px 0 0;
  color: rgba(255,248,244,.62);
  font-size: clamp(14px, .96vw, 17px);
  line-height: 1.55;
}

/* ==========================================================================
   SCREENS 5–7 — FULL LANDING SKELETON
   Intentionally restrained. Copy/composition will be refined next pass.
   ========================================================================== */
.landing-shell {
  position: relative;
  z-index: 2;
  width: min(calc(100% - 6vw), 1820px);
  margin-inline: auto;
}
.landing-shell--narrow { max-width: 1320px; }

.faq-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(84px, 10vh, 132px) 0;
  background: #05070b;
  border-top: 1px solid rgba(255,255,255,.05);
}

.faq-section::before,
.faq-section::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.faq-section::before {
  z-index: -2;
  background: url("../assets/images/iwant-faq-background-1920x1080.webp") center center / cover no-repeat;
  opacity: .62;
  filter: saturate(.90) contrast(1.03) brightness(.88);
  transform: scale(1.015);
}

.faq-section::after {
  z-index: -1;
  background:
    linear-gradient(
      90deg,
      rgba(4,6,10,.72) 0%,
      rgba(4,6,10,.52) 42%,
      rgba(4,6,10,.48) 72%,
      rgba(4,6,10,.66) 100%
    ),
    linear-gradient(
      180deg,
      rgba(4,6,10,.38) 0%,
      rgba(4,6,10,.48) 58%,
      rgba(4,6,10,.78) 100%
    );
  box-shadow: inset 0 0 180px 28px rgba(0,0,0,.28);
}

.faq-heading {
  display: grid;
  grid-template-columns: 1fr .72fr;
  gap: 60px;
  align-items: end;
}
.faq-heading h2,
.about-heading h2,
.final-shell h2 { font-size: clamp(48px, 4.8vw, 84px); line-height: .96; color: #fff8f2; }
.faq-heading > p,
.about-heading > p,
.final-copy { margin: 0; color: rgba(255,248,244,.62); font-size: clamp(15px, 1.08vw, 19px); line-height: 1.6; }

.faq-list {
  margin-top: 54px;
  border-top: 1px solid rgba(255,255,255,.18);
  background: linear-gradient(90deg, rgba(4,6,10,.28), rgba(4,6,10,.10));
}
.faq-list details { border-bottom: 1px solid rgba(255,255,255,.16); }
.faq-list summary {
  position: relative;
  padding: 24px 52px 24px 0;
  color: #fff8f4;
  font-size: clamp(17px, 1.35vw, 23px);
  font-weight: 650;
  cursor: pointer;
  list-style: none;
  text-shadow: 0 2px 18px rgba(0,0,0,.32);
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 8px; top: 50%; transform: translateY(-50%); color: #ff756d; font-size: 28px; font-weight: 300; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p {
  max-width: 1020px;
  margin: -3px 0 25px;
  color: rgba(255,248,244,.68);
  font-size: clamp(14px, 1vw, 16px);
  line-height: 1.58;
  text-shadow: 0 2px 18px rgba(0,0,0,.34);
}

.about-section {
  position: relative;
  overflow: hidden;
  padding: clamp(64px, 7vh, 88px) 0 clamp(66px, 7vh, 94px);
  background:
    radial-gradient(circle at 78% 46%, rgba(90,68,142,.07), transparent 30%),
    radial-gradient(circle at 45% 72%, rgba(120,31,43,.055), transparent 32%),
    #05070b;
  border-top: 1px solid rgba(255,255,255,.05);
}
.about-orbit {
  position: absolute;
  width: min(72vw, 1100px);
  aspect-ratio: 1;
  right: -24%;
  top: -35%;
  border-radius: 50%;
  border: 1px solid rgba(122,114,255,.11);
  box-shadow: 0 0 120px rgba(122,114,255,.05), inset 0 0 120px rgba(255,55,65,.035);
  pointer-events: none;
}
.about-heading { max-width: 1160px; }
.about-heading > p { max-width: 780px; margin-top: 20px; }
.about-heading h2 strong {
  display: inline;
  margin-top: 0;
  margin-left: .12em;
}
.about-quote {
  max-width: 1060px;
  margin: 24px 0 0;
  padding: 0 0 0 22px;
  border-left: 2px solid rgba(255,91,88,.72);
  color: rgba(255,248,244,.68);
  font-size: clamp(18px, 1.42vw, 27px);
  line-height: 1.45;
  font-style: normal;
}
.about-quote strong { color: #ffaaa1; font-weight: 650; }
.about-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(320px, .72fr);
  gap: clamp(34px, 3.4vw, 66px);
  align-items: start;
  margin-top: 38px;
}
.about-timeline {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.10);
}
.about-timeline article {
  min-height: 188px;
  padding: 20px 20px;
  background: rgba(8,10,16,.96);
}
.about-timeline article.is-live {
  background: linear-gradient(145deg, rgba(65,17,27,.88), rgba(9,11,18,.97));
  box-shadow: inset 0 0 42px rgba(255,59,71,.045);
}
.about-timeline article.is-next {
  background: linear-gradient(145deg, rgba(18,15,31,.94), rgba(8,10,16,.97));
}
.about-timeline b {
  display: block;
  color: #ff776f;
  font-size: 13px;
  letter-spacing: .14em;
  line-height: 1.3;
}
.about-timeline span {
  display: block;
  margin-top: 13px;
  color: #fff8f4;
  font-size: clamp(18px, 1.25vw, 22px);
  line-height: 1.22;
  font-weight: 700;
}
.about-timeline article.is-live span {
  color: #ff9389;
  text-shadow: 0 0 14px rgba(255,70,68,.24);
}
.about-timeline p {
  margin: 8px 0 0;
  color: rgba(255,248,244,.58);
  font-size: 13px;
  line-height: 1.50;
}
.about-timeline p strong { color: rgba(255,194,188,.88); font-weight: 600; }

.about-archive {
  position: relative;
  min-width: 0;
  align-self: start;
  margin: -160px 0 0;
  padding: 16px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 34px;
  background:
    radial-gradient(circle at 52% 26%, rgba(255,79,73,.09), transparent 36%),
    linear-gradient(145deg, rgba(36,16,25,.62), rgba(8,10,16,.93));
  box-shadow: 0 34px 90px rgba(0,0,0,.34), inset 0 0 50px rgba(255,74,77,.025);
  overflow: hidden;
}
.about-archive::before {
  content: "";
  position: absolute;
  inset: -30% -18% auto auto;
  width: 72%;
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid rgba(255,99,91,.10);
  box-shadow: 0 0 80px rgba(255,49,62,.055);
  pointer-events: none;
}
.about-archive__image {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  border-radius: 24px;
  background: #111318;
}
.about-archive__image::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(6,8,12,.08), rgba(6,8,12,.34)),
    linear-gradient(125deg, rgba(255,70,76,.08), transparent 44%, rgba(95,86,255,.08));
  pointer-events: none;
}
.about-archive__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .78;
  filter: saturate(.72) contrast(1.08) brightness(.58);
}
.about-archive figcaption { padding: 22px 10px 9px; }
.about-archive figcaption span {
  display: block;
  color: #ff776f;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .24em;
}
.about-archive figcaption strong {
  display: block;
  margin-top: 10px;
  color: #fff8f4;
  font-size: clamp(18px, 1.25vw, 23px);
  line-height: 1.3;
}
.about-archive figcaption p {
  margin: 9px 0 0;
  color: rgba(255,248,244,.52);
  font-size: 13px;
  line-height: 1.55;
}

.final-section {
  position: relative;
  overflow: hidden;
  min-height: 76svh;
  padding-top: clamp(88px, 11vh, 140px);
  background:
    radial-gradient(circle at 50% 43%, rgba(117,27,43,.20), transparent 25%),
    radial-gradient(circle at 50% 43%, rgba(92,75,255,.08), transparent 43%),
    #040609;
}
.final-glow { position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 180px rgba(0,0,0,.55); }
.final-shell { text-align: center; max-width: 1180px; }
.final-heart {
  display: block;
  width: clamp(230px, 22vw, 340px);
  height: auto;
  margin: 0 auto 32px;
  transform-origin: 50% 52%;
  filter: drop-shadow(0 0 24px rgba(255,61,77,.44));
  animation: final-heart-breathe 2.6s ease-in-out infinite;
}

@keyframes final-heart-breathe {
  0%, 100% {
    transform: scale(1);
    opacity: .90;
    filter: drop-shadow(0 0 20px rgba(255,61,77,.38));
  }
  50% {
    transform: scale(1.035);
    opacity: 1;
    filter: drop-shadow(0 0 30px rgba(255,61,77,.54));
  }
}
.final-shell .landing-kicker { margin-bottom: 18px; }
.final-shell h2 strong { display: inline-block; margin-left: .12em; }
.final-copy { max-width: 760px; margin: 30px auto 0; }
.product-download--final { margin-top: 34px; }

.site-footer {
  margin-top: clamp(94px, 12vh, 145px);
  min-height: 130px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 30px;
  border-top: 1px solid rgba(255,255,255,.12);
  color: rgba(255,248,244,.52);
}
.site-footer__brand { color: #ff756d; font-size: 13px; font-weight: 700; letter-spacing: .12em; }
.site-footer__brand span { color: rgba(255,248,244,.38); font-weight: 500; }
.site-footer nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 22px; }
.site-footer a { color: rgba(255,248,244,.58); text-decoration: none; font-size: 12px; }
.site-footer a:hover { color: #fff8f4; }
.site-footer__meta { display: flex; justify-content: flex-end; gap: 16px; font-size: 11px; }

@media (max-width: 1100px) and (min-width: 761px) {
  .product-shell { grid-template-columns: 1.02fr .98fr; gap: 24px; }
  .product-phone--primary { left: 0; }
  .product-phone--secondary { left: 30%; }
  .product-phone--tertiary { left: 59%; }
  .about-layout { grid-template-columns: minmax(0, 1.4fr) minmax(300px, .72fr); gap: 28px; }
  .about-timeline { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .product-shell {
    min-height: 0;
    width: calc(100% - 40px);
    display: flex;
    flex-direction: column;
    gap: 42px;
    padding: 68px 0 86px;
  }
  .product-copy { order: 1; max-width: none; }
  .product-visual { order: 2; width: 100%; min-height: 590px; }
  .product-copy h2 { font-size: clamp(37px, 11vw, 48px); }
  .product-proof { margin-top: 24px; }
  .product-proof strong { font-size: 19px; }
  .product-proof p { font-size: 14px; }
  .live-search-card { margin-top: 22px; padding: 17px 18px; }
  .product-download { width: 100%; min-width: 0; min-height: 62px; border-radius: 999px; }
  .product-download-note { text-align: center; }
  .product-test-note { margin-top: 26px; padding-top: 20px; }

  .product-phone,
  .product-phone--primary,
  .product-phone--secondary,
  .product-phone--tertiary {
    left: 50%;
    top: 0;
    width: min(74vw, 280px);
    transform: translateX(-50%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 260ms ease, transform 320ms cubic-bezier(.2,.8,.2,1);
  }
  .product-phone.is-active { opacity: 1; z-index: 3; pointer-events: auto; transform: translateX(-50%) scale(1); }
  .product-phone:not(.is-active) { transform: translateX(-50%) scale(.965); }
  .product-screen-switch {
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .product-screen-switch button { border: 0; background: transparent; color: rgba(255,248,244,.36); font: inherit; font-size: 13px; cursor: pointer; }
  .product-screen-switch button.is-active { color: #ff8177; }
  .product-screen-switch i { width: 36px; height: 1px; background: rgba(255,255,255,.18); }

  .landing-shell,
  .landing-shell--narrow { width: calc(100% - 40px); }
  .faq-section,
  .about-section { padding: 72px 0 82px; }
  .faq-section::before {
    background-position: 58% center;
    opacity: .48;
    filter: saturate(.82) contrast(1.03) brightness(.72);
  }
  .faq-section::after {
    background:
      linear-gradient(180deg, rgba(4,6,10,.82) 0%, rgba(4,6,10,.70) 38%, rgba(4,6,10,.78) 72%, rgba(4,6,10,.96) 100%),
      linear-gradient(90deg, rgba(4,6,10,.72), rgba(4,6,10,.54));
  }
  .faq-heading { display: block; }
  .faq-heading h2,
  .about-heading h2,
  .final-shell h2 { font-size: clamp(36px, 10.8vw, 47px); }
  .faq-heading > p { margin-top: 24px; font-size: 14px; }
  .faq-list { margin-top: 36px; }
  .faq-list summary { padding: 20px 42px 20px 0; font-size: 16px; line-height: 1.35; }
  .faq-list details p {
    max-width: none;
    margin-bottom: 23px;
    font-size: 14px;
    line-height: 1.56;
  }
  .about-heading > p { margin-top: 18px; font-size: 14px; }
  .about-heading h2 strong { display: inline; margin-left: .10em; }
  .about-quote { margin-top: 20px; padding-left: 16px; font-size: 17px; }
  .about-layout { display: flex; flex-direction: column; gap: 28px; margin-top: 30px; }
  .about-timeline { grid-template-columns: 1fr; margin-top: 0; }
  .about-timeline article { min-height: 0; padding: 23px 20px; }
  .about-archive { margin-top: 0; transform: none; border-radius: 26px; padding: 12px; }
  .about-archive__image { border-radius: 19px; }
  .about-archive figcaption { padding: 18px 7px 7px; }
  .final-section { min-height: auto; padding-top: 76px; }
  .final-heart { width: min(58vw, 230px); margin: 0 auto 26px; }
  .final-shell h2 strong { display: block; margin-left: 0; }
  .final-copy { margin-top: 22px; font-size: 14px; }
  .site-footer {
    min-height: 0;
    margin-top: 82px;
    padding: 30px 0 36px;
    grid-template-columns: 1fr;
    text-align: center;
  }
  .site-footer nav { gap: 15px 18px; }
  .site-footer__meta { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .final-heart { animation: none !important; }
}

/* ==========================================================================
   PUBLIC UX PATCH — 2026-10-03
   1) Hero scroll cue
   2) Mobile Screen 2 signal lines
   3) Mobile Screen 4 screenshot switch visibility
   4) Clean rendering for Special Desires screenshot
   5) v0.19 release notice for download CTA
   ========================================================================== */

/* HERO — make it unmistakable that the landing continues below. */
.hero-scroll-cue {
  position: absolute;
  z-index: 9;
  left: 50%;
  bottom: clamp(72px, 8vh, 96px);
  transform: translateX(-50%);
  display: grid;
  justify-items: center;
  gap: 8px;
  min-width: 120px;
  padding: 8px 14px;
  color: rgba(255,248,244,.66);
  text-decoration: none;
  text-align: center;
  transition: opacity 260ms ease, transform 260ms ease;
}

.hero-scroll-cue span {
  font-size: clamp(8px, .58vw, 10px);
  font-weight: 650;
  letter-spacing: .28em;
  white-space: nowrap;
  text-shadow: 0 0 12px rgba(255,255,255,.14);
}

.hero-scroll-cue i {
  position: relative;
  display: block;
  width: 22px;
  height: 18px;
  animation: hero-scroll-cue 1.55s ease-in-out infinite;
}

.hero-scroll-cue i::before,
.hero-scroll-cue i::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 11px;
  height: 11px;
  border-right: 1.5px solid rgba(255,111,103,.92);
  border-bottom: 1.5px solid rgba(255,111,103,.92);
  transform: translateX(-50%) rotate(45deg);
  filter: drop-shadow(0 0 5px rgba(255,62,73,.62));
}

.hero-scroll-cue i::before { top: -2px; opacity: .52; }
.hero-scroll-cue i::after  { top: 5px; opacity: .96; }

.hero-scroll-cue:hover {
  color: #fff8f4;
  transform: translateX(-50%) translateY(2px);
}

.hero-scroll-cue.is-hidden {
  opacity: 0;
  transform: translateX(-50%) translateY(9px);
  pointer-events: none;
}

@keyframes hero-scroll-cue {
  0%, 100% { transform: translateY(0); opacity: .62; }
  50% { transform: translateY(7px); opacity: 1; }
}

/* SCREEN 4 — the real Special Desires screenshot should be shown untouched.
   Rotation and the glass overlay were the main causes of the jagged look. */
.product-phone--tertiary::after {
  display: none;
}

.product-phone--tertiary img {
  filter: none;
}

@media (min-width: 761px) {
  .product-phone--tertiary {
    transform: rotate(0deg);
    opacity: 1;
  }
}

/* Download CTA — no more "dead" button while public v0.19 is being prepared. */
.release-toast {
  position: fixed;
  z-index: 1000;
  left: 50%;
  bottom: 28px;
  width: min(calc(100% - 32px), 520px);
  transform: translate(-50%, 18px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition:
    opacity 220ms ease,
    transform 260ms cubic-bezier(.2,.8,.2,1),
    visibility 220ms step-end;
}

.release-toast.is-visible {
  transform: translate(-50%, 0);
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    opacity 220ms ease,
    transform 260ms cubic-bezier(.2,.8,.2,1),
    visibility 0s step-start;
}

.release-toast__card {
  position: relative;
  overflow: hidden;
  padding: 22px 54px 22px 24px;
  border: 1px solid rgba(255,115,105,.46);
  border-radius: 20px;
  background:
    radial-gradient(circle at 12% 18%, rgba(255,57,70,.12), transparent 36%),
    rgba(7,9,15,.94);
  box-shadow:
    0 22px 70px rgba(0,0,0,.52),
    0 0 32px rgba(255,43,59,.10),
    inset 0 0 34px rgba(255,63,72,.025);
  backdrop-filter: blur(16px) saturate(120%);
}

.release-toast__kicker {
  display: block;
  margin-bottom: 8px;
  color: #ff776f;
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .28em;
}

.release-toast__card strong {
  display: block;
  color: #fff8f4;
  font-size: 18px;
  line-height: 1.35;
}

.release-toast__card p {
  margin: 7px 0 0;
  color: rgba(255,248,244,.62);
  font-size: 13px;
  line-height: 1.5;
}

.release-toast__close {
  position: absolute;
  top: 12px;
  right: 13px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.68);
  font: inherit;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}

.release-toast__close:hover {
  background: rgba(255,255,255,.11);
  color: #fff;
}

/* MOBILE — restore the two live signal paths and make 01 / 02 / 03 obvious. */
@media (max-width: 760px) {
  .desire-feed {
    margin-bottom: 138px;
  }

  .hero-scroll-cue {
    bottom: 61px;
    gap: 6px;
    padding: 6px 12px;
  }

  .hero-scroll-cue span {
    font-size: 8px;
    letter-spacing: .24em;
  }

  .hero-scroll-cue i {
    transform: scale(.88);
  }

  .how-lines {
    display: block !important;
    position: absolute;
    z-index: 2;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    overflow: visible;
  }

  .how-line--halo {
    stroke-width: 5.5;
    opacity: .12;
    filter: blur(5px);
  }

  .how-line--core {
    stroke-width: 1.7;
    opacity: .88;
    filter: drop-shadow(0 0 5px currentColor);
  }

  .product-visual {
    min-height: 690px;
    padding-bottom: 68px;
  }

  .product-screen-switch {
    z-index: 10;
    bottom: 4px;
    gap: 7px;
    min-height: 48px;
    padding: 5px 10px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 999px;
    background: rgba(7,9,15,.72);
    box-shadow: 0 14px 34px rgba(0,0,0,.24);
    backdrop-filter: blur(10px);
  }

  .product-screen-switch button {
    display: grid;
    place-items: center;
    min-width: 40px;
    min-height: 38px;
    padding: 0;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 650;
  }

  .product-screen-switch button.is-active {
    background: rgba(255,73,72,.10);
    color: #ff8b81;
    text-shadow: 0 0 10px rgba(255,67,70,.28);
  }

  .product-screen-switch i {
    width: 24px;
  }

  .release-toast {
    bottom: 16px;
    width: calc(100% - 24px);
  }

  .release-toast__card {
    padding: 19px 48px 19px 19px;
    border-radius: 18px;
  }

  .release-toast__card strong {
    font-size: 16px;
  }

  .release-toast__card p {
    font-size: 12px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero-scroll-cue i {
    animation: none !important;
  }
}



/* ========================================================================== 
   FINAL POLISH PATCH — 2026-10-03
   Astra audit + first public feedback. No concept changes.
   ========================================================================== */

/* HERO — 18+ should be visible, not an easter egg. */
.age {
  color: rgba(255,255,255,.86);
  font-size: clamp(22px, 1.45vw, 28px);
  font-weight: 700;
  letter-spacing: .015em;
  line-height: 1;
}

/* SCREEN 2 — a lighter, more Android-neutral frame for the real app screen. */
.app-phone {
  border-width: 1px;
  border-color: rgba(174,211,255,.55);
  border-radius: 22px;
  transform: perspective(1200px) rotateY(2deg) rotateZ(-.7deg);
  box-shadow:
    0 0 0 2px rgba(0,0,0,.34),
    0 0 22px rgba(80,145,255,.10),
    0 30px 68px rgba(0,0,0,.44);
}

.app-phone::before {
  display: none;
}

.app-phone__shine {
  opacity: .42;
}

/* The match copy now explains the user benefit instead of using internal jargon. */
.match-copy[data-story="connect"] strong {
  font-size: clamp(18px, 1.38vw, 27px);
}

.match-copy[data-story="connect"] span {
  margin-top: 5px;
  color: #efb1af;
}

/* SCREEN 4 — on desktop, clicking a real screenshot brings it to the front. */
@media (min-width: 761px) {
  .product-phone {
    cursor: pointer;
    transition:
      opacity 220ms ease,
      transform 260ms cubic-bezier(.2,.8,.2,1),
      box-shadow 260ms ease;
  }

  .product-phone.is-front {
    z-index: 8;
    opacity: 1;
    box-shadow:
      0 42px 100px rgba(0,0,0,.62),
      0 0 44px rgba(255,79,73,.11);
  }

  .product-phone--primary.is-front { transform: rotate(-1deg) translateY(-7px); }
  .product-phone--secondary.is-front { transform: rotate(0deg) translateY(-7px); }
  .product-phone--tertiary.is-front { transform: rotate(0deg) translateY(-7px); }
}

/* Reading comfort: lift small copy without reopening the layout. */
.faq-list details p {
  color: rgba(255,248,244,.74);
  font-size: clamp(16px, 1vw, 17px);
}

.about-timeline p {
  color: rgba(255,248,244,.66);
  font-size: 14px;
  line-height: 1.52;
}

/* FINAL CTA — give the Contacts navigation a real destination. */
.final-contact {
  scroll-margin-top: 96px;
  display: grid;
  justify-items: center;
  gap: 9px;
  margin-top: 25px;
}

.final-contact > span {
  color: rgba(255,248,244,.42);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .26em;
}

.final-contact a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: rgba(255,248,244,.78);
  text-decoration: none;
  font-size: 14px;
  font-weight: 650;
  transition: color 180ms ease, text-shadow 180ms ease;
}

.final-contact a b {
  color: #ff776f;
  font-size: 15px;
  font-weight: 500;
}

.final-contact a:hover {
  color: #fff8f4;
  text-shadow: 0 0 14px rgba(255,74,72,.18);
}

@media (max-width: 760px) {
  /* 18+ intentionally remains hidden in the compact mobile header. */
  .header-meta .age { display: none; }

  .app-phone {
    border-radius: 20px;
    transform: none;
  }

  .faq-list details p {
    color: rgba(255,248,244,.74);
    font-size: 15px;
  }

  .about-timeline p {
    color: rgba(255,248,244,.66);
    font-size: 14px;
  }

  .final-contact {
    margin-top: 22px;
  }
}
