@charset "UTF-8";

/* ===== Minimal Modern Reset (practical) ===== */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }

/* タイポグラフィの土台 */
html, body { height: 100%; }
html { -webkit-text-size-adjust: 100%; }
body { line-height: 1.5; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* メディアはコンテナに収まる */
img, picture, video, canvas, svg { display: block; max-width: 100%; }

/* フォーム類：継承させて崩れにくく */
input, button, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; }

/* 見出し・段落・リストの余白はユーティリティで管理 */
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd { margin: 0; }

/* リストのデフォルトマーカーは必要時だけ付ける想定 */
ul, ol { list-style: none; padding-left: 0; }

/* アンカー：下線の見えやすさ */
a { color: inherit; text-decoration: underline; text-decoration-skip-ink: auto; }
a:where(:not([class])) { text-decoration-thickness: 0.08em; }

/* 余分なスクロール挙動を抑制（ユーザー設定尊重） */
@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

/* テーブルは必要時に枠線を付ける前提 */
table { border-collapse: collapse; border-spacing: 0; }

/* フォームのアウトラインは残す（アクセシビリティ） */
:focus { outline: 2px solid Highlight; outline-offset: 2px; }
@supports not selector(:focus-visible) {
  /* 古いブラウザ向け：常時表示でOK */
}
:focus-visible { outline: 2px solid Highlight; outline-offset: 2px; }
