:root {
    font-size: 1rem;
}

/* Box sizing rules */
*, *::before, *::after {
    box-sizing: border-box;
    line-height: 1;
    margin: 0;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
}

    *:has(:target) {
        scroll-behavior: smooth;
    }

ul, ol {
    list-style: none;
}

/* Set core root defaults */
html:focus-within {
    scroll-behavior: smooth;
}

html, body {
    font-family: Rubik, sans-serif;
    font-variant-numeric: tabular-nums;
}

/* Set core body defaults */
body {
    text-rendering: optimizeSpeed;
    block-size: 100svh;
    overflow: hidden;
    display: grid;
}

b, strong {
    font-weight: bold;
}

/* A elements that don't have a class get default styles */
a:not([class]) {
    text-decoration-skip-ink: auto;
}

a {
    text-decoration: none;
    color: inherit;
}

/* Make images easier to work with */
img, picture, svg, video {
    max-width: 100%;
    display: block;
}

h1, h2, h3, h4, h5, h6 {
    text-wrap: balance;
    font-weight: normal;
}

p {
    text-wrap: pretty;
}

h1 {
    font-size: 2.5rem;
}

h2 {
    font-size: 2rem;
}

h3 {
    font-size: 1.5rem;
}

h4 {
    font-size: 1.25rem;
}

h5 {
    font-size: 1.125rem;
}

h6 {
    font-size: 1.0rem;
}

input, button, textarea, select {
    font-size: 1rem;
    font-family: inherit;
}

button {
    cursor: pointer;
    border: none;
    -webkit-user-select: none;
    user-select: none;
}

input[type=checkbox] {
    cursor: pointer;
}