* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 0; scroll-snap-type: y proximity; }
body { font-size: 1.0625rem; margin: 0; background: #f6f4ee; color: #25382e; font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; line-height: 1.9; }
a { color: inherit; text-underline-offset: .3em; }
a:focus-visible { outline: 3px solid #b67d37; outline-offset: 6px; }
h1, h2, h3, p { margin: 0; }
h1, h2 { font-family: "Hiragino Mincho ProN", "Yu Mincho", serif; font-weight: 500; font-feature-settings: "palt"; }
.skip-link { position: absolute; top: -100px; left: 1rem; z-index: 10; padding: .5rem 1rem; background: white; }
.skip-link:focus { top: 1rem; }
.site-header { position: sticky; bottom: 0; z-index: 1000; background: rgba(246, 244, 238, 1); border-top: 1px solid #d5d8cf; display: flex; justify-content: space-between; align-items: center; flex-direction: column; gap: .4rem; padding: .6rem 6vw calc(.6rem + env(safe-area-inset-bottom, 0px)); flex-wrap: wrap; text-align: center; }
.wordmark { display: inline-block; text-align: center; font-family: Georgia, serif; font-size: 1.4rem; line-height: 1.3; text-decoration: none; }
.wordmark span { display: block; font-family: sans-serif; font-size: .65rem; letter-spacing: .13em; margin-top: .2rem; }
nav { display: flex; justify-content: center; gap: 1.2rem; font-size: .75rem; flex-wrap: wrap; }
nav a { text-decoration: none; }
.hero { position: relative; min-height: 100vh; min-height: 100svh; scroll-snap-align: start; display: flex; align-items: center; color: white; background: #25382e; }
.hero-photo, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-photo { object-fit: cover; object-position: center; }
.hero-shade { background: linear-gradient(90deg, rgba(9,27,27,.75), rgba(9,27,27,.18)), linear-gradient(0deg, rgba(9,27,27,.4), transparent 40%); }
.hero-copy { position: relative; padding: 4rem 7vw 6rem; }
.eyebrow { font-size: .7rem; letter-spacing: .2em; font-weight: 600; margin-bottom: 1.6rem; font-feature-settings: "palt"; }
h1 { font-size: clamp(2.9rem, 5.8vw, 5.5rem); line-height: 1.45; letter-spacing: .04em; margin-bottom: 1.6rem; }
#hero-title-btm { letter-spacing: 0em; }
.hero-copy > p:not(.eyebrow) { font-size: clamp(1.0625rem, 1.5vw, 1.2rem); }
.hero-link { display: inline-flex; gap: 3rem; margin-top: 2rem; padding-bottom: .4rem; text-decoration: none; border-bottom: 1px solid #ffffff80; font-size: .85rem; }
.hero-note { position: absolute; bottom: 1.5rem; left: 7vw; right: 7vw; font-size: .65rem; letter-spacing: .06em; }
.section { max-width: 1240px; margin: auto; padding: 4.5rem 7vw; }
h2 { font-size: clamp(1.83rem, 3vw, 2.8rem); line-height: 1.6; letter-spacing: .02em; }
.intro, .journey { display: grid; grid-template-columns: 1fr; gap: 2.5rem; }
.prose { font-size: 1.0625rem; line-height: 2.2; }
.prose p + p { margin-top: 1.4rem; }
.support { border-top: 1px solid #d5d8cf; padding-bottom: 0; }
.support-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; margin-top: 3rem; }
.support > .support-grid { gap: 0; }
.support > .support-grid > article { min-height: 100vh; min-height: 100svh; scroll-snap-align: start; display: flex; flex-direction: column; justify-content: center; padding: 4.5rem 0; }
.number { display: block; font-family: Georgia, serif; color: #8c7856; font-size: 1.5rem; margin-bottom: 1rem; }
h3 { font-size: 1.1rem; font-weight: 500; margin-bottom: 1rem; }
.support-grid p, .journey-details p { font-size: 1rem; }
.invitation { min-height: 100vh; min-height: 100svh; scroll-snap-align: start; display: flex; flex-direction: column; justify-content: center; max-width: none; background: #e7ebe2; text-align: center; }
.invitation .prose { max-width: 650px; margin: 2rem auto 0; text-align: left; }
.journey > div > p:last-child { margin-top: 1.5rem; font-size: 1rem; }
.journey-details article + article { border-top: 1px solid #d5d8cf; padding-top: 2rem; margin-top: 2rem; }
.closing { min-height: 100vh; min-height: 100svh; scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; justify-content: center; max-width: none; text-align: center; background: #25382e; color: #f6f4ee; }
.closing > p:not(.eyebrow) { margin: 2rem 0; font-size: 1rem; }
.closing a { display: inline-block; padding: .7rem 0; font-size: .85rem; }
.site-footer { padding: 2.5rem 7vw; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.site-footer p, .site-footer small { font-size: .7rem; }
.support-grid article + article { border-top: 1px solid #d5d8cf; padding-top: 2rem; }
@media (min-width: 1024px) {
  .invitation { min-height: auto; scroll-snap-align: none; display: block; }
  html { scroll-snap-type: none; scroll-padding-top: 2rem; }
  .hero, .closing { scroll-snap-align: none; }
  .closing { min-height: auto; display: block; }
  .site-header { padding: 1.4rem 5vw calc(1.4rem + env(safe-area-inset-bottom, 0px)); flex-direction: row; flex-wrap: nowrap; gap: 2rem; text-align: left; }
  .wordmark { font-size: 1.65rem; }
  .wordmark span { margin-top: .4rem; }
  nav { gap: 2rem; font-size: .85rem; flex-wrap: nowrap; }
  .hero { min-height: 650px; min-height: min(820px, 85svh); }
  .hero-copy { padding: 5rem 9vw 7rem; }
  .hero-note { left: auto; right: 5vw; bottom: 2rem; font-size: .7rem; }
  .section { padding: 7rem 5vw; }
  .intro, .journey { grid-template-columns: 1fr 1.15fr; gap: 6vw; }
  .support-grid { grid-template-columns: repeat(3, 1fr); gap: 3rem; }
  .support > .support-grid { gap: 3rem; }
  .support > .support-grid > article { min-height: auto; scroll-snap-align: none; display: block; padding: 0; }
  .support-grid article + article { border-top: 0; padding-top: 0; }
  .site-footer { flex-direction: row; align-items: center; gap: 2rem; padding: 3rem 5vw; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
