/* LAWTER v6.0.20 — trade-route precision + compact adaptive labels */

/* Non-active destinations are intentionally quiet. The active destination expands to
   the previous premium label size, making the route hierarchy readable at a glance. */
body.lawter-v6 .trade-city-label{
  --label-scale:.76;
  min-height:17px!important;
  padding:0 5px!important;
  font-size:6px!important;
  letter-spacing:.115em!important;
  border-color:rgba(237,207,149,.08)!important;
  background:linear-gradient(180deg,rgba(3,12,25,.48),rgba(3,12,25,.32))!important;
  color:rgba(231,226,216,.52)!important;
  box-shadow:0 5px 14px rgba(0,0,0,.08)!important;
  transform:translate(var(--label-x),var(--label-y)) scale(var(--label-scale))!important;
  transform-origin:left center;
  opacity:.74;
  transition:
    transform .48s cubic-bezier(.22,.61,.36,1),
    opacity .42s ease,
    color .42s ease,
    border-color .42s ease,
    background .42s ease,
    box-shadow .42s ease,
    min-height .42s ease,
    padding .42s ease,
    font-size .42s ease!important;
}
body.lawter-v6 .trade-city-dot{
  width:5px!important;
  height:5px!important;
  opacity:.72;
  transition:width .4s ease,height .4s ease,opacity .4s ease,box-shadow .4s ease,background .4s ease;
}

/* Budapest stays readable as the origin, but no longer competes with the active target. */
body.lawter-v6 .trade-city.is-origin .trade-city-label,
body.lawter-v6 .trade-city-hub .trade-city-label{
  --label-scale:.84;
  min-height:19px!important;
  padding:0 6px!important;
  font-size:6.4px!important;
  opacity:.88;
  color:rgba(241,231,211,.78)!important;
  border-color:rgba(237,207,149,.18)!important;
  background:linear-gradient(180deg,rgba(5,17,32,.68),rgba(3,12,25,.48))!important;
}
body.lawter-v6 .trade-city.is-origin .trade-city-dot,
body.lawter-v6 .trade-city-hub .trade-city-dot{
  width:6px!important;
  height:6px!important;
  opacity:1;
  background:#edc978!important;
  box-shadow:0 0 0 4px rgba(215,185,120,.06),0 0 12px rgba(215,185,120,.20)!important;
}

body.lawter-v6 .trade-city.is-active .trade-city-label{
  --label-scale:1;
  min-height:24px!important;
  padding:0 8px!important;
  font-size:8.2px!important;
  letter-spacing:.145em!important;
  opacity:1;
  color:#f3e7ce!important;
  border-color:rgba(237,207,149,.38)!important;
  background:linear-gradient(180deg,rgba(6,19,35,.94),rgba(3,12,25,.76))!important;
  box-shadow:0 10px 28px rgba(0,0,0,.18),0 0 18px rgba(215,185,120,.05)!important;
}
body.lawter-v6 .trade-city.is-active .trade-city-dot{
  width:7px!important;
  height:7px!important;
  opacity:1;
  background:#f2d28f!important;
  box-shadow:0 0 0 5px rgba(215,185,120,.08),0 0 16px rgba(215,185,120,.30)!important;
}

/* A subtle continuous under-trace guarantees that the active corridor visually reaches
   the exact projected city anchor even when the decorative dashed line happens to end on a gap. */
body.lawter-v6 .trade-route-active-trace{
  fill:none;
  stroke:rgba(238,205,139,.28);
  stroke-width:1.05;
  vector-effect:non-scaling-stroke;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:drop-shadow(0 0 4px rgba(215,185,120,.12));
  pointer-events:none;
}

/* Exact destination anchor / arrival halo. */
body.lawter-v6 .trade-route-arrival{
  --arrival-opacity:.24;
  fill:none;
  stroke:rgba(244,214,154,.72);
  stroke-width:1;
  vector-effect:non-scaling-stroke;
  opacity:0;
  transform-box:fill-box;
  transform-origin:center;
  pointer-events:none;
  transition:opacity .35s ease;
}
body.lawter-v6 .trade-route-arrival.is-visible{
  opacity:var(--arrival-opacity);
  animation:lawter-route-arrival 2.6s ease-in-out infinite;
}
@keyframes lawter-route-arrival{
  0%,100%{transform:scale(.72);stroke-opacity:.34}
  50%{transform:scale(1.18);stroke-opacity:.84}
}

/* Inactive route network is softer; current corridor carries the focus. */
body.lawter-v6 .trade-route{opacity:.34!important;stroke:rgba(221,190,125,.16)!important}
body.lawter-v6 .trade-route.is-echo{opacity:.46!important;stroke:rgba(228,197,133,.24)!important}
body.lawter-v6 .trade-route.is-active{
  opacity:1!important;
  stroke:rgba(244,214,154,.94)!important;
  stroke-width:1.55!important;
}

@media(max-width:780px){
  body.lawter-v6 .trade-city-label{
    --label-scale:.72;
    min-height:15px!important;
    padding:0 4px!important;
    font-size:5.4px!important;
  }
  body.lawter-v6 .trade-city.is-origin .trade-city-label,
  body.lawter-v6 .trade-city-hub .trade-city-label{
    --label-scale:.79;
    min-height:17px!important;
    font-size:5.8px!important;
  }
  body.lawter-v6 .trade-city.is-active .trade-city-label{
    --label-scale:.94;
    min-height:21px!important;
    padding:0 6px!important;
    font-size:6.8px!important;
  }
}

@media(prefers-reduced-motion:reduce){
  body.lawter-v6 .trade-route-arrival.is-visible{animation:none!important}
}
