/* Squad showcase: artwork shuffle on homepage hero */
#squadScene{--spot-x:50%;--spot-y:45%;padding-bottom:0}
.squad-artboard{position:relative}
#squadScene::after{display:none}
.squad-artboard::before{content:'';position:absolute;inset:-10%;z-index:-1;border:1px solid rgba(98,187,255,.35);border-radius:50%;box-shadow:0 0 50px rgba(30,144,255,.13);transform:rotate(-22deg) scaleY(.82);pointer-events:none}
#squadScene .cut{height:auto;transition:filter .3s}
#squadScene .cut-c{top:2%;width:27%}
#squadScene .squad-spot,#squadScene::before{transition:none}
#squadScene::before{background:radial-gradient(circle at var(--spot-x) var(--spot-y),rgba(167,222,255,.34),rgba(30,144,255,.4) 30%,transparent 64%)}
.squad-bar{position:relative;z-index:5;margin-top:clamp(56px,13%,84px);display:flex;flex-direction:column;align-items:stretch;gap:18px}
.squad-names{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.squad-names li{min-height:58px;padding:9px 10px;border:1px solid rgba(194,226,255,.4);background:rgba(3,6,13,.82);transform:skewX(-6deg);display:flex;flex-direction:column;justify-content:center;min-width:0}
.squad-names small{font-family:var(--heading);font-size:8px;letter-spacing:.24em;text-transform:uppercase;color:#62bbff}
.squad-names b{font-family:var(--heading);font-size:clamp(10px,2.9vw,13px);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff;overflow-wrap:anywhere;line-height:1.2}
.squad-btn{align-self:center;min-height:56px;padding:16px 34px;background:#1E90FF;color:#fff;font-family:var(--heading);font-size:12px;font-weight:900;letter-spacing:.2em;text-transform:uppercase;border-radius:8px;box-shadow:0 6px 0 #084d92,0 14px 30px rgba(0,0,0,.45);transition:transform .15s,box-shadow .15s;max-width:100%}
.squad-btn:hover{transform:translateY(-2px);box-shadow:0 8px 0 #084d92,0 18px 34px rgba(0,0,0,.5)}
.squad-btn:active{transform:translateY(5px);box-shadow:0 1px 0 #084d92}
.squad-btn:disabled{opacity:.6;cursor:wait;transform:none}
.squad-hint{text-align:center;font-size:12px;color:var(--muted);margin:0}
.squad-btn:focus-visible{outline:3px solid #fff;outline-offset:4px}
.squad-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.squad-status[data-error]{position:static;width:auto;height:auto;clip:auto;white-space:normal;font-size:13px;color:#ffbebe;text-align:center}
.squad-fx{position:absolute;inset:0;z-index:6;pointer-events:none}
.squad-spark{position:absolute;left:var(--spot-x);top:var(--spot-y);width:9px;height:9px;background:#1E90FF;transform:rotate(45deg);opacity:0;animation:squadSpark .7s var(--spark-delay,0s) ease-out forwards}
.squad-spark:nth-child(3n){background:#62bbff}
.squad-spark:nth-child(4n){background:#fff}
@keyframes squadSpark{0%{opacity:1;transform:translate(0,0) rotate(45deg) scale(1)}100%{opacity:0;transform:translate(var(--dx,0),var(--dy,0)) rotate(225deg) scale(.3)}}
@keyframes squadPop{0%{opacity:0;transform:translateY(30px) scale(.5) rotate(-8deg)}60%{opacity:1;transform:translateY(-8px) scale(1.1) rotate(3deg)}100%{opacity:1;transform:none}}
@keyframes squadFlash{0%{opacity:.9}100%{opacity:0}}
#squadScene.is-summoning .cut{animation:squadPop .55s cubic-bezier(.2,.9,.3,1.2) both}
#squadScene.is-summoning .cut-b{animation-delay:.08s}
#squadScene.is-summoning .cut-c{animation-delay:.16s}
#squadScene.is-summoning .squad-names li{animation:squadPop .4s both}
#squadScene.is-summoning .squad-names li:nth-child(2){animation-delay:.08s}
#squadScene.is-summoning .squad-names li:nth-child(3){animation-delay:.16s}
@media (max-width:480px){.squad-btn{width:100%;padding:16px 18px;letter-spacing:.14em}.squad-names li{padding:8px 6px}}
@media (prefers-reduced-motion:reduce){
  #squadScene.is-summoning .cut,#squadScene.is-summoning .squad-names li,.squad-spark{animation:none!important}
  .squad-spark{display:none}.squad-btn{transition:none}
}
