/* GOLD CITY v3.2 — Lightweight animated cars and 2D infrastructure.
   Pure decoration: no pointer interception, no WebGL, no new income. */
#gold-city-2d .city32-traffic,
#gold-city-2d .city32-infrastructure{
  position:absolute;inset:0;pointer-events:none;overflow:hidden;
}
#gold-city-2d .city32-infrastructure{z-index:2}
#gold-city-2d .city32-traffic{z-index:3}
#gold-city-2d .city32-car{
  position:absolute;left:var(--drive-x);top:var(--drive-y);
  width:13px;height:26px;pointer-events:none;
  will-change:top,left;
  filter:drop-shadow(1px 3px 2px #0b1e1a99);
}
#gold-city-2d .city32-car svg{width:100%;height:100%;display:block}
#gold-city-2d .city32-car.city32-bus{height:33px;width:15px}
#gold-city-2d .city32-car.vertical.forward{
  animation:city32-south var(--drive-time) linear var(--drive-delay) infinite;
  transform:translate(-50%,-50%);
}
#gold-city-2d .city32-car.vertical.reverse{
  animation:city32-north var(--drive-time) linear var(--drive-delay) infinite;
  transform:translate(-50%,-50%) rotate(180deg);
}
#gold-city-2d .city32-car.horizontal.forward{
  animation:city32-east var(--drive-time) linear var(--drive-delay) infinite;
  transform:translate(-50%,-50%) rotate(90deg);
}
#gold-city-2d .city32-car.horizontal.reverse{
  animation:city32-west var(--drive-time) linear var(--drive-delay) infinite;
  transform:translate(-50%,-50%) rotate(-90deg);
}
/* Keyframes never modify transforms; cars remain in their dedicated road lanes. */
@keyframes city32-south{from{top:-7%}to{top:107%}}
@keyframes city32-north{from{top:107%}to{top:-7%}}
@keyframes city32-east{from{left:-7%}to{left:107%}}
@keyframes city32-west{from{left:107%}to{left:-7%}}
#gold-city-2d .city32-crossing{
  position:absolute;top:var(--cross-y);left:29.9%;width:8.3%;height:7px;
  transform:translateY(-50%);
  background:repeating-linear-gradient(90deg,#e9e7d1d9 0 4px,transparent 4px 7px);
  opacity:.65;
}
#gold-city-2d .city32-parking{
  position:absolute;left:var(--park-x);top:var(--park-y);
  width:15px;height:28px;transform:translate(-50%,-50%);
  display:block;border:1px solid #e5e5cd9e;border-left:none;border-right:none;
  background:#303f4266;
}
#gold-city-2d .city32-parking .city32-mark{
  position:absolute;left:0;top:0;height:100%;width:1px;
  background:#ddd8c9a0;
}
#gold-city-2d .city32-parking .city32-parked-car{
  display:block;position:absolute;inset:3px 4px;
  background:linear-gradient(180deg,#eef0c1 0 22%,#879c92 22% 44%,#9db8a9 44% 80%,#d4b99b 80%);
  border-radius:4px;box-shadow:1px 2px 2px #192621b8;
}
#gold-city-2d .city32-light{
  position:absolute;left:var(--light-x);top:var(--light-y);
  width:4px;height:14px;background:linear-gradient(90deg,#807a62,#b8af8c);
  border-radius:2px;transform:translate(-50%,-75%);
  box-shadow:1px 2px 2px #1a302889;
}
#gold-city-2d .city32-light:before{
  content:"";position:absolute;left:-6px;top:-4px;
  width:12px;height:5px;border-radius:3px;
  background:#d8c89e;box-shadow:0 0 5px #e9d48a8c;
}
#gold-city-2d .city32-stop{
  position:absolute;left:var(--stop-x);top:var(--stop-y);
  width:27px;height:25px;transform:translate(-50%,-50%);
  filter:drop-shadow(1px 2px 2px #162b2780);
}
#gold-city-2d .city32-stop svg{width:100%;height:100%}
#gold-city-2d .city32-signal{
  position:absolute;left:var(--signal-x);top:var(--signal-y);
  width:6px;height:15px;background:#25363a;
  border:1px solid #b9a580;border-radius:3px;
  box-shadow:0 0 0 2px #1d2d2c44;
  transform:translate(-50%,-50%);
}
#gold-city-2d .city32-signal i{
  position:absolute;left:1px;top:2px;width:2px;height:2px;border-radius:50%;
  background:#d6cc9d;
}
#gold-city-2d .city32-signal i.stop{background:#ed7771;box-shadow:0 0 4px #e96462}
#gold-city-2d .city32-signal i.go{top:9px;background:#8fd09b;box-shadow:0 0 4px #74c38a}
#gold-city-2d .city32-active-venue{
  position:absolute;left:-4px;top:35%;
  z-index:5;width:10px;height:10px;
  background:#87d3a8;border:2px solid #e5fae3;border-radius:50%;
  box-shadow:0 0 0 2px #1f6a4670,0 0 7px #81d69c;
  pointer-events:none;
}
#gold-city-2d .city32-active-venue i{
  position:absolute;inset:-5px;border:1px solid #a6edb7;border-radius:50%;
  animation:city32-venue-pulse 2.5s ease-out infinite;
}
@keyframes city32-venue-pulse{
  0%{opacity:.8;transform:scale(.7)}
  80%,100%{opacity:0;transform:scale(1.35)}
}
#gold-city-2d .city32-activity-strip{
  display:flex;align-items:center;gap:8px;justify-content:space-between;
  flex-wrap:wrap;margin:9px 2px 4px;
  font-size:10px;color:#c9d6c2;
}
#gold-city-2d .city32-activity-strip span:first-child{
  display:flex;align-items:center;gap:5px;
  letter-spacing:.04em;font-size:9px;color:#d8c390;font-weight:850;
}
#gold-city-2d .city32-live-indicator{
  display:block;flex:none;width:6px;height:6px;border-radius:50%;
  background:#9ed7a8;box-shadow:0 0 5px #9de5aa;
}
#gold-city-2d .city32-activity-strip small{
  color:#adb5ab;font-size:9px;
}
#gold-city-2d .city2d-filter{align-items:center;gap:5px}
#gold-city-2d .city32-motion-toggle{
  margin-left:auto;padding:5px;min-width:34px;width:35px;
  min-height:34px;display:grid;place-items:center;
  color:#eed8ad;border-color:#b18d59;border-radius:9px;
}
#gold-city-2d .city32-motion-toggle[aria-pressed="false"]{
  color:#a3b3ae;border-color:#5c6766;background:#1a2325;
}
#gold-city-2d .city32-motion-toggle .city2d-icon{width:17px;height:17px}
@media(max-width:360px){
  #gold-city-2d .city2d-filter button:not(.city32-motion-toggle){padding:5px 7px}
  #gold-city-2d .city32-activity-strip{font-size:9px;gap:4px}
}
@media(prefers-reduced-motion:reduce){
  #gold-city-2d .city32-car{
    animation:none!important;will-change:auto;opacity:.65;
  }
  #gold-city-2d .city32-car.vertical{top:32%}
  #gold-city-2d .city32-car.horizontal{left:42%}
  #gold-city-2d .city32-active-venue i{animation:none;opacity:.35}
}
