:root {
  --ink: #171914;
  --paper: #f4f1e9;
  --mist: #e9e5da;
  --muted: #5e625a;
  --accent: #8b6b2d;
  --rule: #cbc6b9;
  --serif: Iowan Old Style, Baskerville, "Noto Serif JP", "Hiragino Mincho ProN", serif;
  --ui: Inter, "Noto Sans JP", "Hiragino Kaku Gothic ProN", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--serif); font-size: 16px; line-height: 1.75; }
a { color: inherit; text-underline-offset: .24em; }
a:hover { color: var(--accent); }
a:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 2; padding: .75rem 1rem; background: var(--ink); color: var(--paper); font-family: var(--ui); }.skip-link:focus { top: 1rem; }
.site-header, main, .site-footer { width: min(100% - 3rem, 76rem); margin-inline: auto; }
.site-header { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; min-height: 5.5rem; border-bottom: 1px solid var(--rule); font-family: var(--ui); }
.wordmark { font-weight: 800; letter-spacing: .18em; text-decoration: none; font-size: .83rem; }.site-header nav { display: flex; gap: 1.25rem; }.site-header nav a { font-size: .75rem; font-weight: 700; text-decoration: none; }.site-header nav a[aria-current="page"] { color: var(--accent); text-decoration: underline; }.header-contact { justify-self: end; padding: .56rem .85rem; background: var(--ink); color: var(--paper); font-size: .74rem; font-weight: 700; text-decoration: none; }
.hero { display: grid; align-content: center; min-height: 73vh; max-width: 67rem; padding-block: clamp(5rem, 13vw, 10rem); }.hero-compact { min-height: auto; padding-block: clamp(4rem, 9vw, 7rem); }.eyebrow, .role, .footer-label { margin: 0 0 1rem; color: var(--accent); font-family: var(--ui); font-size: .68rem; font-weight: 800; letter-spacing: .16em; }.hero h1 { max-width: 9ch; margin: 0 0 1.6rem; font-size: clamp(3.75rem, 10vw, 8.2rem); font-weight: 400; letter-spacing: -.06em; line-height: .92; }.lead, .statement { max-width: 44rem; margin: 0 0 2rem; font-size: clamp(1.08rem, 2.1vw, 1.35rem); }
.button { width: fit-content; padding: .72rem 1rem; background: var(--ink); color: var(--paper); font-family: var(--ui); font-size: .78rem; font-weight: 700; text-decoration: none; }.button:hover { background: var(--accent); color: var(--paper); }
.section { margin-inline: calc((100vw - min(100vw - 3rem, 76rem)) / -2); padding: clamp(4rem, 9vw, 7rem) max(1.5rem, calc((100vw - min(100vw - 3rem, 76rem)) / 2)); }.section-muted { background: var(--mist); }.section-heading { margin-bottom: 3rem; }.section-heading h2 { max-width: 15ch; margin: 0; font-size: clamp(2.2rem, 5vw, 4.4rem); font-weight: 400; letter-spacing: -.04em; line-height: 1.06; }.card-grid, .network-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--ink); }.content-card, .network-card { min-height: 15rem; padding: 1.35rem 1.35rem 1.35rem 0; border-bottom: 1px solid var(--rule); }.content-card + .content-card, .network-card + .network-card { padding-left: 1.35rem; border-left: 1px solid var(--rule); }.content-card h3, .network-card h3 { margin: 0 0 .7rem; font-size: 1.38rem; font-weight: 400; }.content-card p, .network-card p { color: var(--muted); }.network-card { display: flex; flex-direction: column; }.network-card__link { display: flex; flex: 1; flex-direction: column; color: inherit; text-decoration: none; }.network-card .index { margin: 0 0 2.8rem; color: var(--accent); font-family: var(--ui); font-size: .7rem; font-weight: 800; letter-spacing: .16em; }.network-card .role { color: var(--muted); margin-bottom: .65rem; }.network-card__cta { margin-top: auto; padding-top: 1rem; font-family: var(--ui); font-size: .76rem; font-weight: 700; }.network-card__link:hover .network-card__cta, .network-card__link:focus-visible .network-card__cta { color: var(--accent); text-decoration: underline; }.prose-list { max-width: 62rem; border-top: 1px solid var(--ink); }.prose-list article { display: grid; grid-template-columns: minmax(12rem, .65fr) minmax(0, 1.35fr); gap: 2rem; padding-block: clamp(2rem, 5vw, 3.6rem); border-bottom: 1px solid var(--rule); }.prose-list h2 { margin: 0; font-size: clamp(1.45rem, 3vw, 2rem); font-weight: 400; line-height: 1.2; }.prose-list p { max-width: 38rem; margin: 0; }.site-footer { display: grid; grid-template-columns: 1.2fr 1fr auto; gap: 2rem; padding-block: 3rem; color: var(--muted); font-size: .9rem; }.footer-title { margin: 0; color: var(--ink); font-family: var(--ui); font-size: .8rem; font-weight: 800; letter-spacing: .15em; }.site-footer p { margin: 0; }.site-footer ul { margin: .5rem 0 0; padding: 0; list-style: none; }.site-footer li + li { margin-top: .25rem; }.footer-date { align-self: end; font-family: var(--ui); font-size: .68rem; letter-spacing: .08em; white-space: nowrap; }
@media (max-width: 700px) { .site-header { grid-template-columns: 1fr auto; gap: 1rem; min-height: 5rem; }.site-header nav { order: 3; grid-column: 1 / -1; gap: 1rem; padding-bottom: .85rem; }.header-contact { padding: .5rem .6rem; }.hero { min-height: 64vh; }.card-grid, .network-grid { grid-template-columns: 1fr; }.content-card, .network-card, .content-card + .content-card, .network-card + .network-card { min-height: auto; padding: 1.35rem 0; border-left: 0; }.prose-list article { grid-template-columns: 1fr; gap: .85rem; }.site-footer { grid-template-columns: 1fr; gap: 1.5rem; }.footer-date { align-self: auto; } }
.journey-rail { border-bottom: 1px solid var(--rule); font-family: var(--ui); }
.journey-rail__inner { width: min(100% - 3rem, 76rem); margin-inline: auto; padding-block: 1rem 1.15rem; }
.journey-rail__eyebrow { margin: 0 0 .7rem; color: var(--accent); font-size: .65rem; font-weight: 800; letter-spacing: .16em; line-height: 1.4; }
.journey-rail__eyebrow span { color: var(--muted); font-weight: 600; letter-spacing: .08em; }
.journey-rail__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; border-top: 1px solid var(--ink); list-style: none; }
.journey-rail__item { border-bottom: 1px solid var(--rule); }
.journey-rail__item + .journey-rail__item { border-left: 1px solid var(--rule); }
.journey-rail__item a { display: grid; grid-template-columns: auto 1fr; column-gap: .75rem; align-content: center; min-height: 4.65rem; padding: .65rem 1rem; color: inherit; text-decoration: none; }
.journey-rail__number { grid-row: span 2; align-self: start; padding-top: .08rem; color: var(--accent); font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
.journey-rail__chapter { font-size: .81rem; font-weight: 800; line-height: 1.35; }
.journey-rail__destination { color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .06em; line-height: 1.45; }
.journey-rail__current { grid-column: 2; width: fit-content; margin-top: .22rem; padding: .08rem .38rem; border: 1px solid currentColor; color: var(--accent); font-size: .62rem; font-weight: 800; letter-spacing: .08em; line-height: 1.4; }
.journey-rail__item--current a { background: color-mix(in srgb, var(--mist) 58%, transparent); }
.network-card__chapter { margin: 0 0 .75rem; color: var(--accent); font-family: var(--ui); font-size: .65rem; font-weight: 800; letter-spacing: .1em; line-height: 1.45; }
.network-card__current { display: inline-block; margin-left: .35rem; padding: .04rem .3rem; border: 1px solid currentColor; font-size: .58rem; letter-spacing: .06em; vertical-align: .1em; }
.network-card[data-chapter-card] .index { margin-bottom: 1.25rem; }
.network-card--current { background: color-mix(in srgb, var(--paper) 40%, transparent); }
html.journey-arrived .journey-rail__item { animation: journey-arrival 420ms ease-out both; }
html.journey-arrived .journey-rail__item:nth-child(2) { animation-delay: 55ms; }
html.journey-arrived .journey-rail__item:nth-child(3) { animation-delay: 110ms; }
@keyframes journey-arrival { from { opacity: .84; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 700px) {
  .journey-rail__inner { padding-block: .85rem; }
  .journey-rail__list { grid-template-columns: 1fr; }
  .journey-rail__item + .journey-rail__item { border-left: 0; }
  .journey-rail__item a { min-height: 4.25rem; padding-inline: .85rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0ms !important; scroll-behavior: auto !important; transition-duration: .01ms !important; transition-delay: 0ms !important; transform: none !important; }
}

html.a11y-reduce-motion, html.a11y-reduce-motion *, body.a11y-reduce-motion, body.a11y-reduce-motion * { scroll-behavior: auto !important; transition-delay: 0ms !important; transition-duration: .01ms !important; animation-delay: 0ms !important; animation-duration: .01ms !important; transform: none !important; }

@media (forced-colors: active) {
  .journey-rail__item--current a, .network-card--current { border: 1px solid CanvasText; }
  .journey-rail__current, .network-card__current { forced-color-adjust: none; color: CanvasText; border-color: CanvasText; }
}
