/* LFG velvet curtains: visual-only upgrade, timings unchanged */
:root{--vel-fold:repeating-linear-gradient(90deg,rgba(0,0,0,.38) 0 6px,rgba(255,60,70,.05) 18px,rgba(0,0,0,.30) 34px 40px)}
.royal-siege .banner,.banner{background:var(--vel-fold),linear-gradient(100deg,#070304,#3a070d 40%,#7a0f1c 62%,#2a0509 86%,#050203)!important;box-shadow:0 0 70px #000,inset 0 0 60px rgba(0,0,0,.7),inset 0 -40px 80px rgba(200,24,40,.18)!important}
.royal-siege .banner:before{background:linear-gradient(180deg,rgba(228,191,102,.14),transparent 9%,transparent 91%,rgba(228,191,102,.14))!important;opacity:1!important}
.banner:after{width:3px!important;background:linear-gradient(180deg,#7a4a14,#ffe296 30%,#b8862f 65%,#ffe296)!important;box-shadow:0 0 10px rgba(255,214,120,.8),0 0 30px rgba(200,24,40,.65)!important}
.royal-siege .shock,.shock{position:absolute;inset:0;pointer-events:none;background:url("../../assets/ui/lfg-crest-forged.png?v=crest2") center/min(22vmin,180px) no-repeat,radial-gradient(circle,rgba(200,24,40,.35),transparent 30%)!important;filter:drop-shadow(0 0 18px rgba(228,191,102,.55))}
.transitioning .shock{animation:lfgSeal .7s cubic-bezier(.4,0,.2,1) both!important}
@keyframes lfgSeal{0%,40%{opacity:0;transform:scale(.86)}62%{opacity:1;transform:scale(1)}100%{opacity:1;transform:scale(1.02)}}
.hall-entry-curtains i{background:var(--vel-fold),linear-gradient(90deg,#050203,#2a0509 22%,#7a0f1c 52%,#3a070d 78%,#070304)!important;box-shadow:inset 0 0 60px rgba(0,0,0,.7),0 0 34px rgba(0,0,0,.8)!important}
.hall-entry-curtains i:last-child{background:var(--vel-fold),linear-gradient(270deg,#050203,#2a0509 22%,#7a0f1c 52%,#3a070d 78%,#070304)!important}
.hall-entry-curtains i::after{width:3px!important;background:linear-gradient(180deg,#7a4a14,#ffe296 30%,#b8862f 65%,#ffe296)!important;box-shadow:0 0 10px rgba(255,214,120,.8),0 0 30px rgba(200,24,40,.65)!important}
.hall-entry-curtains::before{content:"";position:absolute;z-index:2;left:50%;top:50%;width:min(22vmin,180px);aspect-ratio:1;transform:translate(-50%,-50%);background:url("../../assets/ui/lfg-crest-forged.png?v=crest2") center/contain no-repeat;filter:drop-shadow(0 0 18px rgba(228,191,102,.55));animation:lfgSealOut .4s ease-out .1s both}
@keyframes lfgSealOut{from{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.06)}}
@media(prefers-reduced-motion:reduce){.transitioning .shock{animation:none!important}}

/* LFG VFX layer on curtains (no scanlines/grain/flash; click-through) */
:root{--cv-gold:rgba(232,183,94,.92)}
.cv-brackets{background:
 linear-gradient(var(--cv-gold),var(--cv-gold)) top left/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) top left/2px 34px no-repeat,
 linear-gradient(var(--cv-gold),var(--cv-gold)) top right/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) top right/2px 34px no-repeat,
 linear-gradient(var(--cv-gold),var(--cv-gold)) bottom left/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) bottom left/2px 34px no-repeat,
 linear-gradient(var(--cv-gold),var(--cv-gold)) bottom right/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) bottom right/2px 34px no-repeat}
/* menu close: brackets snap in + REC readout + crest glitch-lock */
.royal-siege .shock::before,.shock::before{content:"";position:absolute;inset:60px;opacity:0;pointer-events:none;filter:drop-shadow(0 0 6px rgba(232,183,94,.5));
 background:linear-gradient(var(--cv-gold),var(--cv-gold)) top left/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) top left/2px 34px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) top right/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) top right/2px 34px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) bottom left/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) bottom left/2px 34px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) bottom right/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) bottom right/2px 34px no-repeat}
.royal-siege .shock::after,.shock::after{content:"\25CF  REC  \00B7  LFG // SEAL LOCKED";position:absolute;left:calc(22px + 2vw);top:calc(18px + 2vh);opacity:0;pointer-events:none;
 font:400 11px/1 "Press Start 2P",ui-monospace,monospace;letter-spacing:.12em;color:rgba(232,183,94,.9);text-shadow:0 0 8px rgba(200,24,40,.55)}
