]> git.0d.be Git - hdm-toner-cartocss.git/blob - roads.mss
92c87eb07e84803fad6057f5b12d216b1b33087a
[hdm-toner-cartocss.git] / roads.mss
1 /* ROADS.MSS CONTENTS
2  * - Road & rail lines
3  * - Ferries
4  * - Aeroways
5  * - Railway
6  */
7
8 /* ==================================================================
9    ROAD & RAIL LINES
10 /* ================================================================== */
11
12 /* At lower zoomlevels, just show major automobile routes: motorways
13 and trunks. */
14
15 #roads_low[zoom>=5][zoom<=8] {
16   [type='motorway'] { line-color: @motorway_line; }
17   [type='trunk'] { line-color: @motorway_line; }
18   [zoom=5] {
19     [type='motorway'] { line-width: 0.4; }
20     [type='trunk'] { line-width: 0.2; } }
21   [zoom=6] {
22     [type='motorway'] { line-width: 0.5; }
23     [type='trunk'] { line-width: 0.25; } }
24   [zoom=7] {
25     [type='motorway'] { line-width: 0.6; }
26     [type='trunk'] { line-width: 0.3; } }
27   [zoom=8] {
28     [type='motorway'] { line-width: 1; }
29     [type='trunk'] { line-width: 0.5; } }
30 }
31
32 /* At mid-level scales start to show primary and secondary routes
33 as well. */
34
35 #roads_med[zoom>=9][zoom<=10] {
36   [type='motorway'],
37   [type='motorway_link'] {
38     line-color: @motorway_line;
39   }
40   [type='trunk'],
41   [type='trunk_link'] {
42     line-color: @motorway_line;
43   }
44   [type='primary'] { line-color: @primary_line; }
45   [type='secondary'] { line-color: @secondary_line; }
46   [type='tertiary'] { line-color: @standard_line; }
47   [zoom=9] {
48     [type='motorway'],[type='trunk'] { line-width: 1.4; }
49     [type='primary'],[type='secondary'],
50     [type='motorway_link'],[type='trunk_link'] { line-width: 0.6; }
51   }
52   [zoom=10] {
53     [type='motorway'],[type='trunk'] { line-width: 1.8; }
54     [type='primary'],[type='secondary'],
55     [type='motorway_link'],[type='trunk_link'] { line-width: 0.8; }
56   }
57 }
58
59 /* Road width variables that are used in road & bridge styles */
60 @r11_motorway: 3;   @r11_main: 3;   @r11_inter: 1.5;  @r11_minor: 0;   @r11_narrow: 0;   @r11_noauto: 0;
61 @r12_motorway: 4;   @r12_main: 3.5; @r12_inter: 2;    @r12_minor: 0;   @r12_narrow: 0;   @r12_noauto: 0;
62 @r13_motorway: 5;   @r13_main: 4.5; @r13_inter: 3.5;  @r13_minor: 2.5; @r13_narrow: 1.5; @r13_noauto: 0;
63 @r14_motorway: 5;   @r14_main: 4.5; @r14_inter: 3.5;  @r14_minor: 2;   @r14_narrow: 2;   @r14_noauto: 1.2;
64 @r15_motorway: 6;   @r15_main: 5;   @r15_inter: 4;    @r15_minor: 3;   @r15_narrow: 2.5; @r15_noauto: 1.5;
65 @r16_motorway: 8;   @r16_main: 8;   @r16_inter: 6;    @r16_minor: 4;   @r16_narrow: 1.7;   @r16_noauto: 1.7;
66 @r17_motorway: 10;  @r17_main: 10;  @r17_inter: 8;    @r17_minor: 6;   @r17_narrow: 2;   @r17_noauto: 2;
67 @r18_motorway: 16;  @r18_main: 14;  @r18_inter: 12;   @r18_minor: 8;   @r18_narrow: 3;   @r18_noauto: 3;
68
69 @c11_motorway: 1;   @c11_main: 1;   @c11_inter: 0;    @c11_minor: 0;   @c11_narrow: 0;   @c11_noauto: 0;
70 @c12_motorway: 1.5; @c12_main: 1.5; @c12_inter: 1;    @c12_minor: 0;   @c12_narrow: 0;   @c12_noauto: 0;
71 @c13_motorway: 2;   @c13_main: 2;   @c13_inter: 1;    @c13_minor: 1;   @c13_narrow: 0.2; @c13_noauto: 0;
72 @c14_motorway: 2;   @c14_main: 2;   @c14_inter: 1;    @c14_minor: 1;   @c14_narrow: 0.2; @c14_noauto: 1;
73 @c15_motorway: 2.5; @c15_main: 2;   @c15_inter: 2;    @c15_minor: 1.5; @c15_narrow: 0.2; @c15_noauto: 2;
74 @c16_motorway: 2.5; @c16_main: 2;   @c16_inter: 1.5;  @c16_minor: 1.5; @c16_narrow: 1;   @c16_noauto: 2;
75 @c17_motorway: 3;   @c17_main: 2;   @c17_inter: 2;    @c17_minor: 2;   @c17_narrow: 1;   @c17_noauto: 3;
76 @c18_motorway: 4;   @c18_main: 3;   @c18_inter: 3;    @c18_minor: 3;   @c18_narrow: 2;   @c18_noauto: 4;
77
78
79 /* ---- Casing ----------------------------------------------- */
80
81 #roads_high::minor[style='standard'][zoom>=13][zoom<=20],
82 #roads_high::minor[style='urban'][surface='paved'][zoom>=13][zoom<=20],
83 #roads_high::minor[style='urban'][surface='unpaved'][zoom>=15][zoom<=20],
84 #roads_high::minor[style='track'][zoom>=11][zoom<=20],
85 #roads_high::casing[surface='unpaved'][zoom>=11][zoom<=20] {
86   /* -- colors & styles -- */
87   line-cap: butt;
88   line-join: round;
89   line-color: @unpaved_case;
90   [structure='bridge'] { line-color: darken(@unpaved_case, 20%); }
91   [style="track"] {
92     line-color: @track_case;
93     [structure='bridge'] { line-color: darken(@track_case, 20%); }
94   }
95   [style='noauto'] {
96     line-color: @pedestrian_case;
97     line-comp-op: darken;
98     [structure='bridge'] { line-color: darken(@pedestrian_case, 10%); }
99   }
100
101   /* -- widths -- */
102   [zoom=11] {
103     line-width: 0;
104     [style='motorway'] { line-width: @r11_motorway; }
105     [style='primary'], [style='secondary'] { line-width: @r11_main; }
106   }
107   [zoom=12] {
108     line-width: 0;
109     [style='motorway'] { line-width: @r12_motorway; }
110     [style='primary'], [style='secondary'] { line-width: @r12_main; }
111     [style='tertiary'] { line-width: @r12_inter; }
112   }
113   [zoom=13] {
114     line-width: 0;
115     [style='motorway'] { line-width: @r13_motorway; }
116     [style='primary'], [style='secondary'] { line-width: @r13_main; }
117     [style='tertiary'] { line-width: @r13_inter; }
118     [style='standard'] { line-width: @r13_minor; }
119     [style='track']{ line-width: @r13_narrow; }
120   }
121   [zoom=14] {
122     [style='motorway'] { line-width: @r14_motorway; }
123     [style='primary'], [style='secondary'] { line-width: @r14_main; }
124     [style='tertiary'] { line-width: @r14_inter; }
125     [style='standard'], [style='urban'][surface='paved'] { line-width: @r14_minor; }
126     [style='track']{ line-width: @r14_narrow; }
127     [style='noauto']   { line-width: @r14_noauto; }
128   }
129   [zoom=15] {
130     [style='motorway'] { line-width: @r15_motorway; }
131     [style='primary'], [style='secondary'] { line-width: @r15_main; }
132     [style='tertiary'] { line-width: @r15_inter; }
133     [style='standard'], [style='urban'] { line-width: @r15_minor; }
134     [style='track'] { line-width: @r15_narrow; }
135     [style='noauto'] { line-width: @r15_noauto; }
136   }
137   [zoom=16] {
138     [style='motorway'] { line-width: @r16_motorway; }
139     [style='primary'], [style='secondary'] { line-width: @r16_main; }
140     [style='tertiary'] { line-width: @r16_inter; }
141     [style='standard'] { line-width: @r16_minor; }
142     [style='urban'] { line-width: @r16_minor; }
143     [style='track']{ line-width: @r16_narrow; }
144     [style='noauto']   { line-width: @r16_noauto; }
145   }
146   [zoom>=17] {
147     [style='standard'] { line-width: @r17_minor; }
148     [style='motorway'] { line-width: @r17_motorway; }
149     [style='primary'], [style='secondary'] { line-width: @r17_main; }
150     [style='tertiary'] { line-width: @r17_inter; }
151     [style='urban']{ line-width: @r17_minor; }
152     [style='track']{ line-width: @r17_narrow; }
153     [style='noauto']   { line-width: @r17_noauto; }
154   }
155   [zoom>=18] {
156     [style='motorway'] { line-width: @r18_motorway; }
157     [style='primary'], [style='secondary'] { line-width: @r18_main; }
158     [style='tertiary'] { line-width: @r18_inter; }
159     [style='standard']{ line-width: @r18_minor; }
160     [style='urban']{ line-width: @r18_minor; }
161     [style='track']{ line-width: @r18_narrow; }
162     [style='noauto']   { line-width: @r18_noauto; }
163   }
164 }
165
166
167 #roads_high[zoom>=11][zoom<=20] {
168   /* -- colors & styles -- */
169   [zoom>=15][structure='bridge'] {
170     bridge/line-cap: butt;
171   }
172   [zoom>=11] {
173     line-cap: round;
174     line-join: round;
175     line-color: @paved;  // Default.
176   }
177   [style='motorway'] {
178     [zoom>=15][structure='bridge'] { bridge/line-color: darken(@motorway_case, 10%); }
179     [zoom>=11] {
180       line-color: @motorway_fill;
181       [structure='tunnel'] { line-color: lighten(@motorway_fill, 10%); }
182     }
183   }
184   [style='primary'] {
185     [zoom>=15][structure='bridge'] { bridge/line-color: darken(@primary_case, 10%); }
186     [zoom>=11] {
187       line-color: @primary_fill;
188       [structure='tunnel'] { line-color: lighten(@primary_fill, 10%); }
189     }
190   }
191   [style='secondary'] {
192     [zoom>=15][structure='bridge'] { bridge/line-color: darken(@secondary_case, 10%); }
193     [zoom>=11] {
194       line-color: @secondary_fill;
195       [structure='tunnel'] { line-color: lighten(@secondary_fill, 10%); }
196     }
197   }
198   [style='tertiary'] {
199     [zoom>=15][structure='bridge'] { bridge/line-color: darken(@tertiary_case, 10%); }
200     [zoom>=11] {
201       line-color: @tertiary_fill;
202       [structure='tunnel'] { line-color: lighten(@secondary_fill, 10%); }
203     }
204   }
205   [style='standard'] {
206     [zoom>=15][structure='bridge'] { bridge/line-color: darken(@standard_case, 15%); }
207     [zoom>=11] {
208       line-color: @standard_fill;
209     }
210   }
211   [style="urban"] {
212     [zoom>=15][structure='bridge'] { bridge/line-color: darken(@urban_case, 15%); }
213     [zoom>=11][surface='unpaved'] {
214       line-color: @unpaved_case;
215     }
216     [zoom>=11][surface='paved'],
217     [zoom>=15][surface='unpaved'] {
218       line-color: @urban_fill;
219     }
220   }
221   [zoom>=11][surface='unpaved'] {
222     line-color: @unpaved;
223   }
224   [style="track"] {
225     [zoom>=15][structure='bridge'] { bridge/line-color: darken(@track_case, 10%); }
226     [zoom>=11] {
227       line-color: @track_fill;
228       line-dasharray: 4,2;
229       line-cap: butt;
230       line-join: round;
231     }
232     [zoom>=16] {line-dasharray: 8,2;}
233     [zoom>=18] {line-dasharray: 10,2;}
234   }
235   [structure='ford'] {
236     line-dasharray: 8,2;
237     line-cap: butt;
238     line-color: darken(@water, 10%);
239   }
240   [style='noauto'] {
241     [zoom>=15][structure='bridge'] { bridge/line-color: darken(@pedestrian_case, 15%); }
242     [zoom>=11] {
243       line-color: @pedestrian_fill;
244       line-cap: round;
245       line-width: 0.4;
246     }
247   }
248   [zoom>=11][condition='bad'][style!='noauto'] {
249     line-dasharray: 5,0.5;
250     line-cap: butt;
251   }
252   [zoom>=11][construction!=null] {
253     line-dasharray: 10,10;
254     line-cap: butt;
255     line-width: 0;
256   }
257   /* -- widths -- */
258   [zoom=11] {
259     [style='urban'], [style='standard'] { line-width: @r11_minor; }
260     [style='motorway'] {
261       line-width: @r11_motorway;
262       [surface='unpaved'] {line-width: @r11_motorway - @c11_motorway;}
263     }
264     [style='primary'], [style='secondary'] {
265       line-width: @r11_main;
266       [surface='unpaved'] {line-width: @r11_main - @c11_main;}
267     }
268     [style='tertiary'] { line-width: @r11_inter; }
269     [style='urban']{ line-width: @r11_minor; }
270     [style='track']{ line-width: @r11_narrow; }
271     [style='noauto']   { line-width: 0; }
272     [construction!=null] { line-width: 0; }
273   }
274   [zoom=12] {
275     [style='urban'], [style='standard'] { line-width: @r12_minor; }
276     [style='motorway'] {
277       line-width: @r12_motorway;
278       [surface='unpaved'] {line-width: @r12_motorway - @c12_motorway;}
279     }
280     [style='primary'],
281     [style='secondary'] {
282       line-width: @r12_main;
283       [surface='unpaved'] {line-width: @r12_main - @c12_main;}
284     }
285     [style='tertiary'] { line-width: @r12_inter;}
286     [style='urban']{ line-width: @r12_minor; }
287     [style='track']{ line-width: @r12_narrow; }
288     [style='noauto']   { line-width: @r12_noauto; }
289     [construction!=null] { line-width: 0; }
290   }
291   [zoom=13] {
292     [style='standard'] { line-width: @r13_minor - @c13_minor; }
293     [style='urban'] {
294       line-width: @r13_minor - @c13_minor;
295       [surface='unpaved'] {line-width: 0.5;}
296     }
297     [style='motorway'] {
298       line-width: @r13_motorway;
299       [surface='unpaved'] {line-width: @r13_motorway - @c13_motorway;}
300     }
301     [style='primary'], [style='secondary'] {
302       line-width: @r13_main;
303       [surface='unpaved'] {line-width: @r13_main - @c13_main;}
304     }
305     [style='tertiary'] {
306       line-width: @r13_inter;
307       [surface='unpaved'] {line-width: @r13_inter - @c13_inter;}
308     }
309     [style='track']{line-width: @r13_narrow; }
310     [style='noauto']   { line-width: @r13_noauto; }
311     [construction!=null] { line-width: 0; }
312   }
313   [zoom=14] {
314     [style='standard'] { line-width: @r14_minor - @c14_minor; }
315     [style='urban'] {
316       line-width: @r14_minor - @c14_minor;
317       [surface='unpaved'] {line-width: 0.8;}
318     }
319     [style='motorway'] {
320       line-width: @r14_motorway;
321       [surface='unpaved'] {line-width: @r14_motorway - @c14_motorway;}
322     }
323     [style='primary'], [style='secondary'] {
324       line-width: @r14_main;
325       [surface='unpaved'] {line-width: @r14_main - @c14_main;}
326     }
327     [style='tertiary'] {
328       line-width: @r14_inter;
329       [surface='unpaved'] {line-width: @r14_inter - @c14_inter;}
330     }
331     [style='track']{ line-width: @r14_narrow; }
332     [style='noauto']   { line-width: @r14_noauto; line-dasharray: 0.1,4; }
333     [construction!=null] { line-width: 0; }
334   }
335   [zoom=15] {
336     [style='standard'], [style='urban'] {
337       [structure='bridge'] {bridge/line-width: @r15_minor;}
338       line-width: @r15_minor - @c15_minor;
339     }
340     [style='motorway'] {
341       [structure='bridge'] {bridge/line-width: @r15_motorway + @c15_motorway;}
342       line-width: @r15_motorway;
343       [surface='unpaved'] {line-width: @r15_motorway - @c15_motorway;}
344     }
345     [style='primary'], [style='secondary'] {
346       [structure='bridge'] {bridge/line-width: @r15_main + @c15_main;}
347       line-width: @r15_main;
348       [surface='unpaved'] {line-width: @r15_main - @c15_main;}
349     }
350     [style='tertiary'] {
351       [structure='bridge'] {bridge/line-width: @r15_inter + 1;}
352       line-width: @r15_inter;
353       [surface='unpaved'] {line-width: @r15_inter - @c15_inter;}
354     }
355     [style='track']{ line-width: @r15_narrow; }
356     [style='noauto']   {
357       [structure='bridge'] {bridge/line-width: @r15_noauto + 1;}
358       line-width: @r15_noauto; line-dasharray: 0.1,4;
359     }
360     [construction!=null] { line-dasharray: 10,10; }
361   }
362   [zoom=16] {
363     [style='standard'],
364     [style='urban'] {
365       [structure='bridge'] {bridge/line-width: @r16_minor;}
366       line-width: @r16_minor - @c16_minor;
367     }
368     [style='motorway'] {
369       [structure='bridge'] {bridge/line-width: @r16_motorway + @c16_motorway;}
370       line-width: @r16_motorway;
371       [surface='unpaved'] {line-width: @r16_motorway - @c16_motorway;}
372     }
373     [style='primary'], [style='secondary'] {
374       [structure='bridge'] {bridge/line-width: @r16_main + 2;}
375       line-width: @r16_main;
376       [surface='unpaved'] {line-width: @r16_main - @c16_main;}
377     }
378     [style='tertiary'] {
379       [structure='bridge'] {bridge/line-width: @r16_inter + 1;}
380       line-width: @r16_inter;
381       [surface='unpaved'] {line-width: @r16_inter - @c16_inter;}
382     }
383     [style='track']{ line-width: @r16_narrow - @c16_narrow; }
384     [style='noauto']   {
385       [structure='bridge'] {bridge/line-width: @r16_noauto + 1;}
386       line-width: @r16_noauto;
387     }
388     [construction!=null] { line-dasharray: 10,10; }
389   }
390   [zoom=17] {
391     [style='urban'],
392     [style='standard'] {
393       [structure='bridge'] {bridge/line-width: @r17_minor + @c17_minor;}
394       line-width: @r17_minor - @c17_minor;
395     }
396     [style='motorway'] {
397       [structure='bridge'] {bridge/line-width: @r17_motorway + @c17_motorway;}
398       line-width: @r17_motorway;
399       [surface='unpaved'] {line-width: @r17_motorway - @c17_motorway;}
400     }
401     [style='primary'], [style='secondary'] {
402       [structure='bridge'] {bridge/line-width: @r17_main + @c17_main;}
403       line-width: @r17_main;
404       [surface='unpaved'] {line-width: @r17_main - @c17_main;}
405     }
406     [style='tertiary'] {
407       [structure='bridge'] {bridge/line-width: @r17_inter + @c17_inter;}
408       line-width: @r17_inter;
409       [surface='unpaved'] {line-width: @r17_inter - @c17_inter;}
410     }
411     [style='track']{
412       [structure='bridge'] {bridge/line-width: @r17_narrow + @c17_narrow;}
413       line-width: @r17_narrow - @c17_narrow;
414     }
415     [style='noauto']   {
416       [structure='bridge'] {bridge/line-width: @r17_noauto + @c17_noauto;}
417       line-width: @r17_noauto;
418       [type='steps'] {
419         line-cap: butt;
420         line-width: @r17_noauto + @c17_noauto;
421         line-dasharray: 2, 2;
422       }
423     }
424     [construction!=null] { line-dasharray: 15,10; }
425   }
426   [zoom>=18] {
427     [style='urban'],
428     [style='standard'] {
429       [structure='bridge'] {bridge/line-width: @r18_minor + @c18_minor;}
430       line-width: @r18_minor - @c18_minor;
431     }
432     [style='motorway'] {
433       [structure='bridge'] {bridge/line-width: @r18_motorway + @c18_motorway;}
434       line-width: @r18_motorway;
435       [surface='unpaved'] {line-width: @r18_motorway - @c18_motorway;}
436     }
437     [style='primary'], [style='secondary'] {
438       [structure='bridge'] {bridge/line-width: @r18_main + @c18_main;}
439       line-width: @r18_main;
440       [surface='unpaved'] {line-width: @r18_main - @c18_main;}
441     }
442     [style='tertiary'] {
443       [structure='bridge'] {bridge/line-width: @r18_inter + @c18_inter;}
444       line-width: @r18_inter;
445       [surface='unpaved'] {line-width: @r18_inter - @c18_inter;}
446     }
447     [style='track']{
448       [structure='bridge'] {bridge/line-width: @r18_narrow + @c18_narrow;}
449       line-width: @r18_narrow - @c18_narrow;
450     }
451     [style='noauto']   {
452       [structure='bridge'] {bridge/line-width: @r18_noauto + @c18_noauto;}
453       line-width: @r18_noauto;
454       [type='steps'] {
455         line-cap: butt;
456         line-width: @r18_noauto + @c18_noauto;
457         line-dasharray: 2,2;
458       }
459     }
460     [construction!=null] { line-dasharray: 15,15; }
461   }
462 }
463
464 /* ---- Turning Circles --------------------------------------------- */
465 #turning_circle_case[zoom>=14] {
466   marker-fill:@standard_fill;
467   marker-line-color:@standard_case;
468   marker-line-width:2;
469   marker-allow-overlap: true;
470 }
471 #turning_circle_fill[zoom>=14] {
472   marker-fill: @standard_fill;
473   marker-line-width: 0;
474   marker-line-opacity: 0;
475   marker-allow-overlap: true;
476 }
477 #turning_circle_case,
478 #turning_circle_fill {
479   [zoom=14] { marker-width: @r14_minor * 1.1; }
480   [zoom=15] { marker-width: @r15_minor * 1.1; }
481   [zoom=16] { marker-width: @r16_minor * 1.1; }
482   [zoom=17] { marker-width: @r17_minor * 1.1; }
483   [zoom>=18] { marker-width: @r18_minor * 1.1; }
484 }
485
486 /* ================================================================== */
487 /* FERRIES
488 /* ================================================================== */
489
490 #ferry[zoom>=9] {
491   line-color: @ferry;
492   line-width: 0.5;
493   line-dasharray: 4, 4;
494   [zoom>=13] {
495     line-width: 0.8;
496     line-dasharray: 6, 6;
497   }
498 }
499
500 /* ================================================================== */
501 /* AEROWAYS
502 /* ================================================================== */
503
504 #aeroway[zoom>=14] {
505   line-color:@aeroway;
506   line-cap:butt;
507   line-join:miter;
508   [type='runway'] {
509     [zoom=14]{ line-width:7; }
510     [zoom=15]{ line-width:11; }
511     [zoom=16]{ line-width:15; }
512     [zoom=17]{ line-width:19; }
513     [zoom>17]{ line-width:23; }
514   }
515   [type='taxiway'] {
516     [zoom=14]{ line-width:1.5; }
517     [zoom=15]{ line-width:2; }
518     [zoom=16]{ line-width:3; }
519     [zoom=17]{ line-width:4; }
520     [zoom>17]{ line-width:5; }
521   }
522   [tunnel='yes'][zoom>=14][zoom<=20] {
523     line-color: @land;
524     line-join: round;
525     /* -- widths -- */
526     [zoom=14] { line-width: 1 + 1; }
527     [zoom=15] { line-width: 1.5 + 1; }
528     [zoom=16] { line-width: 2 + 1; }
529     [zoom=17] { line-width: 3 + 2; }
530     [zoom>=18] { line-width: 4 + 3; }
531   }
532 }
533 #aeroway-poly[zoom>=14] {
534   polygon-fill: @aeroway;
535 }
536 /******************************************************************* */
537
538
539 /* ================================================================== */
540 /* RAILWAY
541 /* ================================================================== */
542
543 #railway[type='disused'][zoom>=14][zoom<=20] {
544   line-cap: butt;
545   line-color: darken(@rail_line,20%);
546   [zoom>=14] { line-width: 0.35; line-dasharray: 4,2;}
547   [zoom>=15] { line-width: 0.55; line-dasharray: 4,2;}
548   [zoom>=16] { line-width: 1; line-dasharray: 7,4; }
549   [zoom>=18] { line-width: 1.75; line-dasharray: 10,6;}
550 }
551
552 #railway[type='yard'][zoom>=15][zoom<=20] {
553   line-cap: butt;
554   line-color: @rail_line;
555   [zoom>=15] { line-width: 0.35; }
556   [zoom>=16] { line-width: 1.5; }
557   [zoom>=18] { line-width: 2.25; }
558 }
559
560 #railway[type='main'][zoom>=12][zoom<=20] {
561   line-cap: butt;
562   line-color: @rail_line;
563   [zoom>=11] { line-width: 1; }
564   [zoom>=14] { line-width: 1.25; }
565   [zoom>=16] { line-width: 1.75; }
566   [zoom>=18] { line-width: 2; }
567   [zoom>=20] { line-width: 2.25; }
568 }
569
570 #railway[type='other'][zoom>=14][zoom<=20] {
571   line-cap: butt;
572   line-color: @rail_line;
573   [zoom>=14] { line-width: 1; }
574   [zoom>=16] { line-width: 1.5; }
575   [zoom>=18] { line-width: 1.75; }
576   [zoom>=20] { line-width: 2; }
577 }