/* Explain: Base styles, resets, and global dark mode defaults. */
* {
    box-sizing: border-box;
}

html {
    background: var(--background-color);
    color: var(--text-color);
}

body {
    min-height: 100vh;
    overflow-x: hidden;
    font-family: var(--font-body);
    background:
        radial-gradient(circle at 14% 0%, rgba(0, 98, 51, 0.35), transparent 42rem),
        radial-gradient(circle at 88% 6%, rgba(193, 39, 45, 0.16), transparent 40rem),
        var(--background-color);
}

h1,
h2,
h3,
h4 {
    font-family: var(--font-heading);
    font-weight: 600;
    letter-spacing: 0.01em;
}

::selection {
    background: var(--primary-color);
    color: #fff;
}

button,
a,
input,
select,
textarea {
    font: inherit;
}

.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 700ms ease, transform 700ms ease;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}