This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository openstreetmap-carto.

commit 79faf48b651c0719874d7ebb4e04dd597ae24c6c
Author: Bas Couwenberg <[email protected]>
Date:   Mon Sep 26 20:35:15 2016 +0200

    Imported Upstream version 2.44.0
---
 .travis.yml                       |   2 +-
 CHANGELOG.md                      |  19 ++-
 CODE_OF_CONDUCT.md                |  82 +++++++++++
 INSTALL.md                        |  31 +---
 addressing.mss                    |  43 +++---
 amenity-points.mss                |  37 ++++-
 citywalls.mss                     |  13 --
 get-shapefiles.sh                 |  15 ++
 landcover.mss                     |  30 +++-
 placenames.mss                    | 183 +++++++++++++++++-------
 project.mml                       | 135 +++++++++---------
 project.yaml                      | 194 +++++++++++++------------
 roads.mss                         | 111 ++++++++-------
 style.mss                         | 288 +++++++++++++++++++++++++++++++++++---
 symbols/art-14.svg                |  38 +++++
 symbols/deli-14.svg               |  39 ++++++
 symbols/place/place-4-z7.svg      |  30 ++++
 symbols/place/place-4.svg         |  30 ++++
 symbols/place/place-6-z7.svg      |  30 ++++
 symbols/place/place-6.svg         |  30 ++++
 symbols/place/place-capital-6.svg |  34 +++++
 symbols/place/place-capital-8.svg |  38 +++++
 symbols/tea-14.svg                |  67 +++++++++
 symbols/tobacco-14.svg            |  23 +++
 water.mss                         |  19 ++-
 25 files changed, 1216 insertions(+), 345 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 04bea38..62ec3ee 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,5 +14,5 @@ install:
   - touch data/world_boundaries/builtup_area.shp 
data/simplified-land-polygons-complete-3857/simplified_land_polygons.shp 
data/ne_110m_admin_0_boundary_lines_land/ne_110m_admin_0_boundary_lines_land.shp
 data/ne_10m_populated_places/ne_10m_populated_places_fixed.shp 
data/land-polygons-split-3857/land_polygons.shp
 script:
   - jsonlint project.mml
-  - ./node_modules/carto/bin/carto project.mml | xmllint - | wc -l
+  - set -o pipefail && ./node_modules/carto/bin/carto project.mml | xmllint - 
| wc -l
   - ./scripts/travis_check_project_files
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8e87cac..ee02b80 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,19 @@
-## 
[Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.43.0...master)
+## 
[Unreleased](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.44.0...master)
+
+## 
[v2.44.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.44.0...v2.43.0)
 - 2016-09-26
+### Major Changes
+- Rendering of restricted access roads and paths significantly changed
+- Changed to use Noto fonts for all languages
+
+### Dependency Changes
+- The fonts required have changed
+
+### Changes
+- A code of conduct adopted, based on the Go code of conduct
+- Adjustments to city wall rendering
+- Revised low zoom place rendering
+- Fixed oneway arrows on unnamed roads
+- Render both house name and number if address has both
 
 ## 
[v2.43.0](https://github.com/gravitystorm/openstreetmap-carto/compare/v2.42.0...v2.43.0)
 - 2016-09-05
 ### Changes
@@ -188,4 +203,4 @@ Shapefiles are now used for Antartic ice sheets
 
 - Render educational area borders later
 
-- New POI icons
\ No newline at end of file
+- New POI icons
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..879b953
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,82 @@
+# OpenStreetMap Carto Community Code of Conduct
+
+## Why have a Code of Conduct?
+
+Online communities include people from many different backgrounds. The 
OpenStreetMap Carto contributors are committed to providing a friendly, safe 
and welcoming environment for all, regardless of age, disability, gender, 
nationality, race, religion, sexuality, or similar personal characteristic.
+
+The first goal of the Code of Conduct is to specify a baseline standard of 
behavior so that people with different social values and communication styles 
can talk about OpenStreetMap Carto effectively, productively, and respectfully.
+
+The second goal is to provide a mechanism for resolving conflicts in the 
community when they arise.
+
+The third goal of the Code of Conduct is to make our community welcoming to 
people from different backgrounds. Diversity is critical to the project; for 
OpenStreetMap Carto to be successful, it needs contributors and users from all 
backgrounds.
+
+With that said, a healthy community must allow for disagreement and debate. 
The Code of Conduct is not a mechanism for people to silence others with whom 
they disagree.
+
+## Where does the Code of Conduct apply?
+
+If you participate in or contribute to the OpenStreetMap Carto ecosystem in 
any way, you are encouraged to follow the Code of Conduct while doing so.
+
+Explicit enforcement of the Code of Conduct applies to the OpenStreetMap Carto 
GitHub project and code reviews.
+
+## Values
+
+These are the values to which people in the OpenStreetMap Carto should aspire.
+
+- Be friendly and welcoming
+- Be patient
+  - Remember that people have varying communication styles and that not 
everyone is using their native language. (Meaning and tone can be lost in 
translation.)
+- Be thoughtful
+  - Productive communication requires effort. Think about how your words will 
be interpreted.
+  - Remember that sometimes it is best to refrain entirely from commenting.
+- Be respectful
+  - In particular, respect differences of opinion.
+- Be charitable
+  - Interpret the arguments of others in good faith, do not seek to disagree.
+  - When we do disagree, try to understand why.
+- Avoid destructive behavior:
+  - Derailing: stay on topic; if you want to talk about something else, start 
a new conversation.
+  - Unconstructive criticism: don't merely decry the current state of affairs; 
offer—or at least solicit—suggestions as to how things may be improved.
+  - Snarking (pithy, unproductive, sniping comments)
+  - Discussing potentially offensive or sensitive issues unless directly 
technically relevant; this all too often leads to unnecessary conflict.
+  - Microaggressions: brief and commonplace verbal, behavioral and 
environmental indignities that communicate hostile, derogatory or negative 
slights and insults to a person or group.
+
+People are complicated. You should expect to be misunderstood and to 
misunderstand others; when this inevitably occurs, resist the urge to be 
defensive or assign blame. Try not to take offense where no offense was 
intended. Give people the benefit of the doubt. Even if the intent was to 
provoke, do not rise to it. It is the responsibility of *all parties* to 
de-escalate conflict when it arises.
+
+## Unwelcome behavior
+
+These actions are explicitly forbidden in OpenStreetMap Carto spaces:
+
+- Insulting, demeaning, hateful, or threatening remarks.
+- Discrimination based on age, disability, gender, nationality, race, 
religion, sexuality, or similar personal characteristic.
+- Bullying or systematic harassment.
+- Unwelcome sexual advances.
+- Incitement to any of these.
+
+## Moderation
+
+The OpenStreetMap Carto spaces are not free speech venues; they are for 
discussion about OpenStreetMap Carto.
+
+When using the OpenStreetMap Carto spaces you should act in the spirit of the 
values. If you conduct yourself in a way that is explicitly forbidden by the 
CoC, you will be warned and asked to stop. If you do not stop, you will be 
removed from our community spaces temporarily. Repeated, willful breaches of 
the CoC will result in a permanent ban.
+
+## Reporting issues
+
+The OpenStreetMap Carto maintainers are responsible for handling 
conduct-related issues. Their goal is to de-escalate conflicts and try to 
resolve issues to the satisfaction of all parties.
+
+If you encounter a conduct-related issue, you should report it to the 
maintainers by sending them [all an 
email](mailto:[email protected],[email protected],[email protected],[email protected]).
+
+**Note that the goal of the Code of Conduct and the maintainers is to resolve 
conflicts in the most harmonious way possible.** We hope that in most cases 
issues may be resolved through polite discussion and mutual agreement. Bans and 
other forceful measures are to be employed only as a last resort.
+
+Changes to the Code of Conduct should be proposed as pull requests.
+
+## Summary
+
+- Treat everyone with respect and kindness.
+- Be thoughtful in how you communicate.
+- Don’t be destructive or inflammatory.
+- If you encounter an issue, please mail the maintainers.
+
+## Acknowledgements
+
+This document is based on the [Go Code of 
Conduct](https://golang.org/conduct), which in turn has parts derived from the 
Code of Conduct documents of the Django, FreeBSD, and Rust projects.
+
+This documented is licensed under the Creative Commons Attribution 3.0 License.
diff --git a/INSTALL.md b/INSTALL.md
index 75f39c0..79a70a9 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -42,38 +42,21 @@ The repeated www.naturalearthdata.com in the Natural Earth 
shapefiles is correct
 Put these shapefiles at `path/to/openstreetmap-carto/data`.
 
 ## Fonts
-The stylesheet depends on a number of openly licensed fonts for support of all 
the languages found on the map. The package which supplies these fonts on 
Ubuntu 16.04 or Debian Testing is indicated.
+The stylesheet uses Noto Sans, an openly licensed font from Google with 
support for multiple scripts. The "UI" version is used where available, with 
its vertical metrics which fit better with Latin text. Other fonts from the 
Noto family are used for some other languages.
 
-If a font is missing, it will skip to the next available font which contains 
those characters. If you are not concerned with a particular script, you do not 
need its fonts. DejaVu Sans and Unifont are the two required fonts, and 
included on most systems.
+DejaVu Sans is used as an optional fallback font for systems without Noto 
Sans. If all the Noto fonts are installed, it should never be used.
 
-Mapnik 3 is required for acceptable rendering of most non-Latin scripts, 
particularly those with complicated diacritics and tone marks.
-
-### Global
-* DejaVu Sans, for most languages (`fonts-dejavu-core`)
-* Droid Sans Fallback, as a reasonable fallback (`fonts-droid-fallback`)
-* Unifont, as a last resort fallback (`ttf-unifont`)
-
-### Southeast Asia
-* Arundina, for Thai (`fonts-sipa-arundina`)
-* Padauk, for Burmese (`fonts-sil-padauk`)
-* Khmer OS Metal Chrieng Regular, for Khmer (`fonts-khmeros`)
+Unifont is used as a last resort fallback, with it's excellent coverage, 
common presence on machines, and ugly look.
 
-### South Asia
-
-* Mukti Narrow, for Bangali (`fonts-beng-extra`)
-* Gargi Medium, for Devanagari (`fonts-gargi`)
-* TSCu_Paranar, for Tamil (`fonts-taml-tscu`)
-* Tibetan Machine Uni, for Tibetian (`fonts-tibetan-machine`)
+Mapnik 3 is required for acceptable rendering of most non-Latin scripts, 
particularly those with complicated diacritics and tone marks.
 
-On Ubuntu 16.04 or Debian Testing you can install all the fonts with
+On Ubuntu 16.04 or Debian Testing you can install all required fonts with
 
 ```
-sudo apt-get install fonts-dejavu-core fonts-droid-fallback ttf-unifont \
-  fonts-sipa-arundina fonts-sil-padauk fonts-khmeros \
-  fonts-beng-extra fonts-gargi fonts-taml-tscu fonts-tibetan-machine
+sudo apt-get install fonts-noto ttf-unifont
 ```
 
-On Ubuntu 14.04, replace `fonts-droid-fallback` with `fonts-droid`.
+DejaVu is packaged as `fonts-dejavu-core`.
 
 ## Dependencies
 
diff --git a/addressing.mss b/addressing.mss
index a6e1dc1..7a525c4 100644
--- a/addressing.mss
+++ b/addressing.mss
@@ -1,35 +1,31 @@
+/* Features related to (postal) adresses: */
+
 @address-color: #666;
 
 #interpolation {
   [zoom >= 17] {
-    line-color: #888;
+    line-color: @address-color;
     line-width: 1;
     line-dasharray: 2,4;
   }
 }
 
-#housenumbers {
+#addresses {
   [zoom >= 17] {
-    text-name: "[addr:housenumber]";
-    text-placement: interior;
-    text-min-distance: 1;
-    text-wrap-width: 0;
-    text-face-name: @book-fonts;
-    text-fill: @address-color;
-    text-size: 10;
-    [zoom >= 20] {
-        text-size: 11;
+    text-name: "[addr_housename]";
+    ["addr_housenumber" != null] {
+      text-name: [addr_housenumber];
+      ["addr_housename" != null] {
+        text-name: [addr_housenumber] + "\n" + [addr_housename];
+      }
     }
-  }
-}
-
-#housenames {
-  [zoom >= 17] {
-    text-name: "[addr:housename]";
     text-placement: interior;
+    text-min-distance: 1;
     text-wrap-width: 20;
     text-face-name: @book-fonts;
     text-fill: @address-color;
+    text-halo-radius: @standard-halo-radius;
+    text-halo-fill: @standard-halo-fill;
     text-size: 10;
     [zoom >= 20] {
         text-size: 11;
@@ -37,16 +33,19 @@
   }
 }
 
+/* Building names (rendered differently from addresses because they are
+no official postal addresses) */
+
 #building-text {
   [zoom >= 14][way_pixels > 3000],
   [zoom >= 17] {
     text-name: "[name]";
-    text-size: 11;
-    text-fill: #444;
+    text-placement: interior;
+    text-wrap-width: 20;
     text-face-name: @book-fonts;
+    text-fill: #444;
     text-halo-radius: @standard-halo-radius;
-    text-wrap-width: 20;
-    text-halo-fill: rgba(255,255,255,0.5);
-    text-placement: interior;
+    text-halo-fill: @standard-halo-fill;
+    text-size: 11;
   }
 }
