/* base.css｜素の要素
   日本語の改行：word-break:normal＋line-break:strict。段落の最後の2文字は書き出しのときに U+2060 でつなぐ（tools/tail_glue.py）
   overflow-wrap:anywhere は使わない（URL などの長い英数字だけ break-word で折る） */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--head-h) + 12px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  font-family: var(--jp); color: var(--k); background: var(--w);
  font-size: 15px; line-height: 1.85;
  word-break: normal; line-break: strict; overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased; overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
.ph img, .circ img { width: 100%; height: 100%; object-fit: cover; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 2px solid var(--g); outline-offset: 3px;
}
.nb { white-space: nowrap; }
.kk { margin-left: -.5em; }   /* 行頭の「 を半角ぶん左へ */
.j { font-family: var(--en); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 8px; top: -80px; z-index: 90; background: var(--w); padding: 8px 12px; }
.skip:focus { top: 8px; }
.in { max-width: var(--max); margin: 0 auto; padding-left: var(--gut); padding-right: var(--gut); }
.dark { background: var(--k); color: var(--w); }
