/* Project Atlas 1.0.0 */

.patlas-root{
	/* day tokens (Meadow skin) */
	--pa-sky:transparent;
	--pa-ink:#22301F;
	--pa-ink-soft:#5A6B54;
	--pa-card-bg:#FFFFFF;
	--pa-card-line:#D5DECF;
	--pa-accent:#3E6B4F;
	--pa-accent-ink:#FFFFFF;
	--pa-chip-bg:#FFFFFF;
	--pa-card-radius:14px;

	--pa-g1t:#9FC380; --pa-g1l:#89AF6C; --pa-g1s:#6E8F55;
	--pa-g2t:#ABCB8D; --pa-g2l:#93B673; --pa-g2s:#77985C;
	--pa-g3t:#B7D49A; --pa-g3l:#9FBF7F; --pa-g3s:#82A365;
	--pa-path:#E2D8BB;
	--pa-water:#8FBFD6; --pa-water-deep:#6FA8C4;
	--pa-wall-l:#F2E9D8; --pa-wall-s:#D8CBB4;
	--pa-win:#3E5A70; --pa-door:#4A3D2E;
	--pa-win-halo:transparent;
	--pa-trunk:#7A5C3E; --pa-canopy:#6FA05B; --pa-canopy-hi:#8CBA74;
	--pa-celestial:#F7D874; --pa-stars:0;
	--pa-shadow:rgba(34,48,31,.14);
	--pa-hover:rgba(34,48,31,.07);
	--pa-map-land:#EFF1E4; --pa-map-park:#CFE4B4; --pa-map-road:#FFFFFF;
	--pa-map-block:#E0DBC8; --pa-map-contour:#B7CE96;

	position:relative;
	color:var(--pa-ink);
	background:var(--pa-sky);
	line-height:1.55;
}

/* Sandstone skin */
.patlas-root.patlas-skin-sand{
	--pa-g1t:#D9C48F; --pa-g1l:#C4AE79; --pa-g1s:#A69161;
	--pa-g2t:#E2CF9E; --pa-g2l:#CDB886; --pa-g2s:#AF9A6C;
	--pa-g3t:#EBDAAF; --pa-g3l:#D6C295; --pa-g3s:#B8A377;
	--pa-path:#F1E6C8;
	--pa-canopy:#8BA05B; --pa-canopy-hi:#A8BA74;
	--pa-accent:#8A6238;
	--pa-map-land:#F4EFE0; --pa-map-park:#DFD3A6; --pa-map-block:#E6DCC2;
	--pa-map-contour:#CCBC8A;
}

/* Slate skin */
.patlas-root.patlas-skin-slate{
	--pa-g1t:#9BB2A4; --pa-g1l:#869D8F; --pa-g1s:#6D8276;
	--pa-g2t:#A7BCAE; --pa-g2l:#92A899; --pa-g2s:#788D7F;
	--pa-g3t:#B3C6B8; --pa-g3l:#9EB3A3; --pa-g3s:#839888;
	--pa-path:#D9DCD2;
	--pa-canopy:#5F8468; --pa-canopy-hi:#7BA083;
	--pa-accent:#3D5C6B;
	--pa-map-land:#ECEFEA; --pa-map-park:#C4D5C4; --pa-map-block:#DCE0D6;
	--pa-map-contour:#A9C0A9;
}

/* Civic skin: muted, desaturated, professional */
.patlas-root.patlas-skin-civic{
	--pa-g1t:#9DAA9C; --pa-g1l:#8A978C; --pa-g1s:#737F76;
	--pa-g2t:#A8B3A6; --pa-g2l:#95A196; --pa-g2s:#7E8A81;
	--pa-g3t:#B3BDB0; --pa-g3l:#9FAAA0; --pa-g3s:#88948B;
	--pa-path:#D8D5CA;
	--pa-water:#93A9BA; --pa-water-deep:#7A93A6;
	--pa-wall-l:#EAE5DA; --pa-wall-s:#D0C9BA;
	--pa-win:#44586B; --pa-door:#4E463C;
	--pa-trunk:#6C6255; --pa-canopy:#647567; --pa-canopy-hi:#7A8A7B;
	--pa-celestial:transparent; --pa-stars:0;
	--pa-accent:#D95B22; --pa-accent-ink:#FFFFFF;
	--pa-map-land:#F0EFEA; --pa-map-park:#DBE0D3; --pa-map-road:#FFFFFF;
	--pa-map-block:#E3E1D9; --pa-map-contour:#C6CEC0;
	--pa-shadow:rgba(40,44,40,.15);
}
.patlas-root.patlas-skin-civic[data-mood="dusk"]{
	--pa-celestial:transparent; --pa-stars:0;
	--pa-accent:#E8763F; --pa-accent-ink:#1B1510;
}

