  html, body {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
    background: #000;
    overflow: hidden;
  }
  /* 全画面: 余白は黒のレターボックス/ピラーボックス */
  #stage {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000;
  }
  /* 16:9固定のステージ (JSで最大内接サイズを設定) */
  #frame {
    position: relative;
    overflow: hidden;
    background:
      radial-gradient(circle at 20% 15%, rgba(80, 40, 160, 0.35), transparent 55%),
      radial-gradient(circle at 85% 80%, rgba(20, 120, 200, 0.30), transparent 55%),
      linear-gradient(160deg, #0a0b1a 0%, #05060c 60%, #02030a 100%);
    box-shadow: 0 0 60px rgba(0, 0, 0, 0.8);
  }
  /* 背景動画 (下) と canvas (上) を重ねる */
  #bgv {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    visibility: hidden; /* 読み込み成功後にJSで表示 */
  }
  #game {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
  }
