* {
    box-sizing: border-box;
}

html,
body {
    height: 100%;
}

body {
    margin: 0;
    font-family: var(--font);
    background: var(--bg);
    color: var(--text);
    line-height: 1.5;

    /* Sticky footer layout */
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

main {
    flex: 1;
}

img {
    max-width: 100%;
    display: block;
}

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

a:focus-visible,
button:focus-visible {
    outline: none;
    box-shadow: var(--focus);
    border-radius: 10px;
}

button {
    font: inherit;
    border: 0;
    background: none;
    color: inherit;
    cursor: pointer;
}

/* Basic headings / paragraphs (fallback, most sections have their own styles) */
.h1 {
    font-size: clamp(24px, 3vw, 34px);
    margin: 0 0 var(--space-4);
    letter-spacing: -0.02em;
}

.h2 {
    font-size: clamp(20px, 2.4vw, 28px);
    margin: 0 0 var(--space-3);
    letter-spacing: -0.02em;
}

.p {
    margin: 0 0 var(--space-3);
    opacity: 0.95;
}