/* ════════════════════════════════════════════════════
   TAB 2 — CAPSULES + SLOT MACHINE
════════════════════════════════════════════════════ */

.caps-intro{
  padding:8px 18px 4px;
  font-size:12px; color:var(--text-dim); line-height:1.7;
}

.caps-grid{
  display:flex; flex-direction:column; gap:9px;
  padding:14px 18px 24px;
}
.cap-card{
  display:flex; align-items:center; gap:14px;
  background:linear-gradient(135deg, var(--surface), var(--surface2));
  border-radius:22px; padding:10px 16px 10px 10px;
  cursor:pointer; transition:all .2s;
  border:1.5px solid var(--border);
  position:relative; overflow:hidden;
}
.cap-card:active{ transform:scale(.98); }
.cap-card::before{
  content:''; position:absolute; inset:0;
  background:radial-gradient(circle at 0% 50%, var(--glow,transparent), transparent 60%);
  opacity:.4; pointer-events:none;
}

/* Tier colors */
.cap-card.t1{ --glow:rgba(180,180,200,.2); border-color:rgba(180,180,200,.25); }
.cap-card.t2{ --glow:rgba(0,152,234,.25);  border-color:rgba(0,152,234,.3); }
.cap-card.t3{ --glow:rgba(0,229,160,.25);  border-color:rgba(0,229,160,.3); }
.cap-card.t4{ --glow:rgba(255,209,102,.3); border-color:rgba(255,209,102,.35); }
.cap-card.t5{ --glow:rgba(255,159,28,.3);  border-color:rgba(255,159,28,.35); }
.cap-card.t6{ --glow:rgba(168,85,247,.3);  border-color:rgba(168,85,247,.35); }
.cap-card.t7{ --glow:rgba(255,61,107,.3);  border-color:rgba(255,61,107,.35); }
.cap-card.t8{ --glow:rgba(255,61,107,.4);  border-color:rgba(255,61,107,.5); }
.cap-card.t9{
  --glow:rgba(255,184,0,.4);
  border-color:rgba(255,184,0,.55);
  background:linear-gradient(135deg, #1a1505, #0e0a02);
  box-shadow:0 0 20px rgba(255,184,0,.1);
}
.cap-card.t-nft{
  --glow:rgba(255,209,102,.5);
  border-color:rgba(255,209,102,.55);
  background:linear-gradient(135deg, #1a1428, #100a18);
  box-shadow:0 0 28px rgba(255,209,102,.18);
}

.cap-svg-wrap{
  width:72px; height:72px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.5));
}
.cap-svg-wrap img{
  width:100%; height:100%; object-fit:contain;
}

.cap-info{ flex:1; min-width:0; }
.cap-name{
  font-family:'Bebas Neue'; font-size:19px; letter-spacing:1.5px; line-height:1;
}
.cap-desc{
  font-size:10px; color:var(--text-dim); margin-top:3px; font-weight:500;
}

.cap-right{ text-align:right; flex-shrink:0; }
.cap-price{
  display:flex; align-items:center; justify-content:flex-end; gap:4px;
  font-family:'Bebas Neue'; font-size:22px; color:var(--star); line-height:1;
}
.cap-max{
  font-size:9px; color:var(--muted); margin-top:3px; letter-spacing:.5px;
}

/* ═══════════════════════════════════════════════════════
   REDESIGN — Hero card + 2-column grid
═══════════════════════════════════════════════════════ */

/* ── Hero featured card (ежедневная) ── */
.caps-hero {
  position: relative;
  border-radius: 22px;
  padding: 20px 14px 20px 20px;
  display: flex; align-items: center;
  justify-content: space-between;
  overflow: hidden; cursor: pointer;
  background: linear-gradient(160deg, rgba(255,184,0,.09) 0%, rgba(7,13,26,.97) 60%);
  border: 1.5px solid rgba(255,184,0,.4);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 0 32px rgba(255,184,0,.1);
  transition: transform .18s cubic-bezier(.4,0,.2,1), box-shadow .18s;
}
.caps-hero:active {
  transform: scale(.98);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 20px rgba(255,184,0,.12);
}
.caps-hero::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 0% 50%, rgba(255,184,0,.15), transparent 65%);
  pointer-events: none;
}
.caps-hero.tier-daily {
  border-color: rgba(255,184,0,.42);
}

