.stamp{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--stamp-size, clamp(300px, 55vw, 420px))}.stamp-image{width:100%;height:100%;object-fit:contain;filter:var( --stamp-image-filter, drop-shadow(0 4px 8px rgba(0, 0, 0, .3)) )}.stamp-text{position:absolute;display:inline-block;top:50%;left:50%;transform:translate(-50%,-50%);max-inline-size:64%;font-family:var(--stamp-font, "Great Vibes", cursive);font-weight:400;font-size:clamp(55px,11vw,80px);line-height:.9;color:var(--stamp-text-color, #a11714);text-shadow:var(--stamp-text-shadow);letter-spacing:-.01em;text-align:center;white-space:nowrap;text-rendering:optimizeLegibility;pointer-events:none;user-select:none}.stamp-monogram{display:inline-flex;align-items:center;justify-content:center;gap:var(--stamp-monogram-gap, .02em);transform:translate(var(--stamp-monogram-shift-x, 0)) scale(var(--stamp-monogram-fit-scale, 1));transform-origin:center center}.stamp-initial{display:inline-block;transform-origin:center center}.stamp-initial-first{transform:translate(var(--stamp-initial-shift-x, 0),-.24em) scale(var(--stamp-initial-scale, 1))}.stamp-initial-second{transform:translate(var(--stamp-initial-shift-x, 0),.24em) scale(var(--stamp-initial-scale, 1))}.stamp-ampersand{display:inline-block;font-size:.34em;line-height:1;margin:0 var(--stamp-ampersand-margin, .03em);transform:translateY(.08em) scale(var(--stamp-ampersand-scale, 1))}@keyframes envelope-fade-in{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@keyframes envelope-stamp-raise{0%{transform:translate(-50%,-50%)}to{transform:perspective(var(--envelope-stamp-raise-perspective, 400px)) translate3d(-50%,-50%,0) translateY(var(--stamp-raise-target, -150px)) rotateX(var(--envelope-stamp-raise-tilt, 5deg))}}.envelope-invitation{min-height:100vh;min-height:100dvh;--envelope-stage-gradient: linear-gradient( 180deg, var(--envelope-bg-start, #f5f4f0) 0%, var(--envelope-bg-end, #e1dbd3) 100% );background:transparent;color:var(--envelope-ink, var(--ink))}.envelope-stage{min-height:100vh;min-height:100dvh;width:100%;height:100vh;height:100dvh;background:var(--envelope-stage-gradient);position:relative;overflow:hidden;display:flex;align-items:var(--envelope-stage-align, stretch);justify-content:var(--envelope-stage-justify, center);padding:var(--envelope-stage-padding, 0);cursor:pointer;opacity:1;transition:opacity var(--envelope-fade-duration, 1.5s) ease var(--envelope-fade-delay, 1.5s)}.envelope-stage:focus-visible{outline:2px solid var(--envelope-focus-ring, var(--focus-ring));outline-offset:6px}.envelope-stage.is-fading{opacity:0}.envelope-frame{position:relative;width:100%;max-width:var(--envelope-frame-max-width, 1050px);height:100%;background:var( --envelope-frame-background, var(--envelope-frame-surface, transparent) );border-radius:var(--envelope-frame-radius, 0);border:var(--envelope-frame-border, none);box-shadow:var(--envelope-frame-shadow, none);overflow:hidden}.envelope-video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;animation:envelope-fade-in var(--envelope-video-fade-duration, .6s) ease-out;z-index:1;position:relative}.envelope-video-placeholder{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}.stamp-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:50% 85%;pointer-events:none;z-index:2;will-change:transform;--stamp-size: var(--envelope-stamp-size, clamp(300px, 55vw, 420px));--stamp-raise-target: calc( var(--stamp-size) * var(--envelope-stamp-raise-factor, -.36) )}.stamp-overlay.is-raising{animation:envelope-stamp-raise var(--envelope-stamp-raise-duration, 3.5s) linear forwards}@media(min-width:1050px){.envelope-frame{-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 var(--envelope-frame-mask-edge, 8%),#000 calc(100% - var(--envelope-frame-mask-edge, 8%)),transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 var(--envelope-frame-mask-edge, 8%),#000 calc(100% - var(--envelope-frame-mask-edge, 8%)),transparent 100%);-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}}@media(prefers-reduced-motion:reduce){.envelope-video{animation:none}.stamp-overlay.is-raising{animation:none;transform:translate(-50%,-50%)}.envelope-stage{transition:none}}.envelope-invitation{--envelope-bg-start: #e8e1df;--envelope-bg-end: #e8e1df;--envelope-ink: var(--ink);--stamp-text-color: #a11714;--stamp-text-shadow: -1px -1px 0 rgba(255, 180, 160, .6), -2px -2px 1px rgba(255, 200, 180, .3), 1px 1px 1px rgba(40, 10, 10, .7), 2px 2px 2px rgba(20, 0, 0, .4), 0 0 1px rgba(60, 15, 15, .5)}html.invitation-scroll-locked,body.invitation-scroll-locked{overflow:hidden}.envelope-layer .envelope-stage,.envelope-layer .envelope-audio-toggle{pointer-events:auto}.envelope-layer .envelope-stage.is-fading{pointer-events:none}.envelope-stage{z-index:2}.envelope-audio-toggle{position:fixed;right:1rem;bottom:1rem;width:2.5rem;height:2.5rem;border:none;border-radius:999px;background:var(--invitation-accent, var(--accent));color:var(--invitation-ink-inverse, #fff);display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;box-shadow:0 8px 18px var(--invitation-accent-shadow, rgba(0, 0, 0, .22));cursor:pointer;z-index:1}.envelope-audio-toggle:focus-visible{outline:2px solid var(--invitation-focus-ring, var(--focus-ring));outline-offset:2px}.envelope-audio-toggle i{pointer-events:none}.error-dialog-overlay{position:fixed;inset:0;background:#00000073;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:10000;animation:error-overlay-in .25s ease-out}@keyframes error-overlay-in{0%{opacity:0}to{opacity:1}}.error-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10001;background:var(--invitation-card-bg);border-radius:20px;padding:2.5rem 2rem 2rem;text-align:center;max-width:380px;width:calc(100% - 2rem);box-shadow:0 20px 60px #0003;animation:error-scale-in .3s cubic-bezier(.25,1,.5,1)}@keyframes error-scale-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.error-dialog-icon{margin-bottom:1rem}.error-dialog-icon i{font-size:3rem;color:#e74c3c}.error-dialog-message{font-family:var(--font-primary);font-size:1.05rem;color:var(--invitation-text-primary);margin:0 0 1.75rem;line-height:1.5}.error-dialog-close{font-family:var(--font-primary);font-size:.95rem;font-weight:500;color:var(--invitation-ink-inverse);background:#e74c3c;border:none;border-radius:8px;padding:.75rem 2rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.error-dialog-close:hover{transform:translateY(-1px);box-shadow:0 4px 15px #e74c3c59}@media(prefers-reduced-motion:reduce){.error-dialog-overlay,.error-dialog{animation:none}}.thank-you-success-page{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;overflow:hidden;background:var(--invitation-bg-base, #faf9f7)}.thank-you-success-backdrop{position:absolute;inset:0;z-index:0}.thank-you-success-backdrop-image{width:100%;height:100%;object-fit:cover;transform:scale(1.05);animation:thankYouSuccessBackdropIn 1.8s ease-out both}@keyframes thankYouSuccessBackdropIn{0%{transform:scale(1.15);opacity:0}to{transform:scale(1.05);opacity:1}}.thank-you-success-backdrop-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#faf9f7a6,#faf9f7d9,#faf9f7f2)}.thank-you-success-content{position:relative;z-index:1;padding:2rem;width:100%;max-width:560px}.thank-you-success-card{background:#ffffffb8;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:24px;padding:clamp(2.5rem,6vw,4rem) clamp(1.75rem,5vw,3rem);text-align:center;box-shadow:0 4px 30px #0000000f,0 1px 3px #0000000a;border:1px solid rgba(255,255,255,.5);animation:thankYouSuccessCardIn 1s ease-out .4s both}@keyframes thankYouSuccessCardIn{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.thank-you-success-icon{width:56px;height:56px;margin:0 auto 1.5rem;color:var(--invitation-accent, #a87070);animation:thankYouSuccessIconIn .8s ease-out .8s both}.thank-you-success-icon svg{width:100%;height:100%}@keyframes thankYouSuccessIconIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.thank-you-success-title{font-family:var( --font-secondary, "Great Vibes", "Fraunces", serif );font-size:clamp(2.5rem,7vw,3.5rem);font-weight:400;color:var(--invitation-text-secondary, #6b5b4f);margin:0 0 1.25rem;line-height:1.15;animation:thankYouSuccessTextIn .7s ease-out .9s both}.thank-you-success-lead{font-size:clamp(1rem,2.5vw,1.15rem);font-weight:500;color:var(--invitation-text-primary, #4a4a4a);margin:0 0 1rem;line-height:1.5;animation:thankYouSuccessTextIn .7s ease-out 1s both}.thank-you-success-body{font-size:clamp(.9rem,2vw,1rem);font-weight:400;color:var(--invitation-text-muted, #8b7355);margin:0 0 2rem;line-height:1.7;animation:thankYouSuccessTextIn .7s ease-out 1.1s both}.thank-you-success-body:last-child{margin-bottom:0}.thank-you-success-date{font-size:clamp(.85rem,2vw,.95rem);font-weight:400;color:var(--invitation-accent, #a87070);margin:0 0 2rem;letter-spacing:.08em;text-transform:uppercase;animation:thankYouSuccessTextIn .7s ease-out 1.2s both}.thank-you-success-names{display:flex;align-items:center;justify-content:center;gap:.75rem;flex-wrap:wrap;animation:thankYouSuccessTextIn .7s ease-out 1.3s both}.thank-you-success-name{font-family:var( --font-secondary, "Great Vibes", "Fraunces", serif );font-size:clamp(1.25rem,3.5vw,1.6rem);font-weight:400;color:var(--invitation-text-secondary, #6b5b4f)}.thank-you-success-separator{font-family:var( --font-secondary, "Great Vibes", "Fraunces", serif );font-size:clamp(1rem,2.5vw,1.25rem);color:var(--invitation-accent-soft, #c4b5a6)}.thank-you-success-location{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-direction:column;align-items:center;gap:.35rem;animation:thankYouSuccessTextIn .7s ease-out 1.4s both}.thank-you-success-venue{font-family:var(--font-primary, system-ui);font-size:1rem;font-weight:500;color:var(--invitation-text-primary, #4a4a4a);margin:0}.thank-you-success-address{font-family:var(--font-primary, system-ui);font-size:.85rem;font-weight:300;color:var(--invitation-text-subtle, #8b7355);margin:0}.thank-you-success-time{display:flex;align-items:center;gap:.4rem;font-family:var(--font-primary, system-ui);font-size:.85rem;color:var(--invitation-accent, #a87070);margin-top:.25rem}.thank-you-success-actions{display:flex;justify-content:center;margin-top:1.5rem;animation:thankYouSuccessTextIn .7s ease-out 1.5s both}@keyframes thankYouSuccessTextIn{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.thank-you-success-backdrop-image,.thank-you-success-card,.thank-you-success-icon,.thank-you-success-title,.thank-you-success-lead,.thank-you-success-body,.thank-you-success-date,.thank-you-success-names,.thank-you-success-location,.thank-you-success-actions{animation:none;transform:none;opacity:1}}.thank-you-success-no-animations .thank-you-success-backdrop-image,.thank-you-success-no-animations .thank-you-success-card,.thank-you-success-no-animations .thank-you-success-icon,.thank-you-success-no-animations .thank-you-success-title,.thank-you-success-no-animations .thank-you-success-lead,.thank-you-success-no-animations .thank-you-success-body,.thank-you-success-no-animations .thank-you-success-date,.thank-you-success-no-animations .thank-you-success-names,.thank-you-success-no-animations .thank-you-success-location,.thank-you-success-no-animations .thank-you-success-actions{animation:none;transform:none;opacity:1}
