:root{--wine:#6f2527;--ink:#2d211e;--ivory:#f8efe2;--gold:#b37742;--paper:#ead5bd}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#2c1817;color:var(--ink);font-family:Manrope,sans-serif}.invitation{position:relative;overflow:hidden;background:var(--ivory)}
.grain{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E")}
.topbar{position:absolute;z-index:4;top:0;left:0;width:100%;padding:28px 4vw;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#5a342c;text-transform:uppercase;letter-spacing:.22em;font-size:.67rem}.topbar span:last-child{text-align:right}.monogram{font-family:"Cormorant Garamond",serif;font-size:1.2rem;letter-spacing:.12em}
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:110px 24px 90px;background:linear-gradient(180deg,rgba(255,247,237,.16),rgba(255,237,220,.08)),url('assets/autumn-editorial.png') center/cover no-repeat}
.hero:after{content:"";position:absolute;inset:3.5vw;border:1px solid rgba(112,67,49,.3);pointer-events:none}.hero>*{position:relative;z-index:2}.eyebrow,.section-label{text-transform:uppercase;letter-spacing:.34em;font-size:.68rem;font-weight:500;color:#744638;margin:0 0 30px}
h1{margin:0;display:flex;flex-direction:column;align-items:center;font-family:"Cormorant Garamond",serif;font-size:clamp(4.4rem,12vw,10.5rem);font-weight:400;line-height:.7;letter-spacing:-.055em;color:var(--wine);text-shadow:0 1px 0 rgba(255,255,255,.35)}h1 i{font-size:.28em;font-weight:400;line-height:1.3;color:var(--gold);margin:.14em 0 .08em;letter-spacing:0}
.intro{max-width:570px;margin:44px auto 0;font-family:"Cormorant Garamond",serif;font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.45}.ornament{display:flex;align-items:center;gap:14px;margin:28px 0 20px;color:var(--gold)}.ornament span{display:block;width:42px;height:1px;background:var(--gold)}.notice{font-size:.75rem;line-height:1.8;letter-spacing:.18em;text-transform:uppercase;color:#6c4840}.scroll-cue{position:absolute;bottom:22px;color:#654338;text-decoration:none;display:flex;flex-direction:column;gap:8px;font-size:.65rem;letter-spacing:.18em;text-transform:uppercase}.scroll-cue b{font-size:1rem;font-weight:300;animation:float 2s ease-in-out infinite}
.calendar-page{position:relative;min-height:100svh;display:grid;place-items:center;padding:90px 24px;background:radial-gradient(circle at 15% 15%,rgba(199,132,72,.28),transparent 32%),radial-gradient(circle at 85% 80%,rgba(82,28,30,.7),transparent 38%),linear-gradient(145deg,#401d1e,#7c302b 50%,#b0663d);color:#f9ead9}.calendar-page:before{content:"";position:absolute;inset:3.5vw;border:1px solid rgba(250,231,208,.24)}.calendar-card{position:relative;z-index:1;width:min(650px,100%);padding:clamp(36px,6vw,72px);text-align:center;border:1px solid rgba(255,239,220,.48);background:linear-gradient(150deg,rgba(87,30,31,.82),rgba(111,37,39,.62));box-shadow:0 32px 80px rgba(35,10,11,.24);backdrop-filter:blur(8px)}.calendar-page .section-label{color:#dbad7f;margin-bottom:22px}.calendar-card h2{margin:0;font-family:"Cormorant Garamond",serif;font-size:clamp(3.3rem,8vw,5.8rem);font-weight:400;line-height:.9}.calendar-card h2 i{display:block;margin-top:8px;color:#d9a36e;font-size:.43em;font-weight:400;letter-spacing:.18em}.calendar-intro{margin:30px auto 38px;max-width:480px;font-family:"Cormorant Garamond",serif;font-size:1.18rem;line-height:1.5;color:#efdaca}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:9px 6px;align-items:center;max-width:500px;margin:auto}.calendar-grid>span{position:relative;display:grid;place-items:center;aspect-ratio:1;font-family:"Cormorant Garamond",serif;font-size:1.05rem}.calendar-grid .weekday{aspect-ratio:auto;padding-bottom:12px;font-family:Manrope,sans-serif;font-size:.62rem;letter-spacing:.12em;color:#d9ae87}.chosen b{position:relative;z-index:2;font-weight:500;color:#fff}.chosen i{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-51%);font-family:"Cormorant Garamond",serif;font-size:3.45rem;font-weight:400;line-height:1;color:#e7b27b;font-style:normal}.calendar-date{margin:30px 0 0;text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;color:#e2bd99}
.venue-page{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(320px,.82fr) minmax(420px,1.18fr);gap:clamp(28px,5vw,90px);align-items:center;padding:clamp(70px,8vw,130px) max(5vw,24px);background:radial-gradient(circle at 5% 90%,rgba(184,104,55,.22),transparent 35%),linear-gradient(120deg,#f6ead9,#ead2b8);color:var(--ink)}.venue-page:after{content:"";position:absolute;inset:3.5vw;border:1px solid rgba(111,37,39,.22);pointer-events:none}.venue-copy{position:relative;z-index:2;max-width:520px;padding-left:clamp(0px,3vw,48px)}.venue-copy .section-label{margin-bottom:22px}.venue-mark{display:block;color:var(--wine);font-size:1rem;margin-bottom:18px}.venue-copy h2{margin:0;font-family:"Cormorant Garamond",serif;font-size:clamp(4.2rem,8vw,8rem);font-weight:400;line-height:.68;letter-spacing:-.04em;color:var(--wine)}.venue-copy h2 i{display:inline-block;margin-left:.35em;color:var(--gold);font-weight:400}.venue-meta{margin:45px 0 0;text-transform:uppercase;letter-spacing:.2em;font-size:.68rem;color:#754c3f}.venue-text{max-width:460px;margin:24px 0 32px;font-family:"Cormorant Garamond",serif;font-size:1.28rem;line-height:1.5;color:#573b33}.venue-button{display:inline-flex;align-items:center;gap:18px;padding:14px 21px;border:1px solid rgba(111,37,39,.5);color:var(--wine);text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:.66rem;transition:.25s ease}.venue-button:hover,.venue-button:focus-visible{background:var(--wine);color:#fff}.venue-photo{position:relative;z-index:2;margin:0;height:min(74vw,760px);min-height:520px;overflow:hidden;box-shadow:0 35px 80px rgba(74,36,26,.2)}.venue-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 68%,rgba(38,18,17,.48))}.venue-photo img{width:100%;height:100%;display:block;object-fit:cover}.venue-photo figcaption{position:absolute;z-index:2;right:24px;bottom:20px;color:#f8ecdc;text-transform:uppercase;letter-spacing:.22em;font-size:.62rem}
.details{padding:110px 6vw;background:linear-gradient(125deg,#6f2527 0%,#8b4231 44%,#bd7446 100%);color:#faefe2}.letter{max-width:1180px;margin:auto;border:1px solid rgba(255,239,223,.35);padding:clamp(38px,7vw,90px)}.details .section-label{color:#e9c29d}.details h2{font-family:"Cormorant Garamond",serif;font-size:clamp(3rem,6vw,6rem);font-weight:400;line-height:.95;margin:0 0 36px;letter-spacing:-.03em}.letter>p:not(.section-label){max-width:650px;font-family:"Cormorant Garamond",serif;font-size:1.35rem;line-height:1.55;color:#f0dfd1}
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:70px;border-top:1px solid rgba(255,239,223,.25)}.detail-grid article{padding:28px 22px 5px 0}.detail-grid article+article{border-left:1px solid rgba(255,239,223,.25);padding-left:28px}.detail-grid span{font-size:.65rem;letter-spacing:.18em;color:#dcb38c}.detail-grid h3{font-family:"Cormorant Garamond",serif;font-size:2rem;font-weight:400;margin:18px 0 5px}.detail-grid p{font-size:.8rem;text-transform:uppercase;letter-spacing:.13em;color:#e2c8b7}.map-link{color:inherit;text-decoration-color:rgba(255,239,223,.45);text-underline-offset:5px;text-decoration-thickness:1px}.map-link:hover,.map-link:focus-visible{color:#fff;text-decoration-color:#fff}.map-link b{font-size:.9em;font-weight:400}
footer{min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:70px 24px;background:#f3e5d2}footer p{text-transform:uppercase;letter-spacing:.3em;font-size:.65rem;color:#7f5547}footer div{font-family:"Cormorant Garamond",serif;font-size:clamp(3rem,7vw,6rem);color:var(--wine);margin:25px 0}footer div i{color:var(--gold);font-weight:400}footer span{font-family:"Cormorant Garamond",serif;letter-spacing:.4em;color:#8a6253}
.reveal{animation:rise .9s both}.delay-1{animation-delay:.12s}.delay-2{animation-delay:.28s}.delay-3{animation-delay:.45s}@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes float{50%{transform:translateY(5px)}}
@media(max-width:800px){.venue-page{grid-template-columns:1fr;padding:80px 28px}.venue-page:after{inset:14px}.venue-copy{padding:0 12px;text-align:center;margin:auto}.venue-copy h2{font-size:clamp(4.5rem,22vw,7rem)}.venue-meta{margin-top:38px}.venue-text{font-size:1.14rem}.venue-photo{width:100%;height:62svh;min-height:430px}.venue-photo figcaption{right:18px;bottom:16px}}
@media(max-width:700px){.topbar{padding:22px 6vw;font-size:.55rem}.topbar span:first-child{display:none}.topbar{grid-template-columns:auto 1fr}.hero:after,.calendar-page:before{inset:14px}.hero{background-image:linear-gradient(180deg,rgba(255,247,237,.08),rgba(255,237,220,.04)),url('assets/autumn-editorial-mobile.png');background-position:center;background-size:cover;background-repeat:no-repeat}h1{font-size:clamp(4rem,21vw,6.4rem)}.intro{margin-top:35px;font-size:1.15rem}.calendar-page{padding:50px 14px}.calendar-card{padding:42px 22px}.calendar-intro{font-size:1.05rem;margin:25px auto 28px}.calendar-grid{gap:7px 2px}.calendar-grid>span{font-size:.98rem}.chosen i{font-size:3.1rem}.details{padding:65px 18px}.letter{padding:45px 24px}.detail-grid{grid-template-columns:1fr;margin-top:48px}.detail-grid article+article{border-left:0;border-top:1px solid rgba(255,239,223,.2);padding-left:0}.detail-grid article{padding:22px 0}.letter>p:not(.section-label){font-size:1.15rem}footer{min-height:45vh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.scroll-cue b{animation:none}}

/* Keep the wedding date optically centered inside the heart at every viewport. */
.calendar-grid .chosen{display:grid;place-items:center}
.calendar-grid .chosen b,.calendar-grid .chosen i{grid-area:1/1}
.calendar-grid .chosen i{position:relative;inset:auto;display:grid;place-items:center;width:100%;height:100%;transform:translateY(-.035em)}
