/* Shared motion for Brawnd's primary and secondary actions. */
.brawnd-motion--shine {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.brawnd-motion--shine::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: -40%;
  bottom: -40%;
  left: -60%;
  width: 38%;
  pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.06) 22%, rgba(255,255,255,.45) 50%, rgba(255,255,255,.06) 78%, transparent);
  transform: skewX(-20deg) translateX(0);
  opacity: 0;
}
.brawnd-motion--shine:hover::after,
.brawnd-motion--shine:focus-visible::after {
  animation: brawnd-light-pass .75s cubic-bezier(.22,.66,.23,1) both;
}
.brawnd-motion--shine > * { position: relative; z-index: 2; }
@keyframes brawnd-light-pass {
  0% { transform: skewX(-20deg) translateX(0); opacity: 0; }
  16% { opacity: .85; }
  84% { opacity: .85; }
  100% { transform: skewX(-20deg) translateX(500%); opacity: 0; }
}

.brawnd-motion--fade .brawnd-motion-label {
  display: inline-block;
  will-change: opacity, transform;
}
.brawnd-motion--fade:hover .brawnd-motion-label,
.brawnd-motion--fade:focus-visible .brawnd-motion-label {
  animation: brawnd-label-return .6s ease-out both;
}
@keyframes brawnd-label-return {
  0% { opacity: 1; transform: translateY(0); }
  42% { opacity: .28; transform: translateY(-2px); }
  100% { opacity: 1; transform: translateY(0); }
}
/* The existing .btn rule moves all spans; keep the label's movement deliberate. */
.btn.brawnd-motion--fade:hover .brawnd-motion-label,
.btn.brawnd-motion--fade:focus-visible .brawnd-motion-label {
  animation: brawnd-label-return .6s ease-out both;
}
/* Icon controls and navigation affordances receive a small lift instead of text motion. */
.brawnd-motion--icon {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.brawnd-motion--icon:hover:not(:disabled),
.brawnd-motion--icon:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(241,238,231,.13);
}
@media (prefers-reduced-motion: reduce) {
  .brawnd-motion--shine::after,
  .brawnd-motion--fade .brawnd-motion-label,
  .brawnd-motion--icon {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}

/* A wrapped text node must inherit the original label styles, not arrow styles. */
.brawnd-motion--fade > .brawnd-motion-label {
  color: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
  font: inherit;
}
