.jl-skel {
  display: block;
  background: var(--surface-muted);
  border-radius: var(--radius-md);
  position: relative;
  overflow: hidden;
}
.jl-skel::after {
  content: '';
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(
    90deg,
    transparent 0%,
    color-mix(in srgb, var(--surface-card) 55%, transparent) 50%,
    transparent 100%
  );
  animation: jl-skel-shimmer 1.4s var(--ease-standard) infinite;
}
@keyframes jl-skel-shimmer { 100% { transform: translateX(100%); } }

.jl-skel--text   { height: 0.72em; border-radius: var(--radius-sm); margin: 0.18em 0; }
.jl-skel--circle { border-radius: var(--radius-full); }
.jl-skel--rect   { border-radius: var(--radius-lg); }

.jl-skel-lines { display: flex; flex-direction: column; gap: var(--space-2); width: 100%; }

@media (prefers-reduced-motion: reduce) {
  .jl-skel::after { animation: none; }
}
