@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Great+Vibes&family=Manrope:wght@400;500;600&display=swap');

:root{--green:#20372b;--deep:#15261d;--sage:#b8bea6;--ivory:#f3f0e6;--paper:#e9e5d8;--ink:#29392d;--muted:#59614f;--line:#babca8;--script:'Great Vibes','Brush Script MT',cursive;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--deep);color:var(--ivory);font-family:var(--serif);font-size:18px;line-height:1.5}body.is-closed{overflow:hidden}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #a0ac77;outline-offset:5px}button svg{height:18px;width:18px;fill:none;stroke:currentColor;stroke-width:1.3}button,a{touch-action:manipulation}[hidden]{display:none!important}p,h1,h2,h3{margin:0}button{color:inherit}::selection{background:#aab68b;color:var(--deep)}.skip-link{position:fixed;top:-80px;left:20px;z-index:100;background:var(--ivory);color:var(--green);padding:12px}.skip-link:focus{top:20px}.preview-label{position:fixed;top:18px;left:22px;z-index:15;font:10px var(--sans);letter-spacing:.025em;background:var(--ivory);color:var(--green);padding:7px 10px;border:1px solid #bfc1ae}.eyebrow{font:10px var(--sans);letter-spacing:.22em;text-transform:uppercase}.script{font-family:var(--script);font-weight:400}.cover{position:relative;height:100svh;min-height:720px;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:68px 24px 30px;overflow:hidden;background:var(--deep)}.cover::before,.portrait-panel::before{content:'';position:absolute;inset:0;z-index:-2;background:url('assets/curtain.png') center 48%/cover no-repeat}.cover::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,25,17,.25),transparent 40%,transparent 60%,rgba(12,25,17,.25)),linear-gradient(0deg,rgba(10,22,15,.6),transparent 28%,rgba(8,18,12,.06) 75%)}.cover-heading{text-align:center}.cover-heading h1{font-family:var(--script);font-size:clamp(64px,7.6vw,112px);font-weight:400;line-height:1.22;margin:18px 0 9px;text-shadow:0 2px 20px #102016}.cover-heading h1 span{font-family:var(--serif);font-size:.64em;font-style:italic;padding:0 .13em}.cover-date{font-family:var(--sans);font-size:11px;letter-spacing:.22em}.cover-date span{padding:0 11px}.envelope{position:relative;display:block;width:350px;height:226px;flex-shrink:0;margin:66px 0 38px;transform:rotate(-6deg);border:0;background:none;filter:drop-shadow(0 20px 25px #07130eb3);isolation:isolate;transition:transform .45s}.envelope:hover{transform:rotate(-3deg) translateY(-7px)}.envelope-back{position:absolute;inset:0;background:#ddd8c8;border-radius:3px;z-index:0}.letter{position:absolute;inset:-41px 19px 13px;z-index:1;background:var(--ivory);color:var(--green);padding:10px;transform:rotate(3deg);box-shadow:0 1px 10px #10271920;transition:transform .6s}.letter-border{display:flex;align-items:center;flex-direction:column;justify-content:flex-start;height:100%;padding:15px 6px;border:1px solid #b4b6a3;outline:1px solid #c7c7b9;outline-offset:3px}.letter-caption{font:8px var(--sans);letter-spacing:.1em}.letter-monogram{font-family:var(--serif);font-size:40px;line-height:1.25;margin-top:5px}.letter-monogram i{font-size:24px}.envelope-front{position:absolute;inset:0;background:linear-gradient(146deg,#f2eee2,#d8d2bf);clip-path:polygon(0 0,50% 47%,100% 0,100% 100%,0 100%);z-index:4;border-radius:3px}.envelope-front::after{content:'';position:absolute;inset:0;background:linear-gradient(33deg,transparent 49.7%,#c9c4b2 50%,transparent 50.4%) left bottom/50% 100% no-repeat,linear-gradient(-33deg,transparent 49.7%,#c9c4b2 50%,transparent 50.4%) right bottom/50% 100% no-repeat}.envelope-flap{position:absolute;inset:0;z-index:5;background:linear-gradient(170deg,#faf7ee,#ded9c9);clip-path:polygon(0 0,100% 0,52% 58%,49% 58%);transform-origin:top center;transition:transform .7s}.wax-seal{position:absolute;z-index:6;left:calc(50% - 27px);top:calc(50% - 18px);width:54px;height:54px;display:grid;place-items:center;border-radius:46% 53% 44% 50%;background:linear-gradient(130deg,#5f7250,#233c2c 66%);box-shadow:1px 3px 5px #091a1c50,inset 1px 1px 3px #8b9c77,inset -2px -2px 3px #112d1e;transition:opacity .3s}.wax-seal span{font-family:var(--script);font-size:23px;padding-top:3px;border:1px solid #9cae7e73;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;color:#e0e5cc;text-shadow:1px 1px #112416}.envelope-caption{position:absolute;z-index:7;bottom:24px;left:0;right:0;text-align:center;font-family:var(--script);font-size:18px;color:#43513b;transform:rotate(0deg)}.cover.is-opening .envelope{transform:rotate(0deg) translateY(15px)}.cover.is-opening .envelope-flap{transform:rotateX(180deg);z-index:0}.cover.is-opening .wax-seal{opacity:0}.cover.is-opening .letter{transform:rotate(0) translateY(-80px)}.cover.is-opening{animation:coverExit .65s .65s both}.cover-guest{text-align:center}.cover-guest>p:first-child{font-size:15px}.cover-guest h2{font-family:var(--serif);font-size:27px;font-weight:500;margin:5px 0 19px}.button{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:46px;padding:13px 25px;border:1px solid transparent;border-radius:3px;text-decoration:none;font:11px var(--sans);letter-spacing:.025em;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button-ivory{background:var(--ivory);color:var(--green);border-color:var(--ivory)}.button-ivory:hover{background:#dedfcf}.button-green{background:var(--green);color:var(--ivory);border-color:var(--green)}.button-green:hover{background:#34513b}.button-outline{background:transparent;color:var(--green);border-color:#9ba38d}.guest-note{font-family:var(--serif);font-style:italic;font-size:13px;margin-top:16px;color:#e1e2d2}.invitation{display:grid;grid-template-columns:46% 54%;align-items:start}.portrait-panel{position:sticky;top:0;height:100svh;isolation:isolate;display:flex;align-items:center;justify-content:center;text-align:center}.portrait-panel::after{content:'';position:absolute;inset:0;z-index:-1;background:#12251c30}.portrait-heading .script{font-size:clamp(75px,7.3vw,120px);line-height:.95;margin:26px 0 42px}.portrait-heading .script span{font-family:var(--serif);font-size:.55em;font-style:italic}.portrait-footnote{font:24px var(--script);position:absolute;bottom:55px}.invitation-pages{min-width:0;background:var(--ivory);color:var(--ink)}.inside-header{display:flex;align-items:center;justify-content:space-between;padding:23px 38px;border-bottom:1px solid #b5baa15c;background:var(--ivory)}.inside-header>span{font-size:24px;line-height:1}.inside-header i{font-size:17px}.text-button{background:none;border:0;padding:10px 0 10px 15px;font:10px var(--sans);min-height:44px;color:var(--green)}.text-button span{margin-left:8px}.paper{background:var(--ivory);color:var(--ink)}.opening{padding:60px 35px 47px;text-align:center}.lace-oval{position:relative;max-width:365px;min-height:445px;margin:38px auto 30px;border:1px solid #949d7b;border-radius:50%;padding:14px;outline:1px dashed #8b9776;outline-offset:7px;box-shadow:0 0 0 12px var(--ivory),0 0 0 13px #b3b89f,0 0 0 17px var(--ivory),0 0 0 18px #bfc2ad}.lace-oval::before{content:'';position:absolute;inset:6px;border:3px dotted #a7af90;border-radius:50%;pointer-events:none}.oval-content{display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #bbc0a7;border-radius:50%;padding:26px 32px;min-height:415px}.botanical{font-family:Georgia,serif;font-size:38px;line-height:1;color:#788660}.small-script{font-size:38px;line-height:1.2;margin:19px 0 18px}.oval-content blockquote{margin:0;font-size:16px;line-height:1.65}.verse-source{font:9px var(--sans);margin-top:24px}.opening-note{font-size:17px;font-style:italic;line-height:1.6;margin-top:40px}.scroll-link{display:inline-flex;gap:16px;align-items:center;min-height:44px;font:10px var(--sans);margin-top:23px;text-decoration:none}.scroll-link span{font-size:17px}.green-section{background:var(--green);color:var(--ivory);position:relative;isolation:isolate}.green-section::before{content:'';position:absolute;inset:0;z-index:-1;opacity:.09;background:url('assets/curtain.png') center/cover}.couple{padding:65px 42px 40px}.bismillah{font-size:29px;text-align:center;margin-bottom:25px}.section-intro{font-size:16px;text-align:center;line-height:1.7}.person{display:flex;align-items:center;gap:34px;margin-top:50px}.cameo{width:165px;height:216px;flex-shrink:0;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:48% 48% 47% 47%;border:1px solid #b8bea6;outline:1px solid #82916f;outline-offset:6px;background:#304635;box-shadow:0 0 0 11px #20372b,0 0 0 12px #82916f}.cameo>span{font:70px var(--serif);line-height:1.1;color:#cad1b6}.cameo small{font:8px var(--sans);margin-top:12px;color:#d4d9c8}.person-role{font-size:33px;color:#d9dec8}.person-copy h2{font-weight:400;font-size:40px;line-height:1.2;margin:4px 0 12px}.person-copy>p:last-child{font-size:14px;line-height:1.6}.person-copy>p:last-child span{font-size:13px}.couple-ampersand{display:block;font-style:italic;font-size:52px;line-height:.8;text-align:center;margin:35px 0 -10px;color:#cad2b7}.person-groom{flex-direction:row-reverse;text-align:right}.tiny-note{font:9px var(--sans);color:#d3d8c6;text-align:center;margin-top:45px}.celebration{padding:66px 35px 65px;text-align:center}.section-title{font-size:40px;line-height:1.1;font-weight:500;margin:17px 0 24px}.date-display{display:flex;align-items:center;justify-content:center;gap:22px;margin:22px 0 5px}.date-display>span{font:11px var(--sans);line-height:1.8}.date-display>span:first-child{padding-right:23px;border-right:1px solid var(--line)}.date-display>span:last-child{padding-left:23px;border-left:1px solid var(--line);text-align:left}.date-display strong{font-weight:400;font-size:89px;line-height:1.1}.sample-caption{font:9px var(--sans);color:var(--muted)}.countdown{display:flex;justify-content:center;align-items:center;gap:19px;margin:35px auto 0;padding:22px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:370px}.countdown>div{min-width:38px;display:flex;flex-direction:column}.countdown strong{font-size:31px;line-height:1.2;font-weight:500;font-variant-numeric:tabular-nums}.countdown div span{font:8px var(--sans);margin-top:7px}.countdown-divider{font-size:18px;margin-top:-17px}.event-details{display:flex;justify-content:center;align-items:center;gap:27px;margin:35px 0 26px}.event-details h3{font-size:36px;line-height:1.5}.event-details p{font:10px var(--sans)}.event-divider{color:#798361;font-size:25px}.venue-drawing{max-width:280px;width:90%;height:110px;color:#657552;margin-bottom:15px}.venue h3{font-weight:500;font-size:22px}.venue>p{font-size:14px;margin:6px 0 24px;color:var(--muted)}.event-actions{display:flex;justify-content:center;gap:10px}.moments{padding:62px 38px 52px;text-align:center}.moments .section-title{font-size:39px}.photo-layout{position:relative;display:flex;align-items:flex-end;justify-content:center;margin:42px 0 35px;padding:0 10px 10px}.photo-placeholder{border:1px solid #a8b397;outline:1px solid #7e9070;outline-offset:5px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#344a38}.photo-tall{height:295px;flex:1;max-width:270px;transform:rotate(-5deg)}.photo-tall .script{font-size:40px;margin-bottom:17px;color:#dbe0ca}.photo-placeholder>span:last-child{font:9px var(--sans);color:#e0e3d4}.photo-short{height:185px;width:44%;margin-left:-30px;transform:rotate(6deg);margin-bottom:-5px;background:#e6e7d9;color:var(--green)}.photo-short>span:last-child{color:var(--green);margin-top:17px}.moments>.section-intro{font-size:14px;margin-top:40px}.rsvp{padding:64px 40px 55px}.rsvp>.eyebrow,.rsvp>.section-title{text-align:center}.rsvp>.section-title{font-size:40px}.demo-notice{font:10px/1.6 var(--sans);color:var(--muted);text-align:center;margin:18px 0 27px}.rsvp form{max-width:420px;margin:30px auto}.form-field{margin-bottom:21px}.form-field label,legend{display:block;font:11px var(--sans);margin-bottom:10px}.form-field label span{color:var(--muted);font-size:10px}input,textarea,select{width:100%;border:1px solid #adb39c;border-radius:2px;padding:13px 14px;background:#faf8f0;color:var(--green);font:12px/1.6 var(--sans);min-height:46px}textarea{resize:vertical;min-height:100px}input::placeholder,textarea::placeholder{color:#686f5e}fieldset{border:0;padding:0;margin:0 0 21px;min-width:0}legend{padding:0}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.attendance-options label{position:relative;display:flex;align-items:center;cursor:pointer;font:10px var(--sans);padding:13px 9px;border:1px solid #adb39c;border-radius:2px;gap:8px;min-height:47px}.attendance-options input{appearance:auto;accent-color:var(--green);width:14px;height:14px;min-height:0;flex-shrink:0;margin:0}.attendance-options label:has(input:checked){background:#e0e4d4;border-color:var(--green)}.form-message{font:11px/1.6 var(--sans);margin-bottom:12px;min-height:0}.form-message:empty{display:none}.form-message.error{color:#842b1d}.form-message.success{color:var(--green);padding:14px;background:#e2e7d7;border-left:2px solid var(--green)}.form-submit{width:100%}.wishes{border-top:1px solid var(--line);max-width:420px;margin:32px auto 0;padding-top:25px}.wishes h3{font-weight:500;font-size:24px;margin-bottom:12px}#wishes-empty{font-size:14px;color:var(--muted);font-style:italic}.wish{padding:17px 0;border-bottom:1px solid #cbd0bd}.wish h4{font:12px var(--sans);margin:0 0 7px}.wish p{font-size:16px;overflow-wrap:anywhere;white-space:pre-wrap}.wish small{display:block;font:9px var(--sans);margin-top:9px;color:var(--muted)}.closing{text-align:center;padding:65px 25px 45px}.closing>.botanical{color:#b5c49c}.closing h2{font-size:56px;margin:25px 0}.closing>p:not(.script):not(.closing-date){font-size:15px;line-height:1.8}.closing-names{font-size:47px;margin:28px 0 26px}.closing-date{font:9px var(--sans);letter-spacing:.18em;margin-top:30px}.closing>.scroll-link{display:flex;justify-content:center;margin-top:19px}footer{text-align:center;padding:21px 15px 100px;background:var(--deep);color:#d4dac8;font:9px/1.6 var(--sans)}.section-nav{position:fixed;bottom:23px;left:73%;transform:translateX(-50%);z-index:10;display:flex;padding:5px 13px;gap:12px;background:var(--ivory);border:1px solid #a8b494;box-shadow:0 5px 20px #12251b26;border-radius:5px}.section-nav a{display:grid;place-items:center;width:44px;height:44px;color:var(--green);border-radius:3px;transition:background .2s}.section-nav a:hover,.section-nav a.active{background:#dfe5d5}.section-nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.2}.toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%,15px);opacity:0;z-index:30;background:var(--ivory);color:var(--green);border:1px solid var(--line);font:11px/1.5 var(--sans);padding:13px 20px;pointer-events:none;max-width:90%;text-align:center;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog{background:var(--ivory);color:var(--green);border:1px solid #83916f;padding:45px 30px 28px;width:min(440px,calc(100% - 40px));text-align:center;box-shadow:0 20px 60px #0003}dialog::backdrop{background:#0c201bbb;backdrop-filter:blur(4px)}dialog .section-title{font-size:35px}dialog>p:not(.eyebrow):not(.demo-notice){font-size:17px}.dialog-close{position:absolute;right:8px;top:5px;background:none;border:0;font-size:27px;width:44px;height:44px;color:var(--green)}.gift-placeholder{font:12px/1.8 var(--sans);padding:24px 15px;border:1px dashed #a4ae93;margin-top:25px}
.cover{position:fixed;inset:0;z-index:20}
.preview-label{z-index:50}
.curtain-intro{position:fixed;inset:0;z-index:40;display:grid;place-items:center;overflow:hidden;isolation:isolate}
.curtain-wing{position:absolute;top:0;bottom:0;width:52%;background-color:var(--deep);background-image:url('assets/curtain.png');background-size:auto 160%;background-repeat:no-repeat;will-change:transform;transition:transform 1.9s cubic-bezier(.65,0,.25,1)}
.curtain-left{left:0;background-position:left top;border-right:1px solid #0a180f;box-shadow:8px 0 30px #06140d66}
.curtain-right{right:0;background-position:right top;border-left:1px solid #4c614a38;box-shadow:-8px 0 30px #06140d66}
.curtain-prompt{position:relative;text-align:center;color:var(--ivory);padding:70px 24px 45px;max-width:100%;text-shadow:0 2px 16px #0b1e13;transition:opacity .35s,transform .35s}
.curtain-intro.is-opening .curtain-left{transform:translateX(-105%)}
.curtain-intro.is-opening .curtain-right{transform:translateX(105%)}
.curtain-intro.is-opening .curtain-prompt{opacity:0;transform:translateY(-15px)}
.curtain-intro-name{font:400 clamp(76px,8vw,116px)/1.2 var(--script);margin:30px 0 10px}
.curtain-intro-name>span{font:italic .58em var(--serif);padding:0 .12em}
.curtain-intro-date{font:11px var(--sans);letter-spacing:.12em}
.curtain-intro{touch-action:none}
.curtain-open{position:relative;margin-top:30px;min-width:0;min-height:0;padding:5px 10px!important;border-radius:999px;font-size:10px!important;line-height:1.2;letter-spacing:.06em;text-shadow:none}
.curtain-open::after{content:'';position:absolute;inset:-10px -6px}
.cover{touch-action:none}
@media(max-width:760px){.curtain-intro-name{font-size:69px;margin-top:26px}.curtain-intro-date{font-size:10px}}
@media(max-width:360px){.curtain-intro-name{font-size:58px}.curtain-prompt{padding-left:18px;padding-right:18px}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#wishes-list{max-height:340px;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:var(--muted) transparent;scrollbar-gutter:stable;padding-right:12px}
#wishes-list:focus-visible{outline:2px solid var(--green);outline-offset:5px}
#wishes-list .wish{min-height:108px}
@media(max-width:760px){#wishes-list{max-height:324px}#wishes-list .wish{min-height:108px}}
.music-control{position:fixed;top:14px;right:18px;z-index:60}
.music-toggle{display:grid;place-items:center;width:46px;height:46px;padding:10px;background:var(--ivory);color:var(--green);border:1px solid #bfc1ae;border-radius:50%}
.music-toggle svg{width:18px;height:18px;stroke-width:1.5;flex-shrink:0}
.music-pause{display:none}
.music-toggle[aria-pressed=true] .music-play{display:none}
.music-toggle[aria-pressed=true] .music-pause{display:block}
.music-toggle[aria-busy=true]{opacity:.7}
body:not(.is-closed) .music-control{top:auto;bottom:94px}
@media(max-width:760px){.music-control{top:10px;right:13px}}
.envelope,.envelope:hover{transform:rotate(-6deg);transition:none}
.cover:not(.is-unsealing) .envelope{animation:envelope-invitation 5.5s ease-in-out infinite}
@keyframes envelope-invitation{
  0%,55%,100%{transform:translateY(0) rotate(-6deg)}
  18%{transform:translateY(-8px) rotate(-3.8deg)}
  36%{transform:translateY(-3px) rotate(-7deg)}
}
@media(prefers-reduced-motion:reduce){.cover:not(.is-unsealing) .envelope{animation:none}}
.cover.is-unsealing .envelope{transition:none}
.cover.is-unsealing .letter,.cover.is-unsealing .envelope-flap,.cover.is-unsealing .wax-seal{transition:none}
.envelope-flap{backface-visibility:visible}
.invitation.is-entering{position:relative;z-index:30;will-change:transform}
.venue-sketch{display:block;width:100%;height:auto;max-width:470px;margin:28px auto 16px;mix-blend-mode:darken;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.venue .ballroom-name{font:italic 21px var(--serif);margin:4px 0 27px}
.map-link{margin-top:25px}
.envelope-addressee{position:absolute;z-index:7;bottom:16px;left:22px;right:22px;display:flex;align-items:center;flex-direction:column;gap:1px;color:#43513b;pointer-events:none}
.envelope-addressee>span{font:8px var(--sans)}
.envelope-addressee strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;max-width:100%;font:500 22px/1.1 var(--serif)}
.envelope-addressee.long-recipient strong{font-size:15px;line-height:1.05}
.wax-seal>span{padding:0;overflow:hidden}
.wax-seal>span>i{display:block;font:400 17px/1 var(--script);transform:translate(-1px,2px);text-align:center}
.letter-recipient{display:flex;align-items:center;flex-direction:column;gap:5px;margin-top:15px;max-width:100%}
.letter-recipient>span{font:7px var(--sans)}
.letter-recipient strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;max-width:100%;font:500 17px/1.15 var(--serif)}
@media(max-width:760px){.envelope-addressee{bottom:13px;left:18px;right:18px}.envelope-addressee strong{font-size:20px}.envelope-addressee.long-recipient strong{font-size:14px}.letter-recipient{margin-top:12px}.letter-recipient strong{font-size:15px}}
.gift-intro{max-width:420px;margin:0 auto 47px;padding-bottom:43px;border-bottom:1px solid var(--line);text-align:center}
.gift-intro .section-title{font-size:40px}
.gift-intro .gift-placeholder{font-size:11px}
@media(max-width:760px){.gift-intro .section-title{font-size:35px}}
@media(min-width:1500px){.invitation{grid-template-columns:1fr 750px}.section-nav{left:auto;right:375px;transform:translateX(50%)}.cover::before{background-size:100% auto;background-position:center 45%}}
@media(max-width:1050px) and (min-width:761px){.invitation{grid-template-columns:40% 60%}.section-nav{left:70%}.portrait-heading .script{font-size:77px}.person{gap:24px}.cameo{width:139px;height:190px}.couple{padding-left:35px;padding-right:35px}}
@media(max-width:760px){.cover{padding-top:77px;min-height:720px}.preview-label{top:13px;left:13px;font-size:8px;padding:5px 8px}.cover-heading h1{font-size:65px;line-height:1.15;margin:22px 0 18px}.cover-heading h1 span{padding:0 .02em}.eyebrow{font-size:9px;letter-spacing:.18em}.cover-date{font-size:10px}.envelope{width:290px;height:190px;margin:65px 0 45px}.letter{inset:-35px 17px 12px}.letter-border{padding-top:12px}.letter-monogram{font-size:33px}.letter-caption{font-size:7px}.wax-seal{width:48px;height:48px;left:calc(50% - 24px);top:calc(50% - 15px)}.wax-seal span{width:35px;height:35px;font-size:21px}.envelope-caption{font-size:16px;bottom:20px}.cover-guest h2{font-size:25px;margin-bottom:15px}.cover-guest>p:first-child{font-size:14px}.guest-note{font-size:12px;margin-top:13px}.invitation{display:block}.portrait-panel{display:none}.inside-header{padding:32px 24px 14px}.inside-header>span{font-size:26px}.opening{padding:43px 30px 40px}.lace-oval{max-width:320px;min-height:415px;margin-top:36px}.oval-content{padding:23px 23px;min-height:385px}.oval-content blockquote{font-size:15px}.small-script{font-size:35px;margin:15px 0}.verse-source{margin-top:18px}.opening-note{font-size:16px;margin-top:35px}.couple{padding:48px 33px 35px}.bismillah{font-size:26px}.section-intro{font-size:15px}.person{gap:25px;margin-top:40px}.cameo{width:140px;height:191px}.person-copy h2{font-size:35px}.person-role{font-size:29px}.person-copy>p:last-child{font-size:13px}.person-copy>p:last-child span{font-size:11px}.couple-ampersand{font-size:45px;margin-top:32px}.celebration{padding:52px 25px}.section-title{font-size:36px}.event-details{gap:18px}.event-details h3{font-size:32px}.event-details p{font-size:9px}.event-actions .button{padding:13px 16px;font-size:10px}.moments{padding:50px 30px}.moments .section-title{font-size:35px}.rsvp{padding:50px 27px}.rsvp>.section-title{font-size:35px}.attendance-options{gap:8px}.attendance-options label{font-size:9px;padding:12px 8px;gap:6px}.section-nav{bottom:16px;left:50%;gap:12px}.closing h2{font-size:51px}.closing-names{font-size:44px}}
@media(max-width:360px){.cover-heading h1{font-size:56px}.envelope{width:265px;height:177px}.lace-oval{margin-left:2px;margin-right:2px}.oval-content{padding:25px 18px}.oval-content blockquote{font-size:14px}.couple{padding-left:25px;padding-right:25px}.cameo{width:120px;height:170px}.person{gap:20px}.person-copy h2{font-size:31px}.person-copy>p:last-child span{font-size:10px}.section-title,.rsvp>.section-title{font-size:32px}.countdown{gap:13px}.attendance-options{grid-template-columns:1fr}.attendance-options label{font-size:11px}}
@media(max-height:800px){.cover{padding-top:60px;padding-bottom:20px}.cover-heading h1{font-size:clamp(55px,6.4vw,82px);margin:13px 0 10px}.envelope{width:300px;height:194px;margin:55px 0 28px}.cover-guest h2{margin-bottom:14px}.guest-note{margin-top:10px}}
@media(max-width:760px) and (max-height:800px){.cover{min-height:660px;padding-top:60px}.cover-heading h1{font-size:55px;line-height:1.03;max-width:320px}.envelope{width:265px;height:177px;margin:48px 0 22px}.cover-guest h2{font-size:24px;margin-bottom:12px}.cover-guest>p:first-child{font-size:12px}.guest-note{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.cover.is-opening{animation:none}}
.opening{padding:74px 48px 55px;overflow:hidden}
.lace-oval{isolation:isolate;max-width:350px;min-height:0;margin:68px auto 54px;padding:0;border:0;outline:0;box-shadow:none}
.lace-oval::before{content:none}
.oval-lace-backdrop{position:absolute;z-index:-1;inset:-52px -44px;width:calc(100% + 88px);height:calc(100% + 104px);max-width:none;pointer-events:none}
.oval-content{position:relative;min-height:470px;padding:42px 34px;border:7px solid var(--green);background:var(--ivory);box-shadow:0 0 0 3px var(--ivory),0 0 0 4px #748466;border-radius:50%}
.oval-content::before{content:'';position:absolute;inset:7px;border:1px solid #748466;border-radius:50%;pointer-events:none}
.oval-content .botanical{color:var(--green);font-size:30px;line-height:1}
.oval-content .small-script{font-size:36px;margin:17px 0 20px}
.oval-content blockquote{max-width:250px;font-size:16px;line-height:1.65}
.oval-content .verse-source{margin-top:21px;font-size:9px;letter-spacing:.05em}
.opening .opening-note{margin-top:0}
@media(max-width:760px){.opening{padding:56px 36px 46px}.lace-oval{max-width:300px;margin:63px auto 50px}.oval-lace-backdrop{inset:-44px -32px;width:calc(100% + 64px);height:calc(100% + 88px)}.oval-content{min-height:442px;padding:39px 26px;border-width:6px}.oval-content::before{inset:6px}.oval-content .small-script{font-size:32px;margin:15px 0 18px}.oval-content blockquote{font-size:15px;line-height:1.6}.oval-content .verse-source{margin-top:18px}}
@media(max-width:360px){.opening{padding-left:34px;padding-right:34px}.oval-content{padding:38px 22px}.oval-content .small-script{font-size:29px}.oval-content blockquote{font-size:14px}}
.letter{inset:12px 19px 13px;transform:rotate(0deg)}
.letter-border{justify-content:center;padding:12px 6px}
.cover.is-unsealing .letter{transform:rotate(0deg) translateY(0)}
.cover.is-unsealing .cover-heading,.cover.is-unsealing .cover-guest,.cover.is-unsealing .envelope-addressee{opacity:0;transition:opacity .4s}
.rsvp-recipient{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;margin:30px auto 20px;padding:23px 12px;border-block:1px solid var(--line);max-width:420px}
.rsvp-recipient strong{font:500 26px/1.2 var(--serif);overflow-wrap:anywhere}
.rsvp-recipient>span:last-child{font:12px var(--sans);color:var(--muted)}
.field-help{font:10px/1.6 var(--sans);color:var(--muted);margin-top:8px}
.venue-map{display:block;width:100%;height:290px;border:0;margin-top:24px;background:var(--paper)}
#location-dialog{width:min(580px,calc(100% - 32px));max-height:calc(100svh - 32px);overflow-y:auto}
@media(max-width:760px){.letter{inset:10px 17px 12px}.letter-border{padding:10px 6px}.letter-monogram{font-size:32px}.letter-recipient{margin-top:9px}.letter-recipient strong{font-size:14px}.venue-map{height:250px}#location-dialog{padding:40px 18px 24px}}
