/* Shared artwork: flat lift for world parcels, A/B dioramas for lower levels. */
.country-piece,.province-shape,.city-shape,.province-map-point,.city-map-point,.map-region-art__full { -webkit-touch-callout:none; -webkit-user-select:none; user-select:none; }
.map-region-art { display:none; pointer-events:none; }
.map-region-art * { pointer-events:none!important; }
/* Establish hidden B/effects before ready enables the artwork container.
   Otherwise opacity transitions start from SVG's default 1 and flash on mount. */
.map-region-art__effects,.map-region-art__full,.map-region-art__name { opacity:0; }
.has-region-art > .map-region-art { display:block; }
.has-region-art.is-floating { animation:none!important; filter:none!important; }
.map-region-art__float { transform:translateY(0); }
.has-region-art.is-floating .map-region-art__float { animation:map-region-art-bob 3.8s ease-in-out infinite; }
@keyframes map-region-art-bob { 0%,100% { transform:translateY(0); } 50% { transform:translateY(var(--map-region-bob,-5px)); } }
.has-region-art > .map-region-art__geometry { opacity:0; }
.map-region-art__base { opacity:1; filter:saturate(1.04) brightness(1.02); }
.has-region-art .map-region-art__base-surface,.has-region-art .map-region-art__base,.has-region-art .map-region-art__outline { transition:opacity .3s ease,filter .3s ease; }
.has-region-art .map-region-art__outline path { fill:none!important; stroke:#176f62!important; stroke-width:2.2!important; vector-effect:non-scaling-stroke; }
.has-region-art:focus-visible .map-region-art__base,
.has-region-art:has(.province-shape:focus-visible,.city-shape:focus-visible) .map-region-art__base { filter:drop-shadow(0 0 3px #176f62); }
.has-region-art .map-region-art__effects,.has-region-art .map-region-art__full,.has-region-art .map-region-art__name { opacity:0; transition:opacity .3s ease,filter .3s ease; }
.has-region-art .map-region-art__scene { transform-box:fill-box; transform-origin:50% 91%; transform:translateY(var(--map-region-enter,15px)) scale(.7); transition:transform .42s cubic-bezier(.18,.82,.2,1); }
.has-region-art.is-floating .map-region-art__base-surface,
.has-region-art.is-floating .map-region-art__base,
.has-region-art.is-floating .map-region-art__outline { opacity:0; }
.has-region-art.is-floating .map-region-art__scene { transform:translateY(var(--map-region-rest,-7px)) scale(1); }
.has-region-art.is-floating .map-region-art__full.is-ready { opacity:.94; pointer-events:visiblePainted!important; cursor:pointer; filter:saturate(1.08) contrast(1.03) drop-shadow(0 0 var(--map-region-halo-blur,3px) rgba(121,255,238,.9)) drop-shadow(0 var(--map-region-shadow-y,10px) var(--map-region-shadow-blur,12px) rgba(28,126,117,.32)); }
.map-region-art__beam { opacity:var(--map-region-beam-opacity,1); }
.has-region-art.is-floating .map-region-art__effects,.has-region-art.is-floating .map-region-art__name { opacity:1; }
.map-region-art__ring { fill:rgba(114,246,224,.12)!important; stroke:rgba(111,242,225,.9)!important; vector-effect:non-scaling-stroke; }
.map-region-art__ring--outer { fill:none!important; }
.map-region-art__name { fill:#075f50!important; stroke:rgba(255,255,255,.94)!important; stroke-width:2.5!important; vector-effect:non-scaling-stroke; paint-order:stroke; stroke-linejoin:round; font-family:var(--serif); font-weight:800; letter-spacing:.14em; dominant-baseline:middle; }
.country-piece.has-region-art { overflow:visible; filter:none; backface-visibility:visible; }
.country-piece.has-region-art.is-floating { z-index:9; }
.country-piece.has-region-art.is-random-floating { animation:none; translate:0 0; filter:none; }
.country-piece:is(.is-hover-raised,.is-hover-floating) { z-index:12!important; }
/* All world countries keep their original silhouette and stationary hit layer.
   Only visual SVG content lifts by four screen pixels; no looping float. */
.country-piece { z-index:1; translate:0 0!important; animation:none!important; filter:none!important; }
.country-flat-hit { opacity:0; }
.country-flat-visual *,.country-piece:not(.has-region-art) > .map-region-art__geometry * { pointer-events:none!important; }
.country-flat-visual,.country-piece:not(.has-region-art) > .map-region-art__geometry,.country-piece .map-region-art__base-surface {
  transform:translateY(0); transition:transform .22s ease,filter .22s ease; filter:none;
}
/* Pointer and keyboard listeners share these states. Raw CSS hover/focus must
   not retain an extra visual layer after the controller resets or changes owner. */
.country-piece.is-floating > .country-flat-visual,
.country-piece.is-random-floating > .country-flat-visual,
.country-piece.is-hover-raised > .country-flat-visual,
.country-piece:not(.has-region-art).is-random-floating > .map-region-art__geometry,
.country-piece:not(.has-region-art).is-hover-raised > .map-region-art__geometry,
.country-piece.has-region-art.is-floating .map-region-art__base-surface {
  transform:translateY(var(--world-flat-svg-lift,-.5px));
  filter:drop-shadow(0 var(--world-flat-svg-shadow-y,.4px) var(--world-flat-svg-shadow-blur,.4px) rgba(31,77,64,.22));
}
.country-piece.has-region-art.is-floating .map-region-art__base-surface,
.country-piece.has-region-art.is-floating .map-region-art__base,
.country-piece.has-region-art.is-floating .map-region-art__outline { opacity:1; }
.country-piece .map-region-art__effects,.country-piece .map-region-art__full { display:none!important; }
.country-piece .map-region-art__scene { transform:none; transition:transform .22s ease; }
.country-piece.has-region-art.is-floating .map-region-art__scene { transform:translateY(var(--world-flat-svg-lift,-.5px)); }
.country-piece.has-region-art:focus-visible .map-region-art__base { filter:saturate(1.04) brightness(1.02); }
.has-region-art .province-shape,.has-region-art .city-shape { animation:none!important; transform:none!important; filter:none!important; }
/* The same focus treatment applies to sibling native parcels at any level. */
:has(> .has-region-art.is-hover-floating) > :is(.country-piece,.province-shape,.city-shape):not(.has-region-art) { opacity:.66; }
:root[data-theme="night"] .map-region-art__name { fill:#b8f1e5!important; stroke:rgba(5,28,24,.92)!important; }
:root[data-theme="night"] .map-region-art__base { filter:brightness(.76) saturate(.86); }
:root[data-theme="night"] .country-piece.has-region-art .map-region-art__base { filter:brightness(.76) saturate(.86); }
:root[data-theme="night"] .has-region-art .map-region-art__outline path { stroke:#8bc8b7!important; }
:root[data-theme="night"] .has-region-art.is-floating .map-region-art__full { filter:brightness(.76) saturate(.86); }
@media (prefers-reduced-motion:reduce) {
  .has-region-art .map-region-art__float { animation:none!important; transform:none!important; }
  .country-flat-visual,.country-piece:not(.has-region-art) > .map-region-art__geometry { transition:none!important; }
  .has-region-art .map-region-art__scene { transition:none!important; }
  .has-region-art .map-region-art__base-surface,.has-region-art .map-region-art__base,.has-region-art .map-region-art__outline,
  .has-region-art .map-region-art__full,.has-region-art .map-region-art__effects,.has-region-art .map-region-art__name { transition:none!important; }
}
