/* node_modules/modern-normalize/modern-normalize.css */
*,
::before,
::after {
  box-sizing: border-box;
}
html {
  font-family:
    system-ui,
    "Segoe UI",
    Roboto,
    Helvetica,
    Arial,
    sans-serif,
    "Apple Color Emoji",
    "Segoe UI Emoji";
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  tab-size: 4;
}
body {
  margin: 0;
}
b,
strong {
  font-weight: bolder;
}
code,
kbd,
samp,
pre {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Consolas,
    "Liberation Mono",
    Menlo,
    monospace;
  font-size: 1em;
}
small {
  font-size: 80%;
}
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
table {
  border-color: currentcolor;
}
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}
button,
[type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
}
legend {
  padding: 0;
}
progress {
  vertical-align: baseline;
}
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
::-webkit-search-decoration {
  -webkit-appearance: none;
}
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}
summary {
  display: list-item;
}

/* client/style.css */
html,
body {
  margin: 0;
  padding: 0;
  font-family: "Noto Sans", sans-serif;
  background: var(--base, #303446);
  color: var(--text);
}
body {
  height: 100vh;
  max-height: 100vh;
}
#root {
  display: grid;
  grid-template-rows: auto 1fr;
  height: 100%;
  max-height: 100%;
  width: 100%;
  box-sizing: border-box;
  padding: 4rem;
}
select {
  margin: 0.5rem 0;
  background: var(--surface1);
  color: var(--text);
  border: none;
  padding: 0.5rem;
  border-radius: 0.4rem;
  font-family: "Noto Sans";
}
.canvas-wrapper-outer {
  box-sizing: border-box;
  display: grid;
  overflow: hidden;
  border: 0.15rem solid var(--mauve);
}
.canvas-wrapper-inner {
  position: relative;
}
canvas {
  position: absolute;
}
.canvas-wrapper-outer .grid {
  position: absolute;
  transition: opacity 0.2s;
  image-rendering: optimizeSpeed;
  image-rendering: -moz-crisp-edges;
  image-rendering: -o-crisp-edges;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: pixelated;
  image-rendering: optimize-contrast;
  -ms-interpolation-mode: nearest-neighbor;
}
.grid div {
  position: absolute;
  height: 100%;
  width: 100%;
  background-image:
    linear-gradient(var(--col) 2px, transparent 2px),
    linear-gradient(
      90deg,
      var(--col) 2px,
      transparent 2px);
}
.grid .grid-minor {
  --col: var(--surface1);
}
.grid .grid-major {
  --col: var(--surface2);
}
/*! Bundled license information:

modern-normalize/modern-normalize.css:
  (*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize *)
*/
/*# sourceMappingURL=bundle.css.map */
