:root {
  --festive-bg-top: rgba(255, 214, 139, .24);
  --festive-bg-light: rgba(255, 255, 255, .12);
  --festive-glass: rgba(255, 251, 246, .18);
  --festive-glass-strong: rgba(255, 251, 246, .72);
  --festive-line: rgba(255, 225, 186, .22);
  --festive-red: #d52239;
  --festive-red-deep: #8a1020;
  --festive-gold: #f0c66d;
  --festive-ink: #33161a;
  --festive-muted: #86666b;
  --festive-shadow: 0 24px 70px rgba(69, 8, 18, .24);
  --festive-shadow-soft: 0 16px 38px rgba(69, 8, 18, .16);
}

body {
  position: relative;
  color: var(--festive-ink);
  background:
    radial-gradient(circle at 12% 8%, var(--festive-bg-top), transparent 24%),
    radial-gradient(circle at 88% 6%, var(--festive-bg-light), transparent 18%),
    linear-gradient(180deg, #6b111c 0%, #390813 46%, #21050b 100%) !important;
}

body::before,
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}

body::before {
  background:
    repeating-linear-gradient(90deg, rgba(255, 220, 168, .045) 0 1px, transparent 1px 28px),
    repeating-linear-gradient(0deg, rgba(255, 220, 168, .04) 0 1px, transparent 1px 28px),
    radial-gradient(circle at center, rgba(255,255,255,.06), transparent 34%);
}

body::after {
  inset: auto 0 0;
  height: 38vh;
  background: radial-gradient(circle at 50% 100%, rgba(255, 205, 116, .14), transparent 44%);
}

body > * {
  position: relative;
  z-index: 1;
}

.shell {
  position: relative;
}

.card,
.entry-card,
.entry-panel,
.hero-card,
.section,
.merchant-card,
.trust-item,
.pending-item,
.record-item,
.collect-card,
.reward-ad-dialog,
.reward-ad-poster,
.reward-amount-packet,
.reward-amount-dialog,
.asset-callout,
.member-list-item,
.member-zodiac,
.table-wrap {
  border: 1px solid var(--festive-line) !important;
  backdrop-filter: blur(20px) saturate(155%);
  -webkit-backdrop-filter: blur(20px) saturate(155%);
  box-shadow: var(--festive-shadow-soft);
}

.login-topbar,
.app-topbar,
.asset-topbar,
.tabbar {
  border: 1px solid rgba(255, 230, 198, .24) !important;
  background: linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,248,242,.08)) !important;
  backdrop-filter: blur(22px) saturate(155%);
  -webkit-backdrop-filter: blur(22px) saturate(155%);
  box-shadow: 0 16px 36px rgba(29, 6, 10, .24) !important;
}

.login-cover,
.asset-hero,
.scan-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 228, 191, .18);
  background:
    radial-gradient(circle at 14% 12%, rgba(255, 229, 175, .2), transparent 18%),
    radial-gradient(circle at 86% 10%, rgba(255,255,255,.14), transparent 18%),
    linear-gradient(135deg, rgba(118, 12, 28, .92), rgba(196, 30, 51, .88) 52%, rgba(240, 198, 109, .72)) !important;
  box-shadow: var(--festive-shadow) !important;
}

.login-cover::before,
.asset-hero::before,
.scan-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(45deg, rgba(255, 228, 191, .06) 0 1px, transparent 1px 18px),
    radial-gradient(circle at center, rgba(255,255,255,.08), transparent 32%);
  pointer-events: none;
}

.login-cover > *,
.asset-hero > *,
.scan-hero > * {
  position: relative;
  z-index: 1;
}

.brand span,
.cover-copy .intro,
.asset-hero p,
.scan-hero p,
.proof span,
.asset-proof span {
  color: rgba(255,255,255,.82) !important;
}

.entry-card,
.entry-panel,
.hero-card,
.section,
.merchant-card,
.asset-callout,
.member-list-item,
.member-zodiac,
.table-wrap {
  background:
    linear-gradient(180deg, rgba(255,255,255,.76), rgba(255,247,240,.62)),
    rgba(255,255,255,.18) !important;
}

