*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    -webkit-tap-highlight-color: transparent !important;
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 80px;
}

html, body {
    min-height: 100%;
    overflow-x: clip;
    font-family: var(--font-sans);
    color: var(--text-primary);
    background-color: var(--bg-base);
    background-image: var(--bg-gradient);
    background-attachment: fixed;
    background-size: cover;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

img, picture, svg, video {
    display: block;
    max-width: 100%;
}

input, button, textarea, select {
    font: inherit;
    color: inherit;
    -webkit-tap-highlight-color: transparent !important;
}

button {
    cursor: pointer;
    border: none;
    background: none;
}

a {
    color: inherit;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent !important;
}

/* Tactile Mobile Touch Micro-Interactions (Replaces native blue highlight) */
a, button, input, select, textarea, [role="button"], .btn, .filter-chip, .partner-card, .bottom-nav-item {
    -webkit-tap-highlight-color: transparent !important;
    outline: none;
}

@media (hover: none) and (pointer: coarse) {
    button:active:not(:disabled),
    .btn:active:not(:disabled),
    .filter-chip:active,
    .btn-card-touch:active,
    .btn-card-bookmark:active,
    .bottom-nav-item:active {
        transform: scale(0.96) !important;
        opacity: 0.9 !important;
        transition: transform 0.08s ease, opacity 0.08s ease !important;
    }

    .partner-card:active {
        transform: scale(0.985) !important;
        transition: transform 0.1s ease !important;
    }
}

/* Accessibility: Respect Reduced Motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
