*{box-sizing:border-box}
:root{--gold:#d2a22b;--white:#f5f2ea;--state-transition:900ms cubic-bezier(.4,0,.2,1)}
html.invitation-route{--state-transition:1200ms cubic-bezier(.4,0,.2,1)}
html,body{margin:0;min-height:100%;background:#000}
body{min-height:100dvh;overflow:hidden;color:#fff;font-family:Arial,Helvetica,sans-serif}
.stage{min-height:100dvh;display:grid;place-items:center;background:#000}
.poster{position:relative;width:min(100vw,calc(100dvh * 941 / 1671));height:min(100dvh,calc(100vw * 1671 / 941));aspect-ratio:941/1671;overflow:hidden;background:#000}
.state{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;transition:opacity var(--state-transition)}
.state1{opacity:1}.state2{opacity:0}.poster.state-2 .state1{opacity:0}.poster.state-2 .state2{opacity:1}

/* Soft entrance from black on both entry routes. */
.poster:not(.intro-visible) .state1{opacity:0}
.poster.intro-visible.state-1 .state1{opacity:1}

button{font:inherit}
.public-lineup-hotspot,.guest-hotspot{position:absolute;z-index:10;border:0;padding:0;background:transparent;cursor:pointer;opacity:0}

/* A · only RENEW YOUR VIRGINITY is clickable. */
.public-lineup-hotspot{display:none;left:4.2%;top:2.2%;width:91.6%;height:54%}
html.home-route .public-lineup-hotspot{display:block;opacity:1}

/* B · JOIN / GUEST LIST title becomes the form trigger. */
.guest-hotspot{left:4.2%;top:2.2%;width:91.6%;height:54%;pointer-events:none}
html.invitation-route .poster.state-2 .guest-hotspot{opacity:1;pointer-events:auto}

/* B · second explicit route to LINE UP B. */
.guest-lineup-button{display:none;position:absolute;z-index:14;right:6%;bottom:3.4%;min-width:34%;padding:10px 14px 9px;border:1px solid rgba(210,162,43,.96);background:rgba(0,0,0,.76);color:#fff;font-weight:800;font-size:clamp(10px,2.7vw,14px);letter-spacing:.18em;text-indent:.18em;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
html.invitation-route .poster.state-2 .guest-lineup-button{display:block}
.guest-lineup-button:hover,.guest-lineup-button:focus-visible{background:var(--gold);color:#000;outline:none}

.form-panel{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.975);display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;transition:opacity 250ms ease,visibility 250ms ease;overflow:auto}
.form-panel.open{opacity:1;visibility:visible}
.close-form{position:fixed;top:18px;right:22px;border:0;background:none;color:var(--gold);font-size:44px;line-height:1;cursor:pointer}
.guest-form{width:min(100%,520px);display:grid;gap:18px;margin:auto;padding:48px 0}
.form-kicker{margin:0;color:#fff;font-size:10px;font-weight:800;letter-spacing:.18em}
.guest-form h1{margin:0 0 12px;color:var(--gold);font-size:clamp(44px,10vw,82px);line-height:.9;letter-spacing:-.04em}
.guest-form label,.guest-form legend{font-weight:700;font-size:13px;letter-spacing:.08em}
.guest-form input:not([type="radio"]):not([type="checkbox"]){width:100%;margin-top:7px;padding:13px 0;border:0;border-bottom:2px solid var(--gold);border-radius:0;outline:none;background:transparent;color:#fff;font-size:20px}
.guest-form fieldset{border:0;padding:0;margin:2px 0 0}.radio{display:inline-flex;align-items:center;gap:7px;margin:12px 22px 0 0}
.privacy-consent{display:flex;align-items:flex-start;gap:10px;font-size:11px!important;line-height:1.35;letter-spacing:.02em!important;font-weight:400!important}.privacy-consent input{margin-top:2px;accent-color:var(--gold);flex:0 0 auto}
.submit-form{margin-top:6px;padding:15px 18px;border:1px solid var(--gold);background:var(--gold);color:#000;font-weight:800;font-size:16px;cursor:pointer}.submit-form[disabled]{opacity:.55;cursor:wait}
.form-status{min-height:20px;margin:0;font-size:13px}.form-status.error{color:#fff}.honeypot{position:absolute!important;left:-9999px!important;opacity:0!important}
.phone-row{display:grid;grid-template-columns:112px 1fr;gap:14px;align-items:end}.phone-row select{width:100%;margin-top:7px;padding:13px 6px;border:0;border-bottom:2px solid var(--gold);border-radius:0;outline:none;background:#000;color:#fff;font-size:17px}.phone-row input{min-width:0}

.form-panel.registered .guest-form,.form-panel.registered .close-form{display:none}
.guest-success{width:min(100%,650px);min-height:60vh;display:none;place-content:center;text-align:center;margin:auto}.form-panel.registered .guest-success{display:grid}
.guest-success-kicker{margin:0 0 18px;color:#fff;font-size:13px;font-weight:800;letter-spacing:.16em}.guest-success h1{margin:0;color:var(--gold);font-size:clamp(34px,8.3vw,70px);line-height:.94;letter-spacing:-.04em}.guest-success-return{margin:26px 0 0;color:#fff;font-size:12px;letter-spacing:.08em}

@media(max-width:420px){.phone-row{grid-template-columns:104px 1fr;gap:10px}.phone-row select{font-size:15px}.guest-lineup-button{right:5%;bottom:3.2%;min-width:38%;padding:9px 12px 8px}}
@media(prefers-reduced-motion:reduce){.state,.form-panel{transition:none}}
