* {
box-sizing: border-box;
}
html {
--dark: #3c3228;
--dark-2: #322a21;
--dark-3: #221d16;
--light: #e7c99a;
--light-2: #dec091;
--red: #f46b5b;
--red-dark: #d14a3d;
--orange: #f18c47;
--orange-dark: #cf6d22;
--yellow: #e2a850;
--yellow-dark: #c1892c;
--green: #b3b85e;
--green-dark: #94993e;
--teal: #93b67b;
--teal-dark: #75975d;
--blue: #87b09c;
--blue-dark: #69917e;
--purple: #dd8894;
--purple-dark: #bc6a76;
--accent: var(--green);
--accent-dark: var(--green-dark);
--success: var(--green);
--fail: var(--red);
--sans: Alegreya Sans TSF, Alegreya Sans, Noto Sans, sans-serif;
--mono: "IBM Plex Mono", monospace;
--draft: "iA Writer Quattro S", var(--mono);
font-size: 1.125rem;
}
body {
min-block-size: 100vb;
margin: 0;
padding: 0;
color: var(--light);
font-family: var(--sans);
line-height: 1.25;
background-color: var(--dark);
}
.red {
--accent: var(--red);
--accent-dark: var(--red-dark);
}
.orange {
--accent: var(--orange);
--accent-dark: var(--orange-dark);
}
.yellow {
--accent: var(--yellow);
--accent-dark: var(--yellow-dark);
}
.green {
--accent: var(--green);
--accent-dark: var(--green-dark);
}
.teal {
--accent: var(--teal);
--accent-dark: var(--teal-dark);
}
.blue {
--accent: var(--blue);
--accent-dark: var(--blue-dark);
}
.purple {
--accent: var(--purple);
--accent-dark: var(--purple-dark);
}
a {
color: inherit;
}
input,
select,
button,
.button,
textarea {
padding: 0;
color: inherit;
font-family: var(--sans);
font-size: 1em;
border: none;
background-color: var(--dark-2);
border-radius: 0.5rem;
}
input,
select {
inline-size: auto;
min-inline-size: 0;
}
button,
a.button,
input[type="submit"] {
padding: 0.5ch 1ch;
min-inline-size: 10ch;
text-align: center;
cursor: pointer;
}
a.button {
text-decoration: none;
}
:is(input[type="submit"], button, .button).textual {
padding: 0;
margin: 0;
color: var(--accent);
background-color: transparent;
border-radius: 0;
}
:is(input[type="submit"], button, .button).textual:is(:hover, :focus) {
border-block-end: 1px solid;
}
:is(input[type="submit"], button, .button).hollow {
color: var(--accent);
border: 0.125em solid var(--accent);
}
:is(input[type="submit"], button, .button).hollow:is(:hover, :focus) {
color: var(--dark);
background-color: var(--accent-dark);
border: none;
}
:is(input[type="submit"], button, .button).filled {
color: var(--dark);
background-color: var(--accent);
}
:is(input[type="submit"], button, .button).filled:is(:hover, :focus) {
background-color: var(--accent-dark);
}
:is(input[type="submit"], button, .button).flex {
display: flex;
justify-content: center;
align-items: center;
gap: 1ch;
}
.all-sc {
font-variant-caps: all-small-caps;
letter-spacing: 0.05em;
}
.sans {
font-family: var(--sans);
}
.draft {
font-family: var(--draft);
}
.mono {
font-family: var(--mono);
}
input.mono,
input.draft {
font-size: 0.9em;
}
.message {
font-style: italic;
}
.failure {
color: var(--fail);
}
.success {
color: var(--success);
}
.sc-header {
margin: 0;
padding: 0;
font-size: 1em;
font-variant-caps: small-caps;
font-weight: normal;
letter-spacing: 0.05em;
}
.icon {
font-family: "Material Symbols";
}
:lang(ar, ur, he) {
direction: rtl;
}
form:not([hidden]) {
display: flex;
flex-direction: column;
padding-inline: 1rem;
gap: 1em;
align-items: start;
accent-color: var(--accent);
}
fieldset {
display: grid;
grid-template-columns: auto minmax(0, 1fr);
align-items: center;
gap: 1ch;
margin: 0;
padding: 0;
border: 0;
}
legend {
display: block;
grid-column: 1 / 3;
margin-block-end: 0.5ch;
font-weight: bold;
font-size: 1.25em;
}
input[type="checkbox"],
input[type="radio"] {
accent-color: var(--accent);
color-scheme: dark;
inline-size: 1.5em;
block-size: 1.5em;
margin: 0;
padding: 0;
}
@font-face {
font-family: "Material Symbols";
src: url("/fonts/material-symbols.woff2") format("woff2");
font-weight: normal;
font-style: normal;
font-display: fallback;
}
@font-face {
font-family: "Alegreya Sans TSF";
src: url("/fonts/alegreyasans-bolditalic.woff2") format("woff2");
font-weight: bold;
font-style: italic;
font-display: fallback;
}
@font-face {
font-family: "Alegreya Sans TSF";
src: url("/fonts/alegreyasans-italic.woff2") format("woff2");
font-weight: normal;
font-style: italic;
font-display: fallback;
}
@font-face {
font-family: "Alegreya Sans TSF";
src: url("/fonts/alegreyasans-regular.woff2") format("woff2");
font-weight: normal;
font-style: normal;
font-display: fallback;
}
@font-face {
font-family: "Alegreya Sans TSF";
src: url("/fonts/alegreyasans-bold.woff2") format("woff2");
font-weight: bold;
font-style: normal;
font-display: fallback;
}
@font-face {
font-family: "IBM Plex Mono";
src: url("/fonts/IBMPlexMono-Regular.woff2") format("woff2");
font-weight: normal;
font-style: normal;
font-display: fallback;
}
@font-face {
font-family: "IBM Plex Mono";
src: url("/fonts/IBMPlexMono-Bold.woff2") format("woff2");
font-weight: bold;
font-style: normal;
font-display: fallback;
}
@font-face {
font-family: "IBM Plex Mono";
src: url("/fonts/IBMPlexMono-Italic.woff2") format("woff2");
font-weight: normal;
font-style: italic;
font-display: fallback;
}
@font-face {
font-family: "IBM Plex Mono";
src: url("/fonts/IBMPlexMono-BoldItalic.woff2") format("woff2");
font-weight: bold;
font-style: italic;
font-display: fallback;
}
@font-face {
font-family: "iA Writer Quattro S";
src: url("/fonts/iAWriterQuattroS-Regular.woff2") format("woff2");
font-weight: normal;
font-style: normal;
font-display: fallback;
}