/* StanWars 목업 공용 스타일 — Apple style, 이미지 없는 순수 CSS */
:root{
  --bg:#ffffff; --bg-alt:#f5f5f7; --ink:#1d1d1f; --ink-2:#6e6e73;
  --accent:#0071e3; --line:#d2d2d7; --radius:18px;
  --tier-s:#ff7676; --tier-a:#ffb056; --tier-b:#ffe15c; --tier-c:#9ee37d; --tier-d:#7cc7ff;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard","Segoe UI","Malgun Gothic",sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.6;letter-spacing:-0.01em;-webkit-font-smoothing:antialiased;
}
a{color:var(--accent);text-decoration:none}
/* ── Nav ── */
nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.72);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid rgba(0,0,0,.08)}
.nav-inner{max-width:1440px;margin:0 auto;display:flex;align-items:center;gap:18px;padding:11px 28px;overflow-x:auto}
.logo{font-weight:800;font-size:18px;white-space:nowrap;color:var(--ink)}
.logo span{color:var(--accent)}
.nav-links{display:flex;gap:16px;flex:1}
.nav-links a{color:var(--ink-2);font-size:13.5px;white-space:nowrap;transition:color .2s}
.nav-links a.on,.nav-links a:hover{color:var(--ink);font-weight:600}
.nav-right{display:flex;gap:8px;align-items:center;white-space:nowrap}
.lang-btn{border:1px solid var(--line);background:#fff;border-radius:100px;padding:4px 12px;font-size:12px;cursor:pointer;color:var(--ink-2)}
.lang-btn.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.login-btn{background:var(--accent);color:#fff;border:none;border-radius:100px;padding:6px 16px;font-size:13px;font-weight:600;cursor:pointer}
/* ── Layout ──
   디자인 컨셉: PC는 가로를 넉넉하게(최대 1440px, 멀티 컬럼),
   모바일은 좁은 화면 최적화(1컬럼, 컴팩트 여백) */
main{max-width:1440px;margin:0 auto;padding:0 28px 80px}
@media(max-width:640px){main{padding:0 16px 60px}}
h1{font-size:clamp(28px,5vw,44px);font-weight:700;letter-spacing:-0.03em;line-height:1.15;margin:40px 0 8px}
h1 .grad{background:linear-gradient(90deg,#0071e3,#a259ff,#ff5e7e);-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{color:var(--ink-2);font-size:clamp(14px,2vw,17px);margin-bottom:26px}
h2{font-size:clamp(20px,3vw,28px);font-weight:700;letter-spacing:-0.02em;margin:38px 0 16px}
h3{font-size:17px;font-weight:700;margin:24px 0 12px}
.crumb{font-size:12.5px;color:var(--ink-2);margin-top:24px}
.hint{font-size:12.5px;color:var(--ink-2);margin:6px 0 14px}
/* ── AdSense slots ── */
.ad{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 12px,#f2f2f4 12px,#f2f2f4 24px);
  border:1px dashed var(--line);border-radius:12px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;color:#aeaeb2;font-size:11.5px;gap:2px;margin:22px 0}
.ad b{font-size:12.5px;color:#8e8e93;letter-spacing:.08em}
.ad-top{min-height:90px}.ad-infeed{min-height:110px}.ad-bottom{min-height:100px}
/* ── Cards ── */
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
/* 홈 장르 랭킹: PC 3열(3+3) → 태블릿 2열(2+2+2) → 모바일 1열 */
.g6{grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:1100px){.g6{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.g6{grid-template-columns:1fr}}
/* 장르 TOP 100: PC 4열 → 노트북 3열 → 태블릿 2열 → 모바일 1열 */
.top100{grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:1280px){.top100{grid-template-columns:repeat(3,1fr)}}
@media(max-width:960px){.top100{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.top100{grid-template-columns:1fr}}
.card{background:var(--bg-alt);border-radius:var(--radius);padding:20px}
.card h4{font-size:15px;margin-bottom:6px}
.card p{font-size:13px;color:var(--ink-2)}
a.card{display:block;color:var(--ink);transition:transform .15s}
a.card:hover{transform:scale(1.015)}
.tag{display:inline-block;background:rgba(0,113,227,.1);color:var(--accent);border-radius:100px;padding:2px 10px;font-size:11px;font-weight:600;margin-bottom:8px}
/* ── 랭킹 ── */
.rank-list{background:var(--bg-alt);border-radius:var(--radius);padding:12px 18px}
.rank-head{display:flex;align-items:center;justify-content:space-between;padding:6px 2px 10px;border-bottom:1px solid rgba(0,0,0,.08)}
.rank-head b{font-size:15px}
.rank-head a{font-size:12px}
.rank-row{display:flex;align-items:center;gap:12px;padding:8px 2px;border-bottom:1px solid rgba(0,0,0,.05);font-size:14px}
.rank-row:last-child{border-bottom:none}
.rank-no{width:26px;font-weight:800;font-size:14px;text-align:center;flex-shrink:0}
.rank-no.top3{color:var(--accent)}
.rank-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-name small{color:var(--ink-2);font-weight:400;margin-left:6px;font-size:11.5px}
.rank-cnt{font-size:11.5px;color:var(--ink-2)}
.genre-ico{font-size:18px}
.up{color:#1d8a3e;font-size:11.5px;white-space:nowrap}
.down{color:#c62b22;font-size:11.5px;white-space:nowrap}
.same{color:#aeaeb2;font-size:11.5px}
.new-badge{background:rgba(255,159,10,.16);color:#b06a00;border-radius:100px;padding:1px 8px;font-size:10px;font-weight:700}
/* ── Item ── */
.item{width:100%;user-select:none;text-align:center}
.item .ph{position:relative;width:100%;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:#e8e8ed}
.item .ph img{width:100%;height:100%;object-fit:contain;background:#fff;display:block}
.item .ph .fb{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;color:#fff;padding:6px;text-align:center;line-height:1.15;word-break:keep-all}
.item .nm{font-size:12px;font-weight:600;margin-top:6px;line-height:1.3}
.item .nm small{display:block;font-weight:400;color:var(--ink-2);font-size:10.5px}
.item.sel .ph{outline:3px solid var(--accent);outline-offset:2px}
/* ── Tier board ── */
.board{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin:14px 0}
.t-row{display:flex;min-height:96px;border-bottom:1px solid rgba(0,0,0,.06)}
.t-row:last-child{border-bottom:none}
.t-label{width:60px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:24px;color:#fff}
.t-zone{flex:1;background:var(--bg-alt);display:flex;flex-wrap:wrap;gap:8px;padding:8px;align-content:flex-start;transition:background .15s}
.t-zone.over{background:#e3efff}
.t-zone .item{width:76px;cursor:grab}
.t-zone .item .nm{font-size:10.5px}.t-zone .item .nm small{font-size:9px}
.t-zone .item .ph .fb{font-size:13px}
.pool{background:var(--bg-alt);border-radius:var(--radius);display:flex;flex-wrap:wrap;gap:10px;padding:14px;margin:14px 0;min-height:110px}
.pool .item{width:84px;cursor:grab}
.pool .item .ph .fb{font-size:14px}
/* 미니 티어 프리뷰 (목록 카드용) */
.mini-tier{display:flex;flex-direction:column;gap:3px;margin:10px 0 4px}
.mini-row{display:flex;gap:3px;align-items:center}
.mini-label{width:16px;height:14px;border-radius:3px;flex-shrink:0}
.mini-cell{height:14px;border-radius:3px;background:#e2e2e7;flex:1}
.mini-cell.f{background:#c7c7cf}
/* ── Buttons ── */
.btn{background:var(--accent);color:#fff;border:none;border-radius:100px;padding:11px 28px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .2s;display:inline-block}
.btn:disabled{background:#d2d2d7;cursor:not-allowed}
.btn.ghost{background:#fff;color:var(--accent);border:1px solid var(--accent)}
.btn.sm{padding:7px 18px;font-size:13px}
.btn-row{display:flex;gap:10px;align-items:center;margin:16px 0;flex-wrap:wrap}
/* ── Worldcup ── */
.wc-stage{text-align:center;margin:26px 0}
.wc-round{font-size:14px;font-weight:700;color:var(--accent);letter-spacing:.06em;margin-bottom:18px}
.wc-pair{display:flex;gap:14px;justify-content:center;align-items:stretch}
.wc-card{flex:1;max-width:340px;cursor:pointer;background:var(--bg-alt);border-radius:var(--radius);padding:14px;transition:transform .15s}
.wc-card:hover{transform:scale(1.02)}
.wc-card .nm{font-size:15px;font-weight:700;margin-top:10px}
.wc-card .nm small{display:block;font-weight:400;color:var(--ink-2);font-size:12px}
.wc-card .ph .fb{font-size:30px}
.wc-vs{display:flex;align-items:center;font-weight:800;font-size:22px;color:var(--ink-2)}
.winner-box{text-align:center;padding:30px;background:var(--bg-alt);border-radius:var(--radius)}
.winner-box .item{max-width:220px;margin:0 auto}
.crown{font-size:34px}
/* ── Comments ── */
.cmt-wrap{margin-top:26px}
.cmt{background:var(--bg-alt);border-radius:14px;padding:14px 16px;margin-bottom:10px}
.cmt .who{font-size:12.5px;font-weight:700}
.cmt .who small{color:var(--ink-2);font-weight:400;margin-left:6px}
.cmt p{font-size:13.5px;margin-top:4px}
.cmt .re{margin-top:10px;padding:10px 12px;background:#fff;border-radius:10px}
.cmt-acts{font-size:11.5px;color:var(--ink-2);margin-top:6px;cursor:pointer}
.cmt-input{display:flex;gap:8px;margin-top:12px}
.cmt-input input{flex:1;border:1px solid var(--line);border-radius:100px;padding:10px 16px;font-size:13.5px;font-family:inherit;min-width:0}
.cmt-child{border-left:3px solid rgba(0,113,227,.25);border-radius:6px 14px 14px 6px}
.depth-tag{color:#aeaeb2;font-weight:400;font-size:10px}
/* ── Auth (로그인/회원가입) ── */
.auth-wrap{max-width:520px;margin:40px auto 0}
.auth-card{background:var(--bg-alt);border-radius:24px;padding:36px 32px}
.auth-tabs{display:flex;gap:6px;background:#e8e8ed;border-radius:100px;padding:4px;margin-bottom:26px}
.auth-tabs button{flex:1;border:none;background:transparent;border-radius:100px;padding:9px;font-size:14px;font-weight:600;color:var(--ink-2);cursor:pointer;font-family:inherit}
.auth-tabs button.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:5px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 14px;font-size:14px;font-family:inherit;background:#fff;color:var(--ink)}
.field textarea{resize:vertical;min-height:70px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:480px){.field-row{grid-template-columns:1fr}}
.photo-drop{border:1.5px dashed var(--line);border-radius:12px;background:#fff;padding:18px;text-align:center;color:var(--ink-2);font-size:12.5px;cursor:pointer}
/* 검색 가능한 언어 select (combobox) */
.combo{position:relative}
.combo input{width:100%}
.combo-list{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--line);
  border-radius:12px;max-height:220px;overflow-y:auto;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.1);display:none}
.combo-list.open{display:block}
.combo-item{padding:9px 14px;font-size:13.5px;cursor:pointer}
.combo-item:hover,.combo-item.hl{background:var(--bg-alt)}
.combo-item small{color:var(--ink-2);margin-left:6px;font-size:11px}
.combo-empty{padding:12px 14px;font-size:12.5px;color:var(--ink-2)}
/* ── 게임형 랜딩 (7/24: PLAY + 리그 + 리더보드 한눈에) ── */
.game-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:center;padding:44px 0 16px}
@media(max-width:900px){.game-hero{grid-template-columns:1fr;padding:28px 0 8px}}
.play-cards{display:grid;gap:14px}
.play-card{display:block;border-radius:22px;padding:26px 26px;color:#fff;text-decoration:none;
  position:relative;overflow:hidden;transition:transform .18s,box-shadow .18s}
.play-card:hover{transform:translateY(-3px) scale(1.01);box-shadow:0 14px 34px rgba(0,0,0,.18)}
.play-card.tier{background:linear-gradient(120deg,#ff5e7e,#a259ff)}
.play-card.vs{background:linear-gradient(120deg,#0071e3,#00c7be)}
.play-card .pc-label{font-size:12px;font-weight:700;letter-spacing:.12em;opacity:.85}
.play-card .pc-title{font-size:clamp(20px,2.6vw,26px);font-weight:800;margin:4px 0 2px}
.play-card .pc-desc{font-size:13px;opacity:.9}
.play-card .pc-go{position:absolute;right:22px;top:50%;transform:translateY(-50%);
  width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.22);
  display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800}
/* 리그 배너 + 리더보드 */
.league-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px;margin:8px 0}
@media(max-width:900px){.league-grid{grid-template-columns:1fr}}
.league-box{background:var(--bg-alt);border-radius:var(--radius);padding:22px}
.league-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.league-head b{font-size:16px}
.dday{background:var(--ink);color:#fff;border-radius:100px;padding:3px 12px;font-size:12px;font-weight:700}
.league-item{display:flex;align-items:center;gap:12px;background:#fff;border-radius:14px;padding:12px 16px;margin-bottom:8px}
.league-item .li-type{font-size:10.5px;font-weight:800;letter-spacing:.06em;border-radius:6px;padding:3px 8px;flex-shrink:0}
.li-type.tier{background:rgba(255,94,126,.14);color:#d93a5e}
.li-type.wc{background:rgba(0,113,227,.12);color:var(--accent)}
.league-item .li-name{flex:1;font-size:13.5px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.league-item .li-joined{font-size:11.5px;color:var(--ink-2);white-space:nowrap}
.lb-row{display:flex;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px solid rgba(0,0,0,.05);font-size:13.5px}
.lb-row:last-child{border-bottom:none}
.lb-no{width:24px;text-align:center;font-weight:800;font-size:13px}
.lb-no.gold{color:#c9920e}.lb-no.silver{color:#8e8e93}.lb-no.bronze{color:#b0713b}
.lb-name{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-pts{font-weight:700;font-size:12.5px;white-space:nowrap}
.lb-streak{font-size:10.5px;color:var(--ink-2);white-space:nowrap}
/* ── 법적 문서 (약관/방침) ── */
.doc{max-width:860px;margin:0 auto}
.doc-meta{font-size:12.5px;color:var(--ink-2);background:var(--bg-alt);border-radius:12px;padding:12px 16px;margin:18px 0 28px}
.doc h2{font-size:18px;margin:34px 0 10px}
.doc h2:first-of-type{margin-top:10px}
.doc p{font-size:14px;color:#3a3a3c;margin-bottom:10px}
.doc ul{margin:6px 0 14px 20px}
.doc li{font-size:13.5px;color:#3a3a3c;margin-bottom:6px}
.doc table{border-collapse:collapse;width:100%;font-size:13px;margin:10px 0 16px}
.doc th{background:var(--bg-alt);text-align:left;padding:9px 12px;border:1px solid var(--line);font-weight:600}
.doc td{padding:9px 12px;border:1px solid var(--line);color:#3a3a3c;vertical-align:top}
.doc .hl-box{background:rgba(0,113,227,.06);border-radius:12px;padding:14px 18px;margin:14px 0;font-size:13.5px}
.auth-note{font-size:11.5px;color:var(--ink-2);background:rgba(0,113,227,.06);border-radius:10px;padding:10px 12px;margin:14px 0}
/* ── Stats bars ── */
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.bar-name{width:130px;font-size:13px;font-weight:600;flex-shrink:0;text-align:right}
.bar-track{flex:1;height:22px;background:var(--bg-alt);border-radius:7px;overflow:hidden}
.bar-fill{height:100%;border-radius:7px;display:flex;align-items:center;padding:0 8px;color:#fff;font-size:11px;font-weight:700;min-width:fit-content}
.legend{display:flex;gap:16px;font-size:12px;color:var(--ink-2);margin:8px 0 18px}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
/* ── Misc ── */
.toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(80px);background:var(--ink);color:#fff;border-radius:100px;padding:11px 24px;font-size:14px;font-weight:600;transition:transform .3s;z-index:200}
.toast.on{transform:translateX(-50%) translateY(0)}
footer{border-top:1px solid rgba(0,0,0,.06);text-align:center;color:var(--ink-2);font-size:12px;padding:28px 20px;line-height:1.8}
.notice{background:rgba(0,113,227,.06);border-radius:12px;padding:12px 16px;font-size:12.5px;color:var(--ink-2);margin:14px 0}
@media(max-width:640px){
  .t-label{width:44px;font-size:18px}
  .t-zone .item{width:62px}
  .pool .item{width:68px}
  .wc-pair{gap:8px}
  .nav-links{gap:12px}
  .bar-name{width:96px;font-size:11.5px}
}

/* ── 서버 구현 추가 스타일 ── */
.nav-nick{font-size:12.5px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.lang-btn{text-decoration:none;display:inline-block}
.flash{max-width:1440px;margin:14px auto 0;padding:0 28px}
.flash{color:#1d8a3e;font-size:13.5px;font-weight:600}
.form-err{background:rgba(255,59,48,.08);color:#c62b22;border-radius:12px;padding:11px 16px;font-size:13px;margin-bottom:14px}
.agree-box{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:14px}
.agree-box label{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:#3a3a3c;margin:6px 0;font-weight:400}
.agree-box input[type=checkbox]{margin-top:3px}
.agree-box a{font-size:12px}
/* admin */
.adm-nav{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}
.adm-nav a{background:var(--bg-alt);border-radius:100px;padding:7px 16px;font-size:13px;font-weight:600;color:var(--ink-2)}
.adm-nav a.on{background:var(--ink);color:#fff}
.adm-tbl{width:100%;border-collapse:collapse;font-size:13px;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.adm-tbl th{background:var(--bg-alt);text-align:left;padding:9px 12px;border-bottom:1px solid var(--line)}
.adm-tbl td{padding:9px 12px;border-bottom:1px solid rgba(0,0,0,.05);vertical-align:top}
.adm-tbl tr:last-child td{border-bottom:none}
.adm-form .field{max-width:640px}
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:16px 0}
.stat-cards .card b{font-size:26px;display:block}
textarea.mono{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;min-height:180px}
.badge-open{background:rgba(52,199,89,.14);color:#1d8a3e;border-radius:100px;padding:2px 10px;font-size:11px;font-weight:700}
.badge-closed{background:rgba(142,142,147,.15);color:#6e6e73;border-radius:100px;padding:2px 10px;font-size:11px;font-weight:700}
.like-btn{cursor:pointer;user-select:none}
.like-btn.on{color:var(--accent);font-weight:700}

/* ══════════ VoteWar — 화려한 1:1 대결 (게임 느낌) ══════════ */
.vw-arena{position:relative;border-radius:26px;overflow:hidden;padding:34px 24px 30px;
  background:linear-gradient(135deg,#12131a 0%,#1c1e2e 50%,#12131a 100%);color:#fff}
.vw-arena::before{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 18% 50%,rgba(255,59,92,.28),transparent 55%),
             radial-gradient(ellipse at 82% 50%,rgba(0,145,255,.28),transparent 55%);pointer-events:none}
.vw-title{text-align:center;font-size:clamp(18px,3vw,26px);font-weight:800;margin-bottom:4px;position:relative}
.vw-timer{text-align:center;font-size:12.5px;color:#aab;letter-spacing:.12em;margin-bottom:22px;position:relative}
.vw-timer b{color:#ffd60a;font-variant-numeric:tabular-nums}
.vw-duel{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;position:relative}
.vw-side{text-align:center;cursor:pointer;transition:transform .18s;border-radius:20px;padding:14px 10px}
.vw-side:hover{transform:scale(1.03)}
.vw-side.picked{outline:3px solid currentColor;outline-offset:4px}
.vw-side.a{color:#ff3b5c}.vw-side.b{color:#0a84ff}
.vw-ph{width:min(100%,220px);aspect-ratio:1/1;border-radius:18px;overflow:hidden;background:#2a2c3a;
  margin:0 auto;position:relative;box-shadow:0 0 34px -6px currentColor}
.vw-ph img{width:100%;height:100%;object-fit:contain;background:#fff;display:block}
.vw-ph .fb{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:24px;font-weight:800;color:#fff;padding:10px;text-align:center;word-break:keep-all}
.vw-name{font-size:clamp(15px,2.2vw,20px);font-weight:800;margin-top:12px;color:#fff}
.vw-name small{display:block;font-weight:400;color:#aab;font-size:12px}
.vw-vote-btn{margin-top:12px;border:none;border-radius:100px;padding:11px 30px;font-size:15px;font-weight:800;
  cursor:pointer;color:#fff;background:currentColor;font-family:inherit;transition:transform .12s}
.vw-vote-btn span{color:#fff;mix-blend-mode:normal}
.vw-vote-btn:active{transform:scale(.94)}
.vw-vs{position:relative;width:74px;height:74px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:conic-gradient(from 0deg,#ff3b5c,#a259ff,#0a84ff,#a259ff,#ff3b5c);
  font-size:24px;font-weight:900;font-style:italic;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.5);
  animation:vwspin 6s linear infinite;flex-shrink:0}
.vw-vs::after{content:"VS";position:absolute;inset:5px;border-radius:50%;background:#191b26;
  display:flex;align-items:center;justify-content:center;animation:vwspin 6s linear infinite reverse}
@keyframes vwspin{to{transform:rotate(360deg)}}
/* 게이지 */
.vw-gauge{position:relative;display:flex;height:34px;border-radius:100px;overflow:hidden;margin-top:26px;
  background:#2a2c3a;font-weight:800;font-size:13.5px}
.vw-bar{display:flex;align-items:center;transition:width .8s cubic-bezier(.2,.8,.2,1);white-space:nowrap;min-width:0}
.vw-bar.a{background:linear-gradient(90deg,#ff2d55,#ff5e7e);justify-content:flex-start;padding-left:14px}
.vw-bar.b{background:linear-gradient(90deg,#0a84ff,#00c7be);justify-content:flex-end;padding-right:14px}
.vw-counts{display:flex;justify-content:space-between;font-size:12px;color:#aab;margin-top:8px;position:relative}
.vw-flash{animation:vwflash .7s ease}
@keyframes vwflash{0%{filter:brightness(2.2)}100%{filter:brightness(1)}}
.vw-closed-badge{position:absolute;top:14px;right:16px;background:rgba(255,255,255,.14);border-radius:100px;
  padding:4px 14px;font-size:11px;font-weight:700;letter-spacing:.1em}
.vw-winner{color:#ffd60a;font-size:13px;font-weight:800;text-align:center;margin-top:10px;position:relative}
/* 카드(목록/홈 히어로) */
.vw-card{display:block;border-radius:20px;overflow:hidden;color:#fff;text-decoration:none;
  background:linear-gradient(135deg,#191b26,#232538);padding:18px;position:relative;transition:transform .15s}
.vw-card:hover{transform:translateY(-3px)}
.vw-card .mini{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}
.vw-card .mini .ph{width:72px;height:72px;border-radius:12px;overflow:hidden;background:#2a2c3a;margin:0 auto;position:relative}
.vw-card .mini .ph img{width:100%;height:100%;object-fit:contain;background:#fff}
.vw-card .mini .vsdot{font-size:14px;font-weight:900;font-style:italic;color:#ffd60a}
.vw-card .nm2{font-size:12px;font-weight:700;text-align:center;margin-top:6px}
.vw-mini-gauge{display:flex;height:8px;border-radius:100px;overflow:hidden;background:#2a2c3a;margin-top:12px}
.vw-mini-gauge .a{background:#ff3b5c}.vw-mini-gauge .b{background:#0a84ff}
/* 홈: 티커 */
.ticker{overflow:hidden;background:var(--bg-alt);border-radius:100px;padding:9px 0;margin:18px 0;white-space:nowrap}
.ticker-track{display:inline-block;animation:tick 40s linear infinite;padding-left:100%}
.ticker-track span{margin-right:34px;font-size:12.5px;color:var(--ink-2)}
.ticker-track b{color:var(--ink)}
@keyframes tick{to{transform:translateX(-100%)}}
/* 홈: 급등락 위젯 */
.mover{display:flex;gap:10px;align-items:center;background:#fff;border-radius:12px;padding:9px 14px;margin-bottom:8px;font-size:13px}
.mover .mv-diff{font-weight:800;min-width:44px}
.mover .up2{color:#1d8a3e}.mover .down2{color:#c62b22}
/* 스타pt 배지 */
.star-pt{background:linear-gradient(90deg,#ffd60a,#ff9f0a);color:#5c4300;border-radius:100px;padding:3px 12px;font-size:12px;font-weight:800;white-space:nowrap}

/* ══════════ VoteWar 생성 — 격투게임 캐릭터 선택 ══════════ */
.fs-top{background:linear-gradient(135deg,#12131a,#1c1e2e);border-radius:22px;padding:22px 20px;color:#fff}
.fs-title-input{width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:12px;
  padding:12px 16px;font-size:15px;font-weight:700;color:#fff;font-family:inherit;text-align:center;margin-bottom:18px}
.fs-title-input::placeholder{color:#778}
.fs-bar{display:grid;grid-template-columns:auto 1fr auto 1fr auto;gap:10px;align-items:center}
.fs-slot{width:clamp(84px,14vw,128px);aspect-ratio:1/1;border-radius:16px;position:relative;overflow:hidden;
  background:rgba(255,255,255,.06);border:2px dashed rgba(255,255,255,.25);cursor:pointer;transition:all .2s}
.fs-slot.filled{border-style:solid;box-shadow:0 0 26px -4px currentColor}
.fs-slot.a{color:#ff3b5c}.fs-slot.b{color:#0a84ff}
.fs-slot img{width:100%;height:100%;object-fit:contain;background:#fff;display:block}
.fs-slot .fs-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  font-size:11px;color:#889;gap:4px}
.fs-slot .fs-empty b{font-size:26px;opacity:.6}
.fs-slot .fs-fb{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:800;color:#fff;padding:6px;text-align:center;word-break:keep-all}
.fs-slot .fs-x{position:absolute;top:4px;right:4px;background:rgba(0,0,0,.55);color:#fff;border-radius:50%;
  width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;z-index:2}
.fs-name{font-size:12px;font-weight:800;text-align:center;margin-top:6px;min-height:16px;color:#fff}
.fs-hp{height:20px;border-radius:4px;position:relative;overflow:hidden;background:rgba(255,255,255,.08);
  transform:skewX(-16deg)}
.fs-hp>i{position:absolute;inset:0;transition:width .5s}
.fs-hp.a>i{right:0;left:auto;width:100%;background:linear-gradient(90deg,#7a1027,#ff2d55,#ff7b9a);
  background-size:200% 100%;animation:hpflow 2.4s linear infinite}
.fs-hp.b>i{left:0;width:100%;background:linear-gradient(270deg,#062e63,#0a84ff,#6fc3ff);
  background-size:200% 100%;animation:hpflow 2.4s linear infinite reverse}
@keyframes hpflow{to{background-position:200% 0}}
.fs-vs{width:60px;height:60px;flex-shrink:0;border-radius:50%;position:relative;
  background:conic-gradient(from 0deg,#ff3b5c,#a259ff,#0a84ff,#a259ff,#ff3b5c);animation:vwspin 5s linear infinite}
.fs-vs::after{content:"VS";position:absolute;inset:4px;border-radius:50%;background:#191b26;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900;font-style:italic;
  animation:vwspin 5s linear infinite reverse}
.fs-footer{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-top:20px;justify-content:center}
.fs-footer select,.fs-footer input[type=datetime-local]{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);
  border-radius:10px;padding:9px 14px;color:#fff;font-family:inherit;font-size:13px}
.fs-footer option{color:#000}
.fs-go{border:none;border-radius:100px;padding:12px 34px;font-size:15px;font-weight:800;cursor:pointer;color:#fff;
  background:linear-gradient(90deg,#ff3b5c,#a259ff,#0a84ff);font-family:inherit;transition:transform .12s,opacity .2s}
.fs-go:disabled{opacity:.35;cursor:not-allowed}
.fs-go:not(:disabled):active{transform:scale(.95)}
/* 하단 아이템 선택 그리드 */
.fs-pickbar{display:flex;gap:10px;align-items:center;margin:20px 0 12px;flex-wrap:wrap}
.fs-pickbar select,.fs-pickbar input{border:1px solid var(--line);border-radius:12px;padding:9px 14px;font-size:13.5px;font-family:inherit}
.fs-pickbar input{flex:1;min-width:160px}
.fs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;max-height:480px;overflow-y:auto}
.fs-item{cursor:pointer;text-align:center;border-radius:12px;padding:6px;transition:transform .12s}
.fs-item:hover{transform:scale(1.05)}
.fs-item.used{opacity:.28;pointer-events:none}
.fs-item .ph{position:relative;width:100%;aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:#e8e8ed}
.fs-item .ph img{width:100%;height:100%;object-fit:contain;background:#fff}
.fs-item .nm3{font-size:11px;font-weight:600;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* ══════════ VoteWar 목록 — 격투게임 로비 행 ══════════ */
.vw-row{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;
  background:linear-gradient(135deg,#191b26,#232538);border-radius:18px;padding:14px 18px;
  color:#fff;text-decoration:none;margin-bottom:12px;transition:transform .13s}
.vw-row:hover{transform:translateY(-2px)}
.vw-row .fight{display:grid;grid-template-columns:auto 1fr auto 1fr auto;gap:8px;align-items:center;min-width:0}
.vw-row .sq{width:56px;height:56px;border-radius:10px;overflow:hidden;background:#2a2c3a;position:relative;flex-shrink:0}
.vw-row .sq img{width:100%;height:100%;object-fit:contain;background:#fff}
.vw-row .hp{height:12px;border-radius:3px;overflow:hidden;background:rgba(255,255,255,.1);transform:skewX(-16deg);position:relative}
.vw-row .hp>i{position:absolute;top:0;bottom:0;transition:width .5s}
.vw-row .hp.a>i{right:0;background:linear-gradient(90deg,#7a1027,#ff2d55)}
.vw-row .hp.b>i{left:0;background:linear-gradient(270deg,#062e63,#0a84ff)}
.vw-row .vsx{font-size:15px;font-weight:900;font-style:italic;color:#ffd60a;flex-shrink:0}
.vw-row .res{text-align:right;min-width:104px}
.vw-row .res .pct{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}
.vw-row .res .cnt{font-size:11px;color:#aab}
.vw-row .rname{font-size:11px;font-weight:700;text-align:center;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70px}
.vw-row .rtitle{font-size:13.5px;font-weight:700;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:640px){.vw-row{grid-template-columns:1fr;gap:10px}.vw-row .res{text-align:center;min-width:0}}

/* item_img() 폴백 크기 변형 */
.fb-sm{font-size:11px;font-weight:800;padding:4px}