/* Dusk tokens, shared by data-mood=dusk and auto+dark */
.patlas-root[data-mood="dusk"]{
	--pa-sky:#151F2A;
	--pa-ink:#E8EDE4;
	--pa-ink-soft:#9DAA97;
	--pa-card-bg:#1D2935;
	--pa-card-line:#33414E;
	--pa-accent:#8FC7A0;
	--pa-accent-ink:#12241A;
	--pa-chip-bg:#1D2935;
	--pa-g1t:#3D5446; --pa-g1l:#334839; --pa-g1s:#28392D;
	--pa-g2t:#43594A; --pa-g2l:#384D3D; --pa-g2s:#2C3E31;
	--pa-g3t:#4A6150; --pa-g3l:#3E5343; --pa-g3s:#324536;
	--pa-path:#4E5347;
	--pa-water:#33566B; --pa-water-deep:#274558;
	--pa-wall-l:#5A646E; --pa-wall-s:#414B54;
	--pa-win:#FFD98A; --pa-door:#2A2119;
	--pa-win-halo:rgba(255,205,110,.75);
	--pa-trunk:#4E3F2E; --pa-canopy:#3E5E3F; --pa-canopy-hi:#517A52;
	--pa-celestial:#E9EDF2; --pa-stars:1;
	--pa-shadow:rgba(0,0,0,.35);
	--pa-hover:rgba(255,255,255,.08);
	--pa-map-land:#1C2630; --pa-map-park:#2C4237; --pa-map-road:#3A4754;
	--pa-map-block:#2B3844; --pa-map-contour:#3B584A;
}
@media (prefers-color-scheme: dark){
	.patlas-root[data-mood="auto"]{
		--pa-sky:#151F2A;
		--pa-ink:#E8EDE4;
		--pa-ink-soft:#9DAA97;
		--pa-card-bg:#1D2935;
		--pa-card-line:#33414E;
		--pa-accent:#8FC7A0;
		--pa-accent-ink:#12241A;
		--pa-chip-bg:#1D2935;
		--pa-g1t:#3D5446; --pa-g1l:#334839; --pa-g1s:#28392D;
		--pa-g2t:#43594A; --pa-g2l:#384D3D; --pa-g2s:#2C3E31;
		--pa-g3t:#4A6150; --pa-g3l:#3E5343; --pa-g3s:#324536;
		--pa-path:#4E5347;
		--pa-water:#33566B; --pa-water-deep:#274558;
		--pa-wall-l:#5A646E; --pa-wall-s:#414B54;
		--pa-win:#FFD98A; --pa-door:#2A2119;
		--pa-win-halo:rgba(255,205,110,.75);
		--pa-trunk:#4E3F2E; --pa-canopy:#3E5E3F; --pa-canopy-hi:#517A52;
		--pa-celestial:#E9EDF2; --pa-stars:1;
		--pa-shadow:rgba(0,0,0,.35);
		--pa-map-land:#1C2630; --pa-map-park:#2C4237; --pa-map-road:#3A4754;
		--pa-map-block:#2B3844; --pa-map-contour:#3B584A;
	}
}

.patlas-root *{box-sizing:border-box}
.patlas-empty{color:var(--pa-ink-soft);text-align:center;padding:24px}

/* ---------- controls row ---------- */
.pa-controls{display:flex;flex-direction:column;align-items:center;gap:12px;margin:0 0 14px}
.pa-views{
	display:flex;width:max-content;background:var(--pa-chip-bg);
	border:1px solid var(--pa-card-line);border-radius:999px;padding:3px;gap:2px;
}
.pa-views button{
	border:0;background:transparent;font:inherit;font-size:13.5px;font-weight:600;
	color:var(--pa-ink);padding:8px 18px;border-radius:999px;cursor:pointer;
	transition:background .15s,color .15s;line-height:1.3;
}
.pa-views button[aria-pressed="true"]{background:var(--pa-accent);color:var(--pa-accent-ink)}
.pa-views button:focus-visible{outline:2px solid var(--pa-accent);outline-offset:2px}

