@charset "utf-8";

/* =========================
   Reset & Base
   ========================= */
*,
*::before,
*::after {
  box-sizing: border-box;
  background-repeat: no-repeat;
}

html {
  overflow-y: scroll;             /* スクロールバー有無でのガタつき防止 */
  -webkit-text-size-adjust: 100%; /* iOS ズーム抑止 */
}

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

body {
  color: #757575;
  font-family: "IBM Plex Sans JP", "Josefin Sans", system-ui, -apple-system,
               "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN",
               "Noto Sans JP", "Yu Gothic", "Helvetica Neue", Arial, sans-serif;
  line-height: 1.6;
}

/* 典型ブロック/インライン要素の余白・装飾をリセット */
html,body,div,span,applet,object,iframe,
h1,h2,h3,h4,h5,h6,p,blockquote,pre,
a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,
small,strike,strong,sub,sup,tt,var,b,u,i,center,
dl,dt,dd,ol,ul,li,
fieldset,form,label,legend,
table,caption,tbody,tfoot,thead,tr,th,td,
article,aside,canvas,details,embed,figure,figcaption,
footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
}

/* リスト・引用・テーブル */
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote::before, blockquote::after,
q::before, q::after { content: ""; }
table { border-collapse: collapse; border-spacing: 0; }

/* リンク */
a { text-decoration: none; color: inherit; }
a:hover { text-decoration: none; }

/* 画像 */
img { max-width: 100%; height: auto; vertical-align: bottom; }

/* pre / コード系の折返し（簡潔版） */
pre {
  margin: 0;
  padding: 0;
  width: 100%;
  font-size: 100%;
  line-height: 1.6;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* 疑似要素の継承（必要最低限） */
::before,
::after {
  text-decoration: inherit;
  vertical-align: inherit;
}

/* 低速環境向け：過剰アニメ抑制（任意） */
@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}