body:not(.palazzo-entered):has(.palazzo-intro){overflow:hidden}.palazzo-intro{position:fixed;inset:0;z-index:90;min-height:100dvh;overflow:hidden;background:#05080f;color:#f8edda;perspective:1500px;isolation:isolate}.palazzo-intro.is-complete,.palazzo-intro.is-skipped{opacity:0;pointer-events:none}.palazzo-skip{position:absolute;z-index:15;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));border:0;border-bottom:1px solid #d4ba8370;background:none;color:#e7d5b8;padding:8px 2px;font-size:8px;letter-spacing:.25em;text-transform:uppercase}@keyframes palazzo-float{50%{opacity:.7;transform:translate3d(8px,-18px,0)}}.wax-intro{display:block;background:#030813;perspective:1400px}.wax-backdrop{position:absolute;inset:-3%;background:url(/invitation/entrance/venetian-envelope-backdrop-v1.webp) center/cover no-repeat;filter:saturate(.9) brightness(.76);transform:scale(1.04);transition:filter 2.8s ease,transform 4.8s cubic-bezier(.2,.7,.2,1)}.wax-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 48%,transparent 0 26%,#0207113d 62%,#02050bd9 100%),linear-gradient(180deg,#02071147,transparent 28% 72%,#02050ba8)}.wax-dust{position:absolute;z-index:3;inset:0;overflow:hidden;pointer-events:none}.wax-dust i{position:absolute;left:calc(7% + var(--i)*6.5%);top:calc(10% + (var(--i)*11%));width:2px;height:2px;border-radius:50%;background:#e6bb6a;box-shadow:0 0 7px #e6bb6a;opacity:.15;animation:palazzo-float 5s ease-in-out calc(var(--i)*-.3s) infinite}.wax-heading{position:absolute;z-index:12;top:10%;left:50%;width:min(760px,88vw);transform:translate(-50%);text-align:center;text-shadow:0 2px 22px #000;transition:opacity .45s ease,transform .65s ease}.wax-heading p{margin:0;color:#f0d8a8;font:clamp(9px,1vw,13px)/1.4 Arial,sans-serif;letter-spacing:.48em;text-transform:uppercase}.wax-heading span{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:17px;color:#c89a4e;font-size:10px}.wax-heading i{display:block;width:clamp(65px,9vw,130px);height:1px;background:linear-gradient(90deg,transparent,#b98b42)}.wax-heading i:last-child{background:linear-gradient(90deg,#b98b42,transparent)}.envelope-stage{position:absolute;z-index:8;left:50%;top:51%;width:min(64vw,840px);aspect-ratio:1.86;transform:translate(-50%,-45%);filter:drop-shadow(0 32px 35px #000b);transform-style:preserve-3d;will-change:transform}.envelope-back,.envelope-pocket,.envelope-flap{position:absolute;inset:0;border:1px solid #c6a561;background-color:#eee0c5;background-image:radial-gradient(circle at 20% 25%,#fff9e9aa 0 1px,transparent 1.4px),repeating-linear-gradient(12deg,#d2bd9820 0 1px,transparent 1px 5px),linear-gradient(135deg,#f3e8d3,#dec9a8 58%,#f0dfc2);box-shadow:inset 0 0 35px #9b754830}.envelope-back{z-index:1;border:2px solid #b68b43;border-radius:3px;box-shadow:inset 0 0 0 5px #f5e8cb,inset 0 0 0 6px #9f773999,inset 0 0 45px #8a632d38,0 0 0 1px #efd59555}.envelope-card{position:absolute;z-index:2;left:7%;right:7%;top:7%;height:82%;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:7%;border:1px solid #c7a260;background:radial-gradient(circle at 50% 25%,#fffdf2,#eee0c5 72%),repeating-linear-gradient(8deg,#a9845510 0 1px,transparent 1px 6px);color:#69202a;text-align:center;box-shadow:0 0 22px #0005,inset 0 0 35px #a0783b22;transform:translateY(10%) scale(.96);opacity:0}.envelope-card:before{content:"";position:absolute;inset:4%;border:1px solid #b68a4066;pointer-events:none}.envelope-card small{color:#9b7038;font:7px/1.4 Arial,sans-serif;letter-spacing:.34em;text-transform:uppercase}.envelope-card strong{margin-top:13px;font:clamp(35px,5vw,72px)/.9 Georgia,serif;letter-spacing:-.045em}.envelope-card b{margin-top:8px;color:#b08339;font:25px/1 Georgia,serif;letter-spacing:.35em;margin-left:.35em}.envelope-card span{margin-top:18px;color:#705d48;font:italic clamp(12px,1.3vw,17px)/1.3 Georgia,serif}.envelope-pocket{z-index:3;clip-path:polygon(0 18%,50% 68%,100% 18%,100% 100%,0 100%)}.envelope-pocket:after{content:"";position:absolute;inset:0;background:linear-gradient(31deg,transparent 49.7%,#b48e5366 50%,transparent 50.3%),linear-gradient(-31deg,transparent 49.7%,#b48e5366 50%,transparent 50.3%)}.envelope-flap{z-index:4;height:63%;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;backface-visibility:hidden;filter:drop-shadow(0 8px 7px #765b3938);will-change:transform}.envelope-flap:before,.envelope-flap:after{content:"";position:absolute;top:0;width:60%;height:1px;background:linear-gradient(90deg,#b38d5266,#9a713aaa);transform-origin:top left}.envelope-flap:before{left:0;transform:rotate(34deg)}.envelope-flap:after{right:0;transform-origin:top right;transform:rotate(-34deg)}.flap-crest{position:absolute;top:18%;left:50%;display:flex;align-items:center;flex-direction:column;transform:translate(-50%);color:#a57a35;font:clamp(20px,2.6vw,35px)/.75 Georgia,serif;letter-spacing:.03em;text-shadow:0 1px #fff8e8,0 0 12px #d0a65d44;opacity:.7}.flap-crest small{margin-top:9px;font:7px/1 Arial,sans-serif;letter-spacing:.4em;margin-left:.4em}.flap-crest:before,.flap-crest:after{content:"";position:absolute;top:42%;width:70px;height:1px;background:linear-gradient(90deg,transparent,#b4873e)}.flap-crest:before{right:calc(100% + 17px)}.flap-crest:after{left:calc(100% + 17px);transform:scaleX(-1)}.foil-corner{position:absolute;z-index:2;width:12%;aspect-ratio:1;border-color:#aa7e37;border-style:solid;opacity:.75;filter:drop-shadow(0 1px #fff8e3)}.foil-corner:after{content:"◆";position:absolute;color:#aa7e37;font-size:8px}.foil-tl{left:2.6%;top:23%;border-width:1px 0 0 1px;border-radius:22px 0 0}.foil-tl:after{left:9px;top:7px}.foil-tr{right:2.6%;top:23%;border-width:1px 1px 0 0;border-radius:0 22px 0 0}.foil-tr:after{right:9px;top:7px}.foil-bl{left:2.6%;bottom:3.8%;border-width:0 0 1px 1px;border-radius:0 0 0 22px}.foil-bl:after{left:9px;bottom:7px}.foil-br{right:2.6%;bottom:3.8%;border-width:0 1px 1px 0;border-radius:0 0 22px}.foil-br:after{right:9px;bottom:7px}.envelope-sheen{position:absolute;z-index:5;inset:1.5%;pointer-events:none;overflow:hidden;border:1px solid #c69a4b55}.envelope-sheen:before{content:"";position:absolute;inset:-35%;background:linear-gradient(112deg,transparent 38%,#fffbea70 48%,#f5cc7b35 52%,transparent 62%);transform:translate(-62%);animation:envelope-lustre 4.8s ease-in-out 1.2s infinite}.envelope-ribbon{position:absolute;z-index:6;top:47%;width:50.5%;height:17%;background:repeating-linear-gradient(93deg,#ffffff08 0 1px,transparent 1px 5px),linear-gradient(#400610,#861b2a 35%,#a22b39 49%,#68111f 67%,#39050d);box-shadow:inset 0 2px 3px #e078825c,inset 0 -4px 7px #210006a6,0 4px 10px #0005;will-change:transform,opacity}.ribbon-left{left:0}.ribbon-right{right:0}.wax-seal{position:absolute;z-index:8;left:50%;top:55%;width:clamp(98px,10.5vw,142px);aspect-ratio:1;transform:translate(-50%,-50%);border:0;padding:0;background:none;color:#efc77f;cursor:pointer;filter:drop-shadow(0 13px 10px #210006a8) drop-shadow(0 0 13px #d9a85b35);will-change:transform}.wax-seal:focus-visible{outline:2px solid #f3d798;outline-offset:9px;border-radius:50%}.wax-seal[disabled]{cursor:default}.seal-disc{position:absolute;inset:0;display:grid;place-items:center;border:2px solid #a74952;border-radius:47% 53% 45% 55%/52% 46% 54% 48%;background:radial-gradient(circle at 36% 27%,#b64b55 0 3%,#7d1c29 34%,#4f0915 77%,#2b030b);box-shadow:inset 0 0 0 5px #4b0b16,inset 0 0 0 7px #c0676e70,inset 8px 8px 13px #d0717640,inset -10px -12px 15px #250107,0 0 0 3px #58101a;will-change:transform,opacity}.seal-left{clip-path:polygon(0 0,52% 0,47% 19%,55% 33%,48% 47%,55% 60%,47% 76%,52% 100%,0 100%)}.seal-right{clip-path:polygon(52% 0,100% 0,100% 100%,52% 100%,47% 76%,55% 60%,48% 47%,55% 33%,47% 19%)}.seal-monogram{display:flex;align-items:center;flex-direction:column;font:clamp(30px,4vw,51px)/.72 Georgia,serif;letter-spacing:-.12em;margin-left:-.12em;text-shadow:0 1px #27030a,0 0 8px #f0c77c55}.seal-monogram small{margin-top:9px;font:clamp(9px,1vw,13px)/1 Arial,sans-serif;letter-spacing:.35em;margin-left:.35em}.seal-cracks{position:absolute;z-index:9;inset:5%;width:90%;height:90%;overflow:visible;pointer-events:none}.seal-cracks path{fill:none;stroke:#f1c98a;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;filter:drop-shadow(0 0 2px #2b0208)}.wax-instruction{position:absolute;z-index:12;left:50%;bottom:8%;transform:translate(-50%);margin:0;color:#edcf96;font:9px/1.5 Arial,sans-serif;letter-spacing:.4em;text-transform:uppercase;text-align:center;white-space:nowrap;text-shadow:0 2px 15px #000;transition:opacity .35s ease}.wax-instruction span{display:block;margin-top:7px;font-size:18px;animation:wax-nudge 1.8s ease-in-out infinite}.wax-intro.is-opening{animation:wax-scene-depart .85s cubic-bezier(.3,.7,.2,1) 4.35s forwards}.is-opening .wax-heading,.is-opening .wax-instruction{opacity:0;transform:translate(-50%) translateY(-8px)}.is-opening .wax-backdrop{filter:saturate(.96) brightness(.98);transform:scale(1)}.is-opening .wax-seal{animation:seal-press .6s cubic-bezier(.3,.7,.2,1) both}.is-opening .seal-cracks path{animation:draw-crack .48s ease .18s forwards}.is-opening .seal-cracks path:nth-child(2){animation-delay:.34s}.is-opening .seal-cracks path:nth-child(3){animation-delay:.42s}.is-opening .seal-left{animation:seal-left-break .8s cubic-bezier(.2,.65,.25,1) .68s forwards}.is-opening .seal-right{animation:seal-right-break .8s cubic-bezier(.2,.65,.25,1) .72s forwards}.is-opening .ribbon-left{animation:ribbon-left-release .8s cubic-bezier(.3,.65,.2,1) .95s forwards}.is-opening .ribbon-right{animation:ribbon-right-release .8s cubic-bezier(.3,.65,.2,1) 1.02s forwards}.is-opening .envelope-flap{animation:flap-open 1.05s cubic-bezier(.45,.02,.16,1) 1.32s forwards}.is-opening .envelope-card{animation:card-emerge 1.65s cubic-bezier(.2,.75,.16,1) 2.05s forwards}.is-opening .envelope-stage{animation:envelope-focus 1.15s cubic-bezier(.2,.75,.2,1) 3.62s forwards}@keyframes wax-nudge{50%{transform:translateY(5px);opacity:.55}}@keyframes envelope-lustre{0%,26%{transform:translate(-62%);opacity:0}48%{opacity:.82}72%,to{transform:translate(62%);opacity:0}}@keyframes seal-press{0%{transform:translate(-50%,-50%) scale(1)}38%{transform:translate(-50%,-50%) scale(.93)}to{transform:translate(-50%,-50%) scale(1)}}@keyframes draw-crack{to{stroke-dashoffset:0}}@keyframes seal-left-break{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(-34px,18px) rotate(-19deg);opacity:0}}@keyframes seal-right-break{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(37px,14px) rotate(17deg);opacity:0}}@keyframes ribbon-left-release{to{transform:translate(-76%) scaleX(.78);opacity:0}}@keyframes ribbon-right-release{to{transform:translate(76%) scaleX(.78);opacity:0}}@keyframes flap-open{0%{transform:rotateX(0);filter:drop-shadow(0 8px 7px #765b3938)}to{transform:rotateX(178deg);filter:drop-shadow(0 -10px 10px #0005)}}@keyframes card-emerge{0%{transform:translateY(10%) scale(.96);opacity:0}20%{opacity:1}to{transform:translateY(-58%) scale(1.04);opacity:1}}@keyframes envelope-focus{to{transform:translate(-50%,-34%) scale(1.12);filter:drop-shadow(0 42px 45px #0008)}}@keyframes wax-scene-depart{to{opacity:0;transform:scale(1.045);filter:blur(3px)}}@media(max-width:767px){.wax-backdrop{background-position:center}.wax-heading{top:9%;width:92vw}.wax-heading p{font-size:7px;letter-spacing:.31em}.wax-heading span{margin-top:12px}.envelope-stage{top:50%;width:91vw;aspect-ratio:1.52;transform:translate(-50%,-42%)}.envelope-card{left:6%;right:6%;height:88%}.envelope-card strong{font-size:42px}.envelope-card b{font-size:20px}.envelope-flap{height:59%}.envelope-ribbon{top:48%;height:15%}.wax-seal{top:55%;width:96px}.wax-instruction{bottom:10%;font-size:7px;letter-spacing:.28em}.palazzo-skip{right:14px;bottom:14px}.is-opening .envelope-stage{animation-name:envelope-focus-mobile}@keyframes envelope-focus-mobile{to{transform:translate(-50%,-30%) scale(1.06)}}}@media(max-width:389px){.envelope-stage{width:94vw}.wax-heading{top:7%}.wax-instruction{bottom:8%}.envelope-card strong{font-size:36px}.seal-monogram{font-size:34px}}@media(prefers-reduced-motion:reduce){.wax-dust{display:none}.is-opening .seal-cracks path{animation-duration:.12s!important;animation-delay:0s!important}.is-opening .seal-left,.is-opening .seal-right,.is-opening .ribbon-left,.is-opening .ribbon-right,.is-opening .envelope-flap,.is-opening .envelope-card,.is-opening .envelope-stage,.wax-intro.is-opening{animation-duration:.25s!important;animation-delay:.1s!important}}