.caps-hero-left { flex: 1; min-width: 0; position: relative; z-index: 1; }

.caps-hero-badge {
  display: inline-block;
  font-size: 10px; font-weight: 800;
  letter-spacing: 1.5px; text-transform: uppercase;
  margin-bottom: 9px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(255,184,0,.14);
  border: 1px solid rgba(255,184,0,.32);
}
.caps-hero-title {
  font-family: 'Bebas Neue';
  font-size: 36px; letter-spacing: 2px;
  color: #fff; line-height: 1; margin-bottom: 8px;
  text-shadow: 0 0 18px rgba(255,184,0,.4);
}
.caps-hero-desc {
  font-size: 12px; color: var(--text-dim);
  line-height: 1.55; margin-bottom: 14px;
}
.caps-hero-action {
  position: relative;
  overflow: hidden;
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 800;
  padding: 8px 18px;
  border-radius: 999px;
  background: linear-gradient(180deg, #FFC93C 0%, #FFB800 100%);
  color: #1a1206;
  box-shadow: 0 3px 10px rgba(255,184,0,.3), inset 0 1px 0 rgba(255,255,255,.25);
}
.caps-hero-action::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,.55) 50%, transparent 60%);
  background-size: 220% 100%;
  animation: caps-hero-action-shine 3s ease-in-out infinite;
}
@keyframes caps-hero-action-shine { 0% { background-position: 130% 0; } 55%, 100% { background-position: -30% 0; } }
.caps-hero-img {
  width: 110px; height: 110px;
  object-fit: contain; flex-shrink: 0; margin-left: 6px;
  animation: capFloat 3.6s ease-in-out infinite;
  animation-delay: -1.2s;
  will-change: transform, filter;
}

/* ── Section header ── */
.caps-section-hdr {
  display: flex; align-items: center;
  justify-content: space-between;
  padding: 0 2px; margin-top: 4px;
  font-size: 11px; font-weight: 700;
  letter-spacing: 2px; color: var(--text-dim);
}
.caps-count {
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50px; padding: 2px 10px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  font-size: 12px; color: #9CA3AF;
  letter-spacing: 0; font-weight: 700;
}

/* ── 2-column grid ── */
.caps-grid-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.cap-card-v2 {
  background: linear-gradient(160deg, rgba(255,255,255,.05) 0%, rgba(14,14,26,.97) 55%);
  border: 1.5px solid rgba(255,255,255,.08);
  border-radius: 20px;
  padding: 18px 12px 12px;
  display: flex; flex-direction: column;
  align-items: center; cursor: pointer;
  position: relative; overflow: hidden;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 4px 18px rgba(0,0,0,.35);
  transition: transform .18s cubic-bezier(.4,0,.2,1), box-shadow .18s;
}
.cap-card-v2::before {
  content: '';
  position: absolute;
  top: -10px; left: 18%; right: 18%; height: 18px;
  border-radius: 999px;
  background: var(--tier-glow, transparent);
  filter: blur(10px);
  opacity: .6;
  pointer-events: none;
}
.cap-card-v2:active {
  transform: scale(.97);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 2px 10px rgba(0,0,0,.4);
}

.cap-card-v2.tier-bronze    { border-color: rgba(205,127,50,.4); }
.cap-card-v2.tier-common    { border-color: rgba(156,163,175,.32); }
.cap-card-v2.tier-uncommon  { border-color: rgba(74,222,128,.36); }
.cap-card-v2.tier-rare      { border-color: rgba(96,165,250,.36); }
.cap-card-v2.tier-epic      { border-color: rgba(192,132,252,.38); }
.cap-card-v2.tier-legendary {
  border-color: rgba(251,146,60,.46);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 0 22px rgba(251,146,60,.12);
}

