/* Premium royal-door opening used by STW-001 to STW-004 */
.royal-opening{--door-img:url("emerald-garden.png");--door-overlay:rgba(0,30,22,.67);--door-deep:#031f1a;--door-metal:#d8bf78;--door-glow:#2f866b;--door-copy:#fff8e7;position:fixed;inset:0;z-index:50;overflow:hidden;isolation:isolate;background:var(--door-deep);perspective:1500px}
.royal-opening::before{content:"";position:absolute;inset:-24px;background:linear-gradient(var(--door-overlay),var(--door-overlay)),var(--door-img) center/cover;filter:blur(9px) saturate(.9);transform:scale(1.05)}
.royal-opening::after{content:"";position:absolute;inset:14px;z-index:1;border:1px solid color-mix(in srgb,var(--door-metal) 52%,transparent);border-radius:220px 220px 18px 18px;box-shadow:inset 0 0 80px rgba(0,0,0,.38);pointer-events:none}
.door-frame{position:absolute;inset:0;z-index:2;perspective:1500px}
.royal-opening .door{position:absolute;top:0;bottom:0;width:50.2%;overflow:hidden;background-image:linear-gradient(var(--door-overlay),var(--door-overlay)),var(--door-img);background-size:200% 100%;background-repeat:no-repeat;transform-style:preserve-3d;backface-visibility:hidden;transition:transform 1.25s cubic-bezier(.72,.02,.22,1),filter 1.05s ease;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--door-metal) 54%,transparent),inset 0 0 70px rgba(0,0,0,.42)}
.royal-opening .door::before{content:"";position:absolute;inset:4.5vh 4vw;border:2px solid color-mix(in srgb,var(--door-metal) 64%,transparent);border-radius:48% 48% 8px 8px;box-shadow:0 0 0 7px rgba(0,0,0,.12),inset 0 0 34px rgba(0,0,0,.22)}
.royal-opening .door::after{content:"";position:absolute;top:15%;bottom:11%;width:1px;background:linear-gradient(transparent,var(--door-metal),transparent);opacity:.55}
.royal-opening .door-left{left:0;background-position:left center;transform-origin:left center}
.royal-opening .door-right{right:0;background-position:right center;transform-origin:right center}
.royal-opening .door-left::after{right:16%}.royal-opening .door-right::after{left:16%}
.door-handle{position:absolute;top:50%;z-index:2;width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff1c7,var(--door-metal) 48%,#6e4813 100%);box-shadow:0 0 0 4px rgba(0,0,0,.2),0 4px 14px rgba(0,0,0,.5)}
.door-left .door-handle{right:21px}.door-right .door-handle{left:21px}
.royal-opening .opening-content{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px;color:var(--door-copy);text-align:center;text-shadow:0 3px 20px rgba(0,0,0,.72);transition:opacity .32s ease,transform .55s ease;pointer-events:none}
.opening-code{margin:0 0 12px!important;font-family:"DM Sans",sans-serif!important;font-size:.62rem!important;letter-spacing:.22em!important;text-transform:uppercase;color:color-mix(in srgb,var(--door-metal) 86%,white)}
.opening-content h2{font-family:"Cormorant Garamond",serif;font-size:clamp(2.2rem,7vw,4.2rem);font-weight:400;line-height:1;margin:0 0 23px}
.royal-opening #openInvitation{pointer-events:auto;border:0;background:transparent;color:inherit;display:flex;flex-direction:column;align-items:center;gap:13px;cursor:pointer}
.royal-opening #openInvitation span{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 34% 28%,#fff0bd,var(--door-metal) 44%,#7a4c0c 100%);border:3px double #fff0bd;box-shadow:0 12px 32px rgba(0,0,0,.48),0 0 24px color-mix(in srgb,var(--door-glow) 48%,transparent);color:#382006;font-size:1.2rem}
.royal-opening #openInvitation b{border:1px solid color-mix(in srgb,var(--door-metal) 72%,transparent);background:color-mix(in srgb,var(--door-deep) 72%,transparent);border-radius:999px;padding:.78rem 1.35rem;text-transform:uppercase;letter-spacing:.13em;font-size:.7rem;backdrop-filter:blur(10px)}
.royal-opening .opening-content>small{margin-top:14px;font-size:.58rem;letter-spacing:.17em;text-transform:uppercase;color:color-mix(in srgb,var(--door-copy) 72%,transparent)}
.royal-opening.opening-now .door-left{transform:rotateY(-101deg) translateZ(8px);filter:brightness(.66)}
.royal-opening.opening-now .door-right{transform:rotateY(101deg) translateZ(8px);filter:brightness(.66)}
.royal-opening.opening-now .opening-content{opacity:0;transform:scale(.95);pointer-events:none}
.opening--marigold{--door-img:url("marigold-courtyard.png");--door-overlay:rgba(61,15,7,.64);--door-deep:#2a0b08;--door-metal:#e0a544;--door-glow:#d67b22;--door-copy:#fff5df}
.opening--emerald{--door-img:url("emerald-garden.png");--door-overlay:rgba(0,30,22,.67);--door-deep:#031f1a;--door-metal:#d8bf78;--door-glow:#2f866b;--door-copy:#fff8e7}
.opening--ivory{--door-img:url("seaside-ivory.png");--door-overlay:rgba(28,50,59,.58);--door-deep:#162d35;--door-metal:#e6cfa6;--door-glow:#82b8c7;--door-copy:#fffdf7}
.opening--nocturne{--door-img:url("palace-maroon.png");--door-overlay:rgba(43,3,17,.67);--door-deep:#240711;--door-metal:#e0b85c;--door-glow:#9b2446;--door-copy:#fff5df}
.opening--marigold .door::before{border-radius:42% 42% 4px 4px}
.opening--emerald .door::before{border-radius:56% 56% 12px 12px;border-style:double}
.opening--ivory .door::before{border-radius:50% 50% 28px 28px}
.opening--nocturne .door::before{border-radius:48% 48% 0 0;box-shadow:0 0 0 7px rgba(63,5,24,.24),inset 0 0 34px rgba(0,0,0,.3)}
@media(max-width:650px){.royal-opening::after{inset:9px;border-radius:150px 150px 14px 14px}.royal-opening .door::before{inset:3vh 12px}.opening-content h2{font-size:2.55rem}}
@media(prefers-reduced-motion:reduce){.royal-opening .door,.royal-opening .opening-content{transition-duration:.01ms!important}}
