liftie 3.56.5 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/Makefile +2 -2
  2. package/app.js +33 -25
  3. package/lib/checker.js +1 -1
  4. package/lib/cli/curl.js +8 -8
  5. package/lib/cli/dirs.js +8 -6
  6. package/lib/cli/fetch.js +9 -9
  7. package/lib/cli/for-each-resort.js +3 -4
  8. package/lib/cli/generate.js +10 -10
  9. package/lib/cli/noaa.js +7 -12
  10. package/lib/client/about/index.js +2 -6
  11. package/lib/client/boot/height.js +2 -6
  12. package/lib/client/boot/index.js +8 -11
  13. package/lib/client/boot/service-worker.js +1 -5
  14. package/lib/client/minimax/index.js +1 -3
  15. package/lib/client/resort/dom.js +2 -7
  16. package/lib/client/resort/index.js +7 -10
  17. package/lib/client/resort/lifts.js +4 -5
  18. package/lib/client/resort/snow.js +3 -4
  19. package/lib/client/resort/weather.js +3 -4
  20. package/lib/client/resort/webcams.js +5 -8
  21. package/lib/client/state/index.js +4 -7
  22. package/lib/client/stats/index.js +1 -5
  23. package/lib/client/tag/index.js +1 -3
  24. package/lib/embed/index.js +0 -2
  25. package/lib/lifts/index.js +12 -12
  26. package/lib/lifts/parse.js +5 -5
  27. package/lib/lifts/parser.js +6 -10
  28. package/lib/lifts/pipe.js +3 -3
  29. package/lib/lifts/request.js +1 -3
  30. package/lib/lifts/rest.js +2 -4
  31. package/lib/lifts/stats.js +2 -5
  32. package/lib/loader.js +9 -12
  33. package/lib/loaders.js +7 -8
  34. package/lib/opening.js +6 -5
  35. package/lib/plugins.js +3 -8
  36. package/lib/resorts/3cime/index.js +1 -1
  37. package/lib/resorts/3cime/resort.json +1 -1
  38. package/lib/resorts/49-degrees-north/index.js +1 -1
  39. package/lib/resorts/abasin/index.js +2 -2
  40. package/lib/resorts/alpe-lusia-san-pellegrino/index.js +1 -1
  41. package/lib/resorts/alpe-lusia-san-pellegrino/resort.json +1 -1
  42. package/lib/resorts/alpine/index.js +1 -1
  43. package/lib/resorts/alta/index.js +6 -7
  44. package/lib/resorts/alta-badia/index.js +1 -1
  45. package/lib/resorts/alta-badia/resort.json +1 -1
  46. package/lib/resorts/alyeska/index.js +1 -1
  47. package/lib/resorts/angel-fire/index.js +1 -1
  48. package/lib/resorts/arabba/index.js +1 -1
  49. package/lib/resorts/arabba/resort.json +1 -1
  50. package/lib/resorts/aspen-highlands/index.js +1 -1
  51. package/lib/resorts/aspen-mountain/index.js +1 -1
  52. package/lib/resorts/attitash/index.js +1 -1
  53. package/lib/resorts/beavercreek/index.js +1 -1
  54. package/lib/resorts/berkshire-east/index.js +1 -1
  55. package/lib/resorts/big-sky/index.js +1 -1
  56. package/lib/resorts/big-white/index.js +1 -1
  57. package/lib/resorts/big-white/resort.json +1 -1
  58. package/lib/resorts/blue-mountain-pa/index.js +1 -1
  59. package/lib/resorts/bluemountain/index.js +1 -1
  60. package/lib/resorts/bogusbasin/index.js +5 -4
  61. package/lib/resorts/bolton-valley/index.js +2 -3
  62. package/lib/resorts/boreal/index.js +1 -1
  63. package/lib/resorts/breck/index.js +1 -1
  64. package/lib/resorts/brettonwoods/index.js +7 -5
  65. package/lib/resorts/brianhead/index.js +1 -1
  66. package/lib/resorts/bridger-bowl/index.js +4 -3
  67. package/lib/resorts/brighton/index.js +1 -1
  68. package/lib/resorts/bromley-mountain/index.js +1 -1
  69. package/lib/resorts/burke-mountain/index.js +1 -1
  70. package/lib/resorts/buttermilk/index.js +1 -1
  71. package/lib/resorts/caberfae-peaks/index.js +1 -1
  72. package/lib/resorts/camelback/index.js +1 -1
  73. package/lib/resorts/campo-felice/index.js +1 -1
  74. package/lib/resorts/campo-felice/resort.json +1 -1
  75. package/lib/resorts/canada-olympic-park/index.js +1 -1
  76. package/lib/resorts/cannon/index.js +1 -1
  77. package/lib/resorts/cataloochee/index.js +1 -1
  78. package/lib/resorts/catedral/index.js +1 -1
  79. package/lib/resorts/cervino/index.js +2 -2
  80. package/lib/resorts/chamonix/index.js +2 -2
  81. package/lib/resorts/chamonix/resort.json +1 -1
  82. package/lib/resorts/chinapeak/index.js +1 -1
  83. package/lib/resorts/civetta/index.js +1 -1
  84. package/lib/resorts/civetta/resort.json +1 -1
  85. package/lib/resorts/claviere/index.js +1 -1
  86. package/lib/resorts/copper/index.js +1 -1
  87. package/lib/resorts/coronetpeak/index.js +1 -1
  88. package/lib/resorts/coronetpeak/resort.json +1 -1
  89. package/lib/resorts/cortina-d-ampezzo/index.js +1 -1
  90. package/lib/resorts/cortina-d-ampezzo/resort.json +1 -1
  91. package/lib/resorts/courchevel/index.js +1 -1
  92. package/lib/resorts/courchevel/resort.json +2 -1
  93. package/lib/resorts/cranmore-mountain/index.js +1 -1
  94. package/lib/resorts/cransmontana/index.js +2 -2
  95. package/lib/resorts/crested-butte/index.js +1 -1
  96. package/lib/resorts/crystal-mountain/index.js +1 -1
  97. package/lib/resorts/cypress-mountain/index.js +1 -1
  98. package/lib/resorts/deer-valley/index.js +1 -1
  99. package/lib/resorts/devils-head/index.js +1 -1
  100. package/lib/resorts/diamondpeak/index.js +1 -1
  101. package/lib/resorts/falls-creek/index.js +5 -3
  102. package/lib/resorts/falls-creek/resort.json +1 -1
  103. package/lib/resorts/flims-laax-falera/index.js +1 -1
  104. package/lib/resorts/flims-laax-falera/resort.json +1 -1
  105. package/lib/resorts/folgaria/index.js +1 -1
  106. package/lib/resorts/folgaria/resort.json +1 -1
  107. package/lib/resorts/folgarida-marilleva/index.js +2 -1
  108. package/lib/resorts/forni/index.js +1 -1
  109. package/lib/resorts/forni/resort.json +1 -1
  110. package/lib/resorts/gore-mountain/index.js +1 -1
  111. package/lib/resorts/grand-targhee/index.js +1 -1
  112. package/lib/resorts/grouse/index.js +1 -1
  113. package/lib/resorts/gunstock/index.js +1 -1
  114. package/lib/resorts/heavenly/index.js +1 -1
  115. package/lib/resorts/hochfuegen/index.js +2 -2
  116. package/lib/resorts/homewood/index.js +1 -1
  117. package/lib/resorts/hoodoo/index.js +1 -1
  118. package/lib/resorts/hunter/index.js +1 -1
  119. package/lib/resorts/ischgl-silvretta-arena/index.js +1 -1
  120. package/lib/resorts/jackson-hole/index.js +5 -3
  121. package/lib/resorts/jay-peak/index.js +1 -1
  122. package/lib/resorts/jiminypeak/index.js +1 -1
  123. package/lib/resorts/june-mountain/index.js +1 -1
  124. package/lib/resorts/keystone/index.js +1 -1
  125. package/lib/resorts/killington/index.js +1 -1
  126. package/lib/resorts/king-pine/index.js +5 -3
  127. package/lib/resorts/kirkwood/index.js +1 -1
  128. package/lib/resorts/kitzbuehel/index.js +1 -1
  129. package/lib/resorts/lamolina/index.js +1 -1
  130. package/lib/resorts/lamolina/resort.json +1 -1
  131. package/lib/resorts/laplagne/index.js +1 -1
  132. package/lib/resorts/laplagne/resort.json +2 -1
  133. package/lib/resorts/larosiere/index.js +1 -1
  134. package/lib/resorts/lavarone/index.js +1 -1
  135. package/lib/resorts/lavarone/resort.json +1 -1
  136. package/lib/resorts/lesarcs/index.js +1 -1
  137. package/lib/resorts/lesmenuires/index.js +1 -1
  138. package/lib/resorts/lesmenuires/resort.json +2 -1
  139. package/lib/resorts/loon/index.js +1 -1
  140. package/lib/resorts/loveland/index.js +2 -2
  141. package/lib/resorts/mad-river-glen/index.js +2 -2
  142. package/lib/resorts/madonna-di-campiglio/index.js +2 -1
  143. package/lib/resorts/mammoth-lakes/index.js +1 -1
  144. package/lib/resorts/manning-park/index.js +1 -1
  145. package/lib/resorts/manning-park/resort.json +1 -1
  146. package/lib/resorts/megeve/index.js +1 -1
  147. package/lib/resorts/megeve/resort.json +2 -1
  148. package/lib/resorts/meribel/index.js +1 -1
  149. package/lib/resorts/meribel/resort.json +2 -1
  150. package/lib/resorts/monarch/index.js +2 -2
  151. package/lib/resorts/monte-amiata/index.js +1 -1
  152. package/lib/resorts/monte-amiata/resort.json +1 -1
  153. package/lib/resorts/monte-bondone/index.js +1 -1
  154. package/lib/resorts/montegenevre/index.js +1 -1
  155. package/lib/resorts/monterosa/index.js +1 -1
  156. package/lib/resorts/morzine/index.js +1 -1
  157. package/lib/resorts/morzine/resort.json +6 -2
  158. package/lib/resorts/mount-sunapee/index.js +1 -1
  159. package/lib/resorts/mountsnow/index.js +1 -1
  160. package/lib/resorts/mt-buller/index.js +1 -1
  161. package/lib/resorts/mt-hotham/index.js +5 -3
  162. package/lib/resorts/mt-seymour/index.js +1 -1
  163. package/lib/resorts/mt-spokane/index.js +1 -1
  164. package/lib/resorts/mtbachelor/index.js +1 -1
  165. package/lib/resorts/mtbrighton/index.js +1 -1
  166. package/lib/resorts/mthigh/index.js +1 -1
  167. package/lib/resorts/mthood/index.js +1 -1
  168. package/lib/resorts/mtpeter/index.js +1 -1
  169. package/lib/resorts/mtpeter/resort.json +1 -1
  170. package/lib/resorts/mtrose/index.js +1 -1
  171. package/lib/resorts/niseko/index.js +1 -1
  172. package/lib/resorts/niseko/resort.json +1 -1
  173. package/lib/resorts/northstar/index.js +1 -1
  174. package/lib/resorts/okemo/index.js +1 -1
  175. package/lib/resorts/ovindoli/index.js +1 -1
  176. package/lib/resorts/ovindoli/resort.json +1 -1
  177. package/lib/resorts/owlshead/index.js +1 -1
  178. package/lib/resorts/paganella/index.js +1 -1
  179. package/lib/resorts/paganella/resort.json +1 -1
  180. package/lib/resorts/palisades/index.js +1 -1
  181. package/lib/resorts/parkcity/index.js +1 -1
  182. package/lib/resorts/pats-peak/index.js +4 -2
  183. package/lib/resorts/peio/index.js +2 -2
  184. package/lib/resorts/perisher/index.js +1 -1
  185. package/lib/resorts/perisher/resort.json +1 -1
  186. package/lib/resorts/piancavallo/index.js +1 -1
  187. package/lib/resorts/piancavallo/resort.json +1 -1
  188. package/lib/resorts/pico/index.js +1 -1
  189. package/lib/resorts/pinzolo/index.js +2 -1
  190. package/lib/resorts/plan-de-corones/index.js +1 -1
  191. package/lib/resorts/plan-de-corones/resort.json +1 -1
  192. package/lib/resorts/pleasant-mountain/index.js +1 -1
  193. package/lib/resorts/pontedilegno-tonale/index.js +1 -1
  194. package/lib/resorts/ragged-mountain/index.js +1 -1
  195. package/lib/resorts/ravascletto-zoncolan/index.js +1 -1
  196. package/lib/resorts/ravascletto-zoncolan/resort.json +1 -1
  197. package/lib/resorts/red-lodge-mountain/index.js +1 -1
  198. package/lib/resorts/red-mountain/index.js +2 -3
  199. package/lib/resorts/rio-pusteria-bressanone/index.js +1 -1
  200. package/lib/resorts/rio-pusteria-bressanone/resort.json +1 -1
  201. package/lib/resorts/roccaraso/index.js +1 -1
  202. package/lib/resorts/roccaraso/resort.json +1 -1
  203. package/lib/resorts/saddleback/index.js +1 -1
  204. package/lib/resorts/san-martino-di-castrozza-passo-rolle/index.js +1 -1
  205. package/lib/resorts/san-martino-di-castrozza-passo-rolle/resort.json +1 -1
  206. package/lib/resorts/sansicario/index.js +1 -1
  207. package/lib/resorts/sappada/index.js +1 -1
  208. package/lib/resorts/sappada/resort.json +1 -1
  209. package/lib/resorts/sasquatch-mountain/index.js +1 -1
  210. package/lib/resorts/sauris/index.js +1 -1
  211. package/lib/resorts/sauris/resort.json +1 -1
  212. package/lib/resorts/sauze/index.js +1 -1
  213. package/lib/resorts/schweitzer/index.js +1 -1
  214. package/lib/resorts/sella/index.js +1 -1
  215. package/lib/resorts/sella/resort.json +1 -1
  216. package/lib/resorts/serfaus-fiss-ladis/index.js +1 -1
  217. package/lib/resorts/sestriere/index.js +1 -1
  218. package/lib/resorts/sestriere/resort.json +1 -1
  219. package/lib/resorts/shawnee-mountain/index.js +4 -2
  220. package/lib/resorts/sierra/index.js +1 -1
  221. package/lib/resorts/silver-star/index.js +2 -2
  222. package/lib/resorts/skiwelt/index.js +1 -1
  223. package/lib/resorts/smuggs/index.js +1 -1
  224. package/lib/resorts/snow-valley/index.js +2 -2
  225. package/lib/resorts/snowbasin/index.js +1 -1
  226. package/lib/resorts/snowbird/index.js +2 -3
  227. package/lib/resorts/snowmass/index.js +1 -1
  228. package/lib/resorts/snowshoe/index.js +1 -1
  229. package/lib/resorts/soelden/index.js +1 -1
  230. package/lib/resorts/solitude/index.js +1 -1
  231. package/lib/resorts/st-anton-am-arlberg/index.js +1 -1
  232. package/lib/resorts/steamboat/index.js +1 -1
  233. package/lib/resorts/stevens/index.js +1 -1
  234. package/lib/resorts/stowe/index.js +1 -1
  235. package/lib/resorts/stratton/index.js +1 -1
  236. package/lib/resorts/sugarbowl/index.js +1 -1
  237. package/lib/resorts/sugarbush/index.js +1 -1
  238. package/lib/resorts/sugarloaf/index.js +1 -1
  239. package/lib/resorts/sun-peaks/index.js +1 -1
  240. package/lib/resorts/sun-peaks/resort.json +1 -1
  241. package/lib/resorts/sunday-river/index.js +1 -1
  242. package/lib/resorts/sunshine-village/index.js +6 -3
  243. package/lib/resorts/sunvalley/index.js +1 -1
  244. package/lib/resorts/tahoe-donner/index.js +1 -1
  245. package/lib/resorts/taos/index.js +1 -1
  246. package/lib/resorts/tarvisio/index.js +1 -1
  247. package/lib/resorts/tarvisio/resort.json +1 -1
  248. package/lib/resorts/telluride/index.js +1 -1
  249. package/lib/resorts/thredbo/index.js +1 -1
  250. package/lib/resorts/tignes/index.js +1 -1
  251. package/lib/resorts/tignes/resort.json +1 -1
  252. package/lib/resorts/timberline-lodge/index.js +1 -1
  253. package/lib/resorts/tremblant/index.js +1 -1
  254. package/lib/resorts/vail/index.js +1 -1
  255. package/lib/resorts/val-di-fassa/index.js +1 -1
  256. package/lib/resorts/val-di-fassa/resort.json +1 -1
  257. package/lib/resorts/val-di-fiemme/index.js +1 -1
  258. package/lib/resorts/val-di-fiemme/resort.json +1 -1
  259. package/lib/resorts/val-gardena/index.js +1 -1
  260. package/lib/resorts/val-gardena/resort.json +1 -1
  261. package/lib/resorts/valdisere/index.js +1 -1
  262. package/lib/resorts/valdisere/resort.json +1 -1
  263. package/lib/resorts/verbier/index.js +1 -1
  264. package/lib/resorts/waterville/index.js +1 -1
  265. package/lib/resorts/whistler-blackcomb/index.js +2 -2
  266. package/lib/resorts/whistler-blackcomb/resort.json +1 -1
  267. package/lib/resorts/whiteface/index.js +1 -1
  268. package/lib/resorts/whitefish/index.js +1 -1
  269. package/lib/resorts/wildcat/index.js +1 -1
  270. package/lib/resorts/windham/index.js +1 -1
  271. package/lib/resorts/winter-park/index.js +1 -1
  272. package/lib/resorts/winterplace/index.js +1 -1
  273. package/lib/routes/cache.js +4 -4
  274. package/lib/routes/canonical.js +1 -3
  275. package/lib/routes/data.js +10 -12
  276. package/lib/routes/database.js +6 -7
  277. package/lib/routes/headers.js +2 -2
  278. package/lib/routes/index.js +9 -11
  279. package/lib/routes/plan.js +2 -4
  280. package/lib/routes/service-worker.js +6 -7
  281. package/lib/routes/sorter.js +2 -4
  282. package/lib/routes/tags.js +2 -4
  283. package/lib/select.js +3 -5
  284. package/lib/tools/aspen.js +4 -4
  285. package/lib/tools/boyne.js +4 -4
  286. package/lib/tools/campiglio-dolomiti.js +1 -1
  287. package/lib/tools/coerce.js +4 -4
  288. package/lib/tools/dolomitisuperski.js +1 -1
  289. package/lib/tools/domutil.js +11 -18
  290. package/lib/tools/infosnow.js +6 -6
  291. package/lib/tools/intrawest.js +3 -3
  292. package/lib/tools/limiter.js +2 -4
  293. package/lib/tools/lumiplan.js +2 -2
  294. package/lib/tools/millis.js +4 -11
  295. package/lib/tools/powdr.js +4 -4
  296. package/lib/tools/prism.js +5 -5
  297. package/lib/tools/skiplan.js +1 -1
  298. package/lib/tools/turismofvg.js +2 -2
  299. package/lib/tools/vail.js +8 -10
  300. package/lib/tools/vialattea.js +1 -1
  301. package/lib/weather/icons.js +3 -8
  302. package/lib/weather/index.js +5 -6
  303. package/lib/weather/noaa.js +5 -3
  304. package/lib/weather/openweather.js +6 -7
  305. package/lib/webcams.js +6 -6
  306. package/package.json +3 -2
  307. package/public/scripts/liftie-embed.js +41 -0
  308. package/public/scripts/liftie-embed.js.map +7 -0
  309. package/public/scripts/liftie.js +1561 -0
  310. package/public/scripts/liftie.js.map +7 -0
  311. package/public/stylesheets/style.css +864 -0
