.lfr{width:100vw;max-width:none;margin-left:calc(50% - 50vw);min-height:100vh;min-height:100svh;--lfr-gold:#f4c978;--lfr-cream:#ffe6b0;--lfr-red:#d81f45;--lfr-text:#fff9fc;position:relative;isolation:isolate;min-height:100vh;overflow:hidden;color:var(--lfr-text);font-family:Inter,Montserrat,'Segoe UI',Arial,sans-serif;background:radial-gradient(ellipse at 20% 20%,#591a36 0,transparent 37%),radial-gradient(ellipse at 87% 85%,#401226 0,transparent 40%),#120914;display:flex;align-items:center;justify-content:center;padding:40px 22px;box-sizing:border-box}
.lfr *{box-sizing:border-box}.lfr [hidden]{display:none!important}
.lfr-bg{pointer-events:none;position:absolute;inset:0;opacity:.085;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,#000,transparent 92%)}
.lfr-stage{position:relative;z-index:2;width:min(1720px,100%);text-align:center}
.lfr-kicker{font-weight:850;font-size:clamp(12px,1.2vw,16px);letter-spacing:.3em;color:#f0c2d2;margin:0 0 20px}
.lfr-title{font-size:clamp(39px,6.8vw,108px)!important;font-weight:950!important;letter-spacing:-.065em!important;line-height:1.02!important;color:var(--lfr-text)!important;margin:0 0 40px!important;text-shadow:0 16px 44px #0006!important}
.lfr-title em{color:var(--lfr-gold);font-style:normal}
.lfr-frame{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-radius:32px;width:100%;min-height:clamp(320px,42vh,500px);padding:clamp(25px,5vw,85px);border:1px solid #ffffff25;background:linear-gradient(120deg,#ffffff13,#ffffff06 40%,#b81c3d15);box-shadow:0 28px 80px #0006,inset 0 0 75px #edbb530b;display:flex;align-items:center;justify-content:center;overflow:hidden}
.lfr-frame:after{content:"";pointer-events:none;position:absolute;inset:auto -80px -120px auto;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,#f4c9782a,transparent 68%)}
.lfr-winner{position:relative;z-index:1;max-width:100%;font-size:clamp(48px,9vw,160px);font-weight:950;line-height:1.05;letter-spacing:-.075em;color:#fff;overflow-wrap:anywhere;text-wrap:balance;text-shadow:0 7px 38px #0009}
.lfr-winner.lfr-shuffle{font-size:clamp(30px,4.8vw,76px);line-height:1.12;letter-spacing:-.045em;filter:blur(1.2px)}
.lfr-shuffle-phone{display:block;position:relative;z-index:1;width:100%;text-align:center;margin:0 auto;color:#f4c978;font-size:clamp(17px,1.8vw,30px);font-weight:850;letter-spacing:.08em;text-shadow:0 0 24px #f4c97833}.lfr-shuffle-phone[hidden]{display:none!important}
.lfr-contact{display:flex;justify-content:center;align-items:stretch;gap:18px;flex-wrap:wrap;margin:24px auto 0;max-width:1100px}.lfr-contact[hidden]{display:none!important}.lfr-contact-item{min-width:min(360px,100%);padding:16px 26px;border:1px solid #f4c97866;border-radius:15px;background:#ffffff0c;box-shadow:0 12px 30px #0003}.lfr-contact-item span{display:block;margin-bottom:7px;color:#f4c978;font-size:11px;font-weight:900;letter-spacing:.2em}.lfr-contact-item a{color:#fff9fc;text-decoration:none;font-size:clamp(16px,1.5vw,24px);font-weight:750;overflow-wrap:anywhere}.lfr-status{min-height:26px;margin-top:26px;color:#e4c4d0;letter-spacing:.14em;font-size:clamp(12px,1.3vw,18px);font-weight:800}
.lfr-controls{margin-top:28px}.lfr-controls button{min-width:190px!important;border:0!important;border-radius:13px!important;cursor:pointer;color:white!important;background:linear-gradient(120deg,#ea2b54,#a30e30)!important;box-shadow:0 13px 33px #a30e3066!important;padding:18px 35px!important;font-size:13px!important;letter-spacing:.14em;font-weight:900!important}.lfr-controls button:disabled{opacity:.5;cursor:default}
.lfr-message{font-size:13px;color:#ffbfcb;min-height:12px;margin-top:16px}.lfr-login{font-size:11px;opacity:.55;margin-top:10px}.lfr-login a{color:#f8dce6}
.lfr.lfr-complete{background:radial-gradient(ellipse at 50% 28%,#65401e 0,transparent 38%),radial-gradient(ellipse at 10% 70%,#64182d 0,transparent 44%),radial-gradient(ellipse at 90% 80%,#4b1825 0,transparent 35%),#160a13}
.lfr-complete .lfr-kicker{font-size:clamp(26px,4.3vw,68px);font-weight:950;letter-spacing:.09em;color:var(--lfr-gold);text-shadow:0 0 35px #f4c97855;animation:lfr-head 1s cubic-bezier(.2,.8,.2,1) both}
.lfr-complete .lfr-title{font-size:clamp(20px,2.5vw,36px)!important;margin:0 0 35px!important;letter-spacing:.10em!important;color:#eed9e1!important}
.lfr-complete .lfr-frame{border:2px solid #f4c978aa;background:radial-gradient(ellipse at 50% 50%,#f4c97814,transparent 70%),linear-gradient(135deg,#fff9e915,#ffecd006 56%,#e91e4515);box-shadow:0 0 80px #f4c97818,0 35px 85px #0008,inset 0 0 60px #f4c97816}
.lfr-complete .lfr-winner{color:var(--lfr-cream);text-shadow:0 0 50px #f4c97855,0 12px 45px #000b;animation:lfr-reveal 1.2s cubic-bezier(.18,.82,.21,1) both}
.lfr-complete .lfr-status{font-size:clamp(15px,1.65vw,23px);font-weight:800;letter-spacing:.2em;color:#fff0cc}
.lfr-confetti{position:absolute;inset:0;z-index:5;overflow:hidden;pointer-events:none}.lfr-confetti i{position:absolute;top:-24px;width:9px;height:17px;animation:lfr-fall 3.4s linear forwards}
@keyframes lfr-reveal{0%{opacity:0;filter:blur(12px);transform:scale(.82) translateY(20px)}65%{opacity:1;filter:blur(0);transform:scale(1.045)}100%{transform:scale(1)}}
@keyframes lfr-head{from{opacity:0;transform:translateY(-26px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes lfr-fall{to{top:115%;transform:translateX(80px) rotate(700deg);opacity:0}}
@media(max-width:600px){.lfr-shuffle-phone{font-size:clamp(16px,4.5vw,23px)}.lfr-contact{gap:10px;margin-top:15px}.lfr-contact-item{min-width:100%;padding:12px 16px}.lfr-winner.lfr-shuffle{font-size:clamp(26px,7vw,48px)}.lfr{padding:26px 14px}.lfr-frame{min-height:260px;border-radius:20px}.lfr-title{margin-bottom:28px!important}.lfr-winner{font-size:clamp(43px,11vw,76px)}.lfr-complete .lfr-kicker{letter-spacing:.03em}}
@media(prefers-reduced-motion:reduce){.lfr-complete .lfr-winner,.lfr-complete .lfr-kicker{animation:none}.lfr-confetti i{animation-duration:.1s}}

/* Re-run verification modal: only rendered for logged-in administrators. */
.lfr-auth-backdrop[hidden]{display:none!important}
.lfr-auth-backdrop{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(8,4,10,.82);backdrop-filter:blur(9px)}
.lfr-auth-card{width:min(460px,100%);padding:30px;border:1px solid #f4c97866;border-radius:22px;background:linear-gradient(145deg,#2c1022,#160b15);box-shadow:0 28px 90px #000b;color:#fff;text-align:left}
.lfr-auth-card h2{margin:0 0 10px;color:#ffe6b0;font-size:25px;line-height:1.15}
.lfr-auth-card>p{margin:0 0 22px;color:#d9c1cc;font-size:14px;line-height:1.6}
.lfr-auth-card label{display:block;margin:15px 0;color:#f6dce5;font-size:12px;font-weight:800;letter-spacing:.08em}
.lfr-auth-card input{display:block;width:100%;height:48px;margin-top:8px;padding:0 13px;border:1px solid #ffffff35;border-radius:9px;background:#100812;color:#fff;font:inherit;font-size:16px;outline:none}
.lfr-auth-card input:focus{border-color:#f4c978;box-shadow:0 0 0 3px #f4c97822}
.lfr-auth-error{min-height:18px;margin:8px 0 12px!important;color:#ff9eaf!important;font-size:13px!important}
.lfr-auth-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.lfr-auth-actions button{min-height:45px;padding:0 16px;border:0;border-radius:9px;cursor:pointer;font-size:11px;font-weight:900;letter-spacing:.08em}
.lfr-auth-actions [data-lfr-auth-cancel]{background:#ffffff12;color:#f4dce5;border:1px solid #ffffff25}
.lfr-auth-actions [data-lfr-auth-submit]{background:linear-gradient(120deg,#ea2b54,#a30e30);color:#fff}
.lfr-auth-actions button:disabled{opacity:.55;cursor:wait}
@media(max-width:480px){.lfr-auth-card{padding:23px}.lfr-auth-actions{flex-direction:column-reverse}.lfr-auth-actions button{width:100%;min-height:48px}}


/* v2.9 organizer stage login gate */
.lfr-login-gate{position:relative;z-index:20;min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:28px;background:radial-gradient(ellipse at 18% 20%,#591a36 0,transparent 38%),radial-gradient(ellipse at 88% 85%,#401226 0,transparent 42%),#120914}
.lfr-login-gate[hidden]{display:none!important}
.lfr-login-card{width:min(480px,100%);padding:38px;border:1px solid #f4c97866;border-radius:24px;background:linear-gradient(145deg,#321426ed,#160b15f2);box-shadow:0 30px 100px #000b;color:#fff;text-align:left}
.lfr-login-brand{margin-bottom:14px;color:#f4c978;font-size:12px;font-weight:950;letter-spacing:.28em}
.lfr-login-card h1{margin:0 0 12px;color:#ffe6b0;font-size:clamp(25px,4vw,34px);line-height:1.12;letter-spacing:-.03em}
.lfr-login-card>p{margin:0 0 22px;color:#d9c1cc;font-size:14px;line-height:1.6}
.lfr-login-card label{display:block;margin:16px 0;color:#f6dce5;font-size:12px;font-weight:850;letter-spacing:.08em}
.lfr-login-card input{display:block;width:100%;height:50px;margin-top:8px;padding:0 14px;border:1px solid #ffffff35;border-radius:10px;background:#100812;color:#fff;font:inherit;font-size:16px;outline:none}
.lfr-login-card input:focus{border-color:#f4c978;box-shadow:0 0 0 3px #f4c97822}
.lfr-login-error{min-height:18px;margin:8px 0 12px!important;color:#ff9eaf!important;font-size:13px!important}
.lfr-login-card button{width:100%;min-height:52px;margin-top:8px;border:0;border-radius:10px;background:linear-gradient(120deg,#ea2b54,#a30e30);color:#fff;font-size:12px;font-weight:950;letter-spacing:.13em;cursor:pointer}
.lfr-login-card button:disabled{opacity:.55;cursor:wait}
.lfr-stage[hidden]{display:none!important}
@media(max-width:480px){.lfr-login-card{padding:25px}}

/* 60-second raffle music control */
.lfr-controls{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
.lfr-controls button.lfr-music-button{min-width:165px!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(244,201,120,.4)!important;box-shadow:none!important;color:#ffe6b0!important;padding:17px 24px!important}
.lfr-controls button.lfr-music-button[aria-pressed="false"]{opacity:.75}
@media(max-width:600px){.lfr-controls{gap:10px}.lfr-controls button{min-width:160px!important}}