.pa-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.pa-chip{
	display:inline-flex;align-items:center;gap:7px;font:inherit;font-size:13px;
	font-weight:600;color:var(--pa-ink);background:var(--pa-chip-bg);
	border:1px solid var(--pa-card-line);border-radius:999px;padding:7px 14px;
	cursor:pointer;transition:background .15s,color .15s,border-color .15s;line-height:1.3;
}
.pa-chip .pa-dot{width:9px;height:9px;border-radius:50%;flex:none}
.pa-chip[aria-pressed="true"]{background:var(--pa-accent);color:var(--pa-accent-ink);border-color:var(--pa-accent)}
.pa-chip[aria-pressed="true"] .pa-dot{background:currentColor !important}
.pa-chip:focus-visible{outline:2px solid var(--pa-accent);outline-offset:2px}

/* ---------- stage ---------- */
.pa-stage{position:relative;margin:0 auto;max-width:1020px}
.patlas-root .pa-stage svg{width:100%;height:auto;max-width:100%}
.patlas-root .pa-stage .pa-hill,
.patlas-root .pa-stage .pa-vmap,
.patlas-root .pa-stage .pa-realmap,
.patlas-root .pa-stage .pa-cards{display:none}
.patlas-root .pa-stage[data-pa-view="hill"] .pa-hill{display:block}
.patlas-root .pa-stage[data-pa-view="vector"] .pa-vmap{display:block}
.patlas-root .pa-stage[data-pa-view="osm"] .pa-realmap{display:block}
.patlas-root .pa-stage[data-pa-view="cards"] .pa-cards{
	display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));
	gap:16px;padding:4px 0;
}
.patlas-card.pa-static{
	position:static;opacity:1;pointer-events:auto;transform:none;
	width:auto;max-width:none;
	transition:transform .2s ease,box-shadow .2s ease;
}
.patlas-card.pa-static:hover{transform:translateY(-3px);box-shadow:0 18px 44px var(--pa-shadow)}
.pa-gcard.pa-hide{display:none}
.patlas-root .pa-stage .pa-vmap{
	border-radius:var(--pa-card-radius);
	border:1px solid var(--pa-card-line);background:var(--pa-map-land);
	touch-action:none;cursor:grab;
}
.pa-vmap.pa-panning{cursor:grabbing}
.patlas-root .pa-stage .pa-realmap{height:clamp(380px,52vw,560px);overflow:hidden;cursor:default;border-radius:var(--pa-card-radius);border:1px solid var(--pa-card-line)}
.patlas-root .maplibregl-map{font:inherit}
.pa-osm-marker{cursor:pointer}
.pa-osm-marker svg{display:block;overflow:visible;transition:transform .2s ease,opacity .3s,filter .3s}
.pa-osm-marker:hover svg,.pa-osm-marker.pa-active svg{transform:translateY(-5px)}
.pa-osm-marker.pa-dim{opacity:.3;filter:saturate(.4)}
.pa-osm-marker:focus{outline:none}
.pa-osm-marker:focus-visible svg{filter:drop-shadow(0 0 5px var(--pa-accent))}
.pa-osm-name{
	position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:2px;
	white-space:nowrap;background:var(--pa-card-bg);border:1px solid var(--pa-card-line);
	border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;color:var(--pa-ink);
	box-shadow:0 2px 8px var(--pa-shadow);pointer-events:none;line-height:1.5;
}
/* photo markers: the project's real photo in a ring */
.pa-osm-marker.pa-photo{display:flex;flex-direction:column;align-items:center}
.pa-osm-marker .pa-ring{
	display:block;width:56px;height:56px;border-radius:50%;
	border:3px solid var(--pa-accent);overflow:hidden;background:var(--pa-card-bg);
	box-shadow:0 6px 16px var(--pa-shadow);
	transition:transform .2s ease,box-shadow .2s ease;
}
.pa-osm-marker .pa-ring img{display:block;width:100%;height:100%;object-fit:cover}
.pa-osm-marker .pa-tip{
	display:block;width:0;height:0;margin-top:-1px;
	border-left:7px solid transparent;border-right:7px solid transparent;
	border-top:9px solid var(--pa-accent);
	transition:transform .2s ease;
}
.pa-osm-marker.pa-photo:hover .pa-ring,
.pa-osm-marker.pa-photo.pa-active .pa-ring{transform:translateY(-4px) scale(1.06);box-shadow:0 12px 26px var(--pa-shadow)}
.pa-osm-marker.pa-photo:hover .pa-tip,
.pa-osm-marker.pa-photo.pa-active .pa-tip{transform:translateY(-4px)}
.pa-osm-marker.pa-photo .pa-osm-name{position:static;transform:none;margin-top:4px}
.patlas-root .pa-stage:not([data-pa-view="hill"]) .pa-pin{display:none}
.pa-zoomctl{position:absolute;right:12px;top:12px;display:none;flex-direction:column;gap:6px;z-index:4}
.pa-stage[data-pa-view="vector"] .pa-zoomctl{display:flex}
.pa-zoomctl button{
	width:34px;height:34px;border-radius:50%;border:1px solid var(--pa-card-line);
	background:var(--pa-card-bg);color:var(--pa-ink);font-size:18px;font-weight:600;
	cursor:pointer;display:grid;place-items:center;box-shadow:0 2px 8px var(--pa-shadow);
	padding:0;line-height:1;
}
.pa-zoomctl button:focus-visible{outline:2px solid var(--pa-accent);outline-offset:2px}

