:root{--ink:#171510;--panel:#26221b;--gold:#d5b579;--light:#f0e2c6;--muted:#b5aa92;--line:#9d805146;--serif:'Cormorant Garamond',Georgia,serif;--script:'Pinyon Script',cursive;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:26px}body{margin:0;background:#11100d;color:var(--light);font:500 19px/1.55 var(--serif);-webkit-font-smoothing:antialiased}button,input,textarea{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,summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button{color:inherit}img{max-width:100%;display:block}svg{width:24px;height:24px}p,h1,h2,h3{margin:0}h1,h2,h3{font-weight:500}button{border-radius:0}::selection{background:#d5b579;color:#171510}[hidden]{display:none!important}.svg-defs{width:0;height:0;position:absolute;overflow:hidden}.sr-only,.cl-honeypot{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;left:15px;top:15px;z-index:1000;background:var(--gold);color:var(--ink);padding:10px 20px;transform:translateY(-180%)}.skip:focus{transform:none}.lock,.lock body{overflow:hidden}#main{max-width:620px;margin:auto;position:relative;overflow:hidden;background:radial-gradient(ellipse at 60% 8%,#332b1f66,transparent 28%),linear-gradient(110deg,#1e1b15,#181610 60%,#211e17);box-shadow:0 0 140px #0005}#main:focus{outline:none}.s{padding:64px 38px;position:relative;scroll-margin-top:25px}.w{max-width:460px;margin:auto;text-align:center}.k{font-size:11px;letter-spacing:.25em;text-transform:uppercase;line-height:1.9;color:var(--gold);font-weight:600}.ttl{font-family:var(--script);font-size:clamp(41px,8vw,56px);line-height:1.22;color:var(--gold);margin:8px -8px 32px;font-weight:400}.ttl em{font:inherit}.tx{font-size:20px;line-height:1.7;color:#d0c5ae;max-width:410px;margin:auto;text-wrap:pretty}.signature{display:block;font:52px/1.2 var(--script);color:var(--gold);margin:25px 0 0}.divider{display:flex;align-items:center;justify-content:center;gap:12px;width:175px;max-width:70%;margin:26px auto;color:var(--gold)}.divider:before,.divider:after{content:'';height:1px;flex:1;background:linear-gradient(90deg,transparent,#b59560)}.divider:after{transform:rotate(180deg)}.divider span{font-size:18px;line-height:1}.gtx{color:var(--gold)}
/* Sculpted envelope with a live, editable monogram and a real opening flap. */
.cover{position:fixed;inset:0;z-index:100;background:#0c0b08;display:grid;place-items:center;overflow:hidden;transition:opacity .85s ease,visibility .85s}.cover:before{content:'';position:absolute;inset:0;max-width:620px;margin:auto;background:radial-gradient(ellipse at 40% 34%,#5c49332e,transparent 56%),linear-gradient(120deg,#17150f77,#0b0b08 60%,#29221655);box-shadow:0 0 100px #000}.gold-ribbons{position:absolute;inset:0;width:min(100%,620px);height:100%;margin:auto;fill:none;stroke:#b99558;stroke-width:1;filter:drop-shadow(0 0 4px #caac7140);opacity:.65}.cover-content{position:relative;width:min(100% - 52px,470px);text-align:center;padding:28px 0}.cover-content>.k{margin-bottom:10px;color:#b8a27a;font-size:10px}.cover-title{font:clamp(48px,10vw,70px)/1.3 var(--script);color:var(--gold);margin-bottom:74px}.envelope{position:relative;width:100%;aspect-ratio:1.58;perspective:1100px;filter:drop-shadow(0 24px 23px #000b);transform-style:preserve-3d}.envelope-back{position:absolute;inset:0;background:linear-gradient(135deg,#3e3628,#171510 60%);border:1px solid #b69963;border-radius:3px}.letter{position:absolute;z-index:1;inset:8% 5% 3%;background:linear-gradient(130deg,#2c271e,#13120d);border:1px solid #ad8a4b;box-shadow:inset 0 0 0 7px #211d15,inset 0 0 0 8px #96784c6b;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;transition:transform 1.2s cubic-bezier(.2,.65,.2,1) .7s}.letter>.k{font-size:8px;letter-spacing:.2em}.letter-name{font:42px/1.15 var(--script);color:var(--gold);max-width:95%;overflow-wrap:anywhere}.letter-age{font:58px/1 var(--serif);color:var(--gold);margin:5px 0}.envelope-front{position:absolute;inset:0;z-index:3;background:linear-gradient(33deg,transparent 49.7%,#b69b69 49.95%,#221e16 50.4%) bottom left/50% 100%,linear-gradient(-33deg,transparent 49.7%,#b69b69 49.95%,#17150f 50.4%) bottom right/50% 100%;background-repeat:no-repeat;clip-path:polygon(0 0,50% 57%,100% 0,100% 100%,0 100%);border:1px solid #6d5a3b;box-shadow:inset 0 -4px 20px #0008}.envelope-front:after{content:'';position:absolute;inset:0;background:linear-gradient(33deg,#18160f 49.7%,#ac8f5d 50%,transparent 50.3%) bottom left/50% 100%,linear-gradient(-33deg,#1e1a13 49.7%,#ac8f5d 50%,transparent 50.3%) bottom right/50% 100%;background-repeat:no-repeat;clip-path:polygon(0 100%,50% 44%,100% 100%)}.envelope-flap{position:absolute;inset:0 0 42%;z-index:4;background:linear-gradient(155deg,#716044,#2b261c 38%,#17150f);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;transition:transform 1.1s ease .25s;backface-visibility:hidden}.envelope-flap:after{content:'';position:absolute;inset:1px 2px 2px;background:linear-gradient(155deg,#494031,#201d16 55%,#12110d);clip-path:polygon(0 0,100% 0,50% 100%)}.seal{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%) rotate(-9deg);z-index:6;width:92px;height:92px;border:1px solid #e7cd93;border-radius:44% 49% 46% 49% / 49% 45% 51% 45%;background:conic-gradient(from 25deg,#9a713c,#e9ce94,#95703d,#edcf90,#ad824b,#624823,#d9b574,#9a713c);box-shadow:0 7px 12px #0008,inset 0 0 2px 2px #ead29d,inset 0 0 0 5px #a47c47,inset 0 0 0 7px #dfbf82;transition:transform .6s ease,opacity .5s ease;animation:seal-glow 4s ease-in-out infinite}.seal:before{content:'';position:absolute;inset:13px;border:1px solid #86612f;border-radius:50%;box-shadow:0 1px 1px #f7dda1,inset 0 1px 1px #f8dda388;background:linear-gradient(145deg,#c6a064,#a37c45)}.seal span{position:relative;display:block;padding-top:5px;font:55px/1 var(--script);color:#614822;text-shadow:0 1px #f4d59c;transform:rotate(9deg)}.seal:hover{transform:translate(-50%,-50%) rotate(-3deg) scale(1.06)}.cover-hint{font-size:21px;font-style:italic;color:#cab998;margin-top:48px;transition:opacity .3s}.cover-hint span{display:block;width:35px;height:1px;background:var(--gold);margin:14px auto;opacity:.6}.cover-foot{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#a18e6a;margin-top:24px}.cover-foot i{font-style:normal;padding:0 8px}.cover.opening .seal{animation:none;transform:translate(-50%,-50%) scale(1.28);opacity:0;pointer-events:none}.cover.opening .envelope-flap{transform:rotateX(180deg);z-index:0}.cover.opening .letter{transform:translateY(-51%)}.cover.opening .cover-hint,.cover.opening .cover-foot{opacity:0}.cover.leaving{opacity:0;visibility:hidden}.cover.opening .cover-title{opacity:.3;transition:opacity .7s}.cover.opening .envelope{transform:translateY(25px);transition:transform 1s}
/* Arch-shaped invitation, photograph and typographic hierarchy. */
.hero{padding:24px 26px 0;text-align:center}.hero-arch{position:relative;aspect-ratio: .61;border:1px solid #b8955d8c;border-radius:320px 320px 0 0;isolation:isolate;overflow:hidden;background:#201d16}.hero-arch:after{content:'';position:absolute;inset:8px;border:1px solid #b7956155;border-radius:inherit;pointer-events:none;z-index:3}.hero-scene{position:absolute;width:100%;height:100%;object-fit:cover;inset:0;z-index:-2;object-position:50% 50%}.hero-arch:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#15130e88,#15130e22 50%,transparent 75%,#17151055)}.hero-copy{padding:0 20px}.hanging-star{height:134px;position:relative;color:var(--gold);margin:8px auto 25px;width:20px}.hanging-star:before{content:'';position:absolute;width:1px;background:linear-gradient(#c0a16e88,#c0a16e);height:100px;top:0;left:50%}.hanging-star span{position:absolute;bottom:0;left:-1px;font-size:30px;line-height:1;animation:star-glow 3s ease-in-out infinite}.hero-copy>.k{line-height:2.3;font-size:12px;letter-spacing:.29em}.hero-age{font:clamp(82px,22vw,124px)/.9 var(--serif);color:#dfbd7c;margin:18px 0 10px;font-weight:500;text-shadow:0 3px 22px #0003}.hero-heading{font:clamp(46px,11vw,70px)/1.1 var(--script);color:var(--gold);margin:0 -8px 17px}.hero-copy .divider{margin-top:15px}.hero-details{padding:22px 10px 12px}.celebrant{font:clamp(74px,19vw,106px)/1.25 var(--script);color:var(--gold);overflow-wrap:anywhere}.hero-details>.divider{margin:10px auto 20px}.date-line{font-size:13px;letter-spacing:.18em;text-transform:uppercase;line-height:2.2;color:#eddfc5}.venue-line{font-style:italic;font-size:23px;margin:8px 0}.venue-line span{font-size:18px;color:var(--muted)}.cue{display:block;margin:30px auto 0;text-decoration:none;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.19em}.cue i{display:block;width:1px;height:32px;background:linear-gradient(var(--gold),transparent);margin:10px auto}.portrait{width:68%;aspect-ratio:.8;margin:0 auto 30px;padding:7px;border:1px solid var(--gold);border-radius:170px 170px 2px 2px}.portrait img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.welcome{padding-top:42px;padding-bottom:42px}
/* Countdown and bordered evening program. */
#countdown{padding-top:36px;padding-bottom:30px}.cdw{display:flex;justify-content:center;gap:22px;margin-top:28px}.cdu{flex:1;max-width:95px}.fl8{font-size:51px;line-height:1.15;color:var(--light);font-variant-numeric:tabular-nums}.cdu>span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.18em;color:var(--gold);margin-top:5px}.cdsep{display:none}#countdown .ttl{font-size:46px;margin-bottom:18px}#countdown .k{font-size:9px}.pln2,.crw,.card2,.tag,.idp{background:linear-gradient(135deg,#3b3326aa,#211e1788);border:1px solid #a889555c;box-shadow:inset 0 0 0 6px #211e17,inset 0 0 0 7px #b4945b3d,0 24px 35px #0003}.pln2{padding:22px 32px;position:relative}.thr,.thf,.tpl{display:none}.tk2{padding:25px 0;text-align:center;position:relative}.tk2+.tk2:before{content:'';display:block;position:absolute;top:0;left:20%;right:20%;height:1px;background:linear-gradient(90deg,transparent,#a98c5355,transparent)}.program-icon{width:32px;height:32px;fill:none;stroke:#b79a61;stroke-width:1.2;margin-bottom:7px}.tm b{font-size:11px;letter-spacing:.22em;color:var(--gold);font-weight:600}.tm small,.ds small{display:none}.ds h3{font:38px/1.3 var(--script);color:var(--light);margin:3px 0 5px}.ds p{font-size:16px;line-height:1.5;color:var(--muted);max-width:280px;margin:auto}
/* Venue card, calendar and optional live map. */
.loc{border:1px solid #b08f565e;background:linear-gradient(140deg,#38312499,#211e1766);padding:73px 28px 26px;border-radius:230px 230px 4px 4px;box-shadow:inset 0 0 0 7px #211e17,inset 0 0 0 8px #ae8e5933,0 20px 35px #0003}.loc>small{font-size:10px;text-transform:uppercase;letter-spacing:.23em;color:var(--gold)}.loc h3{font:46px/1.2 var(--script);color:var(--light);margin:17px 0}.loc>p{font-size:20px;color:var(--muted);margin:0 0 25px}.mbtn,.pill,.send,.cl-gold-button{display:flex;justify-content:center;align-items:center;gap:8px;padding:14px 16px;width:100%;font-size:12px;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;border:1px solid #c19d5d;border-radius:28px;background:linear-gradient(110deg,#b98b46,#e2c589 50%,#b98c4e);color:#211b10;font-weight:600;transition:filter .2s,transform .2s}.mbtn:hover,.send:hover,.cl-gold-button:hover{filter:brightness(1.1);transform:translateY(-1px)}.mbtn svg{fill:none;stroke:currentColor;width:16px;height:16px;stroke-width:1.5}.cal{display:grid;gap:10px;margin-top:12px}.cal>small{display:none}.pill{background:transparent;color:var(--gold);border-color:#9e814b88;font-size:10px;letter-spacing:.11em;padding:12px 8px}.cal #ics{border:0;padding:4px 5px;text-transform:none;font-size:14px;letter-spacing:0;text-decoration:underline;text-underline-offset:4px}.mapf{margin-top:22px;border:1px solid var(--line);overflow:hidden}.mapf iframe{width:100%;height:190px;display:block;border:0;filter:grayscale(1) sepia(.2);opacity:.8}
/* Memories and event extras keep their original editable content. */
.pasos{position:relative;text-align:left;margin:30px 0 0}.pasos>.ln,.pasos>.lf,.pasos>.pl{display:none}.ch{position:relative;display:grid;grid-template-columns:80px 1fr;gap:17px;padding:18px 0}.stp{display:grid;place-items:center;align-self:start}.stp svg{width:75px;height:75px;fill:none;stroke:#bc9b63;stroke-width:.8}.stp text{fill:var(--gold);stroke:none;font-family:var(--serif);font-style:normal}.ch .txt small{color:var(--gold);font-size:10px;letter-spacing:.14em;text-transform:uppercase}.ch h3{font-size:27px;color:var(--light);margin:4px 0}.ch p{color:var(--muted);font-size:17px;line-height:1.6}.alb{display:grid;grid-template-columns:1fr 1fr;gap:16px}.pol{border:1px solid #ae8c5155;background:#2e281d;padding:6px;box-shadow:0 8px 18px #0003}.pol img{width:100%;aspect-ratio:.8;object-fit:cover}.pol small{display:block;font-size:12px;color:var(--gold);letter-spacing:.08em;padding:8px 2px}.albh{display:none}.lbx{border:1px solid #b4955e;max-width:min(92vw,750px);padding:10px;background:#1b1812;color:var(--gold)}.lbx::backdrop{background:#000d;backdrop-filter:blur(6px)}.lbx img{max-height:78vh;margin:auto;object-fit:contain}.lbx form{text-align:center;padding:9px 0 0}.lbx button{background:none;border:1px solid var(--line);padding:6px 25px}.drt{font-size:27px;margin:0 0 15px;color:var(--light)}.sws{list-style:none;padding:0;display:flex;justify-content:center;flex-wrap:wrap;gap:20px 16px;margin:30px 0 0}.sws li{width:61px}.sws i{display:block;width:47px;height:47px;margin:0 auto 10px;background:var(--c);border-radius:50%;box-shadow:0 0 0 4px #221e17,0 0 0 5px #aa8c5144}.sws span{font-size:12px;color:var(--muted)}.crw{padding:25px 20px}.bpt{font-size:9px;color:var(--gold);letter-spacing:.18em;text-transform:uppercase;padding:7px 0 20px}.bpt svg{display:none}.crt{display:flex;gap:6px;justify-content:center;border-bottom:1px solid var(--line);padding-bottom:17px}.crt button{border:1px solid #a0844c55;background:transparent;padding:8px 10px;font-size:12px;color:var(--muted)}.crt button[aria-selected=true]{background:#c9a66a;color:#171510}.crh{margin:25px 0 18px}.crh b{font:37px var(--script);color:var(--gold);display:block}.crh span{color:var(--muted);font-size:15px}.crp ol{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left}.crp li{font-size:16px;display:flex;gap:10px;align-items:baseline}.crp li i{font:10px var(--serif);color:#a58b5c}.tag{padding:32px}.hole{display:none}.tgi>small{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold)}.tgi>p{font-size:21px;line-height:1.65;margin:20px 0}.tagf{display:flex;justify-content:center;gap:12px;align-items:baseline}.tagf span{color:var(--muted);font-style:italic;font-size:16px}.tagf b{font:26px var(--script);color:var(--gold)}.faq{text-align:left}.faq details{border-bottom:1px solid var(--line);padding:18px 0}.faq summary{cursor:pointer;font-size:22px;list-style:none;display:flex;align-items:baseline;gap:14px}.faq summary::-webkit-details-marker{display:none}.faq summary i{font-style:normal;font-size:10px;color:var(--gold);letter-spacing:.1em}.faq summary:after{content:'+';margin-left:auto;color:var(--gold)}.faq details[open] summary:after{content:'−'}.faq details p{font-size:18px;color:var(--muted);padding:15px 12px 2px 30px;line-height:1.6}.hsh{margin:25px 0 15px}.hsh>svg,.hsh>.cnr{display:none}.hsh b{display:block;font:33px/1.3 var(--serif);overflow-wrap:anywhere}.hsh .pill{border:0;text-transform:none;text-decoration:underline;font-size:15px;letter-spacing:0;margin-top:10px}.dl{font-size:17px;color:var(--muted);margin-top:22px}
/* RSVP retains the original WordPress form and receipt endpoints. */
.card2{padding:0;position:relative}.card2>.bpt{padding:30px 20px 0}.inn{padding:12px 26px 30px}.inn .ttl{margin-bottom:10px;font-size:47px}.sub{color:var(--muted);font-size:18px}.rdl{font-size:16px;color:var(--muted);margin:9px 0 24px}.rdl b{font-weight:500;color:var(--light)}#rsvp-form{text-align:left;margin-top:25px}.chs{border:0;margin:0 0 22px;padding:0;display:flex;gap:10px}.chs label{flex:1;position:relative}.chs input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.chs span{display:block;padding:12px 9px;border:1px solid #a286535e;text-align:center;font-size:17px;transition:background .2s}.chs input:checked+span{background:linear-gradient(110deg,#b58b4d,#e0c286);color:#211b11;border-color:#d6b77d}.chs input:focus-visible+span{outline:2px solid var(--gold);outline-offset:4px}.fl{display:block;margin:0 0 23px}.fl>span{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}.fl input:not([type=radio]),.fl textarea{width:100%;background:transparent;color:var(--light);border:0;border-bottom:1px solid #ab936651;padding:9px 0 10px;resize:vertical;border-radius:0;font-size:20px;line-height:1.4}.fl input::placeholder,.fl textarea::placeholder{color:#968d7b}.fl input:focus,.fl textarea:focus{border-bottom-color:var(--gold)}.cnt{display:flex;align-items:center;gap:8px;width:170px}.cnt button{width:40px;height:40px;border:1px solid #b498625c;background:#242017;color:var(--gold);flex-shrink:0}.cnt #guests{width:62px;text-align:center;font-size:25px;border:0;appearance:textfield;-moz-appearance:textfield}.cnt input::-webkit-inner-spin-button,.cnt input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cl-voice-button{display:flex;align-items:center;justify-content:center;gap:10px;background:transparent;border:1px solid var(--line);padding:12px 15px;width:100%;font-size:16px;color:var(--gold)}.cl-voice-button svg{width:18px;height:18px}.cl-voice-button.is-recording{border-color:#e4a088;color:#edc3ad}.cl-voice-status{font-size:15px;color:var(--muted);margin:8px 0}.cl-voice-status:empty{display:none}#voice-preview{margin:15px 0}#voice-preview audio{width:100%}#voice-remove{display:block;margin:10px auto;background:none;border:0;color:var(--gold);text-decoration:underline;font-size:15px}.send{margin-top:21px;min-height:52px;letter-spacing:.13em}.cl-rsvp-feedback{font-size:17px;color:#edbca1;margin:12px 0 0}.cl-rsvp-feedback:empty{display:none}.cl-success{padding:25px 0 5px}.cl-eyebrow{color:var(--gold);font-size:11px;letter-spacing:.18em;text-transform:uppercase}.cl-success h3{font:39px/1.2 var(--script);color:var(--gold);margin:20px 0}.cl-success p{margin:12px 0;color:var(--muted)}.cl-receipt-name{font-size:28px;color:var(--light)!important}.cl-receipt-code{font-size:20px;display:block;margin:22px 0;color:var(--gold)}.cl-receipt-download{font-size:15px;display:block;margin-top:15px}.passport-stamp{padding:18px 10px 0;color:var(--gold);font-size:14px}.passport-stamp strong{display:block;font:40px var(--script)}
/* Finale and persistent controls. */
.closing{position:relative;isolation:isolate;text-align:center;min-height:620px;padding:70px 40px 28px}.closing>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.closing:before{content:'';position:absolute;inset:0;background:linear-gradient(#1c1912 2%,#171510bb 36%,#17151055 70%,#14120fd9);z-index:-1}.closing .ttl{font-size:68px;margin:12px 0 20px}.closing .tx{max-width:350px;color:#e1d4bb}.closing .signature{font-size:58px}.closing-date{font-size:13px;letter-spacing:.22em;margin:18px 0}.credit{font-size:10px;letter-spacing:.12em;color:#c7b698;text-transform:uppercase;margin-top:160px}.credit b{font-weight:500}.prg{position:fixed;inset:0 auto auto 0;height:2px;z-index:70;background:var(--gold);width:calc(var(--p,0)*100%);pointer-events:none}.rpl{position:fixed;right:20px;bottom:20px;z-index:60;text-decoration:none;background:linear-gradient(110deg,#c49b5a,#e5ca91);color:#211a0f;border:1px solid #d6b97b;border-radius:30px;padding:12px 23px;font-size:12px;letter-spacing:.14em;box-shadow:0 6px 20px #0005;opacity:0;transform:translateY(15px);pointer-events:none;transition:.25s}.rpl.on{opacity:1;transform:none;pointer-events:auto}.mus{position:fixed;left:20px;bottom:20px;z-index:60;display:flex;gap:10px;align-items:center;border:1px solid #b5975e6b;border-radius:30px;background:#201c15ed;color:var(--gold);padding:10px 16px;min-height:45px;max-width:calc(100vw - 150px);box-shadow:0 6px 20px #0005}.mus>i{display:block;height:20px}.mus svg{width:20px;height:20px;fill:currentColor}.mus>span:not(.eq){font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eq{display:flex;align-items:center;gap:2px;height:15px}.eq b{width:2px;height:10px;background:var(--gold);animation:equalizer 1s ease-in-out infinite}.eq b:nth-child(2){animation-delay:-.3s}.eq b:nth-child(3){animation-delay:-.6s}.mus.off .eq b{animation-play-state:paused;height:3px}.confetti{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:45}.confetti i{position:absolute;width:5px;height:9px;background:#c7a15e;opacity:0;animation:confetti-fall var(--duration,10s) linear var(--delay,0s) infinite}.confetti i:nth-child(3n){background:#f0dec0;width:3px;height:6px}.confetti i:nth-child(4n){width:3px;height:3px;border-radius:50%}.page-hidden .confetti i,.page-hidden .eq b{animation-play-state:paused}.enhanced .rv{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.65,.2,1);transition-delay:min(var(--d,0s),.2s)}.enhanced .rv.visible{opacity:1;transform:none}
@keyframes confetti-fall{0%{opacity:0;transform:translate3d(0,-8vh,0) rotate(0)}10%{opacity:.55}85%{opacity:.4}100%{opacity:0;transform:translate3d(var(--drift,45px),110vh,0) rotate(var(--turn,390deg))}}@keyframes seal-glow{50%{box-shadow:0 7px 12px #0008,inset 0 0 2px 2px #ead29d,inset 0 0 0 5px #a47c47,inset 0 0 0 7px #dfbf82,0 0 30px #d7b57922}}@keyframes star-glow{50%{opacity:.5;filter:drop-shadow(0 0 4px #d8bb7c)}}@keyframes equalizer{50%{height:4px}}
@media(min-width:900px){.mus{left:max(24px,calc(50% - 282px))}.rpl{right:max(24px,calc(50% - 282px))}}
@media(max-width:480px){.s{padding:49px 27px}.hero{padding:15px 15px 0}.hero-arch{aspect-ratio:.61}.hanging-star{height:92px;margin-bottom:19px}.hanging-star:before{height:63px}.hero-copy>.k{font-size:10px;letter-spacing:.21em}.hero-age{margin-top:14px;margin-bottom:7px;font-size:90px}.hero-heading{font-size:48px;margin-bottom:12px}.hero-copy .divider{margin-top:10px}.hero-details{padding-top:22px}.celebrant{font-size:82px}.date-line{font-size:11px;letter-spacing:.13em}.venue-line{font-size:21px}.venue-line span{font-size:17px}.ttl{font-size:43px;margin-bottom:27px}#countdown .ttl{font-size:38px}.cdw{gap:13px}.fl8{font-size:42px}.cdu>span{font-size:8px;letter-spacing:.13em}.cover-content{width:calc(100% - 46px)}.cover-title{font-size:57px;margin-bottom:65px}.seal{width:78px;height:78px}.seal span{font-size:48px}.cover-hint{font-size:19px;margin-top:38px}.cover-foot{font-size:9px}.letter-name{font-size:34px}.letter-age{font-size:42px}.pln2{padding:18px 23px}.loc{padding:65px 21px 25px}.loc h3{font-size:40px}.inn{padding:13px 21px 27px}.inn .ttl{font-size:42px}.crp ol{gap:10px}.crp li{font-size:15px}.crt button{padding:7px;font-size:11px}.tag{padding:27px 23px}.mus{left:13px;bottom:15px;padding:10px 13px}.mus>span:not(.eq){max-width:105px}.rpl{right:13px;bottom:15px;padding:12px 18px}.closing{padding-left:28px;padding-right:28px}.closing .ttl{font-size:60px}}
@media(max-width:350px){.s{padding-left:21px;padding-right:21px}.hero-copy>.k{font-size:9px}.hero-heading{font-size:42px}.hero-age{font-size:78px}.hanging-star{height:72px}.hanging-star:before{height:48px}.celebrant{font-size:70px}.cover-title{font-size:50px}.mus>span:not(.eq){display:none}.crp ol{grid-template-columns:1fr}}
@media(max-height:650px){.cover-title{margin-bottom:35px;font-size:48px}.cover-content{max-width:350px}.cover-hint{margin-top:24px}.cover-foot{margin-top:15px}.cover-content>.k{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.enhanced .rv{opacity:1;transform:none}.confetti{display:none}}
@media print{.cover,.confetti,.mus,.rpl,.prg,.cue{display:none!important}#main{max-width:100%;box-shadow:none}.rv{opacity:1!important;transform:none!important}}
/* Opaque folded paper hides the insert until the envelope opens. */
.envelope-front{background:linear-gradient(135deg,#29241b,#12110d)}

/* Long editable names wrap within the invitation. */
.signature,.letter-name,.endn,.loc h3{overflow-wrap:anywhere}.tagf{flex-wrap:wrap}.cover-foot{overflow-wrap:anywhere}.letter-name{max-height:2.35em;overflow:hidden}.letter:has(.letter-name[data-long]) .letter-name{font-size:27px}.letter:has(.letter-name[data-long]) .letter-age{font-size:38px}

/* Reference opener: original layered artwork, geometry and animation timing. */
#cover{position:fixed;inset:0;z-index:60;overflow:hidden;background:#0A0807;display:flex;align-items:center;justify-content:center}
.reference-stage{position:relative;perspective:1400px;width:min(100vw,calc(100svh * .5628));aspect-ratio:941/1672;flex:none;transition:transform 1.5s cubic-bezier(.6,.05,.25,1),opacity 1.1s}
.reference-stage>img,.reference-stage .bgi{position:absolute;display:block;user-select:none;-webkit-user-drag:none;pointer-events:none}
.reference-stage .bgi{inset:0;width:100%;height:100%}
.ins{position:absolute;z-index:0;left:7.864%;top:38.278%;width:84.06%;height:30.5%;background:linear-gradient(180deg,#050403,#16110C 60%,#1E1710);box-shadow:inset 0 0 0 1px rgba(201,160,99,.35)}
.ecard{position:absolute;z-index:2;left:13.5%;width:73%;top:39.6%;height:28.4%;border-radius:3px;background:linear-gradient(160deg,#1A1511,#0E0B09);box-shadow:0 10px 30px rgba(0,0,0,.6),inset 0 0 0 1px rgba(214,178,118,.55),inset 0 0 0 6px #120E0B,inset 0 0 0 7px rgba(214,178,118,.3);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:5%;text-align:center;transition:transform 1.3s cubic-bezier(.45,.05,.25,1)}
.ecard small{font-weight:700;letter-spacing:.3em;font-size:clamp(8px,2.4vw,11px);color:#C9A063;padding-left:.3em}
.ecard b{font-family:'Pinyon Script',cursive;font-weight:400;font-size:clamp(50px,15vw,74px);line-height:1.25;padding:0 .2em .05em}
.ecard em{font-family:'Pinyon Script',cursive;font-style:normal;font-size:clamp(22px,6.4vw,30px);color:#E9CF9F;margin-top:-4px}
.reference-stage .ipk{z-index:3;left:7.439%;top:38.038%;width:84.91%;height:30.98%}
.reference-stage .ifl{z-index:4;left:7.439%;top:38.038%;width:84.91%;height:30.98%;transform-origin:50% 0;transition:transform 1s cubic-bezier(.5,.05,.3,1),filter 1s,z-index 0s .5s}
.flw{position:absolute;inset:0;perspective:1200px;pointer-events:none}
.reference-seal{position:absolute;left:37.73%;top:49.58%;width:24.44%;aspect-ratio:1;z-index:5;border-radius:50%;transition:transform .9s cubic-bezier(.4,.1,.2,1),opacity .7s}
.reference-seal img{width:100%;height:100%;display:block;filter:drop-shadow(0 6px 10px rgba(0,0,0,.6))}
.reference-seal::after{content:"";position:absolute;inset:6%;border-radius:50%;border:1.5px solid rgba(240,214,165,.85);animation:halo 2.4s ease-out infinite}
@keyframes halo{from{transform:scale(.9);opacity:1}to{transform:scale(1.45);opacity:0}}
.glint{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(255,230,180,.08) 48%,transparent 56%);background-size:250% 100%;animation:gli 5s ease-in-out infinite}
@keyframes gli{from{background-position:120% 0}to{background-position:-120% 0}}
#cover.open .reference-seal{transform:translateY(-8%) scale(1.15);opacity:0}
#cover.open .reference-seal::after{display:none}
#cover.open .ititle{opacity:0}
#cover.open .ifl{transform:rotateX(180deg);filter:brightness(.55);z-index:1}
#cover.up .ecard{transform:translateY(-78%)}
#cover.go .reference-stage{transform:scale(1.8) translateY(6%);opacity:0}
#cover.gone{opacity:0;visibility:hidden;transition:opacity .9s,visibility .9s}

.ititle{opacity:1;position:absolute;left:0;right:0;top:22.5%;margin:0;text-align:center;font-family:'Pinyon Script',cursive;font-size:clamp(52px,15vw,84px);line-height:1.3;padding:0 .2em;background:linear-gradient(100deg,#B98B4E 0%,#F2DCAE 30%,#C9A063 55%,#F6E3B9 76%,#A9793F 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 6px rgba(0,0,0,.6));transition:opacity .6s;pointer-events:none;z-index:6}
.reference-stage{container-type:inline-size}.ititle{font-size:12.5cqw}


#cover.cover:before{display:none}#cover.cover{transition:none}.reference-seal{padding:0;background:none;border:0;cursor:pointer;color:inherit;animation:none;box-shadow:none;transform:none;min-height:0}.reference-seal:before{display:none}.reference-stage .ecard b{color:#E9CF9F}.reference-stage .ecard{overflow:hidden}.reference-stage .ecard small{max-width:90%;overflow-wrap:anywhere}.reference-stage .reference-seal:hover{transform:none}#cover.gone{opacity:0;visibility:hidden;transition:opacity .9s,visibility .9s}
:root{--ink:#1C1916;--panel:#25211C;--gold:#C9A063;--light:#F3E6CF;--muted:#BFAF97;--line:rgba(201,160,99,.35)}body{background:#1C1916}#main{background:radial-gradient(70% 40% at 50% 0%,rgba(201,160,99,.12),transparent 70%),#1C1916}.ttl,.celebrant,.signature{background:linear-gradient(100deg,#B98B4E 0%,#F2DCAE 28%,#C9A063 52%,#F6E3B9 74%,#A9793F 100%);background-clip:text;-webkit-background-clip:text;color:transparent}

#fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:110}@media(prefers-reduced-motion:reduce){#fx{display:none}}
