File size: 11,610 Bytes
e3521a3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
/* Mountain-climb leaderboard. Companion to mountain.js. Uses the site tokens from
 * styles.css (--paper, --surface, --ink, --soft, --muted, --line, --strong-line, --tint, --sans, --mono)
 * and defines every colour the drawing needs on the component itself, for light and dark. */
.mountain{
  --mtn-sky:#e9eef5;--mtn-sky-low:#ffffff;
  --mtn-far:#e3e8ef;--mtn-mid:#d2dae4;--mtn-near:#b9c4d1;--mtn-shade:#6f7f93;--mtn-foot:#a2aebd;
  --mtn-snow:#ffffff;--mtn-cap:#ffffff;--mtn-outline:#4b5665;--mtn-haze:#ffffff;
  --mtn-line:#7d8794;--mtn-route:#2f3742;--mtn-flag:#d6382a;--mtn-pole:#262a30;
  --mtn-gold:#e8b421;--mtn-silver:#c9d0da;--mtn-bronze:#c98a52;--mtn-on-gold:#1a1a1a;
  --mtn-marker:#28313c;--mtn-marker-text:#ffffff;--mtn-marker-ring:#ffffff;--mtn-focus:#191919;
  --mtn-pill:#20272f;--mtn-pill-text:#ffffff;--mtn-pill-edge:rgba(255,255,255,.55);--mtn-badge:rgba(255,255,255,.16);
  --mtn-text:#191919;--mtn-muted:#5d6672;--mtn-halo:rgba(255,255,255,.9);--mtn-trail:#1f262e;
  display:block;margin:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);overflow:hidden;font-family:var(--sans,Inter,Arial,sans-serif)}
html[data-theme="dark"] .mountain{
  --mtn-sky:#0d121a;--mtn-sky-low:#171b22;
  --mtn-far:#1e2632;--mtn-mid:#293340;--mtn-near:#38434f;--mtn-shade:#141a22;--mtn-foot:#28313c;
  --mtn-snow:#d5dde7;--mtn-cap:#c9d2dd;--mtn-outline:#8892a0;--mtn-haze:#171b22;
  --mtn-line:#6c7684;--mtn-route:#dfe5ec;--mtn-flag:#e4493a;--mtn-pole:#e8e8e8;
  --mtn-gold:#f2c13d;--mtn-silver:#aeb7c3;--mtn-bronze:#cf925c;--mtn-on-gold:#1a1a1a;
  --mtn-marker:#e9edf2;--mtn-marker-text:#151515;--mtn-marker-ring:#111111;--mtn-focus:#eeeeee;
  --mtn-pill:#e9ebee;--mtn-pill-text:#151515;--mtn-pill-edge:rgba(0,0,0,.55);--mtn-badge:rgba(0,0,0,.12);
  --mtn-text:#eeeeee;--mtn-muted:#a5adb8;--mtn-halo:rgba(17,17,17,.9);--mtn-trail:#e6eaef}

.mountain>script{display:none}
.mountain-canvas{display:block}

/* Header and caption. */
.mountain-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 22px 14px;border-bottom:1px solid var(--line)}
.mountain-title{margin:0;font-size:17px;font-weight:600;letter-spacing:-.015em;line-height:1.35;color:var(--ink)}
.mountain-subtitle{margin:4px 0 0;font-size:13px;line-height:1.6;color:var(--muted)}
.mountain-stamp{margin:0;font-family:var(--mono,ui-monospace,monospace);font-size:12px;line-height:1.6;color:var(--muted);white-space:nowrap}
.mountain-caption{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 20px;padding:12px 22px 14px;border-top:1px solid var(--line);font-size:12px;line-height:1.6;color:var(--muted)}
.mountain-note{margin:0}
.mountain-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}
.mountain-legend li{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.mtn-key{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--mtn-marker);border:2px solid var(--mtn-marker-ring);box-sizing:content-box}
.mtn-key--gold{background:var(--mtn-gold)}
.mtn-key--internal{border:1.5px dashed var(--mtn-marker);background:transparent;width:10px;height:10px}
.mtn-key--trail{width:20px;height:0;border:0;border-top:2px dashed var(--mtn-trail);border-radius:0;background:transparent}

/* Stage: the drawing plus the pill overlay. */
.mountain-stage{position:relative;display:block;width:100%;line-height:0}
.mountain-svg{display:block;width:100%;height:auto;font-family:inherit;font-variant-numeric:tabular-nums}
.mountain-svg text{font-family:inherit;line-height:1}

