.sre-terrain-layer {
  filter: blur(16px);
  opacity: .72;
}

.sre-terrain-cell {
  opacity: 1;
}

.sre-town rect {
  opacity: .72;
}

.sre-landscape-layer text {
  opacity: .72;
}

.sre-river,
.sre-firth {
  opacity: .82;
}
.sre-firth-area { fill:#b8dceb; opacity:.88; stroke:#55a7df; stroke-width:2; vector-effect:non-scaling-stroke; }

.sre-map {
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.sre-map.is-dragging { cursor: grabbing; }
.sre-map-tools > div { display: flex; flex-wrap: wrap; gap: .35rem; }
.sre-map-tools .sre-orientation { border-color: #234b5d; background: #eef7fa; }
.sre-map-tools .sre-view-status { font-weight: 600; }
.sre-river-label { fill: #337fba; font: italic 13px Georgia, serif; paint-order: stroke; stroke: #f7f3e8; stroke-width: 3px; }
.sre-hawick-main,.sre-hawick-siding,.sre-hawick-road,.sre-hawick-platform,.sre-hawick-building { vector-effect: non-scaling-stroke; }
.sre-hawick-main { fill: none; stroke: #632f29; stroke-width: 3; }
.sre-hawick-siding { fill: none; stroke: #655a50; stroke-width: 1.5; }
.sre-hawick-road { fill: none; stroke: #b9a68d; stroke-width: 1; }
.sre-hawick-platform { fill: #d8c7a6; stroke: #6f6253; stroke-width: 1; }
.sre-hawick-building { fill: #b98b65; stroke: #5f4434; stroke-width: 1; }
.sre-town rect { fill:#a79d83; opacity:.45; stroke:#756d59; stroke-width:.6; rx:1; }
.sre-castle-symbol { fill: #6f4934; stroke: #f6eed8; stroke-width: 1.2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.sre-pw-sleepers { fill:none; stroke:#182932; stroke-width:10; stroke-dasharray:1 9; opacity:.72; vector-effect:non-scaling-stroke; pointer-events:none; }
.sre-pw-rail { fill:none; stroke:#f6f0df; stroke-width:4; vector-effect:non-scaling-stroke; pointer-events:none; }
.sre-structure-icon { fill:none; stroke:#65392f; stroke-width:2.2; vector-effect:non-scaling-stroke; }
.sre-train-layer { pointer-events:none; }
.sre-train-marker { fill:#f2b64e; stroke:#142832; stroke-width:2; vector-effect:non-scaling-stroke; filter:drop-shadow(0 1px 2px rgba(0,0,0,.5)); }
.sre-map.is-hawick-detail .sre-terrain-layer,
.sre-map.is-hawick-detail .sre-boundary-layer,
.sre-map.is-hawick-detail .sre-town-layer,
.sre-map.is-hawick-detail .sre-landscape-layer,
.sre-map.is-hawick-detail .sre-gradient-layer,
.sre-map.is-hawick-detail .sre-structure-layer,
.sre-map.is-hawick-detail .sre-route-line,
.sre-map.is-hawick-detail .sre-pw-sleepers,
.sre-map.is-hawick-detail .sre-pw-rail,
.sre-map.is-hawick-detail .sre-service-line,
.sre-map.is-hawick-detail .sre-train-layer,
.sre-map.is-hawick-detail .sre-station,
.sre-map.is-hawick-detail .sre-map-label { display: none !important; }

/* 0.8.7: restore the generous route-view proportions. */
.sre-map {
  aspect-ratio: 25 / 21;
  transform-origin: 50% 100%;
  transition: transform .35s ease, filter .35s ease;
  backface-visibility: hidden;
}
.sre-map.is-perspective {
  transform: perspective(1250px) rotateX(var(--sre-perspective-angle,20deg)) scale(.97,1.035);
  filter: drop-shadow(-8px 10px 0 #111) drop-shadow(8px 0 0 #111) drop-shadow(0 14px 14px rgba(0,0,0,.24));
}
.sre-perspective-control { display:inline-flex; align-items:center; gap:.35rem; padding:.15rem .5rem; border:1px solid #b8ad99; border-radius:999px; background:#f7f3e8; font-size:.78rem; }
.sre-perspective-control[hidden] { display:none; }
.sre-perspective-control input { width:7rem; accent-color:#8b3f2c; }
.sre-perspective-control output { min-width:2.2rem; font-weight:700; }
.sre-perspective-strip { display:flex; justify-content:flex-end; align-items:center; width:100%; box-sizing:border-box; padding:6px 10px; border:2px solid #142832; border-bottom:0; background:#f7f3e8; }
.sre-perspective-strip[hidden] { display:none; }
.sre-town-population { font:700 10px Arial,sans-serif !important; fill:#71401f; letter-spacing:.01em; paint-order:stroke; stroke:#f7f1dd; stroke-width:3px; }
.sre-population { margin:.55rem 0; padding:.45rem .55rem; background:#fff8df; border-left:3px solid #a35b2b; }
.sre-population span { font-size:.78em; color:#6c655c; }
.sre-contour-line { fill:none; stroke:#9d7d55; stroke-width:.75; opacity:.5; vector-effect:non-scaling-stroke; pointer-events:none; }
.sre-contour-line.is-index { stroke:#765c3d; stroke-width:1.1; opacity:.6; }
.sre-firth-area {
  fill: #b9dcf0;
  stroke: #55a7df;
  stroke-width: 2;
}
.sre-firth-label {
  fill: #2e78a8;
  font: italic 15px Georgia, serif;
  letter-spacing: .12em;
  paint-order: stroke;
  stroke: #e8f4fa;
  stroke-width: 4;
}
.sre-place-list {
  grid-row: 1 / span 2;
  align-self: stretch;
  max-height: none;
  overflow: visible;
}
.sre-place-group {
  margin: 1rem .45rem .35rem;
  padding-bottom: .25rem;
  border-bottom: 1px solid #d5c8ad;
  color: #8b4b31;
  font: 700 .72rem/1.2 Arial, sans-serif;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.sre-gallery figcaption strong,
.sre-gallery figcaption span,
.sre-gallery figcaption small { display:block; }
.sre-gallery figcaption span { margin:.3rem 0; line-height:1.35; }
.sre-photo-description { margin:.55rem 0; }
.sre-photo-description strong,
.sre-photo-description span { display:block; }
.sre-photo-description span { margin-top:.25rem; font-size:.86rem; line-height:1.35; }
@media (max-width: 900px) {
  .sre-place-list {
    grid-row: auto;
    max-height: none;
    overflow: visible;
  }
  .sre-map.is-perspective {
    transform: perspective(900px) rotateX(var(--sre-perspective-angle,18deg)) scale(.97,1.025);
  }
}
