.pml-wrap{
  position: relative;
  overflow: hidden;
  color: var(--pml-color);
  font-family: var(--pml-font);
  font-size: var(--pml-size);
  font-weight: var(--pml-weight);
  letter-spacing: var(--pml-letter);
  line-height: 1.1;
  padding: var(--pml-py) var(--pml-px);
  border-radius: var(--pml-radius);
  max-height: var(--pml-maxh);
  display: flex;
  align-items: center;
  -webkit-font-smoothing: antialiased;
}

.pml-link{ color: inherit; text-decoration: none; display: block; width: 100%; }

.pml-bg-solid{ background: var(--pml-bg1); }
.pml-bg-gradient{ background: linear-gradient(110deg, var(--pml-bg1), var(--pml-bg2)); }
.pml-bg-animated{
  background: linear-gradient(110deg, var(--pml-bg1), var(--pml-bg2), var(--pml-bg1));
  background-size: 220% 220%;
  animation: pmlGradientMove 10s ease-in-out infinite;
}

@keyframes pmlGradientMove{
  0%{ background-position: 0% 50%; }
  50%{ background-position: 100% 50%; }
  100%{ background-position: 0% 50%; }
}

.pml-track{ width: 100%; overflow: hidden; min-width: 0; }
.pml-content{
  display: inline-block;
  white-space: nowrap;
  will-change: transform;
  padding-right: 40px;
}

.pml-dir-left .pml-content{ animation: pmlScrollLeft var(--pml-speed) linear infinite; }
.pml-dir-right .pml-content{ animation: pmlScrollRight var(--pml-speed) linear infinite; }

@keyframes pmlScrollLeft{
  0%{ transform: translateX(100%); }
  100%{ transform: translateX(-100%); }
}
@keyframes pmlScrollRight{
  0%{ transform: translateX(-100%); }
  100%{ transform: translateX(100%); }
}

/* Pause on hover */
.pml-pause:hover .pml-content{ animation-play-state: paused; }

/* Luxury effects */
.pml-shimmer::after{
  content:"";
  position:absolute;
  inset:-40%;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255,255,255,.10) 45%,
    rgba(255,255,255,.22) 50%,
    rgba(255,255,255,.10) 55%,
    transparent 100%
  );
  transform: rotate(12deg);
  animation: pmlShimmer 2.8s ease-in-out infinite;
  pointer-events:none;
}
@keyframes pmlShimmer{
  0%{ transform: translateX(-40%) rotate(12deg); opacity:0; }
  15%{ opacity:.55; }
  50%{ opacity:.25; }
  100%{ transform: translateX(40%) rotate(12deg); opacity:0; }
}

.pml-glow{ animation: pmlGlow 3.2s ease-in-out infinite; }
@keyframes pmlGlow{
  0%,100%{ box-shadow: 0 0 0 rgba(255,255,255,0); }
  50%{ box-shadow: 0 0 18px rgba(255,255,255,.14); }
}

.pml-flash{ animation: pmlFlash 1.6s ease-in-out infinite; }
@keyframes pmlFlash{
  0%,100%{ filter: brightness(1); }
  50%{ filter: brightness(1.12); }
}

@media (max-width: 600px){
  .pml-wrap{ font-size: clamp(12px, 2.8vw, var(--pml-size)); }
}

@media (prefers-reduced-motion: reduce){
  .pml-content, .pml-bg-animated, .pml-shimmer::after, .pml-glow, .pml-flash{
    animation: none !important;
  }
}
