<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Orte on Tales of Waterdeep</title>
    <link>https://dnd.lucashabersaat.ch/docs/welt/orte/</link>
    <description>Recent content in Orte on Tales of Waterdeep</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://dnd.lucashabersaat.ch/docs/welt/orte/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Tiefwasser</title>
      <link>https://dnd.lucashabersaat.ch/docs/welt/orte/waterdeep/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://dnd.lucashabersaat.ch/docs/welt/orte/waterdeep/</guid>
      <description>&lt;h1 id=&#34;tiefwasser&#34;&gt;Tiefwasser&lt;a class=&#34;anchor&#34; href=&#34;#tiefwasser&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Tiefwasser ist eine Stadt aus Gold und Gerüchten, aus hohen Türmen und tiefen Schatten. Händler, Adlige, Diebe und Magier teilen sich dieselben Straßen, doch niemals dieselben Wahrheiten. Hinter prächtigen Fassaden regieren Münzen, Gefälligkeiten und alte Geheimnisse, während das einfache Volk nur das sieht, was man es sehen lässt. Tiefwasser nennt sich die Stadt der Pracht – doch wer lange genug bleibt, merkt schnell: Unter dem Glanz fault etwas.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;waterdeep.jpg&#34; alt=&#34;waterdeep&#34; /&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Karte von Tiefwasser</title>
      <link>https://dnd.lucashabersaat.ch/docs/welt/orte/karte/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://dnd.lucashabersaat.ch/docs/welt/orte/karte/</guid>
      <description>&lt;h1 id=&#34;karte-von-tiefwasser&#34;&gt;Karte von Tiefwasser&lt;a class=&#34;anchor&#34; href=&#34;#karte-von-tiefwasser&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;link rel=&#34;stylesheet&#34; href=&#34;https://unpkg.com/leaflet@1.9.4/dist/leaflet.css&#34; /&gt;&#xA;&lt;script src=&#34;https://unpkg.com/leaflet@1.9.4/dist/leaflet.js&#34;&gt;&lt;/script&gt;&#xA;&lt;style&gt;&#xA;#tiefwasser-map {&#xA;  height: 700px;&#xA;  width: 100%;&#xA;  background: #1a2a3a;&#xA;  border: 2px solid #8B7355;&#xA;  border-radius: 4px;&#xA;  margin: 1rem 0;&#xA;}&#xA;.ward-label {&#xA;  background: none !important;&#xA;  border: none !important;&#xA;  box-shadow: none !important;&#xA;  font-family: &#39;Georgia&#39;, serif;&#xA;  font-size: 12px;&#xA;  font-weight: bold;&#xA;  color: #f5e6c8;&#xA;  text-shadow: 1px 1px 3px rgba(0,0,0,0.9), -1px -1px 3px rgba(0,0,0,0.9), 2px 0 3px rgba(0,0,0,0.7), 0 2px 3px rgba(0,0,0,0.7);&#xA;  white-space: nowrap;&#xA;  pointer-events: none;&#xA;}&#xA;.ward-label-small {&#xA;  background: none !important;&#xA;  border: none !important;&#xA;  box-shadow: none !important;&#xA;  font-family: &#39;Georgia&#39;, serif;&#xA;  font-size: 10px;&#xA;  font-style: italic;&#xA;  color: #e8d8b8;&#xA;  text-shadow: 1px 1px 3px rgba(0,0,0,0.9), -1px -1px 3px rgba(0,0,0,0.9);&#xA;  white-space: nowrap;&#xA;  pointer-events: none;&#xA;}&#xA;.leaflet-popup-content-wrapper {&#xA;  background: #F5E6C8;&#xA;  border: 1px solid #8B7355;&#xA;  border-radius: 4px;&#xA;  font-family: &#39;Georgia&#39;, serif;&#xA;}&#xA;.leaflet-popup-content {&#xA;  margin: 10px 14px;&#xA;  color: #2c1810;&#xA;  font-size: 13px;&#xA;  line-height: 1.5;&#xA;}&#xA;.leaflet-popup-content a {&#xA;  color: #6B4226;&#xA;  font-weight: bold;&#xA;  text-decoration: none;&#xA;  border-bottom: 1px dotted #8B7355;&#xA;}&#xA;.leaflet-popup-content a:hover {&#xA;  color: #8B5A2B;&#xA;  border-bottom-style: solid;&#xA;}&#xA;.leaflet-popup-tip { background: #F5E6C8; }&#xA;.map-legend {&#xA;  background: #F5E6C8;&#xA;  border: 2px solid #8B7355;&#xA;  border-radius: 4px;&#xA;  padding: 10px 14px;&#xA;  font-family: &#39;Georgia&#39;, serif;&#xA;  font-size: 11px;&#xA;  color: #2c1810;&#xA;  line-height: 2;&#xA;  margin-top: 0.5rem;&#xA;}&#xA;.map-legend b { font-size: 12px; border-bottom: 1px solid #8B7355; display: block; margin-bottom: 4px; padding-bottom: 3px; }&#xA;.li { display: inline-flex; align-items: center; margin-right: 12px; }&#xA;.lc { width: 12px; height: 12px; border-radius: 2px; display: inline-block; margin-right: 4px; border: 1px solid rgba(0,0,0,0.25); }&#xA;.lm { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: 4px; border: 2px solid #2c1810; }&#xA;.street-tooltip {&#xA;  background: rgba(30,20,10,0.85) !important;&#xA;  border: 1px solid #D4A843 !important;&#xA;  color: #f5e6c8 !important;&#xA;  font-family: &#39;Georgia&#39;, serif !important;&#xA;  font-size: 11px !important;&#xA;  padding: 3px 8px !important;&#xA;  border-radius: 3px !important;&#xA;  box-shadow: 0 2px 6px rgba(0,0,0,0.5) !important;&#xA;}&#xA;.street-tooltip::before { border-top-color: #D4A843 !important; }&#xA;#street-editor {&#xA;  background: #1a1a2e;&#xA;  border: 2px solid #D4A843;&#xA;  border-radius: 4px;&#xA;  padding: 12px;&#xA;  margin: 1rem 0;&#xA;  font-family: &#39;Menlo&#39;, &#39;Monaco&#39;, monospace;&#xA;  font-size: 12px;&#xA;  color: #f5e6c8;&#xA;  display: none;&#xA;}&#xA;#street-editor.active { display: block; }&#xA;#street-editor button {&#xA;  background: #2c1810;&#xA;  color: #D4A843;&#xA;  border: 1px solid #D4A843;&#xA;  border-radius: 3px;&#xA;  padding: 4px 10px;&#xA;  cursor: pointer;&#xA;  font-family: inherit;&#xA;  font-size: 12px;&#xA;  margin-right: 6px;&#xA;  margin-bottom: 4px;&#xA;}&#xA;#street-editor button:hover { background: #D4A843; color: #1a1a2e; }&#xA;#street-editor button.active-btn { background: #D4A843; color: #1a1a2e; font-weight: bold; }&#xA;#point-list {&#xA;  background: #0d0d1a;&#xA;  border: 1px solid #444;&#xA;  border-radius: 3px;&#xA;  padding: 8px;&#xA;  margin-top: 8px;&#xA;  min-height: 40px;&#xA;  max-height: 200px;&#xA;  overflow-y: auto;&#xA;  white-space: pre-wrap;&#xA;  word-break: break-all;&#xA;  line-height: 1.6;&#xA;}&#xA;#output-box {&#xA;  background: #0d0d1a;&#xA;  border: 1px solid #444;&#xA;  border-radius: 3px;&#xA;  padding: 8px;&#xA;  margin-top: 8px;&#xA;  min-height: 60px;&#xA;  max-height: 300px;&#xA;  overflow-y: auto;&#xA;  white-space: pre;&#xA;  font-size: 11px;&#xA;  color: #8f8;&#xA;}&#xA;.click-marker {&#xA;  background: #ff3366 !important;&#xA;  border: 2px solid #fff !important;&#xA;  border-radius: 50% !important;&#xA;  box-shadow: 0 0 6px rgba(255,51,102,0.8) !important;&#xA;}&#xA;.click-marker-label {&#xA;  background: rgba(255,51,102,0.9) !important;&#xA;  border: none !important;&#xA;  color: #fff !important;&#xA;  font-size: 10px !important;&#xA;  font-weight: bold !important;&#xA;  padding: 1px 4px !important;&#xA;  border-radius: 2px !important;&#xA;}&#xA;&lt;/style&gt;&#xA;&lt;div id=&#34;tiefwasser-map&#34;&gt;&lt;/div&gt;&#xA;&lt;div class=&#34;map-legend&#34;&gt;&#xA;&lt;b&gt;Legende — Bezirke anklicken für Details&lt;/b&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lc&#34; style=&#34;background:#EE8080&#34;&gt;&lt;/span&gt;Burgbezirk&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lc&#34; style=&#34;background:#ccccff&#34;&gt;&lt;/span&gt;Seebezirk&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lc&#34; style=&#34;background:#ffcc66&#34;&gt;&lt;/span&gt;Nordbezirk&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lc&#34; style=&#34;background:#b3ffcc&#34;&gt;&lt;/span&gt;Handelsbezirk&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lc&#34; style=&#34;background:#ffff99&#34;&gt;&lt;/span&gt;Suedbezirk&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lc&#34; style=&#34;background:#b3d9ff&#34;&gt;&lt;/span&gt;Hafenbezirk&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lc&#34; style=&#34;background:#b3ffcc;opacity:0.7&#34;&gt;&lt;/span&gt;Feldbezirk&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lc&#34; style=&#34;background:#EE8080;border-style:dashed&#34;&gt;&lt;/span&gt;Stadt der Toten&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lm&#34; style=&#34;background:#D4A843&#34;&gt;&lt;/span&gt;Ort&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lm&#34; style=&#34;background:#ffffff&#34;&gt;&lt;/span&gt;Taverne&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lm&#34; style=&#34;background:#4488ff&#34;&gt;&lt;/span&gt;Stapel&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lm&#34; style=&#34;background:#ff4444&#34;&gt;&lt;/span&gt;Zhentarim&lt;/span&gt;&#xA;&lt;span class=&#34;li&#34;&gt;&lt;span class=&#34;lm&#34; style=&#34;background:#44dddd&#34;&gt;&lt;/span&gt;Quest&lt;/span&gt;&#xA;&lt;/div&gt;&#xA;&lt;details style=&#34;margin:0.5rem 0;&#34;&gt;&#xA;  &lt;summary style=&#34;background:#D4A843;color:#1a1a2e;border:2px solid #8B7355;border-radius:4px;padding:6px 14px;cursor:pointer;font-family:Georgia,serif;font-size:13px;font-weight:bold;display:inline-block;&#34;&gt;Strassen-Editor&lt;/summary&gt;&#xA;  &lt;div id=&#34;street-editor&#34; class=&#34;active&#34; style=&#34;display:block;&#34;&gt;&#xA;    &lt;div style=&#34;margin-bottom:8px;color:#999;font-size:11px;line-height:1.5;&#34;&gt;&#xA;      Zeichne Strassenzüge auf der Karte. Klicke mehrere Punkte entlang einer Strasse,&#xA;      gib ihr einen Namen, und drücke &lt;b style=&#34;color:#D4A843;&#34;&gt;Strasse fertig&lt;/b&gt;.&#xA;      Der generierte Code erscheint unten — kopiere ihn und gib ihn Claude.&#xA;      &lt;b style=&#34;color:#D4A843;&#34;&gt;Undo&lt;/b&gt; entfernt den letzten Punkt, &lt;b style=&#34;color:#D4A843;&#34;&gt;Alles löschen&lt;/b&gt; startet neu.&#xA;    &lt;/div&gt;&#xA;    &lt;div&gt;&#xA;      &lt;button id=&#34;btn-mode-street&#34; onclick=&#34;editorSetMode(&#39;street&#39;)&#34; class=&#34;active-btn&#34;&gt;Strasse zeichnen&lt;/button&gt;&#xA;      &lt;button id=&#34;btn-undo&#34; onclick=&#34;editorUndo()&#34;&gt;↩ Undo&lt;/button&gt;&#xA;      &lt;button id=&#34;btn-clear&#34; onclick=&#34;editorClear()&#34;&gt;✕ Alles löschen&lt;/button&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div style=&#34;margin-top:8px;display:flex;align-items:center;gap:8px;&#34;&gt;&#xA;      &lt;label style=&#34;color:#D4A843;white-space:nowrap;&#34;&gt;Name:&lt;/label&gt;&#xA;      &lt;input id=&#34;street-name&#34; type=&#34;text&#34; placeholder=&#34;z.B. Delzorin-Strasse&#34; style=&#34;flex:1;background:#0d0d1a;border:1px solid #D4A843;border-radius:3px;padding:4px 8px;color:#f5e6c8;font-family:inherit;font-size:12px;&#34; /&gt;&#xA;      &lt;button id=&#34;btn-finish&#34; onclick=&#34;editorFinishStreet()&#34;&gt;✓ Strasse fertig&lt;/button&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div style=&#34;margin-top:6px;color:#999;font-size:11px;&#34;&gt;&#xA;      Aktuelle Punkte (&lt;span id=&#34;point-count&#34;&gt;0&lt;/span&gt;):&#xA;    &lt;/div&gt;&#xA;    &lt;div id=&#34;point-list&#34;&gt;Noch keine Punkte gesetzt.&lt;/div&gt;&#xA;    &lt;div style=&#34;margin-top:8px;display:flex;align-items:center;justify-content:space-between;&#34;&gt;&#xA;      &lt;span style=&#34;color:#999;font-size:11px;&#34;&gt;Fertige Strassen:&lt;/span&gt;&#xA;      &lt;button id=&#34;btn-copy-streets&#34; onclick=&#34;editorCopy(&#39;street&#39;)&#34;&gt;📋 Kopieren&lt;/button&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div id=&#34;output-box&#34;&gt;// Klicke Punkte, dann &#34;Strasse fertig&#34;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/details&gt;&#xA;&lt;details style=&#34;margin:0.5rem 0;&#34;&gt;&#xA;  &lt;summary style=&#34;background:#44ddff;color:#1a1a2e;border:2px solid #2a8a9e;border-radius:4px;padding:6px 14px;cursor:pointer;font-family:Georgia,serif;font-size:13px;font-weight:bold;display:inline-block;&#34;&gt;Ort-Editor&lt;/summary&gt;&#xA;  &lt;div id=&#34;place-editor&#34; class=&#34;active&#34; style=&#34;display:block;&#34;&gt;&#xA;    &lt;div style=&#34;margin-bottom:8px;color:#999;font-size:11px;line-height:1.5;&#34;&gt;&#xA;      Setze Orte auf der Karte. Gib einen Namen ein und klicke auf die Karte —&#xA;      ein Marker wird gesetzt und der Code erscheint unten.&#xA;      Kopiere den Code und gib ihn Claude.&#xA;    &lt;/div&gt;&#xA;    &lt;div style=&#34;display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px;&#34; id=&#34;place-type-buttons&#34;&gt;&#xA;      &lt;button onclick=&#34;setPlaceType(&#39;ort&#39;)&#34; class=&#34;ptype-btn active-ptype&#34; data-type=&#34;ort&#34; style=&#34;background:#D4A843;color:#1a1a2e;border:2px solid #D4A843;border-radius:3px;padding:3px 10px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:bold;&#34;&gt;Ort&lt;/button&gt;&#xA;      &lt;button onclick=&#34;setPlaceType(&#39;taverne&#39;)&#34; class=&#34;ptype-btn&#34; data-type=&#34;taverne&#34; style=&#34;background:transparent;color:#cccccc;border:2px solid #cccccc;border-radius:3px;padding:3px 10px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:bold;&#34;&gt;Taverne&lt;/button&gt;&#xA;      &lt;button onclick=&#34;setPlaceType(&#39;stapel&#39;)&#34; class=&#34;ptype-btn&#34; data-type=&#34;stapel&#34; style=&#34;background:transparent;color:#4488ff;border:2px solid #4488ff;border-radius:3px;padding:3px 10px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:bold;&#34;&gt;Stapel&lt;/button&gt;&#xA;      &lt;button onclick=&#34;setPlaceType(&#39;zhent&#39;)&#34; class=&#34;ptype-btn&#34; data-type=&#34;zhent&#34; style=&#34;background:transparent;color:#ff4444;border:2px solid #ff4444;border-radius:3px;padding:3px 10px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:bold;&#34;&gt;Zhentarim&lt;/button&gt;&#xA;      &lt;button onclick=&#34;setPlaceType(&#39;quest&#39;)&#34; class=&#34;ptype-btn&#34; data-type=&#34;quest&#34; style=&#34;background:transparent;color:#44dddd;border:2px solid #44dddd;border-radius:3px;padding:3px 10px;cursor:pointer;font-family:inherit;font-size:11px;font-weight:bold;&#34;&gt;Quest&lt;/button&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div style=&#34;display:flex;align-items:center;gap:8px;&#34;&gt;&#xA;      &lt;label style=&#34;color:#D4A843;white-space:nowrap;&#34;&gt;Name:&lt;/label&gt;&#xA;      &lt;input id=&#34;place-name&#34; type=&#34;text&#34; placeholder=&#34;z.B. Die einäugige Sirene&#34; style=&#34;flex:1;background:#0d0d1a;border:1px solid #D4A843;border-radius:3px;padding:4px 8px;color:#f5e6c8;font-family:inherit;font-size:12px;&#34; /&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div style=&#34;margin-top:8px;display:flex;align-items:center;justify-content:space-between;&#34;&gt;&#xA;      &lt;span style=&#34;color:#999;font-size:11px;&#34;&gt;Gesetzte Orte:&lt;/span&gt;&#xA;      &lt;button id=&#34;btn-copy-places&#34; onclick=&#34;editorCopy(&#39;place&#39;)&#34; style=&#34;background:#2c1810;color:#44ddff;border:1px solid #44ddff;border-radius:3px;padding:4px 10px;cursor:pointer;font-family:inherit;font-size:12px;&#34;&gt;📋 Kopieren&lt;/button&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div id=&#34;place-output-box&#34; style=&#34;background:#0d0d1a;border:1px solid #444;border-radius:3px;padding:8px;margin-top:4px;min-height:60px;max-height:300px;overflow-y:auto;white-space:pre;font-size:11px;color:#8ff;font-family:&#39;Menlo&#39;,&#39;Monaco&#39;,monospace;&#34;&gt;// Klicke auf die Karte um Orte zu setzen&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/details&gt;&#xA;&lt;script&gt;&#xA;(function() {&#xA;  // Original image: 3560 x 7256 px&#xA;  // We use half-res (1780x3628) but same coordinate space&#xA;  // Leaflet coords: lat = (imgH - y) / 10, lng = x / 10&#xA;  // So image bounds: SW=[0,0], NE=[725.6, 356.0]&#xA;  var imgH = 725.6, imgW = 356.0;&#xA;  var bounds = [[0, 0], [imgH, imgW]];&#xA;&#xA;  var map = L.map(&#39;tiefwasser-map&#39;, {&#xA;    crs: L.CRS.Simple,&#xA;    minZoom: -2,&#xA;    maxZoom: 4,&#xA;    zoomSnap: 0.25,&#xA;    zoomDelta: 0.5,&#xA;    maxBounds: [[-50, -30], [imgH + 50, imgW + 30]],&#xA;    maxBoundsViscosity: 0.8,&#xA;    attributionControl: false&#xA;  });&#xA;&#xA;  // Background map image&#xA;  L.imageOverlay(&#39;/images/waterdeep-map-hq.jpg&#39;, bounds).addTo(map);&#xA;&#xA;  // Fit to the interesting area (city proper)&#xA;  map.fitBounds([[80, 20], [720, 340]]);&#xA;&#xA;  // --- WARD STYLES ---&#xA;  function ws(color, opacity) {&#xA;    return { color: &#39;#000&#39;, weight: 1.5, fillColor: color, fillOpacity: opacity || 0.25, opacity: 0.5 };&#xA;  }&#xA;  function hover(e) { e.target.setStyle({ fillOpacity: 0.45, weight: 2.5 }); }&#xA;  function out(e, op) { e.target.setStyle({ fillOpacity: op || 0.25, weight: 1.5 }); }&#xA;  function popup(name, desc, url) {&#xA;    return &#39;&lt;strong&gt;&lt;a href=&#34;&#39; + url + &#39;&#34;&gt;&#39; + name + &#39;&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;&#39; + desc;&#xA;  }&#xA;  function addLabel(lat, lng, text, cls) {&#xA;    return L.marker([lat, lng], {&#xA;      icon: L.divIcon({ className: cls || &#39;ward-label&#39;, html: text, iconSize:[0,0], iconAnchor:[-4,8] }),&#xA;      interactive: false&#xA;    });&#xA;  }&#xA;&#xA;  // --- WARD LAYER GROUP ---&#xA;  var wardsGroup = L.layerGroup();&#xA;&#xA;  // Field Ward&#xA;  L.polygon([&#xA;    [701.0,73.8],[708.0,79.0],[707.1,86.1],[706.2,94.8],[703.7,108.5],[699.3,124.3],[694.1,140.4],[688.7,154.8],[684.9,170.0],[681.0,183.0],[678.0,197.4],[671.7,212.2],[668.9,219.3],[662.5,235.0],[656.9,245.6],[647.6,258.7],[639.5,268.7],[629.5,278.1],[613.0,295.0],[608.3,298.5],[600.2,297.4],[598.5,296.9],[593.7,298.5],[590.4,299.1],[587.6,297.0],[585.6,298.0],[580.4,295.7],[575.9,295.2],[571.7,296.1],[563.5,295.6],[557.8,297.2],[556.7,296.7],[552.4,297.8],[547.2,297.0],[543.1,295.4],[539.8,295.7],[538.1,296.5],[534.3,295.0],[526.3,294.1],[553.3,293.0],[572.4,289.3],[589.8,285.4],[605.6,276.9],[609.3,272.2],[617.6,255.9],[623.5,238.9],[632.1,222.0],[634.9,210.9],[634.7,204.8],[637.5,193.1],[644.5,175.4],[650.0,158.3],[656.3,140.4],[666.0,124.3],[676.5,113.1],[688.6,104.6],[687.1,93.3],[679.1,81.3],[699.7,73.1]&#xA;  ], ws(&#39;#b3ffcc&#39;, 0.2))&#xA;  .bindPopup(popup(&#39;Feldbezirk&#39;,&#39;Der inoffizielle Slum zwischen den Mauern.&#39;,&#39;/docs/welt/orte/bezirke/feldbezirk&#39;))&#xA;  .on(&#39;mouseover&#39;, hover).on(&#39;mouseout&#39;, function(e){out(e,0.2);})&#xA;  .addTo(wardsGroup);&#xA;&#xA;  // Sea Ward&#xA;  L.polygon([&#xA;    [634.7,207.9],[634.7,204.8],[637.5,193.1],[644.5,175.4],[650.0,158.3],[656.3,140.4],[666.0,124.3],[676.5,113.1],[688.6,104.6],[679.1,81.3],[665.3,69.3],[646.2,64.2],[628.2,58.5],[610.0,53.1],[582.8,53.8],[569.2,53.8],[560.0,52.5],[550.1,50.5],[553.7,41.4],[547.3,39.4],[543.8,48.3],[524.4,45.9],[511.0,34.5],[506.1,33.8],[500.4,30.5],[492.7,31.4],[489.7,40.0],[492.1,42.6],[493.1,50.7],[493.8,72.6],[493.1,119.6],[494.5,130.3],[493.5,177.7],[529.7,177.6],[578.5,178.0],[578.7,207.6],[627.1,206.8]&#xA;  ], ws(&#39;#ccccff&#39;))&#xA;  .bindPopup(popup(&#39;Seebezirk&#39;,&#39;Pracht und Prunk des alten und neuen Geldes. Tempel, Arena, Adelspaläste.&#39;,&#39;/docs/welt/orte/bezirke/seebezirk&#39;))&#xA;  .on(&#39;mouseover&#39;, hover).on(&#39;mouseout&#39;, function(e){out(e);})&#xA;  .addTo(wardsGroup);&#xA;&#xA;  // North Ward&#xA;  L.polygon([&#xA;    [467.1,177.4],[467.4,192.1],[466.4,199.3],[459.7,209.1],[450.3,209.3],[448.6,220.7],[445.9,224.7],[442.2,226.2],[436.7,227.1],[432.4,229.1],[429.3,232.4],[429.1,236.6],[421.7,239.1],[405.3,254.0],[407.6,255.6],[418.0,259.8],[429.5,271.2],[430.4,282.3],[424.1,290.2],[417.6,298.2],[415.4,299.1],[416.3,302.6],[417.3,303.0],[419.9,302.8],[425.1,305.5],[429.4,305.9],[431.3,305.4],[434.8,306.0],[440.2,304.8],[442.3,304.8],[444.6,305.7],[446.3,305.2],[448.5,306.1],[453.5,304.0],[467.0,302.6],[469.4,303.4],[476.2,303.2],[479.1,301.5],[480.2,302.2],[484.0,300.9],[486.0,301.5],[487.2,300.9],[488.8,301.6],[490.4,301.1],[494.8,301.8],[499.0,300.1],[502.9,300.2],[505.2,297.9],[526.3,294.1],[553.3,293.0],[572.4,289.3],[589.8,285.4],[605.6,276.9],[609.3,272.2],[617.6,255.9],[623.5,238.9],[632.1,222.0],[634.9,210.9],[634.7,207.9],[627.1,206.8],[578.7,207.6],[578.5,178.0],[529.7,177.6],[493.5,177.7]&#xA;  ], ws(&#39;#ffcc66&#39;))&#xA;  .bindPopup(popup(&#39;Nordbezirk&#39;,&#39;Stille Villen des niederen Adels. Hier liegt die Trollschädel-Gasse — Hauptquartier der Bande.&#39;,&#39;/docs/welt/orte/bezirke/nordbezirk&#39;))&#xA;  .on(&#39;mouseover&#39;, hover).on(&#39;mouseout&#39;, function(e){out(e);})&#xA;  .addTo(wardsGroup);&#xA;&#xA;  // Castle Ward&#xA;  L.polygon([&#xA;    [443.1,209.7],[409.9,212.6],[370.1,216.3],[320.8,217.9],[318.2,216.2],[314.5,214.9],[311.1,213.7],[309.5,214.2],&#xA;    [307.6,216.8],[307.0,221.4],[306.3,223.8],[304.4,223.8],[298.4,223.9],[284.1,222.2],[277.4,220.1],[270.6,220.1],&#xA;    [257.9,220.3],[257.9,208.0],[263.5,207.7],[266.3,208.4],[267.8,207.4],[266.3,203.4],[268.6,201.9],[270.3,198.3],&#xA;    [270.7,193.5],[270.3,183.6],[269.6,178.1],[270.3,176.0],[269.7,167.8],[268.7,160.2],[268.6,149.0],[268.0,145.5],&#xA;    [268.0,137.3],[266.6,134.4],[261.8,130.6],[259.6,128.9],[256.6,127.9],[252.9,128.4],[242.6,130.6],[238.9,131.7],&#xA;    [234.9,132.8],[232.4,132.2],[232.9,129.6],[220.0,129.5],[219.9,126.4],[227.4,126.8],[226.2,119.3],[227.1,118.0],&#xA;    [229.3,117.7],[230.0,118.6],[231.3,126.1],[235.9,125.5],[233.1,111.9],[223.8,110.6],[223.3,110.2],[223.2,108.6],&#xA;    [224.3,107.8],[232.2,108.6],[229.6,99.9],[229.3,97.4],[228.6,90.1],[222.6,90.7],[222.7,88.5],[228.3,88.1],&#xA;    [229.5,83.3],[221.0,83.2],[221.3,81.0],[229.5,81.1],[230.1,77.8],[230.0,76.7],[230.8,75.0],[230.1,73.4],&#xA;    [230.7,71.8],[217.9,71.0],[217.9,68.9],[231.0,69.6],[233.7,68.6],[234.2,69.1],[236.0,70.7],[238.5,71.7],&#xA;    [241.8,74.5],[244.8,76.6],[247.2,76.4],[249.8,79.3],[253.2,81.8],[255.2,81.8],[258.0,80.9],[260.2,78.9],&#xA;    [262.3,80.4],[262.3,81.6],[263.9,82.6],[264.7,82.7],[265.6,84.2],[265.7,86.7],[268.3,88.8],[269.5,91.4],&#xA;    [269.7,94.3],[268.9,97.2],[267.8,96.8],[267.0,98.0],[268.7,100.3],[269.1,102.0],[270.4,104.6],[270.8,109.1],&#xA;    [271.1,111.3],[272.9,113.4],[273.9,118.3],[275.8,118.8],[277.2,120.9],[277.0,123.3],[279.4,126.2],[278.7,127.3],&#xA;    [280.2,128.8],[280.3,130.6],[278.9,133.0],[278.5,136.3],[281.4,139.2],[284.1,139.4],[287.3,137.6],[289.8,136.7],&#xA;    [292.7,137.1],[295.7,138.8],[298.0,141.4],[298.4,143.4],[297.3,145.6],[297.3,147.7],[297.7,149.9],[296.7,151.0],&#xA;    [296.1,154.7],[294.4,155.6],[290.2,156.4],[290.0,159.0],[291.9,159.9],[292.4,162.6],[291.3,164.7],[289.5,165.6],&#xA;    [289.5,168.1],[288.3,169.0],[286.9,168.6],[285.4,170.3],[285.7,172.5],[287.5,173.7],[289.2,177.0],[287.1,177.5],&#xA;    [285.6,177.9],[285.0,180.0],[286.0,181.7],[284.1,183.7],[285.3,184.6],[286.1,184.4],[288.7,187.8],[289.0,189.2],&#xA;    [293.2,188.7],[295.8,190.0],[297.7,188.6],[300.8,188.7],[302.4,189.4],[303.7,188.6],[303.8,186.7],[305.9,184.2],&#xA;    [307.5,184.2],[308.6,181.4],[306.5,180.0],[304.1,174.5],[304.9,172.7],[303.8,170.3],[305.3,167.8],[308.2,163.7],&#xA;    [310.9,158.1],[311.3,152.8],[309.7,148.0],[310.4,145.3],[311.6,139.3],[313.4,131.0],[313.3,129.0],[313.7,126.4],&#xA;    [313.0,124.1],[313.0,118.7],[315.4,116.0],[316.3,116.3],[319.2,114.2],[320.8,111.8],[322.9,108.7],[324.5,108.3],&#xA;    [327.7,106.7],[328.4,106.7],[329.7,105.7],[331.8,105.8],[334.8,103.4],[336.9,102.8],[338.0,100.7],[340.4,99.3],&#xA;    [342.2,98.9],[345.5,99.0],[346.1,97.7],[348.4,97.2],[352.8,100.0],[354.3,100.1],[357.7,98.4],[361.8,96.4],&#xA;    [365.5,96.9],[370.1,98.1],[375.3,99.3],[379.7,101.7],[382.8,105.1],[387.0,106.2],[390.8,106.1],[391.9,106.7],&#xA;    [394.8,106.6],[400.5,107.8],[406.5,108.9],[407.1,108.7],[411.7,109.3],[413.2,108.0],[416.6,108.3],[422.2,106.3],&#xA;    [425.5,104.9],[428.8,101.7],[429.6,98.1],[431.3,94.2],[433.5,90.9],[436.3,88.9],[438.9,88.1],[442.6,88.1],&#xA;    [446.5,87.3],[447.6,86.4],[448.8,85.4],[453.4,83.4],[454.4,81.4],[457.8,79.2],[463.6,78.7],[465.7,77.1],&#xA;    [469.3,73.0],[471.2,72.8],[471.6,72.4],[473.5,72.4],[475.2,70.5],[476.9,66.1],[479.4,63.8],[481.2,60.9],&#xA;    [480.7,58.4],[482.5,45.9],[489.7,40.0],[492.1,42.6],[493.1,50.7],[493.8,72.6],[493.1,119.6],[494.5,130.3],&#xA;    [493.5,177.7],[467.1,177.4],[467.4,192.1],[466.4,199.3],[459.7,209.1],[450.3,209.3]&#xA;  ], ws(&#39;#EE8080&#39;))&#xA;  .bindPopup(popup(&#39;Burgbezirk&#39;,&#39;Das schlagende Herz — Palast, Burg, Schwarzstab-Turm und der grosse Markt.&#39;,&#39;/docs/welt/orte/bezirke/burgbezirk&#39;))&#xA;  .on(&#39;mouseover&#39;, hover).on(&#39;mouseout&#39;, function(e){out(e);})&#xA;  .addTo(wardsGroup);&#xA;&#xA;  // Trades Ward&#xA;  L.polygon([&#xA;    [405.3,254.0],[411.2,244.7],[429.1,236.6],[429.3,232.4],[432.4,229.1],[436.7,227.1],[442.2,226.2],[445.9,224.7],[448.6,220.7],[450.3,209.3],[443.1,209.7],[409.9,212.6],[370.1,216.3],[320.8,217.9],[311.1,213.7],[309.5,214.2],[298.4,223.9],[284.1,222.2],[270.6,220.1],[257.9,220.3],[257.9,226.4],[253.0,233.8],[252.5,237.6],[254.6,244.0],[254.6,246.0],[249.0,247.7],[249.9,255.5],[251.9,266.2],[262.0,265.4],[262.2,271.5],[262.2,274.8],[262.7,278.7],[261.5,281.9],[256.3,288.1],[257.9,290.6],[264.0,301.9],[266.7,303.7],[283.1,296.0],[289.1,294.6],[305.8,291.8],[306.8,291.3],[319.8,285.3],[324.8,275.5],[329.0,267.2],[334.8,260.9],[340.3,247.6],[344.5,237.6],[356.0,240.9],[367.6,242.1],[384.5,241.9],[394.1,245.7],[403.6,252.8]&#xA;  ], ws(&#39;#b3ffcc&#39;))&#xA;  .bindPopup(popup(&#39;Handelsbezirk&#39;,&#39;Rastloser Handel bei Tag und Nacht. Gilden, Märkte und Kommerz.&#39;,&#39;/docs/welt/orte/bezirke/handelsbezirk&#39;))&#xA;  .on(&#39;mouseover&#39;, hover).on(&#39;mouseout&#39;, function(e){out(e);})&#xA;  .addTo(wardsGroup);&#xA;&#xA;  // Dock Ward&#xA;  L.polygon([&#xA;    [136.5,251.3],[132.4,252.5],[130.8,258.4],[123.3,268.8],[113.2,279.1],[102.1,282.8],[123.5,302.1],[136.3,285.7],[162.3,258.7],[206.4,253.7],[254.6,246.0],[253.0,233.8],[257.9,208.0],[270.3,198.3],[270.3,176.0],[268.0,145.5],[259.6,128.9],[238.9,131.7],[224.9,139.6],[222.0,144.3],[216.3,146.1],[202.5,144.4],[196.9,149.5],[198.5,164.9],[198.8,177.2],[191.2,179.2],[170.4,172.3],[174.8,188.4],[171.1,196.9],[155.9,196.0],[147.2,198.0],[146.4,207.5],[152.5,216.0],[153.1,230.8],[146.1,238.6],[143.8,235.0],[137.1,242.1],[139.1,247.9],[138.4,249.8],[136.6,251.5]&#xA;  ], ws(&#39;#b3d9ff&#39;))&#xA;  .bindPopup(popup(&#39;Hafenbezirk&#39;,&#39;Dreck, Gefahr und das wahre Gesicht der Stadt. Hafen, Schmuggler, Zhentarim.&#39;,&#39;/docs/welt/orte/bezirke/hafenbezirk&#39;))&#xA;  .on(&#39;mouseover&#39;, hover).on(&#39;mouseout&#39;, function(e){out(e);})&#xA;  .addTo(wardsGroup);&#xA;&#xA;  // Southern Ward&#xA;  L.polygon([&#xA;    [249.0,247.7],[249.9,255.5],[251.9,266.2],[262.0,265.4],[262.2,271.5],[262.2,274.8],[262.7,278.7],[261.5,281.9],[256.3,288.1],[257.9,290.6],[257.9,292.6],[261.6,297.3],[263.4,300.1],[264.0,301.9],[266.7,303.5],[246.5,302.7],[231.5,300.7],[214.0,304.7],[199.1,307.3],[185.3,315.5],[175.5,314.9],[161.2,311.7],[160.4,312.0],[151.9,314.9],[146.8,310.1],[145.7,310.0],[138.0,311.7],[136.7,311.7],[125.9,304.4],[128.8,300.0],[135.7,292.9],[136.3,285.7],[138.0,279.2],[149.2,262.4],[153.1,260.9],[162.3,258.7],[168.5,257.9],[172.5,257.6],[191.9,256.3],[206.4,253.7],[222.9,251.9],[242.5,248.9]&#xA;  ], ws(&#39;#ffff99&#39;))&#xA;  .bindPopup(popup(&#39;Südbezirk&#39;,&#39;Die Karawanenstadt — arm, aber herzlich. Fuhrleute, Herbergen, Südtor.&#39;,&#39;/docs/welt/orte/bezirke/suedbezirk&#39;))&#xA;  .on(&#39;mouseover&#39;, hover).on(&#39;mouseout&#39;, function(e){out(e);})&#xA;  .addTo(wardsGroup);&#xA;&#xA;  // City of the Dead&#xA;  L.polygon([&#xA;    [417.6,298.2],[424.1,290.2],[430.4,282.3],[429.5,271.2],[418.0,259.8],[407.6,255.6],[405.3,254.0],[403.6,252.8],[394.1,245.7],[384.5,241.9],[367.6,242.1],[356.0,240.9],[344.5,237.6],[340.3,247.6],[336.4,256.2],[334.8,260.9],[329.0,267.2],[324.8,275.5],[322.1,284.7],[339.8,285.0],[357.6,288.8],[377.4,291.4],[395.7,291.9],[415.5,299.0]&#xA;  ], { color:&#39;#600&#39;, weight:2, fillColor:&#39;#EE8080&#39;, fillOpacity:0.3, dashArray:&#39;6,4&#39;, opacity:0.7 })&#xA;  .bindPopup(popup(&#39;Stadt der Toten&#39;,&#39;Tiefwassers gewaltiger Friedhof — tagsüber ein Park, nachts ein Ort der Geheimnisse.&#39;,&#39;/docs/welt/orte/bezirke/stadt_der_toten&#39;))&#xA;  .on(&#39;mouseover&#39;, function(e){e.target.setStyle({fillOpacity:0.5});})&#xA;  .on(&#39;mouseout&#39;, function(e){e.target.setStyle({fillOpacity:0.3});})&#xA;  .addTo(wardsGroup);&#xA;&#xA;  // Ward labels&#xA;  addLabel(580, 130, &#39;Seebezirk&#39;).addTo(wardsGroup);&#xA;  addLabel(540, 260, &#39;Nordbezirk&#39;).addTo(wardsGroup);&#xA;  addLabel(390, 140, &#39;Burgbezirk&#39;).addTo(wardsGroup);&#xA;  addLabel(375, 265, &#39;Stadt d. Toten&#39;, &#39;ward-label-small&#39;).addTo(wardsGroup);&#xA;  addLabel(340, 230, &#39;Handelsbezirk&#39;).addTo(wardsGroup);&#xA;  addLabel(210, 190, &#39;Hafenbezirk&#39;).addTo(wardsGroup);&#xA;  addLabel(210, 280, &#39;Südbezirk&#39;).addTo(wardsGroup);&#xA;  addLabel(665, 200, &#39;Feldbezirk&#39;).addTo(wardsGroup);&#xA;&#xA;  wardsGroup.addTo(map);&#xA;&#xA;  // --- MARKERS LAYER GROUP ---&#xA;  var markersGroup = L.layerGroup();&#xA;&#xA;  // --- STREETS LAYER GROUP ---&#xA;  var streetsGroup = L.layerGroup();&#xA;&#xA;  function street(coords, name, opts) {&#xA;    opts = opts || {};&#xA;    var line = L.polyline(coords, {&#xA;      color: opts.color || &#39;#f0d890&#39;,&#xA;      weight: opts.weight || 2.5,&#xA;      opacity: opts.opacity || 0.75,&#xA;      dashArray: opts.dash || null,&#xA;      lineCap: &#39;round&#39;, lineJoin: &#39;round&#39;&#xA;    });&#xA;    if (name) {&#xA;      line.bindTooltip(name, {&#xA;        permanent: false, direction: &#39;center&#39;,&#xA;        className: &#39;street-tooltip&#39;&#xA;      });&#xA;    }&#xA;    line.addTo(streetsGroup);&#xA;    return line;&#xA;  }&#xA;&#xA;  // --- STRASSEN — hier kommen vom Editor generierte Strassen rein ---&#xA;&#xA;  // --- LAYER CONTROL ---&#xA;  L.control.layers(null, {&#xA;    &#39;Bezirke&#39;: wardsGroup,&#xA;    &#39;Orte&#39;: markersGroup,&#xA;    &#39;Strassennetz&#39;: streetsGroup&#xA;  }, { collapsed: false, position: &#39;topleft&#39; }).addTo(map);&#xA;&#xA;  // --- MARKERS ---&#xA;  function makeIcon(color, size) {&#xA;    size = size || 10;&#xA;    var half = size/2;&#xA;    return L.divIcon({&#xA;      className: &#39;&#39;,&#xA;      html: &#39;&lt;div style=&#34;width:&#39;+size+&#39;px;height:&#39;+size+&#39;px;background:&#39;+color+&#39;;border:2px solid #1a0e08;border-radius:50%;box-shadow:0 0 4px rgba(0,0,0,0.6);&#34;&gt;&lt;/div&gt;&#39;,&#xA;      iconSize:[size,size], iconAnchor:[half,half], popupAnchor:[0,-(half+2)]&#xA;    });&#xA;  }&#xA;  var locIcon     = makeIcon(&#39;#D4A843&#39;);&#xA;  var taverneIcon = makeIcon(&#39;#ffffff&#39;);&#xA;  var stapelIcon  = makeIcon(&#39;#4488ff&#39;);&#xA;  var zhentIcon   = makeIcon(&#39;#ff4444&#39;);&#xA;  var questIcon   = makeIcon(&#39;#44dddd&#39;);&#xA;  var hqIcon = L.divIcon({&#xA;    className: &#39;&#39;,&#xA;    html: &#39;&lt;div style=&#34;width:14px;height:14px;background:#CC3333;border:2px solid #1a0e08;border-radius:50%;box-shadow:0 0 8px rgba(200,50,50,0.7);&#34;&gt;&lt;/div&gt;&#39;,&#xA;    iconSize:[14,14], iconAnchor:[7,7], popupAnchor:[0,-9]&#xA;  });&#xA;  var iconMap = {ort:locIcon, taverne:taverneIcon, stapel:stapelIcon, zhent:zhentIcon, quest:questIcon};&#xA;&#xA;  // Trollskull Manor - HQ / Stapel (North Ward)&#xA;  L.marker([566.8, 242.0], {icon:stapelIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;&lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/orte/trollschaedel_gasse&#34;&gt;Trollschädel-Gasse&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Hauptquartier des Stapels: &lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/spielercharaktere/bram&#34;&gt;Bram&lt;/a&gt;, &lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/nichtspielercharaktere/gregor_al_darmin&#34;&gt;Gregor&lt;/a&gt; &amp;amp; Nigök&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  // Yawning Portal (Castle Ward)&#xA;  L.marker([278.4, 205.3], {icon:taverneIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;&lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/orte/bekannte_orte/das_gaehnende_portal&#34;&gt;Das Gähnende Portal&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Durnans legendäre Taverne. Eingang zum Unterberg.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  // Piergeiron&#39;s Palace&#xA;  L.marker([333.8, 113.6], {icon:locIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Palast von Tiefwasser&lt;/strong&gt;&lt;br&gt;Sitz der Lords. Regierungszentrum der Stadt.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  // Castle Waterdeep&#xA;  L.marker([301.8, 178.1], {icon:locIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Burg Tiefwasser&lt;/strong&gt;&lt;br&gt;Trutzige Festung am Wassertiefberg.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  // Ahghairon&#39;s Tower&#xA;  L.marker([327.6, 126.5], {icon:locIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Ahghairons Turm&lt;/strong&gt;&lt;br&gt;Denkmal des ersten Lord-Magiers.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  // The Market&#xA;  L.marker([453.7, 154.8], {icon:locIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Der Markt&lt;/strong&gt;&lt;br&gt;Grösster offener Marktplatz der Stadt.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  // Field of Triumph (Sea Ward)&#xA;  L.marker([502.6, 62.4], {icon:locIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Feld des Triumphs&lt;/strong&gt;&lt;br&gt;Tiefwassers grosse Arena.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  // Heroes&#39; Garden&#xA;  L.marker([642.8, 142.8], {icon:locIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Heldengarten&lt;/strong&gt;&lt;br&gt;Einziger öffentlicher Park ausserhalb der Stadt der Toten.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  // South Gate&#xA;  L.marker([126.2, 304.1], {icon:locIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Südtor&lt;/strong&gt;&lt;br&gt;Haupteingang für Karawanen.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  // Mirt&#39;s Mansion&#xA;  L.marker([382.9, 158.3], {icon:locIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Mirts Herrenhaus&lt;/strong&gt;&lt;br&gt;Residenz des berüchtigten Geldverleihers.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  // Hafenbezirk — neue Orte&#xA;  L.marker([224.7, 180.5], {icon:questIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;&lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/orte/bekannte_orte/schlossknackallee_7&#34;&gt;Schlossknackallee 7&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Renzo Kaltblicks Wohnung.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  L.marker([203.8, 190.1], {icon:taverneIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;&lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/orte/bekannte_orte/die_versoffene_sirene&#34;&gt;Die Versoffene Sirene&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Hafentaverne. Dagna Schwarzkrug.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  L.marker([227.3, 165.6], {icon:locIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Eingang zur Hafenkanalisation&lt;/strong&gt;&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  L.marker([232.6, 166.9], {icon:locIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;&lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/orte/bekannte_orte/der_alte_fischmarkt&#34;&gt;Der Alte Fischmarkt&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Ehemaliges Schmugglerlager.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  L.marker([458.1, 224], {icon:taverneIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Die Tintenkrone&lt;/strong&gt;&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  L.marker([403.6, 248], {icon:questIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Brunner Import und Export Lagerhaus&lt;/strong&gt;&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  L.marker([486.7, 174.7], {icon:questIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;Ort_1&lt;/strong&gt;&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  L.marker([589.8, 277.3], {icon:zhentIcon})&#xA;    .bindPopup(&#39;&lt;strong&gt;&lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/orte/bekannte_orte/schwarzhundgasse&#34;&gt;Schwarzhundwaffenlager&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;Zhentarim-Waffenlager in der Schwarzhundgasse. Ort des ersten Schatten-Angriffs.&#39;)&#xA;    .addTo(markersGroup);&#xA;&#xA;  markersGroup.addTo(map);&#xA;  streetsGroup.addTo(map);&#xA;&#xA;  // Compass&#xA;  var c = L.control({position:&#39;topright&#39;});&#xA;  c.onAdd = function() {&#xA;    var d = L.DomUtil.create(&#39;div&#39;);&#xA;    d.innerHTML = &#39;&lt;div style=&#34;background:rgba(245,230,200,0.9);border:2px solid #8B7355;border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font:bold 16px Georgia,serif;color:#2c1810;box-shadow:0 2px 6px rgba(0,0,0,0.3);&#34;&gt;N&lt;/div&gt;&#39;;&#xA;    return d;&#xA;  };&#xA;  c.addTo(map);&#xA;&#xA;  // --- EDITOR TOOLS ---&#xA;  var currentPoints = [];&#xA;  var currentMarkers = [];&#xA;  var currentLine = null;&#xA;  var finishedStreets = [];&#xA;  var streetCounter = 0;&#xA;  var placeCounter = 0;&#xA;  var finishedPlaces = [];&#xA;  var placeType = &#39;ort&#39;;&#xA;&#xA;  var placeTypes = {&#xA;    ort:     {color:&#39;#D4A843&#39;, icon:&#39;locIcon&#39;,     label:&#39;Ort&#39;},&#xA;    taverne: {color:&#39;#ffffff&#39;, icon:&#39;taverneIcon&#39;,  label:&#39;Taverne&#39;},&#xA;    stapel:  {color:&#39;#4488ff&#39;, icon:&#39;stapelIcon&#39;,   label:&#39;Stapel&#39;},&#xA;    zhent:   {color:&#39;#ff4444&#39;, icon:&#39;zhentIcon&#39;,    label:&#39;Zhentarim&#39;},&#xA;    quest:   {color:&#39;#44dddd&#39;, icon:&#39;questIcon&#39;,    label:&#39;Quest&#39;}&#xA;  };&#xA;&#xA;  window.setPlaceType = function(type) {&#xA;    placeType = type;&#xA;    document.querySelectorAll(&#39;.ptype-btn&#39;).forEach(function(btn) {&#xA;      var t = btn.getAttribute(&#39;data-type&#39;);&#xA;      var info = placeTypes[t];&#xA;      if (t === type) {&#xA;        btn.style.background = info.color;&#xA;        btn.style.color = &#39;#1a1a2e&#39;;&#xA;      } else {&#xA;        btn.style.background = &#39;transparent&#39;;&#xA;        btn.style.color = info.color;&#xA;      }&#xA;    });&#xA;  };&#xA;&#xA;  function r1(n) { return Math.round(n*10)/10; }&#xA;&#xA;  function updatePointList() {&#xA;    var el = document.getElementById(&#39;point-list&#39;);&#xA;    var cnt = document.getElementById(&#39;point-count&#39;);&#xA;    cnt.textContent = currentPoints.length;&#xA;    if (currentPoints.length === 0) {&#xA;      el.textContent = &#39;Noch keine Punkte gesetzt.&#39;;&#xA;      return;&#xA;    }&#xA;    el.textContent = currentPoints.map(function(p, i) {&#xA;      return (i+1) + &#39;: [&#39; + r1(p[0]) + &#39;, &#39; + r1(p[1]) + &#39;]&#39;;&#xA;    }).join(&#39;\n&#39;);&#xA;    el.scrollTop = el.scrollHeight;&#xA;  }&#xA;&#xA;  function updatePreviewLine() {&#xA;    if (currentLine) { currentLine.remove(); currentLine = null; }&#xA;    if (currentPoints.length &gt;= 2) {&#xA;      currentLine = L.polyline(currentPoints, {&#xA;        color: &#39;#ff3366&#39;, weight: 3, opacity: 0.8, dashArray: &#39;6,4&#39;&#xA;      }).addTo(map);&#xA;    }&#xA;  }&#xA;&#xA;  function addClickMarker(latlng, index) {&#xA;    var m = L.marker(latlng, {&#xA;      icon: L.divIcon({&#xA;        className: &#39;click-marker&#39;,&#xA;        iconSize: [10, 10],&#xA;        iconAnchor: [5, 5]&#xA;      })&#xA;    }).addTo(map);&#xA;    var label = L.marker(latlng, {&#xA;      icon: L.divIcon({&#xA;        className: &#39;click-marker-label&#39;,&#xA;        html: &#39;&#39; + (index + 1),&#xA;        iconSize: [16, 14],&#xA;        iconAnchor: [-6, 7]&#xA;      }),&#xA;      interactive: false&#xA;    }).addTo(map);&#xA;    currentMarkers.push(m, label);&#xA;  }&#xA;&#xA;  function isOpen(id) {&#xA;    var el = document.getElementById(id);&#xA;    return el &amp;&amp; el.closest(&#39;details&#39;) &amp;&amp; el.closest(&#39;details&#39;).open;&#xA;  }&#xA;&#xA;  map.on(&#39;click&#39;, function(e) {&#xA;    var lat = r1(e.latlng.lat);&#xA;    var lng = r1(e.latlng.lng);&#xA;&#xA;    // Ort-Editor hat Priorität wenn offen&#xA;    if (isOpen(&#39;place-editor&#39;)) {&#xA;      var nameInput = document.getElementById(&#39;place-name&#39;);&#xA;      var name = nameInput.value.trim() || (&#39;Ort_&#39; + (++placeCounter));&#xA;      nameInput.value = &#39;&#39;;&#xA;      var pt = placeTypes[placeType];&#xA;      var code = &#34;L.marker([&#34; + lat + &#34;, &#34; + lng + &#34;], {icon:&#34; + pt.icon + &#34;})\n  .bindPopup(&#39;&lt;strong&gt;&#34; + name + &#34;&lt;/strong&gt;&#39;)\n  .addTo(markersGroup);&#34;;&#xA;      finishedPlaces.push(code);&#xA;      var box = document.getElementById(&#39;place-output-box&#39;);&#xA;      box.textContent = finishedPlaces.join(&#39;\n\n&#39;);&#xA;      box.scrollTop = box.scrollHeight;&#xA;      L.marker([lat, lng], {icon: iconMap[placeType]})&#xA;        .bindTooltip(name, {direction:&#39;top&#39;, className:&#39;street-tooltip&#39;}).addTo(map);&#xA;      return;&#xA;    }&#xA;&#xA;    // Strassen-Editor&#xA;    if (isOpen(&#39;street-editor&#39;)) {&#xA;      currentPoints.push([lat, lng]);&#xA;      addClickMarker([lat, lng], currentPoints.length - 1);&#xA;      updatePointList();&#xA;      updatePreviewLine();&#xA;    }&#xA;  });&#xA;&#xA;  window.editorUndo = function() {&#xA;    if (currentPoints.length === 0) return;&#xA;    currentPoints.pop();&#xA;    var label = currentMarkers.pop();&#xA;    var marker = currentMarkers.pop();&#xA;    if (label) label.remove();&#xA;    if (marker) marker.remove();&#xA;    updatePointList();&#xA;    updatePreviewLine();&#xA;  };&#xA;&#xA;  window.editorClear = function() {&#xA;    currentPoints = [];&#xA;    currentMarkers.forEach(function(m) { m.remove(); });&#xA;    currentMarkers = [];&#xA;    if (currentLine) { currentLine.remove(); currentLine = null; }&#xA;    updatePointList();&#xA;  };&#xA;&#xA;  window.editorFinishStreet = function() {&#xA;    if (currentPoints.length &lt; 2) return;&#xA;    streetCounter++;&#xA;    var nameInput = document.getElementById(&#39;street-name&#39;);&#xA;    var name = nameInput.value.trim() || (&#39;Strasse_&#39; + streetCounter);&#xA;    nameInput.value = &#39;&#39;;&#xA;    var coordStr = currentPoints.map(function(p) {&#xA;      return &#39;[&#39; + r1(p[0]) + &#39;,&#39; + r1(p[1]) + &#39;]&#39;;&#xA;    }).join(&#39;,&#39;);&#xA;&#xA;    var code = &#34;street([\n    &#34; + coordStr.replace(/,\[/g, &#39;,\n    [&#39;) + &#34;\n  ], &#39;&#34; + name + &#34;&#39;);&#34;;&#xA;&#xA;    finishedStreets.push(code);&#xA;&#xA;    var box = document.getElementById(&#39;output-box&#39;);&#xA;    box.textContent = finishedStreets.join(&#39;\n\n&#39;);&#xA;    box.scrollTop = box.scrollHeight;&#xA;&#xA;    // Keep the line on map but make it solid&#xA;    if (currentLine) {&#xA;      currentLine.setStyle({dashArray: null, color: &#39;#ff3366&#39;, opacity: 0.6});&#xA;      currentLine = null;&#xA;    }&#xA;&#xA;    // Clear points for next street&#xA;    currentPoints = [];&#xA;    currentMarkers.forEach(function(m) { m.remove(); });&#xA;    currentMarkers = [];&#xA;    updatePointList();&#xA;  };&#xA;&#xA;  window.editorCopy = function(type) {&#xA;    var boxId = type === &#39;place&#39; ? &#39;place-output-box&#39; : &#39;output-box&#39;;&#xA;    var btnId = type === &#39;place&#39; ? &#39;btn-copy-places&#39; : &#39;btn-copy-streets&#39;;&#xA;    var box = document.getElementById(boxId);&#xA;    navigator.clipboard.writeText(box.textContent).then(function() {&#xA;      var btn = document.getElementById(btnId);&#xA;      btn.textContent = &#39;✓ Kopiert!&#39;;&#xA;      setTimeout(function() { btn.textContent = &#39;📋 Kopieren&#39;; }, 1500);&#xA;    });&#xA;  };&#xA;&#xA;})();&#xA;&lt;/script&gt;&#xA;&lt;p style=&#34;font-size:11px;color:#888;margin-top:4px;&#34;&gt;Kartengrundlage: Jason Engle / Wizards of the Coast. Bezirksgrenzen nach &lt;a href=&#34;https://www.aidedd.org/atlas/waterdeep&#34; style=&#34;color:#888;&#34;&gt;aidedd.org&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trollschädel-Gasse</title>
      <link>https://dnd.lucashabersaat.ch/docs/welt/orte/trollschaedel_gasse/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://dnd.lucashabersaat.ch/docs/welt/orte/trollschaedel_gasse/</guid>
      <description>&lt;h1 id=&#34;trollschädel-gasse&#34;&gt;Trollschädel-Gasse&lt;a class=&#34;anchor&#34; href=&#34;#trollsch%c3%a4del-gasse&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Die Trollschädel-Gasse ist eine ruhige Seitengasse im &lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/orte/nordbezirk&#34;&gt;Nordbezirk&lt;/a&gt; — ein Ort, der auf den ersten Blick so aufregend wirkt wie ein Buchhalterbüro. Reihenhäuser, kleine Läden, und eine Stille, die an einem Ort in &lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/orte/waterdeep&#34;&gt;Tiefwasser&lt;/a&gt; beinahe unnatürlich anmutet. Doch der Schein trügt, wie so oft in dieser Stadt.&lt;/p&gt;&#xA;&lt;p&gt;Ihr Namensgeber ist das &lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/orte/trollschaedel_herrenhaus&#34;&gt;Trollschädel-Herrenhaus&lt;/a&gt;, ein altes, verwinkeltes Gebäude, das über die Jahrzehnte als Taverne, Lagerhaus und — wenn man den Nachbarn glaubt — als Spukhaus gedient hat. Während der Ereignisse des Drachenraubs diente es einer Gruppe Abenteurer als Hauptquartier. Sie renovierten es, eröffneten eine Schänke, und zogen prompt genau die Art von Ärger an, die Abenteurer immer anziehen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trollschädel-Herrenhaus</title>
      <link>https://dnd.lucashabersaat.ch/docs/welt/orte/trollschaedel_herrenhaus/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://dnd.lucashabersaat.ch/docs/welt/orte/trollschaedel_herrenhaus/</guid>
      <description>&lt;h1 id=&#34;trollschädel-herrenhaus&#34;&gt;Trollschädel-Herrenhaus&lt;a class=&#34;anchor&#34; href=&#34;#trollsch%c3%a4del-herrenhaus&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Vier Stockwerke hoch, mit Balkonen, einem Türmchen und fünf Kaminen — das Trollschädel-Herrenhaus ist eines der eindrucksvollsten Gebäude in der &lt;a href=&#34;https://dnd.lucashabersaat.ch/docs/welt/orte/trollschaedel_gasse&#34;&gt;Trollschädel-Gasse&lt;/a&gt;. Von aussen wirkt es wie ein ehrwürdiges Stadthaus, das bessere Tage gesehen hat. Von innen&amp;hellip; nun, das hängt davon ab, wer gerade darin wohnt.&lt;/p&gt;&#xA;&lt;p&gt;Über die Jahrzehnte diente das Haus als Taverne, Lagerhaus und — wenn man den Nachbarn glaubt — als Spukhaus. Der Geist des ehemaligen Wirts &lt;strong&gt;Lif&lt;/strong&gt; soll noch immer durch die Gänge wandeln, Gläser polieren und ungebetene Gäste mit fliegenden Gegenständen vertreiben. Ob das stimmt, hängt davon ab, wen man fragt. Die Nachbarn nicken wissend. Die aktuellen Bewohner wechseln das Thema.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
