    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }
    html, body {
      height: 100%;
    }
    body {
      font-family: Arial, sans-serif;
      background: #e8dbca;
      color: #000;
      margin: 0;
      display: flex;
      flex-direction: column;
    }
    h2 {
      margin: .2rem 0;
      text-align: center;
    }
    h3 {
      text-align: center;
    }
    .wrapper {
      display: flex;
      flex-direction: column;
      flex: 1;
    }
    .canvas-wrapper {
      width: 100%;
      max-width: 800px;
      margin: .1rem auto;
      padding: 5px;
      background: #e8dbca;
    }
    #gameCanvas {
      width: 100%;
      aspect-ratio: 800 / 600;
      background: #e8dbca;
      border: 1px solid #000;
      box-sizing: border-box;
      display: block;
      touch-action: none;
      -ms-touch-action: none;
    }
    button {
      font-size: 1.1em;
      padding: 5px 10px;
    }
    .hist-carousel {
      width: 100%;
      max-width: 800px;
      margin: .1rem auto;
      display: flex;
      overflow-x: auto;
      gap: .75rem;
      padding: .1rem 1rem;
      scroll-snap-type: x mandatory;
      justify-content: flex-start;
    }
    .hist-item {
      flex: 0 0 auto;
      display: flex;
      flex-direction: column;
      align-items: center;
      scroll-snap-align: center;
    }
    .hist-item label {
      margin-top: .4rem;
      font-weight: bold;
    }
    .histogram {
      width: 100%;
      height: 100px;
      background: #fff;
      border: 1px solid #000;
      image-rendering: pixelated;
      box-shadow: 0 -2px 6px rgba(0,0,0,.25);
    }
    .hist-item:nth-child(1) { flex:6 1 0; }
    .hist-item:nth-child(2) { flex:11 1 0; }
    .hist-item:nth-child(3) { flex:42 1 0; }
    .hist-item:nth-child(4) { flex:11 1 0; }
    .hist-item:nth-child(5) { flex:30 1 0; }
    .button-container {
      width: 100%;
      max-width: 800px;
      margin: 0 auto;
      background: #fff;
      display: flex;
      justify-content: space-evenly;
      padding: .4rem 0;
    }
    footer {
      text-align: center;
      padding: .5rem 0;
      background: #e8dbca;
      font-size: 0.9em;
      color: gray;
    }
