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

/*
 * WebKit fills the safe-area inset with background-color on html/body.
 * https://webkit.org/blog/7929/designing-websites-for-iphone-x/
 * viewport-fit=cover + matching root backgrounds + env() on content.
 */

html {
    height: 100%;
    height: -webkit-fill-available;
    background-color: var(--color-left, #000000);
    background-image: linear-gradient(
        135deg,
        var(--color-left, #000000) 0%,
        var(--color-mid, #000000) 50%,
        var(--color-right, #000000) 100%
    );
}

body {
    background-color: var(--color-left, #000000);
    background-image: linear-gradient(
        135deg,
        var(--color-left, #000000) 0%,
        var(--color-mid, #000000) 50%,
        var(--color-right, #000000) 100%
    );
    color: var(--text);
    font-family: 'Special Gothic Expanded One', system-ui, sans-serif;
    min-height: 100%;
    min-height: 100dvh;
    min-height: -webkit-fill-available;
    width: 100%;
    overflow: hidden;
    position: relative;
}

.page-bg,
body.grainy .grain-overlay,
body.grainy-strong .grain-overlay,
.lattice-bg {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
}

.page-bg {
    z-index: 0;
    background-color: var(--color-left, #000000);
    background-image: linear-gradient(
        135deg,
        var(--color-left, #000000) 0%,
        var(--color-mid, #000000) 50%,
        var(--color-right, #000000) 100%
    );
}

body.grainy .grain-overlay,
body.grainy-strong .grain-overlay {
    z-index: 2;
    mix-blend-mode: overlay;
    background-repeat: repeat;
}

body.grainy .grain-overlay {
    opacity: 0.32;
    background-size: 220px 220px;
}

body.grainy-strong .grain-overlay {
    opacity: 0.5;
    background-size: 170px 170px;
}

.content {
    position: fixed;
    left: 50%;
    top: calc(100% * var(--title-y, 0.5));
    transform: translate(-50%, -50%);
    z-index: 3;
    text-align: center;
    padding-left: env(safe-area-inset-left, 0px);
    padding-right: env(safe-area-inset-right, 0px);
    pointer-events: none;
}

.logo {
    font-size: clamp(1rem, 2.6vw, 1.6rem);
    font-weight: 400;
    font-synthesis: none;
    letter-spacing: 0.04em;
    line-height: 1;
    margin-bottom: 1.25rem;
    user-select: none;
    color: var(--text);
}

.tagline {
    font-size: 0.62rem;
    font-weight: 300;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--muted);
}