.pa-dock{
	position:absolute;left:50%;bottom:12px;transform:translateX(-50%);
	display:none;align-items:center;gap:2px;z-index:4;
	max-width:min(94%,880px);overflow-x:auto;padding:5px;
	background:var(--pa-card-bg);border:1px solid var(--pa-card-line);
	border-radius:999px;box-shadow:0 8px 24px var(--pa-shadow);scrollbar-width:none;
}
.pa-dock::-webkit-scrollbar{display:none}
.pa-stage[data-pa-view="vector"] .pa-dock,
.pa-stage[data-pa-view="osm"] .pa-dock{display:flex}
.pa-dock button{
	border:0;background:transparent;color:var(--pa-ink);font:inherit;font-size:12px;
	font-weight:600;padding:6px 11px;border-radius:999px;cursor:pointer;
	white-space:nowrap;display:inline-flex;align-items:center;gap:6px;
	transition:background .15s,color .15s;line-height:1.3;
}
.pa-dock button .pa-dot{width:8px;height:8px;border-radius:50%;flex:none}
/* explicit colors on every state so theme button:hover styles cannot bleed in */
.patlas-root .pa-dock button:hover,
.patlas-root .pa-dock button:focus,
.patlas-root .pa-dock button.pa-on{background:var(--pa-hover);color:var(--pa-ink);border:0;box-shadow:none}
.patlas-root .pa-dock button.pa-tour,
.patlas-root .pa-dock button.pa-tour:hover,
.patlas-root .pa-dock button.pa-tour:focus{background:var(--pa-accent);color:var(--pa-accent-ink)}
.patlas-root .pa-dock button.pa-tour:hover{filter:brightness(1.08)}
.pa-dock button:focus-visible{outline:2px solid var(--pa-accent);outline-offset:1px}
.patlas-root .pa-views button:hover,
.patlas-root .pa-views button:focus{background:var(--pa-hover);color:var(--pa-ink)}
.patlas-root .pa-views button[aria-pressed="true"],
.patlas-root .pa-views button[aria-pressed="true"]:hover,
.patlas-root .pa-views button[aria-pressed="true"]:focus{background:var(--pa-accent);color:var(--pa-accent-ink)}
.patlas-root .pa-chip:hover,
.patlas-root .pa-chip:focus{background:var(--pa-hover);color:var(--pa-ink);border-color:var(--pa-card-line)}
.patlas-root .pa-chip[aria-pressed="true"],
.patlas-root .pa-chip[aria-pressed="true"]:hover,
.patlas-root .pa-chip[aria-pressed="true"]:focus{background:var(--pa-accent);color:var(--pa-accent-ink);border-color:var(--pa-accent)}
.patlas-root .pa-zoomctl button:hover{background:var(--pa-card-bg);color:var(--pa-ink)}

/* ---------- scene elements ---------- */
.patlas-root .pa-bldg{
	cursor:pointer;transition:transform .25s ease,opacity .3s,filter .3s;
	transform-box:fill-box;transform-origin:center bottom;
}
.patlas-root .pa-bldg:hover,
.patlas-root .pa-bldg:focus-visible,
.patlas-root .pa-bldg.pa-active{transform:translateY(-7px)}
.patlas-root .pa-bldg:focus{outline:none}
.patlas-root .pa-bldg:focus-visible{filter:drop-shadow(0 0 5px var(--pa-accent))}
.patlas-root .pa-bldg.pa-dim{opacity:.32;filter:saturate(.4)}
.patlas-root .pa-win{filter:drop-shadow(0 0 3px var(--pa-win-halo))}
.patlas-root .pa-stars{opacity:var(--pa-stars);transition:opacity .4s}
.patlas-root .pa-route{
	fill:none;stroke:var(--pa-accent);stroke-width:2.5;stroke-dasharray:2 10;
	stroke-linecap:round;stroke-linejoin:round;opacity:.45;pointer-events:none;
}
.patlas-root .pa-contour{fill:none;stroke:var(--pa-map-contour);stroke-width:1.5;pointer-events:none}
.patlas-root .pa-mklabel{
	font-size:12px;font-weight:600;fill:var(--pa-ink);
	stroke:var(--pa-map-land);stroke-width:3px;paint-order:stroke;
	text-anchor:middle;pointer-events:none;font-family:inherit;
}
.patlas-root .pa-district{
	font-size:13px;font-weight:600;letter-spacing:.3em;fill:var(--pa-ink-soft);
	opacity:.55;text-anchor:middle;pointer-events:none;font-family:inherit;
}
.patlas-root .pa-roadname{
	font-size:10px;font-weight:600;letter-spacing:.28em;fill:var(--pa-ink-soft);
	opacity:.55;pointer-events:none;font-family:inherit;
}

