.reader-body *{box-sizing:border-box}
.reader-body{font:17px/1.65 system-ui,-apple-system,sans-serif;color:#17312d;background:#f3f5f0}
.reader-body{margin:0}
.reader-body a{color:#126354;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}
.reader-body a:focus-visible,.reader-body summary:focus-visible{outline:3px solid #ac4b15;outline-offset:4px}
.reader-body main{max-width:1080px;margin:auto;padding:28px 30px 60px}
.reader-body .top{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #bccbc1;padding:8px 0 18px;font-size:.85rem}
.reader-body .eyebrow{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:#536b62}
.reader-body h1{font-size:clamp(2rem,5vw,3.7rem);line-height:1.12;letter-spacing:-.025em;margin:25px 0}
.reader-body h2{font-size:1.7rem;line-height:1.25;margin-top:44px}
.reader-body h3{font-size:1.2rem;line-height:1.4}
.reader-body p{max-width:80ch}
.reader-body .lead{font-size:1.18rem;max-width:75ch}
.reader-body .notice{padding:18px 22px;border-left:5px solid #ae641f;background:#fff7e9}
.reader-body .refs{font-size:.84rem}
.reader-body .visual{background:white;border:1px solid #c3d1c8;border-radius:16px;padding:24px;margin:30px 0;box-shadow:0 6px 20px #12392a08}
.reader-body .visual .kicker{font-size:.8rem;color:#52685e}
.reader-body .map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.reader-body .map.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.reader-body .card{padding:18px;border:1px solid #b5cbc0;background:#f2f8f2;border-radius:8px;min-width:0}
.reader-body .card strong{display:block;font-size:1.02rem;line-height:1.45}
.reader-body .card p{margin:8px 0 0;font-size:.95rem}
.reader-body .badge{font-size:.75rem;display:block;color:#526459;margin-bottom:8px}
.reader-body .catalogue{display:grid;gap:16px;padding:0;list-style:none}
.reader-body .entry{padding:20px;background:white;border:1px solid #c3d1c8;border-radius:10px}
.reader-body .entry h3{margin:0 0 8px}
.reader-body .entry dl,.reader-body .annotated{display:grid;grid-template-columns:minmax(110px,180px) minmax(0,1fr);gap:0;margin:15px 0}
.reader-body .entry dt,.reader-body .annotated dt{font-weight:650;background:#e7efe8;padding:10px 14px}
.reader-body .entry dd,.reader-body .annotated dd{margin:0;padding:10px 14px;border-bottom:1px solid #d7e2d8;overflow-wrap:anywhere}
.reader-body .entry small{font-size:.85rem}
.reader-body .flow{list-style:none;counter-reset:step;padding:0;display:grid;gap:14px}
.reader-body .flow li{counter-increment:step;display:grid;grid-template-columns:48px 1fr;gap:15px;padding:15px;background:#f2f8f2;border:1px solid #bfd0c3;border-radius:8px}
.reader-body .flow li:before{content:counter(step);font-size:1.4rem;color:#165e4d;font-weight:700}
.reader-body .scenario{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.reader-body .scenario div{padding:16px;background:#eef3f9;border:1px solid #c1ccdb;border-radius:8px}
.reader-body .scenario b{display:block;font-size:1.4rem;line-height:1.3}
.reader-body .source{padding:20px 0;border-top:1px solid #bacabd}
.reader-body .source h3{margin-top:0}
.reader-body .source dl{font-size:.9rem}
.reader-body .source dt{font-weight:600}
.reader-body .source dd{margin:0 0 10px}
.reader-body .source .limit{padding:12px;background:#faf0e3}
.reader-body .related{padding-left:22px}
.reader-body figcaption{border-top:1px solid #d0dbd2;padding-top:15px;margin-top:20px;font-size:.9rem}
.reader-body footer{margin-top:40px;border-top:1px solid #bfccc2;padding-top:20px;font-size:.85rem}
.reader-body details{padding:15px;border:1px solid #c2cfc3;border-radius:6px}
.reader-body summary{cursor:pointer;font-weight:650}
@media(max-width:650px){.reader-body main{padding:18px 16px 40px}
.reader-body .map,.reader-body .map.three,.reader-body .scenario{grid-template-columns:1fr}
.reader-body .visual{padding:17px;margin:24px 0}
.reader-body .entry{padding:17px}
.reader-body .entry dl,.reader-body .annotated{grid-template-columns:1fr}
.reader-body .entry dd,.reader-body .annotated dd{margin-bottom:10px}
.reader-body .top{flex-wrap:wrap;gap:8px}
.reader-body h2{font-size:1.45rem}
}
@media print{.reader-body{background:white}
.reader-body .top{display:none}
.reader-body .visual,.reader-body .entry{break-inside:avoid;box-shadow:none}
.reader-body main{padding:0}
.reader-body a{color:inherit}
}
