/* One viewport, with the controls grouped around the map. */
:root{color-scheme:dark;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;background:#181818;color:#eee;--panel:#222;--raised:#2c2c2c;--line:#505050;--muted:#dedede;--accent:#efc36a;--hover:#393939}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#686868 #222}[hidden]{display:none!important}body{margin:0;max-width:1920px;padding:0 20px;margin-inline:auto;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}a{color:var(--accent);text-underline-offset:3px}button,input,select{font:inherit}button,select{color:inherit;background:var(--raised);border:1px solid var(--line);border-radius:4px;min-height:44px;padding:9px 12px;cursor:pointer}button:hover:not(:disabled),select:hover:not(:disabled){background:var(--hover);border-color:#797979}button:active:not(:disabled){background:#454545}button:disabled,select:disabled{opacity:.45;cursor:default}button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#202020}button[aria-pressed=true]:hover{background:#ffda8b;color:#202020}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}::selection{background:var(--accent);color:#181818}input{accent-color:var(--accent);caret-color:var(--accent)}input[type=checkbox]{width:18px;height:18px;margin:0;flex:none}label{display:flex;align-items:center;gap:8px;cursor:pointer}.muted{color:var(--muted)}.icon{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.skip-link{position:absolute;left:20px;top:-80px;background:var(--raised);padding:12px;z-index:20}.skip-link:focus{top:8px}
header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 0;border-bottom:1px solid #393939;flex:none}.brand{font-size:19px;font-weight:650;color:#eee;text-decoration:none;white-space:nowrap}.brand span{font-weight:400;color:var(--muted)}.zone-picker{font-size:13px;color:var(--muted);gap:12px}.zone-picker select{width:248px;color:#eee}.workspace{display:flex;flex-direction:column;min-height:0;flex:1;padding-top:12px}.toolbar{display:flex;align-items:center;gap:16px;margin-bottom:12px;flex:none}.location{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.location>div{min-width:0}h1{font-size:21px;font-weight:650;line-height:1.25;margin:3px 0 0;text-wrap:balance}h2{font-size:15px;font-weight:650;margin:0}nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted)}nav a{text-decoration:none;color:var(--muted)}nav a:hover{color:var(--accent)}.view-switch{display:flex;flex:none}.view-switch button{border-radius:0;font-size:13px;min-width:80px}.view-switch button:first-child{border-radius:4px 0 0 4px}.view-switch button:last-child{border-radius:0 4px 4px 0;border-left:0}#expand-map{font-size:13px;white-space:nowrap}
.layout,main,.viewer{display:flex;flex:1;min-height:0;min-width:0}.viewer{border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--panel)}.map-frame{position:relative;width:100%;min-width:0;flex:1;min-height:0;background:#242424;overflow:hidden}#map{display:block;width:100%;height:100%;touch-action:none;user-select:none}#terrain-view{position:absolute;inset:0;background:#242424}#terrain-view canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px;cursor:grab}#terrain-view canvas:active{cursor:grabbing}#terrain-view[data-drag=pan] canvas{cursor:move}
.icon-button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;flex:none;padding:0;position:relative;background:#222}.icon-button[data-tooltip]:hover:after,.icon-button[data-tooltip]:focus-visible:after{content:attr(data-tooltip);position:absolute;right:calc(100% + 8px);top:50%;transform:translateY(-50%);width:max-content;max-width:210px;padding:6px 9px;background:#222;border:1px solid #606060;border-radius:4px;box-shadow:0 3px 12px #0005;color:#eee;font-size:12px;font-weight:400;line-height:1.4;pointer-events:none;z-index:8}.utility-dock{position:absolute;right:12px;top:12px;display:flex;gap:6px;z-index:5}.utility-dock button[aria-expanded=true]{background:var(--accent);border-color:var(--accent);color:#202020}.utility-dock .icon-button[data-tooltip]:after{top:calc(100% + 8px);right:0;transform:none}.camera-dock{position:absolute;right:12px;bottom:72px;z-index:4}.camera-buttons{display:flex;flex-direction:column;gap:6px}.camera-buttons>:nth-child(3){margin-top:6px}.camera-dock>.camera-title,.control-label,#camera-toggle{display:none}.camera-buttons .icon-button{box-shadow:0 3px 12px #0003}#north-view{color:var(--accent)}
.zoom{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;background:#222;border:1px solid #606060;border-radius:4px;font-size:12px;z-index:4;box-shadow:0 3px 14px #0005}.zoom .icon-button{border:0;border-radius:0;background:transparent}.zoom .icon-button:last-child{border-left:1px solid var(--line);border-radius:0 4px 4px 0}.zoom output{min-width:40px;text-align:center;font-variant-numeric:tabular-nums}body[data-view="3d"] #zoom-value{display:none}.zoom .icon-button[data-tooltip]:after{top:auto;bottom:calc(100% + 8px);right:0;transform:none}
.relief{position:absolute;left:12px;bottom:12px;width:min(220px,calc(100% - 168px));display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 8px;padding:6px 12px;background:#222;border:1px solid #606060;border-radius:4px;font-size:12px;z-index:4;box-shadow:0 3px 14px #0005}.relief output{color:var(--accent);font-variant-numeric:tabular-nums}.relief input{grid-column:1/-1;width:100%;min-width:0;min-height:30px;margin:0;cursor:pointer}
.map-panel{position:absolute;right:72px;top:68px;bottom:96px;width:320px;max-width:calc(100% - 96px);display:flex;flex-direction:column;background:#222;border:1px solid #606060;border-radius:4px;box-shadow:0 6px 24px #0006;z-index:6;overflow:hidden}#layers-panel{bottom:auto;max-height:calc(100% - 164px)}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;padding:6px 8px 6px 16px;border-bottom:1px solid #444}.panel-title .icon-button{border:0;background:transparent}.panel-body{padding:0 16px 12px;overflow-y:auto;overscroll-behavior:contain;min-height:0;scrollbar-gutter:stable}.detail{font-size:13px;line-height:1.6;color:var(--muted);margin:12px 0}.navigation,.routes{display:flex;flex-direction:column}.navigation button{display:flex;align-items:center;gap:10px;text-align:left;padding:10px 0;font-size:13px;border:0;border-bottom:1px solid #393939;background:transparent;border-radius:0;line-height:1.45}.navigation button:hover{background:var(--raised);border-color:#505050}.navigation .count{margin-left:auto;color:var(--accent);font-size:11px;white-space:nowrap}.route-row{display:flex;align-items:center;gap:10px;padding:5px 0}.route-row button{display:flex;align-items:center;gap:9px;text-align:left;width:100%;font-size:13px;line-height:1.4}.route-row button[aria-pressed=true]{background:#3d3423;border-color:#c69d4c;color:#fff}.route-row input{margin:10px 0 10px 2px}.swatch{display:inline-block;flex:none;width:22px;border-top:3px solid}.pink{color:#ff48b4}#clear-route{width:100%;font-size:13px;margin-top:12px}.legend{display:flex;flex-direction:column;padding:8px 0;font-size:13px}.legend label,.contour-option{min-height:44px}.contour-option{font-size:13px;border-top:1px solid #444;padding-block:8px}.terrain-note{color:#d4c39f}.help-content{font-size:13px;line-height:1.6;color:var(--muted)}.help-content p{margin:12px 0}.help-content details{border-top:1px solid #444}.help-content strong{color:#eee}summary{cursor:pointer;padding:12px 0;color:#ddd;min-height:44px}summary:hover{color:var(--accent)}.coverage ul{padding-left:18px;margin:8px 0}.coverage a{overflow-wrap:anywhere}
#loading,#terrain-message{position:absolute;inset:0;display:grid;place-content:center;text-align:center;margin:0;padding:28px;background:#222f;font-size:16px;line-height:1.6;z-index:2}#terrain-message p{max-width:45ch;margin:0 0 12px}#terrain-recovery{display:flex;justify-content:center;gap:8px}footer{display:flex;justify-content:space-between;gap:12px;flex:none;font-size:11px;line-height:1.5;color:var(--muted);padding:8px 0}
body.map-expanded header,body.map-expanded footer{display:none}body.map-expanded .workspace{padding-bottom:12px}body.map-expanded #breadcrumbs{display:none}
#terrain-view canvas[data-clickable=true]{cursor:pointer}.terrain-hover{position:absolute;top:12px;left:12px;max-width:calc(100% - 240px);padding:8px 10px;background:#222;border:1px solid #606060;border-radius:4px;color:#eee;font-size:12px;line-height:1.45;pointer-events:none;box-shadow:0 3px 14px #0005;overflow-wrap:anywhere}
@media(max-width:700px){body{padding-inline:max(8px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-right));padding-bottom:env(safe-area-inset-bottom)}header{flex-wrap:wrap;gap:6px;padding:8px 0}.brand{font-size:17px}.zone-picker{width:100%;gap:8px}.zone-picker select{width:auto;min-width:0;flex:1}.workspace{padding-top:8px}.toolbar{flex-wrap:wrap;gap:8px;margin-bottom:8px}.location{flex-basis:100%;gap:8px}h1{font-size:18px}nav{display:none}.toolbar>.view-switch{margin-right:auto}footer{padding-block:6px;font-size:10px}footer span:last-child{display:none}.relief{padding-inline:8px}.terrain-hover{max-width:calc(100% - 24px);top:68px}.map-panel{left:12px;right:12px;top:68px;bottom:96px;width:auto;max-width:none}.panel-body{padding-inline:12px}.panel-title{padding-left:12px}}
@media(max-width:700px),(max-height:600px){#camera-toggle:not([hidden]){display:inline-flex}.camera-dock{display:none;top:68px;bottom:auto;right:12px;max-width:calc(100% - 24px);background:#222;border:1px solid #606060;border-radius:4px;box-shadow:0 6px 24px #0006;z-index:6}.camera-dock[data-open=true]{display:block}.camera-dock>.camera-title{display:flex}.camera-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px}.camera-buttons .icon-button{flex-direction:column;width:auto;height:auto;min-height:64px;padding:8px;gap:4px}.camera-buttons>:nth-child(3){margin-top:0}.control-label{display:block;font-size:11px;white-space:nowrap}.camera-buttons .icon-button[data-tooltip]:after{display:none}.map-panel{right:12px;max-width:calc(100% - 24px)}footer span:last-child{display:none}}
@media(max-height:600px){header{padding-block:4px}.workspace{padding-top:6px}.toolbar{margin-bottom:6px}footer{display:none}body{padding-bottom:6px}.map-panel{bottom:12px}.camera-dock{max-height:calc(100% - 80px);overflow:auto}.panel-title{padding-block:0}}
@media(max-height:500px) and (orientation:landscape){header{flex-wrap:nowrap}.zone-picker{width:auto}.brand{font-size:16px}.toolbar{flex-wrap:nowrap}.location{flex-basis:auto}nav{display:none}.toolbar h1{font-size:17px}.toolbar #back{display:inline-flex}.map-panel{top:12px;right:224px;bottom:12px;max-width:calc(100% - 248px)}.terrain-hover{max-width:calc(100% - 240px);top:12px}.camera-dock{top:68px}.camera-buttons{padding:8px;gap:4px}.camera-buttons .icon-button{min-height:52px;padding:4px}}
@media(prefers-reduced-motion:no-preference){.territory{transition:fill-opacity .15s ease-out}button{transition:background-color .15s ease-out,border-color .15s ease-out}}
.territory{fill:#ffe5a0;fill-opacity:0;stroke:none;cursor:pointer}.region:hover .territory,.region:focus .territory,.region.highlight .territory{fill-opacity:.32}.region:focus{outline:none}.route{cursor:pointer}.route:hover{filter:brightness(1.3)}.route-hit{stroke:transparent;stroke-width:12}.map-label{paint-order:stroke;stroke:#252525;stroke-width:3px;fill:#fff;font:14px system-ui;pointer-events:none}

@media(max-height:500px) and (orientation:landscape){#layers-panel{max-height:calc(100% - 24px)}#layers-panel .panel-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;padding-top:8px}#layers-panel .legend{display:contents}#layers-empty{grid-column:1/-1}#layers-panel .contour-option{border:0;padding:0;flex-wrap:wrap;gap:4px}#layers-panel .swatch{width:16px}}
@media(hover:none){.icon-button[data-tooltip]:after{display:none}}

.navigation button.highlight{background:var(--raised);color:var(--accent)}

/* The zone/path list is a permanent part of the viewer, beside the map. */
.zone-column{display:flex;flex-direction:column;flex:0 0 244px;width:244px;min-height:0;min-width:0;background:var(--panel);border-right:1px solid var(--line)}
.column-heading{padding:16px;flex:none;border-bottom:1px solid #444}
.zone-column .panel-body{flex:1;padding-inline:12px;scrollbar-gutter:auto}
.zone-column .navigation button{padding-inline:4px}
.zone-column .route-row button{min-width:0;overflow-wrap:anywhere}
.zone-column .detail{margin:12px 0}
@media(max-width:1000px){.zone-column{flex-basis:204px;width:204px}.column-heading{padding:12px}}
@media(max-width:700px){
 .zone-column{flex-basis:112px;width:112px}.column-heading{padding:10px 8px}.column-heading h2{font-size:12px;line-height:1.4}.zone-column .panel-body{padding-inline:6px}
 .zone-column .navigation button{display:block;font-size:11px;line-height:1.4;padding:8px 4px;min-height:44px;overflow-wrap:anywhere}.zone-column .navigation .count{display:block;margin:3px 0 0;font-size:10px}
 .zone-column .detail{font-size:11px;line-height:1.5}.zone-column .route-row{gap:5px;align-items:flex-start}.zone-column .route-row button{display:block;padding:7px 4px;font-size:11px;line-height:1.45}.zone-column .route-row .swatch{display:block;width:16px;margin-bottom:4px}.zone-column .route-row input{margin:10px 0 0}
 .zone-column #clear-route{font-size:11px;padding:6px 4px}
 .zone-column .navigation button[data-kind=continent]{display:flex;gap:6px}
 .zone-column .navigation button[data-kind=continent] .count{margin:0 0 0 auto}
 .relief{width:calc(100% - 24px);bottom:72px}.camera-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.camera-buttons .control-label{white-space:normal}
 .camera-dock{max-height:calc(100% - 212px);overflow:auto}.map-panel{bottom:144px}#layers-panel{max-height:calc(100% - 212px)}
}
@media(max-height:500px) and (orientation:landscape){
 .zone-column{flex-basis:160px;width:160px}.zone-column .navigation button{font-size:12px;display:flex}.zone-column .navigation .count{margin-left:auto}.column-heading{padding:8px 12px}
 .relief{width:min(180px,calc(100% - 168px));bottom:12px}.camera-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.camera-dock{max-height:calc(100% - 80px)}.map-panel{bottom:12px}#layers-panel{max-height:calc(100% - 24px)}
}
/* Street view shares the map surface and keeps photo navigation in one viewport. */
.viewer{position:relative}
#street-toggle{color:var(--accent);touch-action:none;cursor:grab}#street-toggle:active{cursor:grabbing}#street-toggle[aria-pressed=true]{color:#202020}
.street-hint{position:absolute;z-index:5;left:12px;top:12px;max-width:calc(100% - 240px);margin:0;padding:10px 12px;background:#222;border:1px solid #606060;border-radius:4px;font-size:12px;line-height:1.5;pointer-events:none;color:#d7fff6}
.street-person{position:fixed;z-index:1000;pointer-events:none;transform:translate(-50%,-100%);color:var(--accent);padding:8px;background:#222e;border:2px dashed #888;border-radius:24px;box-shadow:0 4px 16px #0006}.street-person .icon{width:32px;height:32px}.street-person[data-valid=true]{border-style:solid;border-color:#7cebd7;background:#17382e}
.street-list{border-bottom:1px solid #505050;padding:0 0 12px;margin:12px 0}.street-list h3{font-size:14px;margin:0;color:#7cebd7}.street-list .detail{margin:6px 0 10px}.street-route{display:block;width:100%;text-align:left;margin:6px 0;font-size:13px;line-height:1.4;border-color:#53756e}.street-route span{display:block;font-size:11px;color:var(--muted);margin-top:3px}.street-exit-coverage{font-size:12px;width:100%;margin-top:8px}
.street-selecting #map .territory{fill-opacity:0!important}.street-selecting #map{cursor:crosshair}
.street-view{position:absolute;inset:0;z-index:20;background:#131313;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border-radius:3px}
.street-top{display:flex;align-items:center;gap:16px;min-height:68px;padding:10px 16px;background:#222;border-bottom:1px solid #444;z-index:2}.street-top button{display:flex;align-items:center;gap:8px;flex:none}.street-title{min-width:0}.street-title h2{font-size:18px;line-height:1.3;overflow-wrap:anywhere;margin:0}.street-title p{font-size:12px;color:var(--muted);margin:4px 0 0}#street-location-toggle{margin-left:auto}
.street-stage{position:relative;min-height:0;min-width:0;display:flex;justify-content:center;align-items:center;overflow:hidden;outline-offset:-3px;background:#111}#street-photo{display:block;width:100%;height:100%;object-fit:contain;user-select:none}#street-photo.loading{opacity:.15}
#street-panorama{position:absolute;inset:0;width:100%;height:100%}#street-panorama[hidden],#street-photo[hidden]{display:none}.panorama-route-link{width:auto!important;height:auto!important;background:none!important}.panorama-route-link button{min-height:44px;white-space:nowrap;background:#222;color:#efc36a;border:1px solid #8b754f;font-size:14px;padding:8px 12px}#street-panorama .pnlm-controls{box-shadow:none}#street-panorama .pnlm-zoom-in,#street-panorama .pnlm-zoom-out{width:44px;height:44px;background-color:#eee;background-position-x:center}.street-image-message{z-index:3}
.street-image-message{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;flex-direction:column;gap:12px;padding:24px;text-align:center;font-size:14px;color:#eee}
.street-bottom{position:relative;z-index:2;background:#222;border-top:1px solid #444;text-align:center;padding:8px 16px 10px}.street-bottom p{margin:0 0 6px;font-size:12px;color:#d9d9d9;min-height:18px}.street-travel{display:flex;align-items:center;justify-content:center;gap:16px}.street-travel button{display:flex;align-items:center;gap:8px;min-width:132px;justify-content:center;border-color:#8b754f}.street-travel button:not(:disabled){color:var(--accent)}.street-progress{width:200px;min-width:80px;display:flex;flex-direction:column;font-size:13px;font-variant-numeric:tabular-nums}.street-progress input{width:100%;margin:0;min-height:30px;cursor:pointer}.street-camera-note{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.street-minimap{position:absolute;z-index:3;bottom:140px;left:16px;width:200px;background:#222;border:1px solid #aaa;border-radius:4px;overflow:hidden;box-shadow:0 3px 14px #0008}.street-minimap svg{display:block;width:100%;aspect-ratio:928/556;background:#222}.street-minimap>span{display:block;padding:5px 8px;font-size:11px;color:#eee}#street-location-toggle{display:none}
@media(max-width:1000px){.street-hint{top:68px;max-width:calc(100% - 84px)}.street-minimap{width:160px}.street-travel{gap:10px}}
@media(max-width:700px){
 .street-hint{left:12px;right:12px;max-width:none;font-size:11px;padding:8px}.street-list h3{font-size:12px}.street-route{font-size:11px;padding:8px 5px}.street-route span{font-size:10px}.street-exit-coverage{font-size:11px;padding:7px 4px}
 .street-top{padding:8px;gap:8px;min-height:60px}.street-top #street-close{min-width:44px;padding:8px}.street-top #street-close span{display:none}.street-title h2{font-size:15px}.street-title p{font-size:10px}#street-location-toggle{display:flex}
 .street-bottom{padding:8px}.street-bottom p{font-size:11px}.street-travel{gap:8px}.street-travel button{flex-direction:column;gap:0;min-width:76px;padding:5px 8px;font-size:11px;min-height:52px}.street-progress{flex:1;max-width:220px;width:auto}.street-camera-note{font-size:10px}
 .street-minimap{display:none;width:150px;left:auto;right:8px;top:76px;bottom:auto}.street-minimap[data-open=true]{display:block}
}
@media(max-height:500px){.street-top{min-height:52px;padding:4px 12px}.street-title h2{font-size:15px}.street-title p{display:none}.street-bottom{padding:4px 12px}.street-bottom p{display:none}.street-camera-note{display:none}.street-minimap{width:140px;bottom:65px;left:12px}.street-travel button{min-height:44px}.street-hint{font-size:11px;top:68px}}
@media(prefers-reduced-motion:no-preference){.street-stage img{transition:opacity .12s ease-out}}

/* Panorama replaces the archived screenshot interface. */
.panorama-open #street-view{position:fixed;inset:0;width:100vw;height:100dvh;z-index:100;display:block;border:0;border-radius:0}.panorama-open #panorama-player{display:block;width:100%;height:100%;border:0;background:#181818}.panorama-open{overflow:hidden}

/* On phones the persistent list sits below a full-width map. */
.route-visibility{flex:none;justify-content:center}
@media(max-width:700px){
 body{padding:0 max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left));height:100dvh;min-height:0}
 header{flex-wrap:nowrap;min-height:52px;gap:8px;padding:4px 0}
 .brand{font-size:15px}.brand span{font-size:12px}
 .atlas-tools-link{display:flex;align-items:center;min-height:44px;font-size:12px;white-space:nowrap;text-decoration:none;padding:0 4px;color:var(--accent)}
 .atlas-tools-link span{display:none}
 .workspace{padding-top:6px}
 .toolbar{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:6px}
 .location{grid-column:1/-1;min-width:0;gap:8px;flex-basis:auto}
 .location>div{flex:1}
 .location h1{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .zone-picker{display:flex;width:100%;gap:0}
 .zone-picker>span{display:none}
 .zone-picker select{width:100%;font-size:16px;min-height:44px}
 .view-switch{min-width:0}.view-switch button{min-width:70px;font-size:13px}
 #expand-map{font-size:12px;min-height:44px}
 .viewer{flex-direction:column;border-radius:4px}
 .map-frame{order:0;min-height:180px}
 .zone-column{order:1;width:100%;flex:0 0 clamp(156px,27dvh,220px);border-right:0;border-top:1px solid #606060;min-height:0}
 .column-heading{padding:10px 12px;min-height:40px}
 .column-heading h2{font-size:14px;line-height:1.4}
 .zone-column .panel-body{padding:0 12px 10px;scroll-padding-block:8px}
 .zone-column .detail{font-size:12px;line-height:1.5;margin:8px 0}
 .zone-column .navigation button,.zone-column .navigation button[data-kind=continent]{display:flex;gap:12px;padding:10px 4px;font-size:14px;min-height:48px;overflow-wrap:normal}
 .zone-column .navigation .count,.zone-column .navigation button[data-kind=continent] .count{display:inline;margin:0 0 0 auto;font-size:12px}
 .zone-column .route-row{gap:4px;align-items:center;padding:2px 0;border-bottom:1px solid #393939}
 .zone-column .route-row button{display:flex;align-items:center;gap:10px;padding:8px;font-size:14px;line-height:1.4;min-height:48px;border-color:transparent}
 .zone-column .route-row .swatch{display:inline-block;width:18px;margin:0}
 .zone-column .route-visibility{width:44px;min-height:48px;align-self:stretch;cursor:pointer}
 .zone-column .route-row input{width:20px;height:20px;margin:0}
 .zone-column #clear-route{font-size:13px;min-height:44px;padding:8px}
 .utility-dock{top:8px;right:8px;gap:4px}
 .relief{left:8px;bottom:8px;width:calc(100% - 164px);padding:4px 8px;box-shadow:none;font-size:12px}
 .relief input{min-height:32px}
 .zoom{right:8px;bottom:8px;box-shadow:none}
 .zoom output{display:none}
 .map-panel,.camera-dock{left:8px;right:8px;top:60px;bottom:8px;width:auto;max-width:none;max-height:none;z-index:8}
 #layers-panel{bottom:auto;max-height:calc(100% - 68px)}
 .camera-dock[data-open=true]{display:flex;flex-direction:column;overflow:auto}
 .camera-buttons{grid-template-columns:repeat(3,minmax(0,1fr));padding:10px;gap:6px}
 .camera-buttons .icon-button{min-height:60px;font-size:12px}
 .camera-buttons .control-label{font-size:12px;white-space:normal}
 .panel-title{padding:2px 8px 2px 12px;min-height:44px}
 .panel-body,.help-content{font-size:14px;line-height:1.5}
 .legend,.contour-option{font-size:14px}
 .legend label,.contour-option{min-height:48px}
 .street-hint{top:60px;left:8px;right:8px;padding:6px 8px;font-size:12px;max-width:none}
 .street-list{margin:8px 0;padding-bottom:8px}
 .street-list h3{font-size:14px}.street-list .detail{font-size:12px}
 .street-route{font-size:14px;min-height:48px;padding:8px 12px}
 .street-route span{font-size:12px}.street-exit-coverage{font-size:13px;min-height:44px}
 footer{display:none}
 body.map-expanded .workspace{padding-top:6px;padding-bottom:0}
 body.map-expanded .zone-column{flex-basis:clamp(140px,22dvh,180px)}
}
@media(max-width:700px) and (max-height:620px){
 .zone-column{flex-basis:146px}.map-frame{min-height:120px}
 .column-heading{min-height:34px;padding-block:6px}
 .relief{display:none}.camera-dock .relief{display:grid;position:static;width:auto;margin:0 10px 10px}
}
@media(max-width:700px){.camera-dock[data-open=true]{bottom:auto;max-height:calc(100% - 68px)}}
@media(max-width:700px) and (max-height:620px){
 .camera-dock[data-open=true]{top:8px;max-height:calc(100% - 16px)}
 .camera-buttons{padding:8px;gap:4px;flex-shrink:0}
 .camera-buttons .icon-button{min-height:52px;padding:4px}
 .camera-buttons .control-label{font-size:11px}
 .camera-dock .relief{flex-shrink:0}
}
/* A short landscape phone uses the available width for its list. */
@media(max-width:700px) and (orientation:landscape){
 .toolbar{display:flex;flex-wrap:nowrap;gap:6px}.location{flex:1;gap:6px}
 .zone-picker select{font-size:16px}.view-switch button{min-width:62px;font-size:12px;padding-inline:8px}
 #expand-map{padding-inline:8px;font-size:11px}
 .viewer{flex-direction:row}.zone-column,body.map-expanded .zone-column{order:0;flex:0 0 160px;width:160px;border-top:0;border-right:1px solid var(--line)}
 .map-frame{order:1;min-height:0}.zone-column .panel-body{padding-inline:8px}
 .zone-column .route-row{gap:0}.zone-column .route-row button{font-size:12px;padding:6px 2px;gap:4px}
 .zone-column .route-row .swatch{width:12px}.zone-column .route-visibility{width:44px}
 .zone-column .navigation button{font-size:13px;flex-wrap:wrap;gap:2px 6px}
}
/* Local mobile experiment: map-sized viewport and non-modal, on-demand trays.
   The mobile-atlas class follows mobileQuery in mobile-map.mjs. */
.mobile-only,.mobile-menu-label{display:none}
.mobile-atlas{padding:0;max-width:none;height:100dvh;overscroll-behavior:none}
.mobile-atlas>header,.mobile-atlas>footer{display:none}
.mobile-atlas .workspace{position:fixed;inset:0;padding:0;display:block}
.mobile-atlas .layout,.mobile-atlas main,.mobile-atlas .viewer{height:100%;width:100%;display:block;border:0;border-radius:0;overflow:hidden}
.mobile-atlas .map-frame{position:absolute;inset:0;width:auto;min-height:0;order:0}
.mobile-atlas .toolbar{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));z-index:8;display:flex;align-items:center;gap:8px;margin:0;pointer-events:none}
.mobile-atlas .toolbar button,.mobile-atlas .toolbar select{pointer-events:auto;min-height:48px;box-shadow:0 3px 12px #0003}
.mobile-atlas .location{flex:1;display:flex;flex-basis:auto;gap:8px;min-width:0}
.mobile-atlas .location>div{flex:1;min-width:0}
.mobile-atlas .location h1,.mobile-atlas #breadcrumbs,.mobile-atlas .zone-picker>span,.mobile-atlas #expand-map{display:none}
.mobile-atlas .zone-picker{width:100%;margin:0}
.mobile-atlas .zone-picker select{width:100%;max-width:none;font-size:16px;background:#222;padding:10px 12px;border-radius:6px}
.mobile-atlas #back{background:#222;min-width:48px;width:48px;height:48px;border-radius:6px}
.mobile-atlas .view-switch{position:absolute;left:0;top:56px;box-shadow:0 3px 12px #0003}
.mobile-atlas .view-switch button{min-width:70px;font-size:13px;min-height:44px;padding:8px 12px;box-shadow:none}
.mobile-atlas .mobile-only{display:flex}
.mobile-atlas .mobile-dock{position:absolute;z-index:9;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));display:flex;flex-direction:column;padding:8px 10px 10px;background:#222;border:1px solid #606060;border-radius:8px;box-shadow:0 5px 22px #0005}
.mobile-atlas #mobile-tap-hint{font-size:12px;line-height:18px;color:#dedede;margin:0 4px 6px;pointer-events:none}
.mobile-atlas #mobile-dock-actions{display:flex;align-items:center;gap:8px;min-width:0}
.mobile-atlas #browse-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:1;min-width:0;min-height:52px;padding:5px 10px;text-align:left;border:1px solid #555;background:#2c2c2c}
.mobile-atlas #browse-toggle>span{min-width:0;display:grid;gap:2px}
.mobile-atlas #mobile-browse-title{font-size:14px;line-height:19px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-atlas #mobile-browse-count{font-size:12px;line-height:16px;color:#efc36a}
.mobile-atlas #browse-toggle[aria-expanded=true]{border-color:#efc36a}
.mobile-atlas #browse-toggle[aria-expanded=true]>.icon{transform:rotate(180deg)}
.mobile-atlas #mobile-dock-actions>.icon-button{width:48px;height:52px;min-width:48px}
.mobile-atlas .utility-dock{left:max(12px,env(safe-area-inset-left));right:auto;top:auto;bottom:118px;z-index:5}
.mobile-atlas #street-toggle{width:48px;height:48px;min-width:48px;border-radius:6px}
.mobile-atlas .zoom{right:max(12px,env(safe-area-inset-right));bottom:118px;flex-direction:column;width:48px;border-radius:6px}
.mobile-atlas .zoom .icon-button{width:46px;height:46px;min-width:46px;min-height:46px;border:0;border-radius:0}
.mobile-atlas .zoom .icon-button+.icon-button{border-top:1px solid #505050}
.mobile-atlas #zoom-value{display:none}
.mobile-atlas .map-panel,.mobile-atlas .camera-dock[data-open=true],.mobile-atlas .zone-column[data-open=true]{position:absolute;top:auto;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:114px;width:auto;max-width:none;height:auto;max-height:calc(100dvh - 186px);margin:0;background:#222;border:1px solid #606060;border-radius:8px;z-index:10;box-shadow:0 7px 25px #0006;overflow:hidden;display:flex;flex-direction:column}
.mobile-atlas #layers-panel{bottom:114px;max-height:calc(100dvh - 186px)}
.mobile-atlas .zone-column{display:none}
.mobile-atlas .zone-column[data-open=true]{height:min(54dvh,520px);flex:none;order:0}
.mobile-atlas .column-heading{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 4px 16px;min-height:56px;touch-action:none}
.mobile-atlas .column-heading h2,.mobile-atlas .panel-title h2{font-size:16px;line-height:1.3}
.mobile-atlas .column-heading button,.mobile-atlas .panel-title button{width:48px;height:48px;border:0}
.mobile-atlas .zone-column .panel-body{padding:0 12px 16px;overflow-y:auto;overscroll-behavior:contain;min-height:0;flex:1}
.mobile-atlas .zone-column .detail{font-size:13px;line-height:1.5;margin:12px 0}
.mobile-atlas .zone-column .navigation button{display:flex;padding:12px 4px;align-items:center;font-size:15px;line-height:1.4;min-height:56px;gap:8px}
.mobile-atlas .zone-column .navigation .count{margin:0 0 0 auto;display:inline;font-size:12px}
.mobile-atlas .zone-column .route-row{display:flex;align-items:center;gap:4px;padding:4px 0}
.mobile-atlas .zone-column .route-row button{display:flex;align-items:center;padding:10px 8px;min-height:52px;gap:8px;font-size:14px;line-height:1.45}
.mobile-atlas .zone-column .route-row .swatch{display:inline;width:16px;margin:0}
.mobile-atlas .route-visibility{width:48px;height:52px;margin:0;align-items:center;justify-content:center;min-width:48px}
.mobile-atlas .zone-column .route-row input{margin:0;width:20px;height:20px}
.mobile-atlas #clear-route{font-size:14px;padding:10px;min-height:48px}
.mobile-atlas .panel-title{padding:4px 8px 4px 16px;min-height:56px}
.mobile-atlas .panel-body{font-size:14px;padding:0 16px 16px;line-height:1.55;scrollbar-gutter:auto}
.mobile-atlas .camera-dock{display:none}
.mobile-atlas .camera-title{display:flex}
.mobile-atlas .camera-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 16px;gap:8px;overflow:auto;min-height:0}
.mobile-atlas .camera-buttons .icon-button{display:flex;flex-direction:row;gap:8px;min-height:52px;height:auto;width:auto;padding:8px;box-shadow:none}
.mobile-atlas .camera-buttons>:nth-child(3){margin-top:0}
.mobile-atlas .control-label{display:block;font-size:13px;white-space:normal;text-align:left}
.mobile-atlas .camera-dock .relief{position:static;display:grid;width:auto;margin:0 16px 16px;min-height:76px;flex:none}
.mobile-atlas .relief input{min-height:44px}
.mobile-atlas #mobile-more-options .icon-button:not([hidden]){display:flex;justify-content:flex-start;gap:12px;width:100%;height:52px;margin-top:8px;padding:10px 12px}
.mobile-atlas #mobile-more-options .icon-button:after{display:none}
.mobile-atlas #mobile-more-options .mobile-menu-label{display:block;font-size:14px;text-align:left}
.mobile-atlas #more-panel .panel-body>button{width:100%;min-height:52px;margin-top:8px;text-align:left;font-size:14px}
.mobile-atlas .mobile-site-links{display:flex;flex-direction:column;border-top:1px solid #444;margin-top:16px;padding-top:8px}
.mobile-atlas .mobile-site-links a{display:flex;align-items:center;min-height:48px;text-decoration:none;font-size:14px}
.mobile-atlas .street-hint{top:124px;left:12px;right:76px;width:auto;max-width:none;font-size:12px;padding:8px}
.mobile-atlas #terrain-message,.mobile-atlas #loading{padding:130px 28px 120px}
.mobile-atlas #terrain-recovery{flex-wrap:wrap}
.mobile-atlas #terrain-recovery button{min-height:48px}
.mobile-atlas .terrain-hover{display:none}
@media(max-height:500px){
 .mobile-atlas .mobile-dock{left:76px;right:76px;padding:6px 8px 8px}
 .mobile-atlas #mobile-tap-hint{margin-bottom:4px}
 .mobile-atlas .utility-dock,.mobile-atlas .zoom{bottom:max(12px,env(safe-area-inset-bottom))}
 .mobile-atlas .zone-column[data-open=true],.mobile-atlas .map-panel,.mobile-atlas .camera-dock[data-open=true]{left:auto;right:max(12px,env(safe-area-inset-right));width:min(380px,calc(100vw - 140px));bottom:110px;max-height:calc(100dvh - 122px)}
 .mobile-atlas #layers-panel{bottom:110px;max-height:calc(100dvh - 122px)}
 .mobile-atlas #layers-panel .panel-body{display:block}
 .mobile-atlas #layers-panel .legend{display:flex}
 .mobile-atlas .camera-buttons{grid-template-columns:repeat(3,minmax(0,1fr));padding:8px;gap:6px;flex:none}
 .mobile-atlas .camera-buttons .icon-button{min-height:48px;padding:6px}
 .mobile-atlas .camera-buttons .control-label{font-size:12px}
 .mobile-atlas .camera-dock[data-open=true]{overflow-y:auto}
 .mobile-atlas .camera-dock .relief{margin:0 8px 8px;min-height:68px}
}


/* Primary 3D actions stay on the map; relief and north are one tap away. */
.mobile-camera-shortcuts{display:none}
.mobile-atlas[data-view="3d"] .mobile-camera-shortcuts{position:absolute;top:124px;right:max(12px,env(safe-area-inset-right));z-index:5;display:grid;grid-template-columns:repeat(2,48px);gap:6px}
.mobile-atlas .mobile-camera-shortcuts .icon-button{width:48px;height:52px;min-width:48px;min-height:52px;display:flex;flex-direction:column;gap:2px;padding:4px 1px;border-radius:6px;box-shadow:0 3px 12px #0003}
.mobile-atlas .mobile-camera-shortcuts .control-label{font-size:11px;line-height:14px;white-space:nowrap;text-align:center}
.mobile-atlas .mobile-camera-shortcuts .icon-button:after{display:none}
.mobile-atlas .utility-dock{flex-direction:column-reverse}
.mobile-atlas .utility-dock #camera-toggle:not([hidden]){display:flex;width:48px;height:48px;min-width:48px;border-radius:6px}
@media(max-height:500px){
 .mobile-atlas[data-view="3d"] .mobile-camera-shortcuts{top:68px;grid-template-columns:repeat(4,48px)}
}

/* Live bot inspection shares the map's coordinate and camera transforms. */
.bot-inspector{border-top:1px solid #8d827459;margin-top:1rem;padding-top:1rem}.bot-inspector h2{font-size:1rem}.bot-inspector select{max-width:100%}.bot-list{display:flex;flex-wrap:wrap;gap:.4rem;margin:.7rem 0}.bot-inspector dl{font-size:.8rem;line-height:1.5}.bot-inspector dt{color:#afa99c;margin-top:.6rem}.bot-inspector dd{margin:0;overflow-wrap:anywhere}/* Small visible dots retain forgiving invisible click targets. */
.bot-marker{cursor:pointer;color:var(--bot-color,#f2f5fa)}.bot-marker .hit{fill:transparent;stroke:none;pointer-events:all}.bot-marker .halo{fill:currentColor;fill-opacity:.08;stroke:currentColor;stroke-width:.6}.bot-marker .core{fill:currentColor;stroke:#142a2b;stroke-width:1}.bot-marker:focus .halo,.bot-marker.selected .halo{stroke:white;stroke-width:1.2}.bot-marker.offline{opacity:.5}
.bot-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden}.bot-beacon{position:absolute;left:0;top:0;color:var(--bot-color,#f2f5fa);pointer-events:none}.bot-beacon[data-state=offline]{opacity:.45}.bot-laser{position:absolute;width:1px;height:1px;overflow:visible;pointer-events:none}.bot-laser line{stroke:currentColor;stroke-width:1.2;filter:drop-shadow(0 0 2px currentColor);opacity:.8}.bot-ground-dot{position:absolute;width:4px;height:4px;left:0;top:0;transform:translate(-50%,-50%);border-radius:50%;background:currentColor;box-shadow:0 0 0 1px #142a2b}
.bot-beacon .bot-marker-3d{position:absolute;left:0;top:0;width:26px;height:26px;min-height:0;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;box-shadow:none;pointer-events:auto;cursor:pointer;touch-action:manipulation}.bot-beacon .bot-marker-3d:hover,.bot-beacon .bot-marker-3d[aria-pressed=true]{background:transparent;color:inherit}.bot-marker-3d:after{content:'';position:absolute;inset:10px;border-radius:50%;background:currentColor;box-shadow:0 0 0 1px #142a2b,0 0 5px currentColor}.bot-marker-3d:hover:after,.bot-marker-3d[aria-pressed=true]:after,.bot-marker-3d:focus-visible:after{box-shadow:0 0 0 2px white,0 0 7px currentColor}.bot-marker-label{display:none;position:absolute;left:calc(100% + 3px);top:50%;transform:translateY(-50%);padding:3px 6px;border-radius:3px;background:#161b1fee;color:#fff;font-size:11px;white-space:nowrap;pointer-events:none}.bot-marker-3d:hover .bot-marker-label,.bot-marker-3d:focus-visible .bot-marker-label{display:block}

.bot-color-legend{display:flex;flex-wrap:wrap;gap:6px 12px;margin:8px 0 12px;font-size:11px;color:#c9c6bf}.bot-color-legend span{display:inline-flex;align-items:center;gap:5px}.bot-color-legend i{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}
.party-member{display:block;width:100%;text-align:left;margin:5px 0}.bot-beacon[data-kind=party] .bot-marker-3d:after{inset:6px;background:var(--party-colors);border:2px solid #ddd}.bot-beacon[data-kind=animal] .bot-marker-3d:after{border-radius:2px}#hologram-options .contour-option{display:flex;align-items:center;gap:8px}

.models-active .shows-model .bot-ground-dot,.models-active .shows-model .bot-marker-3d:after{display:none}.bot-laser .bot-line-hit{stroke:transparent;stroke-width:16;filter:none;pointer-events:stroke;cursor:pointer}.models-active .shows-model .bot-marker-3d:focus-visible{outline:1px solid currentColor;border-radius:3px}

#marker-mode-toggle{font-size:12px;font-weight:700}.bot-overlay .animal-dot{position:absolute;left:0;top:0;width:20px;height:20px;min-height:0;padding:0;background:transparent;border:0;box-shadow:none;pointer-events:auto;cursor:pointer}.animal-dot:after{content:'';position:absolute;inset:7px;border-radius:50%;background:#73e9ff;box-shadow:0 0 0 1px #203137}.bot-overlay .animal-dot:hover,.bot-overlay .animal-dot:focus-visible{background:transparent}.animal-dot:hover:after,.animal-dot:focus-visible:after{background:#d8faff;box-shadow:0 0 8px 2px #73e9ff}

/* Ground circles share the 3D ring geometry; model locators stay screen-sized. */
.bot-ground-dot{display:none}.bot-marker .core{display:none}.bot-marker .halo{fill:none;stroke-width:1.2}
.models-active .shows-model .bot-laser{display:none}.models-active .shows-model .bot-marker-3d:after{display:block;inset:5px;border:2px solid #18222b;border-radius:3px;transform:rotate(45deg);background:currentColor;box-shadow:0 0 0 1px #ffffffb3}
.models-active .shows-model[data-kind=party] .bot-marker-3d:after{background:var(--party-colors)}.models-active .shows-model[data-kind=party] .bot-marker-3d:before{content:attr(data-count);position:absolute;inset:0;display:grid;place-items:center;font-size:10px;font-weight:800;color:#111;z-index:1}

/* Search and disclosure keep the live inspector compact and keyboard accessible. */
.bot-inspector input[type=search]{width:100%;box-sizing:border-box;margin:10px 0;padding:9px;background:#242526;color:#eee;border:1px solid #666;border-radius:4px}
.bot-list{display:grid;grid-template-columns:1fr;max-height:240px;overflow:auto}.bot-list button{text-align:left;white-space:normal}.bot-inspector small{display:block;color:#b9b7b0;font-size:11px;margin-top:3px}.bot-inspector summary{cursor:pointer;padding:7px 0;line-height:1.5}.bot-inspector details p{font-size:12px;line-height:1.6;white-space:pre-line}.bot-inspector h5{color:#d7c397;margin:14px 0 5px;font-size:12px}.quest-card{border-top:1px solid #555}.quest-card summary:focus-visible{outline:2px solid #d7c397}.bot-inspector h3{overflow-wrap:anywhere}

.night-overlay{position:absolute;inset:0;pointer-events:none;overflow:hidden}.night-overlay[hidden]{display:none}.night-links{position:absolute;width:100%;height:100%;overflow:visible;fill:none;stroke-width:1;opacity:.65;pointer-events:none}.night-party,.night-unit{position:absolute;top:0;left:0;pointer-events:auto;cursor:pointer;min-height:0;padding:0;color:var(--night-color);box-shadow:none}.night-party{width:28px;height:28px;border:0;border-radius:0;background:transparent!important;font-size:26px;font-weight:200;line-height:1;display:grid;place-items:center;isolation:isolate}.night-party:before{content:"";position:absolute;inset:4px;border:1.5px solid currentColor;background:#030608b8;transform:rotate(45deg);z-index:-1;pointer-events:none}.night-party span{position:absolute;left:50%;top:28px;transform:translateX(-50%);white-space:nowrap;font:10px system-ui;color:var(--night-color);text-shadow:0 1px 3px #000}.night-unit{width:24px;height:24px;border:0;border-radius:50%;background:transparent!important}.night-unit:hover,.night-unit:focus-visible{outline:1px solid var(--night-color)}.night-party:hover:before,.night-party:focus-visible:before{background:#253039;box-shadow:0 0 0 1px currentColor}.night-caption{position:absolute;left:16px;top:16px;z-index:4;display:flex;flex-direction:column;gap:7px;max-width:calc(100% - 180px);padding:12px 14px;background:#070b10d9;border:1px solid #293038;border-radius:4px;color:#ccd3d9;font:12px system-ui}.night-caption b{letter-spacing:.07em;font-size:12px}.night-caption span{display:flex;align-items:center;gap:7px}.night-caption small{color:#8c979f;font-size:10px}.night-caption i{display:inline-block;width:6px;height:6px;border-radius:50%}.night-caption .nuian{background:#58b9ef}.night-caption .harani{background:#ff6659}.night-caption button,.night-caption select{padding:5px 8px;font-size:11px;min-height:28px;margin-right:4px;background:#172027;border:1px solid #364149;color:#d6dde3}.local-simulation .bot-inspector h2:after{content:' · simulation';font-weight:400;font-size:11px;color:#a6a9ab}



/* Identity dots, independent combat halo, and a single party symbol. */
body:not(.local-simulation) .night-caption{display:none}
.bot-marker .core{display:block;fill:currentColor;stroke:#17232b;stroke-width:1.1}
.bot-marker .halo{opacity:0;fill:none;stroke:#ff5252;stroke-width:1.8}
.bot-marker[data-activity=fighting] .halo{opacity:.9;animation:combat-pulse 1.4s ease-in-out infinite}
.bot-marker.selected .core,.bot-marker:focus-visible .core{stroke:#fff;stroke-width:1.5}
@keyframes combat-pulse{50%{opacity:.3}}
@media(prefers-reduced-motion:reduce){.bot-marker[data-activity=fighting] .halo{animation:none}}
.party-marker-2d{cursor:pointer}.party-marker-2d path{fill:#172027;stroke:var(--bot-color);stroke-width:1.2}.party-marker-2d text{fill:var(--bot-color);font:12px system-ui;text-anchor:middle;dominant-baseline:central;pointer-events:none}
.models-active .shows-model[data-kind=party] .bot-marker-3d:after{background:#172027;border:1.5px solid currentColor;inset:5px}
.models-active .shows-model[data-kind=party] .bot-marker-3d:before{content:'×';font:22px system-ui;color:currentColor}

.night-party.party-combat:before{box-shadow:0 0 5px 2px #ff5252;animation:combat-pulse 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.night-party.party-combat:before{animation:none}}
