.rsa-map{--bg:#f7f4ec;--panel:#fff;--panel-2:#f4f1e8;--line:#e0dbcc;--paper:#16331f;--paper-dim:#6f6c63;--accent:#d89a2c;--accent-deep:#a8761e;--ok:#2e6f50;--warn:#d89a2c;--due:#c0442c;--rsa-radius:14px;background-color:var(--bg);color:var(--paper);font-family:var(--font-sans),system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;border-radius:var(--rsa-radius);background-image:linear-gradient(#16331f0d 1px,#0000 1px),linear-gradient(90deg,#16331f0d 1px,#0000 1px);background-size:32px 32px;max-width:1240px;margin:0 auto;padding:40px 24px 48px}@media (max-width:640px){.rsa-map{padding:28px 16px 32px}}.rsa-map *,.rsa-map :before,.rsa-map :after{box-sizing:border-box}.rsa-head{margin-bottom:28px}.rsa-eyebrow{font-family:var(--font-mono),ui-monospace,monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-deep);align-items:center;gap:10px;font-size:12px;display:flex}.rsa-eyebrow:before{content:"";background:var(--accent-deep);width:28px;height:1px;display:block}.rsa-head h2,.rsa-head h3{font-family:var(--font-display),Georgia,serif;letter-spacing:-.01em;color:var(--paper);margin:12px 0 10px;font-size:clamp(26px,4vw,40px);font-weight:700;line-height:1.1}.rsa-head p{color:var(--paper-dim);max-width:620px;font-size:16px;line-height:1.55}.rsa-legend{font-family:var(--font-mono),ui-monospace,monospace;color:var(--paper-dim);flex-wrap:wrap;gap:18px;margin:20px 0 8px;font-size:12px;display:flex}.rsa-legend span{align-items:center;gap:7px;display:flex}.rsa-map .dot{border-radius:50%;width:9px;height:9px}.rsa-map .dot.ok{background:var(--ok)}.rsa-map .dot.warn{background:var(--warn)}.rsa-map .dot.due{background:var(--due)}.rsa-map .dot.feature{background:var(--accent);border-radius:2px;transform:rotate(45deg)}.rsa-grid{grid-template-columns:minmax(0,1.55fr) minmax(310px,1fr);align-items:start;gap:28px;display:grid}@media (max-width:940px){.rsa-grid{grid-template-columns:1fr}}.rsa-stage{background:var(--panel);border:1px solid var(--line);border-radius:var(--rsa-radius);padding:12px;position:relative}.rsa-stage .drawing-no{font-family:var(--font-mono),ui-monospace,monospace;letter-spacing:.14em;color:var(--paper-dim);text-transform:uppercase;font-size:10px;position:absolute;top:14px;right:18px}.rsa-stage svg{width:100%;height:auto;display:block}.rsa-map .ln{stroke:var(--paper);stroke-width:1.4px;fill:none;vector-effect:non-scaling-stroke}.rsa-map .ln-thin{stroke:#16331f73;stroke-width:1px;fill:none;vector-effect:non-scaling-stroke}.rsa-map .fill-room{fill:#fdfcf7}.rsa-map .fill-room-alt{fill:#eef2ec}.rsa-map .fill-shaft{fill:#e7e5dd}.rsa-map .fill-ground{fill:#16331f}.rsa-map .lbl{font-family:var(--font-mono),ui-monospace,monospace;fill:var(--paper-dim);letter-spacing:.12em;text-transform:uppercase;font-size:10.5px}.rsa-map .tick{stroke:#16331f4d;stroke-width:1px;vector-effect:non-scaling-stroke}.rsa-map .sep{stroke:#d89a2c8c;stroke-width:1px;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.rsa-map .hs{cursor:pointer;outline:none}.rsa-map .hs .halo{fill:none;stroke-width:1.5px;opacity:.85;transform-origin:50%;transform-box:fill-box;animation:2.4s ease-out infinite rsa-pulse}.rsa-map .hs .core{stroke:#fff;stroke-width:2px;transition:r .15s}.rsa-map .hs .num{font-family:var(--font-mono),ui-monospace,monospace;fill:#fff;text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:9px;font-weight:600}.rsa-map .hs:hover .core,.rsa-map .hs:focus-visible .core{r:12}.rsa-map .hs:focus-visible .halo{stroke:var(--paper)}.rsa-map .hs.active .core{r:12;stroke:var(--paper)}.rsa-map .hs.ok .core{fill:var(--ok)}.rsa-map .hs.ok .halo{stroke:var(--ok)}.rsa-map .hs.warn .core{fill:var(--warn)}.rsa-map .hs.warn .halo{stroke:var(--warn)}.rsa-map .hs.due .core{fill:var(--due)}.rsa-map .hs.due .halo{stroke:var(--due)}.rsa-map .hs.warn .num{fill:#16331f}@keyframes rsa-pulse{0%{opacity:.9;transform:scale(.6)}70%{opacity:0;transform:scale(1.9)}to{opacity:0;transform:scale(1.9)}}@media (prefers-reduced-motion:reduce){.rsa-map .hs .halo{opacity:.4;animation:none}}.rsa-map .co{cursor:pointer;outline:none}.rsa-map .co .lead{stroke:var(--accent);stroke-width:1.2px;stroke-dasharray:5 4;fill:none;opacity:.5;vector-effect:non-scaling-stroke;transition:opacity .15s}.rsa-map .co .marker{fill:var(--accent);stroke:#fff;stroke-width:1.5px;transform-box:fill-box;transform-origin:50%;transition:transform .15s}.rsa-map .co .chip-bg{fill:var(--panel-2);stroke:#d89a2c73;stroke-width:1.2px;transition:stroke .15s}.rsa-map .co .chip-txt{font-family:var(--font-mono),ui-monospace,monospace;fill:var(--paper);letter-spacing:.05em;font-size:11.5px;font-weight:600}.rsa-map .co .chip-letter{fill:var(--accent-deep)}.rsa-map .co:hover .lead,.rsa-map .co:focus-visible .lead,.rsa-map .co.active .lead{opacity:1}.rsa-map .co:hover .chip-bg,.rsa-map .co:focus-visible .chip-bg,.rsa-map .co.active .chip-bg{stroke:var(--accent)}.rsa-map .co.active .chip-bg{fill:#d89a2c1f}.rsa-map .co:hover .marker,.rsa-map .co.active .marker{transform:scale(1.35)}.rsa-map .co.rocky .chip-bg{fill:var(--accent);stroke:var(--accent)}.rsa-map .co.rocky .chip-txt,.rsa-map .co.rocky .chip-letter{fill:#16331f}.rsa-map .co.rocky.active .chip-bg{fill:#e2ac4a}.rsa-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--rsa-radius);flex-direction:column;min-height:480px;padding:24px;display:flex;position:sticky;top:20px}@media (max-width:940px){.rsa-panel{min-height:0;position:static}}.rsa-map .p-eyebrow{font-family:var(--font-mono),ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--paper-dim);justify-content:space-between;align-items:center;gap:10px;font-size:11px;display:flex}.rsa-map .badge{font-family:var(--font-mono),ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;border-radius:99px;padding:4px 10px;font-size:10.5px;font-weight:600}.rsa-map .badge.ok{color:var(--ok);background:#2e6f501f;border:1px solid #2e6f5066}.rsa-map .badge.warn{color:var(--accent-deep);background:#d89a2c24;border:1px solid #d89a2c66}.rsa-map .badge.due{color:var(--due);background:#c0442c1a;border:1px solid #c0442c66}.rsa-map .badge.feature{color:var(--accent-deep);background:#d89a2c24;border:1px solid #d89a2c66}.rsa-map .badge.base{color:var(--paper-dim);background:#6f6c631a;border:1px solid #6f6c6366}.rsa-panel h3{font-family:var(--font-display),Georgia,serif;letter-spacing:-.01em;color:var(--paper);margin:12px 0 8px;font-size:23px;font-weight:600}.rsa-panel .desc{color:var(--paper-dim);margin-bottom:16px;font-size:15px;line-height:1.6}.rsa-map .backbtn{border:1px solid var(--line);color:var(--paper-dim);font-family:var(--font-mono),ui-monospace,monospace;letter-spacing:.04em;cursor:pointer;background:0 0;border-radius:99px;align-self:flex-start;margin-bottom:12px;padding:6px 12px;font-size:11.5px}.rsa-map .backbtn:hover{color:var(--paper);border-color:var(--paper-dim)}.rsa-map .meta{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.rsa-map .meta>div{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.rsa-map .meta .k{font-family:var(--font-mono),ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);margin-bottom:4px;font-size:10px}.rsa-map .meta .v{font-size:13px;font-weight:600;line-height:1.35}.rsa-map .subhead{font-family:var(--font-mono),ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--paper-dim);margin:4px 0 8px;font-size:10px}.rsa-map .sublist{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;display:grid}@media (max-width:420px){.rsa-map .sublist{grid-template-columns:1fr}}.rsa-map .sublist button{text-align:left;background:var(--panel-2);color:var(--paper);border:1px solid var(--line);cursor:pointer;font-family:var(--font-sans),system-ui,sans-serif;border-radius:10px;padding:9px 12px;font-size:13px;font-weight:600;line-height:1.3;transition:border-color .12s}.rsa-map .sublist button:hover{border-color:var(--accent)}.rsa-map .sublist button .s-status{vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.rsa-map .s-status.ok{background:var(--ok)}.rsa-map .s-status.warn{background:var(--warn)}.rsa-map .s-status.due{background:var(--due)}.rsa-map .feat{flex-direction:column;gap:9px;margin-bottom:18px;padding:0;list-style:none;display:flex}.rsa-map .feat li{color:var(--paper);align-items:flex-start;gap:10px;font-size:14px;line-height:1.45;display:flex}.rsa-map .feat li:before{content:"";background:#d89a2c24 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.6 2.6L12 5.5' fill='none' stroke='%23A8761E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/12px no-repeat;border:1px solid #d89a2c66;border-radius:50%;flex:none;width:16px;height:16px;margin-top:2px}.rsa-map .p-cta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:auto;display:flex}.rsa-map .btn{letter-spacing:.01em;border-radius:10px;padding:11px 20px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.rsa-map .btn-primary{background:var(--accent);color:#fff}.rsa-map .btn-primary:hover{filter:brightness(1.08)}.rsa-map .btn-ghost{color:var(--paper);border:1px solid var(--line)}.rsa-map .btn-ghost:hover{border-color:var(--paper-dim)}.rsa-map .p-intro .big{font-family:var(--font-display),Georgia,serif;margin:14px 0 10px;font-size:20px;font-weight:600;line-height:1.35}.rsa-map .p-intro p{color:var(--paper-dim);font-size:14.5px;line-height:1.6}.rsa-map .modgroup{font-family:var(--font-mono),ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--paper-dim);margin:16px 0 8px;font-size:10px}.rsa-map .modlist{flex-wrap:wrap;gap:7px;display:flex}.rsa-map .modlist button{font-family:var(--font-mono),ui-monospace,monospace;background:var(--panel-2);color:var(--paper-dim);border:1px solid var(--line);cursor:pointer;letter-spacing:.03em;border-radius:99px;padding:6px 11px;font-size:11px}.rsa-map .modlist button:hover{color:var(--paper);border-color:var(--paper-dim)}.rsa-map .modlist button.is-feature{color:var(--accent-deep);border-color:#d89a2c80}.rsa-map .modlist button.is-feature:hover{border-color:var(--accent-deep)}.rsa-foot{font-family:var(--font-mono),ui-monospace,monospace;color:var(--paper-dim);letter-spacing:.06em;margin-top:18px;font-size:11.5px}
