
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


.lazy-load {
    opacity: 0;
    transition: opacity 0.5s ease;
}

.lazy-load.loaded {
    opacity: 1;
}


@supports not (scroll-behavior: smooth) {
    html {
        scroll-behavior: auto;
    }
    .smooth-scroll {
        scroll-behavior: auto;
    }
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.lazy-load {
    opacity: 0;
    transition: opacity 0.5s ease;
}

.lazy-load.loaded {
    opacity: 1;
}

@supports not (scroll-behavior: smooth) {
    html {
        scroll-behavior: auto;
    }
    .smooth-scroll {
        scroll-behavior: auto;
    }
}

html {
    font-synthesis: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: 100%;
}

/* Mobile: safe area for notched devices, tap highlight */
body {
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
}
@media (max-width: 768px) {
    a, button {
        -webkit-tap-highlight-color: rgba(214, 51, 132, 0.2);
    }
}


:lang(en) .font-brush,
:lang(en) .font-display {
    letter-spacing: 0.02em; 
}

/* ADA: Skip to main content link - visible on focus */
.skip-link {
    position: absolute;
    top: -100px;
    left: 0.5rem;
    z-index: 10000;
    padding: 0.75rem 1rem;
    background: #d63384;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    border-radius: 0 0 4px 4px;
    transition: top 0.2s ease;
}
.skip-link:focus {
    top: 0;
    outline: 2px solid #fff;
    outline-offset: 2px;
}

/* Focus visible for keyboard users (ADA) */
:focus {
    outline: 2px solid #d63384;
    outline-offset: 2px;
}
:focus:not(:focus-visible) {
    outline: none;
}
:focus-visible {
    outline: 2px solid #d63384;
    outline-offset: 2px;
}
button:focus-visible,
a:focus-visible,
[tabindex="0"]:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}


