/* roster player links + profile cards */
.player-card { color:inherit; }
.player-card-info h3 { transition:color .2s ease; }
.player-card:hover .player-card-info h3 { color:var(--blue-hot); }
.player-real-name { margin-top:7px; color:#fff; font-size:12px; font-weight:700; letter-spacing:.04em; }
.player-card-link { display:inline-flex; margin-top:14px; color:#7da7ff; font-size:9px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.player-card-visual { position:relative; }
.player-card-number { position:absolute; right:18px; bottom:12px; z-index:2; color:transparent; -webkit-text-stroke:1px rgba(88,145,255,.58); font:900 clamp(54px,6vw,88px)/.82 var(--display); letter-spacing:-.08em; opacity:.68; pointer-events:none; }
.substitute-card { margin-top:18px; border:1px solid var(--line); background:linear-gradient(110deg,#06080d,#08101d 70%,#07183d); display:grid; grid-template-columns:auto auto 1fr auto; gap:24px; align-items:center; padding:24px 28px; position:relative; overflow:hidden; }
.substitute-card::after { content:""; position:absolute; width:220px; height:220px; right:-90px; top:-105px; border:1px solid var(--line-blue); transform:rotate(45deg); opacity:.55; }
.substitute-card:hover { border-color:var(--line-blue); }
.substitute-number { color:#566177; font:900 10px/1 var(--font); letter-spacing:.15em; text-transform:uppercase; }
.substitute-avatar { width:62px; height:62px; display:grid; place-items:center; border:1px solid var(--line-blue); background:#071022; color:#8db4ff; font:900 22px/1 var(--display); box-shadow:0 0 30px rgba(21,87,255,.12); }
.substitute-info { position:relative; z-index:1; }
.substitute-info h3 { margin:7px 0 4px; font:900 25px/1 var(--display); text-transform:uppercase; }
.substitute-info p { margin:0; color:#778196; font-size:11px; line-height:1.6; }
.substitute-link { position:relative; z-index:1; color:#8fb4ff; font-size:9px; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.player-profile-page { padding:118px 0 100px; min-height:82vh; }
.player-profile-hero { min-height:385px; display:grid; grid-template-columns:1.3fr .7fr; gap:28px; align-items:stretch; border:1px solid var(--line); background:linear-gradient(115deg,#06080d 0%,#080d18 60%,#071c50 120%); position:relative; overflow:hidden; }
.player-profile-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 55%,rgba(21,87,255,.11)); pointer-events:none; }
.player-profile-copy { padding:58px; align-self:center; position:relative; z-index:2; }
.profile-back { display:inline-flex; margin-bottom:38px; color:#778197; font-size:9px; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.profile-back:hover { color:#fff; }
.profile-status { color:#79a6ff; font-size:10px; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.player-profile-copy h1 { margin:14px 0 5px; font:900 clamp(64px,9vw,130px)/.86 var(--display); letter-spacing:-.055em; text-transform:uppercase; }
.profile-real-name { margin:0; color:#fff; font-size:15px; font-weight:750; letter-spacing:.06em; }
.profile-intro { color:var(--muted); max-width:520px; line-height:1.7; font-size:13px; margin-top:20px; }
.profile-tags { display:flex; gap:8px; flex-wrap:wrap; margin-top:22px; }
.profile-mark { display:grid; place-items:center; position:relative; min-height:320px; }
.profile-mark img { width:min(355px,82%); opacity:.35; filter:drop-shadow(0 0 50px rgba(21,87,255,.28)) saturate(1.3); transform:rotate(-2deg); }
.profile-mark span { position:absolute; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.22); font:900 clamp(120px,15vw,220px)/1 var(--display); opacity:.72; letter-spacing:-.09em; }
.player-stat-shell { margin-top:20px; border:1px solid var(--line); background:#05070b; overflow:hidden; }
.stat-shell-head { min-height:105px; padding:25px 28px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:24px; background:linear-gradient(90deg,#07090e,#080d18); }
.stat-shell-head h2 { margin:8px 0 0; font:900 25px/1 var(--display); text-transform:uppercase; letter-spacing:-.025em; }
.stat-record { display:grid; grid-template-columns:auto auto auto auto auto; gap:8px; align-items:end; color:#747e92; }
.stat-record strong { color:#fff; font:900 23px/1 var(--display); }
.stat-record strong:first-child { color:var(--good); }
.stat-record span { font-size:8px; letter-spacing:.13em; text-transform:uppercase; padding-bottom:2px; }
.stat-record i { font-style:normal; color:#3d4657; padding:0 4px 3px; }
.stat-top-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border-bottom:1px solid var(--line); }
.stat-highlight { background:#070a10; min-height:120px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.stat-highlight span, .stat-split-grid span { color:#758095; font-size:9px; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.stat-highlight strong { margin-top:10px; font:900 31px/1 var(--display); }
.positive { color:#66f0a6 !important; }
.negative { color:#ff5b67 !important; }
.stat-split-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border-bottom:1px solid var(--line); }
.stat-split-grid article { background:#06080d; min-height:102px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.stat-split-grid strong { margin-top:8px; font:900 23px/1 var(--display); }
.stat-split-grid small { margin-top:6px; color:#535d70; font-size:8px; }
.profile-section-label { padding:24px 28px 10px; color:#8e98ab; font-size:9px; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.objective-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; padding:0 28px 24px; }
.objective-grid article { min-height:75px; border:1px solid rgba(43,120,255,.16); background:linear-gradient(145deg,#071022,#06080d); display:flex; flex-direction:column; align-items:center; justify-content:center; }
.objective-grid span { color:#61708a; font-size:8px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.objective-grid strong { margin-top:8px; font:900 17px/1 var(--display); color:#dce7ff; }
.recent-kd { padding:0 28px 24px; display:grid; grid-template-columns:repeat(5,1fr); gap:6px; }
.recent-kd span { min-height:38px; display:grid; place-items:center; font-size:10px; font-weight:900; border:1px solid var(--line); background:#0b0d12; }
.recent-kd .good { color:#70f3ad; background:rgba(28,126,77,.18); border-color:rgba(51,214,129,.16); }
.recent-kd .bad { color:#ff6773; background:rgba(149,43,49,.18); border-color:rgba(255,87,102,.12); }
.mode-list { padding:0 28px 8px; }
.mode-row { display:grid; grid-template-columns:54px 1fr 122px; gap:18px; align-items:start; padding:15px 0; border-bottom:1px solid rgba(255,255,255,.055); }
.mode-row:last-child { border-bottom:0; }
.mode-name { font-weight:900; font-size:12px; padding-top:2px; }
.mode-track { height:7px; background:#151a23; overflow:hidden; margin-top:4px; }
.mode-track span { display:block; height:100%; background:linear-gradient(90deg,#1557ff,#56e4ff); box-shadow:0 0 16px rgba(43,120,255,.22); }
.mode-track-wrap small { display:block; color:#6a7489; font-size:8px; line-height:1.55; margin-top:8px; }
.mode-score { text-align:right; font-weight:900; font-size:11px; white-space:nowrap; }
.mode-score span { color:#616c7e; font-size:8px; }
.mode-score b { margin-left:8px; color:#04110a; background:#5cf3a1; padding:3px 6px; border-radius:99px; font-size:7px; text-transform:uppercase; }
.stat-shell-foot { min-height:58px; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; padding:0 28px; color:#8c96aa; font-size:10px; }
.stat-shell-foot strong { color:#61f0a4; }
.player-empty { margin-top:20px; border:1px solid var(--line); background:#06080d; padding:55px; min-height:270px; display:flex; flex-direction:column; justify-content:center; }
.player-empty h2 { margin:10px 0 8px; font:900 clamp(38px,6vw,72px)/.95 var(--display); text-transform:uppercase; }
.player-empty p { color:var(--muted); max-width:620px; line-height:1.7; }
.player-empty .btn { margin-top:16px; align-self:flex-start; }
@media (max-width:760px) {
  .substitute-card { grid-template-columns:auto 1fr; gap:16px; padding:20px; }
  .substitute-number, .substitute-link { grid-column:1/-1; }
  .substitute-link { margin-top:2px; }
  .player-profile-page { padding-top:92px; }
  .player-profile-hero { grid-template-columns:1fr; min-height:0; }
  .player-profile-copy { padding:34px 24px 8px; }
  .profile-back { margin-bottom:28px; }
  .profile-mark { min-height:250px; }
  .profile-mark img { width:64%; }
  .profile-mark span { font-size:clamp(100px,35vw,165px); }
  .stat-shell-head { align-items:flex-start; flex-direction:column; }
  .stat-top-grid { grid-template-columns:1fr; }
  .stat-highlight { min-height:92px; }
  .stat-split-grid { grid-template-columns:1fr; }
  .objective-grid { grid-template-columns:repeat(2,1fr); padding-inline:18px; }
  .objective-grid article:last-child { grid-column:1/-1; }
  .profile-section-label { padding-inline:18px; }
  .recent-kd { padding-inline:18px; grid-template-columns:repeat(5,minmax(48px,1fr)); overflow-x:auto; }
  .mode-list { padding-inline:18px; }
  .mode-row { grid-template-columns:42px 1fr; }
  .mode-score { grid-column:2; text-align:left; }
  .stat-shell-foot { padding-inline:18px; }
}
