:root {
    color-scheme: light dark;
    --color-dt-brand: hwb(195 0% 10%);
    --color-text-label: hsl(0, 0%, 56%);
    --color-area-moderate: hsl(0, 0%, 95%);
    --color-line-moderate: hsla(0, 0%, 0%, 0.1);
}

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

html {
    overscroll-behavior: none;
}

body {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    height: 82vh;
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, Arial, Helvetica, sans-serif;
    font-size: 14px;
    color: CanvasText;
    background-color: Canvas;
}

a:link, a:visited, a:active {
    color: var(--color-dt-brand);
}

p {
    line-height: 120%;
    margin-bottom: 10px;
    margin-top: 10px;
}

small {
    font-size: 12px;
}

.front {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100vw;
    max-width: calc(300px + 4vw);
    padding: 0 2vw;
}

.front > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.front .logo > a > img {
    width: 100%;
    border-radius: 10px;
}

.front .error {
    font-size: 200%;
    color: #999;
}

.front form {
    width: 100%;
    padding: 10px 10px 0 10px;
}

.front form label, .front form input {
    display: block;
    width: 100%;
}

.front form label {
    height: 1.4em;
    margin: 0.6em 0 0.1em 0;
    color: var(--color-text-label);
}

.front form input {
    padding: 5px 8px;
    border: 1px solid var(--color-line-moderate);
    border-radius: 6px;
    font-size: inherit;
    background-color: var(--color-area-moderate);
}

.front form .buttons {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    margin-top: 2.1em;
}

.front form button {
    font-size: inherit;
    width: 48%;
    height: 2em;
}

.front form button:only-child {
    width: 100%;
}

.logo small {
    margin-top: 1em
}

@media (prefers-color-scheme: dark) {
    :root {
        --color-area-moderate: hsl(0, 0%, 16%);
        --color-line-moderate: hsla(0, 0%, 100%, 0.1);
    }
    .front form label {
        filter: invert(1);
    }
}
