/* Tokens, reset, typography, form controls. */

:root {
    --max-width: 1450px;
    --edge: 10px;
    /* Left edge of centred content, so full-bleed columns line up with it. */
    --gutter: max(calc((100vw - var(--max-width)) / 2), var(--edge));

    --accent: #fff;
    --background: #fff;
    --foreground: #fafafa;
    --sub_text_color: #585858;
    --line: #d8d8d8;

    --weight: 500;
    --default_font_size: 16px;

    --radius: 16px;
    --radius_sm: 8px;
    --gap: 24px;
    --col_min: 350px;
    --block_space: 100px;
}

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

html {
    font-family: "Instrument Sans", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    font-variation-settings: "wdth" 100;
}

::selection {
    background: var(--accent);
    color: white;
}

img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

a {
    display: flex;
    color: inherit;
    transition: color 100ms;
}

a:hover,
div[data-animated-anchor="true"]:hover {
    color: var(--accent) !important;
}

a, p {
    display: block;
    font-size: var(--default_font_size);
    letter-spacing: -.32px;
    line-height: 1.5em;
}

strong {
    font-size: 20px;
    font-weight: var(--weight);
}

h1 {
    font-size: calc(1.4rem + 2.6vw);
    font-weight: var(--weight);
    letter-spacing: -1.4px;
    line-height: 1.1em;
    margin-top: 10px;
}

h2 {
    font-size: 40px;
    font-weight: var(--weight);
    letter-spacing: -.8px;
    line-height: 1.2em;
}

h3 {
    font-size: 28px;
    font-weight: var(--weight);
    letter-spacing: -.56px;
    line-height: 1.2em;
    margin-top: 10px;
}

.sub_heading_text {
    font-size: 28px;
    font-weight: var(--weight);
    line-height: 1.2em;
    margin-top: 10px;
    margin-bottom: 40px;
}

figcaption {
    color: var(--sub_text_color);
}

textarea,
input {
    all: unset;
    width: 100%;
    padding: 16px;
    border: 1px solid transparent;
    border-radius: 4px;
    background: var(--foreground);
    box-sizing: border-box;
}

textarea {
    min-height: 300px;
    resize: vertical;
}

textarea::placeholder,
input::placeholder {
    color: var(--sub_text_color);
    opacity: 1;
}

textarea:focus,
input:focus {
    border-color: lightgray;
}

#scroll-sentinel {
    position: absolute;
    top: 0;
    height: 1px;
    width: 1px;
}

@media (max-width: 700px) {
    h1 {
        font-size: 55px;
    }

    .sub_heading_text {
        font-size: 20px;
    }
}