.cap-v2-img {
  width: 100%; height: 100px;
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 10px;
}
.cap-v2-img img {
  width: 76px; height: 76px; object-fit: contain;
  animation: capFloat 3.2s ease-in-out infinite;
  will-change: transform, filter;
}
@keyframes capFloat {
  0%, 100% {
    transform: translateY(0px);
    filter: drop-shadow(0 4px 10px rgba(0,0,0,.5))
            drop-shadow(0 0 5px var(--tier-glow, transparent));
  }
  50% {
    transform: translateY(-7px);
    filter: drop-shadow(0 8px 16px rgba(0,0,0,.3))
            drop-shadow(0 0 14px var(--tier-glow, transparent));
  }
}
/* ── Ромбики-индикаторы редкости (заменили текстовое название тира) ── */
.cap-v2-rank {
  display: flex; align-items: center; justify-content: center;
  gap: 4px; margin-bottom: 10px;
}
.cap-v2-rank-dot {
  width: 6px; height: 6px; border-radius: 1.5px;
  transform: rotate(45deg);
  background: rgba(255,255,255,.12);
  flex-shrink: 0;
}
.cap-v2-rank-dot.filled {
  background: currentColor;
  box-shadow: 0 0 5px currentColor;
}
.cap-v2-range-row {
  display: flex; align-items: center; justify-content: center;
  gap: 4px; flex-wrap: nowrap;
  margin-bottom: 10px;
}
.cap-v2-range {
  display: flex; align-items: center; gap: 3px;
  font-size: 9px; font-weight: 800; letter-spacing: .01em;
  text-align: center; white-space: nowrap;
  padding: 3px 7px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.05);
  color: #9CA3AF;
}
.cap-v2-range-icon { width: 10px; height: 10px; flex-shrink: 0; }
.cap-card-v2.tier-bronze    .cap-v2-range { color: #CD7F32; border-color: rgba(205,127,50,.4);   background: rgba(205,127,50,.08); }
.cap-card-v2.tier-common    .cap-v2-range { color: #9CA3AF; border-color: rgba(156,163,175,.38); background: rgba(156,163,175,.08); }
.cap-card-v2.tier-uncommon  .cap-v2-range { color: #4ADE80; border-color: rgba(74,222,128,.4);   background: rgba(74,222,128,.08); }
.cap-card-v2.tier-rare      .cap-v2-range { color: #60A5FA; border-color: rgba(96,165,250,.4);   background: rgba(96,165,250,.08); }
.cap-card-v2.tier-epic      .cap-v2-range { color: #C084FC; border-color: rgba(192,132,252,.42); background: rgba(192,132,252,.08); }
.cap-card-v2.tier-legendary .cap-v2-range { color: #FB923C; border-color: rgba(251,146,60,.45);  background: rgba(251,146,60,.1); }
.cap-v2-btn {
  position: relative;
  overflow: hidden;
  width: 100%; padding: 10px 0;
  background: linear-gradient(180deg, #FFC93C 0%, #FFB800 100%);
  border: none;
  border-radius: 999px;
  color: #1a1206;
  font-family: 'Bebas Neue'; font-size: 18px;
  letter-spacing: 1px; cursor: pointer;
  box-shadow: 0 3px 10px rgba(255,184,0,.28), inset 0 1px 0 rgba(255,255,255,.25);
  transition: background .15s, transform .1s;
}
.cap-v2-btn::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,.55) 50%, transparent 60%);
  background-size: 220% 100%;
  animation: cap-v2-btn-shine 3s ease-in-out infinite;
}
@keyframes cap-v2-btn-shine {
  0%   { background-position: 130% 0; }
  55%, 100% { background-position: -30% 0; }
}
.cap-v2-btn:active { transform: scale(.97); }
.cap-v2-nft-hint {
  position: relative;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center; gap: 3px;
  padding: 3px 7px;
  background: linear-gradient(135deg, rgba(255,215,0,.16), rgba(255,150,0,.06));
  border: 1px solid rgba(255,215,0,.38);
  border-radius: 999px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 0 12px rgba(255,180,0,.16);
  font-size: 9px; letter-spacing: .04em; line-height: 1;
  flex-shrink: 0;
}
.cap-v2-nft-hint::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,.45) 50%, transparent 60%);
  background-size: 220% 100%;
  animation: cap-nft-hint-shine 3.2s ease-in-out infinite;
}
@keyframes cap-nft-hint-shine {
  0%   { background-position: 130% 0; }
  55%, 100% { background-position: -30% 0; }
}
.cap-v2-nft-hint b {
  color: #FFD700;
  font-weight: 800;
  text-shadow: 0 0 8px rgba(255,215,0,.4);
}
.cap-v2-nft-hint-icon {
  width: 11px; height: 11px; flex-shrink: 0;
  color: #FFD700;
  filter: drop-shadow(0 0 4px rgba(255,215,0,.5));
}

/* ── SLOT MACHINE OVERLAY ── */
.cap-overlay{
  position:fixed; inset:0; z-index:200;
  background:rgba(2,2,8,.96);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition:opacity .35s;
  backdrop-filter:blur(20px);
}
.cap-overlay.show{ opacity:1; pointer-events:all; }

.slot-cap-name{
  font-family:'Bebas Neue'; font-size:22px; letter-spacing:4px;
  color:var(--text-dim); margin-bottom:20px; text-transform:uppercase;
}

.slot-machine{
  position:relative; width:320px;
  background:var(--surface); border:2px solid var(--border);
  border-radius:22px; overflow:hidden;
  box-shadow:0 0 60px rgba(255,184,0,.1), inset 0 1px 0 rgba(255,255,255,.04);
}
.slot-machine::before,
.slot-machine::after{
  content:''; position:absolute; left:0; right:0;
  height:70px; z-index:10; pointer-events:none;
}
.slot-machine::before{ top:0; background:linear-gradient(to bottom, var(--surface), transparent); }
.slot-machine::after { bottom:0; background:linear-gradient(to top, var(--surface), transparent); }

.slot-line{
  position:absolute; top:50%; left:0; right:0; transform:translateY(-50%);
  height:76px; z-index:9; pointer-events:none;
  border-top:2px solid var(--star); border-bottom:2px solid var(--star);
  background:rgba(255,184,0,.05);
}
.slot-line::before,
.slot-line::after{
  content:'▶'; position:absolute; top:50%; transform:translateY(-50%);
  color:var(--star); font-size:16px;
}
.slot-line::before{ left:12px; }
.slot-line::after { content:'◀'; right:12px; }

.slot-viewport{ height:228px; overflow:hidden; position:relative; }
.slot-reel{ display:flex; flex-direction:column; align-items:center; will-change:transform; }
.slot-item{
  width:320px; height:76px;
  display:flex; align-items:center; justify-content:center; gap:14px;
  flex-shrink:0;
}
.slot-item-emoji{ font-size:34px; line-height:1; }
.slot-item-val{
  font-family:'Bebas Neue'; font-size:32px; letter-spacing:2px;
  color:var(--star); text-shadow:0 0 16px rgba(255,184,0,.4);
}
.slot-item-label{
  font-size:10px; color:var(--muted); font-weight:700; letter-spacing:1px;
}
.slot-item.win-flash{ animation:winFlash .5s ease 3; }
@keyframes winFlash{ 0%,100%{background:transparent} 50%{background:rgba(255,184,0,.15)} }

.cap-result{
  text-align:center; margin-top:22px;
  animation:fadeUp .4s ease;
}
@keyframes fadeUp{
  from{ opacity:0; transform:translateY(10px); }
  to  { opacity:1; transform:translateY(0); }
}
.cap-result-emoji{ font-size:48px; line-height:1; }
.cap-result-title{
  font-family:'Bebas Neue'; font-size:28px; letter-spacing:3px;
  color:var(--star); margin-top:6px;
}
.cap-result-amount{
  font-family:'Bebas Neue'; font-size:64px; color:var(--win);
  letter-spacing:2px; line-height:1;
  text-shadow:0 0 30px rgba(0,229,160,.5);
}
.cap-result-sub{ font-size:11px; color:var(--text-dim); margin-top:5px; }
.cap-result-btn{
  margin-top:20px; padding:14px 42px;
  background:linear-gradient(135deg,var(--star),#e09000);
  border:none; border-radius:var(--r); color:#111;
  font-family:'Bebas Neue'; font-size:19px; letter-spacing:2px; cursor:pointer;
  box-shadow:0 6px 24px rgba(255,184,0,.35);
}

.spinning-label{
  font-family:'Bebas Neue'; font-size:18px; letter-spacing:2px;
  color:var(--muted); margin-top:14px;
  opacity:0; transition:opacity .3s;
}
.spinning-label.show{ opacity:1; }

/* ── CAPSULE PREVIEW OVERLAY (показ наград перед открытием) ── */
.cap-preview-overlay{
  position:fixed; inset:0; z-index:180;
  background:rgba(2,2,8,.94);
  backdrop-filter:blur(20px);
  display:flex; flex-direction:column;
  align-items:center; justify-content:flex-start;
  padding:30px 20px;
  opacity:0; pointer-events:none;
  transition:opacity .3s;
  overflow-y:auto;
}
.cap-preview-overlay.show{ opacity:1; pointer-events:all; }

.cp-close{
  position:absolute; top:14px; right:14px;
  width:36px; height:36px; border-radius:50%;
  background:var(--surface);
  border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:18px;
  color:var(--text-dim);
}

.cp-image{
  width:140px; height:140px; margin-top:10px;
  filter:drop-shadow(0 8px 24px rgba(255,209,102,.3));
  animation:cpFloat 3s ease-in-out infinite;
}
@keyframes cpFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}

.cp-name{
  font-family:'Bebas Neue'; font-size:32px; letter-spacing:3px;
  margin-top:14px; text-align:center;
}
.cp-desc{
  font-size:13px; color:var(--text-dim);
  margin-top:4px; text-align:center;
}

.cp-rewards-title{
  font-size:11px; color:var(--muted); letter-spacing:2px;
  text-transform:uppercase; font-weight:700;
  margin:20px 0 10px;
}

.cp-rewards-list{
  width:100%; max-width:340px;
  display:flex; flex-direction:column; gap:6px;
}

.reward-row{
  display:flex; align-items:center; gap:14px;
  padding:14px 16px;
  background:var(--surface);
  border:1px solid var(--border-soft);
  border-radius:14px;
  position:relative;
  transition:transform .15s;
}
.reward-row.is-jackpot{
  background:linear-gradient(135deg, rgba(255,184,0,.12), rgba(255,61,107,.08));
  border-color:rgba(255,184,0,.4);
  box-shadow:0 0 24px rgba(255,184,0,.15);
}

.reward-emoji-box{
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.04);
  border:1px solid var(--border);
  border-radius:12px;
  font-size:22px;
  flex-shrink:0;
}
.reward-row.is-jackpot .reward-emoji-box{
  background:rgba(255,184,0,.15);
  border-color:rgba(255,184,0,.4);
}