.transitioning .shock::before{animation:cvLock .7s cubic-bezier(.2,.8,.2,1) both}
.transitioning .shock::after{animation:cvRec .7s linear both}
.transitioning .shock{animation:cvSeal .7s cubic-bezier(.4,0,.2,1) both!important}
@keyframes cvLock{0%,42%{inset:70px;opacity:0}58%{inset:16px;opacity:1}68%,100%{inset:22px;opacity:1}}
@keyframes cvRec{0%,50%{opacity:0}56%{opacity:1}74%{opacity:.35}84%,100%{opacity:1}}
@keyframes cvSeal{
 0%,40%{opacity:0;transform:scale(.9) translateX(0);filter:drop-shadow(0 0 0 transparent)}
 48%{opacity:.85;transform:scale(.97) translateX(-5px);filter:drop-shadow(5px 0 0 rgba(200,24,40,.55)) drop-shadow(-5px 0 0 rgba(232,183,94,.45))}
 53%{opacity:.9;transform:scale(.99) translateX(4px);filter:drop-shadow(-3px 0 0 rgba(200,24,40,.5)) drop-shadow(3px 0 0 rgba(232,183,94,.4))}
 58%{opacity:1;transform:scale(1) translateX(-1px);filter:drop-shadow(1px 0 0 rgba(200,24,40,.35)) drop-shadow(0 0 14px rgba(232,183,94,.45))}
 64%,100%{opacity:1;transform:scale(1);filter:drop-shadow(0 0 16px rgba(232,183,94,.5))}}
/* seam: soft crimson/gold glow that breathes in as halves meet */
.transitioning .banner:after{animation:cvSeam .7s ease-out both}
@keyframes cvSeam{0%,35%{box-shadow:0 0 8px rgba(255,214,120,.5),0 0 18px rgba(200,24,40,.35)}55%,100%{box-shadow:0 0 12px rgba(255,214,120,.85),0 0 46px rgba(200,24,40,.7),0 0 90px rgba(200,24,40,.3)}}
/* hall arrival: brackets release + crest glitch-unlock */
.hall-entry-curtains::after{content:"";position:absolute;z-index:3;inset:22px;pointer-events:none;filter:drop-shadow(0 0 6px rgba(232,183,94,.5));
 background:linear-gradient(var(--cv-gold),var(--cv-gold)) top left/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) top left/2px 34px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) top right/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) top right/2px 34px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) bottom left/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) bottom left/2px 34px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) bottom right/34px 2px no-repeat,linear-gradient(var(--cv-gold),var(--cv-gold)) bottom right/2px 34px no-repeat;
 animation:cvRelease .5s ease-out .08s both}
@keyframes cvRelease{from{inset:22px;opacity:1}to{inset:-30px;opacity:0}}
.hall-entry-curtains::before{animation:cvUnseal .42s ease-out .06s both!important}
@keyframes cvUnseal{0%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:drop-shadow(0 0 16px rgba(232,183,94,.5))}
 30%{opacity:.9;transform:translate(calc(-50% + 4px),-50%);filter:drop-shadow(-4px 0 0 rgba(200,24,40,.5)) drop-shadow(4px 0 0 rgba(232,183,94,.4))}
 55%{transform:translate(calc(-50% - 3px),-50%) scale(1.02)}
 100%{opacity:0;transform:translate(-50%,-50%) scale(1.06);filter:none}}
@media(prefers-reduced-motion:reduce){.transitioning .shock::before,.transitioning .shock::after,.hall-entry-curtains::after,.hall-entry-curtains::before{animation:none!important}.hall-entry-curtains::after{display:none}}

/* ===== SPLIT-CREST CURTAINS (overrides above) ===== */
:root{--cs:180px;--crest:url("../../assets/ui/lfg-crest-forged.png?v=crest2")}
@media(max-width:700px),(max-height:520px){:root{--cs:140px}}
/* menu: straight halves, seam at exactly 50vw */
.royal-siege .banner,.banner{position:fixed!important;top:0!important;bottom:0!important;width:50vw!important;height:auto!important;margin:0!important;overflow:visible!important}
.royal-siege .banner-left,.banner-left{left:0!important;right:auto!important;transform:translateX(-101%)!important}
.royal-siege .banner-right,.banner-right{right:0!important;left:auto!important;transform:translateX(101%)!important}
.royal-siege.transitioning .banner-left,.transitioning .banner-left,.royal-siege.transitioning .banner-right,.transitioning .banner-right{transform:translateX(0)!important}
.royal-siege .banner:before,.banner:before{content:""!important;position:absolute!important;z-index:2;top:50%!important;bottom:auto!important;width:calc(var(--cs) / 2)!important;height:var(--cs)!important;margin-top:calc(var(--cs) / -2);opacity:1!important;inset:auto;
  background:var(--crest) no-repeat!important;background-size:var(--cs) var(--cs)!important;filter:drop-shadow(0 0 14px rgba(232,183,94,.35))}
