/* 斎場御嶽・3D俯瞰（独立節）専用CSS。番人裁定 2026-07-13。
 * 掟：既存CSS（tokens.css/components.css）の変数・クラスに依存しない自己完結
 *     （撤去＝本ファイル削除で完全復元）。文字書体・地色はページから継承のみ。
 * 規約：Google のロゴ・帰属表示に一切干渉しない——地図要素の上に重ねる装飾・
 *     疑似要素・グラデーション・overflow 切り欠きを置かない。 */

.v3d {
  max-width: 1120px;
  margin: 0 auto;
  padding: clamp(28px, 4.5vw, 64px) clamp(18px, 4vw, 36px);
  opacity: 0;
  transition: opacity .9s ease;
}
.v3d.is-on { opacity: 1; }

.v3d__ey {
  margin: 0 0 12px;
  font-size: 11px;
  letter-spacing: .24em;
  opacity: .55;
}
.v3d__t {
  margin: 0 0 12px;
  font-size: clamp(20px, 2.4vw, 27px);
  font-weight: 600;
  letter-spacing: .06em;
}
.v3d__lead {
  margin: 0 0 20px;
  max-width: 42em;
  font-size: 14px;
  line-height: 2;
  opacity: .85;
}

.v3d__stage { position: relative; }

/* 地図の器：ロゴ・帰属はGoogleが要素内に描く＝この器は覆いを持たない */
.v3d__map {
  display: none;
  width: 100%;
  height: clamp(320px, 52vh, 560px);
  background: transparent;
}
.v3d.is-live .v3d__map { display: block; }

/* 読み込み位相（warm）：display:none＝サイズ0の中では gmp-map-3d のタイル描画完了
 * （gmp-steadychange）が発火しないため、実寸を持つ不可視の固定枠で先に読み込ませる。
 * ページの流れには一切影を落とさない（fixed・opacity 0・操作不可・最背面）。
 * 完成（steady）で warm を外すと同じ要素がそのまま節内の器に収まる（再生成なし）。 */
.v3d--pre { padding: 0; }
.v3d--pre .v3d__ey, .v3d--pre .v3d__t, .v3d--pre .v3d__lead, .v3d--pre .v3d__start { display: none; }
.v3d--warm .v3d__map {
  display: block;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  opacity: 0;
  pointer-events: none;
  z-index: -1;
}
.v3d__map gmp-map-3d {
  display: block;
  width: 100%;
  height: 100%;
}

/* モバイルのタップ起動カード（裁定③案1・画像なし） */
.v3d__start {
  display: none;
  padding: 12px 28px;
  font: inherit;
  font-size: 14px;
  letter-spacing: .12em;
  color: inherit;
  background: transparent;
  border: 1px solid currentColor;
  border-radius: 2px;
  cursor: pointer;
}
.v3d--tap .v3d__start { display: inline-block; }
.v3d--tap .v3d__map { display: none; }
