/* The entrance is the entire viewport: the gold panels are the first page. */
body:not(.door-opened){overflow:hidden}
.portal-stage{height:100svh;min-height:100svh;padding:0;isolation:isolate;background:#082a2d}
.portal{position:absolute;inset:0;width:100%;height:100%;min-height:0;filter:none;perspective:1800px}
.inside{inset:0;border:0;border-radius:0;background:radial-gradient(circle at 50% 47%,#326160 0,#0b3036 47%,#041c25 100%)}
.inside::before{display:none}
.door{width:50%;top:0;bottom:0;transform-origin:left center}
.door-right{transform-origin:right center}
.door-panel,.door-left .door-panel,.door-right .door-panel{position:relative;height:100%;border:0;border-radius:0;background:linear-gradient(100deg,#704719 0%,#b78132 5%,#f7d780 20%,#c9913b 42%,#f7d57d 69%,#9b6626 100%);box-shadow:inset 0 0 0 12px #8d5922,inset 0 0 0 17px #f7db91,inset 0 0 0 25px #aa762e,inset 0 0 80px #5b370f90}
.door-right .door-panel{background:linear-gradient(80deg,#956020 0%,#e6bb62 20%,#b4772a 48%,#f5d584 79%,#704719 100%)}
.door-panel::before{content:"";position:absolute;inset:4.5% 7%;border:2px solid #fff0b3a8;border-radius:46% 46% 3px 3px/20% 20% 3px 3px;box-shadow:0 0 0 8px #7e501a6b,inset 0 0 0 9px #f8df9d45;background:repeating-linear-gradient(90deg,transparent 0 7%,#75491d35 7.25% 7.8%,transparent 8% 13%)}
.door-panel::after{content:"";position:absolute;inset:12% 16%;border:1px solid #fff4c8b8;border-radius:45% 45% 3px 3px/18% 18% 3px 3px;box-shadow:inset 0 0 30px #fff2ba35}
.door-flower{position:absolute;top:43%;left:50%;z-index:1;transform:translate(-50%,-50%);font-size:clamp(38px,6vw,90px);color:#fff0b0;text-shadow:0 5px 9px #653e14}
.lock{top:50%;filter:drop-shadow(0 15px 18px #50300cb0)}
.stage-overline,.stage-caption{position:absolute;left:16px;right:16px;z-index:7;color:#fff2d2;text-shadow:0 2px 8px #5b3514}
.stage-overline{top:clamp(70px,12vh,130px);margin:0}
.stage-caption{bottom:clamp(28px,5vh,60px);margin:0}
.portal-stage.opening .stage-overline,.portal-stage.opening .stage-caption{opacity:0;transition:opacity .35s}
.topbar{position:fixed;z-index:20;opacity:0;pointer-events:none;transition:opacity .4s;background:#092a2ee8}
.door-opened .topbar{opacity:1;pointer-events:auto}
.invitation-intro{min-height:100svh;padding:110px 24px 80px;background:radial-gradient(circle at 50% 35%,#123d42 0,#082b32 50%,#061e29 100%)}
.invitation-intro h1{margin:16px 0 4px;font-family:'Playfair Display',serif;font-size:clamp(3.4rem,8vw,7.4rem);font-weight:400;line-height:1.08;color:#fff3d3}
.invitation-intro h1 i{color:#e8bc68;font-weight:400}
.hero-couple{display:block;width:min(480px,82vw);max-height:48vh;margin:12px auto 18px;object-fit:contain;filter:drop-shadow(0 18px 26px #0007)}
.invitation-intro h2{font-size:clamp(2.6rem,5vw,5rem);margin:12px 0 18px}
@media(max-width:700px){.portal-stage{height:100svh;min-height:100svh;padding:0}.portal{inset:0;width:100%;height:100%;min-height:0}.door-panel,.door-left .door-panel,.door-right .door-panel{box-shadow:inset 0 0 0 7px #8d5922,inset 0 0 0 10px #f7db91,inset 0 0 0 15px #aa762e}.door-panel::before{inset:5% 9%}.door-panel::after{inset:13% 18%}.invitation-intro{padding-top:92px}.hero-couple{max-height:42vh}}
