:root{--ivory:#fbf7f1;--paper:#fffdf9;--ink:#442c2a;--muted:#7d625d;--wine:#7b2335;--rose:#d9a4a2;--salmon:#e69a78;--line:rgba(98,52,50,.2);--serif:"Libre Caslon Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--script:"Allura",cursive;--max:1120px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.65;-webkit-font-smoothing:antialiased}body.is-locked{overflow:hidden}.skip-link{position:fixed;left:-999px;top:1rem;z-index:99;background:var(--wine);color:#fff;padding:.7rem 1rem}.skip-link:focus{left:1rem}.site-content{opacity:1;transition:opacity .7s ease}.site-content[aria-hidden=true]{visibility:hidden;opacity:0;height:100vh;overflow:hidden}.section-shell{width:min(var(--max),calc(100% - 2rem));margin-inline:auto;padding:7rem 1rem}.section-shell--narrow{max-width:820px}.eyebrow,.section-number{margin:0 0 1rem;font-size:.68rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase}.eyebrow{color:var(--wine)}.eyebrow--light{color:#f6d7cc}.section-number{color:var(--salmon)}h1,h2,h3,p{margin-top:0}h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.3rem,6vw,5rem);line-height:1.08}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.6rem;border:1px solid var(--wine);border-radius:999px;font:600 .7rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;cursor:pointer}.button--primary{background:var(--wine);color:#fff}.pending-note{font-size:.8rem;color:var(--muted)}
.envelope-intro{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:radial-gradient(circle at 50% 28%,#fffaf3 0,#f4e5df 46%,#eacfc8 100%);transition:opacity .8s ease,visibility .8s ease}.envelope-intro::before,.envelope-intro::after{content:"";position:absolute;width:40vw;height:70vh;opacity:.16;background:radial-gradient(ellipse at center,transparent 45%,var(--wine) 47%,transparent 50%);transform:rotate(28deg);pointer-events:none}.envelope-intro::before{left:-22vw;top:-18vh}.envelope-intro::after{right:-22vw;bottom:-20vh;transform:rotate(-28deg)}.envelope-intro.is-open{opacity:0;visibility:hidden;pointer-events:none}.envelope-scene{text-align:center;padding:2rem}.envelope-kicker{margin-bottom:2rem;color:var(--wine);font:500 .67rem/1 var(--sans);letter-spacing:.28em;text-transform:uppercase}.envelope{position:relative;display:block;width:min(500px,84vw);aspect-ratio:1.5;margin:auto;border:0;background:transparent;cursor:pointer;perspective:1000px}.envelope__back{position:absolute;inset:0;border-radius:4px;background:#ead8cd;box-shadow:0 28px 65px rgba(72,35,38,.2)}.envelope__letter{position:absolute;z-index:2;left:7%;right:7%;bottom:7%;height:82%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--paper);border:1px solid #efe3db;transition:transform 1s cubic-bezier(.2,.75,.25,1);box-shadow:0 6px 18px rgba(68,44,42,.08)}.envelope__letter-mark{font:400 clamp(2rem,8vw,4.5rem)/1 var(--serif);letter-spacing:.05em}.envelope__letter-mark i{font:400 .7em var(--script);color:var(--salmon)}.envelope__letter-date{margin-top:1rem;font-size:.62rem;letter-spacing:.25em;color:var(--muted)}.envelope__front{position:absolute;z-index:4;inset:0;background:linear-gradient(145deg,transparent 49.6%,#e4cdc2 50%) 0 0/50.2% 100% no-repeat,linear-gradient(215deg,transparent 49.6%,#dec5b9 50%) 100% 0/50.2% 100% no-repeat,linear-gradient(to top right,#ead6cc 49%,transparent 50%) 0 100%/50.2% 55% no-repeat,linear-gradient(to top left,#e4ccc1 49%,transparent 50%) 100% 100%/50.2% 55% no-repeat}.envelope__flap{position:absolute;z-index:5;left:0;right:0;top:0;height:55%;background:#efdcd2;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;transition:transform .75s ease;filter:drop-shadow(0 4px 4px rgba(90,49,48,.08))}.wax-seal{position:absolute;z-index:6;left:50%;top:49%;width:70px;height:70px;display:grid;place-items:center;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 28%,#a74a55,#7c2436 58%,#5d1628);box-shadow:0 4px 9px rgba(78,24,38,.28),inset 0 0 0 3px rgba(255,255,255,.08);color:#f2c9b8;transition:opacity .25s ease,transform .4s ease}.wax-seal::before{content:"";position:absolute;inset:7px;border:1px solid rgba(244,205,190,.45);border-radius:50%}.wax-seal span{font:400 1.2rem var(--serif);letter-spacing:.08em}.envelope.is-opening .envelope__flap{transform:rotateX(180deg);z-index:1}.envelope.is-opening .wax-seal{opacity:0;transform:translate(-50%,-50%) scale(.7)}.envelope.is-opening .envelope__letter{transform:translateY(-48%)}.open-label{margin-top:2rem;border:0;background:transparent;color:var(--ink);font:500 .7rem var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:underline;text-underline-offset:7px;cursor:pointer}
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden}.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(251,247,241,.1),var(--ivory)),radial-gradient(circle at 15% 12%,rgba(217,164,162,.22),transparent 28%),radial-gradient(circle at 88% 65%,rgba(230,154,120,.17),transparent 24%);z-index:-1}.hero h1{display:flex;align-items:center;justify-content:center;gap:clamp(.6rem,2vw,1.4rem);margin:.2rem 0 .6rem;font:400 clamp(4rem,12vw,9rem)/.85 var(--serif);letter-spacing:-.055em}.hero h1 small{font:400 clamp(2rem,5vw,4rem) var(--script);color:var(--salmon)}.hero-date{font-size:.75rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase}.hero-photo{width:min(430px,80vw);aspect-ratio:4/3;margin:2rem auto;border:1px solid rgba(123,35,53,.14);box-shadow:0 22px 60px rgba(88,49,45,.12);transform:rotate(-1.2deg)}.hero-photo--placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(235,201,191,.55)),repeating-linear-gradient(45deg,transparent 0 12px,rgba(123,35,53,.025) 12px 13px);color:var(--wine);font:400 2rem/1.1 var(--serif)}.hero-photo small{margin-top:1rem;font:500 .58rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.hero-copy{max-width:660px;margin:0 auto 1.7rem;font:400 clamp(1.25rem,3vw,1.7rem)/1.5 var(--serif)}.text-link{color:var(--wine);font-size:.7rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;text-decoration:none}.botanical--top{position:absolute;top:6%;right:-2rem;width:200px;height:300px;border-left:1px solid rgba(123,35,53,.25);border-radius:50%;transform:rotate(35deg)}.botanical--top::before,.botanical--top::after{content:"";position:absolute;width:80px;height:34px;border:1px solid rgba(123,35,53,.23);border-radius:100% 0 100% 0}.botanical--top::before{left:-15px;top:70px;transform:rotate(22deg)}.botanical--top::after{left:30px;top:150px;transform:rotate(-42deg)}
.intro{text-align:center}.intro-script,.closing-script{margin:0;color:var(--salmon);font:400 clamp(2.6rem,7vw,5rem)/1 var(--script)}.intro h2{max-width:780px;margin:1.2rem auto}.stem-divider{position:relative;width:1px;height:110px;margin:3rem auto 0;background:linear-gradient(var(--wine),transparent)}.stem-divider span{position:absolute;top:30px;left:-20px;width:40px;height:18px;border:1px solid rgba(123,35,53,.35);border-radius:100% 0 100% 0;transform:rotate(-28deg)}.countdown-wrap{padding:0 1rem}.countdown-card{max-width:1200px;margin:auto;padding:7rem 2rem;text-align:center;color:#fff;background:linear-gradient(145deg,#5b1426,#7b2335);border-radius:4px}.countdown-card h2{margin-bottom:3.5rem}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;max-width:760px;margin:auto}.countdown div{position:relative}.countdown div+div::before{content:"";position:absolute;left:-.5rem;top:8%;height:52%;border-left:1px solid rgba(255,255,255,.25)}.countdown strong{display:block;font:400 clamp(2.2rem,7vw,5.5rem)/1 var(--serif)}.countdown span{display:block;margin-top:.8rem;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:#f4cfc4}.where{text-align:center}.where h2{margin-bottom:.3rem}.where-place{color:var(--salmon);font:400 2.5rem var(--script)}.where-date{margin:2rem 0;font-family:var(--serif);font-size:1.2rem;line-height:1.8}.where-date strong{font-size:1.55rem;font-weight:400}.where .pending-note{margin-bottom:2rem}.timing{max-width:900px}.timing>h2,.timing>.eyebrow,.timing>.section-number,.timing>.pending-note{text-align:center}.timeline{list-style:none;margin:4rem auto 0;padding:0;max-width:660px}.timeline li{position:relative;display:grid;grid-template-columns:72px 1fr;gap:1.5rem;padding-bottom:3.5rem}.timeline li:not(:last-child)::after{content:"";position:absolute;left:35px;top:62px;bottom:10px;border-left:1px solid var(--line)}.timeline-icon{width:72px;height:72px;display:grid;place-items:center;border:1px solid var(--rose);border-radius:50%;color:var(--wine);font-size:1.4rem}.timeline time{font-size:.65rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--salmon)}.timeline h3{margin:.3rem 0;font:400 2rem var(--serif)}.timeline p{color:var(--muted)}
.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.detail-card{position:relative;min-height:440px;padding:4rem clamp(2rem,5vw,4.5rem);display:flex;flex-direction:column;align-items:flex-start;justify-content:center;overflow:hidden}.detail-card::after{content:"";position:absolute;right:-60px;bottom:-90px;width:220px;height:330px;border:1px solid rgba(123,35,53,.15);border-radius:50%;transform:rotate(35deg)}.detail-card--rose{background:#edd7d2}.detail-card--apricot{background:#f0d5c2}.detail-card__index{position:absolute;top:2rem;right:2rem;font:400 3rem var(--serif);color:rgba(123,35,53,.2)}.detail-card h2{font-size:clamp(2.5rem,5vw,4rem)}.detail-card p:not(.eyebrow){max-width:38ch}.status-pill{display:inline-block;margin-top:1.3rem;padding:.5rem .8rem;border:1px solid rgba(123,35,53,.3);border-radius:999px;font-size:.6rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.rsvp-section{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(360px,1.25fr);gap:clamp(2rem,7vw,8rem);align-items:start}.rsvp-heading{position:sticky;top:4rem}.rsvp-heading>p:last-child{max-width:38ch;color:var(--muted)}.rsvp-form{padding:clamp(1.5rem,4vw,3rem)!important;background:var(--paper)!important;border:1px solid var(--line)!important;box-shadow:0 18px 50px rgba(83,49,46,.07)!important;border-radius:0!important}.rsvp-form__label{color:var(--ink)!important;font-family:var(--sans)!important}.rsvp-form__input,.rsvp-form__textarea{border-color:rgba(123,35,53,.25)!important;border-radius:0!important;background:#fffdfa!important}.rsvp-form__submit{width:100%!important;border-radius:999px!important;background:var(--wine)!important;border-color:var(--wine)!important;letter-spacing:.12em!important;text-transform:uppercase}.rsvp-form__radios--stack{display:flex;flex-wrap:wrap;gap:.55rem}.field-note{margin:.65rem 0 0;font-size:.72rem;color:var(--muted)}.closing{text-align:center;padding-top:9rem;padding-bottom:9rem;background:radial-gradient(circle at 50% 60%,rgba(217,164,162,.18),transparent 35%)}.closing h2{max-width:760px;margin:1rem auto 3rem}.closing-names{margin:0;font:400 clamp(2.5rem,7vw,5rem) var(--serif)}.closing-names span{color:var(--salmon);font-family:var(--script)}.closing-date{font-size:.7rem;letter-spacing:.3em}footer{padding:1.4rem;text-align:center;border-top:1px solid var(--line)}footer a{color:var(--muted);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.is-visible{opacity:1;transform:none}.success-modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:1rem;background:rgba(57,31,30,.65);backdrop-filter:blur(8px)}.success-modal[hidden]{display:none}.success-modal__card{width:min(520px,100%);padding:3rem;text-align:center;background:var(--paper)}.success-modal__card h2{font-size:2.5rem}.success-modal__card .closing-script{font-size:3.5rem}
@media(max-width:760px){.section-shell{padding:5rem .35rem}.hero{padding-top:5rem;padding-bottom:5rem}.hero h1{flex-direction:column;gap:0}.hero h1 small{margin:-.3rem 0}.countdown-card{padding:5rem 1rem}.countdown{gap:.2rem}.countdown div+div::before{left:-.1rem}.countdown strong{font-size:clamp(1.9rem,11vw,3rem)}.details-grid,.rsvp-section{grid-template-columns:1fr}.detail-card{min-height:390px}.rsvp-heading{position:static;text-align:center}.rsvp-section{gap:2rem}.timeline li{grid-template-columns:58px 1fr;gap:1rem}.timeline-icon{width:58px;height:58px}.timeline li:not(:last-child)::after{left:28px;top:54px}.botanical--top{right:-6rem}.rsvp-form__name-row{grid-template-columns:1fr!important}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.envelope__flap,.envelope__letter,.envelope-intro,.reveal{transition:none}.reveal{opacity:1;transform:none}}
