:root{--ink:#183e30;--green:#236448;--soft:#eff6ef;--line:#a8c5b1}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;font-size:19px;line-height:1.8}a{color:var(--green);text-underline-offset:.2em}a:hover{text-decoration-thickness:3px}a,button,input,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:4px solid #9b4e00;outline-offset:4px}button,input,textarea{font:inherit}button{cursor:pointer;padding:.6rem 1.3rem;border:2px solid var(--green);border-radius:2rem;background:#fff;color:var(--ink);min-height:48px}button[aria-pressed=true]{background:var(--green);color:#fff}.wrap{width:min(1160px,calc(100% - 40px));margin-inline:auto}.site-header{display:flex;align-items:center;gap:2rem;flex-wrap:wrap;padding-block:24px;border-bottom:1px solid var(--line)}.brand{font-size:2rem;font-weight:850;letter-spacing:.12em;text-decoration:none}.pillars{display:flex;gap:1rem;flex-wrap:wrap}.pillars a,.part-list a{display:inline-block;padding:.5rem 1rem;border-radius:2rem;background:var(--soft);font-weight:700;min-height:48px}.hero{padding:60px 0 30px}h1{font-size:clamp(2rem,5vw,3.7rem);line-height:1.35}h2{font-size:1.7rem}h3{font-size:1.2rem;line-height:1.6;margin:.5rem 0}p{margin-block:1rem}.eyebrow{font-weight:700;letter-spacing:.13em}.body-explorer{background:var(--soft);border-radius:28px;padding:28px;margin-bottom:60px}.body-layout{display:grid;grid-template-columns:1fr 1fr;gap:28px}.body-figure svg{display:block;width:100%;max-width:360px;height:auto;margin:auto}.body-figure[hidden]{display:none}.body-shape{fill:#d0e4d6;stroke:#466e57;stroke-width:2}.body-region{fill:#236448;stroke:#fff;stroke-width:2}.body-map a:hover .body-region,.body-map a:focus .body-region{fill:#a34c00;stroke:#183e30;stroke-width:4}.body-map a:focus{outline:none}.switches{display:none;gap:12px;flex-wrap:wrap;margin-bottom:20px}.js .switches{display:flex}.part-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:12px;align-content:start}.part-list a{background:#fff}.map-help{font-size:1rem}.section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.card{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#fff}.card-image{display:block}.card-image img{display:block;width:100%;aspect-ratio:1.6;object-fit:cover}.card-copy{padding:20px}time{font-size:1rem}.tag{display:inline-block;font-size:1rem;margin:.3rem .3rem .3rem 0}.site-footer{margin-top:70px;padding-block:30px;border-top:1px solid var(--line);font-size:1rem}.reading{max-width:800px;padding-top:40px}.listing{padding-top:30px}.entry-content{margin-top:30px;overflow-wrap:anywhere}img,video,iframe{max-width:100%;height:auto}.entry-content table{display:block;max-width:100%;overflow:auto}.entry-content pre{overflow:auto}input,textarea{max-width:100%;padding:10px;border:1px solid var(--green)}.skip-link{position:fixed;top:0;left:12px;transform:translateY(-150%);z-index:100;background:#fff;padding:12px}.skip-link:focus{transform:none}.pagination,.post-navigation{margin-block:36px}.nav-links{display:flex;gap:20px;flex-wrap:wrap}.screen-reader-text{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.comment-list{padding-left:1.5rem}li,p,h1,h2,h3{overflow-wrap:anywhere}@media(max-width:760px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.body-layout{grid-template-columns:1fr}.hero{padding-top:30px}.body-explorer{padding:20px}.site-header{gap:1rem}.wrap{width:calc(100% - 28px)}}@media(max-width:480px){.cards{grid-template-columns:1fr}.pillars{gap:.5rem}body{font-size:18px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}


/* Phase 5: visual refinements scoped to homepage and BODY explorer. */
.home-main .hero { padding: 26px 0 16px; }
.home-main .hero .eyebrow { margin: 0 0 8px; color:#417b58; font-size: .82rem; letter-spacing: .17em; }
.home-main .hero h1 { font-size: clamp(2.05rem, 3.65vw, 3.15rem); line-height: 1.34; letter-spacing: .015em; margin: 0 0 12px; }
.home-main .hero-description { margin: 0; max-width: 38em; }
.home-main .body-explorer { background: #f2f8f2; border: 1px solid #d7e8da; border-radius: 26px; padding: clamp(16px,3vw,32px); margin: 16px 0 40px; }
.explorer-heading { display: flex; align-items: end; justify-content: space-between; flex-wrap:wrap; gap: 14px; margin-bottom: 16px; }
.explorer-heading h2 { font-size: clamp(1.45rem,2.5vw,1.85rem); margin: 0 0 4px; }
.explorer-kicker { font-size: .75rem; letter-spacing: .18em; font-weight: 750; color: #47755a; margin: 0 0 4px; }
.explorer-heading .map-help { font-size: clamp(.92rem,1.2vw,1.02rem); margin: 0; max-width: 45em; line-height:1.65; }
.home-main .switches { margin: 0; gap: 8px; }
.home-main .switches button { min-height: 46px; padding: .45rem 1.25rem; }
.home-main .body-layout { grid-template-columns: minmax(0, 1.36fr) minmax(260px, .84fr); align-items: start; gap: clamp(16px,3vw,34px); }
.figure-stage { min-width: 0; }
.body-figure { border: 1px solid #dbeade; border-radius: 20px; background: #fff; padding: 14px 8px 12px; overflow: hidden; }
.body-figure[hidden] { display: none !important; }
.figure-name { margin: 0 0 3px; padding-inline: 12px; font-size: 1rem; color: #305f44; }
.body-figure .body-map { display: block; width: 100%; max-width: 560px; height: auto; margin: 0 auto; overflow: visible; }
.figure-shadow ellipse { fill: #e0ebe1; }
.figure-head, .figure-torso, .figure-limb { stroke: #648c70; stroke-width: 2.15; stroke-linecap: round; stroke-linejoin: round; }
.figure-details { fill: none; stroke: #89aa90; stroke-width: 2.3; stroke-linecap: round; stroke-linejoin: round; }
.figure-details-back { stroke: #81a38b; }
.body-leader { stroke: #8eae96; stroke-width: 1.6; stroke-dasharray: 3 4; }
.body-label-bg { fill: #fff; stroke:#86aa91; stroke-width: 1.55; transition: fill .16s ease,stroke .16s ease; }
.body-label-text { fill:#194e35; font-size: 22px; font-weight: 750; font-family: system-ui,-apple-system,'Noto Sans JP',sans-serif; pointer-events: none; }
.body-target-halo { fill: #f6fff6; stroke:#447d5a; stroke-width: 1.6; }
.body-target { fill: #257150; }
.body-hotspot { cursor: pointer; }
.body-hotspot:hover .body-label-bg, .body-hotspot:focus .body-label-bg, .body-hotspot:focus-visible .body-label-bg { fill: #d5efda; stroke: #194b31; stroke-width: 3; }
.body-hotspot:hover .body-target-halo, .body-hotspot:focus .body-target-halo { fill:#ffedc7; stroke:#955100; stroke-width: 3; }
.body-hotspot:focus { outline:none; }
.body-hotspot:focus .body-label-bg { stroke:#9b4e00; stroke-width:4; }
.figure-note { margin: 0; text-align: center; font-size: .85rem; color:#526b59; }
.part-index { border: 1px solid #dce9df; background: #fbfdfb; border-radius: 20px; padding: clamp(16px,2vw,24px); }
.part-index h3 { margin:0 0 4px; font-size:1.2rem; }
.part-index > p { font-size: .92rem; color: #476452; margin: 0 0 14px; }
.part-index .part-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap: 9px; margin:0; }
.part-index .part-list li { min-width:0; }
.part-index .part-list a { display:flex; align-items:center; justify-content:space-between; gap:4px; padding: .52rem .75rem; border:1px solid #d5e6d9; background:#fff; border-radius:12px; min-height:48px; text-decoration:none; font-size:1rem; }
.part-index .part-list a:hover, .part-index .part-list a:focus-visible { background:#e1f2e4; border-color:#4b8a61; }
.part-index .part-list a span { color:#7d9d83; font-size:.95rem; }
.part-index .part-index-note { background:#ecf5ed; color:#35634a; border-radius:12px; margin:18px 0 0; padding:12px; font-size:.9rem; }
.home-main .recent-posts { padding-top:6px; }
.home-main .recent-posts .section-heading h2 { margin: 0 0 12px; }
@media (max-width: 860px) {
  .home-main .body-layout { grid-template-columns: 1fr; }
  .body-figure .body-map { max-width: 540px; }
  .part-index .part-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .home-main .hero { padding: 20px 0 12px; }
  .home-main .hero h1 { font-size: clamp(1.9rem, 7vw, 2.55rem); }
  .home-main .body-explorer { padding: 15px 10px 20px; margin-top:12px; border-radius:20px; }
  .explorer-heading { padding: 0 7px; }
  .explorer-heading .map-help { font-size: .91rem; }
  .home-main .switches button { min-height:46px; }
  .body-figure { padding: 10px 1px; border-radius: 16px; }
  .figure-name { padding-left:12px; }
  .part-index .part-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .part-index { padding: 16px; }
}
@media (max-width: 350px) { .body-label-text { font-size:24px; } }
@media (prefers-reduced-motion: reduce) { .body-label-bg { transition:none; } }

/* V4: adult long-leg contours and external text navigation, scoped to the explorer. */
.body-explorer .human-outline { fill:#f8fbf9; stroke:#507d69; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.body-explorer .body-label-bg { fill:#fff; stroke:#8bb09e; stroke-width:1.3; }
.body-explorer .body-label-text { font-size:22px; font-weight:650; fill:#214e3b; }
.body-explorer .body-hotspot:focus .body-label-bg { stroke:#9b4e00; stroke-width:4; }
.body-explorer .body-hotspot:hover .body-label-bg { fill:#edf6f0; }
.body-explorer .figure-note { padding:8px 12px 0; }

/* V7 reference-derived illustration; no scripts or route changes. */
.body-explorer .human-outline { stroke-width:2.5; fill:#f1f7f2; }
.body-explorer .human-detail { fill:none; stroke:#799b86; stroke-width:1.6; }
.body-explorer .human-body { fill:#f1f7f2; }
.body-explorer .body-map { isolation:isolate; }
.body-explorer .body-hotspot:focus-visible .body-label-bg { stroke:#9b4e00; stroke-width:4; }
@media (max-width:600px) {
 .body-explorer .body-map { min-width:0; max-width:350px; }
 /* The 48px HTML part index provides mobile navigation at readable size. */
 .body-explorer .body-hotspot { display:none; }
 .body-explorer .figure-note { font-size:.8rem; }
}
