/* ============================================================
   NFT РУЛЕТКА — Telegram Mini App  ·  Design tokens & base
   Тёмная мягкая тема (скрины 1–2), синий Telegram-акцент.
   ============================================================ */
:root{
  --bg:#000000;
  --surface:#1c1c1e;        /* карточки */
  --surface-2:#2c2c2e;      /* вложенные блоки */
  --surface-3:#3a3a3c;      /* нажатые/третичные */
  --hairline:rgba(255,255,255,.08);
  --hairline-strong:rgba(255,255,255,.14);

  --text:#ffffff;
  --text-sec:rgba(235,235,245,.6);
  --text-ter:rgba(235,235,245,.32);

  --accent:#2f8eff;         /* Telegram blue */
  --accent-press:#2374df;
  --accent-grad:linear-gradient(180deg,#48a0ff 0%,#2b80ff 100%);
  --accent-soft:rgba(47,142,255,.16);

  --star:#f6b73c;           /* Telegram Stars */
  --star-grad:linear-gradient(180deg,#ffd35a,#f3a92b);
  --ton:#36a8ee;            /* TON diamond */
  --green:#34c759;
  --red:#ff453a;

  /* rarity */
  --r-common:#7d8896;
  --r-uncommon:#4a9eff;
  --r-rare:#9d6bff;
  --r-epic:#e85aff;
  --r-legendary:#ffb340;

  --radius-card:22px;
  --radius-lg:28px;
  --radius-sm:14px;
  --radius-pill:999px;

  --nav-h:74px;
  --ease:cubic-bezier(.22,.61,.36,1);

  --font:-apple-system,"SF Pro Display","SF Pro Text",system-ui,"Segoe UI",sans-serif;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;height:100%;}
body{
  font-family:var(--font);
  background:#0a0a0c;
  background-image:radial-gradient(120% 80% at 50% -10%, #16171c 0%, #0a0a0c 60%);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  display:flex;align-items:center;justify-content:center;min-height:100vh;
  overflow:hidden;
}
#root{display:flex;align-items:center;justify-content:center;}

/* ---- app shell inside the device ------------------------------------ */
.app{
  position:relative;height:100%;
  padding-top:54px;            /* очистка статус-бара фрейма */
  display:flex;flex-direction:column;
  background:var(--bg);
  overflow:hidden;
  font-family:var(--font);
}
.screen{
  flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  padding:0 16px calc(var(--nav-h) + 30px);
  animation:screenIn .36s var(--ease);
}
@keyframes screenIn{from{transform:translateY(14px) scale(.985)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.screen{animation:none}}
.screen::-webkit-scrollbar{display:none;}

/* ---- Telegram header ------------------------------------------------- */
.tg-head{
  flex:0 0 auto;
  padding:8px 14px 10px;
  display:flex;align-items:center;gap:10px;
  position:relative;z-index:6;
}
.tg-pill{
  height:34px;border-radius:var(--radius-pill);
  display:inline-flex;align-items:center;gap:7px;
  padding:0 13px;background:var(--surface-2);
  font-weight:600;font-size:14.5px;color:var(--text);
  border:none;cursor:pointer;white-space:nowrap;
}
.tg-pill.icon{padding:0;width:34px;justify-content:center;}
.bal-pill{
  height:34px;border-radius:var(--radius-pill);
  display:inline-flex;align-items:center;gap:6px;padding:0 12px 0 10px;
  background:var(--surface-2);font-weight:700;font-size:14.5px;cursor:pointer;
}
.bal-pill .v{font-variant-numeric:tabular-nums;}

/* ---- generic ui ------------------------------------------------------ */
.h1{font-size:30px;font-weight:800;letter-spacing:-.5px;margin:6px 2px 2px;}
.h2{font-size:21px;font-weight:700;letter-spacing:-.3px;margin:0;}
.sub{color:var(--text-sec);font-size:15px;margin:4px 2px 0;font-weight:500;}
.section-row{display:flex;align-items:center;justify-content:space-between;margin:22px 2px 12px;}
.section-row .h2{font-size:19px;}
.link{color:var(--accent);font-weight:600;font-size:14px;cursor:pointer;}

.btn{
  border:none;cursor:pointer;font-family:var(--font);font-weight:700;
  border-radius:var(--radius-pill);color:#fff;font-size:17px;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  transition:transform .12s var(--ease),filter .12s var(--ease);
}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--accent-grad);box-shadow:0 8px 22px rgba(47,142,255,.35);}
.btn-primary:active{filter:brightness(.95);}
.btn-block{width:100%;height:54px;}
.btn-ghost{background:var(--surface-2);color:var(--text);}
.btn-gold{background:var(--star-grad);color:#3a2700;box-shadow:0 8px 22px rgba(243,169,43,.3);}
.btn:disabled{opacity:.45;filter:grayscale(.3);pointer-events:none;}

.card{background:var(--surface);border-radius:var(--radius-card);}

/* currency glyphs */
.cur{display:inline-flex;align-items:center;gap:5px;font-variant-numeric:tabular-nums;font-weight:700;}
.star-ic{filter:drop-shadow(0 1px 2px rgba(243,169,43,.5));}

/* rarity dot/labels */
.rarity-tag{
  font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;
  padding:3px 7px;border-radius:7px;
}

/* ---- bottom navigation ---------------------------------------------- */
.nav-wrap{
  position:absolute;left:0;right:0;bottom:0;z-index:30;
  padding:0 14px 26px;
  display:flex;align-items:center;gap:10px;
  pointer-events:none;
}
.nav-pill{
  pointer-events:auto;
  flex:1;height:var(--nav-h);
  background:rgba(28,28,30,.82);
  backdrop-filter:blur(22px) saturate(180%);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  border:.5px solid var(--hairline-strong);
  border-radius:30px;
  display:flex;align-items:center;justify-content:space-around;
  padding:0 6px;
  box-shadow:0 12px 34px rgba(0,0,0,.5);
}
.nav-item{
  flex:1;height:100%;border:none;background:none;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  color:var(--text-ter);font-family:var(--font);font-size:11px;font-weight:600;
  transition:color .15s var(--ease);position:relative;
}
.nav-item.active{color:var(--accent);}
.nav-item svg{width:25px;height:25px;}
.nav-badge{
  position:absolute;top:9px;right:50%;margin-right:-21px;
  min-width:16px;height:16px;border-radius:9px;background:var(--red);
  color:#fff;font-size:10px;font-weight:800;
  display:flex;align-items:center;justify-content:center;padding:0 4px;
  border:2px solid #1c1c1e;
}
.nav-avatar{
  pointer-events:auto;
  width:var(--nav-h);height:var(--nav-h);flex:0 0 auto;
  border-radius:50%;border:.5px solid var(--hairline-strong);
  background:rgba(28,28,30,.82);
  backdrop-filter:blur(22px) saturate(180%);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  box-shadow:0 12px 34px rgba(0,0,0,.5);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  padding:0;overflow:hidden;position:relative;transition:transform .15s var(--ease);
}
.nav-avatar:active{transform:scale(.94);}
.nav-avatar img{width:54px;height:54px;border-radius:50%;object-fit:cover;}
.nav-avatar.active{box-shadow:0 0 0 2.5px var(--accent),0 12px 34px rgba(0,0,0,.5);}

/* ---- bottom sheet / modal ------------------------------------------- */
.sheet-backdrop{
  position:absolute;inset:0;z-index:40;background:rgba(0,0,0,.6);
  backdrop-filter:blur(2px);
  display:flex;flex-direction:column;justify-content:flex-end;
}
.sheet{
  background:#161618;border-top-left-radius:var(--radius-lg);
  border-top-right-radius:var(--radius-lg);
  border-top:.5px solid var(--hairline-strong);
  padding:10px 18px calc(26px + env(safe-area-inset-bottom));
  animation:slideup .32s var(--ease);
  max-height:86%;overflow-y:auto;
}
.sheet::-webkit-scrollbar{display:none;}
.sheet-grip{width:38px;height:5px;border-radius:3px;background:var(--surface-3);margin:0 auto 14px;}
.center-modal{
  position:absolute;inset:0;z-index:45;background:rgba(0,0,0,.72);
  backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;padding:24px;
}

@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes slideup{from{transform:translateY(40px)}to{transform:translateY(0)}}
@keyframes pop{0%{transform:scale(.86)}60%{transform:scale(1.05)}100%{transform:scale(1)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes spinGlow{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}

/* shared gift tile glow */
.tile-glow{position:absolute;inset:0;border-radius:inherit;opacity:.9;}

/* dev annotation */
.dev-fab{
  position:absolute;left:14px;bottom:118px;z-index:55;
  height:38px;padding:0 14px;border-radius:var(--radius-pill);
  background:#0f1f17;border:1px solid #1f5c3f;color:#3ddc84;
  font-family:var(--font);font-weight:800;font-size:12.5px;letter-spacing:.3px;
  display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  box-shadow:0 8px 20px rgba(0,0,0,.4);
}
.dev-fab.on{background:#123, ;background:#0f2740;border-color:#2f8eff;color:#7cc0ff;}
.dev-pin{
  position:absolute;z-index:25;min-width:20px;height:20px;border-radius:10px;
  background:#1f8a4d;color:#fff;font-size:11px;font-weight:800;
  display:flex;align-items:center;justify-content:center;padding:0 5px;
  border:1.5px solid #052b16;cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.5);
}
.dev-note-row{
  display:flex;gap:11px;padding:13px 0;border-bottom:.5px solid var(--hairline);
}
.dev-note-num{
  flex:0 0 auto;width:22px;height:22px;border-radius:11px;background:#1f8a4d;
  color:#fff;font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;
}
.dev-note-row code{
  background:#222;border:.5px solid var(--hairline);border-radius:6px;
  padding:1px 6px;font-size:12px;color:#7cc0ff;font-family:ui-monospace,Menlo,monospace;
}
.dev-tag{
  display:inline-block;font-size:10px;font-weight:800;letter-spacing:.4px;
  color:#3ddc84;border:1px solid #1f5c3f;border-radius:6px;padding:2px 6px;
  text-transform:uppercase;margin-bottom:8px;
}