.reward-info{
  flex:1; min-width:0;
}
.reward-stars{
  font-family:'Bebas Neue'; font-size:22px;
  letter-spacing:1.5px; color:var(--gold); line-height:1;
}
.reward-tier{
  font-size:10px; color:var(--text-dim);
  margin-top:3px; letter-spacing:.5px;
  text-transform:lowercase;
}

.reward-jackpot-badge{
  background:linear-gradient(135deg, var(--star), #FF3D6B);
  color:#fff;
  font-size:9px; font-weight:700; letter-spacing:1.5px;
  padding:4px 10px; border-radius:50px;
  flex-shrink:0;
}

.cp-open-btn{
  margin-top:24px;
  width:100%; max-width:340px;
  padding:16px;
  background:linear-gradient(135deg, var(--star), #e09000);
  border:none; border-radius:16px;
  color:#111;
  font-family:'Bebas Neue'; font-size:22px; letter-spacing:3px;
  cursor:pointer;
  box-shadow:0 8px 28px rgba(255,184,0,.4);
  display:flex; align-items:center; justify-content:center; gap:10px;
}
.cp-open-btn:active{ transform:scale(.97); }

.cp-price-tag{
  display:inline-flex; align-items:center; gap:5px;
  background:rgba(0,0,0,.25); padding:4px 10px;
  border-radius:50px; font-size:18px;
}

.btn-delete-nft {
  background: rgba(255,60,60,.15);
  border: 1px solid rgba(255,60,60,.35);
  color: #ff5555;
  border-radius: 8px;
  padding: 4px 8px;
  font-size: 16px;
  cursor: pointer;
  margin-top: 6px;
  line-height: 1;
}
.btn-delete-nft:active { background: rgba(255,60,60,.3); }

/* ── Durov's Cap visual sector ── */
.co-durov-cap {
  position: absolute;
  right: 3%;
  top: 0;
  height: 52px;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 6;
  pointer-events: none;
}
.co-durov-line {
  width: 2px;
  height: 52px;
  background: linear-gradient(180deg, transparent 0%, #FFD700 30%, #FFD700 70%, transparent 100%);
  box-shadow: 0 0 6px #FFD700aa;
}
.co-durov-badge {
  position: absolute;
  top: -28px;
  left: 50%;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #92700a, #FFD700, #92700a);
  border-radius: 8px;
  padding: 3px 6px;
  display: flex;
  align-items: center;
  gap: 3px;
  white-space: nowrap;
  box-shadow: 0 0 10px #FFD70066;
  animation: capGlow 2s ease-in-out infinite;
}
.co-durov-badge span {
  font-size: 8px;
  font-weight: 900;
  color: #1a0f00;
  letter-spacing: 1px;
}
@keyframes capGlow {
  0%, 100% { box-shadow: 0 0 8px #FFD70066; }
  50%       { box-shadow: 0 0 18px #FFD700cc, 0 0 30px #FFD70044; }
}

/* ── Горизонтальная шкала — заменяет CS:GO-полосу при открытии капсулы ──
   Полоса от красного (мин. награда) до зелёного (макс.), указатель мечется
   и останавливается на выигрыше. У легендарных сундуков — золотая
   микро-зона NFT у правого края (чисто декоративная приманка). ── */
.cg-row{ display:flex; align-items:flex-start; justify-content:center; gap:22px; flex-wrap:wrap; }
.cg-wrap{ width:var(--cg-w, 280px); }
.cg-bar-box{ position:relative; width:var(--cg-w, 280px); height:16px; margin-top:26px; }
.cg-bar{
  position:absolute; inset:0; border-radius:50px; overflow:hidden;
  background:linear-gradient(90deg, #EF4444 0%, #F59E0B 38%, #FFC83A 58%, #4ADE80 100%);
  box-shadow:0 0 18px rgba(0,0,0,.35) inset, 0 2px 10px rgba(0,0,0,.3);
}
.cg-nft-ring{
  position:absolute; top:0; right:4%; height:100%; width:7%;
  border-radius:4px;
  background:#FFD700; filter:drop-shadow(0 0 6px #FFD700cc);
  animation:capGlow 2s ease-in-out infinite;
  display:none;
}
.cg-nft-ring.show{ display:block; }
.cg-nft-tag{
  position:absolute; top:50%; right:4%; width:7%;
  transform:translateY(-50%);
  text-align:center; white-space:nowrap; line-height:1;
  font-size:7px; font-weight:900; letter-spacing:.2px; color:#1a0f00;
  z-index:5; pointer-events:none;
  display:none;
}
.cg-nft-tag.show{ display:block; }
.cg-needle{
  position:absolute; top:50%; left:0%;
  width:7px; height:32px;
  background:linear-gradient(180deg,#fff 0%,#eef2ff 55%,#c7d2fe 100%);
  border-radius:5px; transform:translate(-50%,-50%);
  box-shadow:0 0 10px rgba(255,255,255,.85), 0 0 22px rgba(255,255,255,.45), inset 0 0 3px rgba(0,0,0,.15);
  z-index:6;
}
.cg-needle.cg-needle-stop{ animation:cgStopPulse .45s ease; }
@keyframes cgStopPulse{
  0%   { transform:translate(-50%,-50%) scaleY(1); }
  35%  { transform:translate(-50%,-50%) scaleY(1.55); box-shadow:0 0 16px #fff, 0 0 42px rgba(255,255,255,.8); }
  100% { transform:translate(-50%,-50%) scaleY(1); }
}
.cg-ticks-row{ display:flex; justify-content:space-between; width:var(--cg-w, 280px); margin-top:8px; padding:0 2px; }
.cg-tick{ font-size:9px; font-weight:700; font-family:'Space Mono',monospace; }
.cg-tick.cg-tick-min{ color:#EF4444; }
.cg-tick.cg-tick-max{ color:#4ADE80; }
.cg-value{
  text-align:center; margin-top:10px;
  font-family:'Bebas Neue'; font-size:34px;
  letter-spacing:1px; color:#fff; line-height:1;
  text-shadow:0 0 18px rgba(255,255,255,.25);
}
.cg-range-label{
  text-align:center; margin-top:2px;
  font-size:9px; font-weight:700; letter-spacing:1.5px; color:#5a5a78;
}
