@charset "utf-8";


/* Neo Reset 2025 - Modern Browser Baseline (MIT License)
   Inspired by UA+, @acab/reset.css, Josh Comeau Reset, and CSS Remedy
   Updated: 2025-10-22
*/

/* 全体設定 */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* ルートと共通設定 */
:where(html) {
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  color-scheme: light dark;
  tab-size: 2;
  line-height: 1.5;
  scrollbar-gutter: stable;
  interpolate-size: allow-keywords;
}

/* スムーズスクロール + Reduced Motion対応 */
@media (prefers-reduced-motion: no-preference) {
  html:focus-within { scroll-behavior: smooth; }
}
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

/* 本文 */
:where(body) {
  min-block-size: 100vh;
  font-family: system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeSpeed;
  background-color: Canvas;
  color: CanvasText;
}

/* メディア要素と画像 */
:where(img, svg, video, canvas, audio, iframe) {
  display: block;
  max-inline-size: 100%;
  block-size: auto;
}
:where(svg) {
  fill: currentColor;
  stroke: none;
}

/* テキスト系 */
:where(p, h1, h2, h3, h4, h5, h6) {
  overflow-wrap: break-word;
}
:where(h1, h2, h3) {
  text-wrap: balance;
}

/* リスト・リンク */
:where(ul, ol)[role='list'],
:where(ul, ol) {
  list-style: none;
}
:where(a) {
  color: inherit;
  text-decoration-skip-ink: auto;
  text-underline-offset: 0.15em;
}

/* フォーム要素 */
:where(input, button, textarea, select) {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  word-spacing: inherit;
}
:where(button, [type='button'], [type='submit'], [type='reset']) {
  cursor: pointer;
  -webkit-appearance: button;
  user-select: none;
}
:where(textarea) {
  resize: vertical;
}
:where([disabled]), :where(:disabled) {
  cursor: not-allowed;
}

/* 視覚的補助 */
:where(hr) {
  border: none;
  border-block-start: 1px solid currentColor;
  opacity: 0.2;
  block-size: 0;
  overflow: visible;
}
:where([hidden]:not([hidden='until-found'])) {
  display: none !important;
}
:where(.visually-hidden:not(:focus-within, :active)) {
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
}

/* 対話的要素 */
:where(dialog) {
  border: none;
  background: none;
  color: inherit;
}
:where(dialog:not([open])) {
  display: none !important;
}
:focus-visible {
  outline: 3px solid CanvasText;
  outline-offset: 2px;
}

/* 表 */
:where(table) {
  border-collapse: collapse;
  width: 100%;
}
:where(th, td) {
  border: 1px solid currentColor;
  padding: 0.25em 0.5em;
}



html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}
body {
    line-height:1;
}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section { 
    display:block;
}
ul {
    list-style:none;
}
blockquote, q {
    quotes:none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content:'';
    content:none;
}
a {
    margin:0;
    padding:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
    text-decoration: none;
}
ins {
    background-color:#fff;
    color:#000;
    text-decoration:none;
}
mark {
    background-color:#fff;
    color:#000; 
    font-style:italic;
    font-weight:bold;
}
del {
    text-decoration: line-through;
}
abbr[title], dfn[title] {
    border-bottom:1px dotted;
    cursor:help;
}
table {
    border-collapse:collapse;
    border-spacing:0;
}
hr {
    display:block;
    height:1px;
    border:0;   
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}
input, select {
    vertical-align:middle;
}
