#boot-splash {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-content: center;
  gap: 12px;
  background: #fff;
  color: #000;
  text-align: center;
  transition: opacity 320ms ease;
}
#boot-splash.is-leaving { opacity: 0; pointer-events: none; }
.boot-logo { font: 42px/1 "Archivo Black", sans-serif; letter-spacing: -3px; }
.boot-status { font: 12px/1.4 Arial, sans-serif; }

#scale-dock[hidden] { display: none; }
#scale-dock {
  position: fixed;
  z-index: 9;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  mix-blend-mode: difference;
  user-select: none;
}
#scale-slider {
  position: relative;
  width: 50px;
  height: 140px;
  cursor: ns-resize;
  touch-action: none;
  outline: none;
}
#scale-slider:focus-visible #scale-knob { box-shadow: 0 0 0 4px currentColor; }
#scale-line {
  position: absolute;
  display: block;
  top: 0;
  left: 9px;
  width: 1px;
  height: 100%;
  background: currentColor;
}
#scale-line::before, #scale-line::after {
  content: "";
  position: absolute;
  left: -4px;
  width: 9px;
  height: 1px;
  background: currentColor;
}
#scale-line::before { top: 0; }
#scale-line::after { bottom: 0; }
#scale-knob {
  position: absolute;
  z-index: 1;
  left: 3px;
  top: 80px;
  width: 13px;
  height: 13px;
  border: 1px solid currentColor;
  border-radius: 50%;
  background: transparent;
  transform: translateY(-50%);
  transition: top 100ms ease;
}
#scale-slider.is-dragging #scale-knob { transition: none; }
#scale-value {
  position: absolute;
  left: 25px;
  top: 50%;
  transform: translateY(-50%);
  writing-mode: vertical-rl;
  font: 300 11px/1 "Helvetica Neue", Arial, sans-serif;
  letter-spacing: .13em;
  white-space: nowrap;
}
#scale-help.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
.maplibregl-ctrl-bottom-right .maplibregl-ctrl-group,
.maplibregl-ctrl-scale { display: none !important; }

@media (max-width: 700px) {
  #scale-dock { right: 6px; top: 43%; }
  .locate-control { right: 12px !important; bottom: 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
  #boot-splash, #scale-knob { transition: none; }
}
