/* Admin global banner (Frutiger Aero inspired) */
#admin-global-banner{
  position:fixed;
  left:50%;
  top:0;
  transform:translate(-50%,-120%);
  z-index:100000;
  width:min(92vw,980px);
  max-width:calc(100% - 24px);
  background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
  backdrop-filter: blur(10px);
  border-radius:12px;
  border:2px solid rgba(255,215,120,0.06);
  box-shadow: 0 20px 60px rgba(0,0,0,0.28), 0 0 18px rgba(255,200,60,0.06) inset;
  padding:12px 14px;
  display:flex;
  gap:12px;
  align-items:center;
  opacity:0;
  transition: transform 480ms cubic-bezier(.2,.9,.2,1), opacity 420ms;
  font-family: var(--font-sans);
  color:#052825;
  border-image: linear-gradient(90deg,#ffd64d,#ffb3e6) 1;
  overflow:hidden;
}

/* visible state slides banner down */
#admin-global-banner.visible{
  transform:translate(-50%, 12px);
  opacity:1;
}

/* small icon and title area */
#admin-global-banner .admin-alert-icon{
  font-weight:900;
  background: linear-gradient(180deg,#fff7b8,#ffd64d);
  padding:8px;
  border-radius:10px;
  box-shadow:0 10px 30px rgba(255,200,60,0.12);
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:46px;
  min-height:46px;
  font-size:18px;
}

/* content */
#admin-global-banner .admin-banner-content{display:flex;flex-direction:column;gap:4px}
#admin-global-banner .admin-banner-title{font-weight:900;letter-spacing:0.6px;font-size:13px}
#admin-global-banner .admin-banner-msg{font-weight:800;font-size:15px;max-height:3.6em;overflow:hidden;text-overflow:ellipsis}

/* admin name pulse (used briefly when admin triggers commands) */
.chat-name.admin.admin-pulse, .chat-name.owner.admin-pulse{
  animation: adminPulse 1200ms ease-in-out;
  text-shadow: 0 8px 30px rgba(255,200,60,0.12);
}
@keyframes adminPulse{
  0%{transform:scale(1);filter:brightness(1)}
  40%{transform:scale(1.07);filter:brightness(1.12)}
  100%{transform:scale(1);filter:brightness(1)}
}

/* ADMIN ABUSE visuals: giant vibrating banner + glitch + lollipop spin */
#admin-abuse-banner{
  position:fixed;
  left:50%;
  top:0;
  transform:translate(-50%,-140%);
  z-index:200000;
  width:100%;
  max-width:1100px;
  pointer-events:none;
  display:flex;
  justify-content:center;
  padding:6px 12px;
  transition: transform 360ms cubic-bezier(.2,.9,.2,1), opacity 320ms;
  opacity:0;
}
#admin-abuse-banner.visible{
  transform:translate(-50%, 8px);
  opacity:1;
}
#admin-abuse-banner .admin-abuse-text{
  font-family: var(--font-sans);
  font-weight:900;
  font-size:28px;
  letter-spacing:2px;
  padding:10px 18px;
  background: linear-gradient(90deg,#ff5fb0,#ffd64d);
  color:#052825;
  border-radius:10px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.36), 0 0 30px rgba(255,80,120,0.08);
  transform:skewX(-4deg);
  animation: vibrate 80ms linear infinite;
}

/* brief vibrate */
@keyframes vibrate{
  0%{transform:skewX(-4deg) translateX(-1px)}
  50%{transform:skewX(-4deg) translateX(1px)}
  100%{transform:skewX(-4deg) translateX(-1px)}
}

/* page glitch effect: slight RGB offset + jitter */
body.glitch {
  animation: glitchShift 420ms steps(2) infinite;
  filter: contrast(1.1) saturate(1.1);
}
@keyframes glitchShift{
  0%{transform:translateZ(0);filter:contrast(1.1) saturate(1.1)}
  50%{transform:translateX(1px) translateY(0);filter:contrast(1.04) saturate(1.08)}
  100%{transform:translateZ(0);filter:contrast(1.1) saturate(1.1)}
}

/* spin lollipop during abuse */
#big-lollipop.spin{
  animation: spinFast 800ms linear infinite;
}
@keyframes spinFast{
  0%{transform:rotate(0deg)}
  100%{transform:rotate(360deg)}
}

/* Owner command log (matrix-style) inside Ranks modal */
.ranks-modal .owner-log-box::-webkit-scrollbar { height:8px; width:8px }
.ranks-modal .owner-log-box::-webkit-scrollbar-thumb { background: rgba(124,255,107,0.16); border-radius:6px }
.ranks-modal .owner-log-box div { white-space:nowrap; font-family:monospace; letter-spacing:0.6px }

/* Gift dropped visual already styled inline; small fallback styling */
#gift-dropped-overlay { transition: transform 360ms cubic-bezier(.2,.9,.2,1), opacity 320ms }