/* The slope map at night: dark relief, one warm accent, and every colour on it carries a meaning. */
.slope-map-page{--open:#35c776;--date:#58a6f0;--prep:#f0a92b;--closed:#8b94a0;--silent:#5e6670;--night:#14181c;--night-2:#1b2025;--snow:#fbfaf7;--dim:#a5a9ab;--hair:#fbfaf71f;background:var(--night);color:var(--snow)}
.page-map .site-footer{margin:0}.page-map .main-content{background:#14181c}
.slope-row--open{--status:var(--open)}.slope-row--date{--status:var(--date)}.slope-row--prep{--status:var(--prep)}.slope-row--closed{--status:var(--closed)}.slope-row--silent{--status:var(--silent)}
.slope-map-stage{position:relative;overflow:hidden}
.slope-map-title{padding:28px 32px 12px}.slope-map-title h1{font-size:clamp(34px,4vw,60px);line-height:.98;margin:0 0 8px;max-width:none;color:var(--snow)}.slope-map-title p{margin:0;max-width:56ch;font-size:15px;line-height:1.5;color:var(--dim)}
.slope-map-canvas[hidden]{display:none}
.slope-map-side a{color:inherit}
.slope-map-list{margin:0;padding:0;list-style:none}
.slope-row{position:relative;display:grid;grid-template-columns:128px minmax(0,1fr);border-block-end:1px solid var(--hair);transition:background-color .2s}.slope-row[hidden]{display:none}
.slope-row.is-hot{background:#fbfaf70f}.slope-strip{position:relative;overflow:hidden;background:var(--night-2);min-height:128px}
.slope-strip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-out)}.slope-row.is-hot .slope-strip img{transform:scale(1.06)}
.slope-temp{position:absolute;inset-block-start:8px;inset-inline-start:8px;padding:1px 7px;border-radius:999px;background:#0e1114cc;color:var(--snow);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.slope-card{padding:14px 18px;min-width:0}.slope-card p{margin:0}
.slope-card h3{margin:0;font-size:19px;line-height:1.15;letter-spacing:-.02em;font-weight:650;color:var(--snow)}.slope-card h3 a{text-decoration:none}.slope-card h3 a:hover{text-decoration:underline}
.slope-time{display:flex;gap:8px;align-items:center;margin-block-start:4px!important;font-size:15px;font-weight:600;color:#f59a63}
.slope-moon::before{content:"☾";font-size:14px;color:var(--snow)}
.slope-status{display:flex;gap:8px;align-items:baseline;margin-block-start:4px!important;font-size:14px;color:var(--dim)}
.slope-dot{flex:none;display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--status)}
.slope-away{font-size:13px;color:var(--snow)}.slope-away:empty{display:none}
.slope-numbers{display:flex;flex-wrap:wrap;gap:4px 18px;margin:8px 0 0}.slope-numbers:empty{display:none}.slope-numbers div{display:flex;gap:5px;align-items:baseline}.slope-numbers dt{font-size:12px;color:var(--dim);margin-inline-end:5px}.slope-numbers dd{margin:0 0 0 2px;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.slope-numbers small{font-size:11px;font-weight:400}
.slope-image-note{font-size:11px;color:var(--dim);margin-block-start:6px!important}
.slope-links{display:flex;flex-wrap:wrap;gap:0 14px;margin-block-start:6px!important;font-size:14px}.slope-links a{display:inline-flex;align-items:center;min-height:36px;font-weight:550;color:var(--snow)}.slope-links a:first-child{color:#f59a63}
.slope-map-notes{display:grid;gap:8px;padding-block:20px 44px;font-size:13px;color:var(--dim)}.slope-map-notes p{margin:0;max-width:80ch}.slope-map-notes a{color:inherit}
.slope-legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;list-style:none;color:var(--snow)}.slope-legend li{display:flex;gap:8px;align-items:baseline}
/* Live map layout, only once the script and WebGL are there. */
.is-live.slope-map-stage{display:grid;grid-template-columns:minmax(0,1fr) 440px;height:calc(100vh - 64px);min-height:620px}
.is-live .slope-map-canvas{grid-column:1;grid-row:1;height:100%;background:var(--night)}
.is-live .slope-map-title{grid-column:1;grid-row:1;align-self:start;justify-self:start;position:relative;z-index:2;pointer-events:none;padding:22px 90px 44px 28px;background:radial-gradient(ellipse at 0 0,#14181ce6 40%,#14181c00 72%)}
.is-live .slope-map-side{grid-column:2;grid-row:1;display:flex;flex-direction:column;min-height:0;border-inline-start:1px solid var(--hair);background:var(--night)}
html[dir=rtl] .is-live .slope-map-title{justify-self:end;padding:22px 28px 44px 90px;background:radial-gradient(ellipse at 100% 0,#14181ce6 40%,#14181c00 72%)}
.slope-map-controls{padding:14px 18px 10px;border-block-end:1px solid var(--hair)}
.slope-map-views{display:none}
.slope-map-filters{display:flex;flex-wrap:wrap;gap:6px}
.slope-map-filters button,.slope-map-views button{min-height:34px;padding:5px 12px;border:1px solid var(--hair);border-radius:999px;background:transparent;color:var(--snow);font-size:13.5px;line-height:1.2;transition:background-color .15s,color .15s}
.slope-map-filters button:hover{border-color:var(--snow)}
.slope-map-filters button[aria-pressed=true],.slope-map-views button[aria-pressed=true]{background:var(--snow);border-color:var(--snow);color:#0e1114}
.slope-map-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 0;font-size:13px;color:var(--dim)}
.slope-near{min-height:32px;padding:0;border:0;background:none;color:var(--snow);font-size:13.5px;font-weight:550;text-decoration:underline;text-underline-offset:.23em}
.is-live .slope-map-list{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#fbfaf733 transparent}
.is-live .slope-row{cursor:pointer}
/* Pins. The canvas keeps left-to-right geometry in every language. */
.slope-pin{position:absolute;width:0;height:0}.slope-pin[hidden]{display:none}
.slope-pin .slope-dot{position:absolute;left:-6px;top:-6px;width:12px;height:12px;box-shadow:0 0 0 2px #0e1114,0 0 0 3px var(--status)}
.slope-row--open.slope-pin .slope-dot::after{content:"";position:absolute;inset:-2px;border-radius:50%;background:var(--status);animation:slope-pulse 2.2s ease-out infinite}
@keyframes slope-pulse{to{transform:scale(3.4);opacity:0}}
.slope-leader{position:absolute;left:0;top:0;height:1px;background:#fbfaf766;transform-origin:0 0;pointer-events:none;opacity:0;transition:opacity .4s}.slope-leader[hidden]{display:none}
.slope-tag{position:absolute;left:0;top:0;width:max-content;display:flex;align-items:center;gap:7px;max-width:210px;padding:3px 11px 3px 3px;border:1px solid var(--hair);border-radius:999px;background:#0e1114e6;color:var(--snow);font:inherit;text-align:start;white-space:nowrap;cursor:pointer;opacity:0;transition:opacity .4s,transform .35s var(--ease-out),background-color .15s,border-color .15s}
.slope-tag[hidden]{display:none}
.slope-tag-letter{flex:none;width:var(--size);height:var(--size);border-radius:50%;background:var(--night-2) center/230% no-repeat;box-shadow:0 0 0 2px var(--status)}.slope-tag-letter.is-photo{background-size:cover}
.slope-tag-letter{display:grid;place-items:center;font-size:15px;font-weight:700}
.slope-tag-text{display:grid;min-width:0;line-height:1.15;unicode-bidi:plaintext}.slope-tag b{font-size:13px;font-weight:650;overflow:hidden;text-overflow:ellipsis}.slope-tag small{font-size:11.5px;color:#f59a63;font-variant-numeric:tabular-nums}
.has-arrived .slope-tag,.has-arrived .slope-leader{opacity:1;transition-delay:calc(var(--order)*45ms),0s,0s,0s}
.slope-pin.is-hot{z-index:5}.slope-pin.is-hot .slope-tag{background:var(--snow);border-color:var(--snow);color:#0e1114}.slope-pin.is-hot .slope-tag small{color:#b4500f}.slope-pin.is-hot .slope-leader{background:var(--snow)}
.slope-you{position:relative}.slope-you i{display:block;width:14px;height:14px;border-radius:50%;background:var(--accent);border:3px solid #fff}
.slope-you span{position:absolute;left:18px;top:-3px;font-size:12px;font-weight:600;color:var(--snow);white-space:nowrap}
.slope-kremlin{position:relative;width:0;height:0}.slope-kremlin i{position:absolute;left:-5px;top:-5px;width:10px;height:10px;background:#f26b1d;transform:rotate(45deg);box-shadow:0 0 0 2px #0e1114,0 0 14px 4px #f26b1d99}
.slope-kremlin span{position:absolute;left:12px;top:-8px;font-size:12px;font-weight:650;color:var(--snow);white-space:nowrap;text-shadow:0 0 4px #0e1114,0 0 4px #0e1114}
/* Large card on hover. */
.slope-peek{pointer-events:none;position:absolute;z-index:6;width:330px;overflow:hidden;border-radius:12px;background:var(--night);color:var(--snow);box-shadow:0 18px 50px #0009,0 0 0 1px var(--hair);animation:slope-peek .22s var(--ease-out)}.slope-peek[hidden]{display:none}.slope-peek.is-pinned{pointer-events:auto}
.slope-peek>img{display:block;width:100%;height:172px;object-fit:cover}.slope-peek .slope-card{padding:14px 16px}.slope-peek .slope-card h3{font-size:22px}.slope-peek a{color:var(--snow)}.slope-peek .slope-links a:first-child{color:#f59a63}
@keyframes slope-peek{from{opacity:0;transform:translateY(8px) scale(.98)}}
.slope-map-canvas .maplibregl-ctrl-group{background:#0e1114d9;box-shadow:0 0 0 1px var(--hair)}.slope-map-canvas .maplibregl-ctrl-group button+button{border-top-color:var(--hair)}.slope-map-canvas .maplibregl-ctrl-icon{filter:invert(1)}
.slope-map-canvas .maplibregl-ctrl-attrib{background:#0e1114b3;color:var(--dim);font-size:10px}.slope-map-canvas .maplibregl-ctrl-attrib a{color:inherit}
@media (prefers-reduced-motion:reduce){.slope-tag,.slope-leader,.slope-peek,.slope-strip img{transition:none;animation:none}.slope-row--open.slope-pin .slope-dot::after{animation:none}}
@media (max-width:900px){
 .slope-map-title{padding:20px 16px 12px}
 .slope-row{grid-template-columns:104px minmax(0,1fr)}.slope-card{padding:12px 14px}.slope-links a{min-height:40px}
 .is-live.slope-map-stage{display:block;height:calc(100svh - 96px);min-height:520px}
 .is-live .slope-map-canvas{position:absolute;inset:0}
 .is-live .slope-map-title,html[dir=rtl] .is-live .slope-map-title{position:absolute;inset-block-start:0;inset-inline:0;padding:10px 16px 34px;background:linear-gradient(#14181cf2 45%,#14181c00)}
 .is-live .slope-map-title h1{font-size:26px;margin:0}.is-live .slope-map-title p{display:none}
 .is-live .slope-map-side{position:absolute;inset:0;z-index:3;display:block;border:0;background:none;pointer-events:none}
 .slope-map-controls{position:absolute;inset-block-start:46px;inset-inline:0;border:0;padding:0 16px;pointer-events:auto}
 .slope-map-views{display:inline-flex;position:absolute;inset-block-start:-40px;inset-inline-end:16px;padding:2px;border-radius:999px;background:#0e1114cc}.slope-map-views button{min-height:32px;padding:3px 12px;border:0}
 .slope-map-filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding-inline:16px;scrollbar-width:none}.slope-map-filters button{flex:none;min-height:40px;background:#0e1114cc}.slope-map-filters button[aria-pressed=true]{background:var(--snow)}
 .slope-map-meta{display:none}
 .is-live .slope-map-list{position:absolute;inset-inline:0;inset-block-end:10px;display:flex;gap:10px;overflow:auto hidden;padding-inline:16px;scroll-snap-type:x mandatory;scrollbar-width:none;pointer-events:auto}
 .is-live .slope-row{flex:none;width:min(84vw,330px);grid-template-columns:96px minmax(0,1fr);height:150px;overflow:hidden;border:0;border-radius:12px;background:#0e1114f2;box-shadow:0 8px 28px #0008;scroll-snap-align:center}
 .is-live .slope-row.is-hot{background:#0e1114f2;box-shadow:0 0 0 1px var(--snow),0 8px 28px #0008}
 .is-live .slope-row .slope-card{padding:10px 12px;overflow:hidden}.is-live .slope-row .slope-card h3{font-size:16px}.is-live .slope-row .slope-numbers,.is-live .slope-row .slope-image-note{display:none}
 .slope-tag{padding:2px 8px 2px 2px;gap:5px;max-width:124px}.slope-tag-letter{--size:24px}.slope-tag b{font-size:11.5px}.slope-tag small{display:none}
 .is-live .slope-row .slope-links{gap:0 10px;font-size:13px;flex-wrap:nowrap;overflow:hidden}.is-live .slope-row .slope-links a{min-height:34px;white-space:nowrap}.is-live .slope-row .slope-links a:nth-child(n+2){display:none}
 .is-live[data-view=list] .slope-map-canvas,.is-live[data-view=list] .slope-map-title,.is-live[data-view=list] .slope-peek{visibility:hidden}
 .is-live[data-view=list] .slope-map-side{background:var(--night);overflow-y:auto;pointer-events:auto}
 .is-live[data-view=list] .slope-map-list{position:static;display:block;overflow:visible;padding:0}
 .is-live[data-view=list] .slope-row{width:auto;height:auto;grid-template-columns:104px minmax(0,1fr);border-radius:0;box-shadow:none;background:none;border-block-end:1px solid var(--hair)}
 .is-live[data-view=list] .slope-row .slope-numbers{display:flex}.is-live[data-view=list] .slope-row .slope-links a:nth-child(n+2){display:inline-flex}.is-live[data-view=list] .slope-row .slope-links{flex-wrap:wrap}
 .is-live[data-view=list] .slope-map-controls{position:sticky;inset-block-start:0;z-index:2;padding-block:50px 8px;background:var(--night)}.is-live[data-view=list] .slope-map-views{inset-block-start:8px}
}
