.button {
  --glass-blur: 10px;
  --glass-bg-opacity: 0.1;
  --glass-border-opacity: 0.2;
  --glass-hover-opacity: 0.2;
  --glass-glow: 0;
  --glass-color: rgba(255, 255, 255, var(--glass-bg-opacity));
  --glass-border: rgba(255, 255, 255, var(--glass-border-opacity));

  position: relative;
  padding: 0.875rem 2rem;
  font-family: inherit;
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.025em;
  color: inherit;
  background: var(--glass-color);
  border: 1px solid var(--glass-border);
  border-radius: 0.5rem;
  cursor: pointer;
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  overflow: hidden;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.button:hover {
  --glass-bg-opacity: var(--glass-hover-opacity);
  background: var(--glass-color);
  box-shadow:
    0 0 20px rgba(255, 255, 255, var(--glass-glow)),
    0 4px 12px rgba(0, 0, 0, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
  transform: translateY(-1px);
}

.button:active {
  transform: translateY(0) scale(0.98);
  box-shadow:
    0 0 10px rgba(255, 255, 255, var(--glass-glow)),
    0 2px 6px rgba(0, 0, 0, 0.1),
    inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

.button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

.button:disabled:hover {
  transform: none;
  box-shadow: none;
}

/* Shine effect on hover */
.button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.2),
    transparent
  );
  transform: skewX(-25deg);
  transition: left 0.5s;
  pointer-events: none;
}

.button:hover::before {
  left: 150%;
}

/* Inner highlight */
.button::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.3) 0%,
    transparent 50%,
    rgba(255, 255, 255, 0.1) 100%
  );
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  opacity: 0.7;
}

/* Content */
.content {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
