diff --git a/railway-gauge.json b/railway-gauge.json
index e20de61..4771b27 100644
--- a/railway-gauge.json
+++ b/railway-gauge.json
@@ -8,7 +8,10 @@
         "14": "way[railway~'^(disused|construction|funicular|light_rail|miniature|monorail|narrow_gauge|preserved|rail|subway|tram)$'];"
     },
     "feature": {
-        "pre": "{% set gauges = tags.gauge|split(';') %}",
+        "pre": [
+            "{% set gauges = tags.gauge|split(';')|sort|reverse %}",
+            "{% set width = max(3, 3 / map.metersPerPixel) %}"
+        ],
         "title": "{% if tags.ref %}{{ localizedTag(tags, 'ref') }} - {% endif %}{{ localizedTag(tags, 'name')|default(localizedTag(tags, 'operator'))|default(trans('unnamed')) }}",
         "description": "{{ tags.gauge|default(trans('unknown'))|enumerate }}",
         "body": [
@@ -21,37 +24,67 @@
         ],
         "markerSymbol": null,
         "listMarkerSymbol": "line",
-        "styles": "{% if gauges|length < 2 %}default{% else %}{% for i, v in gauges %}{% if i != 0 %},{% endif %}gauge{{ i }}{% endfor %}{% endif %}",
+        "styles": "{% if gauges|length < 2 %}default{% else %}{% for i, v in gauges %}{% if i != 0 %},{% endif %}gauge{{ i }}{% endfor %}{% endif %}{% if gauges|length > 0 and map.zoom >= 18 %},rail{% for i, v in gauges %},rail{{ i }}{% endfor %}{% endif %}",
         "style": {
-            "width": "3",
+            "width": "{{ width }}",
+            "pane": "casing",
             "color": "{% if tags.gauge %}{% if not tags.gauge|matches('^\\d+$') %}#ff0000{% else %}{{ colorInterpolate([ '#00ff00', '#0000ff' ], tags.gauge / 2000) }}{% endif %}{% else %}#404040{% endif %}"
         },
+        "style:rail": {
+            "width": "1",
+            "color": "#ffffff",
+            "offset": "{{ gauges[0] / -2000 }}m"
+        },
         "style:gauge0": {
-            "width": "3",
+            "width": "{{ width }}",
+            "pane": "casing",
             "lineCap": "butt",
             "color": "{% if not gauges[0]|matches('^[0-9]+$') %}#ff0000{% else %}{{ colorInterpolate([ '#00ff00', '#0000ff' ], gauges[0] / 2000) }}{% endif %}",
             "dashArray": "5,{{ (gauges|length - 1) * 5 }}"
         },
+        "style:rail0": {
+            "width": "1",
+            "color": "#ffffff",
+            "offset": "{{ gauges[0] / 2000 }}m"
+        },
         "style:gauge1": {
-            "width": "3",
+            "width": "{{ width }}",
+            "pane": "casing",
             "lineCap": "butt",
             "color": "{% if not gauges[1]|matches('^[0-9]+$') %}#ff0000{% else %}{{ colorInterpolate([ '#00ff00', '#0000ff' ], gauges[1] / 2000) }}{% endif %}",
             "dashArray": "5,{{ (gauges|length - 1) * 5 }}",
             "dashOffset": "5"
         },
+        "style:rail1": {
+            "width": "1",
+            "color": "#ffffff",
+            "offset": "{{ gauges[0] / -2000 + gauges[1] / 1000 }}m"
+        },
         "style:gauge2": {
-            "width": "3",
+            "width": "{{ width }}",
+            "pane": "casing",
             "lineCap": "butt",
             "color": "{% if not gauges[2]|matches('^\\d+$') %}#ff0000{% else %}{{ colorInterpolate([ '#00ff00', '#0000ff' ], gauges[2] / 2000) }}{% endif %}",
             "dashArray": "5,{{ (gauges|length - 1) * 5 }}",
             "dashOffset": "10"
         },
+        "style:rail2": {
+            "width": "1",
+            "color": "#ffffff",
+            "offset": "{{ gauges[0] / -2000 + gauges[2] / 1000 }}m"
+        },
         "style:gauge3": {
-            "width": "3",
+            "width": "{{ width }}",
+            "pane": "casing",
             "lineCap": "butt",
             "color": "{% if not gauges[3]|matches('^\\d+$') %}#ff0000{% else %}{{ colorInterpolate([ '#00ff00', '#0000ff' ], gauges[3] / 2000) }}{% endif %}",
             "dashArray": "5,{{ (gauges|length - 1) * 5 }}",
             "dashOffset": "15"
+        },
+        "style:rail3": {
+            "width": "1",
+            "color": "#ffffff",
+            "offset": "{{ gauges[0] / -2000 + gauges[3] / 1000 }}m"
         }
     },
     "info": [