/* ============================================================
   CASES — before / after, dragged
   ============================================================ */

.case-list{ display: grid; gap: clamp(36px, 5vw, 72px); }

.case{
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
  align-items: center;
  gap: clamp(22px, 3.4vw, 54px);
}
.case:nth-child(even) .compare{ order: 2; }

/* — the comparison — */

.compare{
  position: relative;
  aspect-ratio: 600 / 420;
  border-radius: clamp(16px, 1.8vw, 24px);
  overflow: hidden;
  background: #EFE9DE;
  touch-action: pan-y;
}
.compare-a,
.compare-b{ position: absolute; inset: 0; }
.compare-b{ clip-path: inset(0 0 0 var(--pos)); }
.compare svg{ width: 100%; height: 100%; display: block; }

.compare-tag{
  position: absolute;
  z-index: 3;
  top: 14px;
  inset-inline-start: 14px;
  padding: 7px 13px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .55);
  border: 1px solid rgba(255, 255, 255, .7);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  backdrop-filter: blur(14px) saturate(160%);
  color: var(--espresso);
  font-size: .64rem;
  font-weight: 500;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.compare-tag-b{ inset-inline-start: auto; inset-inline-end: 14px; }

.compare-handle{
  position: absolute;
  z-index: 4;
  top: 0;
  bottom: 0;
  left: var(--pos);
  width: 2px;
  margin-left: -1px;
  background: var(--bone-hi);
  box-shadow: 0 0 0 1px rgba(22, 21, 26, .12);
  pointer-events: none;
}
.compare-handle i{
  position: absolute;
  top: 50%;
  left: 50%;
  width: 42px;
  height: 42px;
  margin: -21px 0 0 -21px;
  border-radius: 50%;
  background: var(--bone-hi);
  box-shadow: 0 6px 20px rgba(22, 21, 26, .26);
}
.compare-handle i::before,
.compare-handle i::after{
  content: "";
  position: absolute;
  top: 50%;
  width: 0;
  height: 0;
  margin-top: -4px;
  border: 4px solid transparent;
}
.compare-handle i::before{ left: 9px; border-right-color: var(--ink); }
.compare-handle i::after{ right: 9px; border-left-color: var(--ink); }

.compare-range{
  position: absolute;
  z-index: 5;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: ew-resize;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
}
.compare-range::-webkit-slider-thumb{
  -webkit-appearance: none;
  width: 48px;
  height: 100%;
  cursor: ew-resize;
}
.compare-range::-moz-range-thumb{
  width: 48px;
  height: 100%;
  border: 0;
  background: transparent;
  cursor: ew-resize;
}
.compare-range:focus-visible + .compare-handle,
.compare:has(.compare-range:focus-visible) .compare-handle i{
  box-shadow: 0 0 0 3px var(--clay-soft);
}

/* — the written half — */

.case-label{ color: var(--clay); margin: 0 0 12px; }
.case-body h3{
  margin: 0 0 14px;
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(1.7rem, 2.8vw, 2.4rem);
  line-height: 1.08;
  letter-spacing: -.015em;
}
.case-note{
  max-width: 44ch;
  margin: 0 0 22px;
  font-size: .95rem;
  line-height: 1.66;
  color: var(--on-light-mute);
}
.case-facts{ margin: 0; }
.case-fact{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 0;
  border-top: 1px solid var(--line-light);
}
.case-fact dt{ font-size: .78rem; letter-spacing: .04em; color: var(--on-light-mute); }
.case-fact dd{ margin: 0; font-size: .9rem; text-align: end; }

@media (max-width: 860px){
  .case{ grid-template-columns: 1fr; }
  .case:nth-child(even) .compare{ order: 0; }
}
