.opening-envelope{--env-paper:var(--wedding-paper,#faf9f6);--env-beige:var(--wedding-beige,#ede8de);--env-ink:var(--wedding-ink,#2c3329);--env-sage:var(--wedding-sage,#7a8c75);--env-border:var(--wedding-border,#c2baa9);position:fixed;z-index:9999;inset:0;overflow:hidden;overscroll-behavior:contain;background:var(--env-paper);color:var(--env-ink);opacity:1;transition:opacity 550ms var(--ease-editorial)}
.opening-envelope:before{position:absolute;z-index:15;inset:0;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");mix-blend-mode:multiply;content:""}.opening-envelope__frame{position:absolute;z-index:16;inset:1rem;pointer-events:none;border:1px solid #c2baa9e6;box-shadow:inset 0 0 0 3px #faf9f659}.opening-envelope__frame:after{position:absolute;inset:.35rem;border:1px solid #c2baa98c;content:""}
.opening-flap{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none;transform:translate3d(0,0,0);transition:transform 2500ms cubic-bezier(.4,0,.2,1)}.opening-flap svg{position:absolute;z-index:1;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 12px #00000026)}.opening-flap path{fill:var(--env-beige);stroke:var(--env-border);stroke-width:1.5px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 4px 10px #00000026);transition:fill 300ms ease}.opening-flap--top{z-index:5;top:0;left:0;width:100%;height:55%;transform-origin:top center}.opening-flap--bottom{z-index:4;bottom:0;left:0;width:100%;height:55%;transform-origin:bottom center}.opening-flap--left{z-index:3;top:0;left:0;width:55%;height:100%;transform-origin:left center}.opening-flap--right{z-index:3;top:0;right:0;width:55%;height:100%;transform-origin:right center}.opening-flap__content{position:relative;z-index:2;display:flex;width:100%;height:100%;flex-direction:column;align-items:center;color:var(--env-ink);text-align:center}.opening-flap__content--top{justify-content:flex-start;padding-top:8vh}.opening-flap__content--bottom{justify-content:flex-end;gap:.25rem;padding-bottom:8vh}.opening-monogram{position:relative;display:flex;flex-direction:column;align-items:center;margin-bottom:1.15rem;padding-bottom:.7rem;color:var(--env-ink);font-family:var(--wedding-script);font-size:clamp(2rem,8vw,2.8rem);font-weight:400;line-height:1}.opening-monogram:after{position:absolute;right:50%;bottom:0;left:50%;height:1px;background:linear-gradient(90deg,transparent,var(--env-sage),transparent);content:"";transform:translateX(-50%);width:3.75rem}.opening-monogram__ampersand{margin:.15rem 0;color:var(--env-sage);font-family:var(--font-serif);font-size:clamp(.9rem,3vw,1.1rem);font-style:italic;line-height:1}.opening-flap__title{margin:0;color:var(--env-ink);font-family:var(--wedding-script);font-size:clamp(2.5rem,7vw,3.5rem);font-weight:400;line-height:1;text-transform:none}.opening-flap__subtitle{margin:.25rem 0 0;color:var(--env-sage);font-family:var(--font-serif);font-size:clamp(.9rem,2.5vw,1.2rem);font-weight:300;letter-spacing:.15em;line-height:1;text-transform:lowercase}.opening-flap__content--bottom time{color:var(--env-sage);font-family:var(--font-serif);font-size:clamp(.85rem,2.5vw,1rem);font-style:italic;letter-spacing:.08em;line-height:1}.opening-flap__content--bottom span{max-width:min(70vw,25rem);color:var(--env-sage);font-family:var(--font-serif);font-size:clamp(.75rem,2.5vw,1rem);letter-spacing:.08em;line-height:1.2}
.opening-envelope__sparkles{position:absolute;z-index:17;inset:0;pointer-events:none}.opening-sparkle{position:absolute;display:block;width:var(--sparkle-size,.24rem);height:var(--sparkle-size,.24rem);border-radius:50%;background:var(--env-border);box-shadow:0 0 8px 2px #c0b29e4d;opacity:0;animation:opening-sparkle 2.8s ease-in-out var(--sparkle-delay,0s) infinite}.opening-sparkle:after{position:absolute;top:50%;left:50%;width:180%;height:1px;background:currentColor;content:"";transform:translate(-50%,-50%)}.opening-envelope__action-wrap{position:absolute;z-index:20;top:calc(52% - 20px);left:50%;pointer-events:none;transform:translate(-50%,-50%)}.opening-envelope__action{position:relative;display:block;width:min(140px,36vw);height:min(140px,36vw);min-width:0;min-height:0;padding:0;border:0;background:transparent;color:var(--env-ink);pointer-events:auto;transition:opacity 500ms var(--ease-editorial),transform 700ms var(--ease-editorial)}.opening-envelope__action:focus-visible{outline:2px solid var(--env-sage);outline-offset:.5rem}.opening-envelope.is-auto-focused .opening-envelope__action:focus-visible{outline-color:transparent;outline-offset:0}.opening-envelope__seal{display:block;width:100%;height:auto;filter:drop-shadow(0 8px 15px #0000004d);transition:transform 700ms var(--ease-editorial),opacity 450ms var(--ease-editorial)}.opening-envelope__hint{position:absolute;top:calc(100% + 27px);left:50%;display:flex;flex-direction:column;align-items:center;gap:.25rem;width:max-content;color:var(--env-sage);font-family:var(--font-serif);font-size:.85rem;line-height:1.2;letter-spacing:.05em;text-align:center;text-transform:lowercase;pointer-events:none;opacity:.8;transform:translateX(-50%)}.opening-envelope__hint:before{width:.45rem;height:.45rem;border-right:1px solid var(--env-sage);border-bottom:1px solid var(--env-sage);content:"";transform:rotate(45deg);animation:opening-arrow 1.5s ease-in-out infinite}.opening-envelope__hint-secondary{color:var(--env-sage);font-size:.72rem}
.opening-envelope.is-opening .opening-flap--top{transform:translate3d(0,-110%,0)}.opening-envelope.is-opening .opening-flap--bottom{transform:translate3d(0,110%,0)}.opening-envelope.is-opening .opening-flap--left{transform:translate3d(-110%,0,0)}.opening-envelope.is-opening .opening-flap--right{transform:translate3d(110%,0,0)}.opening-envelope.is-opening .opening-envelope__action{opacity:0;pointer-events:none;transform:scale(.72)}.opening-envelope.is-fading{opacity:0;pointer-events:none}
@keyframes opening-sparkle{0%,100%{opacity:0;transform:scale(.5)rotate(0)}45%{opacity:.55;transform:scale(1)rotate(45deg)}70%{opacity:.12;transform:scale(.72)rotate(90deg)}}@keyframes opening-arrow{0%,100%{transform:translateY(-.15rem)rotate(45deg)}50%{transform:translateY(.15rem)rotate(45deg)}}
@media (max-width:30rem){.opening-envelope__frame{inset:.75rem}.opening-envelope__frame:after{inset:.28rem}.opening-flap__content--top{padding-top:8vh}.opening-flap__content--bottom{padding-bottom:10vh}.opening-flap__content--bottom span{max-width:75vw;font-size:.7rem}.opening-envelope__action{width:min(140px,36vw);height:min(140px,36vw)}.opening-envelope__seal{width:100%}}
@media (prefers-reduced-motion:reduce){.opening-envelope,.opening-flap,.opening-envelope__action,.opening-envelope__seal{transition-duration:1ms}.opening-sparkle,.opening-envelope__hint:before{animation:none}}
