{
  "version": 8,
  "name": "Fleet Console — operator light",
  "metadata": {
    "fleet-console:doc": "Near-monochrome basemap for operator space. Hand-authored from the OpenMapTiles schema rather than recoloured from a stock style: fewer layers beats quieter layers. Every colour below is a literal from the operator palette in app/globals.css (--bg #FAFAF9, --surface #F2F1ED, --surface-2 #EAE8E2, --line #E4E2DC, --ink-soft #57564F). MapLibre renders in WebGL and cannot read CSS custom properties, so this file is the one sanctioned place in the app where those values are written out; if the palette moves, this moves with it.",
    "fleet-console:intent": "An architect's site plan, not a nav app. White ground, hairline roads that thin as you zoom out, water and parks as barely-there greige shifts, no POIs, no road labels, no colour anywhere. The only saturated pixels on the map belong to the unit markers.",
    "fleet-console:fills": "Landuse and farmland fills were authored and then cut. Around Bend they tile most of the frame, which inverts the drawing: the ground becomes greige and the untagged gaps read as white holes. Woodland and parks survive at a whisper because they are sparse enough to stay legible as figure against the white ground.",
    "fleet-console:attribution": "Rendered by the standard MapLibre AttributionControl, which reads the credit line out of the source TileJSON (OpenFreeMap / OpenMapTiles / OpenStreetMap). Styled muted in app/globals.css — quiet, but never removed.",
    "fleet-console:sprite": "Deliberately absent. No layer here uses an icon, so pinning a sprite sheet would cost two requests on the map's critical path for nothing. Add one alongside the first icon layer, not before."
  },
  "glyphs": "https://tiles.openfreemap.org/fonts/{fontstack}/{range}.pbf",
  "sources": {
    "ofm": {
      "type": "vector",
      "url": "https://tiles.openfreemap.org/planet",
      "attribution": "<a href=\"https://openfreemap.org\" target=\"_blank\" rel=\"noreferrer\">OpenFreeMap</a> · <a href=\"https://www.openmaptiles.org/\" target=\"_blank\" rel=\"noreferrer\">© OpenMapTiles</a> · <a href=\"https://www.openstreetmap.org/copyright\" target=\"_blank\" rel=\"noreferrer\">© OpenStreetMap</a>"
    }
  },
  "layers": [
    {
      "id": "ground",
      "type": "background",
      "paint": { "background-color": "#FAFAF9" }
    },
    {
      "id": "landcover-wood",
      "type": "fill",
      "source": "ofm",
      "source-layer": "landcover",
      "filter": ["==", ["get", "class"], "wood"],
      "paint": { "fill-color": "#F5F5F0", "fill-antialias": false }
    },
    {
      "id": "park",
      "type": "fill",
      "source": "ofm",
      "source-layer": "park",
      "paint": { "fill-color": "#F4F4EE", "fill-antialias": false }
    },
    {
      "id": "water",
      "type": "fill",
      "source": "ofm",
      "source-layer": "water",
      "filter": ["!=", ["get", "brunnel"], "tunnel"],
      "paint": { "fill-color": "#EFEEE9" }
    },
    {
      "id": "waterway",
      "type": "line",
      "source": "ofm",
      "source-layer": "waterway",
      "filter": ["!=", ["get", "brunnel"], "tunnel"],
      "layout": { "line-cap": "round" },
      "paint": {
        "line-color": "#E5E4DE",
        "line-width": [
          "interpolate",
          ["linear"],
          ["zoom"],
          9,
          0.5,
          14,
          1.4,
          18,
          3
        ]
      }
    },
    {
      "id": "building",
      "type": "fill",
      "source": "ofm",
      "source-layer": "building",
      "minzoom": 14,
      "paint": {
        "fill-color": "#F3F2EE",
        "fill-outline-color": "#E4E2DC",
        "fill-opacity": ["interpolate", ["linear"], ["zoom"], 14, 0, 15.2, 1]
      }
    },
    {
      "id": "road-minor",
      "type": "line",
      "source": "ofm",
      "source-layer": "transportation",
      "minzoom": 11,
      "filter": [
        "all",
        ["!=", ["get", "brunnel"], "tunnel"],
        [
          "in",
          ["get", "class"],
          ["literal", ["minor", "service", "track", "raceway"]]
        ]
      ],
      "layout": { "line-cap": "round", "line-join": "round" },
      "paint": {
        "line-color": "#E6E4DE",
        "line-width": [
          "interpolate",
          ["exponential", 1.4],
          ["zoom"],
          11,
          0.35,
          14,
          0.7,
          18,
          3
        ]
      }
    },
    {
      "id": "road-secondary",
      "type": "line",
      "source": "ofm",
      "source-layer": "transportation",
      "filter": [
        "all",
        ["!=", ["get", "brunnel"], "tunnel"],
        [
          "in",
          ["get", "class"],
          ["literal", ["secondary", "tertiary"]]
        ]
      ],
      "layout": { "line-cap": "round", "line-join": "round" },
      "paint": {
        "line-color": "#E0DED7",
        "line-width": [
          "interpolate",
          ["exponential", 1.4],
          ["zoom"],
          9,
          0.4,
          12,
          0.7,
          16,
          2.2,
          18,
          4
        ]
      }
    },
    {
      "id": "road-primary",
      "type": "line",
      "source": "ofm",
      "source-layer": "transportation",
      "filter": [
        "all",
        ["!=", ["get", "brunnel"], "tunnel"],
        ["in", ["get", "class"], ["literal", ["primary", "trunk"]]]
      ],
      "layout": { "line-cap": "round", "line-join": "round" },
      "paint": {
        "line-color": "#D9D7D0",
        "line-width": [
          "interpolate",
          ["exponential", 1.4],
          ["zoom"],
          8,
          0.5,
          12,
          1,
          16,
          3,
          18,
          5
        ]
      }
    },
    {
      "id": "road-motorway",
      "type": "line",
      "source": "ofm",
      "source-layer": "transportation",
      "filter": [
        "all",
        ["!=", ["get", "brunnel"], "tunnel"],
        ["==", ["get", "class"], "motorway"]
      ],
      "layout": { "line-cap": "round", "line-join": "round" },
      "paint": {
        "line-color": "#D2D0C8",
        "line-width": [
          "interpolate",
          ["exponential", 1.4],
          ["zoom"],
          6,
          0.6,
          12,
          1.4,
          16,
          4,
          18,
          6.5
        ]
      }
    },
    {
      "id": "rail",
      "type": "line",
      "source": "ofm",
      "source-layer": "transportation",
      "minzoom": 11,
      "filter": [
        "all",
        ["!=", ["get", "brunnel"], "tunnel"],
        ["==", ["get", "class"], "rail"]
      ],
      "paint": {
        "line-color": "#DEDCD5",
        "line-width": 0.7,
        "line-dasharray": [4, 2]
      }
    },
    {
      "id": "boundary-admin",
      "type": "line",
      "source": "ofm",
      "source-layer": "boundary",
      "filter": ["all", ["<=", ["get", "admin_level"], 6], ["!=", ["get", "maritime"], 1]],
      "paint": {
        "line-color": "#DFDDD6",
        "line-width": 0.6,
        "line-dasharray": [3, 3]
      }
    },
    {
      "id": "place-label",
      "type": "symbol",
      "source": "ofm",
      "source-layer": "place",
      "minzoom": 8,
      "filter": [
        "all",
        ["in", ["get", "class"], ["literal", ["city", "town", "village", "suburb"]]],
        [
          "step",
          ["zoom"],
          ["in", ["get", "class"], ["literal", ["city", "town"]]],
          12,
          true
        ]
      ],
      "layout": {
        "text-field": ["coalesce", ["get", "name:en"], ["get", "name"]],
        "text-font": ["Noto Sans Regular"],
        "text-size": [
          "interpolate",
          ["linear"],
          ["zoom"],
          8,
          9,
          14,
          10.5
        ],
        "text-letter-spacing": 0.16,
        "text-transform": "uppercase",
        "text-max-width": 8,
        "text-padding": 12,
        "symbol-sort-key": ["get", "rank"]
      },
      "paint": {
        "text-color": "#57564F",
        "text-halo-color": "#FAFAF9",
        "text-halo-width": 1.2,
        "text-halo-blur": 0.4
      }
    }
  ]
}
