@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-italic-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-italic-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-normal-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-normal-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-normal-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/manrope-normal-400.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/manrope-normal-500.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/manrope-normal-600.ttf) format('truetype');
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/manrope-normal-700.ttf) format('truetype');
}

:root{--paper:#faf9f5;--green:#3f5040;--ink:#29342c;--muted:#657064;--gold:#9c7b45;--line:#dddcd2;--serif:'Cormorant Garamond',Georgia,serif;--sans:Manrope,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.8}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08}h2{font-size:clamp(38px,4.3vw,62px);margin-bottom:24px}h3{font-size:32px;margin-bottom:16px}em{font-weight:400;color:var(--green)}p{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:600;color:var(--gold);display:block;margin-bottom:20px}.section{max-width:1240px;margin:auto;padding:100px 50px}.section-heading{text-align:center;margin-bottom:60px}.section-heading p{margin-bottom:0}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--green);color:#fff;border:1px solid var(--green);padding:14px 24px;font-size:14px;line-height:1.5;transition:background .2s,transform .2s}.button:hover{background:#2d3d2f;transform:translateY(-2px)}.button.small{padding:10px 20px}.button.outline{background:transparent;color:var(--green)}.textlink{font-size:14px;border-bottom:1px solid #a7af9f;padding-bottom:6px}.fine{font-size:12px;line-height:1.7;color:var(--muted)}.signature{font:italic 30px var(--serif);color:var(--green)}header{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 5%;background:rgba(250,249,245,.96);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.monogram{font:500 29px var(--serif);letter-spacing:.08em;white-space:nowrap}.monogram i{font-weight:400;color:var(--gold)}nav{display:flex;gap:28px}nav a{font-size:13px}nav a:hover{color:var(--gold)}.menu{display:none;border:0;background:none;color:var(--green);font-size:26px}.skip{position:fixed;top:-100px;z-index:100;background:#fff;padding:12px}.skip:focus{top:0}.hero{max-width:1440px;margin:auto;display:grid;grid-template-columns:1.06fr 1fr;gap:40px;padding:60px 7% 75px;align-items:center}.hero-copy{position:relative;padding:20px 0}.hero h1{font-size:clamp(64px,7.5vw,110px);letter-spacing:-.03em;line-height:.91;margin:35px 0}.hero h1 em{font-size:.85em;color:var(--gold)}.hero-date{font-size:14px;font-weight:600;letter-spacing:.06em;color:var(--green);margin-top:28px}.hero-date span{padding:0 8px}.hero-copy>p:not(.hero-date){font-size:15px}.hero-actions{display:flex;align-items:center;gap:22px;margin-top:30px;flex-wrap:wrap}.hero-picture{position:relative;padding:12px;border:1px solid #c4cbbd;border-radius:240px 240px 0 0}.hero-picture img{width:100%;height:570px;border-radius:230px 230px 0 0;object-position:center 30%}.photo-note{position:absolute;bottom:62px;left:-30px;background:var(--paper);padding:14px 26px;transform:rotate(-5deg);font:italic 28px var(--serif);box-shadow:0 4px 25px #2331220c}.photo-caption{position:absolute;bottom:-34px;right:0;font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}.save-date{display:flex;align-items:center;gap:13px;margin-top:50px;color:var(--gold)}.save-date strong{font:50px var(--serif)}.save-date span{font-size:11px;letter-spacing:.08em}.save-date i{border-left:1px solid var(--line);padding-left:22px;font:italic 22px var(--serif)}.intro-strip{background:#eef0e9;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:center;align-items:center;gap:28px;padding:21px}.intro-strip p{margin:0;font:italic 25px var(--serif);text-align:center;color:var(--green)}.intro-strip span{color:var(--gold);font-size:13px}.welcome{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.welcome h2{font-size:48px}.welcome p{font-size:15px}.day{border-top:1px solid var(--line)}.timeline{display:grid;grid-template-columns:repeat(6,1fr);gap:22px}.timeline article{position:relative}.time{font:32px var(--serif);color:var(--green)}.timeline-dot{display:block;border-top:1px solid #bdc5b4;margin-top:20px;padding-top:12px;font-size:12px;color:var(--gold)}.timeline h3{font-size:25px;margin-top:16px}.timeline p{font-size:13px;line-height:1.8}.day>.fine{text-align:center;margin-top:30px}.locations{display:grid;grid-template-columns:1fr 1fr;gap:26px}.location{border:1px solid var(--line);background:white}.location-top{padding:35px;position:relative}.location-top h3{font-size:36px}.location-top p{font-size:14px}.location-top .number{position:absolute;right:25px;top:20px;color:#e6e9e1;font:64px var(--serif)}.location-top .eyebrow{font-size:11px}.location iframe{width:100%;height:240px;border:0;display:block}.photo-banner{height:400px;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden}.photo-banner img{position:absolute;inset:0;width:100%;height:100%;filter:brightness(.52)}.photo-banner div{position:relative;padding:25px}.photo-banner .eyebrow{color:#e4d4b9}.photo-banner p{font:50px/1.15 var(--serif);color:#fff;margin:0}.photo-banner em{color:#fff}.seating-wrap{display:grid;grid-template-columns:1.7fr 1fr;gap:55px;align-items:center}.floor{padding:24px;border:1px solid #c8cec0;background:#f0f2eb;position:relative}.stage{background:#d9dfd1;text-align:center;margin:auto;width:48%;padding:9px;font-size:13px;letter-spacing:.06em}.head-table{text-align:center;margin:25px 0}.head-table button{border:1px solid #89977e;background:var(--paper);color:var(--green);padding:12px 25px;border-radius:50px;font-size:14px}.floor-main{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;align-items:center}.table-column{display:grid;justify-items:center;gap:26px}.round{width:100px;height:100px;border:1px solid #9eaa95;background:var(--paper);border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--green);outline:8px dotted #cbd1c3;outline-offset:4px;transition:background .2s,transform .2s}.round:hover{background:#dce3d5;transform:scale(1.05)}.round strong{font:31px var(--serif)}.round span{font-size:11px}.dance{border:1px dashed #a5ad9c;text-align:center;padding:60px 10px;font:25px var(--serif)}.dance span{display:block;font:11px var(--sans);margin-top:12px}.floor-bottom{display:flex;justify-content:space-between;gap:8px;margin-top:28px;font-size:11px}.floor-bottom span{padding:8px;background:#e0e4d9}.seating-info h3{font-size:37px}.seating-info p{font-size:14px}.legend{font-size:13px;color:var(--gold)}.useful{border-top:1px solid var(--line)}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.info-grid article+article{border-left:1px solid var(--line);padding-left:35px}.info-icon{font-size:34px;color:var(--gold);display:block;margin-bottom:18px}.info-grid p{font-size:14px}.stay-links{display:flex;flex-direction:column;gap:8px}.stay-links a{font-size:13px;text-decoration:underline;text-underline-offset:5px}.rsvp{display:grid;grid-template-columns:1fr 1.25fr;gap:80px;background:#eef0e9;max-width:none;padding-left:max(50px,calc((100vw - 1140px)/2));padding-right:max(50px,calc((100vw - 1140px)/2))}.rsvp-copy>p{font-size:14px}.rsvp-copy img{width:min(100%,360px);height:390px;object-position:50% 40%;margin:32px auto 0;transform:rotate(-3deg);border:10px solid white;box-shadow:0 6px 22px #20302018}.demo-label{display:inline-block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border:1px solid #9eaa95;margin-bottom:10px}.rsvp form{padding:35px;background:var(--paper);border:1px solid var(--line)}fieldset{border:0;padding:0;margin:0 0 24px}legend,label{font-size:13px;color:var(--ink)}legend{margin-bottom:12px}.radio-group{display:flex;gap:10px;flex-wrap:wrap}.radio-group label{padding:10px 12px;border:1px solid var(--line);background:#fff;cursor:pointer}.radio-group input{accent-color:var(--green)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}form label{display:block;margin-bottom:20px}input:not([type=radio]),select,textarea{display:block;width:100%;padding:12px;border:1px solid #c9cdbf;background:transparent;border-radius:0;font-size:14px;margin-top:8px;color:var(--ink)}textarea{resize:vertical}.form-feedback{font-size:14px;margin:18px 0 0}.photo-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:35px}.photo-grid>img{width:100%;height:350px}.upload-box{border:1px dashed #9eaa95;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px}.upload-icon{font:50px var(--serif);color:var(--gold)}.upload-box h3{font-size:30px}.upload-box p{font-size:14px;max-width:300px}.upload-box .fine{margin-top:12px}.faq{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.5fr;gap:60px}.faq>div>p{font-size:14px}details{border-bottom:1px solid var(--line);padding:20px 0}details:first-child{border-top:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;font-size:14px;font-weight:600}summary::-webkit-details-marker{display:none}summary:after{content:'+';font-size:20px;line-height:1.2;color:var(--gold)}details[open] summary:after{content:'−'}details p{font-size:14px;margin:18px 25px 0 0}.closing{padding:80px 20px;text-align:center;background:#e8ece1}.closing h2{font-size:64px}.closing .signature{display:block;margin:30px}.closing p{font-size:14px}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:30px 5%}footer p,footer>a:last-child{font-size:12px;margin:0}dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:45px;width:min(90vw,480px);max-height:85vh;overflow:auto}dialog::backdrop{background:#1a281dc0;backdrop-filter:blur(4px)}dialog h2{font-size:42px}dialog ul{list-style:none;padding:0;margin:25px 0}dialog li{padding:7px 0;border-bottom:1px solid var(--line);font-size:15px}.close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:32px;color:var(--green);padding:0 8px}.placeholder-upload{text-align:center;border:1px dashed #b4bea9;padding:30px;margin:25px 0;color:var(--muted)}:focus-visible{outline:3px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}
@media(min-width:1600px){.hero-picture img{height:640px}}@media(max-width:1100px){nav{gap:16px}.hero{padding-left:5%;padding-right:5%;gap:25px}.hero-picture img{height:520px}.hero-actions{gap:16px}.timeline{grid-template-columns:repeat(3,1fr);gap:30px}.section{padding:75px 35px}.welcome{gap:40px}.rsvp{gap:40px}.seating-wrap{gap:30px}.floor{padding:20px}.round{width:80px;height:80px}.floor-main{gap:15px}.info-grid{gap:24px}.info-grid article+article{padding-left:24px}}
@media(max-width:760px){header{height:74px;padding:0 6%;gap:12px}header .button{margin-left:auto}nav{display:none;position:absolute;top:74px;left:0;right:0;background:var(--paper);padding:20px 6%;border-bottom:1px solid var(--line)}nav.open{display:flex;flex-direction:column;gap:15px}nav a{font-size:16px}.menu{display:block}.monogram{font-size:25px}.hero{grid-template-columns:1fr;padding:40px 7% 60px;gap:25px}.hero-copy{padding:0}.hero h1{font-size:78px;margin:28px 0}.hero .eyebrow{font-size:10px}.hero-copy>p:not(.hero-date){font-size:14px}.hero-picture{margin:0 10px 20px}.hero-picture img{height:450px}.photo-note{left:-20px;font-size:25px}.save-date{margin-top:28px}.hero-actions .textlink{font-size:13px}.section{padding:65px 24px}.intro-strip{gap:16px;padding:20px}.intro-strip p{font-size:21px}.welcome,.locations,.seating-wrap,.info-grid,.rsvp,.photo-grid,.faq{grid-template-columns:1fr;gap:30px}.welcome h2{font-size:39px}.section-heading{margin-bottom:38px}.timeline{grid-template-columns:1fr 1fr;gap:28px 22px}.timeline h3{font-size:26px}.timeline p{font-size:14px}.location-top{padding:28px}.photo-banner{height:320px}.photo-banner p{font-size:38px}.floor{padding:20px 14px}.floor-main{gap:12px}.round{width:74px;height:74px;outline-width:6px}.table-column{gap:28px}.dance{font-size:21px;padding:60px 5px}.dance span{font-size:10px}.floor-bottom{font-size:10px}.floor-bottom span{padding:7px}.seating-info h3{font-size:33px}.info-grid article+article{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:20px}.rsvp form{padding:25px 20px}.rsvp-copy img{display:none}.form-row{grid-template-columns:1fr;gap:0}.photo-grid>img{height:270px}.upload-box{min-height:300px}.faq{gap:10px}.closing{padding:60px 24px}.closing h2{font-size:49px}footer{flex-wrap:wrap;justify-content:center;text-align:center;padding:25px}footer p{width:100%}dialog{padding:35px 25px}.eyebrow{font-size:11px}.hero-date{font-size:12px}.hero-date span{padding:0 4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}.js .reveal:not(.visible){opacity:1;transform:none}}

.countdown{text-align:center;padding:38px 24px 32px;background:#eef0e9;border-bottom:1px solid var(--line)}.countdown .eyebrow{margin-bottom:18px}.countdown-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:560px;margin:0 auto 20px}.countdown-units>div+div{border-left:1px solid #cbd1c3}.countdown-units strong{display:block;font:500 clamp(38px,5vw,58px)/1.15 var(--serif);font-variant-numeric:tabular-nums;color:var(--green)}.countdown-units span{display:block;font-size:14px;color:var(--muted);margin-top:6px}.countdown>.fine{margin-bottom:0}@media(max-width:420px){.countdown{padding-left:12px;padding-right:12px}.countdown-units span{font-size:12px}}

.location-photo{width:100%;height:240px;object-fit:cover}.location:first-child .location-photo{object-position:center 55%}

.floor-top{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:12px;align-items:center}.floor-top .stage{grid-column:2;width:100%;margin:0}.mirror-spot{grid-column:3;text-align:center;border:1px solid #a89062;background:#faf7ef;color:var(--green);padding:9px 5px;font-size:12px;line-height:1.4;transition:background .2s}.mirror-spot small{display:block;font-size:10px;color:var(--gold);margin-top:3px}.mirror-spot:hover{background:#e9e0cc}.mirror-section{border-bottom:1px solid var(--line)}.mirror-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.mirror-product{display:flex;justify-content:center}.mirror-product img{width:min(100%,340px);height:auto;max-height:460px;object-fit:contain}.mirror-copy p{font-size:15px}.mirror-copy .button{margin-top:10px}.mirror-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.mirror-steps strong{display:block;font:30px var(--serif);color:var(--gold)}.mirror-steps span{display:block;font-size:12px;line-height:1.6;margin-top:6px;color:var(--muted)}.mirror-gallery-heading{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center;margin:65px 0 28px;scroll-margin-top:100px}.mirror-gallery-heading .eyebrow{margin-bottom:12px}.mirror-gallery-heading h3{font-size:36px;margin-bottom:0}.mirror-gallery-heading p{font-size:14px;margin:0}.mirror-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.mirror-thumb{display:block;width:100%;padding:7px 7px 10px;background:#fff;border:1px solid var(--line);color:var(--green);text-align:left;transition:transform .2s,box-shadow .2s}.mirror-thumb:hover{transform:translateY(-4px);box-shadow:0 8px 20px #29342c12}.mirror-thumb img{width:100%;aspect-ratio:2/3;height:auto;object-fit:cover}.mirror-thumb span{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:10px 6px 0}.mirror-gallery-hint{text-align:center;margin:20px 0 0}#mirror-lightbox{width:min(94vw,1000px);padding:34px 24px 15px;max-height:94vh}#mirror-lightbox figure{margin:0;text-align:center}#mirror-full-photo{max-height:72vh;width:auto;max-width:100%;object-fit:contain;margin:auto}#mirror-photo-caption{font-size:13px;margin:10px 0;color:var(--muted)}.lightbox-controls{display:flex;justify-content:center;align-items:center;gap:26px}.lightbox-controls button{width:44px;height:44px;font-size:32px;line-height:1;border:1px solid var(--line);background:transparent;color:var(--green)}#mirror-position{font-size:13px;color:var(--muted)}@media(max-width:760px){.floor-top{grid-template-columns:1.4fr 1fr;gap:10px}.floor-top .stage{grid-column:1}.mirror-spot{grid-column:2}.mirror-intro{grid-template-columns:1fr;gap:28px}.mirror-product img{max-height:340px;width:260px}.mirror-gallery-heading{grid-template-columns:1fr;gap:16px;margin-top:42px}.mirror-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.mirror-steps{gap:14px}.mirror-steps span{font-size:12px}#mirror-lightbox{padding:36px 12px 12px}}

.mirror-gallery{display:flex;gap:20px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#9eaa95 transparent;padding:5px 0 14px;overscroll-behavior-x:contain}.mirror-gallery .mirror-thumb{flex:0 0 calc((100% - 60px)/4);scroll-snap-align:start;scroll-snap-stop:normal;min-width:0}.mirror-gallery .mirror-thumb:hover{transform:none;box-shadow:none;border-color:var(--gold)}.carousel-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:15px}.carousel-footer .mirror-gallery-hint{margin:0;text-align:left}.carousel-controls{display:flex;gap:10px;flex-shrink:0}.carousel-controls button{width:44px;height:44px;background:transparent;border:1px solid var(--line);color:var(--green);font-size:30px;line-height:1}.carousel-controls button:hover{background:#eef0e9}.carousel-controls button:disabled{opacity:.35;cursor:default}@media(max-width:760px){.mirror-gallery{gap:14px}.mirror-gallery .mirror-thumb{flex-basis:calc((100% - 14px)/2)}.carousel-footer{gap:14px}.carousel-footer .mirror-gallery-hint{font-size:12px}}
.mirror-gallery{cursor:grab;touch-action:pan-x pan-y pinch-zoom}.mirror-gallery .mirror-thumb{cursor:grab}.mirror-gallery img{-webkit-user-drag:none;user-select:none}.mirror-gallery.dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto;user-select:none}.mirror-gallery.dragging .mirror-thumb{cursor:grabbing}

/* Alternating sections gently fade in and grow into place. */
.scroll-reveal{
  opacity:var(--scroll-opacity,1);
  scale:var(--scroll-scale,1);
  transform-origin:center;
}
.scroll-reveal:focus-within{opacity:1;scale:none}
@media(prefers-reduced-motion:reduce){.scroll-reveal{opacity:1;scale:none}}
@media print{.scroll-reveal{opacity:1!important;scale:none!important}}
