:root {
  color-scheme: light;
  font-family: -apple-system, BlinkMacSystemFont, "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
  color: #192737;
  background: #fff;
  font-size: 100%;
  line-height: 1.9;
  overflow-wrap: anywhere;
}
* { box-sizing: border-box; }
body { margin: 0; }
a { color: #174bb2; text-decoration-thickness: .07em; text-underline-offset: .2em; }
a:hover { color: #062966; }
a:focus-visible { outline: 3px solid #2563d9; outline-offset: 5px; border-radius: 2px; }
.skip-link { position: absolute; top: -8rem; left: 1rem; z-index: 1; background: #fff; padding: .75rem 1rem; }
.skip-link:focus { top: .75rem; }
.site-header, main, .site-footer { width: min(100% - 3rem, 53rem); margin-inline: auto; }
.site-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1.65rem; border-bottom: 1px solid #dae1e9; }
.brand { color: #102948; font-size: 1.75rem; font-weight: 700; letter-spacing: -.04em; white-space: nowrap; }
.arrow { color: #1d57bf; padding-inline: .04em; }
.studio { font-size: .875rem; color: #4b5d70; letter-spacing: .06em; }
main { padding-block: 3.4rem 2.75rem; }
.document-heading { margin-bottom: 1.8rem; }
.eyebrow { margin: 0 0 .55rem; color: #174bb2; font-size: .875rem; letter-spacing: .12em; font-weight: 700; }
h1 { margin: 0; color: #102948; font-size: clamp(1.65rem, 4.7vw, 2.45rem); line-height: 1.5; letter-spacing: -.035em; }
.updated { margin-top: .9rem; color: #526479; font-size: .875rem; }
p { margin: 0 0 1rem; }
.intro { margin-bottom: 1.5rem; }
.summary { margin-bottom: 2.8rem; border-left: 3px solid #2358b9; padding: 1.15rem 1.35rem; background: #f1f6fd; }
.summary p { margin: 0; }
section { margin-bottom: 2.65rem; scroll-margin-top: 1rem; }
h2 { display: flex; align-items: baseline; gap: .75rem; color: #102948; font-size: 1.2rem; line-height: 1.65; padding-bottom: .65rem; margin: 0 0 1.15rem; border-bottom: 1px solid #dae1e9; }
.section-number { flex: 0 0 auto; font-size: .875rem; color: #315dae; font-variant-numeric: tabular-nums; }
ul { padding-left: 1.45rem; margin: 0 0 1.2rem; }
li { padding-left: .2rem; margin-bottom: .55rem; }
li::marker { color: #537196; }
strong { font-weight: 700; }
.details { margin: 1rem 0; }
.details > div { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1rem; padding-block: .55rem; }
dt { color: #4b5d70; }
dd { margin: 0; }
code { font-size: .9em; }
.contact-block { border-left: 2px solid #bacce6; padding-left: 1rem; margin: 1.1rem 0 1.2rem; }
.contact-block p { margin: 0; font-weight: 700; }
.site-footer { border-top: 1px solid #dae1e9; color: #526479; padding-block: 1.5rem 2rem; font-size: .875rem; }
.site-footer span { padding-inline: .65rem; color: #8e9cad; }
@media (max-width: 520px) {
  .site-header, main, .site-footer { width: calc(100% - 2rem); }
  .site-header { align-items: flex-start; flex-direction: column; gap: .1rem; padding-block: 1rem; }
  main { padding-block: 2rem; }
  h2 { gap: .6rem; font-size: 1.125rem; }
  .details > div { grid-template-columns: 1fr; gap: .1rem; padding-block: .6rem; }
  .summary { padding: 1rem; }
}
@media print {
  :root { font-size: 11pt; color: #000; }
  .site-header, main, .site-footer { width: 100%; }
  .skip-link { display: none; }
  main { padding-block: 1.25rem; }
  .summary { background: none; }
  h2 { break-after: avoid; }
  p, li { orphans: 3; widows: 3; }
}
