/* ---------- custom scrollbar ---------- */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{
  background:rgba(71,3,78,0.55);
  border-radius:100px;
  border:2px solid transparent;
  background-clip:content-box;
}
::-webkit-scrollbar-thumb:hover{ background:rgba(71,3,78,0.8); background-clip:content-box; }
html{ scrollbar-width:thin; scrollbar-color:rgba(71,3,78,0.55) transparent; }

/* ---------- page loader ---------- */
/* ---------- page loader ---------- */
#tixteeLoader{
  position:fixed; inset:0; z-index:99999;
  background:#0d0d0d;
  display:flex; align-items:center; justify-content:center;
  transition:opacity 0.5s ease, visibility 0.5s ease;
}
#tixteeLoader.hide{ opacity:0; visibility:hidden; pointer-events:none; }

.wrapper{
  width:200px; height:60px;
  position:relative; z-index:1;
}

.circle{
  width:20px; height:20px;
  position:absolute; border-radius:50%;
  background-color:#c084fc;
  left:15%;
  transform-origin:50%;
  animation:circle7124 .5s alternate infinite ease;
}

@keyframes circle7124{
  0%{ top:60px; height:5px; border-radius:50px 50px 25px 25px; transform:scaleX(1.7); }
  40%{ height:20px; border-radius:50%; transform:scaleX(1); }
  100%{ top:0%; }
}

.circle:nth-child(2){ left:45%; animation-delay:.2s; }
.circle:nth-child(3){ left:auto; right:15%; animation-delay:.3s; }

.shadow{
  width:20px; height:4px;
  border-radius:50%;
  background-color:rgba(0,0,0,0.9);
  position:absolute; top:62px;
  transform-origin:50%; z-index:-1;
  left:15%; filter:blur(1px);
  animation:shadow046 .5s alternate infinite ease;
}

@keyframes shadow046{
  0%{ transform:scaleX(1.5); }
  40%{ transform:scaleX(1); opacity:.7; }
  100%{ transform:scaleX(.2); opacity:.4; }
}

.shadow:nth-child(4){ left:45%; animation-delay:.2s; }
.shadow:nth-child(5){ left:auto; right:15%; animation-delay:.3s; }
@keyframes tixteePulse{
  0%,100%{ opacity:1; }
  50%{ opacity:.45; }
}
.tx-sk{
  background:linear-gradient(135deg, rgba(168,85,247,0.18), rgba(71,3,78,0.4));
  animation:tixteePulse 1.8s cubic-bezier(.4,0,.6,1) infinite;
  border-radius:10px;
}
.tx-sk-circle{ border-radius:50%; flex-shrink:0; }

/* profile row (default) */
.tx-shape-profile{ position:relative; display:flex; align-items:center; gap:16px; width:260px; }
.tx-shape-profile .tx-sk-circle{ width:48px; height:48px; }
.tx-shape-profile .tx-col{ flex:1; }
.tx-shape-profile .tx-title{ height:20px; width:60%; margin-bottom:8px; }
.tx-shape-profile .tx-sub{ height:20px; width:90%; }
.tx-shape-profile .tx-dot{ position:absolute; bottom:-4px; right:-4px; width:12px; height:12px; }

/* auth (login / signup) */
.tx-shape-auth{ display:flex; flex-direction:column; align-items:center; gap:14px; width:280px; }
.tx-shape-auth .tx-logo{ width:44px; height:44px; border-radius:12px; margin-bottom:6px; }
.tx-shape-auth .tx-input{ height:44px; width:100%; }
.tx-shape-auth .tx-button{ height:44px; width:100%; opacity:.9; }

/* list (events / tickets) */
.tx-shape-list{ display:flex; flex-direction:column; gap:20px; width:300px; }
.tx-shape-list .tx-row{ display:flex; align-items:center; gap:12px; }
.tx-shape-list .tx-thumb{ width:48px; height:48px; border-radius:10px; flex-shrink:0; }
.tx-shape-list .tx-col{ flex:1; }
.tx-shape-list .tx-title{ height:16px; width:70%; margin-bottom:8px; }
.tx-shape-list .tx-sub{ height:14px; width:40%; }

/* card (single event page) */
.tx-shape-card{ display:flex; flex-direction:column; gap:14px; width:300px; }
.tx-shape-card .tx-banner{ height:150px; width:100%; }
.tx-shape-card .tx-title{ height:20px; width:70%; }
.tx-shape-card .tx-sub{ height:16px; width:45%; }
@keyframes heartbeat{
  0%, 100% { transform:scale(1); }
  14%      { transform:scale(1.15); }
  28%      { transform:scale(1); }
  42%      { transform:scale(1.15); }
  70%      { transform:scale(1); }
}
/* ---------- copy protection toast ---------- */
#tixteeToast{
  position:fixed; bottom:24px; left:50%; transform:translateX(-50%) translateY(20px);
  background:#1a1a1a; color:#fff; padding:12px 22px; border-radius:100px;
  font-family:'Inter',sans-serif; font-size:12.5px; font-weight:500;
  opacity:0; visibility:hidden; transition:all 0.3s ease; z-index:99998;
  box-shadow:0 10px 30px rgba(0,0,0,0.2);
}
#tixteeToast.show{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }