.analog-meter {
  padding: 4px;
  border: 1px solid #080908;
  border-radius: 8px;
  background: linear-gradient(180deg, #24251f, #0c0e0c);
  box-shadow:
    inset 0 1px rgba(255,255,255,.07),
    inset 0 -1px rgba(0,0,0,.75),
    0 2px 5px rgba(0,0,0,.42);
}

.meter-window {
  position: relative;
  overflow: hidden;
  border: 1px solid #302b20;
  border-radius: 5px;
  background:
    radial-gradient(ellipse at 50% 115%, rgba(159,124,54,.16), transparent 54%),
    linear-gradient(180deg, #282216 0%, #17140d 58%, #0d0c09 100%);
  box-shadow:
    inset 0 0 12px rgba(0,0,0,.78),
    inset 0 1px rgba(255,224,160,.08);
}

/* Straight ivory S-meter scale line, matching the supplied reference. */
.meter-window::before {
  content: "";
  position: absolute;
  z-index: 1;
  left: 7%;
  right: 7%;
  top: 48%;
  height: 2px;
  border-radius: 2px;
  background: #ead9a7;
  box-shadow: 0 0 3px rgba(234,217,167,.16);
  pointer-events: none;
}

/* Red strong-signal section of the same straight scale line. */
.meter-window::after {
  content: "";
  position: absolute;
  z-index: 2;
  left: 69%;
  right: 7%;
  top: 48%;
  height: 2px;
  border-radius: 2px;
  background: #d1463c;
  box-shadow: 0 0 4px rgba(209,70,60,.28);
  pointer-events: none;
}

.meter-scale {
  position: absolute;
  inset: 0;
  display: block;
  z-index: 4;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 600;
  font-size: 8px;
  line-height: 1;
}

.meter-scale::before {
  content: "S";
  position: absolute;
  left: 3.5%;
  bottom: 11%;
  color: #d8c89a;
  font-size: 7px;
  font-weight: 700;
}

/* Keep the unit separate from +60 so the final two marks never collide or clip. */
.meter-scale::after {
  content: "dBm";
  position: absolute;
  right: 3.5%;
  bottom: 11%;
  color: #dc594e;
  font-size: 6px;
  font-weight: 700;
  letter-spacing: .02em;
  white-space: nowrap;
}

.meter-scale span {
  position: absolute;
  top: 18%;
  width: max-content;
  color: #e7d8ab;
  text-shadow: 0 0 2px rgba(231,216,171,.18);
  transform: translateX(-50%);
}

/* S1, S3, S5, S7, S9, then +10, +40, +60. */
.meter-scale span:nth-child(1) { left: 8%; }
.meter-scale span:nth-child(2) { left: 24%; }
.meter-scale span:nth-child(3) { left: 40%; }
.meter-scale span:nth-child(4) { left: 55%; }
.meter-scale span:nth-child(5) { left: 69%; }
.meter-scale span:nth-child(6) { left: 79%; }
.meter-scale span:nth-child(7) { left: 88%; }
.meter-scale span:nth-child(8) { left: 96%; }

.meter-scale span:nth-child(n+6) {
  color: #dc594e;
}

/* Tick marks drop to the straight scale line. */
.meter-scale span::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 145%;
  width: 1px;
  height: 10px;
  margin-left: -.5px;
  background: #e7d8ab;
  box-shadow: 0 0 2px rgba(231,216,171,.12);
}

.meter-scale span:nth-child(n+6)::after {
  background: #dc594e;
}

/* Slender ivory needle, matching the supplied reference. */
.meter-needle {
  --meter-cal-angle: -66deg;
  z-index: 6;
  left: 50%;
  bottom: -10px;
  width: 3px;
  height: 205%;
  margin-left: -1.5px;
  border-radius: 2px 2px 0 0;
  background: linear-gradient(90deg, #bfae7e 0%, #fff1bd 46%, #ead39d 100%);
  box-shadow: 0 0 2px rgba(255,239,190,.34);
  transform-origin: 50% 100%;
  transform: rotate(var(--meter-cal-angle, var(--meter-angle)));
  transition: transform .11s linear;
}

.meter-pivot {
  z-index: 7;
  bottom: -8px;
  width: 8px;
  height: 8px;
  margin-left: -4px;
  border: 0;
  background: #17130d;
  box-shadow: none;
}
