/* 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