*{box-sizing:border-box}body{margin:0;background:#150b10;color:#f7e9cd;font-family:Georgia,serif}.entrance{height:100svh;min-height:620px;overflow:hidden;position:relative}.camera{position:absolute;inset:0;transition:transform 2.2s cubic-bezier(.6,0,.3,1)}.facade{position:absolute;height:100%;aspect-ratio:1672/941;min-width:100%;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:50% 75%;transition:transform 2.2s cubic-bezier(.6,0,.3,1)}.facade>img{width:100%;height:100%;object-fit:fill}.doorway{position:absolute;left:43.3%;top:62.8%;width:13.3%;height:24.1%;perspective:750px;background:radial-gradient(ellipse,#e7bd67,#602c19 48%,#170b10 80%);overflow:hidden}.door{position:absolute;top:0;width:50%;height:100%;background-image:url('assets/marquee-plum-v2.png');background-size:1504% 415%;transition:transform 1.25s ease .7s;backface-visibility:hidden}.left{left:0;background-position:46.35% 82.74%;transform-origin:left}.right{right:0;background-position:53.45% 82.74%;transform-origin:right}.vignette{position:absolute;inset:0;background:linear-gradient(180deg,#05071080,transparent 20%,transparent 60%,#10080ed9);pointer-events:none}header{position:absolute;top:0;width:100%;padding:26px 4%;display:flex;justify-content:space-between;gap:20px;z-index:3;font-size:14px;text-shadow:0 2px 5px #000}.wordmark{text-decoration:none}.skip{font:12px/1.5 Arial,sans-serif;color:#f7e9cd}a{color:inherit}a:focus-visible{outline:3px solid white;outline-offset:7px}.invitation{position:absolute;left:5%;bottom:13%;max-width:350px;z-index:3;text-shadow:0 2px 16px #000;transition:opacity .3s}.invitation>p{font:10px/1.6 Arial,sans-serif;letter-spacing:3px}.invitation h1{font-size:clamp(30px,3.4vw,52px);line-height:1.12;font-weight:normal;margin:15px 0 24px}.enter{display:inline-flex;gap:32px;align-items:center;padding:16px 24px;border:1px solid #e6c886;background:#251219d9;text-decoration:none;font:12px Arial,sans-serif;letter-spacing:1px}.enter:hover{background:#e6c886;color:#231119;text-shadow:none}.invitation small{display:block;font-size:13px;margin-top:20px}.door-target{position:absolute;left:44%;top:63%;width:12%;height:24%;z-index:2}.door-target:hover{box-shadow:inset 0 0 25px #ffce732e}.preview-note{position:absolute;bottom:10px;left:0;width:100%;text-align:center;font:10px Arial,sans-serif;letter-spacing:1px;color:#ddcbb1;z-index:3}.arrival{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse,#4c1d2a,#1b0b13);opacity:0;pointer-events:none;z-index:4;transition:opacity .75s ease 1.5s}.arrival span{font:10px Arial,sans-serif;letter-spacing:4px}.arrival p{font-size:clamp(28px,4vw,52px)}.entering .facade{transform:translate(-50%,-50%) scale(5.5)}.entering .camera{transform:translateY(-20%)}.entering .left{transform:rotateY(-88deg)}.entering .right{transform:rotateY(88deg)}.entering .invitation,.entering .preview-note{opacity:0}.entering .arrival{opacity:1}.entering header{z-index:5}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:700px){.entrance{min-height:680px}.invitation{left:0;bottom:8%;width:100%;max-width:none;text-align:center}.invitation h1{font-size:28px;margin:10px 0 15px}.invitation>p,.invitation small{display:none}.vignette{background:linear-gradient(180deg,#070913a6,transparent 20%,transparent 65%,#10080ef0)}header{padding:18px 20px;font-size:11px;align-items:start}.wordmark{max-width:130px}.skip{max-width:130px;text-align:right;font-size:11px}.door-target{left:35%;width:30%}.preview-note{font-size:8px}.enter{padding:13px 23px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
.spotlights{position:absolute;inset:0;pointer-events:none;overflow:hidden;mix-blend-mode:screen;opacity:.48}.beam{position:absolute;bottom:12%;width:30%;height:115%;background:linear-gradient(0deg,#ffdfa64d,#edf0fa36 65%,transparent);clip-path:polygon(49% 100%,51% 100%,100% 0,0 0);transform-origin:50% 100%;filter:blur(9px);animation:sweep 13s ease-in-out infinite alternate}.beam.one{left:4%;--from:-28deg;--to:30deg}.beam.two{right:4%;--from:28deg;--to:-30deg;animation-delay:-7s}.beam.three{left:35%;opacity:.3;--from:-15deg;--to:18deg;animation-duration:19s}@keyframes sweep{from{transform:rotate(var(--from))}to{transform:rotate(var(--to))}}@media(min-width:701px){.facade{transform:translate(-50%,-50%) scale(1.12);transform-origin:50% 45%}.entering .facade{transform:translate(-50%,-50%) scale(5.5);transform-origin:50% 75%}.door-target{top:64%;height:27%}}@media(prefers-reduced-motion:reduce){.beam{animation:none;transform:rotate(-12deg)}.beam.two{transform:rotate(12deg)}}
.entrance{min-height:0}@media(min-width:701px){.facade{transform-origin:50% 0%}}.entering .spotlights{opacity:0;transition:opacity .3s}
.invitation{left:50%;bottom:9%;transform:translateX(-50%);width:min(90%,520px);max-width:520px;text-align:center}.invitation h1{font-size:clamp(28px,3.4vw,46px);text-shadow:0 2px 12px #000,0 0 32px #000}.invitation small{margin-top:14px}@media(max-width:700px){.invitation{left:50%;bottom:8%;width:94%;max-width:none}}
.invitation{left:50%;bottom:9%;transform:translateX(-50%);width:min(90%,520px);max-width:520px;text-align:center}.invitation h1{font-size:clamp(28px,3.4vw,46px);text-shadow:0 2px 12px #000,0 0 32px #000}.invitation small{margin-top:14px}@media(max-width:700px){.invitation{left:50%;bottom:8%;width:94%;max-width:none}}
.invitation h1{color:#651d42;text-shadow:0 1px 0 #f9e8c9,1px 0 0 #f9e8c9,-1px 0 0 #f9e8c9,0 -1px 0 #f9e8c9,0 2px 9px #fff0ccbb;font-weight:bold}
.invitation{display:flex;flex-direction:column;align-items:center}.invitation h1{order:0;margin-bottom:10px;text-shadow:0 1px 0 #000,1px 0 0 #000,-1px 0 0 #000,0 -1px 0 #000,0 2px 6px #000}.invitation>p{order:1;margin:0 0 18px}.invitation .enter{order:2}.invitation small{order:3}
.invitation h1{color:#edc76d;text-shadow:0 2px 4px #000,0 0 12px #000b}
.invitation h1{transform:translateY(14px)}.invitation>p{transform:translateY(10px)}

.firework{position:absolute;z-index:2;pointer-events:none;width:0;height:0}.firework i{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--spark);box-shadow:0 0 7px var(--spark);opacity:0;animation:opening-spark 1.2s ease-out forwards}@keyframes opening-spark{0%{opacity:0;transform:translate(0,0) scale(.2)}12%{opacity:1}70%{opacity:.7}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.4)}}@media(prefers-reduced-motion:reduce){.firework{display:none}}
.firework i{width:4px;height:4px;animation-duration:1.6s;box-shadow:0 0 10px var(--spark)}.entering .facade,.entering .camera{transition-delay:.9s}.entering .arrival{transition-delay:2.4s}.entering .left,.entering .right{transition-delay:1.6s}
.firework{z-index:20}.firework i{width:6px;height:6px;animation-duration:2.8s;box-shadow:0 0 6px 2px var(--spark),0 0 16px var(--spark)}.entering .facade,.entering .camera{transition-delay:2.6s}.entering .arrival{transition-delay:4.1s}.entering .left,.entering .right{transition-delay:3.3s}