/* ---------- 3D terrain view ---------- */
.patlas-root .pa-stage .pa-3d{
	display:none;position:relative;aspect-ratio:16/9.4;overflow:hidden;
	border-radius:var(--pa-card-radius);background:#10161a;
	box-shadow:0 18px 46px var(--pa-shadow);
}
.patlas-root .pa-stage[data-pa-view="terrain"] .pa-3d{display:block}
.pa-3d canvas{display:block;width:100%;height:100%;cursor:grab}
.pa3d-hint{
	position:absolute;left:12px;bottom:10px;z-index:4;pointer-events:none;
	font-size:9.5px;letter-spacing:.1em;color:#e8ebe6;opacity:.65;
	text-shadow:0 1px 3px rgba(0,0,0,.5);font-weight:600;
}
.pa3d-tag{
	position:absolute;z-index:3;transform:translate(-50%,-150%);pointer-events:none;
	font-size:8.5px;letter-spacing:.08em;font-weight:600;
	color:#eef1ec;background:rgba(13,18,22,.36);border:1px solid rgba(255,255,255,.14);
	border-radius:999px;padding:2px 8px;white-space:nowrap;
	display:flex;align-items:center;gap:5px;transition:opacity .2s;
}
.pa3d-tag i{width:6px;height:6px;border-radius:50%;display:block}
.pa3d-scard{
	position:absolute;width:300px;max-width:84%;z-index:6;
	background:var(--pa-card-bg);border:1px solid var(--pa-card-line);border-radius:13px;
	box-shadow:0 16px 40px var(--pa-shadow);padding:13px 15px;
	opacity:0;pointer-events:none;transform:translateY(6px);
	transition:opacity .18s,transform .18s;
}
.pa3d-scard.show{opacity:1;pointer-events:auto;transform:translateY(0)}
.pa3d-bar{height:4px;border-radius:99px;margin:0 0 9px;width:56px}
.pa3d-scard h4,.pa3d-phead h4{margin:0 0 4px;font-size:15.5px;font-weight:700;line-height:1.3;color:var(--pa-ink)}
.pa3d-scard p,.pa3d-phead p{margin:0 0 8px;font-size:12px;color:var(--pa-ink-soft)}
.pa3d-tgrid{display:flex;gap:7px;flex-wrap:wrap}
.pa3d-mini{
	width:calc(50% - 4px);border:1px solid var(--pa-card-line);border-radius:9px;
	overflow:hidden;padding:0 0 5px;background:var(--pa-card-bg);cursor:pointer;
	font:inherit;color:var(--pa-ink);text-align:left;transition:transform .18s,box-shadow .18s;
}
.pa3d-mini:hover{transform:translateY(-2px);box-shadow:0 8px 20px var(--pa-shadow)}
.pa3d-mini img{width:100%;height:60px;object-fit:cover;display:block}
.pa3d-mini span{display:block;font-size:10px;font-weight:600;padding:4px 7px 0;line-height:1.25}
.pa3d-panel{
	position:absolute;top:12px;right:12px;bottom:12px;width:min(360px,85%);
	z-index:8;display:none;flex-direction:column;
	background:var(--pa-card-bg);border:1px solid var(--pa-card-line);border-radius:14px;
	box-shadow:0 24px 56px var(--pa-shadow);overflow:hidden;
}
.pa3d-panel.open{display:flex}
.pa3d-phead{padding:13px 16px 11px;border-bottom:1px solid var(--pa-card-line);position:relative}
.pa3d-phead h4{padding-right:30px;font-size:16px}
.pa3d-close{
	position:absolute;top:9px;right:9px;width:28px;height:28px;border-radius:50%;
	border:1px solid var(--pa-card-line);background:var(--pa-card-bg);color:var(--pa-ink);
	font-size:15px;line-height:1;cursor:pointer;padding:0;
}
.pa3d-close:hover{color:var(--pa-accent);border-color:var(--pa-accent)}
.pa3d-grid{display:flex;flex-direction:column;gap:10px;padding:12px 14px;overflow:auto}
.pa3d-mini.pa3d-big{width:100%;padding-bottom:8px}
.pa3d-mini.pa3d-big img{height:104px}
.pa3d-mini .nm{display:block;font-size:12.5px;font-weight:700;padding:8px 10px 1px;line-height:1.3}
.pa3d-mini .st{display:block;font-size:10.5px;color:var(--pa-ink-soft);padding:0 10px}
.pa3d-empty{
	text-align:center;color:var(--pa-ink-soft);font-size:11px;
	letter-spacing:.05em;padding:24px 10px;
}

