/* The prerelease story: one memory, one question, one personal collection. */
.home-page .hero-grid { padding-block: 88px 80px; }
.home-page .hero-sub { max-width: 32ch; }
.product-showcase { display: flex; flex-direction: column; gap: 24px; }
.product-story {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 44px;
  padding: 44px 64px;
  background: var(--soft);
  border-radius: 28px;
  min-width: 0;
}
.story-copy h2 {
  font-family: var(--sans);
  font-size: clamp(36px, 4.2vw, 56px);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -.035em;
  margin-bottom: 22px;
}
.story-copy p { font-size: 20px; line-height: 1.4; color: var(--muted); max-width: 28ch; margin-bottom: 0; }
.story-device { min-width: 0; display: flex; justify-content: center; }
.story-device picture { display: block; width: 100%; }
.story-device .screen { width: 100%; height: auto; max-width: 100%; filter: none; }
.memory-story .story-copy { grid-column: 2; grid-row: 1; }
.memory-story .today-device { grid-column: 1; grid-row: 1; width: 340px; max-width: 100%; justify-self: center; }
.question-story { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); padding-block: 40px; }
.question-story .ask-device { width: 290px; max-width: 100%; justify-self: center; }
.collection-story { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 32px; padding: 48px 40px; }
.collection-story .story-copy h2 { font-size: clamp(36px, 3.6vw, 48px); }
.collection-devices { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: center; gap: 18px; min-width: 0; }
.album-device { width: 300px; max-width: 100%; justify-self: end; }
.library-device { width: 220px; max-width: 100%; justify-self: start; }
.connection-block { padding: 48px 32px 56px; text-align: center; }
.connection-block h2 { font-size: 30px; line-height: 1.15; letter-spacing: -.025em; font-weight: 600; margin-bottom: 30px; }
.connection-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 820px; margin-inline: auto; gap: 24px; }
.connection-list h3 { font-size: 19px; font-weight: 600; letter-spacing: -.015em; margin-bottom: 5px; }
.connection-list p { font-size: 14px; color: var(--muted); margin: 0; }
.connection-import { font-size: 14px; color: var(--muted); margin: 30px 0 0; }
.closing-invitation { text-align: center; padding-block: 88px 64px; }
.closing-invitation h2 { font-size: clamp(36px, 4.2vw, 54px); line-height: 1.08; letter-spacing: -.035em; font-weight: 600; margin-bottom: 28px; }
.home-page .questions { padding-block: 48px 72px; max-width: 960px; }
.home-page .questions h2 { font-size: 36px; }

/* Line masks let the headline arrive without moving the surrounding layout. */
.reveal-line { display: block; overflow: hidden; padding-bottom: .13em; margin-bottom: -.13em; }
.reveal-line > span { display: block; }
.reveal-ready .reveal-line > span {
  transition: transform 760ms cubic-bezier(.22, 1, .36, 1), opacity 580ms ease;
}
.reveal-ready .reveal-line:nth-child(2) > span { transition-delay: 90ms; }
[data-reveal="copy"].reveal-pending .reveal-line > span { transform: translateY(110%); opacity: 0; }
.story-copy.reveal-ready > p {
  transition: transform 650ms cubic-bezier(.22, 1, .36, 1) 160ms, opacity 550ms ease 160ms;
}
.story-copy.reveal-pending > p { transform: translateY(16px); opacity: 0; }
[data-reveal="device"].reveal-ready {
  transition: transform 950ms cubic-bezier(.22, 1, .36, 1) 80ms, opacity 700ms ease 80ms;
}
[data-reveal="device"].reveal-pending { transform: translateY(36px) scale(.985); opacity: 0; }
.library-device.reveal-ready { transition-delay: 160ms; }
[data-reveal="fade"].reveal-ready {
  transition: transform 700ms cubic-bezier(.22, 1, .36, 1), opacity 600ms ease;
}
[data-reveal="fade"].reveal-pending { transform: translateY(18px); opacity: 0; }
.connection-list > :nth-child(2).reveal-ready { transition-delay: 70ms; }
.connection-list > :nth-child(3).reveal-ready { transition-delay: 140ms; }
@media (prefers-reduced-motion: reduce), print {
  .reveal-ready, .reveal-ready > p, .reveal-ready .reveal-line > span {
    transition: none !important; transform: none !important; opacity: 1 !important;
  }
}
@media (max-width: 900px) {
  .product-story { padding: 36px; gap: 32px; }
  .story-copy h2 { font-size: 40px; }
  .story-copy p { font-size: 18px; }
  .memory-story .today-device { width: 300px; }
  .question-story .ask-device { width: 270px; }
  .collection-story { grid-template-columns: minmax(0, 1fr); padding: 40px; }
  .collection-story .story-copy { text-align: center; }
  .collection-story .story-copy p { margin-inline: auto; max-width: 36ch; }
  .collection-devices { width: 520px; max-width: 100%; margin-inline: auto; }
}
@media (max-width: 600px) {
  .home-page .hero-grid { padding-block: 56px 60px; }
  .home-page .hero-sub { font-size: 19px; max-width: 26ch; }
  .home-page .site-nav { gap: 8px; }
  .home-page .site-nav > a[href="#questions"] { display: none; }
  .home-page .header-row { gap: 12px; }
  .product-showcase { padding-inline: 16px; gap: 20px; }
  .product-story, .question-story, .collection-story { grid-template-columns: minmax(0, 1fr); padding: 32px 28px; gap: 30px; border-radius: 24px; }
  .story-copy, .memory-story .story-copy { grid-column: 1; grid-row: 1; }
  .story-copy h2, .collection-story .story-copy h2 { font-size: 36px; margin-bottom: 16px; }
  .story-copy p { font-size: 18px; max-width: 30ch; }
  .memory-story .today-device { grid-column: 1; grid-row: 2; width: 290px; max-width: 100%; }
  .question-story .ask-device { width: 270px; max-width: 100%; }
  .collection-story .story-copy { text-align: left; }
  .collection-story .story-copy p { margin: 0; }
  .collection-devices { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .album-device { width: 280px; justify-self: center; }
  .library-device { width: 230px; justify-self: center; }
  .connection-block { padding: 30px 12px 38px; }
  .connection-block h2 { font-size: 26px; margin-bottom: 24px; }
  .connection-list { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .connection-list h3 { font-size: 18px; margin-bottom: 2px; }
  .connection-list p, .connection-import { font-size: 14px; }
  .connection-import { max-width: 29ch; margin-inline: auto; margin-top: 24px; }
  .closing-invitation { padding-block: 60px 40px; }
  .closing-invitation h2 { font-size: 36px; }
  .home-page .questions { padding-block: 36px 48px; }
  .home-page .questions h2 { font-size: 30px; margin-bottom: 24px; }
}
