/* Homepage only. Shared guides, tools and invitation styles stay unchanged. */
.home-page .site-header,
.landing-hero,
.app-section-heading,
.app-gallery,
.rules-line,
.landing-close,
.home-page .site-footer {
  width: min(100%, 1200px);
  margin-inline: auto;
  padding-inline: 24px;
}
.home-page .site-header { padding-block: 24px; }
.home-page .site-header nav { gap: 24px; font-size: .9375rem; }
.home-page .site-header nav a { text-decoration: none; }
.home-page .site-header nav a:last-child { border-bottom: 1px solid var(--ink); }
.home-page .wordmark { font-size: 2.5rem; }
.home-page .wordmark img { width: 28px; height: 28px; }
.landing-hero { display: grid; gap: 32px; padding-block: 26px 44px; }
.landing-copy { min-width: 0; }
.home-page .eyebrow { font-size: .875rem; letter-spacing: .12em; font-weight: 650; }
.landing-copy h1 {
  font-size: clamp(2.6rem, 11.4vw, 4.3rem);
  font-weight: 800;
  line-height: 1.04;
  letter-spacing: -.055em;
  margin-top: 18px;
}
.landing-intro { color: var(--muted); font-size: 1.0625rem; line-height: 1.6; margin-top: 22px; }
.home-page .landing-button {
  background: var(--lime);
  color: var(--ink);
  border-radius: 12px;
  min-height: 54px;
  padding: 15px 30px;
  font-weight: 750;
  box-shadow: inset 0 0 0 1px rgb(21 56 45 / 5%);
}
.home-page .landing-button:hover { background: #cce577; }
.landing-copy .landing-button { margin-top: 26px; }
.landing-availability { color: var(--muted); font-size: .875rem; line-height: 1.5; margin-top: 12px; }
.landing-art { min-width: 0; }
.landing-art img { display: block; width: 100%; height: auto; border-radius: 20px; background: #103c2e; }
.app-section { padding-block: 36px 32px; background: #e9ede3; }
.app-section-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 16px; padding-bottom: 26px; }
.app-section-heading .eyebrow { color: var(--muted); font-size: .875rem; }
.app-section-heading h2 { font-size: clamp(1.9rem, 7vw, 2.75rem); line-height: 1.1; letter-spacing: -.045em; margin-top: 10px; }
.swipe-hint { color: var(--muted); font-size: .875rem; }
.app-gallery {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(78vw, 320px);
  gap: 18px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scroll-padding-inline: 24px;
  padding-bottom: 20px;
  scrollbar-width: thin;
  scrollbar-color: #71846b transparent;
}
.app-gallery:focus-visible { outline: 3px solid #658a31; outline-offset: -4px; }
.app-feature { min-width: 0; scroll-snap-align: start; }
.app-feature img { display: block; width: 100%; height: auto; border-radius: 18px; background: #103c2e; }
.app-feature-copy { padding: 22px 2px 0; }
.app-feature h3 { font-size: 1.25rem; line-height: 1.3; letter-spacing: -.025em; }
.app-feature h3 a { text-decoration: none; }
.app-feature h3 a:hover { text-decoration: underline; }
.app-feature p { color: var(--muted); font-size: 1rem; line-height: 1.6; margin-top: 10px; max-width: 33ch; }
.feature-link { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; font-size: .9375rem; font-weight: 650; text-decoration-thickness: 1px; }
.rules-line { color: var(--muted); font-size: .875rem; line-height: 1.6; margin-top: 22px; }
.rules-line a { color: var(--ink); }
.landing-close { display: grid; gap: 28px; padding-block: 48px; scroll-margin-top: 24px; }
.landing-close h2 { font-size: 2.5rem; line-height: 1.05; letter-spacing: -.045em; }
.closing-action { min-width: 0; }
.home-page .site-footer { padding-block: 22px 28px; border-top: 1px solid var(--line); }
.home-page .site-footer nav { gap: 0 20px; font-size: .875rem; }
.home-page .site-footer nav a { text-decoration: none; }
.home-page .site-footer nav a:hover { text-decoration: underline; }
.home-page .site-footer p { margin-top: 12px; }
@media (min-width: 760px) {
  .home-page .site-header, .landing-hero, .app-section-heading, .app-gallery, .rules-line, .landing-close, .home-page .site-footer { padding-inline: 40px; }
  .home-page .site-header { padding-block: 28px; }
  .landing-hero { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; gap: 32px; padding-block: 38px 64px; }
  .landing-copy h1 { font-size: clamp(3rem, 5.5vw, 4.6rem); }
  .landing-intro { font-size: 1.125rem; margin-top: 26px; }
  .landing-art img { border-radius: 24px; }
  .app-section { padding-block: 48px 36px; }
  .app-section-heading { padding-bottom: 32px; }
  .app-gallery { scroll-padding-inline: 40px; }
  .landing-close { grid-template-columns: 1fr 1fr; align-items: center; gap: 32px; padding-block: 64px; }
  .landing-close h2 { font-size: 3.25rem; }
  .closing-action { justify-self: end; text-align: right; }
  .home-page .site-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 24px; }
  .home-page .site-footer p { margin-top: 0; }
}
@media (min-width: 960px) {
  .app-gallery { gap: 24px; }
}
@media (min-width: 1100px) {
  .landing-hero { gap: 48px; }
  .app-gallery { gap: 28px; }
}
@media (max-width: 359px) {
  .home-page .site-header, .landing-hero, .app-section-heading, .app-gallery, .rules-line, .landing-close, .home-page .site-footer { padding-inline: 20px; }
  .home-page .site-header nav { gap: 16px; }
  .app-gallery { scroll-padding-inline: 20px; }
  .landing-intro br { display: none; }
}
