@view-transition { navigation: auto; }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }
.v3 .city-map { display: grid; overflow: clip; }
.v3 .gx-dock { grid-area: 1 / 1; align-self: end; justify-self: end; position: sticky; z-index: 4; bottom: calc(var(--s-7) + env(safe-area-inset-bottom)); margin: var(--s-7);
  display: flex; align-items: end; gap: var(--s-5); pointer-events: none; }
.v3 .gx-dock > * { pointer-events: auto; }
.v3 .gx-dock .city-ctl { position: static; }
.v3 .gx-card { --w: var(--gx-card-w, 96px); --ph: var(--gx-card-poster-h, 64px); position: relative; display: grid; grid-template-rows: var(--ph) 32px; inline-size: var(--w);
  background: var(--sf); border: 1px solid var(--ln2); border-radius: var(--r-screen); box-shadow: var(--el-float); overflow: hidden; color: var(--fg); text-decoration: none; }
.v3 .gx-card-p { display: block; min-block-size: 0; view-transition-name: galaxy; }
.v3 .gx-card-p img { display: block; inline-size: 100%; block-size: 100%; object-fit: cover; }
.v3 .gx-card-l { display: flex; align-items: center; padding-inline: var(--s-3); font: var(--w-strong) var(--t-small) / 1 var(--sans); white-space: nowrap; }
.v3 .gx-card-chip { position: absolute; inset-block-start: var(--s-2); inset-inline-start: var(--s-2); }
.v3 .gx-card:focus-visible { outline: none; box-shadow: var(--focus-ring), var(--el-float); }
@media (hover: hover) and (pointer: fine) { .v3 .gx-card { transition: border-color var(--d-fast) var(--e-out); } .v3 .gx-card:hover { border-color: var(--c-control); } }
@media (min-width: 64em) { .v3 .gx-card { --w: var(--gx-card-w, 200px); --ph: var(--gx-card-poster-h, 108px); } .v3 .gx-card-l { font-size: var(--t-ui); } }
@media (max-width: 47.99em) {
  .v3 .gx-dock { justify-self: stretch; justify-content: space-between; margin: var(--s-5); bottom: calc(var(--s-5) + env(safe-area-inset-bottom)); }
  .v3 .gx-dock .city-ctl { grid-auto-flow: column; }
}
::view-transition-group(galaxy) { animation-duration: 280ms; animation-timing-function: cubic-bezier(.16, 1, .3, 1); }
::view-transition-old(galaxy), ::view-transition-new(galaxy) { block-size: 100%; object-fit: cover; }
::view-transition-image-pair(galaxy) { overflow: clip; }
::view-transition-old(root), ::view-transition-new(root) { animation: none; }
