/* ─────────────── 공통 테마 ─────────────── */
:root{
  --bg:#0a0b14; --bg2:#12142280; --card:#181a2c; --card2:#20233a;
  --line:#2c3050; --txt:#eef0ff; --dim:#8b91b8;
  --gold:#ffd24a; --green:#38e08a; --red:#ff5470; --blue:#4aa8ff; --purple:#a06bff;
  --shadow:0 8px 30px #0009;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  background:
    radial-gradient(1000px 600px at 20% -10%, #1d2450 0%, transparent 60%),
    radial-gradient(900px 500px at 110% 10%, #3a1a4d 0%, transparent 55%),
    var(--bg);
  color:var(--txt);
  font-family:'Pretendard','Apple SD Gothic Neo',-apple-system,BlinkMacSystemFont,'Segoe UI','Malgun Gothic',sans-serif;
  min-height:100vh; overscroll-behavior:none;
}
button{font-family:inherit;color:inherit;cursor:pointer;border:none;background:none}
.hidden{display:none !important}

.card{background:linear-gradient(180deg,var(--card),#14162699);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.dim{color:var(--dim)}
.gold{color:var(--gold)} .green{color:var(--green)} .red{color:var(--red)}
.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#ffffff12;border:1px solid var(--line)}
.badge.live{background:#ff547022;border-color:#ff547066;color:#ff8fa3}
.badge.ok{background:#38e08a22;border-color:#38e08a55;color:var(--green)}

@keyframes pop{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@keyframes flash{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes rise{from{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.pop{animation:pop .32s cubic-bezier(.2,1.4,.4,1) both}
.rise{animation:rise .3s ease both}

/* ─────────────── 트랙 (공통) ─────────────── */
.track{display:flex;flex-direction:column;gap:10px}
.lane{position:relative;background:#0e1020;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.lane .fill{position:absolute;inset:0;width:0;opacity:.16;transition:width .5s linear}
.lane .row{position:relative;display:flex;align-items:center;gap:8px;padding:8px 10px}
.lane .runner{position:absolute;top:50%;transform:translate(-50%,-50%);transition:left .5s linear;font-size:26px;filter:drop-shadow(0 2px 6px #000a);z-index:2}
.lane .goal{position:absolute;right:8px;top:0;bottom:0;width:6px;
  background:repeating-linear-gradient(45deg,#fff 0 4px,#000 4px 8px);opacity:.5;border-radius:2px}
.lane.win{border-color:var(--gold);box-shadow:0 0 24px #ffd24a44}
.lane .name{font-weight:800}
.lane .mine{color:var(--gold)}

/* 이벤트 토스트 */
.evbox{position:absolute;right:14px;top:-2px;display:flex;gap:6px;pointer-events:none;z-index:5}
.ev{background:#000a;border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:800;animation:pop .3s both}
.shake{animation:shake .32s ease}
