/* modern-reset.css — 現代的リセット（:where()対応・最小干渉） */

/* Box sizing */
*, *::before, *::after { box-sizing: border-box; }

/* Margin reset for common blocks */
:where(body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd) { margin: 0; }

/* Base */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Lists */
:where(ul, ol) { list-style: none; padding: 0; }

/* Links */
:where(a) { text-decoration: none; color: inherit; }

/* Media */
:where(img, picture, video, canvas, svg) {
  display: block;
  max-width: 100%;
  height: auto;
}

/* Form controls */
:where(button, input, select, textarea) {
  font: inherit;
  border: none;
  background: none;
  color: inherit;
}
button { cursor: pointer; }
:where(button)[disabled],
:where(input)[disabled],
:where(select)[disabled],
:where(textarea)[disabled] { cursor: default; }

/* Tables */
table { border-collapse: collapse; border-spacing: 0; }

/* Accessibility / misc */
:where([hidden]) { display: none !important; }
:where(:focus-visible) { outline: 2px solid Highlight; outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  * , *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

/* Utilities (reset由来のサイズ上書きを避けたい要素向け) */
.u-media-as-is { max-width: none; height: auto; }      /* 画像アイコン等の固定表示に使用 */
.u-inline       { display: inline; }                    /* 行内配置用の簡易ユーティリティ */