.banner-left:before{right:0!important;left:auto!important;background-position:0 0!important}
.banner-right:before{left:0!important;right:auto!important;background-position:100% 0!important}
.banner:after{z-index:1}
.banner-left:after{right:0!important;left:auto!important}.banner-right:after{left:0!important;right:auto!important}
.transitioning .banner-left:before{animation:cvHalfL .7s linear both}
.transitioning .banner-right:before{animation:cvHalfR .7s linear both}
@keyframes cvHalfL{0%,46%{transform:translateX(0);filter:drop-shadow(0 0 0 transparent)}50%{transform:translateX(-4px);filter:drop-shadow(-4px 0 0 rgba(200,24,40,.6))}54%{transform:translateX(2px);filter:drop-shadow(3px 0 0 rgba(232,183,94,.5))}58%{transform:translateX(-1px)}62%,100%{transform:translateX(0);filter:drop-shadow(0 0 14px rgba(232,183,94,.4))}}
@keyframes cvHalfR{0%,46%{transform:translateX(0);filter:drop-shadow(0 0 0 transparent)}50%{transform:translateX(4px);filter:drop-shadow(4px 0 0 rgba(232,183,94,.55))}54%{transform:translateX(-2px);filter:drop-shadow(-3px 0 0 rgba(200,24,40,.5))}58%{transform:translateX(1px)}62%,100%{transform:translateX(0);filter:drop-shadow(0 0 14px rgba(232,183,94,.4))}}
/* no floating crest: shock only hosts brackets + REC */
.royal-siege .shock,.shock{background:none!important;filter:none!important;z-index:32!important}
.transitioning .shock{animation:cvShow .7s linear both!important}
@keyframes cvShow{0%,40%{opacity:0}50%,100%{opacity:1}}
/* board arrival: straight 50% halves with crest halves */
.hall-entry-curtains::before{content:none!important;display:none!important}
.hall-entry-curtains i{width:50%!important;transform-origin:center!important}
.hall-entry-curtains i:first-child{left:0!important;--hall-curtain-exit:-101%}
.hall-entry-curtains i:last-child{right:0!important;left:auto!important;--hall-curtain-exit:101%}
.hall-entry-curtains i::before{content:"";position:absolute;z-index:2;top:50%;width:calc(var(--cs) / 2);height:var(--cs);margin-top:calc(var(--cs) / -2);background:var(--crest) no-repeat;background-size:var(--cs) var(--cs);filter:drop-shadow(0 0 14px rgba(232,183,94,.4))}
.hall-entry-curtains i:first-child::before{right:0;background-position:0 0;animation:cvUnL .4s linear both}
.hall-entry-curtains i:last-child::before{left:0;background-position:100% 0;animation:cvUnR .4s linear both}
.hall-entry-curtains i::after{z-index:1}
@keyframes cvUnL{0%,20%{transform:translateX(0)}40%{transform:translateX(-4px);filter:drop-shadow(-4px 0 0 rgba(200,24,40,.6))}60%{transform:translateX(2px)}80%,100%{transform:translateX(0)}}
@keyframes cvUnR{0%,20%{transform:translateX(0)}40%{transform:translateX(4px);filter:drop-shadow(4px 0 0 rgba(232,183,94,.55))}60%{transform:translateX(-2px)}80%,100%{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.transitioning .banner:before,.hall-entry-curtains i::before{animation:none!important}}
.royal-siege .banner.banner-left:before,.banner.banner-left:before{right:0!important;left:auto!important;background-position:0 0!important}
.royal-siege .banner.banner-right:before,.banner.banner-right:before{left:0!important;right:auto!important;background-position:100% 0!important}
.banner:after,.hall-entry-curtains i::after{-webkit-mask:linear-gradient(#000 0 calc(50% - var(--cs) / 2 + 6px),transparent 0 calc(50% + var(--cs) / 2 - 6px),#000 0);mask:linear-gradient(#000 0 calc(50% - var(--cs) / 2 + 6px),transparent 0 calc(50% + var(--cs) / 2 - 6px),#000 0)}
.hall-entry-curtains i:first-child,.hall-entry-curtains i:first-child:not(#x){left:0!important;right:auto!important;--hall-curtain-closed:translateX(0);--hall-curtain-rest:translateX(-101%)}
.hall-entry-curtains i:last-child,.hall-entry-curtains i:last-child:not(#x){right:0!important;left:auto!important;--hall-curtain-closed:translateX(0);--hall-curtain-rest:translateX(101%)}
.hall-entry-curtains i:not(#x){width:50%!important}
.hall-entry-curtains i::before{inset:auto!important;top:50%!important;opacity:1!important}
.hall-entry-curtains i:first-child::before{right:0!important;left:auto!important}
.hall-entry-curtains i:last-child::before{left:0!important;right:auto!important}
.hall-entry-curtains i:not(#x){transform:translateX(0)}
