

@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes floatUp{
  0%{transform:translateY(0) translateX(0) scale(1);opacity:0}
  10%{opacity:.6}
  100%{transform:translateY(-110vh) translateX(var(--dx,40px)) scale(.6);opacity:0}
}
@keyframes auroraDrift{
  0%,100%{transform:translate(0,0) scale(1)}
  33%{transform:translate(8vmin,4vmin) scale(1.1)}
  66%{transform:translate(-6vmin,2vmin) scale(.95)}
}
@keyframes shineMove{0%{background-position:0% 50%}100%{background-position:200% 50%}}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 var(--accent-soft)}
  70%{box-shadow:0 0 0 12px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}

.skeleton{background:linear-gradient(90deg,var(--surface) 0%,var(--accent-soft) 50%,var(--surface) 100%);background-size:200% 100%;animation:shimmer 1.6s linear infinite;border-radius:8px;display:inline-block;min-height:1em;color:transparent}

.magnetic{will-change:transform}
.holo{position:relative;isolation:isolate;overflow:hidden}
.holo::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);transform:translateX(-100%);transition:transform.8s ease}
.holo:hover::before{transform:translateX(100%)}

.tilt{transition:transform.25s ease}
.glow-hover{transition:box-shadow.35s ease, transform.35s ease}
.glow-hover:hover{box-shadow:0 0 32px var(--accent-soft);transform:translateY(-2px)}

.page-fade-enter{opacity:0;transform:translateY(10px)}
.page-fade-enter-active{opacity:1;transform:translateY(0);transition:.45s ease}
.page-fade-exit{opacity:1}
.page-fade-exit-active{opacity:0;transform:translateY(-8px);transition:.35s ease}

.count-up{font-variant-numeric:tabular-nums}

tr.dragging{opacity:.4}
tr.drop-target td{box-shadow:inset 0 2px 0 var(--accent)}

/* Discord bot command reference rows */
.cmd-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border,rgba(255,255,255,.06));}
.cmd-row:last-child{border-bottom:none;}
.cmd-row code{background:rgba(0,98,255,.14);color:#6ea8ff;padding:2px 8px;border-radius:6px;font-size:12px;min-width:74px;text-align:center;}
.cmd-row span{color:var(--fg-dim,#9aa);font-size:13px;}
