/* El Sol invitation: warm paper, restaurant lettering and a tear-off reward. */
.vip-modal{background:rgba(18,12,8,.76);backdrop-filter:blur(9px)}
.vip-modal-panel{width:min(940px,100%);border:0;border-radius:8px;background:#f4ecd9;box-shadow:0 28px 100px #0009;overflow:auto}
.vip-modal-offer{grid-template-columns:1.12fr 1fr;min-height:590px}
.vip-modal-story{padding:32px 44px 30px;background:#f4ecd9;color:#43251e;border-right:1px dashed #b8a387}
.vip-modal-story::before{opacity:.23;background:repeating-linear-gradient(0deg,transparent,transparent 3px,#d9c9aa 4px);pointer-events:none}
.vip-modal-story::after{display:none}
.vip-invite-logo{width:108px;height:108px;object-fit:contain;margin-bottom:22px;filter:drop-shadow(0 3px 1px #3a1a1718)}
.vip-modal-kicker{font-size:10px;letter-spacing:.2em;color:#95533d;margin-bottom:18px}
.vip-modal-kicker::before{width:18px}
.vip-modal-title{font-family:'Playfair Display',Georgia,serif;font-size:43px;letter-spacing:-1.8px;line-height:1.16;font-weight:700;margin-bottom:20px}
.vip-modal-title em{color:#9e3428;font-weight:400;font-style:italic;white-space:nowrap}
.vip-modal-title span{display:block;font-size:27px;letter-spacing:-.6px;margin-top:9px}
.vip-modal-copy{font-family:'Lato',sans-serif;font-style:normal;color:#6d594a;font-size:14px;line-height:1.8;max-width:300px}
.vip-handwritten{font-family:'Playfair Display',Georgia,serif;font-style:italic;color:#a3402c;font-size:17px;transform:rotate(-3deg);margin-top:30px}
.vip-invite-location{margin-top:26px;font-size:9px;letter-spacing:.2em;color:#8b7764}
.vip-modal-form{padding:52px 34px 34px;background:linear-gradient(150deg,#211815,#100e0d 72%);position:relative}
.vip-modal-form::before{content:'';position:absolute;inset:12px;border:1px solid #d9aa5526;pointer-events:none}
.vip-modal-form .vip-card{padding:0;position:relative}
.vip-modal-form .vip-card::before{display:none}
.vip-modal-form .vip-card-title{font-family:'Playfair Display',Georgia,serif;font-size:27px;font-weight:400;letter-spacing:-.4px;text-transform:none;color:#f6eedc}
.vip-modal-form .vip-card-sub{font-size:10px;color:#c5cebf;letter-spacing:.13em;margin:12px 0 25px}
.vip-modal-form .vip-input-row{flex-direction:column;gap:12px}
.vip-modal-form .vip-input{border:1px solid #f5edd833;background:#0c0b0b;color:#fff8e6;border-radius:4px;padding:17px 15px;font-size:16px;transition:box-shadow .2s,border-color .2s}
.vip-modal-form .vip-input::placeholder{color:#a89d8c}
.vip-modal-form .vip-input:focus{border-color:#f9a825;box-shadow:0 0 0 3px #f9a82520}
.vip-modal-form .vip-submit{background:#f9a825;color:#17110a;border-radius:4px;min-height:52px;letter-spacing:.12em;box-shadow:0 3px 0 #9e6816;transition:transform .2s,box-shadow .2s,background .2s}
.vip-modal-form .vip-submit:hover{background:#fdd16b;transform:translateY(-2px);box-shadow:0 5px 0 #9e6816}
.vip-modal-form .vip-submit:active{transform:translateY(2px);box-shadow:0 1px 0 #9e6816}
.vip-modal-form .vip-checkbox-row{color:#c5bfb4;font-size:11px;line-height:1.6;margin-top:19px}
.vip-modal-form .vip-checkbox-row input{width:17px;height:17px;accent-color:#f9a825}
.vip-verify-disclosure{margin:10px 0 0;color:#c5bfb4;font-size:10px;line-height:1.5;text-align:left}
.vip-modal-form .vip-legal-links{font-size:10px;text-align:center;margin-top:9px;color:#c5bfb4}
.vip-modal-form .vip-legal-links a{color:#f5c96e;text-underline-offset:3px}
.vip-modal-form .vip-form-message{color:#ead5aa}
.vip-modal-form .vip-form-message.error{color:#ff9e91}
.vip-verify-state[hidden]{display:none!important}
.vip-verify-state .vip-card-sub strong{display:inline-block;color:#f9c45e;font-size:1.1em;letter-spacing:.04em}
.vip-code-label{display:block;margin:0 0 8px;color:#f2e7d3;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.vip-code-input{width:100%;border:1px solid #f5edd833;background:#0c0b0b;color:#fff8e6;border-radius:4px;padding:16px;text-align:center;font-size:24px;font-weight:700;letter-spacing:.38em;font-variant-numeric:tabular-nums}
.vip-modal-form .vip-code-input:focus{border-color:#f9a825;box-shadow:0 0 0 3px #f9a82520;outline:0}
.vip-code-submit{width:100%;margin-top:12px}
.vip-code-actions{display:flex;justify-content:space-between;gap:12px;margin-top:14px}
.vip-code-actions button{border:0;background:none;padding:5px 0;color:#f5c96e;text-decoration:underline;text-underline-offset:3px;font:11px 'Lato',sans-serif;cursor:pointer}
.vip-code-actions button:hover,.vip-code-actions button:focus-visible{color:#fff0c3}
.vip-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.vip-modal-close{border:1px solid #f4ecd94d;background:#211815;color:#f4ecd9;transition:transform .25s,background .25s}
.vip-modal-close:hover{transform:rotate(90deg);background:#56251f}
.vip-preview-back{display:block;margin:15px auto 0;padding:8px;border:0;background:none;color:#f9c45e;text-decoration:underline;text-underline-offset:5px;font:12px 'Lato',sans-serif;cursor:pointer}
.vip-modal:not([hidden]) .vip-invite-logo{animation:inviteArrive .6s both}
.vip-modal:not([hidden]) .vip-modal-title{animation:inviteArrive .65s .12s both}
.vip-modal:not([hidden]) .vip-modal-copy{animation:inviteArrive .65s .22s both}
.vip-modal:not([hidden]) .vip-modal-form .vip-card{animation:inviteArrive .65s .3s both}
.vip-ticket{position:relative;color:#472b22;background:#fbf3df;border-radius:5px;box-shadow:0 16px 24px #0004;overflow:hidden;outline-offset:5px;animation:ticketReveal .85s cubic-bezier(.16,1,.3,1) both}
.vip-ticket::after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#fff9 48%,transparent 65%);transform:translateX(110%);animation:ticketSheen 1.1s .25s both;pointer-events:none}
.ticket-top{padding:16px;text-align:center;background:#eddcb8;border-bottom:1px solid #cdb890}
.ticket-top img{width:80px;height:70px;object-fit:contain;display:block;margin:0 auto 6px}
.ticket-top span{font-size:8px;letter-spacing:.16em}
.ticket-body{text-align:center;padding:23px 18px 18px;border-left:1px solid #c7b28c;border-right:1px solid #c7b28c;margin:0 8px}
.ticket-eyebrow{font-size:8px;letter-spacing:.12em;color:#9a3929;font-weight:900}
.ticket-body h3{font:22px/1.3 'Playfair Display',Georgia,serif;margin:10px 0;color:#472b22}
.ticket-body h3 i{font-weight:400}
.ticket-value{display:flex;justify-content:center;align-items:center;font:100px/.95 'Bebas Neue',sans-serif;color:#9b3327;margin:16px 0 10px}
.ticket-value span{font-size:46px;text-align:left;line-height:1}
.ticket-value small{display:block;font:16px 'Lato',sans-serif;letter-spacing:2px}
.ticket-body p{font-size:10px;color:#79634f}
.ticket-tear{position:relative;margin:0 14px;border-top:2px dashed #bda782}
.ticket-tear::before,.ticket-tear::after{content:'';position:absolute;width:24px;height:24px;background:#211815;border-radius:50%;top:-13px}
.ticket-tear::before{left:-26px}.ticket-tear::after{right:-26px}
.ticket-stub{text-align:center;padding:20px 20px 22px;animation:stubReveal .6s .35s both;transform-origin:top}
.ticket-code{display:block;font:11px monospace;letter-spacing:.1em;color:#9b3327}
.ticket-date{display:block;font-size:9px;margin:7px 0;color:#6e5640}
.ticket-stub p{font-size:10px;line-height:1.5;color:#79634f}
.ticket-hours{display:grid;gap:4px;margin:14px 0 10px;padding:12px 10px;border:2px solid #b93828;border-radius:5px;background:#fff0c7;color:#582117;box-shadow:0 3px 0 #d9a743;text-align:center}
.ticket-hours span{font-size:8px;font-weight:900;letter-spacing:.14em;color:#8b2c20}
.ticket-hours strong{font:700 21px/1.15 'Lato',sans-serif;letter-spacing:.02em;color:#7c2119}
.ticket-hours small{font-size:9px;font-weight:700;color:#62422d}
.ticket-stub .ticket-one-use{margin:9px 0 0;font-size:9px;color:#79634f}
@keyframes inviteArrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes ticketReveal{from{opacity:0;transform:translateY(35px) rotate(-5deg) scale(.92);clip-path:inset(0 0 90% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes ticketSheen{from{transform:translateX(-110%)}to{transform:translateX(110%)}}
@keyframes stubReveal{from{opacity:0;transform:perspective(500px) rotateX(-50deg)}to{opacity:1;transform:none}}
@media(max-width:700px){
 .vip-modal{align-items:center;justify-items:center;padding:calc(env(safe-area-inset-top,0px) + 12px) 12px calc(env(safe-area-inset-bottom,0px) + 12px);overflow:hidden}
 .vip-modal-panel{width:100%;height:auto;min-height:0;max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);overflow-y:auto;overscroll-behavior:contain;border-radius:6px;-webkit-overflow-scrolling:touch}
 .vip-modal-offer{grid-template-columns:1fr;min-height:0}
 .vip-modal-story{padding:22px 23px 19px;border-right:0;border-bottom:1px dashed #b8a387}
 .vip-invite-logo{float:right;width:58px;height:58px;margin:0 0 6px 10px}
 .vip-modal-kicker{padding-top:5px;font-size:7px;letter-spacing:.16em;margin-bottom:11px}
 .vip-modal-kicker::before{width:12px}
 .vip-modal-title{font-size:clamp(28px,8vw,36px);line-height:1.05;clear:both;letter-spacing:-1px;margin-bottom:10px}
 .vip-modal-title span{font-size:20px;margin-top:4px}
 .vip-modal-copy{font-size:11px;line-height:1.5;max-width:none;margin:0}
 .vip-handwritten{margin-top:10px;font-size:13px}
 .vip-invite-location{display:none}
 .vip-modal-form{padding:23px 23px 20px}
 .vip-modal-form::before{inset:8px}
 .vip-modal-form .vip-card{padding:0}
 .vip-modal-form .vip-card-title{font-size:22px}
 .vip-modal-form .vip-card-sub{font-size:8px;letter-spacing:.1em;margin:7px 0 14px}
 .vip-modal-form .vip-input-row{gap:9px;margin-bottom:10px}
 .vip-modal-form .vip-input{padding:12px 13px;border-bottom:1px solid #f5edd833;font-size:16px}
 .vip-modal-form .vip-submit{min-height:44px;font-size:11px}
 .vip-modal-form .vip-checkbox-row{font-size:9px;line-height:1.45;margin-top:12px}
 .vip-modal-form .vip-checkbox-row input{width:15px;height:15px}
 .vip-verify-disclosure{font-size:9px;margin-top:7px}
 .vip-modal-form .vip-form-message{font-size:10px;min-height:1.1em;margin-top:6px}
 .vip-code-input{padding:12px;font-size:21px;letter-spacing:.3em}
 .vip-code-actions button{font-size:10px}
 .vip-preview-back{margin:8px auto 0;padding:6px;font-size:11px}
 .vip-modal-close{right:6px;top:6px;width:27px;height:27px}
 .ticket-top{padding:10px}.ticket-top img{width:56px;height:48px}.ticket-body{padding:15px 13px 13px}.ticket-body h3{font-size:19px;margin:7px 0}.ticket-value{font-size:76px;margin:10px 0 7px}.ticket-value span{font-size:34px}.ticket-value small{font-size:12px}.ticket-stub{padding:14px}.ticket-stub p{font-size:9px}.ticket-hours{margin:10px 0 8px;padding:10px 8px}.ticket-hours strong{font-size:19px}.ticket-hours span{font-size:7px}.ticket-hours small{font-size:8px}
}
@media(max-height:740px) and (max-width:700px){.vip-modal-story{padding-top:16px;padding-bottom:14px}.vip-modal-title{font-size:29px}.vip-modal-title span{font-size:17px}.vip-modal-form{padding-top:17px;padding-bottom:14px}}
@media(prefers-reduced-motion:reduce){.vip-modal-panel,.vip-modal *,.vip-ticket,.vip-ticket *,.vip-ticket::after{animation:none!important;transition:none!important}.vip-ticket::after{display:none}}
