.hub-mode-content[data-hub-mode="daily"] { grid-template-rows: minmax(0, 1fr); padding-inline: 1cqw; }
.hub-mode-content[data-hub-mode="daily"] > :is(.hub-title, .flow-footer) { display: none; }
.daily-board {
  position: relative; isolation: isolate; height: 100%; min-height: 0;
}
.daily-city {
  position: absolute; z-index: 5; right: 1cqw; top: 50%; translate: 0 -50%;
  width: 18.5cqw; height: min(91%, 29cqw);
  display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-height: 0;
  gap: .45cqw; padding: .75cqw; border: .1cqw solid #607a96; border-radius: .65cqw;
  background: linear-gradient(145deg, #17283b, #0b1521 66%);
  box-shadow: 0 .6cqw 1.55cqw #020611ac, inset 0 .08cqw #cdefff3d;
  animation: daily-card-in var(--daily-card-duration) cubic-bezier(.22, .72, .25, 1) var(--daily-card-delay) both;
}
.daily-city:focus-within { animation: none; }
.daily-feature {
  display: grid; grid-template-rows: minmax(0, 1fr) auto auto; gap: .34cqw; min-height: 0;
}
.daily-photo {
  position: relative; isolation: isolate; display: grid; align-items: end; min-height: 0; overflow: hidden;
  padding: .85cqw; border: .1cqw solid #647f9a; border-radius: .52cqw; background: #0f1a26;
}
.daily-photo-art, .daily-run-city {
  background:
    linear-gradient(180deg, #08101d10 24%, #08111b40 53%, #090f19ef 93%),
    var(--daily-art) center / cover;
}
.daily-photo-art { position: absolute; z-index: -1; inset: 0; animation: daily-photo-in 230ms ease-out both; }
.daily-photo-copy strong {
  color: white; font: italic 700 2.78cqw/.91 Barlow, "Arial Narrow", sans-serif; text-transform: uppercase;
}
.daily-win-prizes { display: flex; align-items: center; flex-wrap: wrap; gap: .28cqw .43cqw; min-height: 1.36cqw; }
.daily-win-prizes > span {
  font-size: .84cqw; font-weight: 800; white-space: nowrap;
}
.daily-win-prizes > [data-reward] {
  padding: .2cqw .38cqw; border: .08cqw solid #7699ad61; border-radius: .25cqw; background: #111e2bdc;
}
[data-reward="cash"] { color: #f5dfae; }
[data-reward="xp"] { color: #9be4ff; }
[data-reward="gold"] { color: #ffce74; }
.daily-city-top {
  z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: .5cqw;
  color: #f0f5fc;
}
.daily-date {
  display: flex; align-items: center; gap: .65cqw; text-transform: uppercase;
}
.daily-date b { font: italic 700 3.4cqw/.82 Barlow, "Arial Narrow", sans-serif; }
.daily-date > span {
  display: grid; gap: .18cqw; padding-left: .62cqw; border-left: .1cqw solid #8eaac880;
}
.daily-date strong { font: italic 700 1.58cqw/.9 Barlow, "Arial Narrow", sans-serif; letter-spacing: .035em; }
.daily-date small {
  color: #bed0e3; font-size: .8cqw; font-weight: 750; letter-spacing: .08em;
}
.daily-network {
  position: relative; width: 100%; height: 100%; min-width: 0; min-height: 0;
}
.daily-map-stage { position: absolute; inset: 0; pointer-events: none; }
.daily-map {
  position: absolute; top: 50%; left: 50%; translate: -50% -50%;
  width: min(59.45%, 36.05cqw); aspect-ratio: 1;
}
.daily-map-lens {
  position: absolute; inset: 8%; isolation: isolate; transform-origin: center;
  animation: daily-map-in 880ms ease-out both;
}
.daily-map .globe-model { overflow: hidden; box-shadow: 0 0 2.2cqw #6db5ff91, 0 0 .65cqw #c2dcff9c; }
.daily-map .city-pin { font-size: 1.25cqw; }
.daily-map .city-pin::before { width: .61cqw; border-width: .09cqw; }
.daily-route-lines {
  position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; pointer-events: none;
}
.daily-route-base {
  fill: none; stroke: #92bed9; stroke-width: .16cqw; stroke-linecap: round;
  stroke-dasharray: 1; stroke-dashoffset: 0; opacity: .48;
  animation: daily-route-draw 520ms cubic-bezier(.24, .67, .36, 1) calc(var(--reveal-delay) - 310ms) both;
  transition: opacity 180ms ease, stroke 180ms ease, stroke-width 180ms ease;
}
.daily-route-pulse {
  fill: none; stroke: #c6f4ff; stroke-width: .34cqw; stroke-linecap: round; opacity: 0;
  stroke-dasharray: .19 1.03; filter: drop-shadow(0 0 .5cqw #68d4ff);
  animation:
    daily-route-pulse 620ms ease-out calc(var(--reveal-delay) - 225ms) both,
    daily-route-flow 3300ms linear calc(var(--daily-card-delay) + var(--daily-card-duration) + var(--flow-offset)) infinite;
}
.daily-route-node {
  r: .26cqw; fill: #152840; stroke: #89b4d1; stroke-width: .12cqw;
  animation: daily-reveal 260ms ease-out calc(var(--reveal-delay) - 290ms) both;
}
.daily-route-lines [data-active="true"] .daily-route-base {
  opacity: 1; stroke: #b8eeff; stroke-width: .32cqw; filter: drop-shadow(0 0 .55cqw #62c7fa);
}
.daily-route-lines [data-active="true"] .daily-route-node { fill: #b8eeff; }
.daily-photo-credit {
  position: absolute; z-index: 4; right: .85cqw; bottom: .45cqw;
  color: #b5c7d8; font-size: .68cqw; text-decoration: underline;
}
.daily-reset {
  z-index: 1; display: grid; gap: .27cqw; padding-top: .38cqw; border-top: .1cqw solid #acc7e04d;
}
.daily-reset > span:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: .25cqw; }
.daily-reset > span:first-child small { font-size: .77cqw; white-space: nowrap; }
.daily-reset time { color: #f6fbff; font: 750 1.88cqw/1 system-ui; font-variant-numeric: tabular-nums; letter-spacing: .05em; }
.daily-reset-track { display: block; height: .23cqw; overflow: hidden; border-radius: .3cqw; background: #6d89a754; }
.daily-reset-track span { display: block; height: 100%; background: linear-gradient(90deg, #4774ad, #b8e9ff); }
.daily-event-list { position: absolute; inset: 0; pointer-events: none; z-index: 3; }
button.daily-event-tile {
  --tile-size: var(--daily-tile-size, 10cqw);
  position: absolute; isolation: isolate; display: grid; align-content: end; gap: .34cqw;
  width: var(--tile-size); aspect-ratio: 1; margin: calc(var(--tile-size) / -2) 0 0 calc(var(--tile-size) / -2);
  padding: .65cqw; overflow: hidden; pointer-events: auto; text-align: left;
  border: .1cqw solid #617c9b; border-radius: .43cqw;
  background: #111d2d; box-shadow: 0 .35cqw 1cqw #060d17b5;
  transition: border-color 140ms ease, box-shadow 140ms ease;
  animation: daily-tile-in 620ms cubic-bezier(.2, .76, .24, 1) var(--reveal-delay) both;
}
button.daily-event-tile:focus-visible { animation: none; }
button.daily-event-tile::before {
  content: ""; position: absolute; z-index: -1; inset: 0;
  background: linear-gradient(180deg, #0b1425a3, #0b142533 31%, #0b1527ed 82%),
    var(--daily-art) center / cover;
}
button.daily-event-tile[aria-pressed="true"] {
  border-color: #a8eaff; box-shadow: 0 0 1cqw #65c9f481, inset 0 0 .4cqw #65c9f45c;
}
button.daily-event-tile:hover { border-color: #bbd6ec; }
.daily-event-name { color: #f5f9fe; font: italic 700 1.9cqw/.95 Barlow, "Arial Narrow", sans-serif; white-space: nowrap; }
.daily-prize { color: #f9e4b8; font-size: .99cqw; font-weight: 750; }
.daily-entry { display: grid; gap: .22cqw; text-align: center; }
button.daily-race-now {
  display: flex; justify-content: space-between; align-items: center; gap: 1.2cqw; min-width: 14.1cqw;
  border: .1cqw solid #ffb0ba; border-radius: .38cqw; padding: .4cqw .72cqw;
  background: linear-gradient(108deg, #ed4a64, #ae1537);
  box-shadow: 0 .22cqw .7cqw #d2214a63, inset 0 .08cqw #ffe2e674;
  font: italic 700 2.28cqw/.88 Barlow, "Arial Narrow", sans-serif; white-space: nowrap;
  transition: filter 120ms ease, box-shadow 120ms ease;
}
button.daily-race-now:enabled:hover { filter: brightness(1.16); box-shadow: 0 .22cqw 1.05cqw #fa426c8c; }
button.daily-race-now:disabled, .daily-run .flow-primary:disabled { filter: saturate(.4); opacity: .66; cursor: default; }
.daily-entry small { color: #bdcddd; font-size: .8cqw; }
.daily-run .daily-run-city { justify-content: flex-end; }
.daily-run-console .flow-primary { align-self: flex-start; margin-top: .65cqw; }
.daily-meter {
  position: relative; height: 2.4cqw; border: .1cqw solid #83a0bd; border-radius: .3cqw; background: #080f1b; overflow: hidden;
}
.daily-meter-zone { position: absolute; inset: 0 33%; background: #4b9aba; border-inline: .1cqw solid #9ce4f8; }
.daily-meter-needle { position: absolute; inset: 0 auto 0 0; width: .38cqw; background: #fff; translate: -50% 0; box-shadow: 0 0 .6cqw #fff; }
@keyframes daily-reveal {
  from { opacity: 0; transform: translateY(.55cqw); }
}
@keyframes daily-map-in {
  from { opacity: .4; transform: scale(.9); }
}
@keyframes daily-card-in {
  from { opacity: 0; transform: translateX(2cqw) scale(.97); }
}
@keyframes daily-photo-in {
  from { opacity: .3; transform: scale(1.07); }
}
@keyframes daily-tile-in {
  0% { opacity: 0; transform: translate(var(--tile-enter-x, 0), var(--tile-enter-y, 0)) scale(.86); }
  72% { opacity: 1; transform: scale(1.025); }
  100% { opacity: 1; transform: none; }
}
@keyframes daily-route-draw {
  from { stroke-dashoffset: 1; }
}
@keyframes daily-route-pulse {
  0% { opacity: 0; stroke-dashoffset: .19; }
  22% { opacity: .9; }
  72% { opacity: .76; }
  100% { opacity: 0; stroke-dashoffset: -1; }
}
@keyframes daily-route-flow {
  0% { opacity: 0; stroke-dashoffset: .19; }
  8% { opacity: .7; }
  33% { opacity: .7; }
  43%, 100% { opacity: 0; stroke-dashoffset: -1; }
}
@media (prefers-reduced-motion: reduce) {
  .daily-city, .daily-map-lens, .daily-photo-art, button.daily-event-tile,
  .daily-route-lines :is(path, circle) { animation: none; transition: none; }
}
