.balanced [hidden] { display: none !important; }
.people-views { display: flex; gap: 4px; width: fit-content; background: #1e0810; padding: 4px; border: 1px solid var(--line); border-radius: 24px; margin-bottom: 12px; }
.people-views button { border: 0; border-radius: 20px; padding: 8px 20px; color: var(--muted); background: transparent; font-size: 12px; }
.people-views button[aria-pressed="true"] { background: var(--pink); color: var(--bg); }
.people-map { border-radius: 12px; overflow: hidden; background: #b0dbe5; color: #193e48; border: 1px solid var(--line); }
.people-map-top { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 12px 16px 0; font-size: 11px; letter-spacing: 1px; }
.people-map-top span { letter-spacing: 0; }
.people-map-notice { font-size: 11px; margin: 8px 16px 10px; line-height: 1.6; }
.map-viewport { height: clamp(280px, calc(100svh - 320px), 490px); position: relative; overflow: hidden; background-color: #a4d7e4; background-image: linear-gradient(#ffffff22 1px, transparent 1px), linear-gradient(90deg,#ffffff22 1px,transparent 1px); background-size: 48px 48px; }
.map-viewport.is-zoomed { cursor: grab; touch-action: none; }
.map-viewport.is-dragging { cursor: grabbing; }
.map-plane { position: absolute; left: 50%; top: 50%; transform-origin: center; }
.map-land { display: block; width: 100%; height: 100%; pointer-events: none; user-select: none; }
.map-marker { position: absolute; transform: translate(-50%,-50%); width: 46px; height: 46px; padding: 0; border-radius: 50%; border: 3px solid #3479c2; background: #fff; box-shadow: 0 2px 6px #20455144; }
.map-marker img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; pointer-events: none; }
.map-marker:hover, .map-marker:focus-visible, .map-marker[aria-expanded="true"] { z-index: 2; border-color: #dd365e; box-shadow: 0 0 0 3px #fff; }
.map-controls { position: absolute; left: 12px; bottom: 12px; display: flex; align-items: center; gap: 4px; z-index: 3; }
.map-controls button, .map-zoom { border: 1px solid #709caa; background: #fffffff2; color: #193e48; border-radius: 5px; padding: 8px; min-width: 36px; font-size: 12px; }
.map-zoom { border-color: transparent; background: transparent; }
.map-person { position: absolute; right: 12px; bottom: 12px; z-index: 4; width: 300px; max-width: calc(100% - 24px); display: flex; gap: 14px; align-items: center; padding: 18px; border-radius: 10px; background: #fff; box-shadow: 0 5px 24px #17475344; }
.map-person-photo { width: 64px; height: 80px; object-fit: cover; border-radius: 6px; }
.map-person b { font-size: 15px; padding-right: 12px; }
.map-person small, .map-person-location { display: block; font-size: 10px; line-height: 1.5; margin-top: 5px; }
.map-person-location { color: #9c3551; }
.map-person-link { display: block; font-size: 11px; margin-top: 10px; text-decoration: underline; }
.map-person-close { position: absolute; top: 4px; right: 5px; border: 0; background: transparent; color: #193e48; font-size: 22px; width: 30px; height: 30px; }
.balanced .people[data-view="map"] .people-toggle { display: none; }
@media (min-width:761px) {
  .balanced .people .chapter-head { margin-bottom: 10px; }
  .balanced .storyPeople__stage { grid-auto-rows: min(166px, calc((100svh - 270px) / 3)); }
}
@media (min-width:761px) and (max-width:1050px) {
  .balanced .storyPeople__stage { grid-auto-rows: min(166px, calc((100svh - 270px) / 4)); }
}
@media (max-width:760px) {
  .map-viewport { height: 330px; }
  .map-marker { width: 26px; height: 26px; border-width: 2px; }
  .people-map-top { padding: 12px 10px 0; font-size: 9px; }
  .people-map-notice { font-size: 10px; margin: 8px 10px 10px; }
  .map-person { bottom: 58px; }
}
@media (max-width:360px) { .map-marker { width: 22px; height: 22px; } }
