@font-face{font-family:'Mrs Saint Delafield';src:url('/assets/fonts/mrs-saint-delafield.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('/assets/fonts/cormorant-garamond-light.ttf') format('truetype');font-weight:300;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('/assets/fonts/cormorant-garamond-regular.ttf') format('truetype');font-weight:400;font-display:swap}
:root{color-scheme:light;font-family:Georgia,'Times New Roman',serif;color:#5b0c12;background:#f6f0e5;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:280px}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid #702630;outline-offset:5px}[hidden]{display:none!important}
.invitation{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:45px 24px;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#fffdf6 0%,#f6f0e5 72%);transition:opacity .55s ease,transform .7s ease}
.envelope-scene{width:min(840px,100%);position:relative;margin:0 auto;perspective:1400px;transition:padding-top .85s cubic-bezier(.22,.61,.36,1)}
.envelope{width:100%;aspect-ratio:3/2;position:relative;isolation:isolate;filter:drop-shadow(0 16px 22px #4b30191c);transform:translateY(0);transition:transform 1.1s cubic-bezier(.22,.61,.36,1)}
.envelope-back{position:absolute;inset:5.2% 1.75%;background:#eae0cc;z-index:0}
.envelope-pocket,.envelope-flap{position:absolute;inset:0;pointer-events:none}
.envelope-pocket{z-index:3;clip-path:polygon(0 0,1.7% 5.2%,4% 15%,7% 19.5%,47.5% 66%,50% 67.4%,52.5% 66%,93% 19.5%,96% 15%,98.3% 5.2%,100% 0,100% 100%,0 100%)}
.envelope-pocket img,.envelope-flap img{display:block;width:100%;height:100%;object-fit:fill}
.envelope-flap{z-index:4;clip-path:polygon(1.7% 5.2%,98.3% 5.2%,96% 15%,93% 19.5%,52.5% 66%,50% 67.4%,47.5% 66%,7% 19.5%,4% 15%);transform-origin:50% 5.2%;transform:rotateX(0);transition:transform 1s cubic-bezier(.4,0,.2,1),filter 1s;backface-visibility:visible}
.open-envelope{position:absolute;inset:0;width:100%;border:0;background:transparent;color:inherit;padding:0;z-index:5;transition:opacity .3s,transform .5s}
.envelope-caption{position:absolute;top:19%;left:8%;right:8%;font-family:'Mrs Saint Delafield','Snell Roundhand','Segoe Script',cursive;font-size:clamp(2rem,6vw,3.5rem);font-weight:400;line-height:1.25;letter-spacing:0;font-kerning:normal;font-feature-settings:'liga' 1,'calt' 1;color:#382024;opacity:1;mix-blend-mode:multiply;-webkit-text-stroke:.15px currentColor;text-shadow:none;transform:rotate(-1.1deg)}
.wax-seal{position:absolute;width:18%;height:auto;max-height:37%;object-fit:contain;left:41%;top:51%;filter:drop-shadow(0 4px 3px #3b111c30);transition:transform .35s ease}
.open-envelope:hover .wax-seal{transform:scale(1.045)}
.open-hint{text-align:center;color:#85674f;font-size:.9375rem;margin:30px 0 0;font-style:italic;transition:opacity .35s}
.invitation-date{font-family:Arial,sans-serif;font-size:.75rem;letter-spacing:.18em;line-height:1.8;text-align:center;color:#846d5f;margin:40px 0 0}
.invitation-card{position:absolute;z-index:2;inset:6% 8% auto;background:#fffaf0;box-shadow:0 2px 18px #58362312;border:1px solid #e7dccb;text-align:center;padding:30px 38px 35px;opacity:0;transform:translateY(15%);transition:transform 1.05s cubic-bezier(.22,.61,.36,1) .5s,opacity .4s .5s}
.invitation-card h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(2.25rem,5vw,3rem);font-weight:300;margin:0 0 10px;line-height:1.2}
.card-intro{color:#63564d;font-size:1rem;line-height:1.6;max-width:29ch;margin:0 auto 24px}
#invitation-form{text-align:left}#invitation-form label{display:block;font-size:.9375rem;margin-bottom:9px}.password-wrap{position:relative}.password-wrap input{border:1px solid #c5b59f;border-radius:0;width:100%;height:49px;background:#ffffff60;color:#5b0c12;padding:10px 68px 10px 13px;font-size:1rem;min-width:0}.show-password{position:absolute;right:0;top:0;height:100%;border:0;background:transparent;padding:0 14px;font-size:.8125rem;color:#785c4f}
.enter-button{display:flex;width:100%;align-items:center;justify-content:center;gap:20px;margin-top:19px;border:1px solid #5b0c12;background:#5b0c12;color:#fffaf0;min-height:49px;padding:12px 18px;font-size:1rem;text-decoration:none;text-align:center;transition:background .2s}.enter-button:hover{background:#76303a}.enter-button:focus-visible{outline:2px solid #702630;outline-offset:5px}.enter-button:disabled{opacity:.65;cursor:wait}.invitation-error{font-size:.875rem;line-height:1.5;color:#85222e;margin:12px 0 0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.is-open .envelope-scene{padding-top:clamp(150px,42vw,350px)}.is-open .open-envelope{opacity:0;transform:translateY(-15px);pointer-events:none}.is-open .envelope-flap{transform:rotateX(180deg);filter:brightness(.94);z-index:1}.is-open .invitation-card{opacity:1;transform:translateY(-38%);z-index:6}.is-open .open-hint{opacity:0}.is-entering .invitation{opacity:0;transform:translateY(-18px)}
@media(max-width:600px){.invitation{padding:36px 12px}.invitation-date{font-size:.6875rem;letter-spacing:.15em;margin-top:25px}.invitation-card{inset:4% 4% auto;padding:25px 23px 28px}.is-open .envelope-scene{padding-bottom:100px}.is-open .invitation-card{transform:translateY(-35%)}.card-intro{font-size:.9375rem;margin-bottom:20px}.envelope-caption{top:18%}.wax-seal{width:20%;left:40%}.is-open .envelope{filter:drop-shadow(0 10px 16px #4b301916)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

@keyframes invitation-arrives{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.envelope-scene{animation:invitation-arrives .9s ease both}
