/* Original Velvet Seal artwork. Shared overlay owns dismissal, focus and page inertness. */
.iv-phone-opening{--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-phone-opening .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-phone-opening .vs-stage *{box-sizing:border-box}
.iv-phone-opening .vs-stage svg{display:block;width:100%;height:100%;overflow:visible}
.iv-phone-opening .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-phone-opening .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-phone-opening .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-phone-opening .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-phone-opening .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-phone-opening .vs-letter-rule{position:absolute;inset:10px;border:1px solid #b18e5d70;pointer-events:none}
.iv-phone-opening .vs-letter-flourish{flex:0 0 25px;max-width:125px;color:#9a7748;margin:2px auto 1px}
.iv-phone-opening .vs-letter-names{display:block;width:100%;font:400 clamp(18px,4.6vw,25px)/1.18 "Cormorant Garamond",Georgia,serif;overflow-wrap:anywhere}
.iv-phone-opening .vs-letter-names>span{display:block}
.iv-phone-opening .vs-letter-names .vs-ampersand{font-style:italic;font-size:.77em;line-height:1.5;color:#9a7748}
.iv-phone-opening .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-phone-opening .vs-letter-mark{flex:0 0 14px;max-width:74px;margin:0 auto;color:#9a7748}
.iv-phone-opening .vs-long-names .vs-letter{gap:7px;padding:22px 16px}
.iv-phone-opening .vs-long-names .vs-letter-names{font-size:clamp(13px,3.35vw,17px);line-height:1.22}
.iv-phone-opening .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-phone-opening .vs-side-left{left:0;clip-path:polygon(0 0,100% 52%,0 100%);border-radius:4px 0 0 5px}
.iv-phone-opening .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-phone-opening .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-phone-opening .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-phone-opening .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-phone-opening .vs-front-ornament{position:absolute;top:85%;left:33%;width:34%!important;height:9%!important;color:#c2a06f}
.iv-phone-opening .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-phone-opening .vs-flap-face{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.iv-phone-opening .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-phone-opening .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-phone-opening .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-phone-opening .vs-wax{position:relative;z-index:1}
.iv-phone-opening .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-phone-opening .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-phone-opening .vs-ribbon-left{left:32%;transform:rotate(13deg)}
.iv-phone-opening .vs-ribbon-right{left:49%;transform:rotate(-17deg)}

/* Original stationary device. Only the invitation inside it moves. */
.iv-phone-showcase{--iv-phone-style-ready:1;--iv-phone-cycle:20s;--iv-phone-play:paused}
.iv-phone-showcase[data-phone-running=true]{--iv-phone-play:running}
.iv-hero-phone .iv-phone-showcase{display:flex;flex-direction:column;align-items:center;justify-content:center;perspective:none;padding:0 0 36px;min-width:0}
.iv-home.iv-entrance .iv-phone-showcase{animation:none}
.iv-phone-showcase [hidden]{display:none!important}
.iv-phone-preview{position:relative;display:block;width:clamp(240px,23vw,286px);max-width:calc(100% - 18px);border-radius:45px;outline-offset:8px!important;text-decoration:none;color:inherit}
.iv-phone-device{position:relative;display:block;width:100%;aspect-ratio:0.475;border:2px solid #cab79a;border-radius:45px;background:linear-gradient(110deg,#9a8d7d,#292723 6%,#111 38%,#37312a 93%,#978775);box-shadow:inset 0 0 0 2px #111,0 0 0 1px #6e6355,0 12px 16px -10px #30231e66,0 35px 65px -28px #54352855}
.iv-phone-device::before,.iv-phone-device::after{content:'';position:absolute;z-index:-1;width:4px;background:linear-gradient(90deg,#635647,#cdbd9c,#66594c);border-radius:2px}
.iv-phone-device::before{left:-5px;top:19%;height:12%}
.iv-phone-device::after{right:-5px;top:26%;height:10%}
.iv-phone-screen{position:absolute;display:block;inset:7px;border:1px solid #0b0a09;border-radius:36px;overflow:hidden;isolation:isolate;background:#fcf6f1;transform:translateZ(0)}
.iv-phone-invitation{position:absolute;display:block;left:0;top:22px;width:100%;height:auto;max-width:none!important;object-fit:initial;transform:translateY(0);will-change:auto}
.iv-phone-notch{position:absolute;z-index:20;top:15px;left:50%;width:29%;height:20px;transform:translateX(-50%);border-radius:20px;background:#080808;box-shadow:inset 0 1px 1px #272523}
.iv-phone-notch::after{content:'';position:absolute;right:9px;top:6px;width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#344c6d,#0a1019 66%);box-shadow:0 0 0 1px #17191c}
.iv-phone-homebar{position:absolute;bottom:13px;left:36%;right:36%;height:4px;z-index:20;border-radius:9px;background:#211c19;opacity:.7}
.iv-phone-opening{display:none;position:absolute;inset:0;z-index:4;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#fffaf0,#eee4d7);color:#4f2630;font-family:'Cormorant Garamond',Georgia,serif}
.iv-phone-opening-title{position:absolute;top:10%;left:8%;right:8%;text-align:center;font:italic 400 19px/1.25 'Cormorant Garamond',Georgia,serif}
.iv-phone-opening-title small{display:block;margin-bottom:10px;font:400 6.5px/1.5 'Be Vietnam Pro',Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.iv-phone-opening-note{position:absolute;left:0;right:0;bottom:15%;text-align:center;font:italic 400 17px/1.2 'Cormorant Garamond',Georgia,serif;letter-spacing:.03em}
.iv-phone-caption{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 19px;margin-top:18px;color:#795b61}
.iv-phone-caption>a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:.78rem;text-decoration:none}
.iv-phone-motion{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 6px;border:0;background:transparent;color:#795b61;font:400 .72rem/1.4 'Be Vietnam Pro',Arial,sans-serif;cursor:pointer;touch-action:manipulation}
.iv-phone-motion svg,.iv-phone-caption>a svg{display:block;flex:none;width:14px;height:14px}
.iv-phone-motion .iv-phone-play-icon{display:none}
.iv-phone-motion[aria-pressed=true] .iv-phone-pause-icon{display:none}
.iv-phone-motion[aria-pressed=true] .iv-phone-play-icon{display:block}
.iv-phone-caption a:focus-visible,.iv-phone-motion:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:2px}

/* One shared CSS clock keeps the cover, paper and internal page aligned. */
.iv-phone-showcase[data-phone-ready=true] .iv-phone-opening{display:block;animation:iv-phone-cover var(--iv-phone-cycle) linear infinite;animation-play-state:var(--iv-phone-play)}
.iv-phone-showcase[data-phone-ready=true] .iv-phone-invitation{animation:iv-phone-page var(--iv-phone-cycle) linear infinite;animation-play-state:var(--iv-phone-play);will-change:transform}
.iv-phone-showcase[data-phone-ready=true] .iv-phone-opening-title,.iv-phone-showcase[data-phone-ready=true] .iv-phone-opening-note{animation:iv-phone-intro var(--iv-phone-cycle) linear infinite;animation-play-state:var(--iv-phone-play)}
.iv-phone-showcase[data-phone-ready=true] .vs-seal{animation:iv-phone-seal var(--iv-phone-cycle) linear infinite;animation-play-state:var(--iv-phone-play)}
.iv-phone-showcase[data-phone-ready=true] .vs-flap{animation:iv-phone-flap var(--iv-phone-cycle) linear infinite;animation-play-state:var(--iv-phone-play)}
.iv-phone-showcase[data-phone-ready=true] .vs-letter{animation:iv-phone-letter var(--iv-phone-cycle) linear infinite;animation-play-state:var(--iv-phone-play)}
@keyframes iv-phone-cover{0%,23%{opacity:1}28%,91%{opacity:0}95%,100%{opacity:1}}
@keyframes iv-phone-page{0%,34%{transform:translateY(0)}75%,94%{transform:translateY(-28%)}95%,100%{transform:translateY(0)}}
@keyframes iv-phone-intro{0%,7.5%{opacity:1}9.5%,90%{opacity:0}90.01%,100%{opacity:1}}
@keyframes iv-phone-seal{0%,7.5%,90.01%,100%{opacity:1;transform:translateY(0) scale(1) rotate(0)}9%{opacity:1;transform:translateY(-6px) scale(1.045) rotate(-4deg)}10.75%,90%{opacity:0;transform:translateY(-18px) scale(1.1) rotate(-7deg)}}
@keyframes iv-phone-flap{0%,10%,90.01%,100%{z-index:7;transform:rotateX(0deg)}12.87%{z-index:7}12.88%{z-index:2}15.75%,90%{z-index:2;transform:rotateX(180deg)}}
@keyframes iv-phone-letter{0%,13.75%,90.01%,100%{transform:translateY(0)}21.25%,90%{transform:translateY(-43%)}}
@media(max-width:1100px) and (min-width:761px){.iv-phone-preview{width:240px}.iv-hero-phone .iv-phone-showcase{padding-bottom:20px}.iv-phone-caption{gap:0 12px}}
@media(max-width:760px){
 .iv-hero-phone .iv-hero-layout{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:0;padding-top:22px}
 .iv-hero-phone .iv-hero-copy{display:contents;text-align:center}
 .iv-hero-phone .iv-hero-copy>.iv-eyebrow{order:0;margin:0 0 8px;text-align:center;font-size:.57rem}
 .iv-home .iv-hero-phone h1{order:1;margin:0 0 12px;text-align:center;font-size:clamp(2.05rem,8.4vw,2.55rem);line-height:.97;letter-spacing:-.05em}
 .iv-hero-phone h1 br:nth-of-type(2){display:none}.iv-hero-phone h1 em{display:block}
 .iv-hero-phone .iv-lede{order:2;max-width:345px;font-size:.74rem;line-height:1.65;text-align:center;margin:0!important}
 .iv-hero-phone .iv-phone-showcase{order:3;padding:0;margin:18px 0 0;width:100%;align-self:center}
 .iv-phone-preview{width:202px;border-radius:35px}
 .iv-phone-device{border-radius:35px}.iv-phone-screen{inset:6px;border-radius:27px}.iv-phone-notch{top:13px;height:16px}.iv-phone-notch::after{width:5px;height:5px;top:5px;right:7px}.iv-phone-homebar{bottom:12px;height:3px}
 .iv-phone-caption{margin-top:6px;gap:5px 15px}.iv-phone-caption>a{font-size:.72rem}.iv-phone-motion{font-size:.67rem}
 .iv-hero-phone .iv-actions{order:4;justify-content:center;margin:9px 0 6px;gap:8px 15px}.iv-hero-phone .iv-trial{order:5;margin:0 0 23px;font-size:.67rem!important;text-align:center}
 .iv-phone-opening-title{font-size:14px}.iv-phone-opening-title small{font-size:5px;margin-bottom:7px}.iv-phone-opening-note{font-size:13px}
}
@media(max-width:350px){.iv-phone-preview{width:184px}.iv-hero-phone .iv-hero-layout{padding-top:18px}.iv-hero-phone .iv-lede{font-size:.71rem}.iv-hero-phone .iv-phone-showcase{margin-top:14px}.iv-hero-phone .iv-actions{gap:2px}.iv-phone-caption{gap:4px 12px}}
@media(prefers-reduced-motion:reduce){.iv-phone-showcase .iv-phone-opening{display:none!important}.iv-phone-showcase .iv-phone-invitation{transform:none!important;animation:none!important}.iv-phone-motion{display:none!important}}


.iv-phone-opening .vs-stage{position:absolute;left:8%;top:22%;width:84%;margin:0}
.iv-phone-opening .vs-letter{padding:14px 11px;gap:5px}.iv-phone-opening .vs-letter-flourish{flex-basis:18px;max-width:80px;margin:0 auto}.iv-phone-opening .vs-letter-names{font-size:19px}.iv-phone-opening .vs-letter-date{font-size:6.5px;margin-top:0;letter-spacing:.03em}.iv-phone-opening .vs-letter-mark{flex-basis:10px;max-width:50px}.iv-phone-opening .vs-front-date{font-size:7px;letter-spacing:.06em}.iv-phone-opening .vs-seal-monogram{font-size:8px}.iv-phone-opening .vs-front-frame{inset:8px}
@media(max-width:760px){.iv-phone-opening .vs-letter{padding:10px 7px;gap:3px}.iv-phone-opening .vs-letter-flourish{flex-basis:12px;max-width:58px}.iv-phone-opening .vs-letter-names{font-size:14px}.iv-phone-opening .vs-letter-date{font-size:4.8px}.iv-phone-opening .vs-letter-mark{flex-basis:7px;max-width:36px}.iv-phone-opening .vs-front-date{font-size:5px}.iv-phone-opening .vs-seal-monogram{font-size:6px}.iv-phone-opening .vs-front-frame{inset:6px}}

/* Choose the flap face explicitly: filtered 3D children differ in Safari.
   Both faces share the hinged plane; only its visible material changes. */
.iv-phone-opening .vs-flap-face{backface-visibility:visible;-webkit-backface-visibility:visible}
.iv-phone-opening .vs-flap-back{transform:none;visibility:hidden}
.iv-phone-showcase[data-phone-ready=true] .vs-flap-front{animation:iv-phone-front-face var(--iv-phone-cycle) step-end infinite;animation-play-state:var(--iv-phone-play)}
.iv-phone-showcase[data-phone-ready=true] .vs-flap-back{animation:iv-phone-back-face var(--iv-phone-cycle) step-end infinite;animation-play-state:var(--iv-phone-play)}
@keyframes iv-phone-front-face{0%,12.87%,90.01%,100%{visibility:visible}12.88%,90%{visibility:hidden}}
@keyframes iv-phone-back-face{0%,12.87%,90.01%,100%{visibility:hidden}12.88%,90%{visibility:visible}}
