html {
    scroll-behavior: smooth;
}

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

img {
    -webkit-user-drag: none;
    -webkit-touch-callout: none;
    user-select: none;
    -webkit-user-select: none;
}

img.fade-on-load {
    opacity: 0;
    transition: opacity 0.45s ease;
}
img.fade-on-load.loaded {
    opacity: 1;
}

svg {
    user-select: none;
    -webkit-user-select: none;
}

body {
    font-family: var(--font-primary);
    background-color: var(--color-bg-dark);
    color: var(--color-text-dark);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -ms-overflow-style: none;
    scrollbar-width: none;
    overflow-x: hidden;
}

::-webkit-scrollbar {
    display: none;
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.main-nav a:focus-visible {
    outline: 2px solid var(--color-brand-yellow);
    outline-offset: 3px;
    border-radius: 4px;
}

.scroll-reveal {
    opacity: 0;
    will-change: opacity;
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.scroll-reveal.revealed {
    opacity: 1;
}

.scroll-reveal-children > * {
    opacity: 0;
    will-change: opacity;
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.scroll-reveal-children.revealed > * {
    opacity: 1;
}

.container {
    width: 100%;
    max-width: 1376px;
    margin: 0 auto;
    padding: 0 24px;
}

a {
    text-decoration: none;
    color: inherit;
}

ul {
    list-style: none;
}