/* ---------- Mission Island view ---------- */
.patlas-root .pa-stage .pa-isl{
	display:none;position:relative;overflow:hidden;
	border-radius:var(--pa-card-radius);
	box-shadow:0 18px 46px var(--pa-shadow);
	--pa-isand:#E9DBB2;--pa-isand2:#D5C495;--pa-isand3:#C3B183;
	--pa-ig1t:#9BB884;--pa-ig1l:#86A370;--pa-ig1s:#6E8A5C;
	--pa-ig2t:#A7C290;--pa-ig2l:#92AD7C;--pa-ig2s:#799367;
	--pa-ig3t:#B2CC9C;--pa-ig3l:#9DB787;--pa-ig3s:#849D71;
	--pa-iwater:#8FB5C9;--pa-iwater2:#749DB4;--pa-iwave:#BFD8E4;
	--pa-isail:#F5F1E6;--pa-irock:#ABABA1;--pa-irock2:#8F8F86;
}
.patlas-root[data-mood="dusk"] .pa-stage .pa-isl{
	--pa-isand:#4E4838;--pa-isand2:#3E392C;--pa-isand3:#332F24;
	--pa-ig1t:#3E5244;--pa-ig1l:#34473B;--pa-ig1s:#2A3A30;
	--pa-ig2t:#455A4B;--pa-ig2l:#3A4E40;--pa-ig2s:#2F4235;
	--pa-ig3t:#4C6252;--pa-ig3l:#415646;--pa-ig3s:#364A3B;
	--pa-iwater:#33566B;--pa-iwater2:#274558;--pa-iwave:#3E637A;
	--pa-isail:#C6CFD6;--pa-irock:#565B58;--pa-irock2:#434745;
}
@media (prefers-color-scheme: dark){
	.patlas-root[data-mood="auto"] .pa-stage .pa-isl{
		--pa-isand:#4E4838;--pa-isand2:#3E392C;--pa-isand3:#332F24;
		--pa-ig1t:#3E5244;--pa-ig1l:#34473B;--pa-ig1s:#2A3A30;
		--pa-ig2t:#455A4B;--pa-ig2l:#3A4E40;--pa-ig2s:#2F4235;
		--pa-ig3t:#4C6252;--pa-ig3l:#415646;--pa-ig3s:#364A3B;
		--pa-iwater:#33566B;--pa-iwater2:#274558;--pa-iwave:#3E637A;
		--pa-isail:#C6CFD6;--pa-irock:#565B58;--pa-irock2:#434745;
	}
}
.patlas-root .pa-stage[data-pa-view="island"] .pa-isl{display:block}
.patlas-root .pa-isl .pa-islsvg{display:block;width:100%;height:auto;cursor:grab;touch-action:none}
.patlas-root .pa-isl .pa-islsvg.pa-panning{cursor:grabbing}
.pa-ibldg{cursor:pointer;transition:filter .3s}
.pa-ibldg:focus{outline:none}
.pa-ibldg:hover,.pa-ibldg:focus-visible,.pa-ibldg.pa-on{filter:drop-shadow(0 0 7px rgba(233,118,63,.55))}
.pa-ihdot{pointer-events:none}
.pa-islzoom{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px;z-index:4}
.patlas-root .pa-islzoom button{
	width:32px;height:32px;border-radius:50%;border:1px solid var(--pa-card-line);
	background:var(--pa-card-bg);color:var(--pa-ink);font-size:16px;font-weight:600;
	cursor:pointer;display:grid;place-items:center;box-shadow:0 2px 8px var(--pa-shadow);
	padding:0;line-height:1;
}
.patlas-root .pa-islzoom button:hover,
.patlas-root .pa-islzoom button:focus{background:var(--pa-card-bg);color:var(--pa-accent);border-color:var(--pa-accent)}
.patlas-root .pa-islzoom button:focus-visible{outline:2px solid var(--pa-accent);outline-offset:2px}

