@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');

/* ── RESET ── */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
button{cursor:pointer;border:none;font-family:inherit;font-size:inherit;outline:none}
select{font-family:inherit;outline:none}

/* ── VARIABLES ── */
:root{
  --bg:#06060e; --bg2:#0a0a1a; --bg3:#0f0f24;
  --gs:rgba(255,255,255,0.03); --gs2:rgba(255,255,255,0.055); --gs3:rgba(255,255,255,0.09);
  --bd:rgba(255,255,255,0.07); --bd2:rgba(255,255,255,0.12); --bd3:rgba(255,255,255,0.20);
  --t1:#eef0ff; --t2:rgba(238,240,255,0.55); --t3:rgba(238,240,255,0.28);
  --orange:#ff6b2b; --gold:#ffc846; --blue:#5b9cf6; --green:#3ecf8e; --red:#f56565; --purple:#9f7aea;
  --r0:#71717a; --r1:#3ecf8e; --r2:#5b9cf6; --r3:#9f7aea; --r4:#fb923c; --r5:#ffc846;
  --ease:cubic-bezier(0.22,1,0.36,1);
  --radius:12px; --radius-lg:16px; --radius-xl:20px;
}

html,body{
  width:100%;height:100%;overflow:hidden;
  background:var(--bg);color:var(--t1);
  font-family:'Inter',system-ui,sans-serif;font-size:13px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

/* ── SCREENS ── */
.screen{
  position:absolute;inset:0;display:flex;flex-direction:column;
  overflow:hidden;
  background: url('assets/bg_village.png') center/cover no-repeat;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity 200ms var(--ease),visibility 200ms;
}
.screen.active{opacity:1;visibility:visible;pointer-events:auto;}
.screen::before{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background: rgba(4, 6, 15, 0.65); /* Escurece um pouco a imagem para as letras ficarem legíveis */
  /* backdrop-filter removed for performance */
}
.screen.game-screen::before {
  display: none; /* Não escurecer o canvas do jogo */
}
.screen>*{position:relative;z-index:1;}

/* ── SCREEN HEADER ── */
.screen-header{
  display:flex;align-items:center;gap:12px;padding:14px 22px;
  background:rgba(0,0,0,0.35);border-bottom:1px solid var(--bd);
  flex-shrink:0;/* backdrop-filter removed for performance */
}
.screen-header h2{
  font-size:17px;font-weight:800;letter-spacing:-.01em;
  background:linear-gradient(135deg,var(--gold) 0%,var(--orange) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}

/* ── BUTTONS ── */
.btn-back{
  display:inline-flex;align-items:center;gap:5px;
  background:var(--gs2);color:var(--t2);border:1px solid var(--bd2);
  border-radius:10px;padding:7px 14px;font-size:12px;font-weight:500;
  transition:all 130ms var(--ease);
}
.btn-back:hover{background:var(--gs3);color:var(--t1);border-color:var(--bd3);}
.btn-back:active{transform:scale(0.97);}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:12px 24px;border-radius:99px;font-weight:800;font-size:14px;
  border:2px solid transparent;transition:all 100ms var(--ease);white-space:nowrap;cursor:pointer;
  text-transform: uppercase; letter-spacing: .05em; text-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.btn:active{transform:translateY(4px); border-bottom-width:2px !important;}

.btn-primary{background:linear-gradient(180deg, var(--blue), #2b6cb0);color:#fff;border-color:#1e4e8c;border-bottom:6px solid #1a365d;box-shadow:0 4px 16px rgba(91,156,246,0.3);}
.btn-primary:hover{filter:brightness(1.1); transform:translateY(-2px); }
.btn-secondary{background:linear-gradient(180deg, #4a5568, #2d3748);color:#fff;border-color:#1a202c;border-bottom:6px solid #171923;}
.btn-secondary:hover{filter:brightness(1.1); transform:translateY(-2px); }
.btn-gacha{background:linear-gradient(180deg,#9f7aea,#6b46c1);color:#fff;border-color:#44337a;border-bottom:6px solid #322659;box-shadow:0 4px 20px rgba(159,122,234,0.4);}
.btn-gacha:hover{filter:brightness(1.1); transform:translateY(-2px); }
.btn-world{background:linear-gradient(180deg,var(--orange),#c05621);color:#fff;border-color:#7b341e;border-bottom:6px solid #652b19;}
.btn-world:hover{filter:brightness(1.1); transform:translateY(-2px); }
.btn-inv{background:linear-gradient(180deg,var(--green),#2f855a);color:#fff;border-color:#22543d;border-bottom:6px solid #1c4532;}
.btn-inv:hover{filter:brightness(1.1); transform:translateY(-2px); }
.btn-start{
  background:linear-gradient(180deg,#f56565,#c53030);color:#fff;
  border-color:#822727;border-bottom:8px solid #63171b;padding:16px 48px;font-size:16px;font-weight:900;
  box-shadow:0 6px 24px rgba(245,101,101,0.4);border-radius:99px;
}
.btn-start:hover{filter:brightness(1.15); transform:translateY(-2px); }
.btn-pull{
  background:linear-gradient(180deg, #fbbf24 0%, #d97706 100%);
  color:#000;
  border-color:#92400e;
  border-bottom:6px solid #78350f;
  width:100%;
  text-shadow: none;
  font-weight: 900;
  box-shadow: 0 4px 15px rgba(217, 119, 6, 0.3);
}
.btn-pull-ticket{
  background:linear-gradient(180deg, #a78bfa 0%, #7c3aed 100%);
  color:#fff;
  border-color:#5b21b6;
  border-bottom:6px solid #4c1d95;
  width:100%;
  box-shadow: 0 4px 15px rgba(124, 58, 237, 0.3);
}
.btn-pull:hover,.btn-pull-ticket:hover{filter:brightness(1.15); transform:translateY(-2px); }
.btn-pull:active,.btn-pull-ticket:active{transform:translateY(4px); border-bottom-width:2px !important;}
.btn-feed{background:linear-gradient(180deg,var(--orange),#cc4a15);color:#fff;border-color:#7b341e;border-bottom:6px solid #652b19;flex:1;}
.btn-evolve{background:linear-gradient(180deg,var(--gold),#b8860b);color:#000;border-color:#745305;border-bottom:6px solid #483303;font-weight:900;width:100%;margin-top:4px;text-shadow:0 1px 2px rgba(255,255,255,0.8);}
.btn-evolve:hover{filter:brightness(1.1); transform:translateY(-2px); }
.btn-evolve.btn-disabled{opacity:.35;cursor:not-allowed;}
.btn-sell{background:rgba(245,101,101,0.9);color:#fff;border-color:#822727;border-bottom:4px solid #63171b;width:100%;margin-top:8px;font-size:12px;font-weight:700;}
.btn-sell:hover{filter:brightness(1.1); transform:translateY(-2px); }

/* ── CURRENCY ── */
.currency{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--gs2);padding:6px 14px;border-radius:99px;
  border:1px solid var(--bd2);font-size:14px;font-weight:700;
  letter-spacing:-.01em;
}
.currency.gem{border-color:rgba(91,156,246,0.22);color:var(--blue);}
.currency.ticket{border-color:rgba(124,58,237,0.22);color:var(--purple);}

/* ══════════════════════════════
   HUB
══════════════════════════════ */

/* Character portrait inside any icon circle */
.char-portrait{
  width:100%;height:100%;object-fit:cover;
  border-radius:inherit;display:block;pointer-events:none;
}

/* Topbar */
.hub-topbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:0 24px;height:54px;flex-shrink:0;
  background:rgba(0,0,0,0.5);
  border-bottom:1px solid var(--bd);/* backdrop-filter removed for performance */
}
.hub-logo{display:flex;align-items:center;gap:9px;}
.hub-logo-star{font-size:22px;}
.hub-logo-text{
  font-size:14px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;
  background:linear-gradient(90deg,var(--gold) 0%,var(--orange) 50%,var(--purple) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.hub-topbar-right{display:flex;align-items:center;gap:10px;}
.hub-currencies{display:flex;gap:8px;}
.btn-reset-save{
  background:var(--gs);border:1px solid var(--bd);color:var(--t3);
  border-radius:8px;width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  font-size:15px;cursor:pointer;transition:all 130ms var(--ease);
  flex-shrink:0;
}
.btn-reset-save:hover{background:var(--gs2);color:var(--red);border-color:rgba(245,101,101,0.3);}

/* Hero / Banner card */
.hub-hero{
  flex:1;display:flex;align-items:center;justify-content:center;
  padding:20px 24px;overflow:hidden;
}
.hub-banner-card{
  width:100%;max-width:880px;
  background:linear-gradient(150deg,rgba(20,8,48,0.9) 0%,rgba(9,5,30,0.9) 100%);
  border:2px solid rgba(124,58,237,0.5);border-radius:30px;
  padding:24px 28px;
  display:flex;flex-direction:column;align-items:center;gap:18px;
  box-shadow:0 12px 40px rgba(0,0,0,0.7),inset 0 2px 0 rgba(255,255,255,0.1);
  border-bottom: 6px solid rgba(0,0,0,0.6);
  /* backdrop-filter removed for performance */
  position:relative;overflow:hidden;
}
.hub-banner-card::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 80% 60% at 50% 100%,rgba(124,58,237,0.12) 0%,transparent 55%),
    radial-gradient(ellipse 40% 35% at 85% 15%,rgba(255,200,70,0.06) 0%,transparent 55%);
}
.hub-banner-tag{
  font-size:9px;letter-spacing:5px;text-transform:uppercase;
  color:var(--purple);font-weight:700;opacity:.75;
  position:relative;z-index:1;
}
.hub-banner-chars{
  display:flex;gap:10px;justify-content:center;flex-wrap:wrap;
  position:relative;z-index:1;width:100%;
}
/* Banner character cards */
.hbc{
  width:96px;border-radius:16px;padding:12px 8px 10px;
  display:flex;flex-direction:column;align-items:center;gap:7px;
  border:1px solid transparent;text-align:center;
  transition:transform 220ms var(--ease),box-shadow 220ms var(--ease);
  cursor:default;position:relative;z-index:1;
}
.hbc:hover{transform:translateY(-8px);}

.hbc-avatar{
  width:46px;height:46px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:800;color:#fff;
  box-shadow:0 2px 12px rgba(0,0,0,0.35);
}
.hbc-name{
  font-size:10px;font-weight:700;color:var(--t1);
  line-height:1.3;word-break:break-word;
  max-height:2.6em;overflow:hidden;
  width:100%;
}
.hbc-footer{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  margin-top:auto;
}
.hbc-rarity{font-size:12px;font-weight:700;line-height:1;}
.hbc-series{
  font-size:8px;font-weight:600;text-transform:uppercase;
  letter-spacing:.06em;opacity:.5;
}

.hbc--star4{
  background:linear-gradient(160deg,#1c0a00,#321500);
  border-color:rgba(251,146,60,0.45);
  box-shadow:0 4px 20px rgba(251,146,60,0.1);
}
.hbc--star4 .hbc-rarity{color:var(--r4);}
.hbc--star4:hover{box-shadow:0 8px 32px rgba(251,146,60,0.22);}

.hbc--star3{
  background:linear-gradient(160deg,#0d0720,#1b0c38);
  border-color:rgba(159,122,234,0.32);
  box-shadow:0 4px 20px rgba(159,122,234,0.07);
}
.hbc--star3 .hbc-rarity{color:var(--r3);}
.hbc--star3:hover{box-shadow:0 8px 28px rgba(159,122,234,0.18);}

.hbc--star5{
  background:linear-gradient(160deg,#1a1400,#302200);
  border-color:rgba(255,200,70,0.55);
  box-shadow:0 4px 24px rgba(255,200,70,0.14);
}
.hbc--star5 .hbc-rarity{color:var(--r5);}
.hbc--star5:hover{box-shadow:0 8px 36px rgba(255,200,70,0.32);}
.hub-banner-note{
  font-size:11px;color:var(--gold);opacity:.65;letter-spacing:.02em;
  position:relative;z-index:1;
}
.hub-banner-timer{
  font-size:10px;color:var(--t3);letter-spacing:.03em;
  position:relative;z-index:1;
}
.hub-btn-gacha{
  background:linear-gradient(135deg,#7c3aed,#5b21b6);color:#fff;
  border-color:rgba(124,58,237,0.4);
  box-shadow:0 4px 24px rgba(124,58,237,0.3);
  padding:13px 48px;font-size:14px;font-weight:800;letter-spacing:.08em;
  position:relative;z-index:1;width:100%;max-width:280px;
}
.hub-btn-gacha:hover{box-shadow:0 6px 36px rgba(124,58,237,0.5);filter:brightness(1.1);}

/* 8-button action grid (4×2) */
.hub-actions{
  display:grid;grid-template-columns:repeat(4,1fr);gap:12px;
  padding:0 24px 20px;flex-shrink:0;
  max-width:960px;
  margin:0 auto;
  width:100%;
}
.hab{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;padding:22px 10px;border-radius:28px;
  border:2px solid rgba(255,255,255,0.1);
  background:rgba(10,15,30,0.8);
  cursor:pointer;color:var(--t1);
  transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); /* Bouncy hover */
  /* backdrop-filter removed for performance */
  border-bottom: 8px solid rgba(0,0,0,0.6);
  box-shadow: 0 10px 24px rgba(0,0,0,0.6), inset 0 2px 5px rgba(255,255,255,0.1);
  position: relative;
  overflow: hidden;
}
.hab::before {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, transparent 50%);
  border-radius: 26px; pointer-events: none;
}
.hab:hover{
  transform:translateY(-8px);
  
  box-shadow: 0 18px 36px rgba(0,0,0,0.7), inset 0 2px 10px rgba(255,255,255,0.2);
}
.hab:active{transform:translateY(4px);border-bottom-width:2px; transition:all 0.1s;}
.hab-icon{font-size:42px;line-height:1;text-shadow:0 6px 12px rgba(0,0,0,0.7);margin-bottom:4px; transition:transform 0.3s;}
.hab:hover .hab-icon{transform:scale(1.15) rotate(5deg);}
.hab-label{font-size:16px;font-weight:950;letter-spacing:1px;text-transform:uppercase;text-shadow:0 3px 6px rgba(0,0,0,0.9);}
.hab-sub{font-size:11px;font-weight:600;color:rgba(255,255,255,0.75);text-align:center;text-transform:uppercase;letter-spacing:0.5px;}

/* Specific Hub Actions Theming */
.hab--play {
  background: linear-gradient(160deg, rgba(20,40,30,0.9), rgba(10,25,15,0.95));
  border-color:rgba(62,207,142,.5);
}
.hab--play:hover {
  border-color:var(--green); background: linear-gradient(160deg, rgba(30,60,40,0.9), rgba(15,35,20,0.95));
  box-shadow: 0 18px 36px rgba(62,207,142,0.3);
}
.hab--gacha {
  background: linear-gradient(160deg, rgba(40,20,60,0.9), rgba(20,10,35,0.95));
  border-color:rgba(124,58,237,.5);
}
.hab--gacha:hover{
  border-color:var(--purple); background: linear-gradient(160deg, rgba(60,30,90,0.9), rgba(30,15,50,0.95));
  box-shadow: 0 18px 36px rgba(124,58,237,0.3);
}
.hab--inv {
  background: linear-gradient(160deg, rgba(20,35,60,0.9), rgba(10,15,35,0.95));
  border-color:rgba(91,156,246,.5);
}
.hab--inv:hover  {
  border-color:var(--blue); background: linear-gradient(160deg, rgba(30,55,90,0.9), rgba(15,25,50,0.95));
  box-shadow: 0 18px 36px rgba(91,156,246,0.3);
}
.hab--evo {
  background: linear-gradient(160deg, rgba(60,45,15,0.9), rgba(35,25,10,0.95));
  border-color:rgba(255,200,70,.5);
}
.hab--events {
  background: linear-gradient(160deg, rgba(60,50,15,0.9), rgba(35,30,10,0.95));
  border-color:rgba(255,215,0,.5);
}
.hab--events:hover {
  border-color:var(--gold); background: linear-gradient(160deg, rgba(90,80,25,0.9), rgba(50,40,15,0.95));
  box-shadow: 0 18px 36px rgba(255,215,0,0.3);
}
.hab--evo:hover  {
  border-color:var(--gold); background: linear-gradient(160deg, rgba(90,70,25,0.9), rgba(50,35,15,0.95));
  box-shadow: 0 18px 36px rgba(255,200,70,0.3);
}

.mission-item{
  background:rgba(0,0,0,0.4);border:2px solid rgba(255,255,255,0.05);border-radius:12px;
  padding:12px;transition:border-color 140ms;
}
.mission-item:hover{border-color:rgba(255,200,70,0.3);transform:translateX(2px);}
.mission-label{font-size:12px;font-weight:700;color:#fff;margin-bottom:6px;}
.mission-progress-bar{height:3px;background:rgba(255,255,255,0.06);border-radius:99px;margin-bottom:4px;overflow:hidden;}
.mission-fill{height:100%;background:linear-gradient(90deg,var(--green),#22d3a5);border-radius:99px;transition:width 500ms var(--ease);}
.mission-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--t3);}
.mission-reward{color:var(--gold);font-weight:600;}
.mission-empty{color:var(--t3);text-align:center;padding:24px 16px;font-size:12px;line-height:1.7;}

/* ══════════════════════════════
   WORLD / STAGE SELECT
══════════════════════════════ */
.world-grid{display:flex;flex-wrap:wrap;gap:24px;padding:32px;justify-content:center;overflow-y:auto;flex:1;align-content:flex-start;}
.world-card{
  background: linear-gradient(145deg, rgba(16, 24, 45, 0.85) 0%, rgba(8, 12, 22, 0.95) 100%);
  border: 2px solid rgba(255,255,255,0.15);
  border-radius: 30px;
  padding: 32px 24px; width: 280px; text-align: center; cursor: pointer;
  transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
  position: relative; overflow: hidden;
  /* backdrop-filter removed for performance */
  box-shadow: 0 15px 35px rgba(0,0,0,0.7), inset 0 2px 10px rgba(255,255,255,0.05);
  border-bottom: 8px solid rgba(0,0,0,0.7);
}
.world-card::before{
  content:''; position:absolute; inset:0;
  background: radial-gradient(circle at 50% -20%, rgba(255,255,255,0.15), transparent 60%);
  pointer-events: none;
}
.world-card::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 0%,rgba(255,200,70,0.25) 0%,transparent 70%);
  opacity:0;transition:opacity 0.35s; pointer-events: none;
}
.world-card:hover{
  transform:translateY(-10px) scale(1.02);
  border-color:rgba(255,200,70,0.6);
  
  box-shadow: 0 25px 50px rgba(255,200,70,0.2), inset 0 2px 15px rgba(255,200,70,0.1);
}
.world-card:active{transform:translateY(2px);border-bottom-width:4px; transition:all 0.1s;}
.world-card:hover::after{opacity:1;}
.world-card.world-locked{opacity:.6;cursor:not-allowed;pointer-events:none;filter:grayscale(0.9) brightness(0.7);}
.world-icon{font-size:54px;margin-bottom:14px;display:block;text-shadow:0 6px 15px rgba(0,0,0,0.8); transition: transform 0.3s;}
.world-card:hover .world-icon{transform: scale(1.15) translateY(-5px);}
.world-name{font-size:20px;font-weight:950;color:#fff;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px;text-shadow:0 3px 6px rgba(0,0,0,0.9);}
.world-desc{font-size:12.5px;color:rgba(255,255,255,0.75);margin-bottom:16px;line-height:1.6; font-weight: 500;}
.world-progress{
  display: inline-block; padding: 6px 16px; border-radius: 99px;
  background: rgba(62,207,142,0.15); border: 1px solid rgba(62,207,142,0.3);
  font-size:12px;color:var(--green);font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,0.8);
}
.world-lock{position:absolute;top:16px;right:16px;font-size:20px;opacity:0.9; text-shadow: 0 2px 5px rgba(0,0,0,1);}

.stage-grid{display:flex;flex-wrap:wrap;gap:20px;padding:24px;overflow-y:auto;flex:1;justify-content:center;align-content:flex-start;}
.stage-card{
  background: linear-gradient(135deg, rgba(20, 25, 45, 0.9) 0%, rgba(10, 15, 30, 0.95) 100%);
  border: 2px solid rgba(255,255,255,0.1); border-radius: 24px;
  padding: 24px 16px; width: 170px; cursor: pointer;
  transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
  position: relative; text-align: center; overflow: hidden;
  /* backdrop-filter removed for performance */ box-shadow: 0 10px 25px rgba(0,0,0,0.6);
  border-bottom: 6px solid rgba(0,0,0,0.6);
}
.stage-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  opacity:0;transition:opacity 0.3s;
}
.stage-card:hover{
  transform:translateY(-8px);
  border-color:rgba(255,200,70,0.5);
  
  box-shadow: 0 18px 35px rgba(255,200,70,0.15);
}
.stage-card:active{transform:translateY(3px);border-bottom-width:2px; transition:all 0.1s;}
.stage-card:hover::before{opacity:1;}
.stage-card.stage-locked{opacity:.5;cursor:not-allowed;pointer-events:none;filter:grayscale(1) brightness(0.7);}
.stage-num{
  font-size:42px;font-weight:950;
  background: linear-gradient(180deg, var(--gold), #b8860b);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  line-height:1;margin-bottom:6px;text-shadow:0 4px 12px rgba(255,200,70,0.4);
}
.stage-name{font-size:13px;font-weight:900;color:#fff;margin:8px 0 12px;text-transform:uppercase;letter-spacing:0.5px;text-shadow:0 2px 4px rgba(0,0,0,0.9);}
.stage-stars{font-size:16px;margin-bottom:10px;letter-spacing:3px;text-shadow:0 2px 6px rgba(0,0,0,0.9); color: var(--gold);}
.stage-rewards{display:flex;gap:6px;justify-content:center;font-size:10px;color:rgba(255,255,255,0.7);font-weight:700; background: rgba(0,0,0,0.3); padding: 4px; border-radius: 6px;}
.stage-lock{position:absolute;top:12px;right:12px;font-size:18px;opacity:.9;text-shadow:0 2px 4px rgba(0,0,0,1);}

/* ══════════════════════════════
   PRE-BATTLE
══════════════════════════════ */
.prebattle-body{display:flex;flex:1;overflow:hidden;}
.prebattle-left{display:flex;flex-direction:column;width:280px;border-right:1px solid var(--bd);flex-shrink:0;overflow:hidden;}
.prebattle-right{display:flex;flex-direction:column;flex:1;overflow:hidden;}
.pb-section-header{
  padding:11px 15px;font-size:10px;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--t3);border-bottom:1px solid var(--bd);
  background:rgba(0,0,0,0.15);flex-shrink:0;
}
.pb-hint{font-size:10px;color:var(--t3);font-weight:400;text-transform:none;letter-spacing:0;}

.team-slots{display:flex;flex-wrap:wrap;gap:12px;padding:16px;overflow-y:auto;flex:1;}
.team-slot{
  width:105px;height:115px;
  background:linear-gradient(145deg, rgba(16,20,35,0.6), rgba(8,10,20,0.8));
  border:2px dashed rgba(255,255,255,0.15);
  border-radius:16px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;cursor:pointer;
  transition:all 0.25s cubic-bezier(0.2, 0.8, 0.2, 1); gap:6px;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.3);
}
.team-slot.filled{
  border-style:solid;border-color:rgba(255,200,70,0.4);
  background:linear-gradient(145deg, rgba(30,25,10,0.8), rgba(15,10,5,0.9));
  box-shadow: 0 6px 15px rgba(255,200,70,0.1), inset 0 2px 10px rgba(255,200,70,0.05);
}
.team-slot:hover{background:rgba(30,35,55,0.8);border-color:var(--gold); transform:translateY(-4px);}
.team-slot:active{transform:scale(.95);}
.ts-icon{
  width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:800;color:#fff;font-size:14px; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.ts-name{font-size:11px;text-align:center;color:var(--t1);font-weight:700;}
.ts-lv{font-size:10px;color:var(--t3); font-weight: 500;}
.ts-empty{font-size:28px;color:rgba(255,255,255,0.2);}

.avail-grid{display:flex;flex-wrap:wrap;gap:10px;overflow-y:auto;flex:1;padding:16px;align-content:flex-start;}
.avail-unit{
  width:94px;
  background:linear-gradient(145deg, rgba(20,25,40,0.8), rgba(10,12,25,0.9));
  border:1px solid rgba(255,255,255,0.1);border-radius:14px;
  padding:12px 8px;text-align:center;cursor:pointer;
  transition:all 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.avail-unit:hover{
  border-color:var(--gold);transform:translateY(-4px);
  background:linear-gradient(145deg, rgba(30,35,55,0.9), rgba(15,20,35,0.95));
  box-shadow: 0 8px 20px rgba(255,200,70,0.15);
}
.avail-unit:active{transform:translateY(2px);}
.avail-unit.in-team{border-color:var(--green);opacity:.4;pointer-events:none;filter:grayscale(0.8);}
.au-icon{
  width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:800;color:#fff;font-size:13px;margin:0 auto 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.au-name{font-size:11px;color:var(--t1);font-weight:700;}
.au-lv{font-size:10px;color:var(--t3);margin-top:2px; font-weight: 500;}

.prebattle-footer{
  padding:12px 18px;background:rgba(0,0,0,0.28);border-top:1px solid var(--bd);
  display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:12px;
  /* backdrop-filter removed for performance */
}
.diff-select{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t2);flex-wrap:wrap;}
.diff-btn{
  background:var(--gs);color:var(--t3);border:1px solid var(--bd);
  border-radius:8px;padding:5px 12px;font-size:11px;font-weight:500;transition:all 130ms;
}
.diff-btn.active{background:rgba(255,200,70,0.08);color:var(--gold);border-color:rgba(255,200,70,0.28);}
.diff-btn:hover:not(.active){border-color:var(--bd2);color:var(--t2);}

.empty-state{color:var(--t3);text-align:center;padding:40px 16px;font-size:12px;line-height:1.8;}

/* ══════════════════════════════
   GAME HUD  ← redesenhada
══════════════════════════════ */
.game-hud{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 16px;height:54px;
  background:linear-gradient(180deg,rgba(4,4,12,0.97) 0%,rgba(6,6,14,0.88) 100%);
  border-bottom:1px solid rgba(255,255,255,0.06);
  flex-shrink:0;/* backdrop-filter removed for performance */gap:12px;
}

/* Stat badges */
.hud-stats{display:flex;gap:8px;align-items:center;}
.hud-badge{
  display:flex;align-items:center;gap:6px;
  padding:6px 13px;border-radius:99px;border:1px solid;
  font-size:13px;font-weight:700;letter-spacing:-.01em;
  transition:all 200ms var(--ease);
}
.hud-badge-icon{font-size:15px;line-height:1;}
.hud-badge-val{font-size:14px;font-weight:800;}
.hud-lives{
  background:rgba(245,101,101,0.1);border-color:rgba(245,101,101,0.25);
  color:var(--red);box-shadow:0 0 14px rgba(245,101,101,0.06);
}
.hud-gold{
  background:rgba(255,200,70,0.08);border-color:rgba(255,200,70,0.22);
  color:var(--gold);box-shadow:0 0 14px rgba(255,200,70,0.05);
}

/* Wave center section */
.hud-center{
  display:flex;flex-direction:column;align-items:center;gap:5px;flex:1;
}
.hud-phase-name{
  font-size:11px;font-weight:700;color:var(--t2);letter-spacing:.04em;
  text-transform:uppercase;line-height:1;
}
.hud-wave-wrap{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;max-width:180px;}
.hud-wave-label{font-size:10px;color:var(--t3);font-weight:500;}
.hud-wave-bar{
  width:100%;height:5px;
  background:rgba(255,255,255,0.06);border-radius:99px;overflow:hidden;
}
.hud-wave-fill{
  height:100%;
  background:linear-gradient(90deg,var(--blue),var(--purple));
  border-radius:99px;
  transition:width 600ms var(--ease);
  box-shadow:0 0 8px rgba(91,156,246,0.4);
}

/* Controls */
.hud-controls{display:flex;gap:6px;align-items:center;}
.btn-hud{
  background:var(--gs2);color:var(--t2);border:1px solid var(--bd);
  border-radius:9px;padding:5px 13px;font-size:12px;font-weight:600;
  transition:all 130ms var(--ease);
}
.btn-hud:hover{background:var(--gs3);color:var(--t1);border-color:var(--bd2);}
.btn-speed{border-color:rgba(91,156,246,0.18);color:var(--blue);}
.btn-speed:hover{border-color:rgba(91,156,246,0.35);background:rgba(91,156,246,0.08);}

/* Game layout */
.game-main{display:flex;flex:1;overflow:hidden;}
#game-canvas{display:block;flex:1;min-width:0;height:100%;background:#080f08;}
.game-side{
  width:188px;background:rgba(0,0,0,0.3);border-left:1px solid var(--bd);
  display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0;
  /* backdrop-filter removed for performance */
}
.side-title{
  padding:10px 13px;font-size:9px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--t3);border-bottom:1px solid var(--bd);flex-shrink:0;
}
.side-hint{
  padding:10px 13px;font-size:10px;color:var(--t3);
  text-align:center;margin-top:auto;border-top:1px solid var(--bd);line-height:1.6;
}

#team-panel{flex:1;overflow-y:auto;padding:7px;display:flex;flex-direction:column;gap:5px;}
.tp-unit{
  background:var(--gs);border:1px solid var(--bd);border-radius:10px;
  padding:9px;cursor:pointer;transition:all 140ms var(--ease);
}
.tp-unit:hover{border-color:rgba(255,200,70,0.2);background:var(--gs2);}
.tp-unit.deploying{border-color:rgba(255,200,70,0.5);background:rgba(255,200,70,0.04);box-shadow:0 0 14px rgba(255,200,70,0.06);}
.tp-unit.cant-afford{opacity:.35;}
.tp-icon{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:11px;margin:0 auto 5px;}
.tp-name{font-size:10px;text-align:center;color:var(--t1);font-weight:600;}
.tp-cost{font-size:9px;text-align:center;color:var(--t3);margin-top:1px;}

/* Upgrade Panel */
.upgrade-panel{
  position:absolute;bottom:0;left:0;right:188px;
  background:rgba(4,4,12,0.97);border-top:1px solid var(--bd2);
  padding:12px;display:flex;flex-direction:column;gap:8px;
  max-height:200px;overflow-y:auto;z-index:10;/* backdrop-filter removed for performance */
}
.upg-header{display:flex;justify-content:space-between;align-items:center;}
.upg-header span{font-size:13px;font-weight:600;display:flex;align-items:center;gap:7px;}
.tower-badge{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;}
.upg-close{
  background:rgba(245,101,101,0.1);color:var(--red);border:1px solid rgba(245,101,101,0.18);
  border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;
  font-size:13px;transition:all 130ms;cursor:pointer;
}
.upg-close:hover{background:rgba(245,101,101,0.28);}
.upg-options{display:flex;gap:7px;flex-wrap:wrap;}
.upg-item{background:var(--gs);border:1px solid var(--bd);border-radius:9px;padding:9px;flex:1;min-width:135px;transition:all 140ms;}
.upg-item.upg-done{border-color:rgba(62,207,142,0.2);background:rgba(62,207,142,0.04);}
.upg-item.upg-next{border-color:rgba(255,200,70,0.28);cursor:pointer;}
.upg-item.upg-next:hover{background:rgba(255,200,70,0.05);border-color:rgba(255,200,70,0.5);}
.upg-item.upg-locked{opacity:.28;}
.upg-name{font-size:11px;font-weight:700;color:var(--gold);margin-bottom:2px;}
.upg-desc{font-size:10px;color:var(--t2);margin-bottom:4px;line-height:1.4;}
.upg-cost{font-size:11px;font-weight:600;color:var(--gold);}
.upg-passive{
  font-size:10px;font-weight:600;color:var(--gold);
  background:rgba(255,200,70,0.06);border:1px solid rgba(255,200,70,0.18);
  border-radius:8px;padding:5px 9px;line-height:1.4;
}
.upg-stats-block{
  width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);
  border-radius:8px;padding:7px 10px;display:flex;flex-direction:column;gap:3px;
}
.upg-stat-row{
  display:flex;justify-content:space-between;align-items:center;
  font-size:10px;color:var(--t2);
}
.upg-stat-row span:last-child{color:var(--fg);font-weight:600;font-size:10px;}
.upg-ability-wrap{width:100%;}
.btn-active-ability{
  width:100%;justify-content:space-between;
  background:linear-gradient(135deg,rgba(91,156,246,0.12),rgba(91,156,246,0.06));
  color:var(--blue);border-color:rgba(91,156,246,0.3);font-size:12px;
}
.btn-active-ability:hover:not(:disabled){background:rgba(91,156,246,0.18);border-color:rgba(91,156,246,0.55);}
.btn-active-ability.btn-ability-cd{opacity:.5;cursor:not-allowed;}
.ability-badge{
  font-size:9px;font-weight:700;padding:2px 7px;border-radius:99px;
}
.ability-badge--ready{background:rgba(62,207,142,0.18);color:var(--green);}
.ability-badge--cd{background:rgba(91,156,246,0.18);color:var(--blue);}

/* ══════════════════════════════
   POST-BATTLE
══════════════════════════════ */
.postbattle-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:0;padding:32px;position:relative;}
.result-banner{
  font-size:52px;font-weight:900;padding:24px 80px;border-radius:99px;text-align:center;letter-spacing:.05em;
  position:relative; z-index:2; margin-bottom:-30px;
  text-shadow: 0 4px 10px rgba(0,0,0,0.8); border-bottom: 8px solid rgba(0,0,0,0.4);
}
.result-banner.victory{
  background:linear-gradient(180deg, #48bb78, #276749);color:#fff;
  border:4px solid #f6e05e;box-shadow:0 10px 40px rgba(62,207,142,0.6);
}
.result-banner.defeat{
  background:linear-gradient(180deg, #f56565, #9b2c2c);color:#fff;
  border:4px solid #2d3748;box-shadow:0 10px 40px rgba(245,101,101,0.6);
}
.result-section{
  background:linear-gradient(180deg, rgba(20,25,45,0.95), rgba(10,15,30,0.95));
  border:4px solid rgba(255,200,70,0.8);border-radius:30px;
  padding:50px 30px 30px;width:100%;max-width:500px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.8); z-index:1;
}
.result-section h3{font-size:14px;font-weight:900;color:var(--gold);text-transform:uppercase;letter-spacing:.1em;margin-bottom:16px;text-align:center;text-shadow:0 2px 4px rgba(0,0,0,0.8);}
.result-rewards{display:flex;flex-direction:column;gap:10px;margin-bottom:24px;}
.reward-item{
  display:flex;justify-content:space-between;align-items:center;padding:12px 16px;
  background:rgba(0,0,0,0.4);border-radius:16px;font-size:16px;font-weight:800;
  border-bottom:3px solid rgba(255,255,255,0.05);
}
.reward-item.bonus{border-left:4px solid var(--gold);background:rgba(255,200,70,0.15);}
.reward-mat{width:36px;height:36px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;}
.result-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;}

/* ══════════════════════════════
   GACHA
══════════════════════════════ */
#screen-gacha {
  background: url('assets/bg_gacha.png') center/cover no-repeat;
  animation: gacha-bg-fade 1.2s var(--ease) forwards;
}
@keyframes gacha-bg-fade {
  from { opacity: 0; transform: scale(1.03); }
  to { opacity: 1; transform: scale(1); }
}

.gacha-body{display:flex;flex:1;overflow:hidden;}
.gacha-banner-art{
  flex:1;background:transparent;
  border-right:1px solid var(--bd);display:flex;flex-wrap:wrap;gap:10px;
  padding:24px;align-items:center;justify-content:center;position:relative;overflow:hidden;
}
.gacha-banner-art::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 80% 80% at 50% 50%,rgba(124,58,237,0.08) 0%,transparent 60%);
}
.gacha-preview{
  width:78px;height:94px;border-radius:14px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;font-weight:800;font-size:20px;
  border:1px solid transparent;transition:transform 200ms var(--ease);cursor:default;
}
.gacha-preview:hover{transform:translateY(-7px);}
.gacha-preview.star5-glow{
  background:linear-gradient(160deg,#1c0e00,#2e1a00);border-color:rgba(255,200,70,0.5);
  color:var(--gold);animation:glow-pulse 3s ease-in-out infinite;
}
.gacha-preview.star4{background:linear-gradient(160deg,#1a0a00,#2d1200);border-color:rgba(251,146,60,0.32);color:var(--r4);}
.gacha-preview.star3{background:linear-gradient(160deg,#100820,#1e0e3a);border-color:rgba(159,122,234,0.25);color:var(--r3);}
@keyframes glow-pulse{0%,100%{box-shadow:0 0 22px rgba(255,200,70,0.2);}50%{box-shadow:0 0 40px rgba(255,200,70,0.38);}}
.gacha-pity{position:absolute;bottom:14px;right:14px;font-size:11px;background:rgba(0,0,0,0.6);padding:5px 14px;border-radius:99px;color:var(--t2);border:1px solid var(--bd2);}

.gacha-info{width:290px;display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0;background:rgba(6, 6, 14, 0.85);backdrop-filter:blur(10px);}
.gacha-info-section{padding:17px 20px;border-bottom:1px solid var(--bd);}
.gacha-currencies{display:flex;gap:8px;margin-bottom:10px;}
.gacha-rates{display:flex;gap:7px;}
.rate{font-size:11px;font-weight:600;padding:3px 10px;border-radius:99px;}
.star3-col{background:rgba(159,122,234,0.1);color:var(--r3);border:1px solid rgba(159,122,234,0.18);}
.star4-col{background:rgba(251,146,60,0.1);color:var(--r4);border:1px solid rgba(251,146,60,0.18);}
.star5-col{background:rgba(255,200,70,0.1);color:var(--r5);border:1px solid rgba(255,200,70,0.18);}
.gacha-section-title{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--t3);margin-bottom:10px;}
.gacha-btn-group{display:flex;flex-direction:column;gap:6px;}
.gacha-pool-note{font-size:11px;color:var(--gold);opacity:.55;text-align:center;padding:14px 18px;}

/* ══════════════════════════════
   MODALS
══════════════════════════════ */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.85);
  display:flex;align-items:center;justify-content:center;
  z-index:100;/* backdrop-filter removed for performance */
}
.modal-box{
  background:var(--bg2);border:1px solid var(--bd2);border-radius:var(--radius-xl);
  padding:24px;max-width:90vw;max-height:90vh;overflow-y:auto;
  box-shadow:0 28px 90px rgba(0,0,0,0.75);
}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.modal-header h3{font-size:15px;font-weight:800;color:var(--gold);}
.modal-close{
  background:rgba(245,101,101,0.1);color:var(--red);border:1px solid rgba(245,101,101,0.18);
  border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  font-size:13px;transition:all 130ms;cursor:pointer;
}
.modal-close:hover{background:rgba(245,101,101,0.26);}

/* Gacha Result */
.gacha-result-box{max-width:680px;}
.gacha-result-box h3{text-align:center;margin-bottom:18px;}
.gacha-results-grid{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-bottom:18px;}
.gacha-card{animation:card-reveal .45s var(--ease) both;}
@keyframes card-reveal{from{opacity:0;transform:scale(.6) rotateY(60deg);}to{opacity:1;transform:scale(1) rotateY(0);}}
.gacha-card-inner{width:88px;text-align:center;border-radius:14px;padding:12px 8px;border:1px solid transparent;}
.gacha-card.rarity-5 .gacha-card-inner{border-color:rgba(255,200,70,0.5);background:linear-gradient(160deg,#1c0e00,#2e1a00);box-shadow:0 0 22px rgba(255,200,70,0.14);}
.gacha-card.rarity-4 .gacha-card-inner{border-color:rgba(251,146,60,0.38);background:linear-gradient(160deg,#1a0a00,#2d1200);}
.gacha-card.rarity-3 .gacha-card-inner{border-color:rgba(159,122,234,0.32);background:linear-gradient(160deg,#100820,#1e0e3a);}
.glow-gold{animation:glow-pulse 2s ease-in-out infinite;}
.glow-orange{box-shadow:0 0 16px rgba(251,146,60,0.24);}
.gacha-card-icon{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff;margin:0 auto 7px;}
.gacha-card-stars{font-size:12px;margin-bottom:3px;}
.gacha-card-name{font-size:9px;color:var(--t2);line-height:1.3;}

/* ══════════════════════════════
   INVENTORY
══════════════════════════════ */
.inv-tabs{
  display:flex;padding:0 18px;
  background:rgba(0,0,0,0.22);border-bottom:1px solid var(--bd);flex-shrink:0;
}
.tab-btn{
  background:none;color:var(--t3);padding:12px 18px;
  border-bottom:2px solid transparent;font-size:13px;font-weight:600;
  transition:all 130ms;
}
.tab-btn.active{color:var(--gold);border-color:var(--gold);}
.tab-btn:hover:not(.active){color:var(--t2);}
.tab-btn--evo{color:rgba(159,122,234,0.6);}
.tab-btn--evo.active{color:var(--purple);border-color:var(--purple);}

.inv-filters{
  display:flex;gap:9px;padding:9px 18px;
  background:rgba(0,0,0,0.12);border-bottom:1px solid var(--bd);flex-shrink:0;
}
.inv-filter-chips{display:flex;flex-wrap:wrap;gap:5px;}
.inv-chip{
  display:inline-flex;align-items:center;padding:4px 12px;
  border-radius:999px;
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.13);
  color:rgba(238,240,255,0.55);
  font-size:12px;font-weight:500;line-height:1.4;
  cursor:pointer;
  transition:background 110ms,border-color 110ms,color 110ms;
  white-space:nowrap;
}
.inv-chip:hover{
  background:rgba(255,200,70,0.09);
  border-color:rgba(255,200,70,0.3);
  color:rgba(255,200,70,0.85);
}
.inv-chip.active{
  background:rgba(255,200,70,0.15);
  border-color:var(--gold);
  color:var(--gold);
  font-weight:700;
}
select{
  background:var(--gs2);color:var(--t1);border:1px solid var(--bd2);
  border-radius:9px;padding:6px 11px;font-size:12px;cursor:pointer;transition:border-color 130ms;
}
select:hover{border-color:var(--bd3);}

.inv-content{display:flex;flex:1;overflow:hidden;}
.inv-grid{display:flex;flex-wrap:wrap;gap:9px;padding:14px;overflow-y:auto;flex:1;align-content:flex-start;}
.inv-card{
  background:linear-gradient(145deg, rgba(20,25,40,0.9), rgba(10,12,25,0.95));
  border:2px solid rgba(255,255,255,0.08);border-radius:18px;
  padding:14px 10px;width:115px;text-align:center;cursor:pointer;
  transition:all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  position:relative;overflow:hidden;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  border-bottom: 5px solid rgba(0,0,0,0.6);
}
.inv-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:4px;opacity:0;transition:opacity 0.3s;
}
.inv-card:hover{
  transform:translateY(-6px);
  background:linear-gradient(145deg, rgba(30,35,55,0.9), rgba(15,20,35,0.95));
  box-shadow:0 12px 28px rgba(0,0,0,0.6), inset 0 2px 10px rgba(255,255,255,0.1);
  
}
.inv-card:active{transform:translateY(2px); border-bottom-width: 2px; transition: all 0.1s;}
.inv-card:hover::before{opacity:1;}

.inv-card.rarity-5{border-color:rgba(255,200,70,0.4);}
.inv-card.rarity-5::before{background:linear-gradient(90deg,transparent,var(--r5),transparent);}
.inv-card.rarity-5:hover{box-shadow:0 12px 30px rgba(255,200,70,0.2), inset 0 2px 15px rgba(255,200,70,0.1); border-color:var(--gold);}
.inv-card.rarity-4{border-color:rgba(251,146,60,0.3);}
.inv-card.rarity-4::before{background:linear-gradient(90deg,transparent,var(--r4),transparent);}
.inv-card.rarity-4:hover{box-shadow:0 12px 30px rgba(251,146,60,0.15), inset 0 2px 15px rgba(251,146,60,0.1); border-color:var(--r4);}
.inv-card.rarity-3{border-color:rgba(159,122,234,0.2);}
.inv-card.rarity-3::before{background:linear-gradient(90deg,transparent,var(--r3),transparent);}
.inv-card.inv-card--locked{opacity:.35;cursor:not-allowed;pointer-events:none;filter:grayscale(.8) brightness(0.7);}

.inv-icon{
  width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-weight:800;color:#fff;font-size:16px;margin:0 auto 10px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.5); border: 2px solid rgba(255,255,255,0.1);
  transition: transform 0.3s;
}
.inv-card:hover .inv-icon{transform: scale(1.1) translateY(-2px);}
.inv-name{font-size:12px;color:#fff;font-weight:800;margin-bottom:4px;line-height:1.2; text-shadow:0 2px 4px rgba(0,0,0,0.8);}
.inv-meta{font-size:10px;color:rgba(255,255,255,0.7); font-weight: 600;}

/* Detail Panel */
.unit-detail-panel{
  width:320px;
  background:linear-gradient(135deg, rgba(16,24,45,0.9) 0%, rgba(8,12,22,0.95) 100%);
  border-left:2px solid rgba(255,255,255,0.1);
  padding:20px;overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column;gap:16px;position:relative;
  box-shadow: -10px 0 30px rgba(0,0,0,0.6);
  /* backdrop-filter removed for performance */
}
.panel-close{
  position:absolute;top:16px;right:16px;
  background:rgba(245,101,101,0.15);color:var(--red);border:1px solid rgba(245,101,101,0.3);
  border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  font-size:14px;transition:all 0.2s;cursor:pointer;
}
.panel-close:hover{background:rgba(245,101,101,0.3); transform: scale(1.1);}
.detail-header{display:flex;gap:16px;align-items:center;margin-top:8px;}
.detail-icon{
  width:64px;height:64px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:800;color:#fff;flex-shrink:0;
  box-shadow:0 8px 20px rgba(0,0,0,0.5); border: 2px solid rgba(255,255,255,0.2);
  animation: float 4s ease-in-out infinite;
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
.detail-name{font-size:18px;font-weight:900;color:#fff;line-height:1.2;margin-bottom:4px; text-shadow:0 2px 4px rgba(0,0,0,0.8);}
.detail-rarity,.detail-qty{font-size:12px;font-weight:600;color:rgba(255,255,255,0.7);margin-top:2px;}

/* Material combination panel */
.mat-combinable{cursor:pointer;}
.mat-combinable:hover{border-color:rgba(159,122,234,0.4);transform:translateY(-2px);}

.mat-combine-section{
  background:rgba(0,0,0,0.3); border:1px solid rgba(255,255,255,0.1); border-radius:16px;
  padding:16px; display:flex; flex-direction:column; gap:12px;
  box-shadow: inset 0 2px 10px rgba(0,0,0,0.4);
}
.mat-combine-title{
  font-size:10px;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;color:var(--t2); text-align: center;
}
.mat-combine-recipe{
  display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 0;
}
.mat-comb-icon{
  width:42px;height:42px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:900;color:#fff;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.mat-comb-arrow{font-size:16px;font-weight:900;color:var(--gold);}
.mat-comb-desc{font-size:12px;color:var(--t1);text-align:center; font-weight: 600;}
.mat-comb-have{font-size:11px;color:var(--t3);text-align:center; font-weight: 500;}
.mat-comb-max{font-size:11px;color:var(--t3);text-align:center;padding:6px 0;}
.btn-mat-combine{
  background:linear-gradient(135deg,#7c3aed,#5b21b6);color:#fff;
  border-color:rgba(124,58,237,0.4);width:100%;font-size:13px; font-weight: 800;
  border-bottom: 4px solid #4c1d95;
}
.btn-mat-combine:hover:not(:disabled){box-shadow:0 6px 20px rgba(124,58,237,0.4);transform:translateY(-2px); }
.btn-mat-combine:active:not(:disabled){transform:translateY(2px); border-bottom-width: 2px;}
.btn-mat-combine.btn-disabled{opacity:.4;cursor:not-allowed;filter:grayscale(1);}

.passive-tag{
  display:block;padding:10px 14px;border-radius:12px;font-size:11px;font-weight:700;
  background:linear-gradient(135deg, rgba(255,200,70,0.1), rgba(255,200,70,0.02));
  border:1px solid rgba(255,200,70,0.3);
  color:var(--gold);line-height:1.5;margin-bottom:8px;
  box-shadow: 0 4px 12px rgba(255,200,70,0.1);
}

.detail-stats{
  background:rgba(0,0,0,0.25);border:1px solid rgba(255,255,255,0.08);
  border-radius:16px;padding:16px; box-shadow: inset 0 2px 10px rgba(0,0,0,0.3);
}
.stat-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid rgba(255,255,255,0.05);font-size:13px;}
.stat-row:last-child{border-bottom:none;}
.stat-row span:first-child{color:var(--t2); font-weight: 500;}
.stat-row span:last-child{font-weight:800; color: #fff;}
.xp-row{gap:10px;}
.xp-bar-wrap{flex:1;height:6px;background:rgba(255,255,255,0.1);border-radius:99px;overflow:hidden; box-shadow: inset 0 1px 3px rgba(0,0,0,0.5);}
.xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--purple),#c4b5fd);border-radius:99px;transition:width 400ms var(--ease); box-shadow: 0 0 8px rgba(159,122,234,0.5);}

.detail-actions{display:flex;gap:7px;}

/* ══════════════════════════════
   EVOLUTION TAB
══════════════════════════════ */
.evo-content{
  flex:1;overflow-y:auto;padding:20px;
  flex-direction:column;gap:16px;
}

.evo-recipe-card{
  background:var(--gs);border:1px solid var(--bd2);border-radius:var(--radius-xl);
  padding:22px;transition:all 200ms var(--ease);
}
.evo-recipe-card--ready{
  border-color:rgba(255,200,70,0.32);
  background:rgba(255,200,70,0.025);
  box-shadow:0 0 32px rgba(255,200,70,0.06);
}
.evo-recipe-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;}
.evo-recipe-chars{display:flex;align-items:center;gap:22px;}
.evo-recipe-unit{display:flex;flex-direction:column;align-items:center;gap:6px;}
.evo-recipe-icon{
  width:68px;height:68px;border-radius:16px;
  display:flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:700;color:#fff;
  box-shadow:0 4px 16px rgba(0,0,0,0.4);
}
.evo-recipe-icon--result{
  border:2px solid rgba(255,200,70,0.45);
  box-shadow:0 0 24px rgba(255,200,70,0.14);
}
.evo-recipe-name{font-size:12px;font-weight:600;color:var(--t1);text-align:center;}
.evo-recipe-stars{font-size:10px;color:var(--t3);}
.evo-recipe-arrow{font-size:28px;color:var(--gold);opacity:.5;font-weight:200;}
.evo-badge-ready{
  background:rgba(255,200,70,0.12);color:var(--gold);
  border:1px solid rgba(255,200,70,0.3);border-radius:99px;
  font-size:11px;font-weight:700;padding:4px 14px;letter-spacing:.04em;
  animation:ready-pulse 2s ease-in-out infinite;
}
@keyframes ready-pulse{0%,100%{box-shadow:0 0 8px rgba(255,200,70,0.1);}50%{box-shadow:0 0 20px rgba(255,200,70,0.25);}}

.evo-reqs-section{margin-bottom:16px;}
.evo-reqs-title{
  font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--t3);margin-bottom:10px;
}
.evo-req-count{margin-left:auto;font-weight:700;}

/* ══════════════════════════════
   FEED MODAL
══════════════════════════════ */
.feed-box{width:min(600px,95vw);}
.feed-target-card{
  display:flex;gap:12px;align-items:center;
  background:var(--gs);border:1px solid var(--bd2);border-radius:var(--radius);
  padding:13px;margin-bottom:14px;
}
.feed-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:15px;flex-shrink:0;box-shadow:0 2px 10px rgba(0,0,0,0.3);}
.feed-xp-row{font-size:13px;color:var(--t2);margin-bottom:13px;display:flex;align-items:center;gap:8px;}
.feed-xp-row b{color:var(--green);font-size:22px;font-weight:800;}
.feed-selected-wrap{margin-bottom:12px;}
.feed-sel-title{font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--t3);margin-bottom:7px;}
.feed-selected-list{display:flex;flex-wrap:wrap;gap:5px;min-height:28px;}
.feed-sel-chip{
  display:inline-flex;align-items:center;gap:4px;padding:4px 11px;
  border-radius:99px;font-size:11px;color:#fff;font-weight:600;
  cursor:pointer;opacity:.9;transition:opacity 130ms;
}
.feed-sel-chip:hover{opacity:.6;}
.feed-mat-title{font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--t3);margin-bottom:9px;}
.feed-mat-grid{display:flex;flex-wrap:wrap;gap:8px;max-height:200px;overflow-y:auto;margin-bottom:14px;}
.feed-mat-item{
  background:var(--gs);border:1px solid var(--bd);border-radius:10px;
  padding:10px;width:96px;text-align:center;cursor:pointer;transition:all 130ms;
}
.feed-mat-item:hover{border-color:rgba(255,200,70,0.28);background:var(--gs2);}
.feed-mat-item.selected{border-color:rgba(62,207,142,0.38);background:rgba(62,207,142,0.04);}
.feed-mat-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;margin:0 auto 5px;}
.feed-mat-xp{font-size:10px;color:var(--green);margin-top:3px;font-weight:700;}

/* ══════════════════════════════
   EVOLUTION MODAL
══════════════════════════════ */
.evo-box{width:min(420px,95vw);}
.evo-target{display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:12px;}
.evo-icon{width:66px;height:66px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:#fff;box-shadow:0 4px 16px rgba(0,0,0,0.35);}
.evo-result{border:2px solid rgba(255,200,70,0.48);box-shadow:0 0 26px rgba(255,200,70,0.14);}
.evo-arrow{font-size:24px;color:var(--gold);opacity:.5;}
.evo-title{text-align:center;font-size:14px;color:var(--gold);font-weight:800;margin-bottom:16px;}
.evo-reqs{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.evo-req{display:flex;align-items:center;gap:10px;background:var(--gs);border:1px solid var(--bd);border-radius:10px;padding:10px;font-size:12px;}
.evo-req.evo-req--missing{border-color:rgba(245,101,101,0.24);background:rgba(245,101,101,0.03);}
.evo-req-icon{width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex-shrink:0;}
.evo-req span:last-child{margin-left:auto;font-weight:700;}
.evo-req.evo-req--missing span:last-child{color:var(--red);}
.evo-warning{color:var(--red);font-size:12px;text-align:center;margin-bottom:10px;opacity:.8;}

/* ══════════════════════════════
   TOAST
══════════════════════════════ */
#toast{
  position:fixed;bottom:26px;left:50%;
  transform:translateX(-50%) translateY(130%);
  background:rgba(8,8,22,0.96);color:var(--t1);
  padding:10px 24px;border-radius:99px;border:1px solid var(--bd2);
  font-size:13px;font-weight:600;z-index:9999;
  transition:transform 240ms var(--ease);
  white-space:nowrap;max-width:92vw;text-align:center;
  /* backdrop-filter removed for performance */box-shadow:0 10px 32px rgba(0,0,0,0.5);
}
#toast.show{transform:translateX(-50%) translateY(0);}

/* ══════════════════════════════
   SCROLLBAR
══════════════════════════════ */
::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.08);border-radius:99px;}
::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.15);}

/* ══════════════════════════════
   ROBLOX SUMMON & BANNER SHOWCASE
══════════════════════════════ */

/* Banner Showcase Layout */
.banner-layout {
  display: flex;
  gap: 20px;
  width: 100%;
  max-width: 900px;
  align-items: stretch;
  justify-content: center;
}

@media (max-width: 768px) {
  .banner-layout {
    flex-direction: column;
    align-items: center;
  }
}

/* Featured Mythic Card */
.banner-featured-card {
  flex: 1.3;
  min-width: 320px;
  background: linear-gradient(135deg, rgba(30, 10, 60, 0.95) 0%, rgba(12, 5, 30, 0.98) 100%);
  border: 2.5px solid var(--r5);
  border-radius: 24px;
  padding: 20px 24px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(255, 200, 70, 0.18), inset 0 0 20px rgba(255, 200, 70, 0.08);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-bottom: 6px solid rgba(0, 0, 0, 0.6);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  /* backdrop-filter removed for performance */
}

.banner-featured-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 15px 40px rgba(255, 200, 70, 0.3), inset 0 0 30px rgba(255, 200, 70, 0.15);
}

/* Background animated glow */
.featured-glow-effect {
  position: absolute;
  inset: -50%;
  background: radial-gradient(circle at center, rgba(255, 200, 70, 0.16) 0%, transparent 60%);
  animation: featured-glow-move 10s linear infinite;
  pointer-events: none;
  z-index: 0;
}

@keyframes featured-glow-move {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.15); }
  100% { transform: rotate(360deg) scale(1); }
}

.featured-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  z-index: 1;
  margin-bottom: 12px;
  width: 100%;
}

.featured-rarity-badge {
  background: linear-gradient(90deg, #f1c40f, #fbbf24);
  color: #000;
  font-size: 10px;
  font-weight: 900;
  padding: 3px 12px;
  border-radius: 99px;
  letter-spacing: 1.5px;
  box-shadow: 0 0 12px rgba(255, 200, 70, 0.6);
  text-shadow: 0 1px 0 rgba(255,255,255,0.4);
}

.featured-series-badge {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--t2);
  font-size: 10px;
  font-weight: 700;
  padding: 3px 12px;
  border-radius: 99px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.featured-body {
  display: flex;
  gap: 20px;
  position: relative;
  z-index: 1;
  flex: 1;
}

@media (max-width: 480px) {
  .featured-body {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
}

.featured-avatar-container {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.featured-avatar-circle {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 3.5px solid var(--r5);
  box-shadow: 0 0 25px rgba(255, 200, 70, 0.45);
  overflow: hidden;
  animation: featured-float 4s ease-in-out infinite;
  display: flex;
  align-items: center;
  justify-content: center;
}

.featured-avatar-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.05);
}

@keyframes featured-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

.featured-details {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
  gap: 8px;
}

.featured-char-name {
  font-size: 22px;
  font-weight: 950;
  letter-spacing: -0.02em;
  background: linear-gradient(135deg, #ffffff 40%, #ffc846 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0;
  text-shadow: 0 0 20px rgba(255, 200, 70, 0.5);
  line-height: 1.15;
}

.featured-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.featured-stat-item {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 6px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
}

.featured-stat-item .stat-icon {
  font-size: 13px;
}

.featured-stat-item .stat-val {
  font-weight: 800;
  color: var(--t1);
}

.featured-passive-box {
  background: rgba(255, 200, 70, 0.06);
  border: 1px solid rgba(255, 200, 70, 0.2);
  border-radius: 12px;
  padding: 10px 14px;
  margin-top: auto;
  text-align: left;
}

.passive-title {
  font-size: 10px;
  font-weight: 900;
  color: var(--r5);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  margin-bottom: 4px;
}

.passive-text {
  font-size: 11px;
  line-height: 1.45;
  color: var(--t2);
}

/* Supporting Cast Section */
.banner-supporting-section {
  flex: 1.6;
  background: rgba(12, 10, 24, 0.6);
  border: 2px solid var(--bd);
  border-radius: 24px;
  padding: 20px 24px;
  /* backdrop-filter removed for performance */
  display: flex;
  flex-direction: column;
}

.supporting-title {
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--t1);
  margin-bottom: 14px;
  border-bottom: 2px solid rgba(255, 255, 255, 0.05);
  padding-bottom: 8px;
  text-align: left;
}

.supporting-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  overflow-y: auto;
  max-height: 220px;
  flex: 1;
}

@media (max-width: 480px) {
  .supporting-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Supporting hbc override */
.supporting-grid .hbc {
  width: 100% !important;
  margin: 0;
  position: relative;
  background: rgba(8, 8, 18, 0.7);
  border-radius: 16px;
  padding: 14px 8px 10px;
}

.hbc-badge {
  position: absolute;
  top: 5px;
  left: 6px;
  font-size: 7px;
  font-weight: 900;
  padding: 2px 6px;
  border-radius: 4px;
  color: #fff;
  letter-spacing: 0.8px;
}

.hbc--star4 .hbc-badge {
  background: var(--r4);
  box-shadow: 0 0 6px rgba(251, 146, 60, 0.4);
}

.hbc--star3 .hbc-badge {
  background: var(--r3);
  box-shadow: 0 0 6px rgba(159, 122, 234, 0.4);
}

/* Pity Progress Bar Container */
.gacha-pity-container {
  position: absolute;
  bottom: 16px;
  left: 20px;
  right: 20px;
  background: rgba(8, 8, 16, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 10px 14px;
  /* backdrop-filter removed for performance */
  z-index: 10;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

.gacha-pity-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.gacha-pity-title {
  font-size: 9px;
  font-weight: 800;
  color: var(--t2);
  letter-spacing: 0.05em;
}

.gacha-pity-val {
  font-size: 11px;
  font-weight: 900;
  color: var(--gold);
  text-shadow: 0 0 8px rgba(255, 200, 70, 0.4);
}

.gacha-pity-bar-bg {
  width: 100%;
  height: 8px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 99px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.gacha-pity-fill {
  height: 100%;
  background: linear-gradient(90deg, #9f7aea, #fb923c, #ffc846);
  border-radius: 99px;
  width: 0%;
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 0 10px rgba(255, 200, 70, 0.3);
}

.gacha-pity-fill.pity-near-guarantee {
  background: linear-gradient(90deg, var(--orange), var(--gold));
  box-shadow: 0 0 15px rgba(255, 200, 70, 0.7);
  animation: pity-pulse 1.5s ease-in-out infinite;
}

@keyframes pity-pulse {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.25); }
}

.gacha-pity-hint {
  font-size: 9px;
  color: var(--t3);
  margin-top: 5px;
  text-align: center;
}

/* ══════════════════════════════
   DIALOG SYSTEM (Visual Novel)
══════════════════════════════ */
.dialog-overlay {
  position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
  background: rgba(0,0,0,0.65); z-index: 9999;
  display: flex; flex-direction: column; justify-content: flex-end;
  pointer-events: auto;
}
.dialog-box {
  position: relative;
  height: 25vh; min-height: 160px; 
  background: linear-gradient(to bottom, rgba(15,15,20,0.95), rgba(5,5,10,0.98));
  border-top: 2px solid var(--gold);
  padding: 30px 40px; box-sizing: border-box;
  display: flex; flex-direction: column;
}
.dialog-name {
  position: absolute; top: -20px; left: 40px;
  background: var(--gold); color: #000; font-weight: bold;
  padding: 5px 20px; font-size: 16px; text-transform: uppercase;
  border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.dialog-text {
  color: #fff; font-size: 18px; line-height: 1.6;
  flex: 1; text-shadow: 1px 1px 2px #000; margin-top: 5px;
}
.dialog-hint {
  align-self: flex-end; font-size: 12px; color: var(--t3);
  animation: pulse 1.5s infinite; margin-top: 10px;
}
.dialog-char-left, .dialog-char-right {
  position: absolute; bottom: 25vh; width: 40vw; height: 70vh;
  background-size: contain; background-position: bottom center; background-repeat: no-repeat;
  transition: all 0.3s ease; filter: brightness(0.4); opacity: 0;
}
.dialog-char-left { left: 2vw; }
.dialog-char-right { right: 2vw; }
.dialog-char-active { 
  filter: brightness(1) drop-shadow(0 0 20px rgba(255,255,255,0.1)); 
  transform: scale(1.05); z-index: 2; 
}

/* ══════════════════════════════
   INVENTORY TEAM BAR
══════════════════════════════ */
.inv-team-bar {
  display: flex; gap: 15px; padding: 15px 20px; 
  background: rgba(0,0,0,0.25); border-bottom: 1px solid var(--bd); 
  align-items: center; box-shadow: inset 0 -5px 15px rgba(0,0,0,0.3);
}
.inv-team-label {
  font-size: 11px; font-weight: bold; color: var(--gold); 
  text-transform: uppercase; letter-spacing: 1px;
}
.inv-team-slots {
  display: flex; gap: 10px; flex: 1;
}
.inv-team-slot {
  width: 50px; height: 50px; background: rgba(255,255,255,0.05); 
  border: 1px dashed var(--t3); border-radius: 8px; 
  display: flex; align-items: center; justify-content: center; 
  font-size: 14px; cursor: pointer; position: relative;
  transition: all 0.2s;
}
.inv-team-slot:hover { border-color: var(--gold); background: rgba(255,255,255,0.1); }
.inv-team-slot.filled {
  border: 1px solid var(--bd); border-style: solid; background: #1a1a1a;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.inv-team-slot .ts-icon { 
  width: 100%; height: 100%; border-radius: 6px; 
  display:flex; align-items:center; justify-content:center; font-size: 24px; 
}
.inv-team-slot .ts-remove { 
  position: absolute; top: -6px; right: -6px; background: #e74c3c; 
  color: #fff; border-radius: 50%; width: 18px; height: 18px; 
  font-size: 12px; display: none; align-items: center; justify-content: center; 
  box-shadow: 0 2px 5px rgba(0,0,0,0.5); z-index: 2;
}
.inv-team-slot.filled:hover .ts-remove { display: flex; }

/* ══════════════════════════════
   WORLD THEMES (Naruto & One Piece)
══════════════════════════════ */

/* Naruto Theme */
.world-card.theme-naruto, .stage-card.theme-naruto {
  background: linear-gradient(145deg, rgba(45, 24, 16, 0.85) 0%, rgba(22, 12, 8, 0.95) 100%);
  border-color: rgba(230, 126, 34, 0.3);
}
.world-card.theme-naruto::before, .stage-card.theme-naruto::before {
  background: radial-gradient(circle at 50% -20%, rgba(230, 126, 34, 0.15), transparent 60%);
}
.world-card.theme-naruto:hover, .stage-card.theme-naruto:hover {
  border-color: rgba(230, 126, 34, 0.8);
  box-shadow: 0 25px 50px rgba(230, 126, 34, 0.2), inset 0 2px 15px rgba(230, 126, 34, 0.15);
}
.world-card.theme-naruto .world-icon, .stage-card.theme-naruto .stage-num {
  text-shadow: 0 4px 15px rgba(230, 126, 34, 0.6);
  color: #e67e22 !important; 
}
.stage-card.theme-naruto .stage-num {
  background: linear-gradient(180deg, #f39c12, #d35400);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
/* In-game Naruto Background */
#game-canvas.theme-naruto {
  background: radial-gradient(circle at 50% 50%, #2e1e12 0%, #0c0805 100%);
}

/* One Piece Theme */
.world-card.theme-onepiece, .stage-card.theme-onepiece {
  background: linear-gradient(145deg, rgba(16, 32, 45, 0.85) 0%, rgba(8, 16, 22, 0.95) 100%);
  border-color: rgba(52, 152, 219, 0.3);
}
.world-card.theme-onepiece::before, .stage-card.theme-onepiece::before {
  background: radial-gradient(circle at 50% -20%, rgba(52, 152, 219, 0.15), transparent 60%);
}
.world-card.theme-onepiece:hover, .stage-card.theme-onepiece:hover {
  border-color: rgba(52, 152, 219, 0.8);
  box-shadow: 0 25px 50px rgba(52, 152, 219, 0.2), inset 0 2px 15px rgba(52, 152, 219, 0.15);
}
.world-card.theme-onepiece .world-icon, .stage-card.theme-onepiece .stage-num {
  text-shadow: 0 4px 15px rgba(52, 152, 219, 0.6);
  color: #3498db !important; 
}
.stage-card.theme-onepiece .stage-num {
  background: linear-gradient(180deg, #5dade2, #2980b9);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
/* In-game One Piece Background */
#game-canvas.theme-onepiece {
  background: radial-gradient(circle at 50% 50%, #1a3a4c 0%, #071016 100%);
}

/* ══════════════════════════════
   HUB — Ranking button
══════════════════════════════ */
.hab--rank {
  background: linear-gradient(160deg, rgba(60,45,10,0.9), rgba(35,25,5,0.95));
  border-color: rgba(255,200,70,.5);
}
.hab--rank:hover {
  border-color: var(--gold);
  background: linear-gradient(160deg, rgba(90,70,15,0.9), rgba(55,40,8,0.95));
  box-shadow: 0 18px 36px rgba(255,200,70,0.25);
}

/* ══════════════════════════════
   HUB — Trades button
══════════════════════════════ */
.hab--trades {
  background: linear-gradient(160deg, rgba(15,35,55,0.9), rgba(8,18,30,0.95));
  border-color: rgba(91,156,246,.45);
}
.hab--trades:hover {
  border-color: var(--blue);
  background: linear-gradient(160deg, rgba(20,50,80,0.9), rgba(10,25,45,0.95));
  box-shadow: 0 18px 36px rgba(91,156,246,0.25);
}

/* ══════════════════════════════
   TRADES Modal
══════════════════════════════ */
.tr-modal-box {
  width: 500px; max-width: 96vw; padding: 0;
  overflow: hidden; display: flex; flex-direction: column; max-height: 90vh;
}
.tr-modal-box .modal-header { padding: 18px 20px 0; flex-shrink: 0; }

.tr-tabs { display:flex; gap:4px; padding:12px 20px; flex-shrink:0; border-bottom:1px solid var(--bd); }
.tr-tab  { flex:1; padding:8px 6px; border-radius:8px; font-size:12px; font-weight:700; color:var(--t3); background:var(--gs); border:1px solid var(--bd); transition:all 130ms; }
.tr-tab.active { background:var(--gs3); color:var(--blue); border-color:rgba(91,156,246,.3); }
.tr-tab:hover:not(.active) { color:var(--t2); background:var(--gs2); }

.tr-list  { overflow-y:auto; flex:1; padding:10px 16px; display:flex; flex-direction:column; gap:8px; }
.tr-empty { text-align:center; padding:32px 20px; color:var(--t3); font-size:13px; line-height:1.7; }
.tr-footer { padding:10px 16px; border-top:1px solid var(--bd); flex-shrink:0; }
.tr-create-btn { width:100%; padding:11px; border-radius:10px; background:var(--gs2); border:1px dashed var(--bd2); color:var(--blue); font-size:13px; font-weight:700; transition:all 120ms; }
.tr-create-btn:hover { background:var(--gs3); border-color:var(--blue); }

/* Trade card */
.tr-card { background:var(--gs); border:1px solid var(--bd2); border-radius:14px; padding:12px 14px; transition:background 120ms; }
.tr-card:hover { background:var(--gs2); }
.tr-card--inactive { opacity:.55; }
.tr-card-offer { display:flex; align-items:center; gap:10px; }
.tr-card-side  { flex:1; min-width:0; }
.tr-card-side--want { flex-shrink:0; text-align:right; }
.tr-card-arrow { font-size:16px; color:var(--t3); flex-shrink:0; }
.tr-card-name  { font-size:12px; font-weight:700; color:var(--t1); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tr-card-sub   { font-size:11px; color:var(--t3); margin-top:2px; }
.tr-dots-row   { display:flex; flex-wrap:wrap; gap:3px; margin-bottom:4px; }
.tr-any        { font-size:11px; color:var(--t3); font-style:italic; }
.tr-card-msg   { font-size:11px; color:var(--t2); font-style:italic; margin:8px 0 0 0; }
.tr-card-footer{ display:flex; align-items:center; justify-content:space-between; margin-top:10px; padding-top:8px; border-top:1px solid var(--bd); }
.tr-expiry     { font-size:11px; color:var(--t3); }
.tr-own-badge  { font-size:10px; font-weight:700; color:var(--t3); background:var(--gs2); padding:3px 8px; border-radius:99px; }
.tr-status { font-size:10px; font-weight:800; padding:3px 8px; border-radius:99px; text-transform:uppercase; letter-spacing:.04em; }
.tr-status--open      { background:rgba(62,207,142,.12); color:var(--green); }
.tr-status--completed { background:rgba(255,200,70,.1);  color:var(--gold); }
.tr-status--cancelled,.tr-status--expired { background:rgba(245,101,101,.08); color:var(--red); }

.tr-accept-btn { padding:5px 14px; border-radius:8px; background:linear-gradient(135deg,var(--blue),#3b6fd4); color:#fff; font-size:12px; font-weight:700; border-bottom:2px solid #2855b8; transition:all 110ms; }
.tr-accept-btn:hover { filter:brightness(1.1); transform:translateY(-1px); }
.tr-cancel-btn { padding:5px 12px; border-radius:8px; background:rgba(245,101,101,.08); border:1px solid rgba(245,101,101,.22); color:var(--red); font-size:12px; font-weight:600; transition:all 110ms; }
.tr-cancel-btn:hover { background:rgba(245,101,101,.18); }

.tr-dot    { display:inline-block; width:12px; height:12px; border-radius:50%; flex-shrink:0; }
.tr-dot--sm{ width:9px; height:9px; }

/* Unit picker — step 1 multi-select */
.tr-picker-hint { font-size:12px; color:var(--t2); padding:8px 20px 4px; flex-shrink:0; }
.tr-pick-list   { overflow-y:auto; flex:1; max-height:340px; padding:4px 16px; display:flex; flex-direction:column; gap:4px; }
.tr-pick-row    { display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:10px; background:var(--gs); border:1px solid var(--bd); cursor:pointer; transition:all 100ms; }
.tr-pick-row:hover         { background:var(--gs3); border-color:var(--bd2); }
.tr-pick-row--selected     { background:rgba(91,156,246,.12); border-color:rgba(91,156,246,.4); }
.tr-pick-check             { width:18px; height:18px; border-radius:50%; background:var(--blue); color:#fff; font-size:11px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.tr-pick-check--empty      { background:var(--gs2); border:1px solid var(--bd2); }
.tr-pick-name { font-size:13px; font-weight:700; color:var(--t1); }
.tr-pick-sub  { font-size:11px; color:var(--t3); }

/* Create step 2 */
.tr-create-preview { display:flex; align-items:center; gap:8px; padding:12px 20px; background:var(--gs); border-bottom:1px solid var(--bd); }
.tr-preview-names  { flex:1; font-size:13px; font-weight:700; color:var(--t1); }
.tr-preview-edit   { font-size:11px; color:var(--blue); background:none; padding:4px 8px; border:1px solid rgba(91,156,246,.3); border-radius:6px; }
.tr-create-body    { padding:14px 20px; overflow-y:auto; flex:1; }
.tr-section-label  { font-size:10px; font-weight:700; color:var(--t3); text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; }
.tr-hint           { font-weight:400; text-transform:none; letter-spacing:0; }

/* Wanted chips */
.tr-wanted-area   { position:relative; }
.tr-chips-row     { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:6px; }
.tr-chip          { display:flex; align-items:center; gap:6px; padding:5px 8px 5px 10px; background:var(--gs2); border:1px solid var(--bd2); border-radius:99px; font-size:12px; font-weight:600; color:var(--t1); }
.tr-chip button   { background:none; color:var(--t3); font-size:14px; line-height:1; padding:0 2px; }
.tr-chip button:hover { color:var(--red); }
.tr-add-chip-btn  { padding:5px 12px; border-radius:99px; background:var(--gs); border:1px dashed var(--bd2); color:var(--blue); font-size:12px; font-weight:600; transition:all 110ms; }
.tr-add-chip-btn:hover { background:var(--gs2); border-color:var(--blue); }

/* Custom character picker dropdown */
.tr-picker-dropdown { background:var(--bg2); border:1px solid var(--bd2); border-radius:12px; overflow:hidden; margin-top:6px; box-shadow:0 12px 40px rgba(0,0,0,0.6); }
.tr-picker-search   { width:100%; padding:10px 14px; background:var(--gs); border:none; border-bottom:1px solid var(--bd); color:var(--t1); font-size:13px; }
.tr-picker-search:focus { outline:none; background:var(--gs2); }
.tr-picker-list     { overflow-y:auto; max-height:200px; }
.tr-picker-empty    { text-align:center; padding:20px; color:var(--t3); font-size:12px; }
.tr-char-row        { display:flex; align-items:center; gap:10px; padding:9px 14px; cursor:pointer; transition:background 80ms; }
.tr-char-row:hover:not(.tr-char-row--picked) { background:var(--gs2); }
.tr-char-row--picked{ opacity:.4; cursor:default; }
.tr-char-name       { font-size:13px; font-weight:600; color:var(--t1); }
.tr-char-stars      { font-size:11px; color:var(--t3); }
.tr-char-done       { margin-left:auto; color:var(--green); font-size:14px; }

/* Accept flow — multi-unit selection */
.tr-acc-list  { padding:8px 16px; overflow-y:auto; flex:1; display:flex; flex-direction:column; gap:6px; }
.tr-acc-group { background:var(--gs); border:1px solid var(--bd); border-radius:12px; overflow:hidden; }
.tr-acc-label { display:flex; align-items:center; gap:8px; padding:10px 14px; cursor:pointer; font-size:13px; transition:background 100ms; }
.tr-acc-label:hover { background:var(--gs2); }
.tr-acc-label b { flex:1; color:var(--t1); }
.tr-acc-chosen    { font-size:11px; color:var(--green); font-weight:700; }
.tr-acc-pick-hint { font-size:11px; color:var(--t3); }
.tr-acc-options   { border-top:1px solid var(--bd); padding:6px 10px; display:flex; flex-direction:column; gap:4px; }
.tr-acc-no-unit   { padding:12px 14px; font-size:12px; color:var(--red); text-align:center; }

/* Confirm actions */
.tr-confirm-body { text-align:center; padding:28px 20px 16px; }
.tr-confirm-body p { font-size:13px; color:var(--t2); line-height:1.6; margin-bottom:6px; }
.tr-confirm-body b { color:var(--t1); }
.tr-confirm-actions { display:flex; gap:8px; padding:12px 20px; border-top:1px solid var(--bd); flex-shrink:0; }
.tr-confirm-actions .online-btn-primary,
.tr-confirm-actions .online-btn-secondary { flex:1; margin-top:0; }

/* Inventory lock badge */
.inv-card--in-trade::after { content:'🔒'; position:absolute; top:4px; right:4px; font-size:11px; }
.inv-card--in-trade { position:relative; opacity:.7; }

/* ══════════════════════════════
   LEADERBOARD Modal
══════════════════════════════ */
.lb-modal-box {
  width: 520px;
  max-width: 95vw;
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: 88vh;
}
.lb-modal-box .modal-header {
  padding: 18px 20px 0;
  margin-bottom: 0;
  flex-shrink: 0;
}
.lb-tabs {
  display: flex;
  gap: 4px;
  padding: 12px 20px;
  flex-shrink: 0;
  border-bottom: 1px solid var(--bd);
}
.lb-tab {
  flex: 1;
  padding: 8px 6px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--t3);
  background: var(--gs);
  border: 1px solid var(--bd);
  transition: all 130ms;
}
.lb-tab.active {
  background: var(--gs3);
  color: var(--gold);
  border-color: rgba(255,200,70,.3);
}
.lb-tab:hover:not(.active) { color: var(--t2); background: var(--gs2); }

/* List */
.lb-list {
  overflow-y: auto;
  flex: 1;
  padding: 8px 0;
  min-height: 200px;
}
.lb-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 20px;
  transition: background 100ms;
}
.lb-row:hover { background: var(--gs); }
.lb-row--self  { background: rgba(255,200,70,.06); border-left: 3px solid var(--gold); padding-left: 17px; }
.lb-row--admin { background: rgba(251,191,36,.07); border-left: 3px solid #fbbf24; padding-left: 17px; }
.lb-admin-name { font-weight: 800; color: #fde68a; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lb-admin-tag  {
  font-size: 9px; font-weight: 900; letter-spacing: .1em;
  color: #fde68a; background: #78350f;
  border: 1px solid #fbbf24; border-radius: 3px;
  padding: 1px 5px; margin-left: 5px; flex-shrink: 0;
  text-transform: uppercase;
}
.lb-rank {
  width: 32px;
  text-align: center;
  font-size: 14px;
  font-weight: 800;
  color: var(--t3);
  flex-shrink: 0;
}
.lb-name {
  flex: 1;
  font-size: 13px;
  font-weight: 600;
  color: var(--t1);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-score {
  font-size: 12px;
  color: var(--t2);
  white-space: nowrap;
}
.lb-score b { color: var(--gold); }
.lb-dots {
  display: flex;
  gap: 2px;
  flex-shrink: 0;
}
.lb-empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--t3);
  font-size: 13px;
  line-height: 1.7;
}

/* My rank footer */
.lb-my-rank {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  border-top: 1px solid var(--bd);
  background: rgba(255,200,70,.04);
  flex-shrink: 0;
}
.lb-my-rank--guest { background: var(--gs); }
.lb-my-pos  { font-size: 14px; font-weight: 800; color: var(--gold); }
.lb-my-score { font-size: 12px; color: var(--t2); }
.lb-my-score b { color: var(--t1); }
.lb-badge {
  margin-left: auto;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
}

/* Skeleton loading */
.lb-skeleton { padding: 12px 20px; display: flex; flex-direction: column; gap: 8px; }
.lb-skel-row {
  height: 36px;
  border-radius: 8px;
  background: linear-gradient(90deg, var(--gs) 25%, var(--gs2) 50%, var(--gs) 75%);
  background-size: 200% 100%;
  animation: lb-shimmer 1.4s infinite;
}
@keyframes lb-shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }

/* Rank badge no perfil */
.profile-rank-badge {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* ══════════════════════════════
   ONLINE — Modal Auth & Perfil
══════════════════════════════ */

/* Modal container */
.online-modal-box {
  width: 360px;
  max-width: 92vw;
}

/* Subtitle below header */
.online-subtitle {
  color: var(--t3);
  font-size: 12px;
  margin: -8px 0 16px;
  line-height: 1.5;
}

/* Tab bar */
.online-tab-bar {
  display: flex;
  background: var(--gs);
  border: 1px solid var(--bd);
  border-radius: 10px;
  padding: 3px;
  margin-bottom: 18px;
  gap: 3px;
}
.online-tab-btn {
  flex: 1;
  padding: 8px 0;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--t3);
  background: none;
  transition: all 140ms var(--ease);
}
.online-tab-btn.active {
  background: var(--gs3);
  color: var(--t1);
  box-shadow: 0 1px 6px rgba(0,0,0,0.35);
}
.online-tab-btn:hover:not(.active) { color: var(--t2); background: var(--gs2); }

/* Form fields */
.online-form-group { margin-bottom: 14px; }
.online-label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: var(--t2);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.online-hint { font-weight: 400; text-transform: none; color: var(--t3); letter-spacing: 0; }
.online-input {
  width: 100%;
  background: var(--gs2);
  border: 1px solid var(--bd2);
  border-radius: 10px;
  color: var(--t1);
  font-size: 14px;
  padding: 10px 14px;
  transition: border-color 130ms;
}
.online-input:focus { border-color: var(--blue); outline: none; }
.online-input::placeholder { color: var(--t3); }

/* Primary action button */
.online-btn-primary {
  width: 100%;
  margin-top: 6px;
  padding: 13px;
  border-radius: 99px;
  background: linear-gradient(135deg, var(--blue), #3b6fd4);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  border-bottom: 3px solid #2855b8;
  transition: all 120ms var(--ease);
}
.online-btn-primary:hover:not(:disabled) { filter: brightness(1.12); transform: translateY(-1px); }
.online-btn-primary:active:not(:disabled) { transform: translateY(2px); border-bottom-width: 1px; }
.online-btn-primary:disabled { opacity: .55; cursor: default; }

/* Secondary button */
.online-btn-secondary {
  padding: 8px 16px;
  border-radius: 8px;
  background: var(--gs2);
  border: 1px solid var(--bd2);
  color: var(--t2);
  font-size: 12px;
  font-weight: 600;
  transition: all 120ms;
}
.online-btn-secondary:hover { background: var(--gs3); color: var(--t1); }

/* Danger button (logout) */
.online-btn-danger {
  width: 100%;
  padding: 11px;
  border-radius: 10px;
  background: rgba(245,101,101,0.08);
  border: 1px solid rgba(245,101,101,0.22);
  color: var(--red);
  font-size: 13px;
  font-weight: 700;
  transition: all 120ms;
}
.online-btn-danger:hover { background: rgba(245,101,101,0.18); }

/* Error message */
.online-error {
  margin-top: 10px;
  padding: 9px 13px;
  border-radius: 8px;
  background: rgba(245,101,101,0.1);
  border: 1px solid rgba(245,101,101,0.25);
  color: var(--red);
  font-size: 12px;
  font-weight: 500;
}

/* Email confirmation message */
.online-confirmation-msg {
  text-align: center;
  padding: 20px 10px;
}

/* Cheat / violation warning */
.online-cheat-warning {
  background: rgba(245,101,101,0.08);
  border: 1px solid rgba(245,101,101,0.22);
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 11px;
  color: var(--red);
  margin-bottom: 8px;
}

/* Status bar button in topbar */
#online-status-bar {
  font-size: 11px;
  color: #6b7280;
  margin-right: 6px;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 6px;
  background: var(--gs);
  border: 1px solid var(--bd);
  transition: all 120ms;
  white-space: nowrap;
}
#online-status-bar:hover { background: var(--gs2); color: var(--t2); }

/* ── Profile redesign ── */
.online-modal-box { width: 380px; max-width: 95vw; padding: 0; overflow: hidden; }

.prof-header {
  position: relative;
  padding: 48px 20px 20px;
  overflow: hidden;
}
.prof-banner-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, color-mix(in srgb, var(--ac) 22%, transparent), transparent 65%);
  pointer-events: none;
}
/* fallback for browsers without color-mix */
@supports not (background: color-mix(in srgb, red 10%, blue)) {
  .prof-banner-bg { background: linear-gradient(160deg, rgba(255,255,255,0.05), transparent 65%); }
}
.prof-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
}
.prof-avatar-wrap {
  position: relative;
  z-index: 1;
  margin-bottom: 12px;
}
.prof-avatar {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  font-weight: 900;
  color: #fff;
  box-shadow: 0 6px 24px rgba(0,0,0,0.5);
  text-shadow: 0 2px 8px rgba(0,0,0,0.4);
  border: 3px solid rgba(255,255,255,0.15);
}
.prof-identity { position: relative; z-index: 1; }
.prof-username {
  font-size: 20px;
  font-weight: 900;
  color: var(--t1);
  letter-spacing: -.01em;
  margin-bottom: 3px;
}
.prof-username--admin {
  background: linear-gradient(90deg, #fbbf24, #f59e0b, #fde68a, #f59e0b, #fbbf24);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: admin-shine 3s linear infinite;
}
@keyframes admin-shine {
  0%   { background-position: 0% center; }
  100% { background-position: 200% center; }
}
.prof-admin-crown { font-style: normal; }
.prof-admin-badge {
  display: inline-block;
  background: linear-gradient(135deg, #78350f, #92400e);
  color: #fde68a;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .12em;
  padding: 2px 8px;
  border-radius: 4px;
  border: 1px solid #fbbf24;
  margin-bottom: 6px;
  text-transform: uppercase;
}
.prof-admin-rank {
  font-size: 12px;
  font-weight: 700;
  color: #fbbf24;
  letter-spacing: .06em;
}
.prof-since { font-size: 11px; color: var(--t3); margin-bottom: 6px; }
.prof-rank-area { min-height: 18px; }
.prof-rank-badge { font-size: 12px; font-weight: 700; }
.prof-rank-title { font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.prof-rank-loading { font-size: 11px; color: var(--t3); }
.prof-rank-none    { font-size: 11px; color: var(--t3); }
.prof-warnings { padding: 0 20px 4px; }

.prof-body { padding: 0 20px 20px; }
.prof-section-title {
  font-size: 10px;
  font-weight: 700;
  color: var(--t3);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin: 16px 0 8px;
}

/* Stats grid */
.prof-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.prof-stat-card {
  background: var(--gs);
  border: 1px solid var(--bd);
  border-radius: 12px;
  padding: 10px 6px 8px;
  text-align: center;
  transition: background 120ms;
}
.prof-stat-card:hover { background: var(--gs2); }
.prof-stat-icon { font-size: 16px; margin-bottom: 4px; }
.prof-stat-val  { font-size: 15px; font-weight: 800; color: var(--gold); margin-bottom: 3px; }
.prof-stat-label { font-size: 9px; color: var(--t3); text-transform: uppercase; letter-spacing: .04em; }

/* Infinite card */
.prof-infinite-card {
  background: var(--gs);
  border: 1px solid var(--bd2);
  border-radius: 14px;
  padding: 14px;
}
.prof-inf-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.prof-inf-label { font-size: 12px; color: var(--t2); }
.prof-inf-val   { font-size: 13px; color: var(--t1); }
.prof-inf-val b { color: var(--gold); }
.prof-wave-bar-bg {
  height: 6px;
  background: var(--gs3);
  border-radius: 99px;
  overflow: hidden;
  margin: 8px 0 4px;
}
.prof-wave-bar-fill {
  height: 100%;
  border-radius: 99px;
  transition: width 600ms var(--ease);
}
.prof-inf-hint { font-size: 10px; color: var(--t3); }

/* Footer */
.prof-footer { margin-top: 16px; display: flex; flex-direction: column; gap: 8px; }
.prof-sync-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.prof-sync-ts { font-size: 11px; color: var(--t3); }

/* ══════════════════════════════
   COMMUNITY MISSIONS Modal
══════════════════════════════ */

/* Hub button — Missões */
.hab--missions {
  background: linear-gradient(160deg, rgba(10,40,35,0.9), rgba(5,22,18,0.95));
  border-color: rgba(20,184,166,.45);
}
.hab--missions:hover {
  border-color: #14b8a6;
  background: linear-gradient(160deg, rgba(15,60,52,0.9), rgba(8,33,26,0.95));
  box-shadow: 0 18px 36px rgba(20,184,166,0.28);
}
.hab--missions .hab-label { color: #5eead4; }

/* Modal shell */
.missions-modal-box {
  width: 460px;
  max-width: 95vw;
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  max-height: 88vh;
}

/* Header */
.ms-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px 14px;
  border-bottom: 1px solid var(--bd);
  flex-shrink: 0;
}
.ms-header h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .04em;
}

/* Tabs */
.ms-tabs {
  display: flex;
  gap: 4px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--bd);
  flex-shrink: 0;
}
.ms-tab {
  flex: 1;
  padding: 8px 6px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--t3);
  background: var(--gs);
  border: 1px solid var(--bd);
  cursor: pointer;
  transition: all 130ms;
}
.ms-tab.active {
  color: var(--t1);
  background: var(--gs2);
  border-color: rgba(94,234,212,.4);
}
.ms-tab:hover:not(.active) { color: var(--t2); background: var(--gs2); }

/* Local / daily mission lists */
.ms-local-list {
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow-y: auto;
  max-height: calc(88vh - 160px);
}

/* Daily header: reset countdown + all-done badge */
.ms-daily-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 16px 4px;
  flex-shrink: 0;
}
.ms-daily-reset { font-size: 11px; color: var(--t3); }
.ms-daily-complete { font-size: 12px; color: #4ade80; font-weight: 700; }

/* Completed mission item */
.mission-done { opacity: .55; }
.mission-done .mission-fill { background: linear-gradient(90deg, #4ade80, #22d3ee); }

/* Community tab — update badge */
.ms-update-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: rgba(94,234,212,.15);
  border: 1px solid rgba(94,234,212,.35);
  color: #5eead4;
  border-radius: 99px;
  padding: 3px 10px;
  margin-bottom: 6px;
}

/* Random 5-star reward pill */
.ms-reward-random {
  background: linear-gradient(135deg, rgba(250,204,21,.18), rgba(251,146,60,.18));
  border-color: rgba(251,146,60,.45);
  color: #fde68a;
  font-weight: 800;
}

/* Completed top banner */
.ms-completed-banner {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  color: #000;
  text-align: center;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .05em;
  padding: 8px 16px;
  flex-shrink: 0;
}

/* Body */
.ms-body {
  padding: 18px 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow-y: auto;
}

.ms-title {
  font-size: 18px;
  font-weight: 900;
  color: var(--t1);
  line-height: 1.2;
}

.ms-desc {
  font-size: 13px;
  color: var(--t2);
  line-height: 1.5;
}

/* Progress bar */
.ms-progress-wrap {
  height: 14px;
  background: var(--gs);
  border-radius: 99px;
  overflow: hidden;
  border: 1px solid var(--bd);
}
.ms-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, #3b82f6, #8b5cf6);
  border-radius: 99px;
  transition: width 600ms var(--ease);
  min-width: 4px;
}

.ms-progress-labels {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: var(--t2);
  margin-top: -4px;
}

.ms-time-left {
  color: var(--t3);
  font-size: 11px;
}

/* Rewards */
.ms-rewards {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 13px;
}
.ms-reward-label { color: var(--t3); }
.ms-reward-gem {
  background: rgba(250,204,21,.12);
  border: 1px solid rgba(250,204,21,.3);
  color: #fde68a;
  border-radius: 6px;
  padding: 3px 9px;
  font-weight: 700;
}
.ms-reward-unit {
  background: var(--gs2);
  border: 1px solid var(--bd);
  color: var(--t2);
  border-radius: 6px;
  padding: 3px 9px;
  font-size: 12px;
}

/* Contribution */
.ms-contrib {
  font-size: 13px;
  color: var(--t2);
  background: var(--gs);
  border: 1px solid var(--bd);
  border-radius: 8px;
  padding: 8px 12px;
}
.ms-contrib strong { color: var(--t1); }
.ms-contrib--none { color: var(--t3); font-style: italic; }

/* Action buttons */
.ms-claim-btn {
  background: linear-gradient(135deg, #f59e0b, #b45309);
  color: #000;
  font-weight: 900;
  font-size: 15px;
  letter-spacing: .03em;
  padding: 12px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  transition: opacity 130ms, transform 100ms;
}
.ms-claim-btn:hover:not(:disabled) { opacity: .88; transform: translateY(-1px); }
.ms-claim-btn:disabled { opacity: .5; cursor: default; }

.ms-claimed-badge {
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  color: #4ade80;
  padding: 8px;
}

.ms-refresh-btn {
  background: var(--gs);
  color: var(--t3);
  border: 1px solid var(--bd);
  border-radius: 8px;
  padding: 8px;
  font-size: 12px;
  cursor: pointer;
  transition: background 130ms, color 130ms;
}
.ms-refresh-btn:hover { background: var(--gs2); color: var(--t2); }

/* Empty / loading states */
.ms-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 40px 20px;
  text-align: center;
  color: var(--t2);
  font-size: 14px;
}
.ms-empty-icon { font-size: 48px; line-height: 1; }
.ms-empty-sub  { font-size: 12px; color: var(--t3); margin-top: -4px; }
.ms-action-btn {
  margin-top: 8px;
  padding: 10px 24px;
  font-size: 14px;
}

.ms-loading {
  padding: 48px;
  text-align: center;
  color: var(--t3);
  font-size: 13px;
}

/* ── Event reward pill ───────────────────────────────────────────────────── */
.ms-reward-event {
  background: linear-gradient(135deg, rgba(167,139,250,.18), rgba(244,114,182,.18));
  border-color: rgba(167,139,250,.45);
  color: #e9d5ff;
  font-weight: 800;
}

/* Badge vermelho para updates sem versão definida */
.ms-update-badge--tbd {
  background: rgba(239,68,68,.15);
  border-color: rgba(239,68,68,.4);
  color: #fca5a5;
}

/* ── Em Breve section ────────────────────────────────────────────────────── */
.ms-upcoming-section {
  padding: 0 20px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ms-upcoming-header {
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--t3);
  border-top: 1px solid var(--bd);
  padding-top: 16px;
  margin-bottom: 2px;
}
.ms-upcoming-card {
  background: var(--gs);
  border: 1px solid var(--bd);
  border-radius: 12px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  opacity: .92;
}
.ms-upcoming-top {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ms-upcoming-badge {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: rgba(148,163,184,.15);
  border: 1px solid rgba(148,163,184,.3);
  color: #94a3b8;
  border-radius: 99px;
  padding: 3px 10px;
}
.ms-upcoming-title {
  font-size: 15px;
  font-weight: 800;
  color: var(--t1);
  line-height: 1.2;
}
.ms-upcoming-desc {
  font-size: 12px;
  color: var(--t3);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ms-upcoming-rewards {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ms-upcoming-countdown {
  font-size: 12px;
  color: var(--t3);
}
.ms-upcoming-countdown strong { color: var(--t2); }

/* Carrossel — navegação */
.ms-upcoming-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding-top: 4px;
}
.ms-upcoming-arrow {
  background: var(--gs2);
  border: 1px solid var(--bd);
  color: var(--t2);
  border-radius: 50%;
  width: 30px;
  height: 30px;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 120ms, color 120ms;
  padding: 0;
}
.ms-upcoming-arrow:hover:not(.ms-upcoming-arrow--disabled) {
  background: var(--gs3, #2a2a2a);
  color: var(--t1);
}
.ms-upcoming-arrow--disabled { opacity: .3; cursor: default; }
.ms-upcoming-dots { display: flex; gap: 6px; align-items: center; }
.ms-upcoming-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--bd);
  transition: background 200ms, transform 200ms;
}
.ms-upcoming-dot--active {
  background: var(--t2);
  transform: scale(1.25);
}

/* ── Nemesis card — visual especial ─────────────────────────────────────── */
.ms-upcoming-card--nemesis {
  background: linear-gradient(145deg, #060f08, #0c1e0e);
  border-color: rgba(74,222,128,.35);
  box-shadow: 0 0 22px rgba(74,222,128,.12), inset 0 0 28px rgba(74,222,128,.04);
  opacity: 1;
  animation: nemesis-glow 2.8s ease-in-out infinite;
}
@keyframes nemesis-glow {
  0%,100% { box-shadow: 0 0 16px rgba(74,222,128,.12); border-color: rgba(74,222,128,.3); }
  50%      { box-shadow: 0 0 32px rgba(74,222,128,.28); border-color: rgba(74,222,128,.65); }
}
.ms-upcoming-badge--nemesis {
  background: rgba(74,222,128,.15);
  border-color: rgba(74,222,128,.4);
  color: #4ade80;
}
.ms-upcoming-card--nemesis .ms-upcoming-title {
  font-size: 17px;
  color: #86efac;
  text-shadow: 0 0 12px rgba(74,222,128,.4);
}
.ms-upcoming-card--nemesis .ms-upcoming-desc { color: #6b7280; }
.ms-upcoming-card--nemesis .ms-upcoming-countdown { color: #4ade80; opacity: .8; }
.ms-upcoming-card--nemesis .ms-upcoming-countdown strong { color: #86efac; }
.ms-upcoming-reward--nemesis {
  background: linear-gradient(135deg, rgba(74,222,128,.15), rgba(34,197,94,.1));
  border-color: rgba(74,222,128,.4) !important;
  color: #4ade80 !important;
  font-weight: 900;
  text-shadow: 0 0 8px rgba(74,222,128,.3);
}

/* ── LOGIN SCREEN ─────────────────────────────────────────────────────────── */

.ls-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  gap: 24px;
}

.ls-logo {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ls-logo-star { font-size: 32px; }
.ls-logo-text {
  font-size: 22px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  background: linear-gradient(90deg, var(--gold) 0%, var(--orange) 50%, var(--purple) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.ls-card {
  width: 100%;
  max-width: 360px;
  background: rgba(10, 10, 26, 0.82);
  border: 1px solid var(--bd2);
  border-radius: var(--radius-xl);
  padding: 28px 24px 24px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.6);
}

/* tabs */
.ls-tabs {
  display: flex;
  gap: 4px;
  background: var(--gs);
  border: 1px solid var(--bd);
  border-radius: 10px;
  padding: 3px;
  margin-bottom: 20px;
}
.ls-tab {
  flex: 1;
  padding: 8px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--t3);
  background: transparent;
  border: none;
  transition: all 130ms var(--ease);
}
.ls-tab.active {
  background: linear-gradient(135deg, var(--blue), #2b6cb0);
  color: #fff;
  box-shadow: 0 2px 8px rgba(91,156,246,0.4);
}
.ls-tab:hover:not(.active) { color: var(--t2); background: var(--gs2); }

/* fields */
.ls-field { margin-bottom: 14px; }
.ls-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--t2);
  margin-bottom: 6px;
}
.ls-hint { font-weight: 400; text-transform: none; color: var(--t3); letter-spacing: 0; }
.ls-input {
  width: 100%;
  padding: 10px 13px;
  background: var(--gs2);
  border: 1px solid var(--bd2);
  border-radius: 10px;
  color: var(--t1);
  font-size: 14px;
  font-family: inherit;
  transition: border-color 120ms;
}
.ls-input:focus { border-color: var(--blue); outline: none; }
.ls-input::placeholder { color: var(--t3); }

/* error */
.ls-error {
  font-size: 12px;
  color: var(--red);
  background: rgba(245,101,101,.1);
  border: 1px solid rgba(245,101,101,.25);
  border-radius: 8px;
  padding: 8px 12px;
  margin-bottom: 12px;
}

/* buttons */
.ls-btn-primary {
  width: 100%;
  padding: 13px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #fff;
  background: linear-gradient(180deg, var(--blue) 0%, #2b6cb0 100%);
  border: none;
  border-bottom: 4px solid #1a365d;
  box-shadow: 0 4px 16px rgba(91,156,246,0.35);
  transition: all 120ms var(--ease);
  cursor: pointer;
}
.ls-btn-primary:hover:not(:disabled) { filter: brightness(1.1); transform: translateY(-1px); }
.ls-btn-primary:active:not(:disabled) { transform: translateY(2px); border-bottom-width: 1px; }
.ls-btn-primary:disabled { opacity: .55; cursor: default; }

.ls-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--t3);
  font-size: 11px;
  margin: 16px 0;
}
.ls-divider::before,.ls-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--bd);
}

.ls-btn-offline {
  width: 100%;
  padding: 11px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 700;
  color: var(--t2);
  background: var(--gs2);
  border: 1px solid var(--bd2);
  transition: all 120ms var(--ease);
  cursor: pointer;
}
.ls-btn-offline:hover { background: var(--gs3); color: var(--t1); border-color: var(--bd3); }

/* loading state */
.ls-loading {
  text-align: center;
  padding: 32px 0;
  color: var(--t3);
}
.ls-spinner { font-size: 32px; margin-bottom: 12px; animation: spin 1.5s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ══════════ GACHA ANIMATION ══════════ */
.gacha-anim-container {
  position: fixed; top: 0; left: 0; width: 100vw; height: 100vh;
  background: radial-gradient(circle at center, #110022 0%, #000000 100%);
  z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
  perspective: 1000px;
}

.gacha-bg-stars {
  position: absolute; inset: 0;
  background: repeating-radial-gradient(circle at center, transparent 0, transparent 40px, rgba(255, 255, 255, 0.03) 41px, transparent 42px);
  opacity: 0;
}
.gacha-anim-container.active .gacha-bg-stars {
  animation: warp-speed 2s linear infinite, fade-in 0.5s forwards;
}

@keyframes fade-in { to { opacity: 1; } }
@keyframes warp-speed {
  0% { transform: scale(1); }
  100% { transform: scale(3); }
}

.gacha-magic-circle {
  position: absolute;
  width: 500px; height: 500px;
  display: flex; align-items: center; justify-content: center;
  transform: rotateX(65deg) scale(0);
  opacity: 0;
}
.gacha-anim-container.active .gacha-magic-circle {
  animation: portal-open 1.5s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}
@keyframes portal-open {
  0% { transform: rotateX(70deg) rotateZ(0deg) scale(0); opacity: 0; }
  100% { transform: rotateX(65deg) rotateZ(180deg) scale(1); opacity: 1; }
}

.gacha-ring {
  position: absolute;
  border-radius: 50%;
  border: 2px solid currentColor;
  box-shadow: 0 0 30px currentColor, inset 0 0 30px currentColor;
  animation: spin-ring linear infinite;
}
.gacha-ring.r1 { width: 100%; height: 100%; border-width: 4px; border-style: dashed; animation-duration: 8s; }
.gacha-ring.r2 { width: 80%; height: 80%; border-width: 2px; animation-duration: 5s; animation-direction: reverse; }
.gacha-ring.r3 { width: 60%; height: 60%; border-width: 6px; border-style: dotted; animation-duration: 10s; }

@keyframes spin-ring {
  to { transform: rotate(360deg); }
}

.gacha-beam {
  position: absolute;
  bottom: 50%;
  width: 0; height: 150vh;
  background: linear-gradient(to top, currentColor, transparent);
  box-shadow: 0 0 60px currentColor;
  transform-origin: bottom center;
  opacity: 0;
}
.gacha-anim-container.flash-active .gacha-beam {
  animation: beam-shoot 0.8s ease-out forwards;
}
@keyframes beam-shoot {
  0% { width: 10px; opacity: 0; }
  20% { width: 250px; opacity: 1; }
  100% { width: 0px; opacity: 0; }
}

.gacha-meteor {
  position: absolute;
  width: 12px; height: 160px;
  background: currentColor;
  border-radius: 6px;
  box-shadow: 0 0 40px 15px currentColor;
  transform: rotate(-25deg) translateY(-150vh);
  opacity: 0;
}
.gacha-anim-container.active .gacha-meteor {
  animation: meteor-fall-epic 1.4s cubic-bezier(0.5, 0, 1, 1) forwards;
}
@keyframes meteor-fall-epic {
  0% { transform: rotate(-25deg) translateY(-150vh); opacity: 1; }
  85% { transform: rotate(-25deg) translateY(0); opacity: 1; width: 12px; height: 160px; border-radius: 6px; }
  100% { transform: rotate(-25deg) translateY(10vh); opacity: 0; width: 200px; height: 200px; border-radius: 50%; }
}

.gacha-shockwave {
  position: absolute;
  width: 10px; height: 10px;
  border-radius: 50%;
  border: 4px solid currentColor;
  opacity: 0;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
}
.gacha-anim-container.flash-active .gacha-shockwave {
  animation: shockwave-expand 1.2s cubic-bezier(0.1, 0.8, 0.3, 1) forwards;
}
@keyframes shockwave-expand {
  0% { width: 10px; height: 10px; opacity: 1; box-shadow: 0 0 40px currentColor, inset 0 0 40px currentColor; border-width: 40px; }
  100% { width: 150vw; height: 150vw; opacity: 0; border-width: 1px; box-shadow: 0 0 0 currentColor; }
}

.anim-red { color: #ef4444; }
.anim-red .gacha-bg-stars { background: repeating-radial-gradient(circle at center, transparent 0, transparent 40px, rgba(239, 68, 68, 0.15) 41px, transparent 42px); }
.anim-red .gacha-magic-circle { color: #ef4444; }

.anim-orange { color: #f97316; }
.anim-orange .gacha-bg-stars { background: repeating-radial-gradient(circle at center, transparent 0, transparent 40px, rgba(249, 115, 22, 0.15) 41px, transparent 42px); }
.anim-orange .gacha-magic-circle { color: #f97316; }

.anim-gold { color: #fbbf24; }
.anim-gold .gacha-bg-stars { background: repeating-radial-gradient(circle at center, transparent 0, transparent 40px, rgba(251, 191, 36, 0.15) 41px, transparent 42px); }
.anim-gold .gacha-magic-circle { color: #fbbf24; }

.gacha-flash {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: white; opacity: 0; pointer-events: none;
}
.gacha-anim-container.flash-active .gacha-flash {
  animation: flash-bang 1.5s ease-out forwards;
}
@keyframes flash-bang {
  0% { opacity: 0; }
  15% { opacity: 1; }
  100% { opacity: 0; }
}
