/* Hājīn tactical clarity pass · 2026-11-02
   Loaded last: compact constant-screen-size pins, restrained colour, legible intel.
   All locations remain the same source-backed references. */
body.dmz-v2{
 --dmz-ink:#0c1519;--dmz-surface:#152125;--dmz-edge:#405359;
 --dmz-text:#e8ece9;--dmz-gold:#d9bc79;--dmz-sea:#80b8ad;
}
body.dmz-v2 .dmz-map-stage.shell{gap:14px}
body.dmz-v2 .dmz-map-viewport{
 --dmz-inverse:1;
 background:#0b1518;
 outline-offset:3px;
}
body.dmz-v2 .dmz-map-canvas .dmz-real-map{
 image-rendering:auto!important;
 filter:none!important;
}
/* The world zooms. The icon itself does not. One source of truth
   replaces old hard-coded .6/.75/1.0 marker scale rules. */
body.dmz-v2 .dmz-map-viewport .dmz-marker{
 scale:var(--dmz-inverse,1)!important;
 transform-origin:center center;
}
body.dmz-v2 .dmz-map-viewport .dmz-extra-point{
 scale:var(--dmz-inverse,1)!important;
 transform-origin:center center;
}
body.dmz-v2 .dmz-map-viewport .dmz-my-pin{
 scale:var(--dmz-inverse,1)!important;
 transform-origin:center center;
}
body.dmz-v2 .dmz-map-canvas .dmz-marker-dot{
 width:29px!important;height:29px!important;
 border-radius:8px!important;
 padding:5px!important;
 background:#122129!important;
 border:1.5px solid #8da4a8!important;
 box-shadow:0 0 0 2px #081113,0 2px 7px #0008!important;
}
body.dmz-v2 .dmz-map-canvas .dmz-poi-icon{width:17px!important;height:17px!important}
body.dmz-v2 .dmz-map-canvas .dmz-marker-number{
 width:15px;height:15px;right:-5px;bottom:-5px;
 font-size:9px;border-radius:4px;background:#0c161a;color:#fff
}
body.dmz-v2 .dmz-map-viewport .dmz-marker:is(:hover,:focus-visible,.is-selected) .dmz-marker-dot{
 outline:2px solid var(--dmz-gold)!important;
 outline-offset:2px!important;
 box-shadow:0 0 0 2px #081113,0 0 0 5px #d9bc7940!important;
}
body.dmz-v2 .dmz-map-viewport[data-clarity-level="detail"] .dmz-marker:not(:is(.is-selected,:hover,:focus-visible)){opacity:.72}
body.dmz-v2 .dmz-map-viewport .dmz-extra-point,
body.dmz-v2 .dmz-map-viewport .dmz-extra-point[data-kind="minor"]{
 width:16px!important;height:16px!important;
 border:1.5px solid #a9c1b9!important;
 background:#1a3034 url('/icons/map/map-pin.svg') center/11px no-repeat!important;
 border-radius:50%!important;
 rotate:0deg!important;
 clip-path:none!important;
 box-shadow:0 1px 5px #0009!important;
}
body.dmz-v2 .dmz-map-viewport .dmz-extra-point[data-kind="fortress"]{
 width:18px!important;height:18px!important;
 border:2px solid #d4b37b!important;
 border-radius:5px!important;
 background:#3d3028 url('/icons/map/shield.svg') center/12px no-repeat!important;
 rotate:0deg!important;
}
body.dmz-v2 .dmz-map-viewport .dmz-extra-point::before{
 width:11px!important;height:11px!important;
 background-size:contain!important;
}
body.dmz-v2 .dmz-map-viewport .dmz-extra-point[data-clarity-hidden="true"]{
 visibility:hidden!important;opacity:0!important;pointer-events:none!important;
}
body.dmz-v2 .dmz-map-viewport .dmz-extra-point::after{display:none!important}
body.dmz-v2 .dmz-map-viewport .dmz-extra-point:is(:hover,:focus-visible,.is-selected)::after{
 display:block!important;max-width:180px!important;
 font-size:12px!important;line-height:1.3!important;
 padding:7px 9px!important;
 border:1px solid #577077!important;
 border-radius:7px!important;
 background:#111c20f2!important;color:#f2f5f2!important;
}
body.dmz-v2 .dmz-map-viewport .dmz-extra-point:is(:hover,:focus-visible,.is-selected){
 z-index:20!important;outline:2px solid var(--dmz-gold)!important;outline-offset:2px;
}
body.dmz-v2 .dmz-map-viewport .dmz-marker-label{display:none!important}
body.dmz-v2 .dmz-map-viewport .dmz-marker:is(:hover,:focus-visible,.is-selected) .dmz-marker-label{
 display:block!important;position:absolute;
 top:38px!important;left:50%!important;
 transform:translateX(-50%)!important;
 background:#101b1ff2!important;border:1px solid #697d7c!important;
 padding:6px 8px!important;border-radius:6px!important;
 width:max-content!important;max-width:160px!important;
 line-height:1.35!important;font-size:11px!important;
 overflow-wrap:normal!important;white-space:normal!important;
}
body.dmz-v2 .dmz-map-stage .dmz-side{
 background:var(--dmz-surface);border-color:var(--dmz-edge);
 padding:13px!important;gap:12px;
}
body.dmz-v2 .dmz-map-stage .dmz-list-item{
 display:grid!important;
 grid-template-columns:24px minmax(0,1fr)!important;
 grid-template-rows:auto auto;
 align-items:start!important;
 column-gap:10px!important;row-gap:3px!important;
 padding:10px 9px!important;min-height:0!important;
 text-align:left!important;border-color:#394a4d!important;
 background:#152327!important;
}
body.dmz-v2 .dmz-map-stage .dmz-list-item .dmz-list-num{
 grid-column:1;grid-row:1/3;justify-self:center;
 font-weight:700;color:var(--dmz-gold);
}
body.dmz-v2 .dmz-map-stage .dmz-list-item .dmz-list-name{
 grid-column:2;grid-row:1;min-width:0;line-height:1.35!important;
 font-size:.89rem!important;font-weight:700!important;
 word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important;
}
body.dmz-v2 .dmz-map-stage .dmz-list-item .threat{
 grid-column:2;grid-row:2;
 justify-self:start;font-size:.68rem!important;
 width:auto!important;max-width:100%;
 white-space:normal!important;
}
body.dmz-v2 .dmz-map-stage .dmz-list-item:is(:hover,.is-selected,:focus-visible){
 border-color:var(--dmz-gold)!important;background:#213139!important;
}
body.dmz-v2 .dmz-map-stage .dmz-detail{
 border:1px solid var(--dmz-edge);border-top:2px solid var(--dmz-sea);
 background:#101b20;padding:15px;
}
body.dmz-v2 .dmz-map-stage .dmz-detail h2{
 font-size:clamp(1.03rem,1.3vw,1.22rem)!important;
 line-height:1.35!important;overflow-wrap:normal!important;word-break:normal!important
}
body.dmz-v2 .dmz-map-stage .dmz-detail p{line-height:1.55}
body.dmz-v2 .dmz-map-stage .dmz-zoom-row{
 background:#162329;border-color:var(--dmz-edge);padding:9px;gap:6px;
}
body.dmz-v2 .dmz-map-stage .dmz-zoom-btn{
 background:#202f33;border:1px solid #52676a;color:#e9eeeb;
 border-radius:7px;min-height:38px;
}
body.dmz-v2 .dmz-map-stage .dmz-zoom-btn[aria-pressed="true"]{
 background:#29372c!important;border-color:var(--dmz-gold)!important;
 color:#f4e4c1!important;
}
body.dmz-v2 .dmz-map-stage .dmz-zoom-btn:hover{border-color:#b8c7c2}
body.dmz-v2 .dmz-map-stage .dmz-detail .button,
body.dmz-v2 .dmz-map-stage .dmz-poi-detail [class*="button"]{
 background:#33433f;color:#f5f5ed;border:1px solid #8cab96;
 text-decoration:none;
}
body.dmz-v2 .dmz-map-stage .dmz-detail .button:hover{background:#456257}
body.dmz-v2 .dmz-key-card{
 background:#142126!important;border:1px solid #415459!important;
 box-shadow:none!important;
}
body.dmz-v2 .dmz-key-card .button,
body.dmz-v2 .dmz-key-card button:not([data-key-owned]){
 background:#283a3c!important;border:1px solid #738d8b!important;
 color:#e8efeb!important;border-radius:6px!important;
}
body.dmz-v2 .dmz-key-card button:focus-visible,
body.dmz-v2 .dmz-zoom-btn:focus-visible{
 outline:3px solid var(--dmz-gold)!important;outline-offset:2px;
}
body.dmz-v2 .dmz-clarity-status{
 flex:1 1 100%;display:flex;align-items:center;gap:9px;
 font-size:.78rem;line-height:1.45;color:#d4e2dd;
 padding:8px 10px;border:1px solid #49615b;
 background:#0d1b1d;border-radius:7px;
}
body.dmz-v2 .dmz-clarity-status strong{color:#f2d99c;font-variant-numeric:tabular-nums}
body.dmz-v2 .dmz-clarity-key{
 width:min(96%,1500px);margin:10px auto 18px;
 border:1px solid #46585c;border-radius:9px;
 background:#121e22;color:#dce4e0;
}
body.dmz-v2 .dmz-clarity-key summary{
 cursor:pointer;padding:13px 16px;font-size:.87rem;font-weight:750;
}
body.dmz-v2 .dmz-clarity-key[open] summary{border-bottom:1px solid #46585c}
body.dmz-v2 .dmz-clarity-key .dmz-clarity-key-body{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;
 padding:14px 16px;font-size:.82rem;line-height:1.5;
}
body.dmz-v2 .dmz-clarity-key .dmz-clarity-key-body p{margin:0}
body.dmz-v2 .dmz-clarity-key a{color:#e6d5a5;text-underline-offset:3px}
body.dmz-v2 .dmz-clarity-dot{
 display:inline-block;width:9px;height:9px;border-radius:50%;
 vertical-align:middle;background:#8baeb0;margin-right:5px
}
body.dmz-v2 .dmz-clarity-dot.gold{background:#e5bd72;border-radius:3px}
body.dmz-v2 .dmz-clarity-dot.blue{background:#8aaaba}
@media(min-width:1100px){
 body.dmz-v2 .dmz-map-stage.shell{grid-template-columns:minmax(0,1fr) minmax(338px,365px)}
}
@media(max-width:860px){
 body.dmz-v2 .dmz-clarity-key .dmz-clarity-key-body{grid-template-columns:1fr}
 body.dmz-v2 .dmz-map-stage .dmz-side{max-height:none!important}
 body.dmz-v2 .dmz-map-stage .dmz-location-list{max-height:155px!important}
}
@media(prefers-reduced-motion:reduce){
 body.dmz-v2 .dmz-map-viewport .dmz-marker,
 body.dmz-v2 .dmz-map-viewport .dmz-extra-point{transition:none!important}
}

/* Win cascade specificity over older late-layer deep-zoom overrides.
   Preserve the icon artwork and compensate for world scale across every kind. */
body.dmz-v2 #dmzViewport .dmz-marker,
body.dmz-v2 #dmzViewport.dmz-v2-detail .dmz-marker:not(.is-selected),
body.dmz-v2 #dmzViewport.dmz-v2-detail .dmz-marker.is-selected{
 scale:var(--dmz-inverse,1)!important;
}
body.dmz-v2 #dmzViewport .dmz-extra-point[data-kind],
body.dmz-v2 #dmzViewport.dmz-v2-detail .dmz-extra-point[data-kind],
body.dmz-v2 #dmzViewport.dmz-v2-detail .dmz-extra-point[data-kind].is-selected{
 scale:var(--dmz-inverse,1)!important;
}
body.dmz-v2 #dmzViewport .dmz-my-pin{scale:var(--dmz-inverse,1)!important}

/* Secondary POIs are <button>s. Global minimum button sizing was making
   their actual box 32x44px, even with a 16px icon declaration. Reset it. */
body.dmz-v2 #dmzViewport .dmz-extra-point[data-kind]{
 appearance:none!important;
 display:grid!important;place-items:center!important;
 box-sizing:border-box!important;
 width:18px!important;height:18px!important;
 min-width:0!important;min-height:0!important;
 max-width:18px!important;max-height:18px!important;
 padding:0!important;margin:0!important;
 line-height:1!important;font-size:0!important;
 aspect-ratio:1!important;
}
body.dmz-v2 #dmzViewport .dmz-extra-point[data-kind="minor"]{width:16px!important;height:16px!important;max-width:16px!important;max-height:16px!important}
/* Invisible 32px hit target, independent from 16px displayed icon. */
body.dmz-v2 #dmzViewport .dmz-extra-point[data-kind]::before{
 width:32px!important;height:32px!important;
 background:transparent!important;
 pointer-events:auto!important;
}
