/* Original Velvet Seal artwork. Shared overlay owns dismissal, focus and page inertness. */
.iv-opening[data-opening="velvet-seal"]{--vs-burgundy:#56232f;--vs-deep:#391923;--vs-gold:#c4a16f;--vs-ivory:#f7f0df;background:radial-gradient(ellipse at 50% 38%,#fcf8ee 0,#eae0d2 68%,#ded0c0 100%);color:#4f2630}
.iv-opening[data-opening="velvet-seal"] .vs-stage{position:relative;display:block;width:min(78vw,360px);aspect-ratio:.76;margin:0 auto;text-align:center;perspective:1200px;isolation:isolate;font-weight:400;line-height:1.3;color:var(--vs-burgundy)}
.iv-opening[data-opening="velvet-seal"] .vs-stage *{box-sizing:border-box}
.iv-opening[data-opening="velvet-seal"] .vs-stage svg{display:block;width:100%;height:100%;overflow:visible}
.iv-opening[data-opening="velvet-seal"] .vs-ground-shadow{position:absolute;left:8%;right:8%;bottom:0;height:9%;border-radius:50%;background:#3c152b2e;filter:blur(15px);transform:scaleX(1.13)}
.iv-opening[data-opening="velvet-seal"] .vs-envelope-back{position:absolute;z-index:1;inset:24% 0 4%;border-radius:4px 4px 6px 6px;background:linear-gradient(120deg,#723d48,#43202c);border:1px solid #41202a;box-shadow:0 2px 2px #2b15272b,0 14px 25px -12px #32192866,0 34px 42px -24px #29142180,inset 0 0 0 2px #93606c38}
.iv-opening[data-opening="velvet-seal"] .vs-lining{position:absolute;z-index:2;inset:24.4% 1.2% 5%;border-radius:3px;background:linear-gradient(130deg,#ded0b8,#f5ead4 35%,#d8c6a9);box-shadow:inset 0 4px 14px #49352538;overflow:hidden}
.iv-opening[data-opening="velvet-seal"] .vs-lining>span{position:absolute;inset:7px;background:repeating-linear-gradient(45deg,transparent 0 12px,#ad8b6033 12px 13px,transparent 13px 24px),repeating-linear-gradient(-45deg,transparent 0 12px,#ad8b6026 12px 13px,transparent 13px 24px);border:1px solid #ab88545c}
.iv-opening[data-opening="velvet-seal"] .vs-letter{position:absolute;z-index:3;left:7%;top:25.5%;width:86%;height:68%;display:flex;flex-direction:column;align-items:center;gap:10px;padding:25px 18px 24px;background:repeating-linear-gradient(0deg,#ae8d5720 0 .3px,transparent .3px 3px),linear-gradient(115deg,#fffaf0,#f3ead7);border:1px solid #e0d0b7;border-radius:2px;box-shadow:0 4px 13px #24161e26,inset 0 0 0 4px #fffaf06e;transform:translateY(0);transform-origin:50% 100%;will-change:transform}
.iv-opening[data-opening="velvet-seal"] .vs-letter-rule{position:absolute;inset:10px;border:1px solid #b18e5d70;pointer-events:none}
.iv-opening[data-opening="velvet-seal"] .vs-letter-flourish{flex:0 0 25px;max-width:125px;color:#9a7748;margin:2px auto 1px}
.iv-opening[data-opening="velvet-seal"] .vs-letter-names{display:block;width:100%;font:400 clamp(18px,4.6vw,25px)/1.18 "Cormorant Garamond",Georgia,serif;overflow-wrap:anywhere}
.iv-opening[data-opening="velvet-seal"] .vs-letter-names>span{display:block}
.iv-opening[data-opening="velvet-seal"] .vs-letter-names .vs-ampersand{font-style:italic;font-size:.77em;line-height:1.5;color:#9a7748}
.iv-opening[data-opening="velvet-seal"] .vs-letter-date{display:block;max-width:100%;margin-top:3px;font:400 clamp(9px,2.3vw,11px)/1.5 "Be Vietnam Pro",Arial,sans-serif;letter-spacing:.08em;overflow-wrap:anywhere}
.iv-opening[data-opening="velvet-seal"] .vs-letter-mark{flex:0 0 14px;max-width:74px;margin:0 auto;color:#9a7748}
.iv-opening[data-opening="velvet-seal"] .vs-long-names .vs-letter{gap:7px;padding:22px 16px}
.iv-opening[data-opening="velvet-seal"] .vs-long-names .vs-letter-names{font-size:clamp(13px,3.35vw,17px);line-height:1.22}
.iv-opening[data-opening="velvet-seal"] .vs-side{position:absolute;z-index:4;top:24%;bottom:4%;width:53%;background:linear-gradient(115deg,#76414c,#542431 64%,#401e2b);filter:drop-shadow(1px 0 1px #210d1d33)}
.iv-opening[data-opening="velvet-seal"] .vs-side-left{left:0;clip-path:polygon(0 0,100% 52%,0 100%);border-radius:4px 0 0 5px}
.iv-opening[data-opening="velvet-seal"] .vs-side-right{right:0;clip-path:polygon(100% 0,0 52%,100% 100%);background:linear-gradient(240deg,#63343f,#482330 70%);border-radius:0 4px 5px 0}
.iv-opening[data-opening="velvet-seal"] .vs-envelope-front{position:absolute;z-index:5;inset:43% 0 4%;clip-path:polygon(0 0,50% 38%,100% 0,100% 100%,0 100%);background:repeating-linear-gradient(92deg,#b88e8c09 0 .5px,transparent .5px 3px),linear-gradient(110deg,#64303f 0,#612b39 47%,#49202e 100%);border-radius:0 0 5px 5px;box-shadow:inset 0 -1px 0 #c58e8b70,inset 2px 0 2px #bd77884f,inset -2px 0 2px #24131e33}
.iv-opening[data-opening="velvet-seal"] .vs-front-frame{position:absolute;inset:12px;border:1px solid #b48b6657;box-shadow:0 0 0 4px #b48b6610;border-radius:0 0 1px 1px}
.iv-opening[data-opening="velvet-seal"] .vs-front-date{position:absolute;top:70%;left:13%;width:74%;color:#ecdbc0;font:400 clamp(9px,2.5vw,11px)/1.5 "Be Vietnam Pro",Arial,sans-serif;letter-spacing:.14em;overflow-wrap:anywhere;text-shadow:0 1px 0 #28131c}
.iv-opening[data-opening="velvet-seal"] .vs-front-ornament{position:absolute;top:85%;left:33%;width:34%!important;height:9%!important;color:#c2a06f}
.iv-opening[data-opening="velvet-seal"] .vs-flap{position:absolute;z-index:7;left:0;top:24%;width:100%;height:42%;transform-origin:50% 0;transform-style:preserve-3d;transform:rotateX(0deg);filter:drop-shadow(0 3px 2px #1b0c1826);will-change:transform}
.iv-opening[data-opening="velvet-seal"] .vs-flap-face{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.iv-opening[data-opening="velvet-seal"] .vs-flap-front{background:repeating-linear-gradient(90deg,#c99fa012 0 .5px,transparent .5px 3px),linear-gradient(150deg,#7c4653 0,#693342 39%,#4d2232 100%);box-shadow:inset 0 1px 0 #d49aa552}
.iv-opening[data-opening="velvet-seal"] .vs-flap-back{transform:rotateX(180deg);background:repeating-linear-gradient(45deg,transparent 0 12px,#9d744620 12px 13px,transparent 13px 24px),linear-gradient(120deg,#eee1c9,#d0b998);border-top:1px solid #a47e5590}
.iv-opening[data-opening="velvet-seal"] .vs-seal{position:absolute;z-index:9;left:38%;top:53%;width:24%;aspect-ratio:112/116;filter:drop-shadow(2px 5px 3px #210d2166);transform-origin:50% 50%;will-change:transform,opacity}
.iv-opening[data-opening="velvet-seal"] .vs-wax{position:relative;z-index:1}
.iv-opening[data-opening="velvet-seal"] .vs-seal-monogram{position:absolute;z-index:2;inset:35% 27% 30%;display:flex;align-items:center;justify-content:center;color:#ecd1a0;font:400 clamp(9px,2.65vw,12px)/1.1 "Cormorant Garamond",Georgia,serif;letter-spacing:.025em;overflow-wrap:anywhere;text-shadow:0 1px 1px #492216}
.iv-opening[data-opening="velvet-seal"] .vs-ribbon{position:absolute;top:70%;height:61%;width:22%;background:linear-gradient(90deg,#32141e,#8a4b54 20%,#6b333e 65%,#ad6b715c);clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%);box-shadow:inset 2px 0 #d29b6d42;transform-origin:50% 0}
.iv-opening[data-opening="velvet-seal"] .vs-ribbon-left{left:32%;transform:rotate(13deg)}
.iv-opening[data-opening="velvet-seal"] .vs-ribbon-right{left:49%;transform:rotate(-17deg)}
.iv-opening[data-opening="velvet-seal"]:is([data-state="opening"],[data-state="leaving"],[data-state="open"]) .vs-seal{animation:vs-seal-release 250ms cubic-bezier(.2,.7,.25,1) both}
.iv-opening[data-opening="velvet-seal"]:is([data-state="opening"],[data-state="leaving"],[data-state="open"]) .vs-flap{animation:vs-flap-unfold 550ms 250ms cubic-bezier(.4,.05,.25,1) both}
.iv-opening[data-opening="velvet-seal"]:is([data-state="opening"],[data-state="leaving"],[data-state="open"]) .vs-letter{animation:vs-letter-rise 900ms 600ms cubic-bezier(.22,.7,.24,1) both}
@keyframes vs-seal-release{0%{opacity:1;transform:translateY(0) scale(1) rotate(0)}45%{opacity:1;transform:translateY(-8px) scale(1.045) rotate(-4deg)}100%{opacity:0;transform:translateY(-21px) scale(1.1) rotate(-7deg)}}
@keyframes vs-flap-unfold{0%{z-index:7;transform:rotateX(0deg)}49%{z-index:7}50%{z-index:2}100%{z-index:2;transform:rotateX(180deg)}}
@keyframes vs-letter-rise{0%{transform:translateY(0);box-shadow:0 4px 13px #24161e26}100%{transform:translateY(-43%);box-shadow:0 9px 20px #24161e2e}}
@media(max-width:360px){.iv-opening[data-opening="velvet-seal"] .vs-letter{padding:19px 14px;gap:7px}.iv-opening[data-opening="velvet-seal"] .vs-letter-flourish{flex-basis:20px;max-width:105px}.iv-opening[data-opening="velvet-seal"] .vs-front-date{letter-spacing:.08em}.iv-opening[data-opening="velvet-seal"] .vs-long-names .vs-letter{padding:19px 13px;gap:5px}}
@media(prefers-reduced-motion:reduce){.iv-opening[data-opening="velvet-seal"] .vs-stage *{animation:none!important;transition:none!important;will-change:auto!important}.iv-opening[data-opening="velvet-seal"]:is([data-state="opening"],[data-state="leaving"],[data-state="open"]) .vs-seal{opacity:0}.iv-opening[data-opening="velvet-seal"]:is([data-state="opening"],[data-state="leaving"],[data-state="open"]) .vs-flap{z-index:2;transform:rotateX(180deg)}.iv-opening[data-opening="velvet-seal"]:is([data-state="opening"],[data-state="leaving"],[data-state="open"]) .vs-letter{transform:translateY(-43%)}}