diff --git a/amenity-points.mss b/amenity-points.mss
index ed25b6a..5ae3cef 100644
--- a/amenity-points.mss
+++ b/amenity-points.mss
@@ -569,6 +569,13 @@
     marker-fill: @shop-icon;
   }
 
+  [feature = 'shop_art'][zoom >= 17] {
+    marker-file: url('symbols/art-14.svg');
+    marker-fill: @shop-icon;
+    marker-placement: interior;
+    marker-clip: false;
+  }
+
   [feature = 'shop_bag'][zoom >= 17] {
     marker-file: url('symbols/bag-14.svg');
     marker-fill: @shop-icon;
@@ -665,6 +672,15 @@
     }
   }
 
+  [feature = 'shop_deli'] {
+    [zoom >= 17] {
+      marker-file: url('symbols/deli-14.svg');
+      marker-placement: interior;
+      marker-clip: false;
+      marker-fill: @shop-icon;
+    }
+  }
+
   [feature = 'shop_department_store'][zoom >= 16] {
     marker-file: url('symbols/department_store.p.16.svg');
     marker-placement: interior;
@@ -914,6 +930,20 @@
     marker-fill: @shop-icon;
   }
 
+  [feature = 'shop_tobacco'][zoom >= 17] {
+    marker-file: url('symbols/tobacco-14.svg');
+    marker-placement: interior;
+    marker-clip: false;
+    marker-fill: @shop-icon;
+  }
+
+  [feature = 'shop_tea'][zoom >= 17] {
+    marker-file: url('symbols/tea-14.svg');
+    marker-placement: interior;
+    marker-clip: false;
+    marker-fill: @shop-icon;
+  }
+
   [feature = 'shop_variety_store'][zoom >= 17] {
     marker-file: url('symbols/variety_store-14.svg');
     marker-placement: interior;
@@ -1881,6 +1911,7 @@
     }
   }
 
+  [feature = 'shop_art'],
   [feature = 'shop_bag'],
   [feature = 'shop_bakery'],
   [feature = 'shop_beauty'],
@@ -1892,6 +1923,7 @@
   [feature = 'shop_convenience'],
   [feature = 'shop_confectionery'],
   [feature = 'shop_copyshop'],
+  [feature = 'shop_deli'],
   [feature = 'shop_doityourself'],
   [feature = 'shop_dry_cleaning'],
   [feature = 'shop_hardware'],
@@ -1935,10 +1967,13 @@
   [feature = 'shop_seafood'],
   [feature = 'shop_sports'],
   [feature = 'shop_stationery'],
