@font-face {
  font-family: "IBMPlexSansJP";
  src: url("/fonts/IBMPlexSansJP-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
a {
  color: var(--color-link);
}
a:hover {
  color: var(--color-link-hover);
  text-decoration: none;
}
abbr[title] {
  text-decoration: underline dotted;
}
b,
strong {
  font-weight: bolder;
}
b,
h1,
h2,
h3,
h4,
h5,
h6,
strong {
  color: var(--color-text);
  font-weight: var(--font-bold);
}
hr {
  margin: var(--row-gap-medium) 0;
  border: 0;
  border-top: 1px solid var(--color-line);
  background: none;
  color: var(--color-line);
}
table {
  margin: 1em 0;
  border-color: inherit;
  text-indent: 0;
}
table td,
table th {
  padding-right: 1em;
}
[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}
::-webkit-search-decoration {
  -webkit-appearance: none;
}
input[type="text"],
input[type="search"] {
  display: block;
  width: 100%;
  min-height: 2.75em;
  padding: 0.7em;
  border: 1px solid;
  background: inherit;
  color: inherit;
}
:is(input[type="text"], input[type="search"])::placeholder {
  color: currentcolor;
  opacity: 0.5;
}
code,
kbd,
pre,
samp {
  font-family: ui-monospace, SFMono-Regular, Consolas, Liberation Mono, Menlo, monospace;
  font-size: 1em;
}
code,
pre {
  font: var(--font-code);
  letter-spacing: 0;
  font-variant-ligatures: none;
}
:not(pre) > code {
  padding: 0 0.2rem;
  border-radius: 4px;
  background: var(--color-highlight);
  color: var(--color-text);
  font-size: 0.95em;
  letter-spacing: inherit;
}
:focus {
  z-index: 1;
}
:focus-visible {
  outline: 1px solid var(--color-line);
  outline-offset: 2px;
}
.badge {
  display: inline-block;
  padding: 0.2em 0.6em;
  border: 1px solid var(--color-line);
  border-radius: 4px;
  color: var(--color-dim);
  text-decoration: none;
}
.badge:hover {
  background-color: var(--color-line);
}
.page-title {
  margin: 0;
  letter-spacing: var(--font-display-spacing);
  text-wrap: balance;
}
.page-pagination {
  margin-top: var(--row-gap-medium);
  border-top: 1px solid var(--color-line);
}
.pagination ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 2rem;
  padding: 0;
  list-style: none;
}
.pagination ul:has(.pagination-page) {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}
.pagination a {
  display: block;
  color: var(--color-dim);
  text-decoration: none;
}
.pagination a:hover strong {
  text-decoration: underline;
}
.pagination strong {
  display: block;
  color: var(--color-base);
}
.pagination-prev {
  grid-column: 1;
  text-align: left;
}
.pagination-page {
  grid-column: 2;
  text-align: center;
}
.pagination-next {
  grid-column: -2;
  text-align: right;
}
blockquote {
  margin: 1.5em 0;
  padding-block: 0.75em;
  padding-inline: 1.5em;
  border-left: 4px solid var(--color-line);
  background-color: var(--color-highlight);
  color: var(--color-dim);
}
code[class*="language-"],
pre[class*="language-"] {
  direction: ltr;
  font: var(--font-code);
  text-align: left;
  white-space: pre;
  word-break: normal;
  word-spacing: normal;
  tab-size: 4;
  hyphens: none;
  border-radius: var(--border-radius);
  color: var(--code-text);
}
code[class*="language-"]::selection,
code[class*="language-"] ::selection,
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection {
  background: var(--code-background-selection);
}
pre[class*="language-"] {
  margin: 0.5em 0;
  overflow: auto;
  padding: 1em;
}
:not(pre) > code[class*="language-"],
pre[class*="language-"] {
  border: 1px solid var(--code-border);
  background: var(--code-background);
}
:not(pre) > code[class*="language-"] {
  padding: 0.15em 0.2em 0.05em;
}
.namespace,
.token.punctuation {
  opacity: 0.7;
}
.token {
  position: relative;
  z-index: 1;
}
.token.bold,
.token.important {
  font-weight: 700;
}
.token.italic {
  font-style: italic;
}
.token.entity {
  cursor: help;
}
.token.cdata,
.token.comment,
.token.doctype,
.token.prolog {
  color: var(--code-comment);
}
.token.builtin,
.token.constant,
.token.keyword,
.token.property,
.token.selector,
.token.symbol {
  color: var(--code-token-1);
}
.token.boolean,
.token.number,
.token.tag {
  color: var(--code-token-2);
}
.token.deleted {
  color: var(--code-deleted);
}
.token.inserted {
  color: var(--code-inserted);
}
.token.attr-value,
.token.char,
.token.entity,
.token.operator,
.token.string,
.token.url,
.token.variable {
  color: var(--code-token-3);
}
.token.atrule,
.token.attr-name,
.token.regex {
  color: var(--code-token-4);
}
.footnotes {
  margin-top: 5em;
  color: var(--color-dim);
  font: var(--font-small);
}
.footnotes > dl {
  margin: 0;
}
.footnotes > dl > div {
  padding: 0.5em;
}
.footnotes > dl > div:target {
  outline: 1px dashed var(--color-primary);
}
:is(.footnotes > dl > div) + div {
  margin-top: 0.5em;
}
.footnotes dt {
  float: left;
  margin-right: 1em;
  font-weight: 700;
}
.footnotes dt a {
  color: var(--color-base);
  text-decoration: none;
}
.footnotes dt a:hover {
  text-decoration: underline;
}
.footnotes dd {
  margin: 0;
  padding-left: 2em;
}
.footnotes dd p {
  margin: 0.25em 0;
}
.footnotes dd > :first-child {
  margin-top: 0;
}
.footnotes dd > :last-child {
  margin-bottom: 0;
}
@media (max-width: 576px) {
  .pagination strong {
    display: none;
  }
}