:root{--wine:#642637;--wine-dark:#401724;--ivory:#f8f3e9;--paper:#fffaf1;--gold:#b59460;--ink:#452d31;--muted:#8b7771;--line:#d9cab3;--serif:'Cormorant Garamond',Georgia,serif;--display:'Italiana',Georgia,serif;--names:'Allura',cursive;--sans:'Manrope',Arial,sans-serif;--script:'Great Vibes',cursive}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--serif);font-size:20px}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.18;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='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%238a7254' opacity='.18' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}a{color:inherit;text-underline-offset:5px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--display);font-weight:400}.cover h1[data-names],.hero h1[data-names]{font-family:Allura,cursive;font-weight:400;letter-spacing:.8px;font-feature-settings:"liga" 1,"calt" 1}.letter span[data-names],.main-footer>p[data-names]{font-family:Allura,cursive;font-weight:400;letter-spacing:.5px;font-feature-settings:"liga" 1,"calt" 1}h1 em{font-weight:400;color:var(--gold)}h2{font-size:clamp(40px,5vw,64px);line-height:1.08;letter-spacing:.25px}h2 i{color:var(--wine);font-weight:400}h3{font-size:29px}p{line-height:1.5}.eyebrow{font:500 10px/1.6 var(--sans);letter-spacing:2.4px;text-transform:uppercase}.cover{min-height:100svh;display:flex;flex-direction:column;align-items:center;position:relative;overflow:hidden;background:radial-gradient(ellipse at 50% 80%,#e7d8c1 0,transparent 52%),var(--ivory);transition:opacity .6s,transform .6s}.cover-top,.cover-bottom{width:100%;display:flex;justify-content:space-between;gap:18px;padding:25px 5%;font:500 9px/1.5 var(--sans);letter-spacing:2px}.cover-top{border-bottom:1px solid #d6c6ab77}.cover-copy{text-align:center;padding:32px 20px 0;z-index:3}.cover-copy .eyebrow{color:var(--wine);margin-bottom:15px}.cover h1{font-size:clamp(62px,7vw,86px);line-height:1.08;letter-spacing:.35px;margin-bottom:14px}.intro-line{font-size:20px;color:var(--muted);margin-bottom:0;line-height:1.3}.envelope-wrap{width:min(460px,94vw);margin:-20px auto -8px;perspective:1400px}.envelope{aspect-ratio:1280/1216;position:relative;filter:drop-shadow(0 24px 25px #40172420);isolation:isolate}.envelope-body{position:absolute;width:100%;height:100%;inset:0;object-fit:fill;clip-path:polygon(0 44.5%,100% 44.5%,100% 100%,0 100%);z-index:3}.flap{position:absolute;top:0;left:0;width:100%;height:44.7%;transform-origin:50% 100%;transform-style:preserve-3d;transform:rotateX(-180deg);transition:transform 1.45s cubic-bezier(.4,0,.2,1);z-index:4}.flap-inner,.flap-outside{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}.flap-inner img{position:absolute;top:0;width:100%;height:auto}.flap-outside{transform:rotateX(180deg);padding:0 9.7%;}.flap-outside svg{width:100%;height:100%;display:block}.seal{position:absolute;left:50%;top:84%;transform:translate(-50%,-50%);width:69px;height:69px;border-radius:48% 52% 45% 54%;background:radial-gradient(circle at 32% 20%,#a25a69,#70293c 57%,#491827);border:3px solid #8a4051;box-shadow:inset 0 0 0 3px #5a2032,inset 0 0 0 4px #ba7a7555,0 4px 6px #35101d55;z-index:7;transition:opacity .35s,transform .5s}.seal span{font:30px var(--script);color:#e7d3ad;letter-spacing:-5px;padding-right:6px}.seal:hover{transform:translate(-50%,-50%) scale(1.07)}.letter{position:absolute;left:20%;top:54%;width:60%;height:35%;padding:18px 8px;text-align:center;background:var(--paper);border:1px solid var(--line);box-shadow:0 0 0 7px var(--paper),0 4px 20px #40172422;z-index:2;transition:transform 1.2s .7s cubic-bezier(.22,1,.36,1)}.letter img{width:50px;height:48px;object-fit:contain}.letter p{font-size:14px;margin:5px 0}.letter span{display:block;font:29px var(--names);letter-spacing:.15px}.letter small{font:9px var(--sans);letter-spacing:1px}.is-open .flap{transform:rotateX(0);z-index:1}.is-open .seal{opacity:0;pointer-events:none;transform:translate(-50%,-50%) scale(.6)}.is-open .letter{transform:translateY(-72%)}.cover-action{min-height:70px;text-align:center;z-index:5;padding:10px 15px}.cover-action p{font-size:15px;font-style:italic;color:var(--muted);margin-bottom:10px}.text-link{border:0;background:none;font:500 11px/1.8 var(--sans);letter-spacing:.8px;text-decoration:underline;text-underline-offset:5px;padding:5px 0}.cover-action .text-link{color:var(--wine);font-size:13px}.text-link span{display:inline-block;margin-left:15px}.hidden{visibility:hidden;opacity:0}.cover-bottom{margin-top:auto;padding-top:15px;padding-bottom:20px;color:var(--muted)}.demo-note{letter-spacing:1px;font-size:8px}.leaving{opacity:0;transform:translateY(-20px)}.navigation{height:76px;position:sticky;top:0;z-index:15;background:#f8f3e9f2;backdrop-filter:blur(15px);border-bottom:1px solid #d9cab388;display:flex;align-items:center;justify-content:space-between;padding:0 5%;gap:24px}.brand{font:35px var(--display);text-decoration:none;white-space:nowrap}.brand span{font-style:italic;color:var(--gold);font-size:24px;margin:0 -3px}.navigation>div{display:flex;gap:30px;align-items:center}.navigation>div>a{font:500 11px var(--sans);text-decoration:none}.navigation>div>a:hover{color:var(--wine);text-decoration:underline}.nav-rsvp{padding-bottom:6px;border-bottom:1px solid var(--gold)}.replay{background:none;border:0;font-size:27px;color:var(--wine)}.hero{min-height:750px;min-height:calc(100svh - 76px);position:relative;display:grid;place-items:center;padding:65px 20px 80px;background:linear-gradient(#f8f3e9e8,#f8f3e9f9),url('assets/envelope.png') center 25%/1000px auto no-repeat;overflow:hidden}.hero-inner{text-align:center;z-index:2}.hero-monogram{height:85px;width:95px;object-fit:contain;margin:18px auto 15px}.hero h1{font-size:clamp(70px,8vw,112px);letter-spacing:.25px;line-height:1;margin-bottom:24px}.hero-quote{font-size:26px;line-height:1.25;margin-bottom:30px}.hero-quote i{color:var(--muted)}.hero-date{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:32px}.hero-date>span{font:70px/1 var(--display);padding-right:14px;border-right:1px solid var(--gold)}.hero-date>div{font:500 10px/1.8 var(--sans);letter-spacing:2px;text-align:left}.hero-date strong{font-size:18px;font-weight:400;letter-spacing:4px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--wine);border:1px solid var(--wine);color:var(--paper);padding:17px 23px;font:500 11px/1.4 var(--sans);letter-spacing:.5px;text-decoration:none;transition:background .25s,transform .25s}.button:hover{background:var(--wine-dark);transform:translateY(-2px)}.button span{font-size:17px}.hero-side{position:absolute;left:26px;top:50%;writing-mode:vertical-rl;transform:rotate(180deg);font:9px var(--sans);letter-spacing:3px;color:var(--muted)}.hero-bottom{position:absolute;bottom:26px;font:9px var(--sans);letter-spacing:3px;color:var(--muted)}.corner{position:absolute;width:160px;height:160px;border:1px solid #b5946055}.corner-one{top:25px;left:25px;border-right:0;border-bottom:0}.corner-two{bottom:25px;right:25px;border-top:0;border-left:0}.section-pad{padding:105px max(24px,calc((100% - 1080px)/2))}.invitation-note{text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.invitation-note h2{font-size:clamp(33px,4vw,49px);line-height:1.2;margin-bottom:25px}.invitation-note>p:not(.eyebrow){max-width:580px;margin:0 auto;font-size:21px;color:var(--muted)}.ornament{display:block;font-size:44px;color:var(--gold);margin-top:25px}.section-heading{text-align:center;margin-bottom:50px}.section-heading h2{margin-bottom:16px}.section-heading>p:last-child{color:var(--muted);font-size:19px}.venue-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px}.venue{text-align:center;padding:30px 20px 45px;border:1px solid var(--line);border-radius:190px 190px 0 0;background:#fffaf155}.venue-illustration{width:200px;height:140px;color:var(--wine);margin:0 auto 20px}.venue-illustration svg{width:100%;height:100%}.venue h3{margin-bottom:13px}.venue-time{font-size:42px;color:var(--wine);line-height:1;margin:0 0 20px}.venue-address{font-size:20px}.venue-address small{font:10px var(--sans);color:var(--muted)}.map-link{font:500 11px var(--sans);letter-spacing:1px}.schedule{background:var(--wine);color:var(--paper)}.schedule h2 i{color:#d8be93}.schedule .eyebrow{color:#d5bc9a}.timeline{list-style:none;padding:0;max-width:620px;margin:0 auto}.timeline li{display:grid;grid-template-columns:85px 30px 1fr;gap:20px;position:relative;padding:0 0 37px}.timeline time{font:33px/1.15 var(--serif);color:#e6d2ad;text-align:right}.timeline-dot{width:8px;height:8px;border:1px solid #d5bc9a;transform:rotate(45deg);margin:14px auto 0}.timeline li:not(:last-child):after{content:'';position:absolute;left:119px;top:33px;bottom:0;width:1px;background:#c7a77f55}.timeline h3{font-size:25px;margin:0 0 6px}.timeline p{font-size:17px;color:#dcc9c4;margin-bottom:0}.schedule-end{font-family:var(--script);font-size:36px;text-align:center;margin:25px 0 0;color:#eadbc3}.fine-print{text-align:center;font:9px/1.8 var(--sans);opacity:.65;margin:22px 0 0}.countdown-section{text-align:center;border-bottom:1px solid var(--line)}.countdown{display:flex;align-items:center;justify-content:center;gap:35px;margin-top:30px}.countdown>div>span{font-size:clamp(52px,7vw,85px);font-weight:400;line-height:1;color:var(--wine)}.countdown small{display:block;font:9px var(--sans);letter-spacing:2px;margin-top:12px;color:var(--muted)}.countdown-divider{font-size:40px;color:var(--gold);padding-bottom:22px}.rsvp{display:grid;grid-template-columns:1fr 1fr;gap:85px;align-items:center}.rsvp-intro h2{font-size:72px}.rsvp-intro>p:not(.eyebrow){max-width:300px;color:var(--muted)}.rsvp-panel{border:1px solid var(--line);padding:30px;background:#fffaf180}.demo-label{font:8px var(--sans);letter-spacing:2px;color:var(--muted);margin-bottom:25px}label,legend{font:500 11px var(--sans);margin:0 0 10px;display:block}label span{font-weight:400;color:var(--muted)}input:not([type=radio]),select,textarea{border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;padding:10px 0 13px;width:100%;font:20px var(--serif);color:var(--ink);margin-bottom:25px}input::placeholder,textarea::placeholder{color:#a18b83}fieldset{padding:0;border:0;margin:0 0 25px}.radio-option{display:flex;align-items:center;gap:10px;font:18px var(--serif);margin-top:12px}.radio-option input{accent-color:var(--wine);width:16px;height:16px}.radio-option span{color:var(--ink)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px}.rsvp-panel .button{width:100%}.form-disclosure{font:10px/1.7 var(--sans);color:var(--muted);margin:16px 0 0}.success-mark{font-size:45px;color:var(--gold);display:block;margin-bottom:20px}#rsvpSuccess{padding:45px 0;text-align:center}#rsvpSuccess h3{font-size:34px}#rsvpSuccess p{font-size:19px;color:var(--muted)}.main-footer{border-top:1px solid var(--line);text-align:center;padding:45px 20px}.main-footer>p{font-size:36px;margin-bottom:15px}.main-footer>span{font:9px var(--sans);letter-spacing:2px;display:block;color:var(--muted)}.main-footer button{margin-top:25px;font-size:9px;color:var(--muted)}.reveal{opacity:0;transform:translateY(22px);transition:opacity .85s,transform .85s}.reveal.visible{opacity:1;transform:none}dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);width:min(520px,calc(100% - 28px));max-height:90svh;padding:32px}dialog::backdrop{background:#30131ed0;backdrop-filter:blur(5px)}.dialog-heading{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.dialog-heading h2{font-size:40px}.dialog-heading .eyebrow{font-size:8px}.close-dialog{border:0;background:none;font-size:32px;line-height:1}dialog .button{width:100%;margin-top:24px}#resetSettings{margin-top:15px}body.modal-open{overflow:hidden}[hidden]{display:none!important}@media(min-width:1000px){.cover-copy{padding-top:38px}.envelope-wrap{width:440px;margin-top:-35px;margin-bottom:-15px}.cover h1{font-size:72px}.cover-action{padding-top:0}.intro-line{font-size:20px}}@media(max-width:600px){.cover-top{font-size:7px;letter-spacing:1.4px;padding:18px 6%}.cover-copy{padding-top:32px}.cover h1{font-size:59px}.cover .eyebrow{font-size:9px}.intro-line{font-size:18px}.envelope-wrap{width:min(400px,100vw);margin-top:-15px;margin-bottom:5px}.cover-action p{font-size:14px}.cover-bottom{font-size:7px;padding:15px 6%;letter-spacing:1px}.seal{width:59px;height:59px}.seal span{font-size:27px}.letter{padding:10px 5px}.letter img{height:38px;width:40px}.letter p{font-size:12px}.letter span{font-size:24px}.letter small{font-size:8px}.navigation{height:65px;padding:0 20px;gap:12px}.brand{font-size:28px}.navigation>div{gap:18px}.navigation>div>a{font-size:9px}.replay{font-size:23px}.hero{min-height:calc(100svh - 65px);padding:60px 25px 80px;background-size:850px auto}.hero h1{font-size:68px;letter-spacing:.4px}.hero .eyebrow{font-size:8px;letter-spacing:1.7px}.hero-monogram{height:75px}.hero-side{display:none}.hero-quote{font-size:25px}.corner{width:70px;height:70px}.corner-one{top:16px;left:16px}.corner-two{bottom:16px;right:16px}.section-pad{padding:75px 25px}.invitation-note .eyebrow{font-size:8px}.invitation-note h2{font-size:34px;letter-spacing:.1px}.invitation-note>p:not(.eyebrow){font-size:19px}.venue-grid{grid-template-columns:1fr;gap:30px}.venue{padding-top:25px}.section-heading{margin-bottom:35px}.timeline li{grid-template-columns:65px 20px 1fr;gap:12px;padding-bottom:32px}.timeline li:not(:last-child):after{left:86px}.timeline time{font-size:27px}.timeline h3{font-size:22px}.timeline p{font-size:16px}.schedule-end{font-size:31px}.countdown{gap:20px}.rsvp{grid-template-columns:1fr;gap:30px}.rsvp-intro{text-align:center}.rsvp-intro h2{font-size:60px}.rsvp-intro>p:not(.eyebrow){margin:auto}.rsvp-intro .ornament{display:none}.rsvp-panel{padding:25px}.main-footer{padding:35px 20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important}.reveal{opacity:1;transform:none}}

/* Keep the opened flap clear of the title and the hint below the envelope. */
.envelope-wrap{margin-top:10px;margin-bottom:20px}.cover-action{padding-top:12px}@media(min-width:1000px){.envelope-wrap{width:500px;margin-top:0;margin-bottom:20px}}@media(max-width:600px){.envelope-wrap{margin-top:12px;margin-bottom:16px}}
.is-open .letter{transform:translateY(-135%)}
