:root{--ivory:#f7f2e8;--champagne:#d8c4a5;--taupe:#b8aa9b;--sage:#a8b09d;--blush:#d8b9b2;--gold:#c9a96b;--ink:#6d5143}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:#eee3d2;margin:0;font-family:Cormorant Garamond,Georgia,serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #7f997e}.gate{z-index:30;background:radial-gradient(at 50% 35%,#fff9f0,#e5d9c7 82%);justify-content:center;align-items:center;padding:18px;transition:opacity .7s,visibility .7s;display:flex;position:fixed;inset:0}.gate.dismissed{opacity:0;visibility:hidden;pointer-events:none}.gate-inner{text-align:center;width:min(100%,470px)}.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:#8b7c6d;font:500 10px/1.5 Montserrat,Arial,sans-serif}.gate h1{margin:12px 0 2px;font:400 clamp(38px,9vw,64px) Cormorant Garamond,Georgia,serif}.gate h1 i{color:#85927e;font-weight:400}.gate .sub{margin:0 0 25px;font-size:20px;font-style:italic}.envelope{aspect-ratio:1.58;perspective:1000px;filter:drop-shadow(0 18px 16px #64543d3d);cursor:pointer;width:min(79vw,350px);margin:33px auto 25px;position:relative}.env-back{background:#dbc6a6;border:1px solid #bda17b;position:absolute;inset:0}.env-letter{color:#9a8565;background:#fff8e9;border:1px solid #d2b787;flex-direction:column;justify-content:center;align-items:center;height:79%;transition:transform 1s .15s;display:flex;position:absolute;top:7%;left:10%;right:10%;box-shadow:0 0 6px #927b5833}.env-letter span{letter-spacing:.05em;font-size:34px}.env-letter small{letter-spacing:.15em;text-transform:uppercase;font:500 7px Montserrat,sans-serif}.env-front{clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);z-index:3;background:#ead8ba;position:absolute;inset:0}.env-front:before{content:"";opacity:.75;background:linear-gradient(32deg,#cdb592,#0000 50%),linear-gradient(150deg,#e8d5b4,#0000 60%);position:absolute;inset:0}.env-flap{clip-path:polygon(0 0,100% 0,50% 100%);z-index:5;transform-origin:50% 0;backface-visibility:hidden;background:#f3e5ce;transition:transform .9s;position:absolute;inset:0 0 39%}.env-seal{z-index:6;color:#fff6e9;background:radial-gradient(circle at 33% 25%,#c19b8b,#94665b 73%);border-radius:48% 52% 45% 55%;place-items:center;width:66px;height:66px;font:26px Georgia,serif;transition:opacity .3s;display:grid;position:absolute;top:51%;left:50%;transform:translate(-50%,-50%);box-shadow:0 3px 7px #64423977,inset 0 0 0 3px #c99d88,inset 0 0 0 5px #e2bba7}.envelope.open .env-flap{transform:rotateX(180deg)}.envelope.open .env-seal{opacity:0}.open-button{color:#fff;letter-spacing:.18em;text-transform:uppercase;background:#818d79;border:1px solid #b9a47d;padding:13px 23px;font:500 10px Montserrat,Arial,sans-serif}.open-button:hover{background:#6c7963}.hero{justify-content:center;align-items:center;min-height:100svh;padding:clamp(4px,1.2vw,14px);display:flex}.poster{aspect-ratio:2/3;filter:drop-shadow(0 8px 22px #6d584328);opacity:0;background:#fdf7ee url(/artwork/royal-invitation.webp) 50%/100% 100% no-repeat;width:min(100%,680px,66.6667svh - 12px);transition:opacity 1.1s,transform 1.1s;position:relative;overflow:hidden;transform:translateY(14px);container-type:inline-size}.poster.revealed{opacity:1;transform:translateY(0)}.poster:after{content:"";pointer-events:none;z-index:2;border:1px solid #c9a96b9e;position:absolute;inset:2.55% 2.8%}.poster:before{content:"";pointer-events:none;z-index:2;border:1px solid #c9a96b70;position:absolute;inset:1.95% 2.2%}.poster [data-field]{text-align:center;z-index:3;position:absolute}.crest-monogram{z-index:3;color:#806958;justify-content:center;align-items:center;width:9.5%;height:7.35%;font:400 5.5cqw/1 Bodoni Moda,Georgia,serif;display:flex;position:absolute;top:7.55%;left:45.25%}.crest-monogram small{font-size:.48em;display:inline-block;transform:translateY(.25em)}.invite-title{letter-spacing:.23em;text-transform:uppercase;color:#60493e;width:53%;font:500 2.2cqw/1.45 Montserrat,Arial,sans-serif;top:20.35%;left:23.5%}.gold-divider{z-index:3;background:linear-gradient(90deg,#0000,#c6a46e 18% 43%,#0000 43% 57%,#c6a46e 57% 82%,#0000);width:46%;height:1px;position:absolute;left:27%}.gold-divider:after{content:"◆";color:#c6a46e;font-size:2.4cqw;position:absolute;top:50%;left:50%;transform:translate(-50%,-53%)}.div-one{top:26%}.div-two{top:40.6%}.names{white-space:nowrap;width:92%;height:9.6%;font:normal 500 var(--name-size,9.6cqw) / 1.1 "Cormorant Garamond", Georgia, serif;letter-spacing:0;font-variant-ligatures:none;color:#654a39;justify-content:center;align-items:center;gap:.025em;display:flex;top:27.2%;left:4%}.names .amp{color:#8d9b86;margin:0 .05em;font-size:.83em}.tagline{color:#795848;width:80%;font:italic 400 3.45cqw/1.2 Cormorant Garamond,Georgia,serif;top:35.65%;left:10%}.occasion{letter-spacing:.17em;color:#76816c;width:82%;font:500 2.7cqw/1.1 Cormorant Garamond,Georgia,serif;top:42.1%;left:9%}.event-details{z-index:3;color:#634a3d;grid-template-columns:1fr 1.15fr 1.2fr;align-items:center;width:84%;height:7.2%;display:grid;position:absolute;top:69.25%;left:8%}.event-details .event-col{text-align:center;flex-direction:column;justify-content:flex-start;align-items:center;gap:.25em;height:85%;padding:0 2.3%;display:flex}.event-details .event-col+.event-col{border-left:1px solid #c7a7728f}.event-icon{color:#b68f55;height:4.2cqw;font:400 4cqw/1 Georgia,serif}.event-value{letter-spacing:.05em;text-transform:uppercase;font:500 2.15cqw/1.12 Cormorant Garamond,Georgia,serif}.event-value small{letter-spacing:.03em;font-size:.91em}.count-frame{z-index:3;text-align:center;background:#fff8ee9c;border:1px solid #bf985c;border-radius:6%/18%;width:61%;height:11.05%;position:absolute;top:76.9%;left:19.5%;box-shadow:inset 0 0 0 3px #fbf5e9,inset 0 0 0 4px #c9a96b9c}.count-label{letter-spacing:.16em;white-space:nowrap;color:#6e4e3e;padding-top:2.6%;font:500 2.2cqw/1.2 Cormorant Garamond,Georgia,serif}.count-grid{grid-template-columns:repeat(4,1fr);margin:2.1% 5% 0;display:grid}.count-grid>div+div{border-left:1px solid #c8a875a0}.count-grid strong{font-variant-numeric:tabular-nums;color:#795b47;font:400 5.3cqw/.98 Cormorant Garamond,Georgia,serif;display:block}.count-grid span{letter-spacing:.13em;text-transform:uppercase;font:500 1.55cqw/1.3 Cormorant Garamond,Georgia,serif;display:block}.rsvp-art{color:#fff9e9;z-index:4;letter-spacing:.12em;background:linear-gradient(#a6b19a,#7c8a73);border:1px solid #ae8b52;border-radius:999px;width:29.4%;height:4.95%;font:400 4.15cqw/1 Cormorant Garamond,Georgia,serif;position:absolute;top:90.3%;left:35.3%;box-shadow:0 1px 2px #56442a44,inset 0 0 0 2px #e6d7b6,inset 0 0 0 4px #a78959}.rsvp-art:hover{filter:brightness(1.06)}.after{text-align:center;max-width:680px;margin:0 auto 50px;padding:0 20px}.after p{margin:10px 0 20px;font-size:22px}.after .link{letter-spacing:.13em;text-transform:uppercase;border-bottom:1px solid var(--gold);color:#766852;margin:0 10px;padding:9px;font:500 10px Montserrat,sans-serif;text-decoration:none;display:inline-block}.details{color:#66594e;max-width:760px;margin:0 auto 60px;padding:0 18px}.details-inner{background:#fbf7ee;border:1px solid #c9a96b;padding:clamp(22px,5vw,52px);position:relative;box-shadow:0 9px 32px #6c60401a}.details-inner:before{content:"";pointer-events:none;border:1px solid #d8c4a5;position:absolute;inset:7px}.details .kicker{letter-spacing:.23em;text-transform:uppercase;color:#818d79;text-align:center;font:500 10px Montserrat,Arial,sans-serif}.details h2{text-align:center;color:#675a50;margin:9px 0 15px;font:400 clamp(34px,7vw,52px) Cormorant Garamond,Georgia,serif}.details p{margin:8px 0;font-size:19px;line-height:1.65}.details .section{border-bottom:1px solid #d8c4a5;padding:28px 0}.details .section:last-child{border-bottom:0;padding-bottom:0}.details .section:first-child{padding-top:8px}.program-row{border-bottom:1px solid #e9dfd0;justify-content:space-between;gap:18px;padding:12px 0;font-size:19px;display:flex}.program-row span:last-child{color:#78846e;text-align:right}.details details{border-bottom:1px solid #e9dfd0;padding:14px 0}.details summary{cursor:pointer;color:#64594f;font-size:20px;font-weight:600}.details details p{margin:10px 0 2px;font-size:18px}.gifts{text-align:center;max-width:570px;margin:auto}.modal{z-index:40;background:#322a2599;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0;overflow:auto}.modal.visible{display:flex}.dialog{border:1px solid var(--gold);text-align:center;background:#faf5ec;width:min(100%,470px);max-height:calc(100svh - 30px);padding:clamp(22px,5vw,38px);position:relative;overflow:auto;box-shadow:0 20px 70px #241b1760}.dialog:before{content:"";pointer-events:none;border:1px solid #d8c4a5;position:absolute;inset:8px}.close{color:#7d7264;z-index:2;background:0 0;border:0;font:28px Georgia,serif;position:absolute;top:12px;right:14px}.dialog h2{margin:8px 0 5px;font:400 clamp(36px,8vw,50px) Cormorant Garamond,Georgia,serif}.dialog .intro{margin:0 0 10px;font-size:19px}.form{text-align:left;z-index:1;position:relative}.form label{letter-spacing:.1em;text-transform:uppercase;margin:14px 0 6px;font:500 10px Montserrat,Arial,sans-serif;display:block}.form input,.form select,.form textarea{color:#4e453e;background:#fffdf8;border:1px solid #cbb89b;border-radius:0;width:100%;padding:12px;font-size:18px;display:block}.form textarea{resize:vertical;min-height:72px}.submit{color:#fff;letter-spacing:.14em;text-transform:uppercase;background:#818d79;border:0;width:100%;margin-top:20px;padding:13px;font:500 11px Montserrat,Arial,sans-serif}.form-status{color:#68755e;min-height:22px;margin:14px 0 0;font-size:17px}.demo{color:#7b726a;margin:14px 0 0;font:400 11px/1.5 Montserrat,Arial,sans-serif}.deadline{letter-spacing:.08em;color:#756d60;text-align:center;margin:10px 0;font:500 11px/1.6 Montserrat,Arial,sans-serif}.editor{z-index:60;background:#24221f99;justify-content:center;align-items:center;padding:12px;display:none;position:fixed;inset:0}.editor.visible{display:flex}.editor-box{color:#594e43;background:#fff9ef;border:2px solid #c9a96b;width:min(100%,610px);max-height:96svh;padding:22px;overflow:auto;box-shadow:0 20px 60px #0005}.editor h2{margin:0 0 5px;font-size:32px}.editor p{margin:0 0 12px;font-size:16px}.editor-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.editor label{letter-spacing:.04em;font:500 11px/1.4 Montserrat,Arial,sans-serif;display:block}.editor input{background:#fffdf8;border:1px solid #cbb89b;width:100%;margin-top:5px;padding:10px;font:16px Georgia,serif;display:block}.editor-actions{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.editor-actions button{color:#fff;background:#8a987d;border:1px solid #a98b5d;padding:11px 14px;font:500 11px Montserrat,Arial,sans-serif}.editor-actions button.secondary{color:#6c5843;background:0 0}.edit-fab{z-index:59;color:#6b5c4b;background:#fdf7ed;border:1px solid #c9a96b;padding:10px 14px;font:500 11px Montserrat,Arial,sans-serif;display:none;position:fixed;bottom:14px;right:14px;box-shadow:0 4px 20px #0002}.edit-mode .edit-fab{display:block}@media (max-width:480px){.hero{padding:4px}.poster{width:min(100%,66.6667svh - 5.33333px)}.after{margin-bottom:28px}.details{padding:0 12px}.details-inner{padding:27px 23px}.details p,.program-row{font-size:17px}.editor-grid{grid-template-columns:1fr}}body{color:#5e4b3e;background:radial-gradient(at 50% 0,#fcf8ef 0,#eee4d4 75%)}body.is-opening,body.has-dialog{overflow:hidden}main:focus{outline:none}.gate{background:radial-gradient(at 50% 38%,#fffaf1,#e9decb);padding:32px 22px;transition:opacity .3s,visibility .3s;overflow:auto}.gate-inner{width:min(100%,440px);margin:auto}.gate-inner:before{content:var(--cover-monogram,"S · H");color:#8c754f;border:1px solid #b99a64;border-radius:50%;width:52px;height:52px;margin:0 auto 24px;font:italic 19px/52px Georgia,serif;display:block}.gate .eyebrow{letter-spacing:.2em;max-width:300px;margin:auto;font-size:9px;line-height:1.9}.gate h1{margin:14px 0 8px;font-size:clamp(38px,9.5vw,58px);line-height:1.12}.gate .sub{margin:0;font-size:20px;line-height:1.4}.gate-date{letter-spacing:.16em;text-transform:uppercase;color:#776950;margin:18px 0 0;font:500 10px/1.8 Montserrat,Arial,sans-serif}.envelope{filter:drop-shadow(0 15px 14px #64543d28);width:min(76vw,320px);margin:38px auto 28px}.env-back{border-radius:2px}.env-letter{transition:transform .55s;box-shadow:0 0 6px #927b5822}.env-letter small{margin-top:10px}.env-flap{transition:transform .5s}.env-seal{white-space:nowrap;letter-spacing:-.06em;width:58px;height:58px;padding:5px;font:italic 21px/1 Georgia,serif;transition:opacity .2s,transform .2s}.envelope.open .env-seal{transform:translate(-50%,-50%)scale(.92)}.envelope.open .env-letter{transform:translateY(-34%)}.open-button{letter-spacing:.16em;background:#727f68;border-color:#727f68;border-radius:2px;min-width:200px;min-height:46px;font-size:10px;transition:background .2s}.open-hint{color:#75695a;margin:12px 0 0;font:400 10px/1.6 Montserrat,Arial,sans-serif}main{min-height:0}.hero{min-height:0;padding:30px 18px 22px}.poster{flex:none;width:min(100%,580px);transition:opacity .6s,transform .6s}.invite-title{letter-spacing:.17em;width:60%;font-size:2.35cqw;left:20%}.names{gap:.12em}.tagline{font-size:3.65cqw}.occasion{letter-spacing:.14em;font-size:2.8cqw}.event-details{grid-template-columns:1fr 1.1fr 1.05fr;width:86%;height:7.8%;top:68.5%;left:7%}.event-value{letter-spacing:.025em;font-size:2.35cqw;line-height:1.18}.event-icon{font-size:3.7cqw}.event-details .event-col{gap:.2em;padding:0 2%}.count-frame{width:62%;height:10%;top:78%;left:19%}.count-label{letter-spacing:.08em;padding-top:2.3%;font-size:2.15cqw}.count-grid{margin-top:2%}.count-grid span{letter-spacing:.06em;font-size:1.8cqw}.count-grid strong{font-size:5.2cqw}.rsvp-art{height:5%;font-size:4cqw;top:90.2%}.after{max-width:680px;margin:0 auto 28px;padding:0 22px}.after p{max-width:330px;margin:0 auto 20px;font-size:24px;line-height:1.35}.invitation-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.primary-action,.after .link{letter-spacing:.12em;text-transform:uppercase;border:1px solid #a68c63;border-radius:2px;justify-content:center;align-items:center;min-height:46px;margin:0;padding:13px 20px;font:500 10px/1.4 Montserrat,Arial,sans-serif;text-decoration:none;display:inline-flex}.primary-action{color:#fffdf5;background:#727f68;border-color:#727f68}.primary-action:hover{background:#5f6e55}.after .link{color:#655442;background:#faf5eb99}.details-jump{letter-spacing:.1em;color:#72654f;margin-top:19px;font:500 10px/1.5 Montserrat,Arial,sans-serif;text-decoration:none;display:inline-block}.details-jump span{margin-left:5px}.details{max-width:680px;margin:0 auto 30px;padding:0 18px;scroll-margin-top:20px}.details-inner{background:#fcf8f0;padding:40px 44px;box-shadow:0 12px 36px #6b573b0e}.details .section{padding:36px 0}.details h2{margin:10px 0 20px;font-size:clamp(34px,6.5vw,46px);line-height:1.1}.details .kicker{letter-spacing:.2em;color:#65745c;font-size:9px;line-height:1.7}.details p{color:#625647;font-size:19px;line-height:1.6}.celebration-date{letter-spacing:.1em;text-transform:uppercase;color:#6e5c42;font:500 11px/1.8 Montserrat,Arial,sans-serif}.celebration-place{margin-top:7px;font-size:24px;line-height:1.2}.celebration-city{color:#7a725f;margin-top:4px;font-size:19px}.celebration-summary{text-align:center;margin-bottom:24px}.program-row{align-items:center;gap:24px;padding:17px 0;font-size:20px;line-height:1.35}.program-row span:first-child{flex:1}.program-row span:last-child{color:#65735c;flex:0 48%;font-size:18px}.details .program-note{text-align:center;margin:18px 0 0;font-size:16px;line-height:1.6}.palette{text-align:center;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:24px 0 18px;padding:0;list-style:none;display:grid}.palette i{aspect-ratio:1;background:var(--swatch);border:1px solid #8d77552a;border-radius:50%;width:clamp(28px,7.5vw,48px);margin:0 auto 10px;display:block;box-shadow:inset 0 0 0 3px #fff2}.palette span{color:#6f6251;font:500 9px/1.6 Montserrat,Arial,sans-serif;display:block}.details .palette-note{text-align:center;margin:0;font-size:17px}.details details{padding:0}.details summary{justify-content:space-between;align-items:center;gap:16px;min-height:60px;padding:16px 0;font-size:20px;font-weight:500;line-height:1.3;list-style:none;display:flex}.details summary::-webkit-details-marker{display:none}.details summary:after{content:"+";color:#8a795a;flex:none;font:300 23px/1 Georgia,serif}.details details[open] summary:after{content:"−"}.details details p{margin:0 0 18px;padding-right:14px;font-size:18px;line-height:1.6}.gifts p{font-size:19px}.gifts p:last-child{margin-top:20px;font-style:italic}.site-footer{text-align:center;color:#76664e;padding:10px 20px 40px}.footer-names{font:italic 30px/1.3 Cormorant Garamond,Georgia,serif}.footer-line{border:0;border-top:1px solid #bda478;width:42px;margin:14px auto}.footer-date{letter-spacing:.16em;text-transform:uppercase;font:500 9px/1.7 Montserrat,Arial,sans-serif}.dialog{border-radius:3px}.dialog .close{min-width:44px;min-height:44px;top:8px;right:8px}.form input,.form select,.form textarea{min-height:46px;font-size:18px}.submit{background:#727f68;min-height:46px}.submit:disabled{opacity:.6;cursor:wait}.editor textarea{resize:vertical;background:#fffdf8;border:1px solid #cbb89b;width:100%;min-height:100px;margin-top:5px;padding:10px;font:16px/1.4 Georgia,serif;display:block}.editor label.wide{grid-column:1/-1}.editor-actions button{min-height:44px}.editor-grid input:invalid{border-color:#af6554}.music-toggle{z-index:20;color:#62543e;background:#fcf8f0f2;border:1px solid #baa783;border-radius:24px;min-width:44px;max-width:170px;min-height:44px;padding:10px 16px;font:500 10px/1.4 Montserrat,Arial,sans-serif;position:fixed;bottom:16px;left:16px;box-shadow:0 3px 14px #51463518}.music-toggle[hidden]{display:none}.music-toggle[aria-pressed=true]:before{content:"Ⅱ";margin-right:8px}.music-toggle[aria-pressed=false]:before{content:"♫";margin-right:8px}button,a{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}@media (min-width:900px){.hero{padding-top:38px}.details-inner{padding:44px 52px}}@media (max-width:480px){.hero{padding:16px 10px 20px}.poster{width:100%}.after{margin-bottom:24px}.after p{font-size:23px}.details{padding:0 12px}.details-inner{padding:32px 24px}.details .section{padding:30px 0}.details h2{font-size:36px}.details p{font-size:18px}.details .program-note{font-size:16px}.program-row{gap:16px;font-size:19px}.program-row span:last-child{font-size:17px}.palette{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 12px}.palette i{width:44px}.palette span{font-size:10px}.details details p{font-size:17px}.editor-grid{grid-template-columns:1fr}.gate-inner:before{margin-bottom:22px}.gate-date{font-size:9px}.gifts p{font-size:18px}}@media (max-height:650px){.gate{padding:20px}.gate-inner:before{display:none}.gate h1{font-size:38px}.gate .sub{font-size:18px}.envelope{width:230px;margin:26px auto 20px}.gate-date{margin-top:10px}.gate .open-hint{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}}.invitation-app{background:radial-gradient(ellipse at 50% 0, var(--ivory), color-mix(in srgb, var(--champagne), var(--ivory) 68%));color:var(--ink);min-height:100vh}.rsvp-art{justify-content:center;align-items:center;text-decoration:none;display:flex}.venue-replacement{z-index:2;background:radial-gradient(#fcf6ec 55%,#f9f2e8 100%);width:92%;height:22.8%;position:absolute;top:45.3%;left:4%;-webkit-mask-image:linear-gradient(#0000,#000 8% 94%,#0000);mask-image:linear-gradient(#0000,#000 8% 94%,#0000)}.venue-replacement img{object-fit:contain;width:100%;height:100%}.section{scroll-margin-top:24px}.entourage-section,.blessing-gallery{text-align:center}.entourage-group h3{margin:24px 0 8px;font-size:25px;font-weight:500}.entourage-group p{margin:3px 0}.site-footer p{font-size:18px;line-height:1.5}.palette{grid-template-columns:repeat(auto-fit,minmax(52px,1fr))}.service-state{text-align:center;place-content:center;gap:16px;min-height:100vh;padding:32px;display:grid}.service-state h1{margin:0;font-size:50px;font-weight:400}.service-state p{font-size:20px}.envelope-stage{width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);perspective:1200px;background:radial-gradient(at 28% 18%,#fffcf6 0,#f2eadc 52%,#e5d9c5 100%);border:0;margin:0;padding:40px 24px;position:fixed;inset:0;overflow:auto}.envelope-stage[open]{justify-content:center;align-items:center;display:flex}.envelope-stage::backdrop{background:#eee4d4}.envelope-scene{text-align:center;width:min(100%,600px);margin:auto;position:relative}.cover-eyebrow{letter-spacing:.25em;text-transform:uppercase;color:#82705b;margin:0 0 16px;font:500 9px/1.9 Montserrat,Arial,sans-serif}.envelope-scene h1{letter-spacing:-.025em;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.15em;margin:0 0 12px;font:400 clamp(40px,6vw,60px)/1.13 Cormorant Garamond,Georgia,serif;display:flex}.envelope-scene h1 i{color:#819078;font-size:.87em;font-weight:400}.cover-tagline{color:#826f58;margin:0;font-size:22px;font-style:italic}.envelope-object{aspect-ratio:1.57;perspective:1100px;width:min(82vw,430px);margin:62px auto 35px;position:relative;transform:rotate(-3deg)}.envelope-object:after{content:"";z-index:-1;filter:blur(22px);opacity:.24;background:#705238;border-radius:50%;position:absolute;inset:78% 4% -4%;transform:skew(-12deg)}.envelope-trigger{isolation:isolate;perspective:1100px;text-align:center;width:100%;height:100%;transform-style:preserve-3d;background:0 0;border:0;border-radius:3px;padding:0;display:block;position:absolute;inset:0;box-shadow:0 2px 2px #8a6b3e33,0 14px 20px -5px #6f4e2e3d}.envelope-trigger:focus-visible{outline-offset:15px;outline:2px solid #7c8e73}.envelope-trigger:after{content:"";z-index:8;pointer-events:none;opacity:.24;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='paper'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23paper)' opacity='.45'/%3E%3C/svg%3E");border-radius:3px;position:absolute;inset:0}.envelope-back{background:linear-gradient(125deg, color-mix(in srgb, var(--paper), #fff 15%), color-mix(in srgb, var(--paper), #8e6b40 22%));border-radius:3px;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #a18a6344}.envelope-letter{z-index:2;background:linear-gradient(125deg,#fffcf3,#f7edda);border:1px solid #c6af8470;flex-direction:column;justify-content:center;align-items:center;transition:transform .7s cubic-bezier(.22,.68,.2,1) .4s;display:flex;position:absolute;inset:7% 8% 9%;overflow:hidden;box-shadow:0 0 8px #70533030}.envelope-letter:before{content:"";border:1px solid #c6af8460;position:absolute;inset:8px}.letter-monogram{color:#9c875e;letter-spacing:-.05em;font:italic 42px/1.2 Bodoni Moda,Georgia,serif}.letter-monogram i{color:#86917b;padding:0 .15em;font-size:.7em}.letter-caption{text-transform:uppercase;letter-spacing:.21em;color:#827156;margin-top:16px;font:500 8px/1.6 Montserrat,Arial,sans-serif}.letter-date{color:#948164;margin-top:12px;font:italic 16px/1.4 Cormorant Garamond,Georgia,serif}.envelope-fold{z-index:3;position:absolute;inset:0}.envelope-left{clip-path:polygon(0 0,56% 55%,0 100%);background:linear-gradient(33deg, color-mix(in srgb, var(--paper), #b49566 18%), var(--paper) 68%, #f5e8d4);filter:drop-shadow(1px 0 1px #987f5855)}.envelope-right{clip-path:polygon(100% 0,44% 55%,100% 100%);background:linear-gradient(140deg, #f6e8cf, var(--paper) 58%, color-mix(in srgb, var(--paper), #b49566 12%))}.envelope-pocket{z-index:4;clip-path:polygon(0 14%,50% 62%,100% 14%,100% 100%,0 100%);background:linear-gradient(0deg, color-mix(in srgb, var(--paper), #fff 5%) 0%, var(--paper) 62%, color-mix(in srgb, var(--paper), #b49b78 22%));border-radius:0 0 3px 3px;position:absolute;inset:0;box-shadow:inset 0 -1px #b29b7166}.envelope-pocket:before{content:"";background:linear-gradient(32deg,#0000 49.7%,#b39a7430 50%,#fff4de66 50.2%,#0000 50.5%),linear-gradient(-32deg,#0000 49.7%,#b39a7420 50%,#fff4de77 50.2%,#0000 50.5%);position:absolute;inset:0}.envelope-lid,.envelope-flap-shadow{clip-path:polygon(0 0,100% 0,100% 3%,53% 65%,50% 67%,47% 65%,0 3%);transform-origin:50% 0;z-index:6;backface-visibility:hidden;transition:transform .72s cubic-bezier(.35,.1,.4,1) .12s,opacity .4s .4s;position:absolute;inset:0 0 13%}.envelope-lid{background:linear-gradient(174deg, #fff5e4 0%, color-mix(in srgb, var(--paper), #fff 15%) 58%, var(--paper) 100%);box-shadow:inset 0 1px #fff9ea}.envelope-lid:after{content:"";opacity:.5;background:linear-gradient(144deg,#0000 49.7%,#bba17a55 50%,#0000 50.5%),linear-gradient(-144deg,#0000 49.7%,#bba17a55 50%,#0000 50.5%);position:absolute;inset:0}.envelope-flap-shadow{z-index:5;filter:blur(2px);opacity:.3;background:#93754f;transform:translateY(3px)}.wax-seal{z-index:10;background:radial-gradient(ellipse at 29% 16%, #e2b398 0%, color-mix(in srgb, var(--wax), #edc9a5 25%) 20%, var(--wax) 57%, color-mix(in srgb, var(--wax), #553128 28%) 100%);border-radius:47% 53% 44% 56%/53% 44% 56% 47%;place-items:center;width:76px;height:73px;transition:transform .3s,opacity .26s;display:grid;position:absolute;top:55%;left:50%;transform:translate(-50%,-50%)rotate(5deg);box-shadow:0 4px 4px #68423566,0 1px 1px #fff6d5aa,inset 2px 2px 2px #f3ccad88,inset -2px -3px 3px #58352e88}.wax-seal:after{content:"";pointer-events:none;border-radius:46% 54% 52% 48%;position:absolute;inset:5px;box-shadow:inset 0 0 0 1px #efc2a477,0 1px 1px #58352e55}.wax-rim{border:1px solid #603b3055;border-radius:50%;position:absolute;inset:10px;box-shadow:0 1px #edc3a866,inset 0 1px 2px #5e382e55}.wax-imprint{color:color-mix(in srgb, var(--wax), #432a23 48%);letter-spacing:-.08em;text-shadow:0 1px #ebc1a6aa,0 -1px 1px #57312744;align-items:baseline;gap:1px;font:italic 25px/1 Georgia,serif;display:flex;position:relative;transform:rotate(-5deg)}.wax-imprint i{margin:0 1px;font-size:.7em}.envelope-open-label{color:#6a5b46;text-transform:uppercase;letter-spacing:.22em;background:0 0;border:0;border-bottom:1px solid #a48b6266;justify-content:center;align-items:center;gap:22px;min-height:44px;padding:10px 5px;font:500 10px/1.6 Montserrat,Arial,sans-serif;display:inline-flex}.envelope-open-label span{font-size:18px;font-weight:400}.cover-date{letter-spacing:.15em;text-transform:uppercase;color:#7c6c54;margin:25px 0 0;font:500 9px/1.8 Montserrat,Arial,sans-serif}.cover-date span{padding:0 8px}.cover-hint{color:#8e7d65;margin:9px 0 0;font:italic 17px/1.5 Cormorant Garamond,Georgia,serif}.is-unsealing .wax-seal{opacity:0;transform:translate(-50%,-50%)rotate(-5deg)scale(1.15)}.is-unsealing .envelope-lid{transform:rotateX(178deg)}.is-unsealing .envelope-flap-shadow{opacity:0}.is-unsealing .envelope-letter{transform:translateY(-42%)}.is-unsealing .envelope-open-label{opacity:0}.is-unsealing .envelope-trigger{cursor:default}.rsvp-section{scroll-margin-top:24px}.rsvp-intro{text-align:center}.rsvp-form{text-align:left;gap:18px;display:grid}.rsvp-field{letter-spacing:.035em;flex-direction:column;gap:8px;margin:0;font:500 10px/1.6 Montserrat,Arial,sans-serif;display:flex}.rsvp-field input,.rsvp-field select,.rsvp-field textarea{color:#4d443a;background:#fffdf8;border:1px solid #cbb99c;border-radius:2px;width:100%;min-width:0;min-height:46px;padding:12px;font:400 18px/1.35 Cormorant Garamond,Georgia,serif}.rsvp-field textarea{resize:vertical;min-height:88px}.rsvp-attendance{border:0;min-width:0;margin:4px 0;padding:0}.rsvp-attendance legend{margin-bottom:10px;padding:0;font:500 10px/1.7 Montserrat,Arial,sans-serif}.rsvp-attendance>div{grid-template-columns:1fr 1fr;gap:9px;display:grid}.rsvp-attendance label{cursor:pointer;border:1px solid #d7c7ad;border-radius:2px;align-items:center;gap:9px;min-height:52px;padding:12px;font-size:17px;line-height:1.25;display:flex}.rsvp-attendance label.is-selected{background:#e8ecdf80;border-color:#7e8d70}.rsvp-attendance input{accent-color:#727f68;flex:none;width:16px;height:16px;margin:0}.rsvp-button{color:#fffdf6;text-transform:uppercase;letter-spacing:.1em;background:#727f68;border:1px solid #727f68;border-radius:2px;min-height:46px;padding:13px 18px;font:500 10px/1.7 Montserrat,Arial,sans-serif}.rsvp-button:disabled{opacity:.6;cursor:wait}.rsvp-status-card{text-align:center;overflow-wrap:anywhere;background:#e9eadf80;border:1px solid #b5b99d;margin:18px 0;padding:22px;font-size:19px;line-height:1.55}.rsvp-status-card.result-waitlisted{background:#f3e8d5;border-color:#b39b70}.rsvp-status-card strong{font-weight:500}.rsvp-status-card p{font-size:17px}.rsvp-guest-heading{overflow-wrap:anywhere;flex-direction:column;gap:5px;margin-bottom:18px;display:flex}.rsvp-guest-heading strong{font-size:24px;font-weight:500}.rsvp-guest-heading small{color:#827353;font:500 9px/1.6 Montserrat,Arial,sans-serif}.rsvp-member{border-top:1px solid #dfd3c1;padding:22px 0}.rsvp-member:first-child{border-top:0;padding-top:4px}.rsvp-member .rsvp-field{margin-top:18px}.rsvp-companion-group{gap:12px;display:grid}.rsvp-blessing-consent{align-items:flex-start;gap:10px;margin-top:18px;display:flex}.rsvp-blessing-consent input{accent-color:#727f68;width:17px;height:17px;margin:3px 0 0}.rsvp-blessing-consent span{flex:1}.rsvp-blessing-consent strong{font:500 11px/1.5 Montserrat,Arial,sans-serif;display:block}.rsvp-blessing-consent small{color:#766954;margin-top:5px;font-size:16px;line-height:1.4;display:block}.preview-notice{text-align:center;border:1px dashed #b5aa94;padding:10px 14px;color:#776a51!important;margin:18px 0!important;font:400 10px/1.7 Montserrat,Arial,sans-serif!important}.rsvp-error{background:#f4e1d8;border-left:2px solid #b27b69;padding:14px;color:#7e493b!important;font-size:17px!important}.rsvp-view-switch{gap:8px;margin:20px 0;display:flex}.rsvp-view-switch button,.rsvp-text-button{color:#69583e;background:0 0;border:1px solid #c1af8e;min-height:44px;padding:10px 12px;font:500 10px/1.6 Montserrat,Arial,sans-serif}.rsvp-view-switch button[aria-pressed=true]{background:#e6eadf;border-color:#7e8d70}.rsvp-text-button{margin:20px auto 0;display:block}.rsvp-section h3{font-size:27px;font-weight:500}.music-toggle{z-index:20}.react-dialog{color:#62533f;background:#fcf7ed;border:1px solid #c1a56e;width:min(94vw,500px);max-height:90vh;padding:32px}.react-dialog::backdrop{background:#3c332a88}.admin-app{color:#403e35;background:#f6f4ef;min-height:100vh;font-family:Montserrat,Arial,sans-serif;font-size:12px}.admin-header{z-index:21;background:#fdfbf6;border-bottom:1px solid #ded9cc;justify-content:space-between;align-items:center;gap:20px;padding:20px 28px;display:flex;position:sticky;top:0}.admin-brand{color:#67563a;white-space:nowrap;font:italic 27px/1.3 Cormorant Garamond,Georgia,serif;text-decoration:none}.admin-brand span{color:#4d4c43;margin-left:18px;font:500 11px/1.5 Montserrat,Arial,sans-serif}.admin-header p{color:#817967;margin:5px 0 0;font-size:10px;line-height:1.6}.admin-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-app button,.admin-login button{color:#514c3e;background:#fffdf8;border:1px solid #c7beaa;border-radius:4px;min-height:40px;padding:9px 12px;font:500 10px/1.5 Montserrat,Arial,sans-serif}.admin-app button:disabled{opacity:.45;cursor:default}.admin-actions button:last-child,.admin-app button.admin-primary{color:#fff;background:#68765c;border-color:#68765c}.admin-workspace{grid-template-columns:170px minmax(300px,430px) minmax(380px,1fr);align-items:start;gap:24px;max-width:1700px;margin:auto;padding:26px 24px;display:grid}.admin-nav{gap:4px;display:grid;position:sticky;top:124px}.admin-nav button{text-align:left;background:0 0;border-color:#0000;min-height:38px;padding:9px 12px;font-size:11px}.admin-nav button[aria-current=page]{color:#47533b;background:#e3e8da;border-color:#d0d8c3}.admin-panel{background:#fdfbf6;border:1px solid #e1dccc;border-radius:6px;min-width:0;padding:24px}.admin-panel h1{color:#5e503b;margin:8px 0 26px;font:400 38px/1.1 Cormorant Garamond,Georgia,serif}.admin-kicker{letter-spacing:.13em;text-transform:uppercase;color:#7b836c;margin:0;font:500 9px/1.7 Montserrat,Arial,sans-serif}.admin-fields{border:0;min-width:0;margin:0;padding:0}.admin-field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px;display:grid}.admin-field{color:#5a5548;flex-direction:column;gap:7px;min-width:0;margin:0;font:500 10px/1.5 Montserrat,Arial,sans-serif;display:flex}.admin-field-wide{grid-column:1/-1}.admin-field input,.admin-field textarea,.admin-field select,.admin-upload input{color:#403c33;background:#fffefb;border:1px solid #d6cdbb;border-radius:4px;width:100%;min-width:0;min-height:42px;padding:10px;font:400 13px/1.5 Montserrat,Arial,sans-serif}.admin-field textarea{resize:vertical;min-height:90px}.admin-checkbox{align-items:center;gap:9px;min-height:42px;font-size:11px;line-height:1.6;display:flex}.admin-checkbox input{accent-color:#68765c;width:16px;height:16px}.admin-color{gap:8px;display:flex}.admin-color input[type=color]{width:44px;min-width:44px;height:42px;padding:4px}.admin-nested h3{margin:0 0 14px;font-size:11px;font-weight:500}.admin-array{gap:15px;display:grid}.admin-array-item{background:#f8f5ee;border:1px solid #e1dacb;border-radius:4px;min-width:0;padding:14px}.admin-array-tools{align-items:center;gap:5px;margin-bottom:15px;display:flex}.admin-array-tools>span{overflow-wrap:anywhere;flex:1;font-size:11px;line-height:1.5}.admin-array-tools button{min-height:32px;padding:4px 6px;font-size:9px}.admin-array-tools .admin-remove{color:#936555}.admin-array-item .admin-field-grid{grid-template-columns:1fr}.admin-add{width:100%;border-style:dashed!important}.admin-upload{gap:5px;display:grid}.admin-upload input[type=file]{min-height:35px;padding:6px;font-size:10px}.admin-upload small{color:#95624f;font-size:10px;line-height:1.6}.admin-help{color:#7a705e;margin:-10px 0 24px;font-size:11px;line-height:1.8}.admin-notice{background:#efe9d8;border-bottom:1px solid #d6c9ac;align-items:center;gap:18px;padding:13px 28px;font-size:12px;line-height:1.7;display:flex}.admin-notice button{flex:none;margin-left:auto}.admin-preview{min-width:0;position:sticky;top:122px}.admin-preview-bar{color:#706651;justify-content:space-between;align-items:center;gap:12px;min-height:40px;margin-bottom:14px;font-size:11px;display:flex}.admin-preview-bar>div{gap:6px;display:flex}.admin-preview-bar button{min-height:34px;padding:7px 9px;font-size:9px}.admin-preview-bar button[aria-pressed=true]{background:#e3e8da;border-color:#a6b397}.preview-viewport{scroll-behavior:smooth;border:1px solid #d6cdbb;border-radius:8px;max-height:calc(100vh - 180px);margin:0 auto;overflow:auto;box-shadow:0 8px 25px #6d614710;container-type:inline-size}.preview-viewport.phone{width:390px;max-width:100%}.preview-viewport.wide{width:100%}.admin-preview .invitation-app{font-family:Cormorant Garamond,Georgia,serif}.admin-preview .primary-action,.admin-preview .rsvp-button{color:#fff;background:#727f68;border-radius:2px}.admin-preview .poster .rsvp-art{min-height:0;padding:0;font:400 4cqw/1 Cormorant Garamond,Georgia,serif}.admin-preview .invitation-app .hero{padding:16px 10px 20px}.admin-preview .invitation-app .details-inner{padding:30px 24px}.admin-preview .invitation-app .palette{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 12px}.admin-preview .invitation-app .details h2{font-size:36px}.admin-preview .invitation-app .palette span{font-size:10px}.admin-preview .invitation-app .details{padding:0 12px}.admin-preview .invitation-app .palette i{width:44px}.admin-preview .invitation-app button{font-family:Montserrat,Arial,sans-serif}.admin-preview .rsvp-attendance input{width:16px;height:16px}.admin-login{background:#f2ecdf;place-items:center;min-height:100vh;padding:24px;font-family:Montserrat,Arial,sans-serif;display:grid}.admin-login form{background:#fcf8ef;border:1px solid #d2c4a5;gap:20px;width:100%;max-width:420px;padding:38px;display:grid}.admin-login h1{color:#6a583b;margin:0;font:400 48px/1.1 Cormorant Garamond,Georgia,serif}.admin-login a{text-align:center;color:#7a705b;font-size:11px}.admin-login p[role=alert]{color:#97664d;font-size:12px;line-height:1.6}@media (max-width:1200px){.admin-workspace{grid-template-columns:160px minmax(270px,1fr) minmax(330px,1fr);gap:16px;padding:20px 16px}.admin-panel{padding:20px}.admin-preview-bar{flex-direction:column;align-items:flex-start}}@media (max-width:1000px){.admin-workspace{grid-template-columns:minmax(280px,1fr) minmax(330px,1fr)}.admin-nav{grid-column:1/-1;padding-bottom:5px;display:flex;position:static;overflow:auto}.admin-nav button{white-space:nowrap}.admin-header{align-items:flex-start;position:static}.admin-actions{justify-content:flex-end}.admin-preview{top:20px}}@media (max-width:680px){.admin-header{padding:18px;display:block}.admin-actions{justify-content:flex-start;margin-top:16px}.admin-workspace{grid-template-columns:1fr;padding:18px 12px}.admin-field-grid{grid-template-columns:1fr}.admin-preview{position:static}.admin-preview-bar{flex-direction:row;align-items:center}.preview-viewport{max-height:80vh}.admin-panel{padding:22px}.admin-notice{padding:12px 18px;display:block}.admin-notice button{margin-top:10px}.admin-brand span{margin-left:10px}.admin-preview .invitation-app .rsvp-attendance>div{grid-template-columns:1fr}.admin-login form{padding:28px}}@media (max-width:480px){.envelope-stage{padding:32px 18px}.cover-eyebrow{max-width:280px;margin:0 auto 14px;font-size:8px}.envelope-scene h1{gap:.12em;font-size:43px}.cover-tagline{font-size:20px}.envelope-object{width:min(84vw,360px);margin:55px auto 28px}.wax-seal{width:66px;height:64px}.wax-imprint{font-size:22px}.letter-monogram{font-size:34px}.letter-caption{letter-spacing:.15em;margin-top:10px;font-size:6px}.letter-date{font-size:14px}.cover-date{letter-spacing:.12em;font-size:8px}.cover-hint{font-size:16px}.palette{grid-template-columns:repeat(3,minmax(0,1fr))}.rsvp-attendance>div{grid-template-columns:1fr}.rsvp-field input{font-size:18px}}@media (max-height:650px){.envelope-stage{padding:20px}.envelope-scene h1{font-size:38px}.cover-tagline{font-size:18px}.envelope-object{width:280px;margin:35px auto 20px}.cover-eyebrow{margin-bottom:8px;font-size:8px}.cover-date{margin-top:14px}.cover-hint{display:none}.wax-seal{width:60px;height:58px}.wax-imprint{font-size:20px}}@media (prefers-reduced-motion:reduce){.envelope-object,.envelope-letter,.envelope-lid,.wax-seal{transition:none!important;animation:none!important}.envelope-object{transform:none}html{scroll-behavior:auto}}.envelope-stage:focus{outline:none}.envelope-object{transform:none}.has-photo-envelope{aspect-ratio:1.57;margin-top:50px;margin-bottom:30px}.has-photo-envelope:after{display:none}.has-photo-envelope .envelope-trigger{box-shadow:none;isolation:auto;border-radius:0}.has-photo-envelope .envelope-trigger:after{display:none}.envelope-photo{z-index:6;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 12px 12px #71533220);width:100%;height:100%;transition:transform .8s .25s,opacity .6s .5s;position:absolute;inset:0}.has-photo-envelope .envelope-letter{opacity:0;transition:transform .75s cubic-bezier(.22,.68,.2,1) .2s,opacity .3s .12s;inset:15% 13% 14%}.has-photo-envelope .wax-seal{aspect-ratio:1;width:21%;height:auto;top:67.5%;transform:translate(-50%,-50%)}.wax-seal.has-photo-wax{box-shadow:none;filter:drop-shadow(0 2px 2px #58352e4d);background:0 0;border-radius:0}.wax-seal.has-photo-wax:after{display:none}.wax-photo{object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.has-photo-wax .wax-imprint{color:#6b4035;text-shadow:0 1px #e6b49b99,0 -1px 1px #633c3055;opacity:.82;font-size:24px;transform:none}.is-unsealing .has-photo-envelope .wax-seal{opacity:0;transform:translate(-50%,-68%)scale(1.12)}.is-unsealing .has-photo-envelope .envelope-letter{opacity:1;transform:translateY(-46%)}.is-unsealing .has-photo-envelope .envelope-photo{opacity:0;transform:translateY(12%)}@media (max-width:480px){.has-photo-envelope{width:min(90vw,390px);margin-top:44px;margin-bottom:24px}.has-photo-wax .wax-imprint{font-size:21px}}@media (max-height:650px){.has-photo-envelope{width:300px;margin:28px auto 18px}.has-photo-wax .wax-imprint{font-size:18px}}@media (prefers-reduced-motion:reduce){.envelope-photo,.has-photo-envelope .envelope-letter{transition:none!important}}