.reward-ad-dialog {
  background:
    linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,247,240,.72)),
    rgba(255,255,255,.2) !important;
}

.reward-ad-poster {
  background:
    linear-gradient(180deg, rgba(255,255,255,.48), rgba(255,247,240,.32)),
    rgba(255,255,255,.18) !important;
}

.entry-item,
.trust-item,
.pending-item,
.record-item,
.collect-card,
.member-zodiac {
  border: 1px solid rgba(255, 223, 183, .18) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.7), rgba(255,246,237,.56)),
    rgba(255,255,255,.16) !important;
}

.collect-card.owned,
.member-zodiac.owned {
  background:
    linear-gradient(180deg, rgba(255, 247, 219, .88), rgba(255,255,255,.7)),
    rgba(255,255,255,.2) !important;
  border-color: rgba(240, 198, 109, .26) !important;
}

.btn,
.reward-amount-btn {
  border-radius: 999px !important;
  border: 1px solid rgba(255, 224, 188, .24) !important;
  box-shadow: 0 14px 28px rgba(78, 10, 20, .14) !important;
}

.btn-primary,
.btn.primary,
.reward-ad-close {
  background:
    linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,0)),
    linear-gradient(135deg, var(--festive-red) 0%, #b3162c 52%, var(--festive-red-deep) 100%) !important;
  color: #fff8f2 !important;
}

.btn-soft,
.reward-amount-btn {
  background:
    linear-gradient(180deg, rgba(255,255,255,.26), rgba(255,255,255,0)),
    linear-gradient(135deg, #ffe8b0 0%, #f4c96d 48%, #d9982d 100%) !important;
  color: #6a3609 !important;
}

.badge,
.user-chip,
.scan-badge,
.asset-hero small,
.entry-item em {
  border: 1px solid rgba(255, 226, 179, .24) !important;
  background: linear-gradient(180deg, rgba(255,244,214,.26), rgba(255,226,179,.14)) !important;
  color: #ffe7b2 !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.entry-item em {
  color: var(--festive-red) !important;
}

.section-kicker,
.scan-head small,
.asset-callout p strong,
.reward-amount-top strong {
  color: var(--festive-gold) !important;
}

.hero-card h1,
.section-head h2,
.entry-panel h3,
.merchant-card h3,
.asset-callout h2,
.member-card strong,
.record-item strong,
.pending-item strong {
  color: var(--festive-ink) !important;
}

.hero-card .sub,
.entry-panel p,
.section-head p,
.merchant-card p,
.asset-callout p,
.record-item span,
.pending-item span {
  color: var(--festive-muted) !important;
}

.zodiac-stage,
.zodiac-grid,
.collection-grid,
.asset-grid,
.summary-grid {
  position: relative;
}

.zodiac-stage::before,
.zodiac-grid::before {
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.08),
    0 18px 40px rgba(55, 7, 14, .18) !important;
}

.reward-amount-dialog {
  box-shadow: 0 28px 68px rgba(75, 7, 18, .34) !important;
}

.reward-amount-packet {
  background:
    radial-gradient(circle at top, rgba(255, 225, 172, .48), transparent 24%),
    linear-gradient(180deg, #ff6f63 0%, #de2b39 44%, #b61425 100%) !important;
}

.reward-amount-badge {
  color: #a71922 !important;
  text-shadow: 0 1px 0 rgba(255,255,255,.24);
}

.table-wrap table thead th {
  background: linear-gradient(180deg, rgba(255,242,214,.92), rgba(255,228,188,.78)) !important;
  color: #6d3410 !important;
}

.table-wrap table tbody tr {
  background: rgba(255,255,255,.42) !important;
}

.table-wrap table tbody tr:hover {
  background: rgba(255,246,233,.82) !important;
}

@media (max-width: 420px) {
  .login-topbar,
  .app-topbar,
  .asset-topbar,
  .tabbar {
    backdrop-filter: blur(18px) saturate(150%);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
  }
}
