/* 共通の土台スタイル。ページ本体の装飾は stage.css 側で上書きする。 */

:root {
  --bg: #0d0b0a;
  --fg: #222222;
  --muted: #666666;
}

* { box-sizing: border-box; }

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

body {
  background: var(--bg);
  color: var(--fg);
  font-family: system-ui, -apple-system, "Segoe UI", "Hiragino Kaku Gothic ProN",
    "Noto Sans JP", Meiryo, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* スクリーンリーダー専用（aria-live リージョン等を視覚的に隠す） */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}

/* スキップリンク: 通常は隠し、フォーカス時だけ表示 */
.skip-link {
  position: absolute;
  left: 8px; top: -48px;
  padding: 8px 14px;
  background: var(--fg);
  color: #fff;
  border-radius: 6px;
  text-decoration: none;
  transition: top .15s ease;
  z-index: 10;
}
.skip-link:focus { top: 8px; }

/* 画面中央に「工事中」 */
.construction {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .6em;
  text-align: center;
  padding: 24px;
}

.construction__title {
  margin: 0;
  font-size: clamp(2.4rem, 9vw, 4.5rem);
  font-weight: 700;
  letter-spacing: .12em;
}

.construction__sub {
  margin: 0;
  font-size: clamp(.9rem, 3.5vw, 1.1rem);
  color: var(--muted);
}

/* フォーカスの可視化 */
:focus-visible {
  outline: 3px solid #2b6cb0;
  outline-offset: 2px;
}
