/* Homepage-only composition; shared legal and invitation surfaces stay unchanged. */
.home-page { font-size: 1rem; }
.home-page :is(section[id], main[id]) { scroll-margin-top: 6rem; }
.home-page .skip-link {
  position: fixed;
  top: .75rem;
  left: 1rem;
  z-index: 30;
  padding: .75rem 1rem;
  background: var(--paper);
  color: var(--ink);
  transform: translateY(-200%);
}
.home-page .skip-link:focus { transform: translateY(0); }
.home-page .site-header { gap: 1.5rem; flex-wrap: wrap; padding-block: .75rem; }
.home-page .site-nav { flex-wrap: wrap; gap: 1.5rem; }
.home-page .site-nav a { font-size: .875rem; }
.home-page .site-nav .nav-download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 2.75rem;
  padding: .5rem 1rem;
  color: var(--red);
  border: 1px solid var(--red);
}
.home-page .hero { min-height: min(54rem, calc(100svh - 76px)); }
.home-page .hero-copy { padding: clamp(3rem, 6vw, 6.5rem) 4vw; gap: 2.5rem; }
.home-page h1 {
  font-size: clamp(3rem, 5.7vw, 6.25rem);
  line-height: .98;
  overflow-wrap: break-word;
  text-wrap: balance;
}
.home-page .eyebrow { font-size: .875rem; letter-spacing: .1em; }
.home-page .hero-lede { margin-top: 1.75rem; font-size: clamp(1.0625rem, 1.45vw, 1.375rem); }
.home-page .hero-actions { gap: 1rem 1.5rem; }
.home-page .button { font-size: 1rem; padding: .875rem 1.25rem; line-height: 1.4; text-align: center; }
.home-page .button-note { flex-basis: 100%; font-size: .875rem; }
.home-page .text-link { font-size: 1rem; text-underline-offset: .3em; }
.home-page .hero-media { min-height: 34rem; }
.home-page .hero-media > img { position: absolute; inset: 0; object-position: 50% 35%; }
.home-page .photo-label { font-size: .75rem; letter-spacing: .06em; max-width: calc(100% - 3rem); }
.home-page .manifesto { padding-block: clamp(3.5rem, 7vw, 7rem); }
.home-page .manifesto blockquote { font-family: var(--serif); font-size: clamp(2.5rem, 5.6vw, 5.75rem); line-height: 1.05; }
.home-page .manifesto-note { max-width: 38rem; margin: 2rem 0 0; color: var(--muted); font-size: 1.125rem; line-height: 1.6; }
.home-page .section { padding-block: clamp(3.5rem, 7vw, 7rem); }
.home-page .section-heading { margin-bottom: 3rem; }
.home-page .section-heading .eyebrow { color: var(--red); font-size: .875rem; }
.home-page .section-heading h2 { font-size: clamp(2.5rem, 5vw, 5rem); line-height: 1.05; overflow-wrap: break-word; }
.home-page .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-page .step { min-height: 0; }
.home-page .step-number { font-size: .875rem; }
.home-page .step h3 { margin-top: 2.5rem; font-size: 1.875rem; }
.home-page .step p { font-size: 1rem; line-height: 1.65; }
.home-page .invitation-note { max-width: 48rem; padding-left: 1rem; margin: 2rem 0 0; border-left: 2px solid var(--red); font-size: 1rem; line-height: 1.65; }
.home-page .roll-modes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.home-page .roll-mode { padding: 2rem 3vw 0 0; }
.home-page .roll-mode + .roll-mode { border-left: 1px solid var(--line); padding-left: 3vw; }
.home-page .roll-mode h3 { margin: 0 0 1rem; font-family: var(--serif); font-size: clamp(2rem, 3.2vw, 3rem); font-weight: 400; line-height: 1.1; }
.home-page .roll-mode > p:not(.eyebrow) { max-width: 36rem; margin: 0; font-size: 1.125rem; line-height: 1.65; }
.home-page .roll-mode .mode-example { margin-top: 1.5rem !important; color: var(--muted); font-size: 1rem !important; }
.home-page .memory-card { margin: 0; height: 30rem; min-height: 0; }
.home-page .memory-card:nth-child(2) { height: 21rem; min-height: 0; }
.home-page .memory-card .scene-table { object-position: 50% 20%; }
.home-page .memory-meta strong { font-size: 1.625rem; }
.home-page .principle { min-height: 19rem; padding: 2rem; gap: 2rem; }
.home-page .principle h3 { font-size: 2rem; }
.home-page .principle p { font-size: 1rem; }
.home-page .faq-list { max-width: 58rem; margin-left: auto; border-top: 1px solid var(--ink); }
.home-page .faq-list details { border-bottom: 1px solid var(--line); }
.home-page .faq-list summary { padding: 1.5rem .5rem 1.5rem 0; cursor: pointer; font-size: 1.125rem; line-height: 1.5; font-weight: 550; }
.home-page .faq-list summary::marker { color: var(--red); }
.home-page .faq-list details p { margin: 0; padding: 0 1.5rem 1.5rem 0; max-width: 46rem; color: var(--muted); font-size: 1rem; line-height: 1.7; }
.home-page .faq-support { max-width: 58rem; margin: 1.5rem 0 0 auto; font-size: 1rem; line-height: 1.6; }
.home-page .faq-support a { text-underline-offset: .2em; }
.home-page .closing { padding-block: clamp(4rem, 8vw, 8rem); }
.home-page .closing h2 { font-size: clamp(3.5rem, 9vw, 8rem); }
.home-page .closing .eyebrow { font-size: .875rem; }
.home-page .footer-links a { font-size: .875rem; }
.home-page .footer-legal { font-size: .75rem; color: #a8a8a8; }
.home-page .footer-image-note { display: block; margin-top: .5rem; font-size: .75rem; line-height: 1.5; color: #a8a8a8; }
.home-page .closing :focus-visible, .home-page .site-footer :focus-visible { outline-color: var(--white); }

@media (max-width: 900px) {
  .home-page .hero { min-height: 0; }
  .home-page .hero-copy { min-height: 0; padding: 3.5rem 5vw; }
  .home-page h1 { max-width: 42rem; font-size: clamp(3rem, 8.5vw, 5rem); }
  .home-page .hero-media { min-height: 0; height: clamp(20rem, 65vw, 34rem); }
  .home-page .hero-media > img { position: static; }
  .home-page .step:nth-child(2) { border-right: 1px solid var(--line); }
  .home-page .step:nth-child(n+3) { border-top: 0; }
  .home-page .section-heading { gap: 1rem; }
}

@media (max-width: 600px) {
  .home-page .site-header { gap: .5rem; }
  .home-page .hero-copy { padding: 2.5rem 1.25rem; gap: 2rem; }
  .home-page h1 { font-size: clamp(2.75rem, 10vw, 3.75rem); }
  .home-page .hero-actions { align-items: flex-start; }
  .home-page .hero-actions .button { width: 100%; }
  .home-page .hero-actions .text-link { padding-block: .5rem; }
  .home-page .hero-media { height: 22rem; }
  .home-page .steps, .home-page .roll-modes { grid-template-columns: minmax(0, 1fr); }
  .home-page .step, .home-page .step + .step { padding: 1.5rem 0; border: 0; }
  .home-page .step + .step { border-top: 1px solid var(--line); }
  .home-page .step h3 { margin-top: 1.5rem; }
  .home-page .roll-mode { padding: 1.5rem 0; }
  .home-page .roll-mode + .roll-mode { padding: 1.5rem 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .home-page .memory-card, .home-page .memory-card:nth-child(2) { height: 26rem; min-height: 0; }
  .home-page .memory-card:nth-child(2) { height: auto; aspect-ratio: 3 / 2; }
  .home-page .principle { min-height: 0; }
}
