.btn {
    padding: var(--space-sm) var(--space-md);
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    font-weight: 500;
    font-size: var(--text-sm);
    color: var(--text-color);
    background: var(--button-gradient);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: var(--shadow-sm), var(--inset-shadow);
    transition:
        background var(--dur-fast) var(--ease-out-soft),
        transform var(--dur-fast) var(--ease-out-soft),
        box-shadow var(--dur-fast) var(--ease-out-soft);
    position: relative;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-xs);
    min-height: 44px;
    text-align: center;
    -webkit-tap-highlight-color: transparent;
}

.btn::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 30%, rgba(255, 255, 255, 0.06) 50%, transparent 70%);
    transform: translateX(-100%);
    transition: transform var(--dur-med) var(--ease-out-soft);
    pointer-events: none;
}

.btn:hover,
.btn:focus-visible {
    background: var(--button-hover-gradient);
    transform: translateY(-1px) scale(1.012);
    box-shadow: var(--shadow-md), var(--accent-glow-ring);
    color: var(--text-color);
}

.btn:hover::before,
.btn:focus-visible::before {
    transform: translateX(100%);
}

.btn:active {
    transform: translateY(0) scale(0.99);
}

@media (max-width: 768px) {
    .btn {
        min-height: 48px;
        padding: var(--space-md) var(--space-lg);
        font-size: var(--text-sm);
    }
}

@media (max-width: 480px) {
    .btn {
        padding: var(--space-sm) var(--space-md);
    }
}
