html,
body {
margin: 0;
padding: 0;
}
body {
display: grid;
grid-template-rows: min-content minmax(0, 1fr) min-content;
block-size: 100dvb;
}
button,
input,
input[type="file"]::file-selector-button {
padding-block: 0.2em;
padding-inline: 0.6em;
font-family: inherit;
font-size: inherit;
line-height: 1.6;
}
canvas {
block-size: 100%;
inline-size: 100%;
touch-action: none;
}
.loader {
display: flex;
padding: 0.2em;
gap: 0.2em;
justify-content: center;
}
.palette {
overflow-x: auto;
white-space: nowrap;
user-select: none;
}
.palette input {
clip-path: circle(0);
position: absolute;
inset-inline: 0;
inset-block-end: 0;
}
.palette span {
display: inline-block;
border: 1px solid;
text-align: center;
min-inline-size: 3em;
line-height: 3;
border-radius: 0.3em;
margin: 0.2em;
}
.palette input:not(:checked) + span {
opacity: 0.5;
}
@media (prefers-color-scheme: dark) {
:root {
color-scheme: dark;
background: black;
color: white;
}
}