.insp-wrap {
  position: relative;
  width: 100vw;
  left: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  background: hsl(45, 100%, 50%);
  overflow: hidden;
  min-height: 380px;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.insp-step-panel {
  position: absolute;
  top: 28px;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  width: 90%;
  max-width: 640px;
  transition: opacity 0.3s ease;
  z-index: 50;
  opacity: 0;
  pointer-events: none;
}
.insp-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: #b33030;
  color: white;
  font-size: 22px;
  font-weight: 700;
  font-family: Georgia, serif;
  margin-bottom: 10px;
}
.insp-step-title {
  font-size: 24px;
  font-weight: 700;
  color: hsl(0,0%,13%);
  margin-bottom: 7px;
  display: block;
}
.insp-step-desc {
  font-size: 15px;
  color: hsl(0,0%,22%);
  line-height: 1.65;
  max-width: 520px;
  margin: 0 auto;
  display: block;
}

.insp-scene {
  position: relative;
  width: 100%;
  height: 240px;
  overflow: hidden;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.insp-track {
  position: absolute;
  top: 0; left: 0;
  height: 100%;
  will-change: transform;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.insp-panel {
  position: absolute;
  top: 0;
  height: 100%;
  background: hsl(45, 100%, 50%);
  overflow: hidden;
}

.building {
  position: absolute;
  bottom: 4px;
  background: hsl(220, 18%, 30%);
  border-top: 2px solid hsl(220, 15%, 45%);
}
.win {
  width: 7px; height: 7px;
  background: hsl(50, 90%, 65%);
  opacity: 0.75;
  display: inline-block;
  margin: 2px;
}
.win.dark { background: hsl(220, 15%, 18%); opacity: 1; }

.w1-tape {
  position: absolute;
  bottom: 26px; left: 0; width: 100%; height: 8px;
  background: repeating-linear-gradient(90deg,#FFE000 0,#FFE000 20px,#111 20px,#111 40px);
  opacity: 0.9; z-index: 5;
}
.w1-label {
  position: absolute;
  top: 8px; left: 50%; transform: translateX(-50%);
  color: rgba(180,30,30,0.85);
  font-size: 9px; font-weight: 700; letter-spacing: 3px;
  font-family: sans-serif; text-transform: uppercase;
  border: 1px solid rgba(180,30,30,0.4); padding: 2px 10px;
  white-space: nowrap;
}

.monitor-wrap { position: absolute; top: 22px; right: 8%; }
.monitor-screen {
  width: 130px; height: 82px;
  background: hsl(230,30%,12%);
  border: 3px solid hsl(230,20%,50%);
  border-radius: 4px; overflow: hidden; position: relative;
}
.monitor-stand { width:18px;height:8px;background:hsl(230,20%,40%);margin:0 auto;border-radius:0 0 3px 3px; }
.monitor-base  { width:36px;height:4px;background:hsl(230,20%,35%);margin:0 auto;border-radius:2px; }
.db-view {
  position:absolute;inset:0;padding:5px;
  font-family:monospace;font-size:5.5px;color:#4eff91;
  display:flex;flex-direction:column;gap:2px;transition:opacity 0.5s;
}
.db-row { display:flex;gap:4px;border-bottom:1px solid rgba(78,255,145,0.15);padding-bottom:1px; }
.db-row span:first-child { color:rgba(78,255,145,0.5);width:16px; }
.suspect-view {
  position:absolute;inset:0;padding:5px;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  opacity:0;transition:opacity 0.5s;
}
.suspect-photo {
  width:26px;height:26px;border:2px solid #ff4444;border-radius:2px;
  background:hsl(230,25%,25%);display:flex;align-items:flex-end;justify-content:center;overflow:hidden;
}
.suspect-name { font-size:5px;color:#ff4444;font-family:monospace;font-weight:bold;letter-spacing:1px; }
.suspect-data { font-size:4.5px;color:#aaaaff;font-family:monospace;text-align:center;line-height:1.6; }
.desk { position:absolute;bottom:30px;right:calc(8% + 5px);width:155px;height:5px;background:hsl(30,30%,45%);border-radius:2px; }
.desk-leg { position:absolute;bottom:-16px;width:6px;height:16px;background:hsl(30,25%,40%); }

.board {
  position:absolute;top:6px;height:168px;
  background:hsl(30,40%,55%);border:4px solid hsl(30,30%,40%);border-radius:2px;
}
.pin { position:absolute;width:5px;height:5px;border-radius:50%;background:red;z-index:3; }
.clipping {
  position:absolute;background:hsl(50,60%,90%);border:1px solid hsl(40,30%,65%);
  font-size:4px;font-family:serif;color:#333;padding:3px;line-height:1.4;
}
.photo-card { position:absolute;background:white;border:1px solid #ccc;padding:2px; }
.photo-inner { background:hsl(220,15%,70%);display:flex;align-items:center;justify-content:center; }
.string-canvas { position:absolute;top:0;left:0;pointer-events:none; }

.police-building { position:absolute;bottom:4px;width:180px;height:130px;background:hsl(210,10%,72%);border-top:4px solid hsl(210,10%,58%); }
.police-sign { position:absolute;top:9px;left:50%;transform:translateX(-50%);background:hsl(220,80%,40%);color:white;font-size:6px;font-weight:bold;padding:2px 5px;letter-spacing:1px;white-space:nowrap;font-family:sans-serif; }
.police-door { position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:22px;height:32px;background:hsl(25,60%,30%);border:1px solid hsl(25,40%,20%); }
.police-window { position:absolute;background:hsl(200,50%,60%);border:2px solid hsl(210,10%,55%); }
.prison-building { position:absolute;bottom:4px;width:150px;height:100px;background:hsl(30,10%,58%);border-top:4px solid hsl(30,10%,44%); }
.prison-sign { position:absolute;top:7px;left:50%;transform:translateX(-50%);background:hsl(0,60%,30%);color:white;font-size:5px;font-weight:bold;padding:2px 5px;letter-spacing:1px;white-space:nowrap;font-family:sans-serif; }
.floor-bar { position:absolute;bottom:0;left:0;right:0;height:4px;background:hsl(0,0%,20%);z-index:10; }

.s-wrap {
  position: absolute;
  bottom: 4px;
  width: 20px;
  height: 60px;
  z-index: 30;
}
.s-head  { position:absolute;left:3px;top:0;width:14px;height:14px;background:hsl(0,0%,13%);border-radius:50%; }
.s-body  { position:absolute;left:7px;top:14px;width:6px;height:24px;background:hsl(0,0%,13%);border-radius:3px; }
.s-arm-l { position:absolute;left:8px;top:16px;width:4px;height:13px;background:hsl(0,0%,13%);border-radius:2px;transform-origin:50% 0;animation:armL 1.4s linear infinite paused; }
.s-arm-r { position:absolute;left:8px;top:16px;width:4px;height:13px;background:hsl(0,0%,13%);border-radius:2px;transform-origin:50% 0;animation:armR 1.4s linear infinite paused; }
.s-arm-l .fore { position:absolute;top:11px;left:0;width:4px;height:11px;background:hsl(0,0%,13%);border-radius:2px;transform-origin:50% 0;animation:forearm 1.4s linear infinite paused; }
.s-arm-r .fore { position:absolute;top:11px;left:0;width:4px;height:11px;background:hsl(0,0%,13%);border-radius:2px;transform-origin:50% 0;animation:forearm 1.4s linear infinite 0.7s paused; }
.s-leg-l { position:absolute;left:8px;top:36px;width:5px;height:18px;background:hsl(0,0%,13%);border-radius:2px;transform-origin:50% 0;animation:legL 0.9s linear infinite paused; }
.s-leg-r { position:absolute;left:8px;top:36px;width:5px;height:18px;background:hsl(0,0%,13%);border-radius:2px;transform-origin:50% 0;animation:legR 0.9s linear infinite paused; }
.s-leg-l .shin { position:absolute;top:16px;left:0;width:5px;height:14px;background:hsl(0,0%,13%);border-radius:2px;transform-origin:50% 0;animation:shin 0.9s linear infinite paused; }
.s-leg-r .shin { position:absolute;top:16px;left:0;width:5px;height:14px;background:hsl(0,0%,13%);border-radius:2px;transform-origin:50% 0;animation:shin 0.9s linear infinite 0.45s paused; }

@keyframes legL    { 0%,100%{transform:rotate(-35deg)} 50%{transform:rotate(35deg)} }
@keyframes legR    { 0%,100%{transform:rotate(35deg)}  50%{transform:rotate(-35deg)} }
@keyframes shin    { 0%,100%{transform:rotate(0deg)} 25%{transform:rotate(30deg)} 50%{transform:rotate(5deg)} 75%{transform:rotate(20deg)} }
@keyframes armL    { 0%,100%{transform:rotate(30deg)}  50%{transform:rotate(-30deg)} }
@keyframes armR    { 0%,100%{transform:rotate(-30deg)} 50%{transform:rotate(30deg)} }
@keyframes forearm { 0%,100%{transform:rotate(0deg)}   50%{transform:rotate(-50deg)} }
@keyframes blink   { 0%,100%{opacity:1} 50%{opacity:0.3} }

@keyframes trackScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(var(--scroll-dist)); }
}
