/* Full character presentation: no silhouette crop and no moving hit areas. */
.community-section{align-items:stretch;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.community-visual{display:flex;flex-direction:column;min-width:0;padding:24px 0 28px;overflow:visible;position:relative}
.team-stage{position:relative;isolation:isolate;flex:1;min-height:620px;width:100%;display:grid;align-items:center;padding:24px 3%;perspective:1100px}
.team-portrait{position:relative;isolation:isolate;overflow:visible;width:100%;aspect-ratio:3/2;margin:0;transition:opacity 500ms ease,transform 750ms cubic-bezier(.16,1,.3,1),filter 600ms ease}
.community-visual .team-portrait>img{position:static;display:block;width:100%;height:100%;object-fit:contain;object-position:center}
.ghost-map{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ghost-map .ghost-link polygon{stroke:transparent!important;fill:transparent;pointer-events:all}
.ghost-map .ghost-link:focus-visible polygon{stroke:#d1d5db!important;stroke-width:1}
.team-stage.has-active-ghost .team-portrait{opacity:.12;filter:blur(2px);transform:scale(.97)}
.ghost-spotlight{position:absolute;inset:20px 5% 115px;pointer-events:none;z-index:2}
.community-visual .ghost-spotlight .ghost-solo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;opacity:0;transform:translateY(24px) translateZ(-160px) scale(.67);filter:drop-shadow(0 14px 22px #0008);transition:opacity 280ms ease,transform 800ms cubic-bezier(.16,1,.3,1);pointer-events:none}
.community-visual .ghost-spotlight .ghost-solo.is-active{opacity:1;transform:translateY(0) translateZ(0) scale(1)}
.ghost-spotlight-link{position:absolute;inset:0;z-index:3;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 250ms ease}
.team-stage[data-ghost-state="player"] .ghost-spotlight-link{opacity:1;visibility:visible;pointer-events:auto}
.ghost-identity{position:absolute;bottom:22px;left:8%;right:8%;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.ghost-identity small{font-size:9px;letter-spacing:2px;color:#aeb2b8}.ghost-identity strong{font-size:clamp(24px,3vw,42px);color:#f3f3f3;line-height:1.1}.ghost-identity>span{font-size:10px;letter-spacing:1.7px;color:#c5a8af}
.ghost-back{position:absolute;z-index:4;top:16px;left:6%;border:1px solid #ffffff30;color:#ddd;background:#111114d9;padding:11px 15px;font-size:12px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 200ms ease}
.team-stage.has-active-ghost .ghost-back{opacity:1;visibility:visible;pointer-events:auto}
.ghost-back:hover{border-color:#b7bbc4;background:#222226}
.player-roster a{transition:color 250ms ease,background 250ms ease,padding 350ms cubic-bezier(.22,1,.36,1)}
.player-roster a.is-ghost-active{background:linear-gradient(90deg,#ffffff0b,transparent);padding-left:10px;color:#f2f0eb}
.player-roster a.is-ghost-active .player-platform{color:#d6d9df}
.portrait-caption{margin-top:12px;padding:0 6%}
@media(min-width:1600px){.team-stage{min-height:720px}}
@media(max-width:1000px){.community-section{grid-template-columns:1fr}.community-visual{padding:20px 0}.team-stage{min-height:600px;flex:none}.community-text{padding:40px 6%}}
@media(max-width:600px){.team-stage{min-height:0;aspect-ratio:3/2;padding:8px 2%}.community-visual{padding:12px 0 24px}.ghost-spotlight{inset:0 12% 75px}.ghost-identity{bottom:6px;gap:4px}.ghost-identity small{font-size:7px}.ghost-identity strong{font-size:22px}.ghost-identity>span{font-size:8px}.ghost-back{top:4px;left:3%;font-size:10px;padding:8px 10px}}
@media(prefers-reduced-motion:reduce){.team-portrait,.ghost-solo,.ghost-spotlight-link,.ghost-back,.player-roster a{transition:none!important}.community-visual .ghost-spotlight .ghost-solo{transform:none!important}.team-stage.has-active-ghost .team-portrait{transform:none;filter:none}.player-roster a.is-ghost-active{padding-left:0}}

/* A team spirit at rest; every roster name can take the spotlight. */
.team-stage[data-ghost-state="idle"] .team-portrait{opacity:.08;filter:none;transform:scale(.97)}
.team-stage:not([data-ghost-state="group"]) .ghost-map{pointer-events:none}
.team-stage:not([data-ghost-state="group"]) .ghost-map .ghost-link polygon{pointer-events:none}
.team-stage[data-ghost-state="group"] .ghost-map{pointer-events:auto}
.team-stage .ghost-spotlight-link{visibility:hidden;opacity:0;pointer-events:none}
.team-stage[data-ghost-state="player"] .ghost-spotlight-link{visibility:visible;opacity:1;pointer-events:auto}
.ghost-crew-label{z-index:2;pointer-events:none}
.ghost-crew-label[hidden],.ghost-back[hidden]{display:none!important}
.team-stage .ghost-back{visibility:visible;opacity:1;pointer-events:auto}
.team-stage:has(.ghost-link:focus-visible){outline:2px solid #b76a79;outline-offset:-4px}
@media(max-width:600px){
 .team-stage{aspect-ratio:auto;min-height:430px;padding:24px 2%}
 .ghost-spotlight{inset:48px 6% 86px}
 .ghost-identity{bottom:18px}
 .ghost-back{top:10px;left:5%}
}
