:root {
  --paper: #f8f7f2;
  --cream: #f2f2eb;
  --mist: #e9eee5;
  --sage: #6c826f;
  --sage-dark: #435d4c;
  --sage-mid: #91a18d;
  --ink: #3d4c41;
  --soft-ink: #67736b;
  --line: #d4ddd2;
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans: 'Hattori', 'DM Sans', 'Avenir Next', 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 86px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
a:focus-visible,button:focus-visible { outline: 2px solid var(--sage-dark); outline-offset: 5px; }
img { display: block; max-width: 100%; }
::selection { background:#d3dece; color:#334d3c; }
.skip-link { position:absolute; left:18px; top:-60px; z-index:200; padding:14px 18px; background:#fff; }
.skip-link:focus { top:10px; }
.site-header { position: relative; z-index: 5; background: var(--paper); border-bottom: 1px solid rgba(112,136,114,.16); }
.header-inner { max-width: 1250px; height: 82px; padding: 0 38px; margin: 0 auto; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.brand-mark { font: 600 26px/1 var(--serif); letter-spacing:-.08em; color:var(--sage-dark); }
.brand-and { font-size: .7em; margin:0 1px; font-style:italic; }
.brand-word { font-size: 10px; letter-spacing:.27em; font-weight:700; }
.navigation { display:flex; align-items:center; gap:42px; margin-left:auto; }
.navigation a, .header-date { font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; transition: color .2s ease; }
.navigation a:hover, .header-date:hover { color:#9eab98; }
.header-date { border-left:1px solid var(--line); padding-left:27px; margin-left:10px; white-space:nowrap; color:var(--sage); }
.hero { position:relative; min-height:790px; overflow:hidden; display:flex; justify-content:center; isolation:isolate; background: linear-gradient(180deg,#fbfaf6 0%,#f9f8f3 58%,#eaf0e7 100%); text-align:center; }
.hero-halo { position:absolute; z-index:-1; width:740px; height:740px; border:1px solid rgba(139,156,138,.13); border-radius:50%; left:50%; top:-170px; transform:translateX(-50%); box-shadow:0 0 0 85px rgba(139,156,138,.025),0 0 0 175px rgba(139,156,138,.022); }
.hero-content { position:relative; z-index:2; padding:95px 24px 380px; width:100%; }
.eyebrow { color:var(--sage); font-weight:700; letter-spacing:.34em; text-transform:uppercase; font-size:10px; line-height:1.8; }
.hero-eyebrow { display:flex; justify-content:center; gap:17px; align-items:center; }
.tiny-rule { display:block; width:28px; height:1px; background:#a7b7a6; }
.hero h1 { margin: 31px 0 0; font-weight:400; }
.headline-small { display:block; font: 500 clamp(34px,4.4vw,58px)/1 var(--serif); letter-spacing:.045em; text-transform:uppercase; }
.hero-names { display:block; margin-top:16px; color:#435a47; font:400 clamp(65px,9vw,130px)/1.03 var(--serif); letter-spacing:-.056em; white-space:nowrap; }
.hero-names em { font-style:italic; font-size:.62em; letter-spacing:-.05em; color:var(--sage); margin:0 .035em; }
.hero-flourish {display:flex; align-items:center; justify-content:center; gap:11px; margin:29px 0 24px;}
.hero-flourish span:first-child,.hero-flourish span:last-child {width:57px;height:1px;background:#b7c5b7;}
.flourish-diamond {width:5px;height:5px;background:var(--sage-mid);transform:rotate(45deg);}
.hero-tagline { margin:0; font:400 clamp(21px,2.7vw,29px)/1.26 var(--serif); color:#536458; }
.hero-date { margin-top:30px; display:flex; justify-content:center; align-items:center; gap:17px; flex-wrap:wrap; color:var(--sage-dark); font-size:10px; font-weight:700; letter-spacing:.2em; }
.hero-date-dot { font-size:13px; opacity:.6; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:24px; padding:15px 26px; min-height:47px; border:1px solid var(--sage-dark); font-size:10px; line-height:1.2; font-weight:700; letter-spacing:.17em; transition: background .2s ease, color .2s ease, transform .2s ease; cursor:pointer; }
.button:hover { transform:translateY(-2px); }
.button-outline {color:var(--sage-dark); background:rgba(249,249,244,.5);}
.button-outline:hover {background:var(--sage-dark);color:white;}
.button-filled {background:var(--sage-dark);color:#fff;}
.button-filled:hover {background:#607a65;}
.hero-cta { margin-top:30px; }
.hero-mountain {position:absolute;bottom:0;left:0;width:100%; z-index:1;pointer-events:none;line-height:0;}
.hero-mountain img {width:100%;height:365px;object-fit:cover;object-position:bottom;}
.hero-edge {position:absolute;bottom:0;left:0;right:0;height:10px;background:#708975;opacity:.35;z-index:1;}
.section-wrap {max-width:1050px;margin:0 auto;padding-left:28px;padding-right:28px;}
.intro {text-align:center;padding-top:130px;padding-bottom:124px;}
.intro .eyebrow {margin:0;}
.divider-mountain {margin:11px auto 7px;width:205px;opacity:.75;}
h2 {font:400 clamp(48px,6.2vw,75px)/1.05 var(--serif); letter-spacing:-.034em; margin:0;}
h2 em {font-weight:400;color:var(--sage);}
.intro-copy {max-width:540px;margin:26px auto 49px;color:var(--soft-ink);font:400 17px/1.85 var(--sans);}
.countdown {display:flex; align-items:center;justify-content:center;gap:35px;}
.countdown>div {min-width:77px;}
.countdown strong {display:block;font:400 51px/1 var(--serif);color:var(--sage-dark);font-variant-numeric:tabular-nums;}
.countdown span:not(.countdown-separator) {display:block;letter-spacing:.25em;font-size:9px;font-weight:700;margin-top:11px;color:var(--soft-ink);}
.countdown-separator {width:1px;height:42px;background:var(--line);}
.countdown-caption {margin:21px 0 0;font-size:9px;letter-spacing:.2em;font-weight:700;color:#99a49a;}
.landscape-break {max-width:1050px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:27px;opacity:.75;}
.landscape-break::before,.landscape-break::after {content:"";height:1px;background:var(--line);flex:1;}
.landscape-break img {width:128px;}
.landscape-break span {font-size:9px;color:var(--sage);}
.details-section {padding:120px 0 145px;text-align:center;}
.details-section .eyebrow {margin:0 0 13px;}
.section-subtitle {font:400 23px/1.4 var(--serif);color:var(--soft-ink);margin:16px 0 50px;}
.details-card {max-width:866px;margin:auto;display:grid;grid-template-columns:42% 58%;border:1px solid #c9d3c6;min-height:434px;text-align:center;box-shadow:0 22px 85px -75px #50614f;}
.date-side {background:#728875;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:45px 22px;}
.card-eyebrow {letter-spacing:.3em;font-size:10px;font-weight:700;}
.date-side .card-eyebrow {color:#eef2e9;}
.date-number {font:400 142px/.9 var(--serif);margin:12px 0 3px;letter-spacing:-.07em;padding-right:.07em;}
.date-month {font:500 23px/1.2 var(--serif);letter-spacing:.17em;}
.date-month span {font-size:.87em;letter-spacing:0;}
.detail-mini-line {width:52px;height:1px;background:#d3ded1;margin:28px 0 22px;opacity:.85;}
.date-time {font-size:10px;font-weight:700;letter-spacing:.17em;}
.venue-side {padding:34px 28px 40px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#fcfbf7,#f2f4ed);}
.venue-seal {width:75px;height:75px;margin-bottom:16px;opacity:.85;}
.venue-side .card-eyebrow {color:var(--sage);}
.venue-side h3 {font:400 53px/.95 var(--serif);letter-spacing:-.03em;margin:12px 0 14px;}
.venue-side p {font:400 14px/1.8 var(--sans);color:var(--soft-ink);margin:0 0 20px;}
.venue-buttons {display:flex;flex-direction:column;align-items:center;gap:14px;}
.venue-buttons .button {min-height:41px;padding:12px 25px;}
.text-action {background:none;border:0;border-bottom:1px solid #8da18e;color:var(--sage-dark);font-size:11px;cursor:pointer;padding:5px 0;}
.text-action:hover {color:#879c88;}
.mountain-quote {background:#ecf0e8;position:relative;overflow:hidden;padding:95px 25px 0;}
.mountain-quote-inner {text-align:center;max-width:780px;margin:0 auto;position:relative;}
.mountain-quote .eyebrow {margin:0 0 25px;}
.mountain-quote-inner>p:nth-child(2) {font:400 clamp(44px,5.4vw,72px)/1.12 var(--serif);letter-spacing:-.04em;margin:0 0 26px;}
.mountain-quote-inner>p:nth-child(2) em {color:var(--sage);}
.mountain-quote img {width:100%;max-width:550px;margin:0 auto;opacity:.85;}
.rsvp {padding-top:138px;padding-bottom:130px;text-align:center;}
.rsvp-seal {width:88px;margin:0 auto 22px;}
.rsvp .eyebrow {margin:0 0 14px;}
.rsvp>p:not(.eyebrow):not(.small-location) {font:400 17px/1.85 var(--sans);max-width:505px;margin:23px auto 35px;color:var(--soft-ink);}
.rsvp-form {background:#f0f2eb;border:1px solid #d9e2d5;padding:30px clamp(19px,4vw,36px);max-width:540px;margin:0 auto;text-align:left;}
.rsvp-form label {display:block;font-size:13px;font-weight:600;margin:22px 0 8px;}
.rsvp-form>label:first-of-type {margin-top:0;}
.rsvp-form label span {font-weight:400;color:var(--soft-ink);}
.rsvp-form input:not([type="hidden"]),.rsvp-form select,.rsvp-form textarea {display:block;width:100%;min-height:46px;padding:11px 12px;border:1px solid #a4b29f;border-radius:0;background:var(--paper);color:var(--ink);font:inherit;font-size:15px;}
.rsvp-form textarea {resize:vertical;}
.rsvp-form input:focus-visible,.rsvp-form select:focus-visible,.rsvp-form textarea:focus-visible {outline:2px solid var(--sage-dark);outline-offset:3px;}
.rsvp-form .text-action {margin-top:12px;min-height:32px;}
.rsvp-form .field-help {font-size:12px;line-height:1.6;color:var(--soft-ink);margin:8px 0 14px;}
.rsvp-form .button {margin-top:8px;}
.rsvp-status {font-size:14px;line-height:1.6;margin:16px 0 0;}
.rsvp-status:empty {display:none;}
.rsvp-form :disabled {opacity:.65;cursor:wait;}
.rsvp .small-location {margin:42px 0 0;letter-spacing:.2em;font-weight:700;font-size:10px;color:var(--sage);}
.small-location span {margin:0 12px;font-size:9px;}
.site-footer {text-align:center;background:#e9eee5;padding:48px 22px 33px;border-top:1px solid var(--line);}
.site-footer img {width:178px;margin:0 auto 5px;}
.footer-names {font:400 38px/1.2 var(--serif);}
.footer-names em {color:var(--sage);}
.footer-caption {letter-spacing:.22em;font-size:9px;font-weight:700;margin:8px 0 28px;color:var(--sage);}
.back-to-top {display:inline-block;font-size:9px;letter-spacing:.22em;font-weight:700;border-top:1px solid #cbd7c9;padding:15px 10px 0;}
@media (max-width: 900px) {
  .header-inner {padding:0 24px;}
  .navigation {gap:23px;}
  .header-date {display:none;}
  .hero {min-height:742px;}
  .hero-content {padding-top:100px;padding-bottom:310px;}
  .hero-mountain img {height:302px;}
  .hero-names {font-size:clamp(65px,9.3vw,95px);}
}
@media (max-width: 620px) {
  html {scroll-padding-top:64px;}
  .header-inner {height:66px;padding:0 18px;gap:8px;}
  .brand {gap:8px;}
  .brand-mark {font-size:23px;}
  .brand-word {font-size:8px;letter-spacing:.15em;}
  .navigation {gap:13px;}
  .navigation a {font-size:8px;letter-spacing:.02em;}
  .navigation a:first-child {display:none;}
  .hero {min-height:686px;}
  .hero-content {padding:102px 15px 255px;}
  .hero-eyebrow {letter-spacing:.17em;font-size:9px;gap:8px;}
  .tiny-rule {width:12px;}
  .hero h1 {margin-top:27px;}
  .headline-small {font-size:36px;}
  .hero-names {font-size:clamp(47px,11.4vw,72px);margin-top:18px;letter-spacing:-.06em;}
  .hero-flourish {margin:24px 0 19px;}
  .hero-tagline {font-size:21px;}
  .hero-date {margin-top:22px;gap:8px;flex-direction:column;letter-spacing:.13em;font-size:9px;}
  .hero-date-dot {display:none;}
  .hero-cta {margin-top:22px;min-height:43px;}
  .hero-mountain img {height:230px;object-fit:cover;object-position:52% 100%;}
  .intro {padding:100px 23px 92px;}
  .intro-copy {font-size:15px;line-height:1.8;}
  .countdown {gap:15px;}
  .countdown>div {min-width:59px;}
  .countdown strong {font-size:45px;}
  .countdown-separator {height:36px;}
  .landscape-break {margin:0 23px;gap:14px;}
  .landscape-break img {width:85px;}
  .details-section {padding:95px 0 90px;}
  .details-section .section-wrap {padding:0 23px;}
  .section-subtitle {font-size:20px;}
  .details-card {display:block;max-width:430px;}
  .date-side {padding:31px 20px 36px;}
  .date-number {font-size:120px;}
  .date-month {font-size:20px;}
  .detail-mini-line {margin:19px 0 14px;}
  .venue-side {padding:31px 19px 38px;}
  .venue-side h3 {font-size:49px;}
  .mountain-quote {padding:83px 22px 0;}
  .mountain-quote-inner>p:nth-child(2) {font-size:49px;}
  .rsvp {padding-top:94px;padding-bottom:100px;}
  .rsvp .small-location {font-size:9px;letter-spacing:.13em;}
}
@media (max-width: 360px) {
  .navigation a {font-size:8px;}
  .brand-word {display:none;}
  .hero-names {font-size:45px;}
  .hero-tagline {font-size:19px;}
  .hero-eyebrow {letter-spacing:.1em;font-size:8px;}
}
@media (prefers-reduced-motion: reduce) {
  html {scroll-behavior:auto;}
  .button {transition:none;}
}
