.cat-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px;margin-bottom:22px;padding-bottom:18px;display:flex}.cat-tab{background:var(--panel);border:1px solid var(--border);color:var(--muted);letter-spacing:1px;cursor:crosshair;border-radius:6px;align-items:center;gap:8px;padding:10px 16px;font-family:Chakra Petch,system-ui,sans-serif;font-size:13.5px;font-weight:600;transition:border-color .2s,color .2s,background .2s,transform .15s;display:inline-flex}.cat-tab .ico{font-size:16px}.cat-tab .ico.ico-img{background-position:50%;background-size:cover;border-radius:4px;width:20px;height:20px;font-size:0}.cat-tab:hover{border-color:var(--accent);color:var(--text);transform:translateY(-1px)}.cat-tab.active{color:#08110a;background:var(--accent);border-color:var(--accent);box-shadow:0 0 16px var(--glow)}.roster{border:1px solid var(--border);background:var(--panel);border-radius:8px;display:none;overflow:hidden}.roster.active{animation:.45s cubic-bezier(.2,.8,.2,1) both teamIn;display:block}.roster-head{border-bottom:1px solid var(--border);background:var(--panel2);align-items:center;gap:14px;padding:18px 22px;display:flex}.roster-head .logo{border-radius:8px;justify-content:center;align-items:center;width:52px;height:52px;font-size:26px;display:flex}.roster-head .logo.has-image{border:1px solid var(--border);background-position:50%;background-size:cover;font-size:0}.roster-head .meta{flex:1}.roster-head .game{letter-spacing:.5px;font-size:20px;font-weight:700}.roster-head .div{color:var(--muted);letter-spacing:1px;font-family:Share Tech Mono,monospace;font-size:11px}.roster-head .record{text-align:right;font-family:Share Tech Mono,monospace}.roster-head .rec-v{color:var(--accent);font-size:22px;font-weight:700}.roster-head .rec-k{color:var(--muted);letter-spacing:2px;font-size:9px}.roster-body{grid-template-columns:1fr 1fr;display:grid}@media (width<=900px){.roster-body{grid-template-columns:1fr}}.player-list{border-right:1px solid var(--border);padding:12px}@media (width<=900px){.player-list{border-right:none;border-bottom:1px solid var(--border)}}.player-row{cursor:crosshair;opacity:0;border:1px solid #0000;border-radius:7px;align-items:center;gap:14px;padding:14px 16px;transition:background .2s,border-color .2s,transform .15s;animation:.5s both rowIn;display:flex}.player-row .num{color:var(--muted);width:22px;font-family:Share Tech Mono,monospace;font-size:12px}.player-row .avatar{background:var(--bg2);border:1px solid var(--border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;display:flex}.player-row .ign{flex:1;font-size:16px;font-weight:700}.player-row .role{letter-spacing:1px;color:var(--muted);font-family:Share Tech Mono,monospace;font-size:11px}.player-row:hover{background:#8fce3f0d;transform:translate(4px)}.player-row.active{border-color:var(--accent);background:#8fce3f17}.player-row.active .ign,.player-row.active .role{color:var(--accent)}.player-row:first-child{animation-delay:.14s}.player-row:nth-child(2){animation-delay:.2s}.player-row:nth-child(3){animation-delay:.26s}.player-row:nth-child(4){animation-delay:.32s}.player-row:nth-child(5){animation-delay:.38s}.player-row:nth-child(6){animation-delay:.44s}.player-row:nth-child(7){animation-delay:.5s}.player-row:nth-child(8){animation-delay:.56s}.player-stage{min-height:480px;padding:24px 20px;position:relative;overflow:hidden}.stage-card{opacity:0;pointer-events:none;justify-content:center;align-items:center;padding:24px 20px;transition:opacity .4s,transform .4s cubic-bezier(.2,.8,.2,1);display:flex;position:absolute;inset:0;transform:translate(26px)scale(.98)}.stage-card.active{opacity:1;transform:none}.stage-inner{border:1px solid var(--border);background:var(--panel);border-radius:12px;width:min(260px,100%);transition:border-color .3s,box-shadow .3s;overflow:hidden}.stage-card.active .stage-inner{border-color:var(--accent);box-shadow:0 0 30px var(--glow)}.stage-frame{aspect-ratio:3/4;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.stage-frame:after{content:"";opacity:.5;background-image:linear-gradient(#0000002e 1px,#0000 1px),linear-gradient(90deg,#0000002e 1px,#0000 1px);background-size:30px 30px;position:absolute;inset:0}.stage-frame .stage-avatar{z-index:1;filter:drop-shadow(0 10px 26px #0000008c);font-size:96px;animation:4s ease-in-out infinite floaty;position:relative}.stage-frame .stage-tag{z-index:1;letter-spacing:1.5px;color:#fff;background:#00000080;border:1px solid #ffffff40;border-radius:3px;padding:4px 9px;font-family:Share Tech Mono,monospace;font-size:10.5px;position:absolute;top:12px;left:12px}.stage-info{padding:14px 16px}.stage-info .stage-ign{letter-spacing:.5px;color:var(--accent);font-size:20px;font-weight:700}.stage-info .stage-role{letter-spacing:1.5px;color:var(--muted);margin-top:4px;font-family:Share Tech Mono,monospace;font-size:11px}.stage-info .stage-game{color:var(--muted);margin-top:6px;font-family:Share Tech Mono,monospace;font-size:10.5px}@keyframes teamIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes rowIn{0%{opacity:0;transform:translate(-26px)}to{opacity:1;transform:none}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.player-row .ign .cap-badge{letter-spacing:1px;color:#08110a;background:var(--accent);vertical-align:middle;border-radius:10px;margin-left:8px;padding:1px 6px;font-family:Share Tech Mono,monospace;font-size:10px;display:inline-block}.player-row.is-captain .avatar{border-color:var(--accent);box-shadow:0 0 10px var(--glow)}.stage-frame .stage-captain{z-index:1;letter-spacing:1.5px;background:var(--accent);color:#08110a;box-shadow:0 0 12px var(--glow);border-radius:4px;padding:4px 10px;font-family:Share Tech Mono,monospace;font-size:10.5px;font-weight:700;position:absolute;top:12px;right:12px}.player-row .avatar.has-photo{background-position:50%;background-size:cover;font-size:0}.stage-frame.has-photo{background-position:50%;background-size:cover}.stage-frame.has-photo:before{content:"";z-index:0;background:linear-gradient(#080b0773,#0000 30% 70%,#080b0759);position:absolute;inset:0}
