@font-face {
  font-family: 'Merriweather Sans';
  src: url('merriweather-sans-latin.woff2') format('woff2');
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
  margin: 0;
  overflow: hidden;
  background: var(--color-ink);
  color: var(--color-paper);
  font-family: var(--font-body);
  font-size: var(--text-body);
  line-height: var(--leading-body);
}
#unity-canvas {
  display: block;
  width: 100vw;
  height: 100vh;
  visibility: hidden;
}
#unity-canvas[aria-hidden="false"] { visibility: visible; }
#loading-screen {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: auto;
  padding: var(--space-large);
  background: var(--color-ink);
}
.loading-content {
  width: min(100%, 22rem);
  text-align: center;
}
.loading-logo {
  display: block;
  width: 100%;
  height: auto;
  margin-bottom: var(--space-large);
}
#loading-status { margin: 0 0 var(--space-medium); }
#loading-progress {
  display: block;
  appearance: none;
  width: 100%;
  height: var(--space-xsmall);
  border: 0;
  border-radius: var(--radius-media);
  background: var(--color-border);
  color: var(--color-paper);
}
#loading-progress::-webkit-progress-bar { background: var(--color-border); }
#loading-progress::-webkit-progress-value { background: var(--color-paper); }
#loading-progress::-moz-progress-bar { background: var(--color-paper); }
#loading-retry {
  border: 0;
  border-radius: var(--radius-control);
  padding: var(--space-medium) var(--space-large);
  background: var(--color-paper);
  color: var(--color-ink);
  font: inherit;
  font-size: var(--text-label);
  font-weight: var(--weight-strong);
  letter-spacing: var(--tracking-label);
  text-transform: uppercase;
  cursor: pointer;
}
#loading-retry:hover { background: var(--color-paper-hover); }
#loading-retry:focus-visible {
  outline: 2px solid var(--color-paper);
  outline-offset: 2px;
}
#loading-screen[data-failed] #loading-status { color: var(--color-red); }
