{
  "version": 8,
  "name": "Lorebound Dark v0",
  "metadata": {
    "lorebound:comment": "WP-03: тёмная база по палитре мокапов (#0a0e1a). URL относительные (/tiles/…) — клиент абсолютизирует их на свой origin (см. apps/web/src/map-stand/main.ts); внешних доменов в стиле нет и быть не должно (ADR-001)."
  },
  "sources": {
    "openmaptiles": {
      "type": "vector",
      "tiles": ["/tiles/ekb/{z}/{x}/{y}.mvt"],
      "minzoom": 0,
      "maxzoom": 14,
      "attribution": "© OpenMapTiles © OpenStreetMap contributors"
    }
  },
  "sprite": "/tiles/sprites/lorebound",
  "glyphs": "/tiles/glyphs/{fontstack}/{range}.pbf",
  "layers": [
    {
      "id": "background",
      "type": "background",
      "paint": { "background-color": "#0a0e1a" }
    },
    {
      "id": "landcover-wood",
      "type": "fill",
      "source": "openmaptiles",
      "source-layer": "landcover",
      "filter": ["match", ["get", "class"], ["wood", "grass"], true, false],
      "paint": { "fill-color": "#0d1a1e", "fill-opacity": 0.6 }
    },
    {
      "id": "park",
      "type": "fill",
      "source": "openmaptiles",
      "source-layer": "park",
      "paint": { "fill-color": "#0d1b1d", "fill-opacity": 0.5 }
    },
    {
      "id": "landuse-residential",
      "type": "fill",
      "source": "openmaptiles",
      "source-layer": "landuse",
      "filter": ["match", ["get", "class"], ["residential", "suburb"], true, false],
      "paint": { "fill-color": "#0d1120", "fill-opacity": 0.7 }
    },
    {
      "id": "water",
      "type": "fill",
      "source": "openmaptiles",
      "source-layer": "water",
      "paint": { "fill-color": "#0f2740" }
    },
    {
      "id": "waterway",
      "type": "line",
      "source": "openmaptiles",
      "source-layer": "waterway",
      "paint": {
        "line-color": "#14304d",
        "line-width": ["interpolate", ["exponential", 1.6], ["zoom"], 8, 0.5, 14, 2, 18, 6]
      }
    },
    {
      "id": "building",
      "type": "fill",
      "source": "openmaptiles",
      "source-layer": "building",
      "minzoom": 13,
      "paint": { "fill-color": "#121a2c", "fill-outline-color": "#1a2438" }
    },
    {
      "id": "road-path",
      "type": "line",
      "source": "openmaptiles",
      "source-layer": "transportation",
      "minzoom": 14,
      "filter": ["match", ["get", "class"], ["path", "track"], true, false],
      "paint": {
        "line-color": "#151c2e",
        "line-dasharray": [2, 2],
        "line-width": ["interpolate", ["exponential", 1.6], ["zoom"], 14, 1, 18, 3]
      }
    },
    {
      "id": "road-minor",
      "type": "line",
      "source": "openmaptiles",
      "source-layer": "transportation",
      "minzoom": 12,
      "filter": ["match", ["get", "class"], ["minor", "service", "busway"], true, false],
      "layout": { "line-cap": "round", "line-join": "round" },
      "paint": {
        "line-color": "#182036",
        "line-width": ["interpolate", ["exponential", 1.6], ["zoom"], 12, 0.5, 14, 1.5, 18, 8]
      }
    },
    {
      "id": "road-secondary",
      "type": "line",
      "source": "openmaptiles",
      "source-layer": "transportation",
      "minzoom": 10,
      "filter": ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
      "layout": { "line-cap": "round", "line-join": "round" },
      "paint": {
        "line-color": "#212b47",
        "line-width": ["interpolate", ["exponential", 1.6], ["zoom"], 10, 0.8, 14, 2.5, 18, 12]
      }
    },
    {
      "id": "road-primary",
      "type": "line",
      "source": "openmaptiles",
      "source-layer": "transportation",
      "minzoom": 8,
      "filter": ["match", ["get", "class"], ["primary", "trunk"], true, false],
      "layout": { "line-cap": "round", "line-join": "round" },
      "paint": {
        "line-color": "#293458",
        "line-width": ["interpolate", ["exponential", 1.6], ["zoom"], 8, 1, 14, 3.5, 18, 16]
      }
    },
    {
      "id": "road-motorway",
      "type": "line",
      "source": "openmaptiles",
      "source-layer": "transportation",
      "minzoom": 7,
      "filter": ["==", ["get", "class"], "motorway"],
      "layout": { "line-cap": "round", "line-join": "round" },
      "paint": {
        "line-color": "#303c66",
        "line-width": ["interpolate", ["exponential", 1.6], ["zoom"], 7, 1, 14, 4, 18, 18]
      }
    },
    {
      "id": "railway",
      "type": "line",
      "source": "openmaptiles",
      "source-layer": "transportation",
      "minzoom": 12,
      "filter": ["==", ["get", "class"], "rail"],
      "paint": {
        "line-color": "#1c2439",
        "line-dasharray": [3, 3],
        "line-width": ["interpolate", ["exponential", 1.6], ["zoom"], 12, 0.8, 18, 2.5]
      }
    },
    {
      "id": "boundary-admin",
      "type": "line",
      "source": "openmaptiles",
      "source-layer": "boundary",
      "minzoom": 4,
      "filter": ["<=", ["get", "admin_level"], 6],
      "paint": { "line-color": "#2b3557", "line-dasharray": [3, 2], "line-width": 1 }
    },
    {
      "id": "road-label",
      "type": "symbol",
      "source": "openmaptiles",
      "source-layer": "transportation_name",
      "minzoom": 13,
      "layout": {
        "symbol-placement": "line",
        "text-field": ["coalesce", ["get", "name:ru"], ["get", "name"]],
        "text-font": ["Noto Sans Regular"],
        "text-size": ["interpolate", ["linear"], ["zoom"], 13, 10.5, 18, 14]
      },
      "paint": {
        "text-color": "#97a2ba",
        "text-halo-color": "#0a0e1a",
        "text-halo-width": 1.2
      }
    },
    {
      "id": "water-name",
      "type": "symbol",
      "source": "openmaptiles",
      "source-layer": "water_name",
      "layout": {
        "symbol-placement": "line",
        "text-field": ["coalesce", ["get", "name:ru"], ["get", "name"]],
        "text-font": ["Noto Sans Regular"],
        "text-size": 12,
        "text-letter-spacing": 0.1
      },
      "paint": {
        "text-color": "#4f7ca8",
        "text-halo-color": "#0a0e1a",
        "text-halo-width": 1
      }
    },
    {
      "id": "place-neighbourhood",
      "type": "symbol",
      "source": "openmaptiles",
      "source-layer": "place",
      "minzoom": 11,
      "filter": [
        "match",
        ["get", "class"],
        ["suburb", "quarter", "neighbourhood", "village", "hamlet"],
        true,
        false
      ],
      "layout": {
        "text-field": ["coalesce", ["get", "name:ru"], ["get", "name"]],
        "text-font": ["Noto Sans Regular"],
        "text-size": 11.5,
        "text-letter-spacing": 0.05
      },
      "paint": {
        "text-color": "#8792ab",
        "text-halo-color": "#0a0e1a",
        "text-halo-width": 1.2
      }
    },
    {
      "id": "place-town",
      "type": "symbol",
      "source": "openmaptiles",
      "source-layer": "place",
      "minzoom": 8,
      "filter": ["==", ["get", "class"], "town"],
      "layout": {
        "text-field": ["coalesce", ["get", "name:ru"], ["get", "name"]],
        "text-font": ["Noto Sans Regular"],
        "text-size": 13
      },
      "paint": {
        "text-color": "#aab4c9",
        "text-halo-color": "#0a0e1a",
        "text-halo-width": 1.3
      }
    },
    {
      "id": "place-city",
      "type": "symbol",
      "source": "openmaptiles",
      "source-layer": "place",
      "minzoom": 5,
      "filter": ["==", ["get", "class"], "city"],
      "layout": {
        "text-field": ["coalesce", ["get", "name:ru"], ["get", "name"]],
        "text-font": ["Noto Sans Regular"],
        "text-size": ["interpolate", ["linear"], ["zoom"], 5, 12, 12, 17]
      },
      "paint": {
        "text-color": "#d9dee9",
        "text-halo-color": "#0a0e1a",
        "text-halo-width": 1.5
      }
    }
  ]
}