/* Terrain. */
.mtn-sky-top{stop-color:var(--mtn-sky)}
.mtn-sky-low{stop-color:var(--mtn-sky-low)}
.mtn-haze-top{stop-color:var(--mtn-haze);stop-opacity:0}
.mtn-haze-low{stop-color:var(--mtn-haze);stop-opacity:.55}
.mtn-far{fill:var(--mtn-far)}
.mtn-mid{fill:var(--mtn-mid)}
.mtn-cap{fill:var(--mtn-cap);opacity:.85}
.mtn-near{fill:var(--mtn-near)}
.mtn-snow{fill:var(--mtn-snow)}
.mtn-shade{fill:var(--mtn-shade);opacity:.28}
.mtn-stria{fill:none;stroke:var(--mtn-outline);stroke-width:1;opacity:.14;stroke-linejoin:round}
.mtn-foot{fill:var(--mtn-foot)}
.mtn-outline{fill:none;stroke:var(--mtn-outline);stroke-width:1;stroke-linejoin:round;opacity:.42}
.mtn-outline--foot{opacity:.22}
.mtn-contour{stroke:var(--mtn-line);stroke-width:1;stroke-dasharray:2 7;stroke-linecap:round;opacity:.38}
.mtn-contour-label{fill:var(--mtn-muted);font-size:12px;paint-order:stroke;stroke:var(--mtn-halo);stroke-width:3px;stroke-linejoin:round}
.mtn-base{stroke:var(--mtn-line);stroke-width:1}
.mtn-route{stroke:var(--mtn-route);stroke-width:2.2;stroke-dasharray:0 7;stroke-linecap:round;opacity:.72}
.mtn-pole{stroke:var(--mtn-pole);stroke-width:2;stroke-linecap:round}
.mtn-flag{fill:var(--mtn-flag)}
.mtn-peak-label{fill:var(--mtn-text);font-size:12px;font-weight:500;paint-order:stroke;stroke:var(--mtn-halo);stroke-width:3px;stroke-linejoin:round}
.mtn-stamp{fill:var(--mtn-muted);font-family:var(--mono,ui-monospace,monospace);font-size:12px}

/* Connectors, trails. */
.mtn-connector{stroke:var(--mtn-line);stroke-width:1;opacity:.5;transition:opacity .15s,stroke-width .15s}
.mtn-connector.is-active{stroke:var(--mtn-focus);stroke-width:1.5;opacity:1}
.mtn-trail-path{stroke:var(--mtn-trail);stroke-width:1.75;stroke-dasharray:6 5;stroke-linecap:round}
.mtn-trail-head{fill:var(--mtn-trail)}
.mtn-trail-label{fill:var(--mtn-text);font-size:12px;font-weight:600;paint-order:stroke;stroke:var(--mtn-halo);stroke-width:4px;stroke-linejoin:round}

/* Markers. */
.mtn-marker{cursor:default}
.mtn-marker-dot{fill:var(--mtn-marker);stroke:var(--mtn-marker-ring);stroke-width:2;transition:stroke-width .15s}
.mtn-marker--leader .mtn-marker-dot{fill:var(--mtn-gold);stroke-width:2.5}
.mtn-marker--silver .mtn-marker-dot{stroke:var(--mtn-silver);stroke-width:3.5}
.mtn-marker--bronze .mtn-marker-dot{stroke:var(--mtn-bronze);stroke-width:3.5}
.mtn-marker--waypoint .mtn-marker-dot{fill:var(--mtn-sky-low);stroke:var(--mtn-marker);stroke-width:1.5}
.mtn-marker-num{fill:var(--mtn-marker-text);font-size:12px;font-weight:700;pointer-events:none}
.mtn-marker--leader .mtn-marker-num{fill:var(--mtn-on-gold);font-size:14px}
.mtn-marker-halo{fill:none;stroke:var(--mtn-focus);stroke-width:2;opacity:0;transition:opacity .15s}
.mtn-marker--leader .mtn-marker-halo{stroke:var(--mtn-gold);stroke-width:1.5;opacity:.55}
.mtn-marker.is-active .mtn-marker-halo{stroke:var(--mtn-focus);stroke-width:2;opacity:1}
.mtn-marker-ring{fill:none;stroke:var(--mtn-marker);stroke-width:1.25;stroke-dasharray:3 3}
.mtn-marker-val{fill:var(--mtn-text);font-size:12px;font-weight:600;paint-order:stroke;stroke:var(--mtn-halo);stroke-width:4px;stroke-linejoin:round;opacity:0;transition:opacity .15s;pointer-events:none}
.mtn-marker.is-active .mtn-marker-val{opacity:1}

