    body {
      margin: 0;
      padding: 0;
      font-family: 'Noto Sans JP', 'Noto Sans Thai', sans-serif;
      background-color: #f9f9f9;
      color: #333;
    }
    header {
      background-color: #2c3e50;
      color: white;
      padding: 1rem 2rem;
      text-align: center;
    }
    main {
      max-width: 800px;
      margin: 2rem auto;
      padding: 1rem;
      background-color: white;
      border-radius: 10px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    }
    h1, h2 {
      color: white;
    }
    p {
      line-height: 1.6;
    }
    footer {
      text-align: center;
      font-size: 0.9em;
      color: #777;
      padding: 1rem;
    }
    .container {
  display: flex;
  flex-direction: column;
  align-items: center;      /* 横方向中央寄せ */
  justify-content: center;  /* 親の高さがある場合は上下中央 */
  /*height: 100vh;            /* 高さを画面全体に */
}

@media (max-width: 600px) {
  canvas {
    width: 100vw;
    height: auto;
    display: block;
    margin: 0 auto;
  }

  .container {
    padding: 0;
    overflow-x: hidden; 
  }
}