/* ---------- hillside pins ---------- */
.pa-pin{
	position:absolute;transform:translate(-50%,-100%);
	background:var(--pa-card-bg);border:1px solid var(--pa-card-line);
	color:var(--pa-ink);font-size:11px;font-weight:600;letter-spacing:.02em;
	padding:4px 9px;border-radius:999px;white-space:nowrap;
	box-shadow:0 2px 8px var(--pa-shadow);pointer-events:none;transition:opacity .3s;
	line-height:1.4;
}
.pa-pin::after{
	content:"";position:absolute;left:50%;bottom:-4px;width:8px;height:8px;
	background:inherit;border-right:1px solid var(--pa-card-line);
	border-bottom:1px solid var(--pa-card-line);
	transform:translateX(-50%) rotate(45deg);
}
.pa-pin.pa-dim{opacity:.25}
@media (max-width:719px){
	.pa-pin{
		font-size:0;padding:0;width:12px;height:12px;border-radius:50%;
		background:var(--pa-accent);border-color:var(--pa-card-bg);
		transform:translate(-50%,-50%);
	}
	.pa-pin::after{display:none}
}

/* ---------- card ---------- */
.patlas-card{
	position:absolute;width:300px;max-width:86vw;
	background:var(--pa-card-bg);border:1px solid var(--pa-card-line);
	border-radius:var(--pa-card-radius);box-shadow:0 14px 38px var(--pa-shadow);
	padding:16px 18px 15px;z-index:5;opacity:0;pointer-events:none;
	transform:translateY(6px);transition:opacity .18s ease,transform .18s ease;
}
.patlas-card.pa-show{opacity:1;pointer-events:auto;transform:translateY(0)}
.pa-shots{
	position:relative;margin:-16px -18px 12px;
	border-radius:calc(var(--pa-card-radius) - 1px) calc(var(--pa-card-radius) - 1px) 0 0;
	overflow:hidden;aspect-ratio:2/1;background:#22303E;
}
.pa-shots .pa-shotbox{position:absolute;inset:0}
.pa-shots svg{display:block;width:100%;height:100%}
.pa-shots img{display:block;width:100%;height:100%;object-fit:cover}
.pa-snav{
	position:absolute;top:50%;transform:translateY(-50%);
	width:26px;height:26px;border-radius:50%;border:0;
	background:rgba(15,22,18,.45);color:#fff;font-size:16px;line-height:1;
	cursor:pointer;display:grid;place-items:center;padding:0 0 2px;
}
.pa-snav:hover{background:rgba(15,22,18,.7)}
.pa-snav.pa-prev{left:8px}.pa-snav.pa-next{right:8px}
.pa-sdots{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);display:flex;gap:5px}
.pa-sdots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.45)}
.pa-sdots i.pa-on{background:#fff}
.patlas-card .pa-count{
	position:absolute;top:8px;right:8px;z-index:2;
	background:rgba(15,20,16,.55);color:#fff;font-size:10.5px;font-weight:600;
	padding:3px 9px;border-radius:999px;line-height:1.5;pointer-events:none;
}
.patlas-card .pa-chiprow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}
.patlas-card .pa-cat{
	display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;
	text-transform:uppercase;color:#fff;border-radius:8px;
	padding:4px 10px;line-height:1.45;max-width:100%;
}
.patlas-card .pa-status{
	display:inline-block;font-size:10.5px;font-weight:600;color:var(--pa-ink-soft);
	border:1px solid var(--pa-card-line);border-radius:8px;padding:3px 10px;line-height:1.45;
}
.patlas-card .pa-role,.patlas-card .pa-addr{
	font-size:12.5px;color:var(--pa-ink-soft);margin:0 0 5px;
	display:flex;align-items:baseline;gap:6px;
}
.patlas-card .pa-role b{color:var(--pa-ink);font-weight:600}
.patlas-card .pa-ic{flex:none;font-size:12px;line-height:1}
.pa-gcard.pa-linked{cursor:pointer}

