/* Living-map repair: scoped so existing archive and post styles remain unchanged. */
.map-hero { padding: clamp(2rem, 5vw, 5.5rem) 0 2.5rem; background: var(--paper, #f8f4ed); }
.map-intro { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(18rem, .75fr); gap: clamp(1.5rem, 5vw, 5rem); align-items: start; margin-bottom: clamp(1.5rem, 4vw, 3.5rem); }
.map-intro-copy { max-width: 49rem; }
.map-intro h1 { margin: .35rem 0 1rem; max-width: 20ch; }
.map-intro-meta { display: grid; gap: 1rem; }
.map-view-controls, .map-edit-controls, .move-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.map-control, .map-handle, .map-move-panel button, .map-move-panel select { min-height: 2.75rem; border: 1px solid currentColor; border-radius: .25rem; background: transparent; color: inherit; font: inherit; padding: .5rem .75rem; }
.map-control[aria-pressed="true"], .map-control:hover, .map-handle:hover, .map-handle:focus-visible, .map-node-entry.is-selected .map-handle { background: #163a32; color: #fff; }
.map-status { min-height: 1.5rem; margin: 0; font-size: .9rem; }
.map-board { position: relative; max-width: 96rem; margin: 0 auto; }
.map-stage { position: relative; min-height: clamp(34rem, 50vw, 43rem); overflow: clip; border: 1px solid color-mix(in srgb, currentColor 18%, transparent); background: #e7e5dd; isolation: isolate; }
.map-stage::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(color-mix(in srgb, currentColor 7%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, currentColor 7%, transparent) 1px, transparent 1px); background-size: 3rem 3rem; pointer-events: none; }
.map-connectors { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
.map-connectors line { stroke: #163a32; stroke-opacity: .28; stroke-width: 1.25; vector-effect: non-scaling-stroke; }
.map-nodes { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; z-index: 2; }
.map-node-entry { position: absolute; left: 0; top: 0; width: min(13.75rem, calc(100% - 2rem)); will-change: transform; }
.map-node { position: relative; transform: none; box-sizing: border-box; display: grid; width: 100%; min-height: 7.4rem; grid-template-columns: auto 1fr; column-gap: .65rem; align-content: center; padding: 1rem 2.7rem 1rem 1rem; border: 1px solid #163a32; border-radius: .4rem; background: #fffdf8; color: #163a32; text-align: left; text-decoration: none; box-shadow: 0 .4rem 0 rgba(22, 58, 50, .08); }
.map-node:hover, .map-node:focus-visible { outline: 3px solid #c47d31; outline-offset: 3px; color: #163a32; }
.map-node span { grid-row: span 2; font-variant-numeric: tabular-nums; }
.map-node strong, .map-node small { display: block; }
.map-notice-trigger { cursor: pointer; font: inherit; }
.map-handle { position: absolute; top: .55rem; right: .55rem; z-index: 3; width: 2.2rem; min-height: 2.2rem; padding: 0; cursor: grab; touch-action: none; }
.map-handle::before { content: "↕"; font-size: 1.1rem; }
.map-handle:active, .map-node-entry.is-dragging .map-handle { cursor: grabbing; }
.map-node-entry.is-dragging { opacity: .88; }
.map-notice { max-width: 42rem; margin: 1rem auto 0; padding: .9rem 1rem; border-left: .3rem solid #c47d31; background: #fff8e9; }
.map-move-panel { margin-top: 1rem; padding: 1rem; border: 1px solid color-mix(in srgb, currentColor 20%, transparent); }
.map-move-panel h2, .map-move-panel p { margin: 0 0 .65rem; }
.map-move-panel label { display: inline-block; margin-right: .5rem; }
.map-list { margin-top: 2rem; }
.map-list ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; padding: 0; list-style: none; }
.map-list li { display: grid; gap: .25rem; padding: 1rem; border: 1px solid color-mix(in srgb, currentColor 17%, transparent); }
.map-list a { font-weight: 700; }
.latest-rail { position: static; width: auto; max-width: 96rem; margin: 2rem auto; }
@media (max-width: 800px) { .map-intro { grid-template-columns: 1fr; } .map-stage { min-height: 35rem; } }
@media (max-width: 639px) { .map-hero { padding-top: 1.5rem; } .map-intro { margin-bottom: 1rem; } .map-intro h1 { font-size: clamp(2rem, 10vw, 3.25rem); } .map-stage { min-height: 34rem; } .map-node-entry { width: min(12.5rem, calc(100% - 2rem)); } .living-map[data-view="list"] .map-board, .living-map[data-view="list"] .map-move-panel { display: none; } .living-map[data-view="map"] + .map-list { display: none; } .map-list ul { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .map-node-entry { transition: none; } }
