* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: #21343b; background: #f2f7f8; font: 16px/1.8 system-ui, -apple-system, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; }
a { color: #145f76; text-underline-offset: .18em; }
a:hover { color: #0b4357; }
a:focus-visible { outline: 3px solid #267c98; outline-offset: 3px; border-radius: 3px; }
.article-shell { width: min(900px, calc(100% - 32px)); margin-inline: auto; }
.article-header { background: #fff; border-bottom: 1px solid #d9e6e9; }
.article-header-inner { min-height: 64px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.article-brand { display: inline-flex; align-items: center; gap: 10px; color: #193941; text-decoration: none; font-weight: 750; }
.article-brand-mark { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #d8eef3; color: #145f76; }
.article-nav { display: flex; flex-wrap: wrap; gap: 16px; font-size: .92rem; }
.article-main { padding-block: 24px 48px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0 0 18px; padding: 0; color: #596b71; font-size: .88rem; }
.breadcrumbs li + li::before { content: "/"; margin-right: 8px; color: #8a999d; }
.article-card { padding: clamp(20px, 5vw, 48px); border: 1px solid #dce8eb; border-radius: 18px; background: #fff; box-shadow: 0 10px 28px #2446530b; }
.article-kicker { margin: 0 0 8px; color: #397d8d; font-size: .82rem; font-weight: 750; letter-spacing: .06em; }
h1, h2, h3 { color: #213a42; line-height: 1.4; }
h1 { margin: 0; font-size: clamp(1.8rem, 5vw, 2.55rem); }
h2 { margin: 2rem 0 .65rem; font-size: 1.35rem; }
h3 { margin: 1.25rem 0 .45rem; font-size: 1.08rem; }
p { margin: .75rem 0; }
.article-lede { margin: 1rem 0 1.3rem; color: #425a62; font-size: 1.08rem; }
.updated { color: #64767b; font-size: .88rem; }
.article-callout { margin: 1.25rem 0; padding: 14px 18px; border-left: 4px solid #5da8b9; border-radius: 8px; background: #edf7f8; }
.article-warning { border-left-color: #c17a40; background: #fff6ec; }
.article-table-wrap { overflow-x: auto; margin: 1rem 0; border: 1px solid #dce8eb; border-radius: 10px; }
table { width: 100%; border-collapse: collapse; background: #fff; }
th, td { padding: 11px 13px; border-bottom: 1px solid #e2ecee; text-align: left; vertical-align: top; }
th { background: #eef6f7; font-weight: 720; }
tr:last-child td { border-bottom: 0; }
code { padding: .08em .35em; border-radius: 4px; background: #f0f3f3; color: #28464f; font-size: .92em; overflow-wrap: anywhere; }
.article-list { padding-left: 1.35rem; }
.article-list li { margin: .4rem 0; }
.source-list li { margin: .5rem 0; }
.article-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 1.7rem; }
.article-action { display: inline-block; padding: 8px 14px; border: 1px solid #9fc5cd; border-radius: 999px; background: #eff8f9; text-decoration: none; font-weight: 680; }
.article-directory { display: grid; gap: 14px; margin-top: 1.4rem; }
.article-entry { padding: 18px 20px; border: 1px solid #dce8eb; border-radius: 12px; background: #fff; }
.article-entry h2 { margin: 0 0 .35rem; font-size: 1.15rem; }
.article-footer { padding: 20px 0 32px; border-top: 1px solid #d9e6e9; color: #586d73; font-size: .9rem; }
@media (max-width: 520px) {
  .article-header-inner { align-items: flex-start; flex-direction: column; padding-block: 12px; }
  .article-nav { gap: 12px; }
  .article-card { border-radius: 12px; }
  th, td { min-width: 112px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