/* Pills: absolute overlay in the wide layout, ranks stacked left (even) and right (odd). */
.mountain-pills{list-style:none;margin:0;padding:0;position:absolute;inset:0;pointer-events:none;line-height:1}
.mountain-pill{position:absolute;display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 11px 0 4px;border-radius:14px;background:var(--mtn-pill);color:var(--mtn-pill-text);border:1px solid var(--mtn-pill-edge);font-size:13px;font-weight:600;white-space:nowrap;pointer-events:auto;cursor:default;box-sizing:border-box;transition:transform .15s,border-color .15s}
.mountain-pill--right{flex-direction:row-reverse;padding:0 4px 0 11px}
.mountain-pill:hover,.mountain-pill.is-active{border-color:var(--mtn-focus);transform:translateY(-1px)}
.mountain-pill:focus{outline:none}
.mountain-pill:focus-visible{outline:2px solid var(--mtn-focus);outline-offset:3px}
.mountain-pill--internal .mountain-badge{box-shadow:inset 0 0 0 1.5px var(--mtn-pill-edge)}
.mountain-badge{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--mtn-badge);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;flex:none}
.mountain-badge--gold{background:var(--mtn-gold);color:var(--mtn-on-gold)}
.mountain-badge--silver{background:var(--mtn-silver);color:var(--mtn-on-gold)}
.mountain-badge--bronze{background:var(--mtn-bronze);color:var(--mtn-on-gold)}
.mountain-pill-value{display:none}
/* Narrow desktop (700–1000px container): smaller pills leave the drawing more width. */
.mountain--narrow .mountain-pill{font-size:12px;padding:0 9px 0 4px}
.mountain--narrow .mountain-pill--right{padding:0 4px 0 9px}
.mountain-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* Compact layout (container narrower than the breakpoint): 4:3 drawing, pills listed below. */
.mountain--compact .mountain-head{flex-direction:column;gap:2px;padding:16px 16px 12px}
.mountain--compact .mountain-stamp{white-space:normal;margin-top:6px}
.mountain--compact .mountain-caption{padding:12px 16px}
.mountain--compact .mountain-pills{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px 16px 4px;pointer-events:auto;border-top:1px solid var(--line)}
.mountain--compact .mountain-pill{position:static;display:flex;flex-direction:row;height:auto;min-height:32px;padding:5px 10px 5px 5px;border-radius:16px;white-space:normal;font-size:12px;line-height:1.3;gap:7px}
.mountain--compact .mountain-pill-label{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}
.mountain--compact .mountain-pill-value{display:inline;font-variant-numeric:tabular-nums;font-weight:500;opacity:.8;flex:none}
.mountain--compact .mountain-pill:hover,.mountain--compact .mountain-pill.is-active{transform:none}
@media(max-width:420px){.mountain--compact .mountain-pills{grid-template-columns:1fr}} /* one column on phones: labels stay on one or two lines */

/* Ranked table (no-JS fallback and screen readers). An authored table with more than
 * three columns goes inside <div class="mountain-table-wrap"> so it scrolls sideways on phones. */
.mountain-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.mountain-details{border-top:1px solid var(--line);font-size:13px}
.mountain-details summary{padding:12px 22px;cursor:pointer;color:var(--soft);font-weight:500}
.mountain-details summary:hover{background:var(--tint)}
.mountain-details summary:focus-visible{outline:2px solid var(--ink);outline-offset:-3px}
.mountain-table{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums;text-align:left}
.mountain-table caption{padding:0 22px 8px;text-align:left;font-size:12px;color:var(--muted)}
.mountain-table th,.mountain-table td{padding:9px 12px;border-top:1px solid var(--line);vertical-align:top}
.mountain-table thead th{font-size:12px;font-weight:600;color:var(--soft);background:var(--tint)}
.mountain-table tbody th{font-weight:500}
.mountain-table tr>*:first-child{padding-left:22px;width:44px;color:var(--muted)}
.mountain-table tr>*:last-child{padding-right:22px;text-align:right}
.mountain:not(.mountain--ready) .mountain-canvas{display:none}
.mountain:not(.mountain--ready):not(.mountain--error):not(:has(.mountain-table)){display:none}
.mountain:not(.mountain--ready) .mountain-table caption{padding-top:12px}
.mountain--error .mountain-canvas::before{content:"Leaderboard data could not be read.";display:block;padding:18px 22px;font-size:13px;color:var(--muted)}

@media(prefers-reduced-motion:reduce){.mountain *{transition:none!important}}
@media(forced-colors:active){
  .mountain-pill{border-color:ButtonText;forced-color-adjust:none;background:ButtonFace;color:ButtonText}
  .mtn-marker-dot{stroke:CanvasText}
}