@font-face{font-family:NimbusRoman;src:url('assets/NimbusRoman-Regular.otf')}
@font-face{font-family:NimbusRoman;src:url('assets/NimbusRoman-Italic.otf');font-style:italic}
@font-face{font-family:NimbusSans;src:url('assets/NimbusSans-Regular.otf')}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#243027;color:#33342f;font-family:NimbusSans,Arial,sans-serif}
.opening{position:fixed;inset:0;z-index:10;display:grid;place-content:center;text-align:center;padding:2rem;background:#f7f1e6 url('assets/sunrise-meadow.webp') center/cover no-repeat;color:#f9f4e9;isolation:isolate;transition:opacity .8s ease,visibility .8s}
.opening::before{content:"";position:absolute;inset:0;background:rgba(40,48,38,.42);z-index:-1}
.opening-title{font:italic clamp(3rem,12vw,5.7rem)/.95 NimbusRoman,serif;margin:.5rem 0;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.26em;font-size:.72rem;font-weight:700}
.years{letter-spacing:.28em}
.open-button,.primary-button,.outline-button,.secondary-button{font:700 .76rem/1 NimbusSans,sans-serif;text-transform:uppercase;letter-spacing:.13em;border:0;border-radius:3px;cursor:pointer}
.open-button{margin:2rem auto 0;padding:1.05rem 1.4rem;background:#f3ecdc;color:#586650;box-shadow:0 8px 30px rgba(0,0,0,.22)}
.opening.is-open{opacity:0;visibility:hidden;pointer-events:none}
main{width:min(100%,680px);margin:auto;background:#f8f3e9;min-height:100vh;overflow:hidden}
.hero{height:42vh;min-height:340px;max-height:520px;position:relative}
.hero img{width:100%;height:100%;object-fit:cover}
.section-pad{padding:3.5rem clamp(1.5rem,7vw,4rem)}
.intro{text-align:center;margin-top:-2.5rem;position:relative}
.script{font:italic 1.45rem NimbusRoman,serif;color:#68745f;margin:0}
.name{font:italic clamp(2rem,8vw,3.6rem)/1 NimbusRoman,serif;color:#62705b;margin:.35rem 0 1.25rem}
.years-rule{display:flex;align-items:center;gap:1rem;justify-content:center;color:#b88f42}
.years-rule span{height:1px;background:#c9a45c;flex:1;max-width:8rem}
.botanical-rule{width:10rem;border-top:1px solid #c9a45c;margin:1rem auto}
.years-rule b{font:400 1rem NimbusRoman,serif;letter-spacing:.28em}
.intro h1{font:400 clamp(3.2rem,10vw,5rem)/.86 NimbusRoman,serif;text-transform:uppercase;letter-spacing:-.045em;margin:1.4rem 0;color:#32342f}
.lede{font:1.22rem/1.55 NimbusSans,sans-serif;max-width:34rem;margin:1.25rem auto 0}
.gathering{background:#e9eadf;border-block:1px solid #d7dacb}
.section-kicker{color:#9d7936;margin:0 0 1.2rem}
.detail-row{padding:1.2rem 0;border-top:1px solid #c8cdbb}
.detail-row div{display:grid;gap:.35rem}
.detail-row strong{font:1.5rem NimbusRoman,serif;color:#4e5d49}
.detail-row span:not(.label){font-size:.95rem}
.label{font-size:.68rem;text-transform:uppercase;letter-spacing:.2em;color:#7a806f}
.action-row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:1.2rem}
.secondary-button,.outline-button{display:flex;align-items:center;justify-content:center;padding:1rem;background:transparent;border:1px solid #79846f;color:#596653;text-decoration:none}
.story blockquote{font:italic clamp(2rem,8vw,3.4rem)/1.15 NimbusRoman,serif;color:#5d6b57;margin:1rem 0 2rem}
.story>p:not(.section-kicker),.memory>p:not(.section-kicker),.rsvp>p:not(.section-kicker){line-height:1.7;color:#56584f}
.memory{background:#5e6d59;color:#f8f3e9}
.memory .section-kicker{color:#dfc27f}
.memory h2,.rsvp h2{font:italic 2.6rem/1 NimbusRoman,serif;margin:.5rem 0 1rem}
.memory>p:not(.section-kicker){color:#f0eee5}
.outline-button{color:#f7f2e7;border-color:#c7cdbf;width:100%;margin-top:1.2rem}
.rsvp{text-align:center}
.primary-button{width:100%;padding:1.2rem;background:#66765f;color:#fff;box-shadow:0 8px 18px rgba(49,64,48,.18);margin-top:1rem}
footer{text-align:center;padding:2.5rem 1rem;background:#eef0e6;color:#5b6755;font:italic 1.1rem NimbusRoman,serif}
dialog{width:min(calc(100% - 2rem),540px);border:0;border-radius:5px;padding:0;background:#faf6ed;color:#34372f;box-shadow:0 24px 70px rgba(0,0,0,.35)}
dialog::backdrop{background:rgba(34,43,35,.72);backdrop-filter:blur(3px)}
dialog form{padding:2.4rem;position:relative}
dialog h2{font:italic 2.4rem/1 NimbusRoman,serif;color:#5a6754;margin:.5rem 0 1.5rem}
.close{position:absolute;right:1rem;top:.7rem;border:0;background:transparent;color:#666;font-size:2rem;cursor:pointer}
dialog label,legend{display:grid;gap:.45rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;margin:1rem 0}
input,textarea{width:100%;border:1px solid #c6cbbd;background:#fffdf8;padding:.85rem;font:1rem NimbusSans,sans-serif;color:#333;border-radius:2px}
fieldset{border:0;padding:0;margin:1rem 0}
.choice{display:flex;text-transform:none;letter-spacing:0;font-size:.95rem;align-items:center}
.choice input{width:auto;accent-color:#64745e}
.success{line-height:1.5;color:#4e6b49;font-weight:700}
.success:empty{display:none}
.demo-notice{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:20;display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:center;padding:.75rem 1rem;border:1px solid rgba(97,109,88,.35);background:rgba(255,251,243,.94);color:#32342f;font:700 .88rem/1.4 NimbusSans,Arial,sans-serif}
.demo-notice a{color:#5a6754}
@media(min-width:800px){body{padding:2.5rem 0}
main{width:min(calc(100% - 5rem),980px);box-shadow:0 20px 80px rgba(13,22,16,.45)}
.opening{background-position:center 45%}
.opening-title{font-size:6.5rem}
.hero{height:56vh;max-height:620px}
.hero img{object-position:center 48%}
.section-pad{padding-inline:clamp(4rem,8vw,7rem)}
}
@media(max-width:480px){.action-row{grid-template-columns:1fr}
.intro h1{font-size:3.65rem}
.section-pad{padding:3rem 1.4rem}
.hero{min-height:310px}
.lede{font-size:1.05rem}
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
