/* Opt-in presentation. All selectors stay inside the enabled article page. */
body.article-book-page {
  background:#C7E3F6 repeating-linear-gradient(0deg,transparent,transparent 24px,#B0D2EF 24px,#B0D2EF 26px);
}
.article-book {
  --book-ink:#2D302E;
  --book-note:#5C625D;
  --book-line:#DCD8D0;
  --book-blue:#174C9E;
  --book-mat:#F6F3EC;
  --book-marker:#F3DC86;
  width:calc(100% - 40px);
  max-width:880px;
  margin:24px auto 42px;
  padding:0 54px 36px;
  background:#fff;
  color:var(--book-ink);
  border:1px solid #426DAA;
  box-shadow:3px 3px #7D9BC0;
  font:18px/1.85 Meiryo,"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  line-break:strict;
  word-break:normal;
  overflow-wrap:anywhere;
}
.article-book *, .article-book *::before, .article-book *::after { box-sizing:border-box; }
.article-book a { color:var(--book-blue); text-underline-offset:4px; }
.article-book a:hover { text-decoration-thickness:2px; }
.article-book :is(a,summary,[tabindex]):focus-visible { outline:3px solid #B58A00; outline-offset:4px; }
.article-book [id] { scroll-margin-top:76px; }
.article-book .article-book-reader {
  position:sticky;
  top:0;
  z-index:15;
  display:flex;
  flex-wrap:wrap;
  gap:4px 22px;
  align-items:center;
  margin:0 -54px 28px;
  padding:6px 24px;
  border-bottom:1px solid var(--book-line);
  background:#fff;
  font-size:13px;
  line-height:1.7;
}
.article-book-reader a { display:inline-flex; align-items:center; min-height:36px; }
.article-book-reader .article-book-series { margin-left:auto; font-weight:700; }
.article-book .article-opening, .article-book .article-opening.text-opening {
  display:block;
  max-width:none;
  padding:0 0 30px;
  border-bottom:1px solid var(--book-line);
}
.article-book .article-opening h1 {
  margin:16px 0 20px;
  color:var(--book-ink);
  font:700 32px/1.5 Meiryo,"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  letter-spacing:0;
}
.article-book .article-topics { gap:5px 14px; }
.article-book .article-topics a, .article-book .article-topics span { font-size:12px; }
.article-book .writer-byline { margin:0 0 20px; }
.article-book .article-meta { margin:18px 0 0; font-size:12px; color:var(--book-note); }
.article-book .article-summary { font-size:16px; line-height:1.85; color:var(--book-note); }
.article-book .article-ad-disclosure { font-size:12px; line-height:1.8; }
.article-book .article-photo { max-width:100%; margin:28px 0 0; }
.article-book .article-photo figcaption { font-size:12px; line-height:1.8; }
/* Reserve each existing diagram's own ratio before lazy loading; auto keeps its loaded natural ratio. */
.article-book .article-illustration.article-diagram > img[width="680"][height="1120"] { aspect-ratio:auto 680 / 1120; }
.article-book .article-illustration.article-diagram > img[width="680"][height="1230"] { aspect-ratio:auto 680 / 1230; }
.article-book .article-illustration.article-diagram > img[width="680"][height="1400"] { aspect-ratio:auto 680 / 1400; }
.article-book .article-illustration.article-diagram > img[width="680"][height="1628"] { aspect-ratio:auto 680 / 1628; }
.article-book .article-illustration.article-diagram > img[width="720"][height="440"] { aspect-ratio:auto 720 / 440; }
.article-book .article-illustration.article-diagram > img[width="900"][height="540"] { aspect-ratio:auto 900 / 540; }
.article-book .article-illustration.article-diagram > img[width="900"][height="580"] { aspect-ratio:auto 900 / 580; }
.article-book .article-illustration.article-diagram > img[width="900"][height="600"] { aspect-ratio:auto 900 / 600; }
.article-book .article-illustration.article-diagram > img[width="1122"][height="1402"] { aspect-ratio:auto 1122 / 1402; }
.article-book .reading-grid { display:block; padding-top:30px; }
.article-book .reading-grid > *, .article-book .article-body { min-width:0; }
.article-book .article-body { font-size:18px; line-height:1.85; letter-spacing:0; }
.article-book .article-body p { margin:0 0 1.3em; }
.article-book .article-body li { line-height:1.85; }
.article-book .article-body > :first-child { margin-top:0; }
.article-book .article-book-entry { margin:24px 0; }
.article-book .article-book-intro { font-size:16px; line-height:1.85; margin:18px 0 0; }
.article-book .article-book-conversation { margin:0; }
.article-book .article-book-talk {
  display:flex;
  align-items:flex-start;
  gap:16px;
  max-width:92%;
  margin:20px 0;
}
.article-book .article-book-talk > img { flex:0 0 64px; width:64px; height:64px; border-radius:50%; object-fit:cover; }
.article-book .article-book-talk > div { min-width:0; }
.article-book .article-book-talk.is-reply { flex-direction:row-reverse; margin-left:auto; }
.article-book .article-book-speaker { font-size:13px; font-weight:700; line-height:1.8; margin:0 0 5px; }
.article-book .article-book-speech { margin:0; padding:0; border:0; background:transparent; border-radius:0; font-size:16px; line-height:1.8; }
.article-book .article-book-talk.is-reply > div { padding:12px 16px; background:var(--book-mat); }
.article-book .article-book-fiction-note { margin:10px 0 20px; color:var(--book-note); font-size:13px; line-height:1.85; }
.article-book .article-book-contents { margin:28px 0 34px; padding:18px 0; border-block:1px solid var(--book-line); }
.article-book .article-book-contents > p { margin:0 0 10px; font-size:14px; font-weight:700; }
.article-book .article-book-contents ol { list-style:decimal-leading-zero; padding-left:2.1em; margin:0; font-size:15px; line-height:1.8; }
.article-book .article-book-contents li { padding:4px 0; margin:0; }
.article-book .article-book-contents a { display:inline-block; padding:3px 0; }
.article-book .article-book-chapter { margin:42px 0 0; }
.article-book .article-book-heading { min-height:96px; margin:0 0 26px; padding:15px 22px; background:var(--book-blue); color:white; }
.article-book .article-book-chapter-label { margin:0 0 5px; color:white; font-size:13px; line-height:1.6; font-weight:700; }
.article-book .article-book-chapter-label span { margin-right:8px; font-size:15px; font-variant-numeric:tabular-nums; }
.article-book .article-body .article-book-heading h2 {
  margin:0;
  padding:0;
  border:0;
  color:white;
  font:700 27px/1.4 Meiryo,"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;
  letter-spacing:0;
}
.article-book .article-body h3 { margin:30px 0 16px; color:var(--book-ink); font-size:22px; line-height:1.5; }
.article-book .article-book-chapter-nav { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 22px; margin:30px 0 0; padding:14px 0; border-block:1px solid var(--book-line); font-size:14px; }
.article-book .article-book-chapter-nav a { display:inline-flex; align-items:center; min-height:40px; max-width:100%; }
.article-book .article-body mark { color:inherit; background:linear-gradient(transparent 65%,var(--book-marker) 65%,var(--book-marker) 94%,transparent 94%); padding:0 .08em; }
.article-book .article-visual { background:var(--book-mat); border:0; border-radius:0; padding:24px; }
.article-book .article-visual > figcaption { color:var(--book-ink); font-size:20px; line-height:1.6; }
.article-book .article-visual .visual-context { color:var(--book-note); font-size:14px; line-height:1.85; }
.article-book .article-visual .visual-takeaway { font-size:15px; line-height:1.85; }
.article-book .article-book-figure { margin:26px 0 30px; padding:26px 28px 20px; background:var(--book-mat); }
.article-book .article-book-figure > figcaption { margin:0 0 18px; color:var(--book-ink); font-size:20px; line-height:1.6; font-weight:700; }
.article-book .article-book-panels { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.article-book .article-book-panel { min-width:0; }
.article-book .article-book-mount { display:flex; flex-direction:column; align-items:center; justify-content:center; height:310px; gap:10px; padding:10px; background:white; }
.article-book .article-book-mount img { display:block; width:100%; height:auto; max-height:100%; object-fit:contain; }
.article-book .article-book-mount.layout-stacked img { height:calc(50% - 5px); object-fit:contain; }
.article-book .article-body .article-book-panel h3 { margin:14px 0 5px; padding:7px 8px; background:var(--book-blue); color:white; font-size:17px; line-height:1.6; }
.article-book .article-body .article-book-panel p { margin:0; font-size:15px; line-height:1.7; }
.article-book .article-body .article-book-figure-note { margin:16px 0 0; color:var(--book-note); font-size:13px; line-height:1.85; }
.article-book .visual-table-scroll { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; }
.article-book .visual-table-scroll table { margin-bottom:0; }
.article-book .visual-table-scroll th { color:var(--book-ink); background:#EEEAE1; }
.article-book .article-body .related-in-context { padding:14px 0; border-block:1px solid var(--book-line); border-left:0; background:#fff; }
.article-book .reading-grid .related-section { margin:40px 0 24px; }
.article-book .related-section .section-heading { border-bottom:1px solid var(--book-line); }
.article-book .related-section .section-heading h2 { font-size:21px; font-family:inherit; }
.article-book .reading-grid .related-grid { display:block; }
.article-book .reading-grid .related-card { display:grid; grid-template-columns:96px minmax(0,1fr); gap:18px; padding:20px 0; border-bottom:1px solid var(--book-line); background:transparent; border-radius:0; box-shadow:none; }
.article-book .related-card .story-copy { padding:0; }
.article-book .related-card .next-question { padding-bottom:8px; }
.article-book .related-card .story-kicker span + span { display:inline; }
.article-book .related-card h3 { font-size:18px; line-height:1.7; }
.article-book .related-card .related-reason { font-size:14px; line-height:1.85; }
.article-book .reading-sidebar { display:block; position:static; padding:20px 0 0; margin-top:30px; border-top:1px solid var(--book-line); }
.article-book .reading-sidebar .article-toc { position:static; border:0; padding:0; font-size:13px; }
.article-book .reading-sidebar .article-toc ol { display:flex; flex-wrap:wrap; gap:4px 28px; padding-left:1.3em; }
.article-book .reading-sidebar .sidebar-category { margin-top:20px; padding:16px 0 0; border-top:1px solid var(--book-line); font-size:13px; }
.article-book .article-colophon { color:var(--book-note); font-size:13px; line-height:1.85; }
@media(max-width:640px) {
  .article-book { width:calc(100% - 20px); margin:10px auto 26px; padding:0 22px 28px; box-shadow:2px 2px #7D9BC0; font-size:17px; }
  .article-book .article-book-reader { margin:0 -22px 24px; padding:5px 12px; gap:2px 14px; font-size:12px; }
  .article-book-reader .article-book-series { margin-left:0; }
  .article-book .article-opening h1 { font-size:26px; line-height:1.5; }
  .article-book .article-body { font-size:17px; line-height:1.85; }
  .article-book .article-summary, .article-book .article-book-intro { font-size:15px; line-height:1.85; }
  .article-book .article-book-talk, .article-book .article-book-talk.is-reply { max-width:100%; gap:12px; flex-direction:row; margin:18px 0; }
  .article-book .article-book-talk > img { flex-basis:50px; width:50px; height:50px; }
  .article-book .article-book-speaker { font-size:12px; }
  .article-book .article-book-speech { font-size:15px; line-height:1.8; padding:0; }
  .article-book .article-book-talk.is-reply > div { padding:11px 12px; }
  .article-book .article-book-contents { padding:15px 0; }
  .article-book .article-book-contents ol { font-size:14px; }
  .article-book .article-book-heading { min-height:96px; padding:15px 16px; }
  .article-book .article-body .article-book-heading h2 { font-size:23px; line-height:1.4; }
  .article-book .article-body h3 { font-size:20px; }
  .article-book .article-visual { padding:18px 15px; }
  .article-book .article-visual > figcaption { font-size:18px; }
  .article-book .article-book-figure { padding:21px 12px 18px; margin:24px 0 28px; }
  .article-book .article-book-panels { gap:10px; }
  .article-book .article-book-mount { height:166px; padding:6px; gap:6px; }
  .article-book .article-book-mount.layout-stacked img { height:calc(50% - 3px); }
  .article-book .article-body .article-book-panel h3 { margin-top:12px; padding:7px 5px; font-size:14px; line-height:1.7; }
  .article-book .article-body .article-book-panel p { font-size:13px; }
  .article-book .article-book-chapter-nav { font-size:13px; }
  .article-book .reading-grid .related-card { grid-template-columns:76px minmax(0,1fr); gap:14px; }
  .article-book .related-card h3 { font-size:16px; }
}
@media print {
  body.article-book-page { background:white; }
  .article-book { width:100%; max-width:none; border:0; box-shadow:none; margin:0; padding:0; }
  .article-book .article-book-reader { position:static; }
  .article-book .article-book-heading { break-after:avoid; print-color-adjust:exact; }
}

/* Three reviewed guides: diagrams explain dimensions and connection conditions. */
.article-book .guide-figure { margin:26px 0 32px; padding:24px; background:var(--book-mat); }
.article-book .guide-figure > figcaption { font-size:21px; font-weight:700; line-height:1.65; margin-bottom:22px; }
.article-book .guide-figure p { font-size:16px; margin:14px 0; }
.article-book .guide-figure .guide-note { border-top:1px solid var(--book-line); padding-top:12px; font-size:13px; color:#505650; }
.article-book .guide-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.article-book .guide-pair > div { background:#fff; border:1px solid #c5c7c8; padding:18px; min-width:0; }
.article-book .guide-pair h3 { margin:0 0 12px; color:var(--book-blue); font-size:19px; }
.article-book .guide-pair small { font-size:13px; }
.article-book .guide-pair dl { margin:0; display:grid; grid-template-columns:42px minmax(0,1fr); gap:10px; font-size:15px; }
.article-book .guide-pair dt { font-weight:700; }
.article-book .guide-pair dd { margin:0; }
.article-book .guide-refill-row { display:flex; gap:22px; align-items:center; }
.article-book .guide-refill { position:relative; flex:0 0 92px; height:274px; border:2px solid #174c9e; background:#fff; padding:24px 12px; display:flex; flex-direction:column; justify-content:space-between; }
.article-book .guide-refill i { display:block; width:10px; height:10px; border:2px solid #174c9e; border-radius:50%; }
.article-book .guide-refill i:nth-child(3) { margin-bottom:22px; }
.article-book .guide-refill > span { position:absolute; top:3px; left:28px; font-size:10px; }
.article-book .guide-steps { margin:0; padding-left:1.3em; font-size:15px; }
.article-book .guide-steps li { padding:8px 0; }
.article-book .guide-steps span { display:block; font-size:13px; color:#505650; }
.article-book .guide-pocket-outer { border:3px solid #174c9e; padding:12px; background:#fff; font-size:15px; }
.article-book .guide-pocket-inner { border:2px dashed #60798b; margin:12px 0; padding:14px; font-size:14px; }
.article-book .guide-banknote { margin:12px 0 0; padding:18px 8px; background:#dbe8f1; color:#173a67; text-align:center; }
.article-book .guide-banknote strong { font-size:24px; }
.article-book .guide-pocket-mouth { border-top:6px solid #9a7617; padding:8px 0 0; color:#594107; }
.article-book .guide-tape-model h3 { margin:20px 0 2px; font-size:18px; }
.article-book .guide-tape-model > p { margin:0 0 6px; font-size:14px; }
.article-book .guide-tape { height:142px; background:#fff; border:2px solid #adb8c5; display:flex; align-items:center; }
.article-book .guide-tape > div { height:var(--band); width:100%; background:#d2e4f6; color:#123e7a; display:flex; flex-direction:column; justify-content:center; text-align:center; font-size:16px; }
.article-book .guide-device-chain { list-style:none; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.article-book .guide-device-chain li { margin:0; border:2px solid #174c9e; background:#fff; padding:12px; line-height:1.6; font-size:15px; }
.article-book .guide-device-chain span { display:block; color:#174c9e; margin-bottom:10px; font-weight:700; }
.article-book .guide-device-chain p { font-size:13px; margin:10px 0 0; }
.article-book .guide-flow { border-top:1px solid #b8c4ce; margin-top:18px; }
.article-book .book-page-navigation { margin:25px 0; border-block:1px solid var(--book-line); padding:15px 0; font-size:14px; }
.article-book .book-page-navigation > p { margin:0 0 10px; font-weight:700; }
.article-book .book-page-navigation ol { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.article-book .book-page-navigation li > * { display:block; padding:12px 14px; background:#f2f5f8; line-height:1.6; }
.article-book .book-page-navigation [aria-current] { border-left:4px solid #174c9e; font-weight:700; }
.article-book .book-page-navigation > div { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:14px; }
.article-book .book-page-navigation a { min-height:40px; align-content:center; }
.article-book .book-toc-page { color:#505650; font-size:12px; }
.article-book .book-legacy-anchor { font-size:14px; border-left:3px solid #c7d5e4; padding-left:12px; }
@media(max-width:640px) {
 .article-book .guide-figure { padding:18px 14px; }
 .article-book .guide-figure > figcaption { font-size:19px; margin-bottom:18px; }
 .article-book .guide-pair,.article-book .guide-device-chain { grid-template-columns:1fr; gap:12px; }
 .article-book .guide-pair > div { padding:16px; }
 .article-book .guide-refill-row { gap:14px; }
 .article-book .guide-refill { flex-basis:66px; padding-left:10px; }
 .article-book .guide-refill > span { left:24px; font-size:9px; }
 .article-book .guide-steps { font-size:14px; }
 .article-book .guide-tape { height:130px; }
 .article-book .guide-pocket-inner { padding:10px; }
 .article-book .guide-flow p { font-size:14px; }
}