+  [feature = 'shop_tobacco'],
+  [feature = 'shop_tea'],
   [feature = 'shop_variety_store'],
   [feature = 'shop_wine'],
   [feature = 'shop_other']{
-    [zoom >= 17] {
+    [way_pixels > 3000][zoom >= 17],
+    [zoom >= 18] {
       text-name: "[name]";
       text-size: @standard-text-size;
       text-dy: 12;
diff --git a/citywalls.mss b/citywalls.mss
deleted file mode 100644
index 54202ff..0000000
--- a/citywalls.mss
+++ /dev/null
@@ -1,13 +0,0 @@
-#citywalls {
-  [zoom >= 14] {
-    line-color: grey;
-    line-width: 4;
-    line-opacity: 0.8;
-    [zoom >= 15] {
-      line-width: 6;
-    }
-    [zoom >= 16] {
-      line-width: 9;
-    }
-  }
-}
diff --git a/get-shapefiles.sh b/get-shapefiles.sh
index da232de..b6fe4cb 100755
--- a/get-shapefiles.sh
+++ b/get-shapefiles.sh
@@ -3,6 +3,21 @@ set -e -u
 
 UNZIP_OPTS=-qqun
 
+# check essential applications
+exists()
+{
+  command -v "$1" >/dev/null 2>&1
+}
+
+for application in curl tar unzip; do
+  if exists $application; then
+    echo $application 'detected...'
+  else
+    echo 'ERROR:' $application 'not detected, you need to install it first!'
+    exit 1
+  fi
+done
+
 # create and populate data dir
 mkdir -p data/
 mkdir -p data/world_boundaries
diff --git a/landcover.mss b/landcover.mss
index 4083763..bd83fea 100644
--- a/landcover.mss
+++ b/landcover.mss
@@ -33,7 +33,7 @@
 @bare_ground: #eee5dc;
 @campsite: #def6c0; // also caravan_site, picnic_site
 @cemetery: #aacbaf; // also grave_yard
-@construction: #c7c7b4;
+@construction: #c7c7b4; // also brownfield
 @danger_area: pink;
 @garages: #dfddce;
 @heath: #d6d99f;
@@ -373,7 +373,6 @@
   }
 
   [feature = 'landuse_brownfield'],
-  [feature = 'landuse_landfill'],
   [feature = 'landuse_construction'] {
     [zoom >= 10] {
       polygon-fill: @construction;
@@ -382,6 +381,14 @@
     }
   }
 
+  [feature = 'landuse_landfill'] {
+    [zoom >= 10] {
+      polygon-fill: #b6b592;
+      [way_pixels >= 4]  { polygon-gamma: 0.75; }
+      [way_pixels >= 64] { polygon-gamma: 0.3;  }
+    }
+  }
+
   [feature = 'natural_bare_rock'][zoom >= 9] {
     polygon-fill: @bare_ground;
     [way_pixels >= 4]  { polygon-gamma: 0.75; }
@@ -655,7 +662,7 @@
   [zoom >= 16] {
     line-color: #444;
     line-width: 0.4;
-    [barrier = 'hedge'] {
+    [feature = 'barrier_hedge'] {
       polygon-fill: #aed1a0;
     }
   }
@@ -666,14 +673,27 @@
     line-width: 0.4;
     line-color: #444;
   }
-  [barrier = 'embankment'][zoom >= 14] {
+  [feature = 'barrier_embankment'][zoom >= 14] {
     line-width: 0.4;
     line-color: #444;
   }
-  [barrier = 'hedge'][zoom >= 16] {
+  [feature = 'barrier_hedge'][zoom >= 16] {
     line-width: 3;
     line-color: #aed1a0;
   }
+  [feature = 'historic_citywalls'],
+  [feature = 'barrier_city_wall'] {
+    [zoom >= 15] {
+      line-width: 1.5;
+      line-color: lighten(#444, 30%);
+    }
+
+    [zoom >= 17] {
+      line-width: 3;
+      barrier/line-width: 0.4;
+      barrier/line-color: #444;
+    }
+  }
 }
 
 #tourism-boundary {
diff --git a/placenames.mss b/placenames.mss
index e5e33db..d381759 100644
--- a/placenames.mss
+++ b/placenames.mss
@@ -4,7 +4,7 @@
 @state-labels: desaturate(darken(@admin-boundaries, 5%), 20%);
 
 .country {
-  [admin_level = '2'][zoom >= 3][way_pixels > 1000][way_pixels < 360000] {
+  [zoom >= 3][way_pixels > 1000][way_pixels < 360000] {
     text-name: "[name]";
     text-size: 10;
     [zoom >= 4] {
@@ -31,56 +31,121 @@
 }
 
 .state {
-  [admin_level = '4'] {
-    [zoom >= 4][zoom < 5][way_pixels > 750],
-    [zoom >= 5][way_pixels > 3000][way_pixels < 196000] {
-      text-name: "[ref]";
-      text-size: 9;
-      text-fill: @state-labels;
-      text-face-name: @oblique-fonts;
-      text-halo-fill: @standard-halo-fill;
-      text-halo-radius: @standard-halo-radius * 1.5;
-      text-wrap-width: 0;
-      text-placement: interior;
-      [zoom >= 5] {
-        text-name: "[name]";
-        text-wrap-width: 30;
-      }
-      [zoom >= 7] {
-        text-size: 11;
-        text-wrap-width: 50;
-      }
+  [zoom >= 4][zoom < 5][way_pixels > 750],
+  [zoom >= 5][way_pixels > 3000][way_pixels < 196000] {
+    text-name: "[ref]";
+    text-size: 9;
+    text-fill: @state-labels;
+    text-face-name: @oblique-fonts;
+    text-halo-fill: @standard-halo-fill;
+    text-halo-radius: @standard-halo-radius * 1.5;
+    text-wrap-width: 0;
+    text-placement: interior;
+    [zoom >= 5] {
+      text-name: "[name]";
+      text-wrap-width: 30;
+    }
+    [zoom >= 7] {
+      text-size: 11;
+      text-wrap-width: 50;
+    }
+  }
+}
+
+#capital-names {
+  [zoom >= 4][zoom < 8][population > 600000],
+  [zoom >= 5][zoom < 8] {
+    shield-file: url('symbols/place/place-capital-6.svg');
+    shield-text-dx: 6;
+    shield-text-dy: 6;
+    shield-name: '[name]';
+    shield-face-name: @book-fonts;
+    shield-fill: @placenames;
+    shield-size: 11;
+    shield-wrap-width: 30;
+    shield-halo-fill: @standard-halo-fill;
+    shield-halo-radius: @standard-halo-radius * 1.5;
+    shield-placement-type: simple;
+    shield-placements: 'S,N,E,W';
+    [dir = 1] {
+      shield-placements: 'N,S,E,W';
+    }
+    shield-unlock-image: true;
+
+    [zoom >= 5] {
+      shield-wrap-width: 45;
+    }
+    [zoom >= 6] {
+      shield-size: 12;
+      shield-wrap-width: 60;
+    }
+    [zoom >= 7] {
+      shield-file: url('symbols/place/place-capital-8.svg');
+      shield-text-dx: 7;
+      shield-text-dy: 7;
+    }
+  }
+  [zoom >= 8] {
+    text-name: '[name]';
+    text-face-name: @book-fonts;
+    text-fill: @placenames;
+    text-size: 13;
+    text-wrap-width: 60;
+    text-halo-fill: @standard-halo-fill;
+    text-halo-radius: @standard-halo-radius * 1.5;
+
+    [zoom >= 11] {
+      text-size: 15;
+      text-wrap-width: 75;
     }
   }
 }
 
 #placenames-medium::high-importance {
   [category = 1][zoom < 14] {
-    [zoom >= 4][score >= 3000000],
-    [zoom >= 5][score >= 400000] {
-      text-name: "[name]";
-      text-size: 11;
-      text-fill: @placenames;
-      text-face-name: @book-fonts;
-      text-halo-radius: @standard-halo-radius * 1.5;
-      text-halo-fill: @standard-halo-fill;
-      text-wrap-width: 30;
+    [zoom >= 4][zoom < 5][score >= 3000000],
+    [zoom >= 5][zoom < 8][score >= 400000] {
+      shield-file: url('symbols/place/place-4.svg');
+      shield-text-dx: 4;
+      shield-text-dy: 4;
+      shield-name: '[name]';
+      shield-face-name: @book-fonts;
+      shield-fill: @placenames;
+      shield-size: 11;
+      shield-wrap-width: 30;
+      shield-halo-fill: @standard-halo-fill;
+      shield-halo-radius: @standard-halo-radius * 1.5;
+      shield-placement-type: simple;
+      shield-placements: 'S,N,E,W';
+      [dir = 1] {
+        shield-placements: 'N,S,E,W';
+      }
+      shield-unlock-image: true;
+
       [zoom >= 5] {
-        text-size: 11;
-        text-wrap-width: 45;
+        shield-wrap-width: 45;
       }
       [zoom >= 6] {
-        text-size: 12;
-        text-wrap-width: 60;
-      }
-      [zoom >= 8] {
-        text-size: 13;
-        text-wrap-width: 60;
+        shield-size: 12;
+        shield-wrap-width: 60;
+
+        shield-file: url('symbols/place/place-6.svg');
+        shield-text-dx: 5;
+        shield-text-dy: 5;
       }
-      [zoom >= 9] {
-        text-size: 14;
-        text-wrap-width: 65;
+      [zoom >= 7] {
+        shield-file: url('symbols/place/place-6-z7.svg');
       }
+    }
+    [zoom >= 8][score >= 400000] {
+      text-name: '[name]';
+      text-face-name: @book-fonts;
+      text-fill: @placenames;
+      text-size: 13;
+      text-wrap-width: 60;
+      text-halo-fill: @standard-halo-fill;
+      text-halo-radius: @standard-halo-radius * 1.5;
+
       [zoom >= 11] {
         text-size: 15;
         text-wrap-width: 75;
@@ -91,15 +156,36 @@
 
 #placenames-medium::medium-importance {
   [category = 1][score < 400000][zoom < 15] {
-    [zoom >= 6][score >= 70000],
-    [zoom >= 7] {
+    [zoom >= 6][zoom < 8][score >= 70000],
+    [zoom >= 7][zoom < 8] {
+      shield-file: url('symbols/place/place-4.svg');
+      shield-text-dx: 4;
+      shield-text-dy: 4;
+      shield-name: "[name]";
+      shield-size: 10;
+      shield-fill: @placenames;
+      shield-face-name: @book-fonts;
+      shield-halo-fill: @standard-halo-fill;
+      shield-halo-radius: @standard-halo-radius * 1.5;
+      shield-wrap-width: 30;
+      shield-placement-type: simple;
+      shield-placements: 'S,N,E,W';
+      [dir = 1] {
+        shield-placements: 'N,S,E,W';
+      }
+      shield-unlock-image: true;
+      [zoom >= 7] {
+        shield-file: url('symbols/place/place-4-z7.svg');
+      }
+    }
+    [zoom >= 8] {
       text-name: "[name]";
       text-size: 10;
       text-fill: @placenames;
       text-face-name: @book-fonts;
-      text-halo-radius: @standard-halo-radius * 1.5;
       text-halo-fill: @standard-halo-fill;
-      text-wrap-width: 30;
+      text-halo-radius: @standard-halo-radius * 1.5;
+      text-wrap-width: 60;
       [zoom >= 9] {
         text-size: 12;
         text-wrap-width: 60;
@@ -123,8 +209,8 @@
       text-size: 10;
       text-fill: @placenames;
       text-face-name: @book-fonts;
-      text-halo-radius: @standard-halo-radius * 1.5;
       text-halo-fill: @standard-halo-fill;
+      text-halo-radius: @standard-halo-radius * 1.5;
       text-wrap-width: 45;
       [zoom >= 11] {
         text-size: 11;
@@ -148,8 +234,8 @@
     text-size: 11;
     text-fill: @placenames;
     text-face-name: @book-fonts;
-    text-halo-radius: @standard-halo-radius * 1.5;
     text-halo-fill: @standard-halo-fill;
+    text-halo-radius: @standard-halo-radius * 1.5;
     text-wrap-width: 55;
     [zoom >= 14] {
       text-size: 14;
@@ -171,8 +257,8 @@
       text-size: 10;
       text-fill: @placenames;
       text-face-name: @book-fonts;
-      text-halo-radius: @standard-halo-radius * 1.5;
       text-halo-fill: @standard-halo-fill;
+      text-halo-radius: @standard-halo-radius * 1.5;
       text-wrap-width: 50;
       [zoom >= 14] {
         text-fill: @placenames-light;
@@ -199,8 +285,8 @@
       text-size: 10;
       text-fill: @placenames;
       text-face-name: @book-fonts;
-      text-halo-radius: @standard-halo-radius * 1.5;
       text-halo-fill: @standard-halo-fill;
+      text-halo-radius: @standard-halo-radius * 1.5;
       text-wrap-width: 45;
     }
     [zoom >= 16] {
@@ -211,3 +297,4 @@
     }
   }
 }
+
diff --git a/project.mml b/project.mml
index d9492e6..fffc907 100644
--- a/project.mml
+++ b/project.mml
@@ -607,32 +607,6 @@
       "advanced": {}
     },
     {
-      "name": "citywalls",
-      "srs-name": "900913",
-      "geometry": "linestring",
-      "class": "",
-      "id": "citywalls",
-      "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
-      "Datasource": {
-        "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way\n  FROM planet_osm_line\n  WHERE historic = 
'citywalls')\nAS citywalls",
-        "geometry_field": "way",
-        "type": "postgis",
-        "key_field": "",
-        "dbname": "gis"
-      },
-      "extent": [
-        -180,
-        -85.05112877980659,
-        180,
-        85.05112877980659
-      ],
-      "properties": {
-        "minzoom": 14
-      },
-      "advanced": {}
-    },
-    {
       "name": "landuse-overlay",
       "srs-name": "900913",
       "geometry": "polygon",
@@ -667,7 +641,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way, barrier\n  FROM planet_osm_line\n  WHERE 
barrier IN ('chain', 'city_wall', 'embankment', 'ditch', 'fence', 
'guard_rail',\n          'handrail', 'hedge', 'kerb', 'retaining_wall', 
'wall')\n    AND (waterway IS NULL OR waterway NOT IN ('river', 'canal', 
'derelict_canal', 'stream', 'drain', 'ditch', 'wadi'))\n) AS line_barriers",
+        "table": "(SELECT\n    way, COALESCE(historic, barrier) AS feature\n  
FROM (SELECT way,\n    ('barrier_' || (CASE WHEN barrier IN ('chain', 
'city_wall', 'embankment', 'ditch', 'fence', 'guard_rail',\n          
'handrail', 'hedge', 'kerb', 'retaining_wall', 'wall') THEN barrier ELSE NULL 
END)) AS barrier,\n    ('historic_' || (CASE WHEN historic = 'citywalls' THEN 
historic ELSE NULL END)) AS historic\n    FROM planet_osm_line\n    WHERE 
barrier IN ('chain', 'city_wall', 'embankmen [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -719,7 +693,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way, barrier\n  FROM planet_osm_polygon\n  
WHERE barrier IS NOT NULL\n) AS area_barriers",
+        "table": "(SELECT\n    way, barrier AS feature\n  FROM (SELECT way,\n  
  ('barrier_' || barrier) AS barrier\n    FROM planet_osm_polygon\n    WHERE 
barrier IS NOT NULL\n  ) AS features\n) AS area_barriers",
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1260,15 +1234,15 @@
       "advanced": {}
     },
     {
-      "name": "placenames-large",
+      "name": "country-names",
       "srs-name": "900913",
       "geometry": "point",
-      "class": "country state",
-      "id": "placenames-large",
+      "class": "country",
+      "id": "country-names",
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    
way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,\n    
name,\n    ref,\n    admin_level\n  FROM planet_osm_polygon\n  WHERE boundary = 
'administrative'\n    AND admin_level IN ('2', '4')\n    AND name IS NOT NULL\n 
   AND way_area > 750*!pixel_width!::real*!pixel_height!::real -- only labels 
for larger areas are displayed\n  ORDER BY admin_level ASC, way_area DESC\n) AS 
placenames_large",
+        "table": "(SELECT\n    way,\n    
way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,\n    
name\n  FROM planet_osm_polygon\n  WHERE boundary = 'administrative'\n    AND 
admin_level = '2'\n    AND name IS NOT NULL\n    AND way_area > 
100*!pixel_width!::real*!pixel_height!::real\n  ORDER BY way_area DESC\n) AS 
country_names",
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1282,6 +1256,58 @@
       ],
       "properties": {
         "minzoom": 2
+      }
+    },
+    {
+      "name": "capital-names",
+      "srs-name": "900913",
+      "geometry": "point",
+      "class": "",
+      "id": "capital-names",
+      "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+      "Datasource": {
+        "extent": "-20037508,-20037508,20037508,20037508",
+        "table": "(SELECT\n    way,\n    name,\n    CASE\n      WHEN 
(population ~ '^[0-9]{1,8}$') THEN population::INTEGER ELSE 0\n    END as 
population,\n    round(random()) AS dir\n  FROM planet_osm_point\n  WHERE 
capital = 'yes'\n    AND admin_level = '2'\n  ORDER BY population DESC\n) AS 
capital_names",
+        "geometry_field": "way",
+        "type": "postgis",
+        "key_field": "",
+        "dbname": "gis"
+      },
+      "extent": [
+        -180,
+        -85.05112877980659,
+        180,
+        85.05112877980659
+      ],
+      "properties": {
+        "maxzoom": 15,
+        "minzoom": 3
+      },
+      "advanced": {}
+    },
+    {
+      "name": "state-names",
+      "srs-name": "900913",
+      "geometry": "point",
+      "class": "state",
+      "id": "state-names",
+      "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
+      "Datasource": {
+        "extent": "-20037508,-20037508,20037508,20037508",
+        "table": "(SELECT\n    way,\n    
way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,\n    
name,\n    ref\n  FROM planet_osm_polygon\n  WHERE boundary = 
'administrative'\n    AND admin_level = '4'\n    AND name IS NOT NULL\n    AND 
way_area > 100*!pixel_width!::real*!pixel_height!::real\n  ORDER BY way_area 
DESC\n) AS state_names",
+        "geometry_field": "way",
+        "type": "postgis",
+        "key_field": "",
+        "dbname": "gis"
+      },
+      "extent": [
+        -180,
+        -85.05112877980659,
+        180,
+        85.05112877980659
+      ],
+      "properties": {
+        "minzoom": 4
       },
       "advanced": {}
     },
@@ -1294,7 +1320,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    name,\n    score,\n    CASE\n      
WHEN (place = 'city' OR (capital = 'yes' AND score >= 100000)) THEN 1\n      
ELSE 2\n    END as category\n  FROM \n    (SELECT\n        way,\n        
place,\n        name,\n        capital,\n        (\n          (CASE\n           
 WHEN (population ~ '^[0-9]{1,8}$') THEN population::INTEGER\n            WHEN 
(place = 'city') THEN 100000\n            WHEN (place = 'town') THEN 1000\n     
       ELSE 1\n          EN [...]
+        "table": "(SELECT\n    way,\n    name,\n    score,\n    CASE\n      
WHEN (place = 'city') THEN 1\n      ELSE 2\n    END as category,\n    
round(random()) AS dir\n  FROM \n    (SELECT\n        way,\n        place,\n    
    name,\n        (\n          (CASE\n            WHEN (population ~ 
'^[0-9]{1,8}$') THEN population::INTEGER\n            WHEN (place = 'city') 
THEN 100000\n            WHEN (place = 'town') THEN 1000\n            ELSE 1\n  
        END)\n          *\n          (CA [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1399,7 +1425,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    COALESCE(\n      'aeroway_' || CASE 
WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      
'tourism_' || CASE WHEN tourism IN ('artwork', 'alpine_hut', 'camp_site', 
'caravan_site', 'chalet', 'guest_house', \n                                     
     'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN 
tourism ELSE NULL END,\n      'amenity_' || CASE WHEN amenity IN ('shelter', 
'atm', 'bank', 'bar', 'bicycle [...]
+        "table": "(SELECT\n    way,\n    COALESCE(\n      'aeroway_' || CASE 
WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      
'tourism_' || CASE WHEN tourism IN ('artwork', 'alpine_hut', 'camp_site', 
'caravan_site', 'chalet', 'guest_house', \n                                     
     'hostel', 'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN 
tourism ELSE NULL END,\n      'amenity_' || CASE WHEN amenity IN ('shelter', 
'atm', 'bank', 'bar', 'bicycle [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1425,7 +1451,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    COALESCE(\n      'aeroway_' || CASE 
WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      
'tourism_' || CASE WHEN tourism IN ('artwork', 'alpine_hut', 'camp_site', 
'caravan_site', 'chalet', 'guest_house', 'hostel', \n                           
               'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN 
tourism ELSE NULL END,\n      'amenity_' || CASE WHEN amenity IN ('shelter', 
'atm', 'bank', 'bar', 'bicycle [...]
+        "table": "(SELECT\n    way,\n    COALESCE(\n      'aeroway_' || CASE 
WHEN aeroway IN ('helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      
'tourism_' || CASE WHEN tourism IN ('artwork', 'alpine_hut', 'camp_site', 
'caravan_site', 'chalet', 'guest_house', 'hostel', \n                           
               'hotel', 'motel', 'information', 'museum', 'picnic_site') THEN 
tourism ELSE NULL END,\n      'amenity_' || CASE WHEN amenity IN ('shelter', 
'atm', 'bank', 'bar', 'bicycle [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1634,7 +1660,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    CASE WHEN substr(highway, 
length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE 
highway END,\n    CASE WHEN (tunnel = 'yes' OR tunnel = 'building_passage' OR 
covered = 'yes') THEN 'yes' ELSE 'no' END AS tunnel,\n    CASE WHEN 
construction IN ('service', 'footway', 'cycleway', 'bridleway', 'path', 
'track') THEN 'yes' ELSE 'no' END AS int_construction_minor,\n    name,\n    
CASE\n      WHEN oneway IN ('yes', '-1') THEN onewa [...]
+        "table": "(SELECT\n    way,\n    CASE WHEN substr(highway, 
length(highway)-3, 4) = 'link' THEN substr(highway, 0, length(highway)-4) ELSE 
highway END,\n    CASE WHEN (tunnel = 'yes' OR tunnel = 'building_passage' OR 
covered = 'yes') THEN 'yes' ELSE 'no' END AS tunnel,\n    CASE WHEN 
construction IN ('service', 'footway', 'cycleway', 'bridleway', 'path', 
'track') THEN 'yes' ELSE 'no' END AS int_construction_minor,\n    name,\n    
CASE\n      WHEN oneway IN ('yes', '-1') THEN onewa [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1713,7 +1739,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    
way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,\n    
COALESCE(\n      'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron', 
'helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      'tourism_' || CASE 
WHEN tourism IN ('artwork', 'alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 
'guest_house', 'camp_site', 'caravan_site', \n                                  
        'theme_park', 'museum', 'zoo', 'information', 'picnic_s [...]
+        "table": "(SELECT\n    way,\n    
way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels,\n    
COALESCE(\n      'aeroway_' || CASE WHEN aeroway IN ('gate', 'apron', 
'helipad', 'aerodrome') THEN aeroway ELSE NULL END,\n      'tourism_' || CASE 
WHEN tourism IN ('artwork', 'alpine_hut', 'hotel', 'motel', 'hostel', 'chalet', 
'guest_house', 'camp_site', 'caravan_site', \n                                  
        'theme_park', 'museum', 'zoo', 'information', 'picnic_s [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1765,7 +1791,7 @@
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    way_pixels,\n    feature,\n    
access,\n    CONCAT(\n        name,\n        CASE WHEN name IS NOT NULL AND 
elevation IS NOT NULL THEN E'\\n' ELSE NULL END,\n        CASE WHEN elevation 
IS NOT NULL THEN CONCAT(REPLACE(ROUND(elevation)::TEXT, '-', U&'\\2212'), 
U&'\\00A0', 'm') ELSE NULL END\n    ) AS name,\n    CASE\n      WHEN 
\"natural\" IN ('peak', 'volcano', 'saddle') THEN elevation\n      ELSE NULL\n  
  END AS score,\n    operator,\n    ref,\n  [...]
+        "table": "(SELECT\n    way,\n    way_pixels,\n    feature,\n    
access,\n    CONCAT(\n        name,\n        CASE WHEN name IS NOT NULL AND 
elevation IS NOT NULL THEN E'\\n' ELSE NULL END,\n        CASE WHEN elevation 
IS NOT NULL THEN CONCAT(REPLACE(ROUND(elevation)::TEXT, '-', U&'\\2212'), 
U&'\\00A0', 'm') ELSE NULL END\n    ) AS name,\n    CASE\n      WHEN 
\"natural\" IN ('peak', 'volcano', 'saddle') THEN elevation\n      ELSE NULL\n  
  END AS score,\n    operator,\n    ref,\n  [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -1835,41 +1861,15 @@
       "advanced": {}
     },
     {
-      "name": "housenumbers",
-      "srs-name": "900913",
-      "geometry": "point",
-      "class": "",
-      "id": "housenumbers",
-      "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
-      "Datasource": {
-        "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    \"addr:housenumber\",\n    
way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels\n  
FROM planet_osm_polygon\n  WHERE \"addr:housenumber\" IS NOT NULL\n    AND 
building IS NOT NULL\nUNION ALL\nSELECT\n    way,\n    \"addr:housenumber\",\n  
  NULL AS way_pixels\n  FROM planet_osm_point\n  WHERE \"addr:housenumber\" IS 
NOT NULL\n  ORDER BY way_pixels DESC NULLS LAST\n) AS housenumbers",
-        "geometry_field": "way",
-        "type": "postgis",
-        "key_field": "",
-        "dbname": "gis"
-      },
-      "extent": [
-        -180,
-        -85.05112877980659,
-        180,
-        85.05112877980659
-      ],
-      "properties": {
-        "minzoom": 17
-      },
-      "advanced": {}
-    },
-    {
-      "name": "housenames",
+      "name": "addresses",
       "srs-name": "900913",
       "geometry": "point",
       "class": "",
-      "id": "housenames",
+      "id": "addresses",
       "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 
+y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
       "Datasource": {
         "extent": "-20037508,-20037508,20037508,20037508",
-        "table": "(SELECT\n    way,\n    \"addr:housename\",\n    
way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels\n  
FROM planet_osm_polygon\n  WHERE \"addr:housename\" IS NOT NULL\n    AND 
building IS NOT NULL\nUNION ALL\nSELECT\n    way,\n    \"addr:housename\",\n    
NULL AS way_pixels\n  FROM planet_osm_point WHERE \"addr:housename\" IS NOT 
NULL\nORDER BY way_pixels DESC NULLS LAST\n) AS housenames",
+        "table": "(SELECT\n    way,\n    \"addr:housenumber\" AS 
addr_housenumber,\n    \"addr:housename\" AS addr_housename,\n    
way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS way_pixels\n  
FROM planet_osm_polygon\n  WHERE ((\"addr:housenumber\" IS NOT NULL) OR 
(\"addr:housename\" IS NOT NULL))\n    AND building IS NOT NULL\nUNION 
ALL\nSELECT\n    way,\n    \"addr:housenumber\" AS addr_housenumber,\n    
\"addr:housename\" AS addr_housename,\n    NULL AS way_pixels\n  FR [...]
         "geometry_field": "way",
         "type": "postgis",
         "key_field": "",
@@ -2097,7 +2097,6 @@
     "road-colors-generated.mss",
     "roads.mss",
     "power.mss",
-    "citywalls.mss",
     "placenames.mss",
     "buildings.mss",
     "stations.mss",
diff --git a/project.yaml b/project.yaml
index d8fe8ea..29aa170 100644
--- a/project.yaml
+++ b/project.yaml
@@ -44,7 +44,6 @@ Stylesheet:
   - "road-colors-generated.mss"
   - "roads.mss"
   - "power.mss"
-  - "citywalls.mss"
   - "placenames.mss"
   - "buildings.mss"
   - "stations.mss"
@@ -635,22 +634,6 @@ Layer:
       group-by: "layernotnull"
       minzoom: 9
     advanced: {}
-  - id: "citywalls"
-    name: "citywalls"
-    class: ""
-    geometry: "linestring"
-    <<: *extents
-    Datasource:
-      <<: *osm2pgsql
-      table: |-
-        (SELECT
-            way
-          FROM planet_osm_line
-          WHERE historic = 'citywalls')
-        AS citywalls
-    advanced: {}
-    properties:
-      minzoom: 14
   - id: "landuse-overlay"
     name: "landuse-overlay"
     class: ""
@@ -679,11 +662,17 @@ Layer:
       <<: *osm2pgsql
       table: |-
         (SELECT
-            way, barrier
-          FROM planet_osm_line
-          WHERE barrier IN ('chain', 'city_wall', 'embankment', 'ditch', 
'fence', 'guard_rail',
+            way, COALESCE(historic, barrier) AS feature
+          FROM (SELECT way,
+            ('barrier_' || (CASE WHEN barrier IN ('chain', 'city_wall', 
'embankment', 'ditch', 'fence', 'guard_rail',
+                  'handrail', 'hedge', 'kerb', 'retaining_wall', 'wall') THEN 
barrier ELSE NULL END)) AS barrier,
+            ('historic_' || (CASE WHEN historic = 'citywalls' THEN historic 
ELSE NULL END)) AS historic
+            FROM planet_osm_line
+            WHERE barrier IN ('chain', 'city_wall', 'embankment', 'ditch', 
'fence', 'guard_rail',
                   'handrail', 'hedge', 'kerb', 'retaining_wall', 'wall')
-            AND (waterway IS NULL OR waterway NOT IN ('river', 'canal', 
'derelict_canal', 'stream', 'drain', 'ditch', 'wadi'))
+              OR historic = 'city_wall'
+              AND (waterway IS NULL OR waterway NOT IN ('river', 'canal', 
'derelict_canal', 'stream', 'drain', 'ditch', 'wadi'))
+          ) AS features
         ) AS line_barriers
     properties:
       minzoom: 14
@@ -713,9 +702,12 @@ Layer:
       <<: *osm2pgsql
       table: |-
         (SELECT
-            way, barrier
-          FROM planet_osm_polygon
-          WHERE barrier IS NOT NULL
+            way, barrier AS feature
+          FROM (SELECT way,
+            ('barrier_' || barrier) AS barrier
+            FROM planet_osm_polygon
+            WHERE barrier IS NOT NULL
+          ) AS features
         ) AS area_barriers
     properties:
       minzoom: 16
@@ -1506,9 +1498,9 @@ Layer:
     properties:
       minzoom: 16
     advanced: {}
-  - id: "placenames-large"
-    name: "placenames-large"
-    class: "country state"
+  - id: "country-names"
+    name: "country-names"
+    class: "country"
     geometry: "point"
     <<: *extents
     Datasource:
@@ -1517,18 +1509,62 @@ Layer:
         (SELECT
             way,
             way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS 
way_pixels,
-            name,
-            ref,
-            admin_level
+            name
           FROM planet_osm_polygon
           WHERE boundary = 'administrative'
-            AND admin_level IN ('2', '4')
+            AND admin_level = '2'
             AND name IS NOT NULL
-            AND way_area > 750*!pixel_width!::real*!pixel_height!::real -- 
only labels for larger areas are displayed
-          ORDER BY admin_level ASC, way_area DESC
-        ) AS placenames_large
+            AND way_area > 100*!pixel_width!::real*!pixel_height!::real
+          ORDER BY way_area DESC
+        ) AS country_names
     properties:
       minzoom: 2
+  - id: "capital-names"
+    name: "capital-names"
+    class: ""
+    geometry: "point"
+    <<: *extents
+    Datasource:
+      <<: *osm2pgsql
+      table: |-
+        (SELECT
+            way,
+            name,
+            CASE
+              WHEN (population ~ '^[0-9]{1,8}$') THEN population::INTEGER ELSE 0
+            END as population,
+            round(random()) AS dir
+          FROM planet_osm_point
+          WHERE capital = 'yes'
+            AND admin_level = '2'
+          ORDER BY population DESC
+        ) AS capital_names
+    properties:
+      minzoom: 3
+      maxzoom: 15
+    advanced: {}
+  - id: "state-names"
+    name: "state-names"
+    class: "state"
+    geometry: "point"
+    <<: *extents
+    Datasource:
+      <<: *osm2pgsql
+      table: |-
+        (SELECT
+            way,
+            way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS 
way_pixels,
+            name,
+            ref
+          FROM planet_osm_polygon
+          WHERE boundary = 'administrative'
+            AND admin_level = '4'
+            AND name IS NOT NULL
+            AND way_area > 100*!pixel_width!::real*!pixel_height!::real
+          ORDER BY way_area DESC
+        ) AS state_names
+    properties:
+      minzoom: 4
     advanced: {}
   - id: "placenames-medium"
     name: "placenames-medium"
@@ -1543,15 +1579,15 @@ Layer:
             name,
             score,
             CASE
-              WHEN (place = 'city' OR (capital = 'yes' AND score >= 100000)) 
THEN 1
+              WHEN (place = 'city') THEN 1
               ELSE 2
-            END as category
+            END as category,
+            round(random()) AS dir
           FROM 
             (SELECT
                 way,
                 place,
                 name,
-                capital,
                 (
                   (CASE
                     WHEN (population ~ '^[0-9]{1,8}$') THEN population::INTEGER
@@ -1561,14 +1597,14 @@ Layer:
                   END)
                   *
                   (CASE
-                    WHEN (capital = 'yes') THEN 3
-                    WHEN (capital = '4') THEN 2
+                    WHEN (capital = '4' OR (capital = 'yes' AND admin_level = 
'4')) THEN 2
                     ELSE 1
                   END)
                 ) AS score
               FROM planet_osm_point
               WHERE place IN ('city', 'town')
                 AND name IS NOT NULL
+                AND capital IS NULL OR capital != 'yes' OR (capital = 'yes' 
AND admin_level != '2')
             ) as p
           ORDER BY score DESC, length(name) DESC, name
         ) AS placenames_medium
@@ -1680,11 +1716,11 @@ Layer:
                                             'mobile_phone', 'motorcycle', 
'musical_instrument', 'newsagent', 'optician', 'jewelry', 'jewellery', 
                                             'electronics', 'chemist', 'toys', 
'travel_agency', 'car_parts', 'greengrocer', 'farm', 'stationery', 
                                             'laundry', 'dry_cleaning', 
'beverages', 'perfumery', 'cosmetics', 'variety_store', 'wine', 'outdoor', 
-                                            'copyshop', 'sports') THEN shop 
-                              WHEN shop IN ('accessories', 'antiques', 
'appliance', 'art', 'baby_goods', 'bathroom_furnishing', 
+                                            'copyshop', 'sports', 'deli', 
'tobacco', 'art', 'tea') THEN shop 
+                              WHEN shop IN ('accessories', 'antiques', 
'appliance', 'baby_goods', 'bathroom_furnishing', 
                                             'bed', 'boat', 'bookmaker', 
'boutique', 'builder', 'building_materials', 'camera', 'car_service', 
                                             'carpet', 'charity', 'cheese', 
'chocolate', 'coffee', 'communication', 'craft', 'curtain', 'dairy', 
-                                            'deli', 'discount', 'e-cigarette', 
'electrical', 'energy', 'erotic', 'estate_agent', 
+                                            'discount', 'e-cigarette', 
'electrical', 'energy', 'erotic', 'estate_agent', 
                                             'fabric', 'fishing', 'flooring', 
'food', 'frame', 'frozen_food', 'funeral_directors', 'furnace', 
                                             'gallery', 'games', 'gas', 
'general', 'glaziery', 'grocery', 'health', 'health_food', 'hearing_aids', 
                                             'herbalist', 'hobby', 'household', 
'houseware', 'hunting', 'interior_decoration', 'kitchen', 
@@ -1692,7 +1728,7 @@ Layer:
                                             'motorcycle_repair', 'music', 
'office_supplies', 'organic', 'paint', 'pastry', 'pawnbroker', 
                                             'phone', 'pottery', 'printing', 
'radiotechnics', 'real_estate', 'religion', 'rental', 'salon', 
                                             'scuba_diving', 'second_hand', 
'sewing', 'shoe_repair', 'shopping_centre', 'solarium', 'souvenir',  
-                                            'tailor', 'tanning', 'tattoo', 
'tea', 'ticket', 'tiles', 'tobacco', 'trade', 'tyres', 'vacuum_cleaner', 
'video', 
+                                            'tailor', 'tanning', 'tattoo', 
'ticket', 'tiles', 'trade', 'tyres', 'vacuum_cleaner', 'video', 
                                             'video_games', 'watches', 
'wholesale', 'yes') THEN 'other' ELSE NULL END,
               'leisure_' || CASE WHEN leisure IN ('water_park', 'playground', 
'miniature_golf', 'golf_course', 'picnic_table') THEN leisure ELSE NULL END,
               'man_made_' || CASE WHEN man_made IN ('mast', 'water_tower', 
'lighthouse', 'windmill', 'obelisk') THEN man_made ELSE NULL END,
@@ -1761,10 +1797,10 @@ Layer:
                                             'photography', 'seafood', 'shoes', 
'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 
                                             'musical_instrument', 'newsagent', 
'optician', 'jewelry', 'jewellery', 'electronics', 'chemist', 'toys', 
                                             'travel_agency', 'car_parts', 
'greengrocer', 'farm', 'stationery', 'laundry', 'dry_cleaning', 'beverages', 
-                                            'perfumery', 'cosmetics', 
'variety_store', 'wine', 'outdoor', 'copyshop', 'sports') THEN shop 
-                              WHEN shop IN ('accessories', 'antiques', 
'appliance', 'art', 'baby_goods', 'bathroom_furnishing', 'bed',  
+                                            'perfumery', 'cosmetics', 
'variety_store', 'wine', 'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 
'art', 'tea') THEN shop 
+                              WHEN shop IN ('accessories', 'antiques', 
'appliance', 'baby_goods', 'bathroom_furnishing', 'bed',  
                                             'boat', 'bookmaker', 'boutique', 
'builder', 'building_materials', 'camera', 'car_service', 'carpet', 'charity', 
-                                            'cheese', 'chocolate', 'coffee', 
'communication', 'craft', 'curtain', 'dairy', 'deli',   
+                                            'cheese', 'chocolate', 'coffee', 
'communication', 'craft', 'curtain', 'dairy',   
                                             'discount', 'e-cigarette', 
'electrical', 'energy', 'erotic', 'estate_agent', 'fabric', 'fishing', 
                                             'flooring', 'food', 'frame', 
'frozen_food', 'funeral_directors', 'furnace', 'gallery', 'games', 'gas',  
                                             'general', 'glaziery', 'grocery', 
'health', 'health_food', 'hearing_aids', 'herbalist', 'hobby', 'household',  
@@ -1772,7 +1808,7 @@ Layer:
                                             'market', 'massage', 'medical', 
'medical_supply', 'money_lender', 'motorcycle_repair', 'music', 
'office_supplies',  
                                             'organic', 'paint', 'pastry', 
'pawnbroker', 'phone', 'pottery', 'printing', 'radiotechnics', 
                                             'real_estate', 'religion', 
'rental', 'salon', 'scuba_diving', 'second_hand', 'sewing', 'shoe_repair', 
'shopping_centre', 
-                                            'solarium', 'souvenir', 'tailor', 
'tanning', 'tattoo', 'tea', 'ticket', 'tiles', 'tobacco', 'trade', 'tyres', 
+                                            'solarium', 'souvenir', 'tailor', 
'tanning', 'tattoo', 'ticket', 'tiles', 'trade', 'tyres', 
                                             'vacuum_cleaner', 'video', 
'video_games', 'watches', 'wholesale', 'yes') THEN 'other' ELSE NULL END,
               'leisure_' || CASE WHEN leisure IN ('water_park', 'playground', 
'miniature_golf', 'golf_course', 'picnic_table', 'slipway',
                                                   'dog_park') THEN leisure 
ELSE NULL END,
@@ -2010,7 +2046,9 @@ Layer:
           FROM planet_osm_line
           WHERE highway IN ('motorway', 'motorway_link', 'trunk', 
'trunk_link', 'primary', 'primary_link', 'secondary', 'secondary_link', 
'tertiary', 
                             'tertiary_link', 'residential', 'unclassified', 
'road', 'service', 'pedestrian', 'raceway', 'living_street', 'construction')
-            AND name IS NOT NULL
+            AND (name IS NOT NULL
+              OR oneway IN ('yes', '-1')
+              OR junction IN ('roundabout'))
         ) AS roads_text_name
     properties:
       minzoom: 13
@@ -2099,10 +2137,10 @@ Layer:
                                             'photography', 'seafood', 'shoes', 
'alcohol', 'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 
                                             'musical_instrument', 'newsagent', 
'optician', 'jewelry', 'jewellery', 'electronics', 'chemist', 'toys', 
                                             'travel_agency', 'car_parts', 
'greengrocer', 'farm', 'stationery', 'laundry', 'dry_cleaning', 'beverages', 
-                                            'perfumery', 'cosmetics', 
'variety_store', 'wine', 'outdoor', 'copyshop', 'sports') THEN shop 
-                              WHEN shop IN ('accessories', 'antiques', 
'appliance', 'art', 'baby_goods', 'bathroom_furnishing', 'bed', 
+                                            'perfumery', 'cosmetics', 
'variety_store', 'wine', 'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 
'art', 'tea') THEN shop 
+                              WHEN shop IN ('accessories', 'antiques', 
'appliance', 'baby_goods', 'bathroom_furnishing', 'bed', 
                                             'boat', 'bookmaker', 'boutique', 
'builder', 'building_materials', 'camera', 'car_service', 'carpet', 'charity', 
-                                            'cheese', 'chocolate', 'coffee', 
'communication', 'craft', 'curtain', 'dairy', 'deli', 
+                                            'cheese', 'chocolate', 'coffee', 
'communication', 'craft', 'curtain', 'dairy', 
                                             'discount', 'e-cigarette', 
'electrical', 'energy', 'erotic', 'estate_agent', 'fabric', 'fishing', 
                                             'flooring', 'food', 'frame', 
'frozen_food', 'funeral_directors', 'furnace', 'gallery', 'games', 'gas', 
                                             'general', 'glaziery', 'grocery', 
'health', 'health_food', 'hearing_aids', 'herbalist', 'hobby', 'household', 
@@ -2110,8 +2148,8 @@ Layer:
                                             'lottery', 'market', 'massage', 
'medical', 'medical_supply', 'money_lender', 'motorcycle_repair', 'music', 
                                             'office_supplies', 'organic', 
'paint', 'pastry', 'pawnbroker', 'phone', 'pottery', 
                                             'printing', 'radiotechnics', 
'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'second_hand', 
-                                            'sewing', 'shoe_repair', 
'shopping_centre', 'solarium', 'souvenir', 'tailor', 'tanning', 'tattoo', 
'tea', 
-                                            'ticket', 'tiles', 'tobacco', 
'trade', 'tyres', 'vacuum_cleaner', 'video', 'video_games', 'watches', 
'wholesale', 
+                                            'sewing', 'shoe_repair', 
'shopping_centre', 'solarium', 'souvenir', 'tailor', 'tanning', 'tattoo',
+                                            'ticket', 'tiles', 'trade', 
'tyres', 'vacuum_cleaner', 'video', 'video_games', 'watches', 'wholesale', 
                                             'yes') THEN 'other' ELSE NULL END,
               'leisure_' || CASE WHEN leisure IN ('swimming_pool', 
'water_park', 'miniature_golf', 'golf_course', 'sports_centre', 'stadium', 
'track', 
                                                   'pitch', 'playground', 
'park', 'recreation_ground', 'common', 'garden', 'nature_reserve', 'marina', 
@@ -2241,11 +2279,11 @@ Layer:
                                                 'seafood', 'shoes', 'alcohol', 
'gift', 'furniture', 'kiosk', 'mobile_phone', 'motorcycle', 
'musical_instrument', 
                                                 'newsagent', 'optician', 
'jewelry', 'jewellery', 'electronics', 'chemist', 'toys', 'travel_agency', 
'car_parts', 
                                                 'greengrocer', 'farm', 
'stationery', 'laundry', 'dry_cleaning', 'beverages', 'perfumery', 'cosmetics', 
-                                                'variety_store', 'wine', 
'outdoor', 'copyshop', 'sports') THEN shop 
-                                  WHEN shop IN ('accessories', 'antiques', 
'appliance', 'art', 
+                                                'variety_store', 'wine', 
'outdoor', 'copyshop', 'sports', 'deli', 'tobacco', 'art', 'tea') THEN shop 
+                                  WHEN shop IN ('accessories', 'antiques', 
'appliance',
                                                 'baby_goods', 
'bathroom_furnishing', 'bed', 'boat', 'bookmaker', 'boutique', 'builder', 
                                                 'building_materials', 
'camera', 'car_service', 'carpet', 'charity', 'cheese', 'chocolate', 'coffee', 
-                                                'communication', 'craft', 
'curtain', 'dairy', 'deli', 'discount',  
+                                                'communication', 'craft', 
'curtain', 'dairy', 'discount',  
                                                 'e-cigarette', 'electrical', 
'energy', 'erotic', 'estate_agent', 'fabric', 'fishing', 'flooring', 
                                                 'food', 'frame', 
'frozen_food', 'funeral_directors', 'furnace', 'gallery', 'games', 'gas', 
                                                 'general', 'glaziery', 
'grocery', 'health', 'health_food', 'hearing_aids', 'herbalist', 'hobby', 
'household', 
@@ -2254,7 +2292,7 @@ Layer:
                                                 'office_supplies', 'organic', 
'paint', 'pastry', 'pawnbroker', 'phone', 'pottery', 
                                                 'printing', 'radiotechnics', 
'real_estate', 'religion', 'rental', 'salon', 'scuba_diving', 'second_hand', 
                                                 'sewing', 'shoe_repair', 
'shopping_centre', 'solarium', 'souvenir', 'tailor', 'tanning', 'tattoo', 
-                                                'tea', 'ticket', 'tiles', 
'tobacco', 'trade', 'tyres', 'vacuum_cleaner', 'video', 'video_games', 
'watches', 
+                                                'ticket', 'tiles', 'trade', 
'tyres', 'vacuum_cleaner', 'video', 'video_games', 'watches', 
                                                 'wholesale', 'yes') THEN 
'other' ELSE NULL END,
                   'leisure_' || CASE WHEN leisure IN ('swimming_pool', 
'water_park', 'miniature_golf', 'golf_course', 'sports_centre', 'stadium', 
'track',  
                                                       'pitch','playground', 
'park', 'recreation_ground', 'common', 'garden', 'nature_reserve', 'marina',  
@@ -2360,8 +2398,8 @@ Layer:
     properties:
       minzoom: 17
     advanced: {}
-  - id: "housenumbers"
-    name: "housenumbers"
+  - id: "addresses"
+    name: "addresses"
     class: ""
     geometry: "point"
     <<: *extents
@@ -2370,46 +2408,22 @@ Layer:
       table: |-
         (SELECT
             way,
-            "addr:housenumber",
+            "addr:housenumber" AS addr_housenumber,
+            "addr:housename" AS addr_housename,
             way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS 
way_pixels
           FROM planet_osm_polygon
-          WHERE "addr:housenumber" IS NOT NULL
+          WHERE (("addr:housenumber" IS NOT NULL) OR ("addr:housename" IS NOT 
NULL))
             AND building IS NOT NULL
         UNION ALL
         SELECT
             way,
-            "addr:housenumber",
+            "addr:housenumber" AS addr_housenumber,
+            "addr:housename" AS addr_housename,
             NULL AS way_pixels
           FROM planet_osm_point
-          WHERE "addr:housenumber" IS NOT NULL
+          WHERE ("addr:housenumber" IS NOT NULL) OR ("addr:housename" IS NOT 
NULL)
           ORDER BY way_pixels DESC NULLS LAST
-        ) AS housenumbers
-    properties:
-      minzoom: 17
-    advanced: {}
-  - id: "housenames"
-    name: "housenames"
-    class: ""
-    geometry: "point"
-    <<: *extents
-    Datasource:
-      <<: *osm2pgsql
-      table: |-
-        (SELECT
-            way,
-            "addr:housename",
-            way_area/NULLIF(!pixel_width!::real*!pixel_height!::real,0) AS 
way_pixels
-          FROM planet_osm_polygon
-          WHERE "addr:housename" IS NOT NULL
-            AND building IS NOT NULL
-        UNION ALL
-        SELECT
-            way,
-            "addr:housename",
-            NULL AS way_pixels
-          FROM planet_osm_point WHERE "addr:housename" IS NOT NULL
-        ORDER BY way_pixels DESC NULLS LAST
-        ) AS housenames
+        ) AS addresses
     properties:
       minzoom: 17
     advanced: {}
diff --git a/roads.mss b/roads.mss
index 28b8db2..da793ec 100644
--- a/roads.mss
+++ b/roads.mss
@@ -8,14 +8,21 @@
 @raceway-fill: pink;
 @road-fill: #ddd;
 @footway-fill: salmon;
+@footway-fill-noaccess: #bbbbbb;
 @steps-fill: @footway-fill;
+@steps-fill-noaccess: #bbbbbb;
 @cycleway-fill: blue;
+@cycleway-fill-noaccess: #9999ff;
 @bridleway-fill: green;
+@bridleway-fill-noaccess: #aaddaa;
 @track-fill: #996600;
+@track-fill-noaccess: #e2c5bb;
 @aeroway-fill: #bbc;
 @runway-fill: @aeroway-fill;
 @taxiway-fill: @aeroway-fill;
 @helipad-fill: @aeroway-fill;
+@access-marking: #eaeaea;
+@access-marking-living-street: #cccccc;
 
 @default-casing: white;
 @tertiary-casing: #8f8f8f;
@@ -1536,6 +1543,7 @@ tertiary is rendered from z10 and is not included in 
osm_planet_roads. */
           background/line-opacity: 0.4;
         }
         line/line-color: @steps-fill;
+        [access = 'no'] { line/line-color: @steps-fill-noaccess; }
         line/line-dasharray: 2,1;
         line/line-width: @steps-width-z13;
         [zoom >= 15] { line/line-width:  @steps-width-z15; }
@@ -1554,6 +1562,7 @@ tertiary is rendered from z10 and is not included in 
osm_planet_roads. */
           background/line-opacity: 0.4;
         }
         line/line-color: @bridleway-fill;
+        [access = 'no'] { line/line-color: @bridleway-fill-noaccess; }
         line/line-dasharray: 4,2;
         line/line-width: @bridleway-width-z13;
         [zoom >= 15] { line/line-width: @bridleway-width-z15; }
@@ -1585,6 +1594,7 @@ tertiary is rendered from z10 and is not included in 
osm_planet_roads. */
           }
         }
         line/line-color: @footway-fill;
+        [access = 'no'] { line/line-color: @footway-fill-noaccess; }
         line/line-dasharray: 1,3;
         line/line-join: round;
         line/line-cap: round;
@@ -1608,6 +1618,7 @@ tertiary is rendered from z10 and is not included in 
osm_planet_roads. */
         }
         [zoom >= 15][int_surface = null] {
           line/line-color: @footway-fill;
+          [access = 'no'] { line/line-color: @footway-fill-noaccess; }
           line/line-dasharray: 1,3,2,4;
           line/line-join: round;
           line/line-cap: round;
@@ -1625,6 +1636,7 @@ tertiary is rendered from z10 and is not included in 
osm_planet_roads. */
         }
         [zoom >= 15][int_surface = 'unpaved'] {
           line/line-color: @footway-fill;
+          [access = 'no'] { line/line-color: @footway-fill-noaccess; }
           line/line-dasharray: 1,4;
           line/line-join: round;
           line/line-cap: round;
@@ -1663,6 +1675,7 @@ tertiary is rendered from z10 and is not included in 
osm_planet_roads. */
           }
         }
         line/line-color: @cycleway-fill;
+        [access = 'no'] { line/line-color: @cycleway-fill-noaccess; }
         line/line-dasharray: 1,3;
         line/line-join: round;
         line/line-cap: round;
@@ -1686,6 +1699,7 @@ tertiary is rendered from z10 and is not included in 
osm_planet_roads. */
         }
         [zoom >= 15][int_surface = null] {
           line/line-color: @cycleway-fill;
+          [access = 'no'] { line/line-color: @cycleway-fill-noaccess; }
           line/line-dasharray: 1,3,2,4;
           line/line-join: round;
           line/line-cap: round;
@@ -1703,6 +1717,7 @@ tertiary is rendered from z10 and is not included in 
osm_planet_roads. */
         }
         [zoom >= 15][int_surface = 'unpaved'] {
           line/line-color: @cycleway-fill;
+          [access = 'no'] { line/line-color: @cycleway-fill-noaccess; }
           line/line-dasharray: 1,4;
           line/line-join: round;
           line/line-cap: round;
@@ -1741,6 +1756,7 @@ tertiary is rendered from z10 and is not included in 
osm_planet_roads. */
 
         /* Set the properties of the brown inside */
         line/line-color: @track-fill;
+        [access = 'no'] { line/line-color: @track-fill-noaccess; }
         line/line-dasharray: 5,4,2,4;
         line/line-cap: round;
         line/line-join: round;
@@ -2458,34 +2474,44 @@ tertiary is rendered from z10 and is not included in 
osm_planet_roads. */
     [feature = 'highway_residential'],
     [feature = 'highway_living_street'] {
       [zoom >= 15] {
-        access/line-width: 6;
-        access/line-color: @destination-marking;
-        access/line-dasharray: 6,8;
-        access/line-opacity: 0.5;
+        access/line-color: @access-marking;
+        [feature = 'highway_living_street'] {
+          access/line-color: @access-marking-living-street;
+        }
         access/line-join: round;
         access/line-cap: round;
+        access/line-width: 3;
+        access/line-dasharray: 0.1,9;
+        [zoom >= 17] {
+          access/line-width: 6;
+          access/line-dasharray: 0.1,12;
+        }
       }
     }
     [feature = 'highway_road'],
     [feature = 'highway_service'][service = 'INT-normal'] {
       [zoom >= 15] {
-        access/line-width: 3;
-        access/line-color: @destination-marking;
-        access/line-dasharray: 6,8;
-        access/line-opacity: 0.5;
+        access/line-color: @access-marking;
         access/line-join: round;
         access/line-cap: round;
-        [zoom >= 16] { access/line-width: 6; }
+        access/line-width: 2;
+        access/line-dasharray: 0.1,4;
+        [zoom >= 17] {
+          access/line-width: 4;
+          access/line-dasharray: 0.1,9;
+        }
       }
     }
     [feature = 'highway_service'][service = 'INT-minor'] {
       [zoom >= 16] {
-        access/line-width: 2.5;
-        access/line-color: @destination-marking;
-        access/line-dasharray: 6,8;
-        access/line-opacity: 0.5;
+        access/line-color: @access-marking;
         access/line-join: round;
         access/line-cap: round;
+        access/line-width: 1;
+        access/line-dasharray: 0.1,4;
+        [zoom >= 17] {
+          access/line-width: 2;
+        }
       }
     }
   }
@@ -2499,55 +2525,42 @@ tertiary is rendered from z10 and is not included in 
osm_planet_roads. */
     [feature = 'highway_residential'],
     [feature = 'highway_living_street'] {
       [zoom >= 15] {
-        access/line-width: 6;
-        access/line-color: @private-marking;
-        access/line-dasharray: 6,8;
-        access/line-opacity: 0.5;
+        access/line-color: @access-marking;
+        [feature = 'highway_living_street'] {
+          access/line-color: @access-marking-living-street;
+        }
         access/line-join: round;
         access/line-cap: round;
-        [feature = 'highway_motorway'],
-        [feature = 'highway_trunk'],
-        [feature = 'highway_primary'] {
-          access/line-color: @private-marking-for-red;
+        access/line-width: 2;
+        access/line-dasharray: 6,6;
+        [zoom >= 17] {
+          access/line-width: 6;
+          access/line-dasharray: 10,12;
         }
       }
     }
     [feature = 'highway_road'],
-    [feature = 'highway_track'],
     [feature = 'highway_service'][service = 'INT-normal'] {
       [zoom >= 15] {
-        access/line-width: 3;
-        access/line-color: @private-marking;
-        access/line-dasharray: 6,8;
-        access/line-opacity: 0.5;
+        access/line-color: @access-marking;
         access/line-join: round;
         access/line-cap: round;
-        [zoom >= 16] { access/line-width: 6; }
-      }
-    }
-    [feature = 'highway_footway'],
-    [feature = 'highway_path'],
-    [feature = 'highway_cycleway'],
-    [feature = 'highway_bridleway'],
-    [feature = 'highway_steps'] {
-      [zoom >= 15] {
-        access/line-width: 5;
-        access/line-color: @private-marking;
+        access/line-width: 2;
         access/line-dasharray: 6,8;
-        access/line-opacity: 0.5;
-        access/line-join: round;
-        access/line-cap: round;
-      }    
+        [zoom >= 17] {
+          access/line-width: 3;
+          access/line-dasharray: 8,10;
+        }
+      }
     }
-
     [feature = 'highway_service'][service = 'INT-minor'][zoom >= 16] {
-      [zoom >= 15] {
-        access/line-width: 2.5;
-        access/line-color: @private-marking;
-        access/line-dasharray: 6,8;
-        access/line-opacity: 0.5;
-        access/line-join: round;
-        access/line-cap: round;
+      access/line-color: @access-marking;
+      access/line-join: round;
+      access/line-cap: round;
+      access/line-width: 1;
+      access/line-dasharray: 6,8;
+      [zoom >= 17] {
+        access/line-width: 2;
       }
     }
   }
diff --git a/style.mss b/style.mss
index 67e77fc..4c05199 100644
--- a/style.mss
+++ b/style.mss
@@ -2,26 +2,274 @@ Map {
   background-color: @water-color;
 }
 
-/* A regular style. */
-@book-fonts:    "DejaVu Sans Book", "Arundina Regular", "Arundina Sans 
Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular",
-                "Mukti Narrow Regular", "Gargi Regular", "TSCu_Paranar 
Regular", "Tibetan Machine Uni Regular",
-                "Droid Sans Fallback Regular", "Unifont Medium", "unifont 
Medium";
-
-/* A bold style is available for almost all scripts. Bold text is heavier than 
regular text and can be used for emphasis.
-   Fallback is a regular style. */
-@bold-fonts:    "DejaVu Sans Bold", "Arundina Bold", "Arundina Sans Bold", 
"Padauk Bold", "TSCu_Paranar Bold",
-                "DejaVu Sans Book", "Arundina Regular", "Arundina Sans 
Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular",
-                "Mukti Narrow Regular", "gargi Medium", "TSCu_Paranar 
Regular", "Tibetan Machine Uni Regular",
-                "Droid Sans Fallback Regular", "Unifont Medium", "unifont 
Medium";
-
-/* An oblique or italic style is available for various (mostly latin-like) 
scripts. Oblique and italic style are not heavier than
-   regular style. But they are distinguishable from regular style. Fallback is 
a regular style. Because many (mostly asian) scripts
-   do not have an oblique or italic style by nature, be aware that for a 
considerable number of labels this style will make no
-   difference to the regular style. */
-@oblique-fonts: "DejaVu Sans Oblique", "Arundina Italic", "Arundina Sans 
Italic", "TSCu_Paranar Italic",
-                "DejaVu Sans Book", "Arundina Regular", "Arundina Sans 
Regular", "Padauk Regular", "Khmer OS Metal Chrieng Regular",
-                "Mukti Narrow Regular", "Gargi Regular", "TSCu_Paranar 
Regular", "Tibetan Machine Uni Regular",
-                "Droid Sans Fallback Regular", "Unifont Medium", "unifont 
Medium";
+/*
+About fonts:
+
+Noto is a font family that wants to cover most of Unicode with a harmonic
+design across various scripts. We use Noto for most text, with some support
+for backward-compatibility and Unifont as fallback.
+
+By order:
+
+1. Noto Sans is available for most scripts and it is used as a first choice.
+Where available the UI version of the fonts is used. In some cases the UI 
version
+has fewer glyphs, so both are listed. Most of the list is in alphabetical 
order,
+but there are some exceptions
+
+  - Noto Sans UI is before all other fonts
+  - The CJK fonts are manually ordered. The used CJK font covers all CJK
+    languages, but defaults to the japanese glyph style if various glyph
+    styles are available. (We have to default to one of JP, KR, SC, TC because
+    this carto style has no knowledge about what language the “names” tag
+    contains. As in Korea Han characters are not so widely used, it seems
+    better to default to either Chinese or Japanese. As Chinese exists in the
+    two variants SC/TC, it won’t be a uniform rendering anyway. So we default
+    to Japanese. However, this choise stays somewhat arbitrary and subjective.
+    See also https://github.com/gravitystorm/openstreetmap-carto/issues/2208)
+
+2. Noto provides three variants of Arabic: Noto Kufi Arabic, Noto Naskh Arabic
+and Noto Nastaliq Urdu. Noto Kufi Arabic is the one that is most similiar to a
+Sans style, so this one is used while both other variants are ignored. Arabic
+fonts are placed behind Sans fonts because they might re-define some commonly
+used signs like parenthesis or quotation marks, and the arabic design should
+not overwrite the standard design.
+
+3. Noto provides two variants of Emoji: Noto Color Emoji and Noto Emoji. The
+colour variant is a SVG flavoured OpenType font that contains coloured emojis.
+This is not useful in cartography, so we use the “normal” monochromatic
+Noto Emoji.
+
+4. The list still includes DejaVu for compatibility on systems without Noto.
+
+5. Unifont. This is a fallback of last resort with excellent coverage.
+Unifont Medium covers the whole Unicode BMP without surrogates and without PUA.
+Unifont Upper Medium covers some parts of the other Unicode planes. Unifont
+Medium Sample would cover the BMP PUA with replacement characters, but cannot
+be used because Mapnik does not support SBIT TTF.
+*/
+
+/*
+A regular style.
+*/
+@book-fonts:    "Noto Sans UI Regular",
+                "Noto Sans CJK JP Regular",
+                "Noto Sans Armenian Regular",
+                "Noto Sans Balinese Regular",
+                "Noto Sans Bamum Regular",
+                "Noto Sans Batak Regular",
+                "Noto Sans Bengali UI Regular",
+                "Noto Sans Buginese Regular",
+                "Noto Sans Buhid Regular",
+                "Noto Sans Canadian Aboriginal Regular",
+                "Noto Sans Cham Regular",
+                "Noto Sans Cherokee Regular",
+                "Noto Sans Coptic Regular",
+                "Noto Sans Devanagari UI Regular", "Noto Sans Devanagari 
Regular",
+                "Noto Sans Ethiopic Regular",
+                "Noto Sans Georgian Regular",
+                "Noto Sans Gujarati UI Regular", "Noto Sans Gujarati Regular",
+                "Noto Sans Gurmukhi UI Regular",
+                "Noto Sans Hanunoo Regular",
+                "Noto Sans Hebrew Regular",
+                "Noto Sans Javanese Regular",
+                "Noto Sans Kannada UI Regular",
+                "Noto Sans Kayah Li Regular",
+                "Noto Sans Khmer UI Regular",
+                "Noto Sans Lao UI Regular",
+                "Noto Sans Lepcha Regular",
+                "Noto Sans Limbu Regular",
+                "Noto Sans Lisu Regular",
+                "Noto Sans Malayalam UI Regular",
+                "Noto Sans Mandaic Regular",
+                "Noto Sans Mongolian Regular",
+                "Noto Sans Myanmar UI Regular",
+                "Noto Sans New Tai Lue Regular",
+                "Noto Sans NKo Regular",
+                "Noto Sans Ol Chiki Regular",
+                "Noto Sans Oriya UI Regular", "Noto Sans Oriya Regular",
+                "Noto Sans Osmanya Regular",
+                "Noto Sans Samaritan Regular",
+                "Noto Sans Saurashtra Regular",
+                "Noto Sans Shavian Regular",
+                "Noto Sans Sinhala Regular",
+                "Noto Sans Sundanese Regular",
+                "Noto Sans Symbols Regular",
+                "Noto Sans Syriac Eastern Regular",
+                "Noto Sans Syriac Estrangela Regular",
+                "Noto Sans Syriac Western Regular",
+                "Noto Sans Tagalog Regular",
+                "Noto Sans Tagbanwa Regular",
+                "Noto Sans Tai Le Regular",
+                "Noto Sans Tai Tham Regular",
+                "Noto Sans Tai Viet Regular",
+                "Noto Sans Tamil UI Regular",
+                "Noto Sans Telugu UI Regular",
+                "Noto Sans Thaana Regular",
+                "Noto Sans Thai UI Regular",
+                "Noto Sans Tibetan Regular",
+                "Noto Sans Tifinagh Regular",
+                "Noto Sans Vai Regular",
+                "Noto Sans Yi Regular",
+
+                "Noto Kufi Arabic Regular",
+
+                "Noto Emoji Regular",
+
+                "DejaVu Sans Book",
+
+                "Unifont Medium", "unifont Medium", "Unifont Upper Medium";
+
+/*
+A bold style is available for almost all scripts. Bold text is heavier than
+regular text and can be used for emphasis. Fallback is a regular style.
+*/
+@bold-fonts:    "Noto Sans UI Bold",
+                "Noto Sans CJK JP Bold",
+                "Noto Sans Armenian Bold",
+                "Noto Sans Bengali UI Bold",
+                "Noto Sans Cham Bold",
+                "Noto Sans Devanagari UI Bold", "Noto Sans Devanagari Bold",
+                "Noto Sans Ethiopic Bold",
+                "Noto Sans Georgian Bold",
+                "Noto Sans Gujarati UI Bold", "Noto Sans Gujarati Bold",
+                "Noto Sans Gurmukhi UI Bold",
+                "Noto Sans Hebrew Bold",
+                "Noto Sans Kannada UI Bold",
+                "Noto Sans Khmer UI Bold",
+                "Noto Sans Lao UI Bold",
+                "Noto Sans Malayalam UI Bold",
+                "Noto Sans Myanmar UI Bold",
+                "Noto Sans Oriya UI Bold", "Noto Sans Oriya Bold",
+                "Noto Sans Sinhala Bold",
+                "Noto Sans Tamil UI Bold",
+                "Noto Sans Telugu UI Bold",
+                "Noto Sans Thaana Bold",
+                "Noto Sans Thai UI Bold",
+                "Noto Sans Tibetan Bold",
+
+                "Noto Sans CJK JP Regular",
+                "Noto Sans Balinese Regular",
+                "Noto Sans Bamum Regular",
+                "Noto Sans Batak Regular",
+                "Noto Sans Buginese Regular",
+                "Noto Sans Buhid Regular",
+                "Noto Sans Canadian Aboriginal Regular",
+                "Noto Sans Cherokee Regular",
+                "Noto Sans Coptic Regular",
+                "Noto Sans Devanagari UI Regular", "Noto Sans Devanagari 
Regular",
+                "Noto Sans Georgian Regular",
+                "Noto Sans Gujarati UI Regular", "Noto Sans Gujarati Regular",
+                "Noto Sans Hanunoo Regular",
+                "Noto Sans Javanese Regular",
+                "Noto Sans Kayah Li Regular",
+                "Noto Sans Lepcha Regular",
+                "Noto Sans Limbu Regular",
+                "Noto Sans Lisu Regular",
+                "Noto Sans Mandaic Regular",
+                "Noto Sans Mongolian Regular",
+                "Noto Sans New Tai Lue Regular",
+                "Noto Sans NKo Regular",
+                "Noto Sans Ol Chiki Regular",
+                "Noto Sans Osmanya Regular",
+                "Noto Sans Samaritan Regular",
+                "Noto Sans Saurashtra Regular",
+                "Noto Sans Shavian Regular",
+                "Noto Sans Sundanese Regular",
+                "Noto Sans Symbols Regular",
+                "Noto Sans Syriac Eastern Regular",
+                "Noto Sans Syriac Estrangela Regular",
+                "Noto Sans Syriac Western Regular",
+                "Noto Sans Tagalog Regular",
+                "Noto Sans Tagbanwa Regular",
+                "Noto Sans Tai Le Regular",
+                "Noto Sans Tai Tham Regular",
+                "Noto Sans Tai Viet Regular",
+                "Noto Sans Tifinagh Regular",
+                "Noto Sans Vai Regular",
+                "Noto Sans Yi Regular",
+
+                "Noto Kufi Arabic Bold",
+
+                "Noto Kufi Arabic Regular",
+
+                "Noto Emoji Regular",
+
+                "DejaVu Sans Bold", "DejaVu Sans Book",
+
+                "Unifont Medium", "unifont Medium", "Unifont Upper Medium";
+
+/*
+Italics are only available for the base font, not the other scripts.
+For a considerable number of labels this style will make no difference to the 
regular style.
+*/
+@oblique-fonts: "Noto Sans UI Italic",
+                "Noto Sans UI Regular",
+                "Noto Sans CJK JP Regular",
+                "Noto Sans Armenian Regular",
+                "Noto Sans Balinese Regular",
+                "Noto Sans Bamum Regular",
+                "Noto Sans Batak Regular",
+                "Noto Sans Bengali UI Regular",
+                "Noto Sans Buginese Regular",
+                "Noto Sans Buhid Regular",
+                "Noto Sans Canadian Aboriginal Regular",
+                "Noto Sans Cham Regular",
+                "Noto Sans Cherokee Regular",
+                "Noto Sans Coptic Regular",
+                "Noto Sans Devanagari UI Regular", "Noto Sans Devanagari 
Regular",
+                "Noto Sans Ethiopic Regular",
+                "Noto Sans Georgian Regular",
+                "Noto Sans Gujarati UI Regular", "Noto Sans Gujarati Regular",
+                "Noto Sans Gurmukhi UI Regular",
+                "Noto Sans Hanunoo Regular",
+                "Noto Sans Hebrew Regular",
+                "Noto Sans Javanese Regular",
+                "Noto Sans Kannada UI Regular",
+                "Noto Sans Kayah Li Regular",
+                "Noto Sans Khmer UI Regular",
+                "Noto Sans Lao UI Regular",
+                "Noto Sans Lepcha Regular",
+                "Noto Sans Limbu Regular",
+                "Noto Sans Lisu Regular",
+                "Noto Sans Malayalam UI Regular",
+                "Noto Sans Mandaic Regular",
+                "Noto Sans Mongolian Regular",
+                "Noto Sans Myanmar UI Regular",
+                "Noto Sans New Tai Lue Regular",
+                "Noto Sans NKo Regular",
+                "Noto Sans Ol Chiki Regular",
+                "Noto Sans Oriya UI Regular", "Noto Sans Oriya Regular",
+                "Noto Sans Osmanya Regular",
+                "Noto Sans Samaritan Regular",
+                "Noto Sans Saurashtra Regular",
+                "Noto Sans Shavian Regular",
+                "Noto Sans Sinhala Regular",
+                "Noto Sans Sundanese Regular",
+                "Noto Sans Symbols Regular",
+                "Noto Sans Syriac Eastern Regular",
+                "Noto Sans Syriac Estrangela Regular",
+                "Noto Sans Syriac Western Regular",
+                "Noto Sans Tagalog Regular",
+                "Noto Sans Tagbanwa Regular",
+                "Noto Sans Tai Le Regular",
+                "Noto Sans Tai Tham Regular",
+                "Noto Sans Tai Viet Regular",
+                "Noto Sans Tamil UI Regular",
+                "Noto Sans Telugu UI Regular",
+                "Noto Sans Thaana Regular",
+                "Noto Sans Thai UI Regular",
+                "Noto Sans Tibetan Regular",
+                "Noto Sans Tifinagh Regular",
+                "Noto Sans Vai Regular",
+                "Noto Sans Yi Regular",
+
+                "Noto Kufi Arabic Regular",
+
+                "Noto Emoji Regular",
+
+                "DejaVu Sans Oblique", "DejaVu Sans Book",
+
+                "Unifont Medium", "unifont Medium", "Unifont Upper Medium";
 
 @water-color: #b5d0d0;
 @land-color: #f2efe9;
diff --git a/symbols/art-14.svg b/symbols/art-14.svg
new file mode 100644
index 0000000..310a13a
--- /dev/null
+++ b/symbols/art-14.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   id="svg2"
+   viewBox="0 0 14 14"
+   version="1.0"
+   width="14"
+   height="14">
+  <defs
+     id="defs58" />
+  <metadata
+     id="metadata54">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/";>
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction"; />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution"; />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks"; />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <path
+     d="M 7,-9.9999999e-8 C 3.134444,-9.9999999e-8 0,3.1344439 0,7 c 
0,3.865556 3.134444,7 7,7 0.645556,0 1.1660156,-0.520461 1.1660156,-1.166016 
0,-0.303333 -0.1121788,-0.577093 -0.3027344,-0.783203 -0.1827769,-0.206111 
-0.2910156,-0.473992 -0.2910156,-0.773437 0,-0.645556 0.5204596,-1.166016 
1.1660156,-1.166016 l 1.3730468,0 C 12.257994,10.111328 14,8.369323 14,6.222656 
c 0,-3.4377778 -3.134445,-6.2226561 -7,-6.2226561 z M 8.9335938,1.3046874 A 
1.3891786,1.3891786 0 0 1 10.322266,2.693 [...]
+     id="path4" />
+</svg>
diff --git a/symbols/deli-14.svg b/symbols/deli-14.svg
new file mode 100644
index 0000000..467b036
--- /dev/null
+++ b/symbols/deli-14.svg
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   height="14"
+   width="14"
+   version="1.0"
+   viewBox="0 0 14 14"
+   id="svg2">
+  <defs
+     id="defs58" />
+  <metadata
+     id="metadata54">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/";>
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction"; />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution"; />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks"; />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+  <path
+     d="M 5.9999999,0 8,0 c 2,0 3,0 3,1.0000001 l 0,1 -8.0000003,0 0,-1 C 
2.9999997,-4.0395351e-8 3.9999998,0 5.9999999,0 Z M 4,3 c -10e-8,1.9999997 
-1.5124998,1.0000396 -1.5,3 l 0.03125,5 C 2.5374999,11.999981 3.0000004,14 5,14 
l 4,0 c 2,0 2.5,-2 2.5,-3 l 0,-5 C 11.5,4.0000006 10,4.9999997 10,3 L 4,3 Z m 
3,4 c 1.0424134,0 3.126953,0.6074219 3.126953,0.6074219 l 0,1.3925781 
0,1.392578 C 10.126953,10.392578 8.0424135,11 7,11 5.9575867,11 
3.8730469,10.392578 3.8730469,10.392578 l 0,-1.3925 [...]
+     
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
+     id="path4173" />
+</svg>
diff --git a/symbols/place/place-4-z7.svg b/symbols/place/place-4-z7.svg
new file mode 100644
index 0000000..4130e8d
--- /dev/null
+++ b/symbols/place/place-4-z7.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   version="1.1"
+   width="4"
+   height="4"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <path
+     
style="fill:#fdfdfc;fill-opacity:1;stroke:#424236;stroke-width:0.49999997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     id="path2987"
+     d="m 3.7500001,2.000001 a 1.7500001,1.7500007 0 0 1 -3.50000009,0 
1.7500001,1.7500007 0 1 1 3.50000009,0 z" />
+</svg>
diff --git a/symbols/place/place-4.svg b/symbols/place/place-4.svg
new file mode 100644
index 0000000..1150401
--- /dev/null
+++ b/symbols/place/place-4.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   version="1.1"
+   width="4"
+   height="4"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <path
+     
style="fill:#fdfdfc;fill-opacity:1;stroke:#575749;stroke-width:0.49999997;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     id="path2987"
+     d="m 3.7500001,2.000001 a 1.7500001,1.7500007 0 0 1 -3.50000009,0 
1.7500001,1.7500007 0 1 1 3.50000009,0 z" />
+</svg>
diff --git a/symbols/place/place-6-z7.svg b/symbols/place/place-6-z7.svg
new file mode 100644
index 0000000..c4fe4ef
--- /dev/null
+++ b/symbols/place/place-6-z7.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   id="svg2"
+   height="6"
+   width="6"
+   version="1.1">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <path
+     d="M 5.6,3 A 2.6,2.6000012 0 0 1 0.39999998,3 2.6,2.6000012 0 1 1 5.6,3 Z"
+     id="path2987"
+     
style="fill:#f9f9f7;fill-opacity:1;stroke:#6f6f5b;stroke-width:0.79999995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 />
+</svg>
diff --git a/symbols/place/place-6.svg b/symbols/place/place-6.svg
new file mode 100644
index 0000000..e0abe6d
--- /dev/null
+++ b/symbols/place/place-6.svg
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   version="1.1"
+   width="6"
+   height="6"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <path
+     
style="fill:#f9f9f7;fill-opacity:1;stroke:#7e7e6a;stroke-width:0.79999995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     id="path2987"
+     d="M 5.6,3 A 2.6,2.6000012 0 0 1 0.39999998,3 2.6,2.6000012 0 1 1 5.6,3 
Z" />
+</svg>
diff --git a/symbols/place/place-capital-6.svg 
b/symbols/place/place-capital-6.svg
new file mode 100644
index 0000000..645aeb5
--- /dev/null
+++ b/symbols/place/place-capital-6.svg
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   version="1.1"
+   width="6"
+   height="6"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <path
+     
style="fill:#fdfdfc;fill-opacity:1;stroke:#575749;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+     id="path2987"
+     d="m 5.5,3.000081 a 2.5,2.5 0 0 1 -5.00000001,0 2.5,2.5 0 1 1 
5.00000001,0 z" />
+  <path
+     d="M 4,3 A 1,1 0 0 1 2,3 1,1 0 1 1 4,3 z"
+     id="path2986"
+     style="fill:#575749;fill-opacity:1;stroke:none" />
+</svg>
diff --git a/symbols/place/place-capital-8.svg 
b/symbols/place/place-capital-8.svg
new file mode 100644
index 0000000..e385e1a
--- /dev/null
+++ b/symbols/place/place-capital-8.svg
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   version="1.1"
+   width="8"
+   height="8"
+   id="svg2">
+  <defs
+     id="defs4" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     transform="matrix(1.5057013,0,0,1.5010517,-0.0107513,-1571.7666)"
+     id="layer1">
+    <path
+       d="m 4.9210516,1049.7756 a 2.2573419,2.2657569 0 0 1 -4.5146837,0 
2.2573419,2.2657569 0 1 1 4.5146837,0 z"
+       id="path2987"
+       
style="fill:#fdfdfc;fill-opacity:1;stroke:#525244;stroke-width:0.79820418;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
 />
+  </g>
+  <path
+     d="m 5.5,4 a 1.5,1.5 0 0 1 -3,0 1.5,1.5 0 1 1 3,0 z"
+     id="path2986"
+     style="fill:#525244;fill-opacity:1;stroke:none" />
+</svg>
diff --git a/symbols/tea-14.svg b/symbols/tea-14.svg
new file mode 100644
index 0000000..d638541
--- /dev/null
+++ b/symbols/tea-14.svg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   id="svg5114"
+   viewBox="0 0 14 14"
+   version="1.1"
+   width="14"
+   height="14">
+  <defs
+     id="defs14" />
+  <g
+     id="layer1"
+     transform="translate(-85.520606,-485.84148)">
+    <g
+       id="g4172"
+       transform="translate(0.0112773,-2.31883)">
+      <path
+         id="path4153"
+         transform="translate(85.509329,488.16031)"
+         d="M 6.8320312 1.8984375 A 1.2055479 0.94874388 0 0 0 5.6269531 
2.8476562 A 1.2055479 0.94874388 0 0 0 6.4667969 3.7519531 C 5.0890082 
3.8629576 3.899133 4.5711593 3.2011719 5.6171875 C 3.1871345 5.6109021 
3.1742264 5.5975228 3.1601562 5.5917969 C 2.5113592 5.3277569 1.5381441 
5.1952256 0.90820312 5.6035156 C 0.29481313 6.0010956 0.037033125 6.7123894 
0.001953125 7.5996094 C -0.069296875 9.4025694 1.2820813 9.7638625 2.6289062 
9.9453125 C 2.7380092 9.9600108 2.8456065 9.9520394  [...]
+         
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:5;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
 />
+    </g>
+  </g>
+  <metadata
+     id="metadata12">
+    <rdf:RDF>
+      <cc:Work>
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <cc:license
+           rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/"; />
+        <dc:publisher>
+          <cc:Agent
+             rdf:about="http://openclipart.org/";>
+            <dc:title />
+          </cc:Agent>
+        </dc:publisher>
+        <dc:title></dc:title>
+        <dc:date />
+        <dc:description />
+        <dc:source />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Jotam</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <dc:subject>
+          <rdf:Bag />
+        </dc:subject>
+      </cc:Work>
+      <cc:License
+         rdf:about="http://creativecommons.org/publicdomain/zero/1.0/";>
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Reproduction"; />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#Distribution"; />
+        <cc:permits
+           rdf:resource="http://creativecommons.org/ns#DerivativeWorks"; />
+      </cc:License>
+    </rdf:RDF>
+  </metadata>
+</svg>
diff --git a/symbols/tobacco-14.svg b/symbols/tobacco-14.svg
new file mode 100644
index 0000000..72454af
--- /dev/null
+++ b/symbols/tobacco-14.svg
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   version="1.1"
+   id="svg2"
+   x="0px"
+   y="0px"
+   width="14"
+   height="14"
+   viewBox="0 0 14 14"
+   enable-background="new 0 0 580 580"
+   xml:space="preserve"><metadata
+     id="metadata13"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; 
/><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs11" /><path
+     d="m 2,11 1,0 0,3 -1,0 z M 1,10 C 1.6666667,9 3,8 3,7 3,6 0,5 0,3 0,1 2,1 
4,0 3.6666667,1.3333333 2,2 2,3 3,4 5,5 5,7 5,9 4,9 1,10 Z m -1,1 1,0 0,3 -1,0 
z m 14,3 -10,0 0,-3 10,0 z"
+     
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-opacity:1"
+     id="path3357-4" /></svg>
\ No newline at end of file
diff --git a/water.mss b/water.mss
index 918ba1d..f4f2d6c 100644
--- a/water.mss
+++ b/water.mss
@@ -2,6 +2,13 @@
 @glacier: #ddecec;
 @glacier-line: #9cf;
 
+@water-font-size: 10;
+@water-font-size-big: 12;
+@water-font-size-bigger: 15;
+@water-wrap-width-size: 25;
+@water-wrap-width-size-big: 35;
+@water-wrap-width-size-bigger: 45;
+
 #water-areas {
   [natural = 'glacier']::natural {
     [zoom >= 6] {
@@ -285,12 +292,20 @@
     [zoom >= 10][way_pixels > 3000],
     [zoom >= 17] {
       text-name: "[name]";
-      text-size: 12;
+      text-size: @water-font-size;
+      text-wrap-width: @water-wrap-width-size;
+      [way_pixels > 12000] {
+        text-size: @water-font-size-big;
+        text-wrap-width: @water-wrap-width-size-big;
+      }
+      [way_pixels > 48000] {
+        text-size: @water-font-size-bigger;
+        text-wrap-width: @water-wrap-width-size-bigger;
+      }
       text-fill: @water-text;
       text-face-name: @oblique-fonts;
       text-halo-radius: @standard-halo-radius;
       text-halo-fill: @standard-halo-fill;
-      text-wrap-width: @standard-wrap-width;
       text-placement: interior;
     }
   }

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-grass/openstreetmap-carto.git

_______________________________________________
Pkg-grass-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel

Reply via email to