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