/* tilted photo-poster prints */
.patlas-root .pa-tilt{
	transform:rotate(var(--pa-tilt,0deg));transform-box:fill-box;
	transform-origin:center bottom;transition:transform .28s ease;
}
.patlas-root .pa-bldg:hover .pa-tilt,
.patlas-root .pa-bldg:focus-visible .pa-tilt,
.patlas-root .pa-bldg.pa-active .pa-tilt{transform:rotate(0deg) scale(1.05)}
.patlas-root .pa-postername{
	font-size:11.5px;font-weight:600;fill:var(--pa-ink);
	text-anchor:middle;font-family:inherit;pointer-events:none;
}
/* the poster marker on the real map */
.pa-osm-marker.pa-posterm{display:flex;flex-direction:column;align-items:center}
.pa-osm-marker:hover,.pa-osm-marker.pa-active,.pa-osm-marker:focus-visible{z-index:6 !important}
.pa-posterc{
	display:block;width:152px;background:var(--pa-card-bg);
	border:1px solid var(--pa-card-line);padding:6px 6px 5px;
	box-shadow:0 10px 24px var(--pa-shadow);
	transform:rotate(var(--pa-tilt,0deg));transform-origin:bottom center;
	transition:transform .25s ease,width .25s ease,box-shadow .25s ease;
}
.pa-posterc img{display:block;width:100%;height:94px;object-fit:cover;transition:height .25s ease}
.pa-posterc b{
	display:block;font-size:11px;font-weight:600;color:var(--pa-ink);
	text-align:center;padding:4px 2px 1px;line-height:1.3;
	white-space:normal;overflow:hidden;
	display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.pa-postertip{
	display:block;width:11px;height:11px;border-radius:50%;
	border:2px solid var(--pa-card-bg);margin-top:5px;
	box-shadow:0 2px 6px var(--pa-shadow);
}
.pa-osm-marker.pa-posterm:hover .pa-posterc,
.pa-osm-marker.pa-posterm.pa-active .pa-posterc{
	transform:rotate(0deg) translateY(-5px) scale(1.04);
	box-shadow:0 16px 34px var(--pa-shadow);
}
.pa-realmap.pa-far .pa-posterc{width:46px;padding:3px}
.pa-realmap.pa-far .pa-posterc img{height:32px}
.pa-realmap.pa-far .pa-posterc b{display:none}
.pa-pin img{
	width:18px;height:18px;border-radius:50%;object-fit:cover;
	margin:-2px 6px -5px -3px;vertical-align:middle;display:inline-block;
	border:1px solid var(--pa-card-line);
}
@media (max-width:719px){
	.pa-pin img{display:none}
}
.patlas-card h3{font-size:20px;margin:0 0 2px;font-weight:700;line-height:1.25}
.patlas-card .pa-meta{font-size:12.5px;color:var(--pa-ink-soft);margin:0 0 8px}
.patlas-card .pa-blurb{font-size:13.5px;margin:0 0 10px}
.patlas-card .pa-facts{display:flex;gap:14px;margin:0 0 12px;padding:0;list-style:none}
.patlas-card .pa-facts li{font-size:12px;color:var(--pa-ink-soft);list-style:none}
.patlas-card .pa-facts b{display:block;font-size:14px;color:var(--pa-ink);font-variant-numeric:tabular-nums}
.patlas-card .pa-more{font-size:13px;font-weight:600;color:var(--pa-accent);text-decoration:none}
.patlas-card .pa-more:hover{text-decoration:underline}

@media (max-width:640px){
	.patlas-card:not(.pa-static){
		position:fixed;left:50%;bottom:14px;top:auto !important;
		transform:translate(-50%,8px);width:min(420px,92vw);
		max-height:calc(100vh - 28px);overflow-y:auto;z-index:99999;
	}
	.patlas-card:not(.pa-static).pa-show{transform:translate(-50%,0)}
}

/* ---------- motion ---------- */
@media (prefers-reduced-motion: no-preference){
	.patlas-root .pa-bldg{animation:pa-rise .6s ease backwards}
	@keyframes pa-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
	.patlas-root .pa-ping{animation:pa-ping 1.9s ease-out infinite;transform-box:fill-box;transform-origin:center}
	@keyframes pa-ping{0%{transform:scale(.55);opacity:.85}75%{transform:scale(1.7);opacity:0}100%{transform:scale(1.7);opacity:0}}
	.patlas-root .pa-route{animation:pa-march 36s linear infinite}
	@keyframes pa-march{to{stroke-dashoffset:-720}}
	.patlas-root .pa-bob{animation:pa-bob 5.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
	@keyframes pa-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
	.patlas-root .pa-iboat{animation:pa-bob 4.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
}
@media (prefers-reduced-motion: reduce){
	.patlas-root .pa-bldg,.patlas-card,.pa-pin{transition:none;animation:none}
	.patlas-root .pa-iboat{animation:none}
	.patlas-root .pa-ping{animation:none;opacity:.4}
	.patlas-root .pa-route{animation:none}
}