@@ -0,0 +1,864 @@
1
+ @font-face {
2
+ font-family: "lift-status";
3
+ src: url("/OEQfOpxZ4A/stylesheets/fonts/lift-status.woff2") format("woff2");
4
+ font-weight: normal;
5
+ font-style: normal;
6
+ }
7
+ [class^="ls-"]:before,
8
+ [class*=" ls-"]:before {
9
+ font-family: 'lift-status';
10
+ font-style: normal;
11
+ speak: none;
12
+ font-weight: normal;
13
+ line-height: 1;
14
+ -webkit-font-smoothing: antialiased;
15
+ }
16
+ .ls-scheduled:before {
17
+ content: "\e004";
18
+ color: #104aa8;
19
+ }
20
+ .ls-hold:before {
21
+ content: "\e005";
22
+ color: #ffa200;
23
+ }
24
+ .ls-closed:before {
25
+ content: "\e006";
26
+ color: #ff1e00;
27
+ }
28
+ .ls-open:before {
29
+ content: "\e007";
30
+ color: #00b831;
31
+ }
32
+ .ls-github:before {
33
+ content: "\e010";
34
+ }
35
+ .ls-twitter:before {
36
+ content: "\e011";
37
+ }
38
+ .ls-facebook:before {
39
+ content: "\e012";
40
+ }
41
+ .ls-google-plus:before {
42
+ content: "\e013";
43
+ }
44
+ .ls-furkot:before {
45
+ content: "\e020";
46
+ }
47
+ .ls-plus:before {
48
+ content: "\e031";
49
+ }
50
+ .ls-minus:before {
51
+ content: "\e032";
52
+ }
53
+ .ls-external:before {
54
+ content: "\e033";
55
+ }
56
+ .ls-deal:before {
57
+ content: "\e034";
58
+ }
59
+ .ls-star-full:before {
60
+ content: "\e035";
61
+ }
62
+ .ls-star-outline:before {
63
+ content: "\e036";
64
+ }
65
+ .ls-pie:before {
66
+ content: "\e000";
67
+ }
68
+ .ls-snowflake:before {
69
+ content: "\e001";
70
+ }
71
+ .ls-html:before {
72
+ content: "\f068";
73
+ }
74
+ .ls-liftie:before {
75
+ content: "\e002";
76
+ }
77
+ .ls-email:before {
78
+ content: "\f028";
79
+ }
80
+ @font-face {
81
+ font-family: "iconvault";
82
+ src: url("/qGg5C7akoM/stylesheets/fonts/iconvault_forecastfont.woff2") format("woff2");
83
+ font-weight: normal;
84
+ font-style: normal;
85
+ }
86
+ div.weather-icon ul li {
87
+ list-style: none;
88
+ }
89
+ div.weather-icon ul [class^="icon-"],
90
+ div.weather-icon ul [class*=" icon-"] {
91
+ font-family: 'iconvault';
92
+ font-weight: normal;
93
+ font-style: normal;
94
+ text-decoration: inherit;
95
+ speak: none;
96
+ -webkit-font-smoothing: antialiased;
97
+ font-size: 4em;
98
+ }
99
+ div.weather-icon ul .basecloud:before {
100
+ font-family: 'iconvault';
101
+ font-size: 4em;
102
+ content: '\f105';
103
+ position: absolute;
104
+ color: #ccc;
105
+ }
106
+ div.weather-icon ul .windyraincloud:before {
107
+ font-family: 'iconvault';
108
+ font-size: 4em;
109
+ content: '\f111';
110
+ position: absolute;
111
+ color: #ccc;
112
+ }
113
+ div.weather-icon ul .windysnowcloud:before {
114
+ font-family: 'iconvault';
115
+ font-size: 4em;
116
+ content: '\f109';
117
+ position: absolute;
118
+ color: #ccc;
119
+ }
120
+ div.weather-icon ul .icon-thunder:before {
121
+ content: "\f114";
122
+ position: absolute;
123
+ color: #ffa500;
124
+ }
125
+ div.weather-icon ul .icon-sunny:after {
126
+ content: "\f101";
127
+ color: #ffa500;
128
+ position: absolute;
129
+ }
130
+ div.weather-icon ul .icon-drizzle:before {
131
+ content: "\f10a";
132
+ color: #82b2e4;
133
+ position: absolute;
134
+ }
135
+ div.weather-icon ul .icon-hail:before {
136
+ content: "\f10f";
137
+ position: absolute;
138
+ color: #ccc;
139
+ }
140
+ div.weather-icon ul .icon-showers:before {
141
+ content: "\f104";
142
+ position: absolute;
143
+ color: #82b2e4;
144
+ }
145
+ div.weather-icon ul .icon-rainy:before {
146
+ content: "\f107";
147
+ position: absolute;
148
+ color: #4681c3;
149
+ }
150
+ div.weather-icon ul .icon-snowy:before {
151
+ content: "\f10b";
152
+ position: absolute;
153
+ color: #acd3f3;
154
+ }
155
+ div.weather-icon ul .icon-frosty:before {
156
+ content: "\f102";
157
+ position: absolute;
158
+ color: #85d8f7;
159
+ }
160
+ div.weather-icon ul .icon-windy:before {
161
+ content: "\f115";
162
+ position: absolute;
163
+ color: #ccc;
164
+ }
165
+ div.weather-icon ul .icon-windyrain:before {
166
+ content: "\f10e";
167
+ position: absolute;
168
+ color: #acd3f3;
169
+ }
170
+ div.weather-icon ul .icon-windysnow:before {
171
+ content: "\f103";
172
+ position: absolute;
173
+ color: #acd3f3;
174
+ }
175
+ div.weather-icon ul .icon-sleet:before {
176
+ content: "\f10c";
177
+ position: absolute;
178
+ color: #acd3f3;
179
+ }
180
+ div.weather-icon ul .icon-moon:after {
181
+ content: "\f10d";
182
+ color: #ffa500;
183
+ position: absolute;
184
+ }
185
+ div.weather-icon ul .icon-night:after {
186
+ content: "\f100";
187
+ position: absolute;
188
+ color: #ffa500;
189
+ }
190
+ div.weather-icon ul .icon-sun:after {
191
+ content: "\f113";
192
+ color: #ffa500;
193
+ position: absolute;
194
+ }
195
+ div.weather-icon ul .icon-cloud:after {
196
+ content: "\f106";
197
+ color: #ccc;
198
+ position: absolute;
199
+ }
200
+ div.weather-icon ul .icon-sunrise:before {
201
+ content: '\f112';
202
+ color: #ffa500;
203
+ position: absolute;
204
+ }
205
+ div.weather-icon ul .icon-sunset:before {
206
+ content: '\f110';
207
+ color: #f96f23;
208
+ position: absolute;
209
+ }
210
+ div.weather-icon ul .icon-mist:before {
211
+ content: '\f108';
212
+ color: #ccc;
213
+ position: absolute;
214
+ }
215
+ * {
216
+ padding: 0;
217
+ margin: 0;
218
+ }
219
+ a,
220
+ input,
221
+ button {
222
+ -ms-touch-action: none !important;
223
+ }
224
+ /*
225
+ * Hide from both screenreaders and browsers: h5bp.com/u
226
+ */
227
+ .hidden {
228
+ display: none !important;
229
+ visibility: hidden;
230
+ }
231
+ .visible:after {
232
+ content: " ";
233
+ display: block;
234
+ clear: both;
235
+ }
236
+ /*
237
+ * Hide only visually, but have it available for screenreaders: h5bp.com/v
238
+ */
239
+ .visuallyhidden {
240
+ border: 0;
241
+ clip: rect(0 0 0 0);
242
+ height: 1px;
243
+ margin: -1px;
244
+ overflow: hidden;
245
+ padding: 0;
246
+ position: absolute;
247
+ width: 1px;
248
+ }
249
+ .icon-alone {
250
+ display: inline-block;
251
+ cursor: pointer;
252
+ }
253
+ .left {
254
+ float: left;
255
+ }
256
+ .right {
257
+ float: right;
258
+ }
259
+ body {
260
+ font-size: 1em;
261
+ font-family: Ubuntu, "Lucida Grande", Helvetica, Arial, sans-serif;
262
+ color: #333;
263
+ }
264
+ a {
265
+ color: #009ddb;
266
+ text-shadow: 0 1px #fff;
267
+ transition: color 0.3s ease;
268
+ text-decoration: none;
269
+ -webkit-user-select: none;
270
+ user-select: none;
271
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
272
+ -webkit-tap-highlight-color: transparent;
273
+ }
274
+ a:hover,
275
+ a:active {
276
+ color: #00a7f1;
277
+ }
278
+ .panel {
279
+ box-sizing: border-box;
280
+ margin: 0 8px 16px;
281
+ width: 320px;
282
+ padding: 0 12px;
283
+ float: left;
284
+ background-color: #f5f8ff;
285
+ }
286
+ .panel:after {
287
+ content: " ";
288
+ display: block;
289
+ clear: both;
290
+ }
291
+ .panel:last-child {
292
+ margin-bottom: 0;
293
+ }
294
+ header .ls-furkot {
295
+ font-size: 0.9em;
296
+ }
297
+ .add-to-trip {
298
+ cursor: pointer;
299
+ display: block;
300
+ text-overflow: ellipsis;
301
+ overflow: hidden;
302
+ white-space: nowrap;
303
+ }
304
+ .add-to-trip span + span {
305
+ margin-left: 0.2em;
306
+ }
307
+ .resort footer .add-to-trip {
308
+ margin-top: 0.3em;
309
+ }
310
+ .panel header,
311
+ .panel footer {
312
+ transition: all 0.4s ease;
313
+ }
314
+ .panel header:after,
315
+ .panel footer:after {
316
+ content: " ";
317
+ display: block;
318
+ clear: both;
319
+ }
320
+ .panel header {
321
+ padding: 0.7em 0 0.5em;
322
+ }
323
+ .panel footer {
324
+ padding: 0 0 0.7em;
325
+ }
326
+ .panel header {
327
+ font-size: 1.2em;
328
+ border-bottom: solid 2px transparent;
329
+ vertical-align: middle;
330
+ display: flex;
331
+ align-items: baseline;
332
+ gap: 0.2em;
333
+ }
334
+ .panel header a {
335
+ outline: none;
336
+ }
337
+ .panel.open header {
338
+ border-color: rgba(0,0,0,0.3);
339
+ }
340
+ .open .expandable {
341
+ opacity: 1;
342
+ max-height: 4500px;
343
+ min-height: 5em;
344
+ }
345
+ .open .expandable .lifts-status {
346
+ position: relative;
347
+ }
348
+ .open .expandable .lifts-status .opening-date {
349
+ position: absolute;
350
+ width: 100%;
351
+ height: 100%;
352
+ z-index: 1;
353
+ background-color: rgba(245,248,255,0.9);
354
+ }
355
+ .open .expandable .lifts-status .opening-date a {
356
+ position: absolute;
357
+ top: 50%;
358
+ margin-top: -0.6em;
359
+ font-size: 1.2em;
360
+ width: 100%;
361
+ text-align: center;
362
+ }
363
+ .expandable {
364
+ transition: all 0.4s ease;
365
+ max-height: 0;
366
+ overflow-y: hidden;
367
+ opacity: 0;
368
+ }
369
+ .lifts {
370
+ list-style: none;
371
+ margin: 0.2em 0;
372
+ }
373
+ .lifts .lift {
374
+ display: block;
375
+ line-height: 2;
376
+ }
377
+ .lifts .lift:after {
378
+ content: " ";
379
+ display: block;
380
+ clear: both;
381
+ }
382
+ .lifts .lift .name {
383
+ float: left;
384
+ max-width: 90%;
385
+ cursor: default;
386
+ text-overflow: ellipsis;
387
+ overflow: hidden;
388
+ white-space: nowrap;
389
+ }
390
+ .lifts .lift .status {
391
+ font-size: 1.1em;
392
+ float: right;
393
+ text-shadow: 1px 1px #fff;
394
+ padding-right: 2px;
395
+ }
396
+ .auto-refresh-reminder {
397
+ color: #707070;
398
+ font-style: italic;
399
+ text-align: right;
400
+ font-size: 0.8em;
401
+ padding-right: 2px;
402
+ }
403
+ .ls-minimax:before {
404
+ content: "\e031";
405
+ }
406
+ .open .ls-minimax:before {
407
+ content: "\e032";
408
+ }
409
+ .ls-star:before {
410
+ content: "\e036";
411
+ }
412
+ .starred .ls-star:before {
413
+ content: "\e035";
414
+ }
415
+ .resort-link {
416
+ font-size: 0.9em;
417
+ }
418
+ .resort-name {
419
+ flex: 1;
420
+ text-overflow: ellipsis;
421
+ overflow: hidden;
422
+ white-space: nowrap;
423
+ }
424
+ .summary {
425
+ list-style: none;
426
+ font-size: 0.8em;
427
+ }
428
+ .summary:after {
429
+ content: " ";
430
+ display: block;
431
+ clear: both;
432
+ }
433
+ .summary li {
434
+ float: left;
435
+ margin-right: 0.5em;
436
+ }
437
+ .summary li:last-child {
438
+ margin-right: 0;
439
+ }
440
+ .summary li [class^="ls-"],
441
+ .summary li [class*=" ls-"],
442
+ .summary li [class^="ls-"]:before,
443
+ .summary li [class*=" ls-"]:before {
444
+ margin-right: 2px;
445
+ }
446
+ .summary li [class^="ls-"]:before,
447
+ .summary li [class*=" ls-"]:before {
448
+ text-shadow: 1px 1px #fff;
449
+ }
450
+ .summary-color-bar {
451
+ width: 100%;
452
+ margin-bottom: 0.5em;
453
+ }
454
+ .summary-color-bar:after {
455
+ content: " ";
456
+ display: block;
457
+ clear: both;
458
+ }
459
+ .summary-color-bar .open,
460
+ .summary-color-bar .hold,
461
+ .summary-color-bar .scheduled,
462
+ .summary-color-bar .closed {
463
+ height: 2px;
464
+ float: left;
465
+ }
466
+ .summary-color-bar .open {
467
+ background-color: #00b831;
468
+ }
469
+ .summary-color-bar .hold {
470
+ background-color: #ffa200;
471
+ }
472
+ .summary-color-bar .scheduled {
473
+ background-color: #104aa8;
474
+ }
475
+ .summary-color-bar .closed {
476
+ background-color: #ff1e00;
477
+ }
478
+ .extras {
479
+ padding-bottom: 0.7em;
480
+ }
481
+ .extras .tile {
482
+ font-size: 0.9em;
483
+ padding: 0.5em 0;
484
+ }
485
+ .extras .tile {
486
+ border-bottom: solid 2px rgba(0,0,0,0.3);
487
+ }
488
+ .extras .tile:last-child {
489
+ padding-bottom: 0;
490
+ border-bottom: none;
491
+ }
492
+ .extras .notice {
493
+ margin-top: 0.5em;
494
+ font-size: 0.8em;
495
+ font-style: italic;
496
+ display: flex;
497
+ align-items: center;
498
+ justify-content: flex-end;
499
+ gap: 0.5em;
500
+ }
501
+ .extras .weather .weather-icon {
502
+ float: left;
503
+ height: 70px;
504
+ margin-top: -10px;
505
+ }
506
+ .extras .weather .temperature {
507
+ float: right;
508
+ font-size: 1.5em;
509
+ }
510
+ .extras .weather .snow-conditions {
511
+ clear: right;
512
+ float: right;
513
+ font-size: 1.1em;
514
+ margin-left: 60px;
515
+ text-align: right;
516
+ }
517
+ .extras .weather .snowforecast {
518
+ margin-left: 0.5em;
519
+ font-weight: bold;
520
+ }
521
+ .extras .weather .text {
522
+ clear: both;
523
+ }
524
+ .extras .weather .notice img {
525
+ float: none;
526
+ width: 126px;
527
+ vertical-align: bottom;
528
+ }
529
+ .extras .webcams .swipe {
530
+ overflow: hidden;
531
+ }
532
+ .extras .webcams .swipe * {
533
+ touch-action: pan-y !important;
534
+ }
535
+ .extras .webcams .pager {
536
+ text-align: center;
537
+ font-weight: bold;
538
+ line-height: 1.3;
539
+ }
540
+ .extras .webcams .pager a {
541
+ margin: 0 2px;
542
+ padding: 0 0.3em;
543
+ }
544
+ .extras .webcams .pager .active:before {
545
+ content: '●';
546
+ }
547
+ .extras .webcams .pager .inactive:before {
548
+ content: '○';
549
+ }
550
+ .extras .webcams li {
551
+ list-style: none;
552
+ display: inline-block;
553
+ max-width: 296px;
554
+ vertical-align: top;
555
+ }
556
+ .extras .webcams .webcam {
557
+ max-width: 100%;
558
+ display: inline-block;
559
+ }
560
+ .extras .webcams .webcam >a {
561
+ display: block;
562
+ position: relative;
563
+ overflow-x: hidden;
564
+ }
565
+ .extras .webcams .webcam >a img {
566
+ margin: 0 auto;
567
+ -webkit-user-select: none;
568
+ user-select: none;
569
+ pointer-events: none;
570
+ }
571
+ .extras .webcams .webcam >a img.active {
572
+ display: block;
573
+ }
574
+ .extras .webcams .webcam >a img.inactive {
575
+ display: none;
576
+ }
577
+ .extras .webcams .webcam >a .title {
578
+ margin-bottom: 0.5em;
579
+ text-align: center;
580
+ }
581
+ .extras .snow .value {
582
+ display: inline-block;
583
+ min-width: 2em;
584
+ text-align: right;
585
+ }
586
+ .extras .deals {
587
+ padding-bottom: 0;
588
+ }
589
+ .extras .deals .deal {
590
+ padding: 0.4em 0;
591
+ line-height: 1.5;
592
+ }
593
+ .extras .deals .deal:after {
594
+ content: " ";
595
+ display: block;
596
+ clear: both;
597
+ }
598
+ .extras .deals .deal span {
599
+ float: left;
600
+ }
601
+ .extras .deals .deal a {
602
+ float: right;
603
+ }
604
+ .resort .deal {
605
+ font-size: 0.9em;
606
+ margin-bottom: 0.5em;
607
+ padding: 0.5em 0;
608
+ border-bottom: solid 2px rgba(0,0,0,0.3);
609
+ }
610
+ .resort .deal a {
611
+ float: right;
612
+ }
613
+ .stats .pie {
614
+ margin: 1em 0;
615
+ width: 294px;
616
+ height: 294px;
617
+ border-radius: 50%;
618
+ background-image: conic-gradient(#00b831 0 var(--open), #ffa200 0 var(--hold), #104aa8 0 var(--scheduled), #ff1e00 0);
619
+ }
620
+ .stats footer .summary li {
621
+ float: none;
622
+ clear: both;
623
+ line-height: 2;
624
+ text-align: right;
625
+ width: 55%;
626
+ margin: 0 auto;
627
+ }
628
+ .stats footer .summary li span:first-child {
629
+ float: left;
630
+ }
631
+ .stats footer .summary li span:first-child:before {
632
+ margin-right: 0.5em;
633
+ }
634
+ .stats footer .summary li span:last-child {
635
+ float: right;
636
+ }
637
+ body > footer {
638
+ clear: both;
639
+ margin-top: 1em;
640
+ padding: 0 0.2em;
641
+ line-height: 1;
642
+ text-align: center;
643
+ }
644
+ body > footer .text {
645
+ display: inline;
646
+ margin-left: 0.2em;
647
+ }
648
+ body > footer a {
649
+ margin: 0 0.2em;
650
+ }
651
+ body > footer a span {
652
+ color: #666;
653
+ transition: color 0.3s ease;
654
+ }
655
+ body > footer a:hover span {
656
+ color: #000;
657
+ }
658
+ body > footer a:hover .ls-twitter {
659
+ color: $twitter-color;
660
+ }
661
+ body > footer a:hover .ls-facebook {
662
+ color: #3b5998;
663
+ }
664
+ .about {
665
+ background-color: #f5f8ff;
666
+ background: linear-gradient(to bottom, #f6f9ff, #dde8fe);
667
+ box-sizing: border-box;
668
+ padding: 1em;
669
+ }
670
+ .about h1 {
671
+ font-size: 1.2em;
672
+ }
673
+ .about:after {
674
+ content: " ";
675
+ display: block;
676
+ clear: both;
677
+ }
678
+ .about p {
679
+ margin: 0.5em 0;
680
+ line-height: 1.5em;
681
+ }
682
+ .about p [class^="ls-"]:before,
683
+ .about p [class*=" ls-"]:before {
684
+ color: #009ddb;
685
+ text-shadow: 1px 1px #fff;
686
+ margin-right: 0.2em;
687
+ }
688
+ .about footer a {
689
+ font-size: 0.9em;
690
+ color: #fff;
691
+ text-shadow: 0 -1px rgba(0,0,0,0.3);
692
+ display: block;
693
+ float: right;
694
+ padding: 0.3em 0.5em;
695
+ background-color: #009ddb;
696
+ background: linear-gradient(to bottom, #00a8ea, #0095d0);
697
+ }
698
+ .about footer a:hover {
699
+ background-color: #00b2f8;
700
+ background: linear-gradient(to bottom, #06b9ff, #00a9ec);
701
+ }
702
+ .tags {
703
+ list-style: none;
704
+ display: block;
705
+ margin: 0 8px;
706
+ }
707
+ .tags li {
708
+ display: block;
709
+ float: left;
710
+ position: relative;
711
+ font-size: 0.9em;
712
+ margin-right: 1.2em;
713
+ margin-bottom: 0.6em;
714
+ }
715
+ .tags li:last-child {
716
+ margin-right: 0;
717
+ }
718
+ .tags a,
719
+ .tags .count {
720
+ display: block;
721
+ box-sizing: border-box;
722
+ }
723
+ .tags a {
724
+ color: #009ddb;
725
+ text-shadow: 0 1px #fff;
726
+ padding: 5px 6px 5px 7px;
727
+ background-color: #f5f8ff;
728
+ background: linear-gradient(to bottom, #f6f9ff, #dde8fe);
729
+ }
730
+ .tags a .count {
731
+ position: absolute;
732
+ top: 0;
733
+ left: 100%;
734
+ z-index: 2;
735
+ overflow: hidden;
736
+ max-width: 0;
737
+ padding: 5px 0 5px 2px;
738
+ color: #fff;
739
+ text-shadow: 0 -1px rgba(0,0,0,0.3);
740
+ background-color: #009ddb;
741
+ background: linear-gradient(to bottom, #00a8ea, #0095d0);
742
+ opacity: 0.95;
743
+ transition-duration: 0.3s;
744
+ transition-timing-function: ease-out;
745
+ transition-property: padding, max-width;
746
+ }
747
+ .tags a:hover .count {
748
+ padding: 5px 7px 5px 6px;
749
+ max-width: 40px;
750
+ box-shadow: 1px 1px 2px rgba(0,0,0,0.2);
751
+ }
752
+ .content {
753
+ margin: 16px auto;
754
+ width: 2352px;
755
+ }
756
+ .content:after {
757
+ content: " ";
758
+ display: block;
759
+ clear: both;
760
+ }
761
+ .widget {
762
+ font-size: 0.8em;
763
+ }
764
+ .widget .panel {
765
+ width: 100%;
766
+ margin: 0;
767
+ display: block;
768
+ float: none;
769
+ }
770
+ .widget.naked .panel {
771
+ background-color: transparent;
772
+ padding: 0;
773
+ }
774
+ .content-4 {
775
+ max-width: 1344px;
776
+ }
777
+ @media screen and (max-width: 1680px) {
778
+ .content {
779
+ width: 1344px;
780
+ }
781
+ }
782
+ .content-3 {
783
+ max-width: 1008px;
784
+ }
785
+ @media screen and (max-width: 1344px) {
786
+ .content {
787
+ width: 1008px;
788
+ }
789
+ }
790
+ .content-2 {
791
+ max-width: 672px;
792
+ }
793
+ @media screen and (max-width: 1008px) {
794
+ .content {
795
+ width: 672px;
796
+ }
797
+ }
798
+ .content-1 {
799
+ max-width: 320px;
800
+ }
801
+ @media screen and (max-width: 672px) {
802
+ .content {
803
+ width: 320px;
804
+ }
805
+ .panel {
806
+ margin-right: 0;
807
+ margin-left: 0;
808
+ }
809
+ .tags {
810
+ margin: 0;
811
+ }
812
+ }
813
+ @media screen and (max-width: 720px) {
814
+ body > footer {
815
+ font-size: 1.3em;
816
+ }
817
+ body > footer .text {
818
+ display: none;
819
+ }
820
+ }
821
+ @media screen and (max-width: 400px) {
822
+ .extras.desktop {
823
+ display: none;
824
+ }
825
+ .extras.desktop img {
826
+ display: none;
827
+ }
828
+ .extras.mobile {
829
+ display: block;
830
+ }
831
+ .extras.mobile img {
832
+ display: block;
833
+ }
834
+ }
835
+ @media screen and (min-width: 500px) {
836
+ .widget .lift {
837
+ float: left;
838
+ margin-right: 3%;
839
+ }
840
+ }
841
+ @media screen and (min-width: 500px) and (max-width: 749px) {
842
+ .widget .lift {
843
+ width: 48.5%;
844
+ }
845
+ .widget .lift:nth-child(2n) {
846
+ margin-right: 0;
847
+ }
848
+ }
849
+ @media screen and (min-width: 750px) and (max-width: 999px) {
850
+ .widget .lift {
851
+ width: 31.333%;
852
+ }
853
+ .widget .lift:nth-child(3n) {
854
+ margin-right: 0;
855
+ }
856
+ }
857
+ @media screen and (min-width: 1000px) {
858
+ .widget .lift {
859
+ width: 22.75%;
860
+ }
861
+ .widget .lift:nth-child(4n) {
862
+ margin-right: 0;
863
+ }
864
+ }