/* link underlines tend to make hypertext less readable,
   because underlines obscure the shapes of the lower halves of words */
:link, :visited {
    text-decoration: none
}

/* no list-markers by default, since lists are used more often for semantics */
ul, ol {
    list-style: none
}

/* avoid browser default inconsistent heading font-sizes */
/* and pre/code too */
h1, h2, h3, h4, h5, h6, pre, code {
    font-size: 1rem;
}

/* remove the inconsistent (among browsers) default ul,ol padding or margin  */
/* the default spacing on headings does not match nor align with
   normal interline spacing at all, so let's get rid of it. */
/* zero out the spacing around pre, form, body, html, p, blockquote as well */
/* form elements are oddly inconsistent, and not quite CSS emulatable. */
/*  nonetheless strip their margin and padding as well */
ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, body, html, p, blockquote, fieldset, input, textarea {
    margin: 0;
    padding: 0;
    border: none;
}

/* whoever thought blue linked image borders were a good idea? */
a img, :link img, :visited img {
    border: none;
}

/* de-italicize address */
address {
    font-style: normal;
}

/* firefox focus outline */
:focus {
    outline: none;
}

::-moz-focus-inner {
    border: 0;
}

form {
    all: unset;
}

/* details element arrow */
details > summary {
    list-style: none;
}

details > summary::-webkit-details-marker {
    display: none;
}

/* have IE ignore the detail elements altogether */
@supports not (-ms-ime-align: auto) {
    details summary {
        cursor: pointer;
    }
}

[hidden] {
    display: none;
}

* {
    vertical-align: middle !important;
    box-sizing: border-box !important;
}

/* TYPOGRAPHY AND GENERAL SELECTORS */
body,
html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    scroll-behavior: smooth;

    background-attachment: fixed;
    color: var(--white);
    font-family: var(--main-font);
    font-size: var(--small-size);
}

h1 {
    font-family: var(--display-font);
    font-size: var(--main-size);
    font-weight: 900;
    opacity: 1.00;
    letter-spacing: -0.40px;
    word-spacing: 4.00px;
}

h2 {
    font-family: var(--display-font);
    font-size: var(--medium-size);
    font-weight: 800;
    letter-spacing: -0.75px;
    word-spacing: 3.00px;
    text-transform: none;
}

h3 {
    font-family: var(--display-font);
    font-size: var(--small-size);
    font-weight: 700;
    line-height: 1.00;
    letter-spacing: -0.20px;
    word-spacing: 1.00px;
    text-transform: none;
}

p {
    font-family: var(--main-font);
    font-size: var(--small-size);
    font-weight: 400;
    letter-spacing: -0.30px;
    word-spacing: -0.10px;
    margin-bottom: var(--small-size);
    text-transform: none;
}

textarea {
    font-family: var(--main-font);
    font-weight: 400;
    letter-spacing: -0.30px;
    word-spacing: -0.10px;
    text-transform: none;
}

ul {
    text-decoration: none;
    margin: 0;
    padding: 0;
    list-style: none;
}

li {
    margin: 0;
    padding: 0;
}

a {
    text-decoration: none;
    color: var(--white);
    border-radius: var(--unit-size);

    padding-left: var(--unit-size);
    padding-right: var(--unit-size);
    margin-bottom: 1px;
    outline: 0;
}

a:visited {
    color: var(--white);
    padding-left: var(--unit-size);
    padding-right: var(--unit-size);
    outline: 0;
    margin: 0;
}

a:focus,
a:hover {
    background: var(--white);
    color: var(--bg1) !important;
    transition: var(--cubic-transition);
}

figcaption a:link {
    font-size: var(--small-size);
    color: var(--white);
}

summary:hover > svg,
summary:focus > svg {
    border-radius: var(--unit-size);
    background-color: var(--white);
    fill: var(--bg1);
    border: 2px solid var(--white);
    transition: var(--cubic-transition);
}

hr {
    all: unset;
    display: block;
    height: 2px;
    background: var(--translucent);
}

/* BUTTONS AND FILEPICKER */
button {
    cursor: pointer !important;
    float: right !important;
    /*width: min-content !important;*/
    align-self: end !important;
}
input {
    cursor: text !important;
}

button,
input {
    all: unset;
    font-size: var(--medium-size);
    border-radius: var(--unit-size);
    padding: 6px 12px;
}

*|*::-moz-button-content {
    all: unset;
}

input[type=checkbox] {
    all: unset;
    cursor: pointer !important;

    display: inline-block;
    width: 1em;
    height: 1em;
}
input[type=radio] {
    all: unset;
    cursor: pointer !important;

    display: inline-block;
    width: 1em;
    height: 1em;
    border-radius: 50%;
    margin: 3px 3px 0px 5px;
}

/* file selector */
input[type=file] {
    all: unset;

    display: block !important;
    width: 100%;

    font-family: var(--main-font);
    font-size: var(--medium-size);

    border-radius: var(--unit-size);
}

input + label {
    all: unset;
    align-self: center;
}

/* button part of file selector */
::file-selector-button {
    font-family: var(--display-font);
    cursor: pointer;

    background-color: unset;

    border: unset;
    margin: 3px;
}
