:root {
  color-scheme: dark;
  background: #05070a;
}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
}

body {
  display: grid;
  place-items: center;
  min-width: 320px;
  min-height: 100%;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(14, 18, 22, 0.96), rgba(5, 7, 10, 1)),
    #05070a;
}

.shell {
  display: grid;
  place-items: center;
  width: 100vw;
  height: 100vh;
  padding: 12px;
}

canvas {
  display: block;
  max-width: 100%;
  max-height: 100%;
  outline: 1px solid #29333a;
  background: #05070a;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

.speedrun-timer {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 20;
  width: 218px;
  padding: 12px;
  border: 1px solid #53615b;
  border-left: 5px solid #7bd88f;
  border-radius: 4px;
  background: rgba(3, 5, 7, 0.92);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.45);
  color: #e9fff1;
  cursor: grab;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  user-select: none;
}

.speedrun-timer:active {
  cursor: grabbing;
}

.speedrun-title,
.speedrun-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.speedrun-title {
  color: #8b968f;
  font-size: 12px;
  line-height: 1;
}

.speedrun-status {
  color: #7bd88f;
}

.speedrun-time {
  margin: 8px 0 10px;
  color: #f8fff8;
  font-size: 34px;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.speedrun-meta {
  color: #9fb4aa;
  font-size: 12px;
  line-height: 1.35;
}

.speedrun-meta + .speedrun-meta {
  margin-top: 4px;
}

.speedrun-step,
.speedrun-frame,
.speedrun-turn {
  color: #d9f7df;
}
