.variant--desktop{display:none!important}.variant--mobile{display:flex!important}@media (width>=1024px){.variant--mobile{display:none!important}.variant--desktop{display:flex!important}}[hidden]{display:none!important}:root{--wedding-paper:#f6f3ee;--wedding-paper-light:#fbfaf7;--wedding-ink:#242220;--wedding-moss:#4f5a46;--wedding-olive:#707b5e;--wedding-stone:#dcd5c9}body.invitation-locked{overflow:hidden}body.invitation-locked .variant{opacity:0;transform:translateY(14px)scale(.995)}body.invitation-revealing .variant{opacity:1;transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1);transform:none}.envelope-cover{z-index:10000;padding:max(28px, env(safe-area-inset-top)) 22px max(28px, env(safe-area-inset-bottom));color:var(--wedding-ink);background:radial-gradient(at 25% 18%,#fffdf9 0,#f4f0e9 52%,#e9e3d8 100%);flex-direction:column;justify-content:center;align-items:center;gap:clamp(32px,6vh,58px);transition:opacity .8s;display:flex;position:fixed;inset:0;overflow:hidden}.envelope-cover:focus{outline:none}.envelope-cover:before{content:"";pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 3px,#72634b05 3px 4px);position:absolute;inset:0}.envelope-cover.is-revealing{opacity:0;pointer-events:none}.envelope-intro{z-index:3;text-align:center;flex-shrink:0;width:min(90vw,580px);transition:opacity .35s,transform .5s;position:relative}.envelope-overline{color:var(--wedding-moss);letter-spacing:.28em;font:500 11px/1.5 Montserrat,sans-serif}.envelope-script{color:var(--wedding-moss);margin:17px 0 10px;font:400 clamp(49px,12vw,82px)/1.05 Pinyon Script,Great Vibes,cursive}.envelope-script span{font-size:.68em}.envelope-message{color:#4a4944;letter-spacing:.03em;margin:0;font:300 clamp(16px,3.8vw,19px)/1.65 Cormorant Garamond,serif}.envelope{z-index:2;aspect-ratio:1.57;perspective:1400px;perspective-origin:50% 15%;flex-shrink:0;width:min(100%,530px);position:relative}.envelope:after{content:"";z-index:-1;filter:blur(19px);background:#44362238;border-radius:50%;position:absolute;inset:85% 6% -10%}.envelope-back{z-index:0;background:linear-gradient(#c8bba4,#e7decb 42%,#f0e8da);border:1px solid #d0c5b1;border-radius:3px;position:absolute;inset:0;box-shadow:0 2px 3px #44362224,0 20px 32px -16px #44362257,inset 0 2px 5px #4c391f2b}.envelope-letter{z-index:2;color:var(--wedding-moss);background:linear-gradient(135deg,#fffefb,#f6f2e9);border:1px solid #dcd3c2;border-radius:2px;flex-direction:column;justify-content:flex-start;align-items:center;padding-top:14%;transition:transform .65s cubic-bezier(.2,.7,.25,1) .55s;display:flex;position:absolute;inset:5% 7% 6%;box-shadow:inset 0 0 0 7px #faf7ef,inset 0 0 0 8px #e3daca,0 3px 12px #483a241f}.envelope-letter span{font:400 clamp(24px,6vw,38px)/1.15 Pinyon Script,cursive}.envelope-letter small{letter-spacing:.25em;margin-top:12px;font:500 10px/1 Montserrat,sans-serif}.envelope-flap{z-index:5;transform-origin:top;height:64%;transform-style:preserve-3d;transition:transform 1.05s cubic-bezier(.38,.08,.22,1),z-index 0s .53s;position:absolute;inset:0 0 auto}.envelope-flap-face{backface-visibility:hidden;position:absolute;inset:0}.envelope-flap-face--front{filter:drop-shadow(0 5px 3px #4c3b233d)}.envelope-flap-paper,.envelope-flap-face--back{clip-path:polygon(0 0,100% 0,52% 98%,50% 100%,48% 98%);background:linear-gradient(165deg,#fffaf0 5%,#f0e7d5 65%,#e3d6bf);position:absolute;inset:0}.envelope-flap-face--back{clip-path:none;background:0 0;transform:rotateX(180deg)}.envelope-fold{z-index:3;pointer-events:none;filter:drop-shadow(0 -1px 1px #53432c26);position:absolute;inset:0}.envelope-fold:before{content:"";position:absolute;inset:0}.envelope-fold--left:before{clip-path:polygon(0 0,53% 54%,0 100%);background:linear-gradient(35deg,#e6dcc9,#f8f2e6 80%)}.envelope-fold--right:before{clip-path:polygon(100% 0,47% 54%,100% 100%);background:linear-gradient(325deg,#e0d3bb,#f5ecdc 80%)}.envelope-fold--bottom{z-index:4;filter:drop-shadow(0 -2px 2px #53432c21)}.envelope-fold--bottom:before{clip-path:polygon(0 100%,0 98%,48% 46%,50% 45%,52% 46%,100% 98%,100% 100%);background:linear-gradient(5deg,#eee4d1,#fcf7ed)}.wax-seal{z-index:1;aspect-ratio:1;color:#f5dfaf;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:radial-gradient(at 28% 18%,#dfbf77,#b58a49 43%,#89612d 76%,#cda45e);border:1px solid #96703c;border-radius:47% 53% 48% 52%/51% 46% 54% 49%;place-items:center;width:clamp(66px,17vw,86px);padding:0;transition:box-shadow .2s;animation:2.5s ease-in-out infinite seal-breathe;display:grid;position:absolute;top:100%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 2px 3px #ffedb7cc,inset 0 -3px 4px #462b0f5c,inset 0 0 0 5px #e0ba6f80,0 5px 7px #442f144d}.wax-seal:before{content:"";pointer-events:none;border:1px solid #f5daa299;border-radius:50%;position:absolute;inset:11%;box-shadow:inset 0 1px 2px #7e592e,0 1px 1px #f7dca3b3}.wax-seal:hover{box-shadow:inset 0 2px 4px #ffedb7e6,inset 0 0 0 5px #e0ba6f8c,0 7px 12px #442f1454}.wax-seal:focus-visible{outline:2px solid var(--wedding-moss);outline-offset:7px}.wax-seal .seal-monogram{text-shadow:0 -1px 1px #795126,0 1px 1px #efd398;font:400 clamp(23px,5vw,31px)/1 Pinyon Script,cursive;position:relative}.wax-seal .seal-amp{font-size:.65em}.seal-pointer{z-index:2;filter:drop-shadow(0 2px 2px #2a271ebf);pointer-events:none;opacity:1;width:25px;height:25px;transition:opacity .18s,transform .18s;position:absolute;bottom:-6px;right:-6px;overflow:visible;transform:scale(1)}.is-opening .seal-pointer{opacity:0;transform:scale(.72)translate(2px,2px)}.envelope-hint{z-index:3;color:#65705d;letter-spacing:.2em;text-align:center;flex-shrink:0;margin:0;font:500 11px/1.5 Montserrat,sans-serif;transition:opacity .25s;position:relative}@keyframes seal-breathe{0%,to{transform:translate(-50%,-50%)scale(1);box-shadow:inset 0 2px 3px #ffedb7cc,inset 0 -3px 4px #462b0f5c,inset 0 0 0 5px #e0ba6f80,0 5px 7px #442f144d}50%{transform:translate(-50%,-50%)scale(1.085);box-shadow:inset 0 2px 3px #ffedb7e0,inset 0 -3px 4px #462b0f5c,inset 0 0 0 5px #e8c57e9e,0 8px 14px #442f1466,0 0 18px #b58a4933}}.envelope-bloom{z-index:1;opacity:.78;pointer-events:none;width:255px;height:245px;position:absolute}.envelope-bloom--top{top:-70px;left:-65px;transform:rotate(-8deg)}.envelope-bloom--bottom{bottom:-78px;right:-80px;transform:rotate(174deg)}.envelope-bloom i{transform-origin:0 100%;background:linear-gradient(140deg,#dfe6d8,#849a7d 60%,#45614e);border:1px solid #425b442e;border-radius:100% 0;width:92px;height:36px;position:absolute;box-shadow:inset 4px -3px 8px #ffffff3d}.envelope-bloom i:first-child{top:37px;left:48px;transform:rotate(23deg)}.envelope-bloom i:nth-child(2){top:84px;left:14px;transform:rotate(-10deg)scale(.86)}.envelope-bloom i:nth-child(3){top:125px;left:63px;transform:rotate(32deg)scale(.74)}.envelope-bloom i:nth-child(4){top:13px;left:122px;transform:rotate(67deg)scale(.74)}.envelope-bloom span{background:radial-gradient(at 50% 70%,#d9d2ba 0 15%,#0000 17%),radial-gradient(at 31% 48%,#fffefa 0 28%,#0000 30%),radial-gradient(at 69% 48%,#f8f5ec 0 28%,#0000 30%),#eee9d9;border-radius:50% 50% 46% 46%;width:54px;height:54px;position:absolute;top:137px;left:111px;box-shadow:0 5px 12px #404a3921}.is-opening .envelope-intro{opacity:0;transform:translateY(-8px)}.is-opening .envelope-hint{opacity:0}.is-opening .envelope-flap{z-index:1;transform:rotateX(-178deg)}.is-opening .envelope-letter{transform:translateY(-31%)}.is-opening .wax-seal{animation:none}@media (height<=650px){.envelope-cover{justify-content:flex-start;gap:28px;overflow-y:auto}.envelope-bloom{display:none}.envelope{width:min(100%,410px)}.envelope-script{margin-top:8px;font-size:clamp(42px,10vw,64px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}.wax-seal{animation:none}.envelope-cover{transition-duration:.12s}body.invitation-locked .variant{transform:none}body.invitation-revealing .variant{transition:opacity .12s}.is-opening .envelope-flap,.is-opening .envelope-letter,.is-opening .envelope-intro{transition:none;transform:none}}.envelope-cover.is-reduced-motion{transition-duration:.12s}.envelope-cover.is-reduced-motion .envelope-flap,.envelope-cover.is-reduced-motion .envelope-letter{transition:none;transform:none}.wedding-map{background:#e9e5dc;border:0;border-radius:15px;width:100%;height:clamp(190px,45vw,260px);margin:20px 0 22px;display:block}.spotify-playlist{border:0;border-radius:13px;width:100%;height:152px;margin:18px auto 20px;display:block}.rsvp-status{color:var(--wedding-moss);text-align:center;margin:12px 0 0;font:500 12px/1.6 Montserrat,sans-serif}.rsvp-status.is-error{color:#9c3b36}body.is-admin-route{background:#f6f3ee;min-height:100vh}.admin-shell{width:100%;min-height:100vh;color:var(--wedding-ink);background:radial-gradient(#dcd5c9 .55px, transparent .55px) 0 0 / 17px 17px, var(--wedding-paper);font-family:Montserrat,sans-serif}.admin-header{border-bottom:1px solid #4f5a462e;justify-content:space-between;align-items:center;gap:16px;max-width:1180px;margin:0 auto;padding:20px 24px;display:flex}.admin-brand{color:var(--wedding-moss);font:400 27px/1 Pinyon Script,cursive;text-decoration:none}.admin-brand span{font-size:.75em}.admin-back{color:var(--wedding-moss);font-size:11px;text-decoration:none}.admin-main{width:min(1120px,100% - 32px);margin:0 auto;padding:38px 0 64px}.admin-loading{color:#65675c;text-align:center;padding:42px}.admin-title-row{justify-content:space-between;align-items:center;gap:20px;margin:4px 0 25px;display:flex}.admin-title-row h1,.admin-login h1{margin:5px 0 6px;font:400 32px/1.15 Cormorant Garamond,serif}.admin-title-row p,.admin-login>p{color:#68675f;margin:0;font-size:12px;line-height:1.6}.admin-eyebrow{color:var(--wedding-moss);letter-spacing:.2em;font-size:9px;font-weight:600}.admin-grid{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);align-items:start;gap:20px;display:grid}.admin-card{background:#fffefaed;border:1px solid #ded9cf;border-radius:19px;padding:25px;box-shadow:0 9px 30px #2d30280f}.admin-card h2{margin:5px 0 20px;font:400 26px/1.15 Cormorant Garamond,serif}.admin-form{gap:18px;display:grid}.admin-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.admin-field{color:#53534c;gap:7px;font-size:11px;font-weight:500;line-height:1.45;display:grid}.admin-field>span{font-weight:400;display:inline}.admin-field input[type=text],.admin-field input[type=url],.admin-field input[type=email],.admin-field input[type=password]{color:#33342f;background:#faf8f4;border:1px solid #dcd7cb;border-radius:10px;outline:none;width:100%;min-width:0;height:42px;padding:0 12px;font:400 12px Montserrat,sans-serif}.admin-field input:focus{border-color:#707b5e;box-shadow:0 0 0 3px #707b5e1f}.admin-field input[type=file]{background:#f8f7f2;border:1px dashed #c5c5b8;border-radius:10px;width:100%;padding:8px;font-size:10px}.admin-field small{color:#85847c;font-size:9px;font-weight:400}.admin-button{border:1px solid var(--wedding-moss);color:#fffdf8;background:var(--wedding-moss);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:999px;min-height:42px;padding:0 17px;font:600 10px/1 Montserrat,sans-serif;transition:background .18s,transform .18s}.admin-button:hover:not(:disabled){background:#3e4737;transform:translateY(-1px)}.admin-button:disabled{opacity:.55;cursor:not-allowed}.admin-button--quiet{color:var(--wedding-moss);background:0 0}.admin-button--quiet:hover:not(:disabled){color:#fff}.admin-actions{flex-wrap:wrap;gap:9px;margin:19px 0;display:flex}.rsvp-summary{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.rsvp-summary>div{text-align:center;background:#faf9f5;border:1px solid #e4dfd6;border-radius:12px;gap:4px;padding:13px 8px;display:grid}.rsvp-summary strong{color:var(--wedding-moss);font:500 26px/1 Cormorant Garamond,serif}.rsvp-summary span{color:#74736d;font-size:9px}.rsvp-list{border-top:1px solid #e7e2d9;max-height:470px;overflow:auto}.rsvp-row{border-bottom:1px solid #eee9e1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:12px 2px;display:grid}.rsvp-row strong{color:#383832;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:500;overflow:hidden}.rsvp-row time{color:#8a8982;font-size:9px}.rsvp-badge{color:#765850;white-space:nowrap;background:#f4e9e5;border-radius:999px;grid-area:1/2/span 2;padding:6px 8px;font-size:8px}.rsvp-badge.is-confirmed{color:#43523d;background:#eaf0e4}.admin-empty{color:#77766f;font-size:12px}.admin-notice{color:#40523b;background:#f0f4ec;border:1px solid #cbd4c3;border-radius:10px;margin:15px 0;padding:12px 14px;font-size:11px;line-height:1.5}.admin-notice.is-error{color:#8a3831;background:#fff3f0;border-color:#ead0ca}.admin-login{text-align:center;width:min(460px,100%);margin:9vh auto 0;padding:35px}.admin-login .admin-button{width:100%;margin-top:20px}.admin-login-form{text-align:left;margin-top:22px}.admin-inline-button{color:var(--wedding-moss);text-underline-offset:3px;background:0 0;border:0;margin-top:16px;padding:8px;font-size:11px;text-decoration:underline}.admin-inline-button:hover{color:var(--wedding-ink)}.admin-footnote{padding-top:18px;font-size:10px!important}@media (width<=800px){.admin-grid,.admin-fields{grid-template-columns:1fr}.admin-main{padding-top:25px}.admin-card{padding:20px}}@media (width<=480px){.admin-header{padding:17px 16px}.admin-brand{font-size:24px}.admin-main{width:calc(100% - 22px)}.admin-title-row{flex-direction:column;align-items:flex-start}.admin-title-row .admin-button{align-self:stretch}.admin-actions{grid-template-columns:1fr 1fr;display:grid}.admin-actions .admin-button{padding-inline:8px;font-size:9px}.envelope-bloom{transform:scale(.78)}.envelope-bloom--top{transform-origin:0 0}.envelope-bloom--bottom{transform-origin:100% 100%}}
