/* ═══════════════════════════════════════════════════════════════════
   DÁLNICE AS-A-SERVICE — vizualizace distribuční vrstvy
   ───────────────────────────────────────────────────────────────────
   Nahrazuje starý blok .hwy / .road / .carriage ze site.css
   (příkaz č. 149). Ten byl plochý: statická vozovka a vedle ní sloupec
   textových pilulek. Návštěvník o dálnici ČETL, místo aby ji viděl jet.

   Tři vrstvy, každá nese jinou část sdělení:
     1) uzel   — odkud to jede (a že je to certifikované)
     2) vozovka — že to jede v reálném čase a OBĚMA směry
     3) výjezdy — kam to dojede, doložené logy

   Vlastní prefix `dal-` podle pravidla č. 1 z přehledu příkazů;
   před nasazením ověřeno grepem, že je volný.
   ═══════════════════════════════════════════════════════════════════ */

/* ── 0. SVĚTLÝ PODKLAD ───────────────────────────────────────────────
   Modul stál v tmavé kartě .spot. Ta zrušena (příkaz č. 151) — dálnice
   teď leží přímo na světlém podkladu sekce.

   .spot se NEUPRAVOVALA. Je na index.html ještě třikrát jinde a tam
   má kartou zůstat; modul ji jen přestal používat. Co z ní potřeboval
   (bílý nadpis, barva odstavce, fialová záře v rohu), má teď pod
   vlastním prefixem, převrácené do světlé varianty.

   Samotná vozovka zůstává sytá — je to vlastní barevná plocha, ne
   pozadí. Na bílém z ní je svítící stuha, která se po krajích
   rozpouští do podkladu. */
/* ── KDE BLOK BYDLÍ (příkaz č. 174) ─────────────────────────────────
   Do 25. 8. stál uvnitř výkladní skříně, hned za ulicí se třemi
   postavami. Jiří: „ta dálnice se tam nehodí, zkrať to a vlož ji do
   16 pracovních portálů."

   Skříň ukazuje, CO systém umí — jeden díl vedle druhého. Dálnice
   neukazuje další díl, ukazuje JAK se jedna z těch věcí dělá uvnitř.
   Ve skříni proto přerušovala výčet výkladem. Sekce 04 „Jeden inzerát,
   16 pracovních portálů" přesně tenhle výklad potřebovala a dosud ho
   nesla jen slovy.

   ZKRÁCENO O CELOU HLAVU (243 px z 706): pilulka „Jak je to postavené
   uvnitř", nadpis a úvodní odstavec jsou pryč, protože sekce 04 má
   svůj nadřádek, nadpis i úvod. Dvě hlavy nad sebou nejsou důraz,
   jsou zádrhel. Nic z obsahu se neztratilo — ověřeno větu po větě.

   PROČ TU NENÍ .pill: pravidlo .dal-blok .pill (přebarvení sdílené
   pilulky do světlé) zmizelo s ní. Uvnitř .dal-blok už žádná není,
   ověřeno grepem na index.html. */
.dal-blok { margin: 34px 0 64px; }
@media (max-width: 900px) { .dal-blok { margin: 26px 0 44px; } }

.dal {
  /* Sklon vozovky. Nad ~20° se protilehlý pruh zplošťuje tak, že
     přestanou být čitelná loga v konvoji. 22° je horní hranice, kde
     je svislé stlačení 7 % — pod prahem, kdy by na tom logo utrpělo. */
  --dal-sklon: 22deg;
  --dal-pas: 124px;      /* výška jednoho jízdního pásu (3 pruhy) */
  --dal-chip: 30px;      /* průměr vozidla s logem */

  position: relative;
  display: grid;
  grid-template-columns: minmax(148px, auto) minmax(0, 1fr) minmax(212px, auto);
  gap: 26px; align-items: center;
  margin-top: 34px;
}
/* PRUHY POKRAČUJÍ POD VÝJEZDY. Vozovka se vpravo rozpouští (maska od
   82 %) a odsud ji přebírá tahle vrstva: pokračování obou pásů v jejich
   vlastní barvě, které začíná ještě v mizející zóně vozovky a dohasíná
   až za posledním výjezdem. Cíle tak leží uvnitř toho proudu, ne vedle
   něj na černém.

   Tyrkysová drží horní polovinu (návrat), fialová spodní (odeslání) —
   jde za svým pásem, viz pořadí pásů výš.

   TŘI VĚCI, KTERÉ SE MUSELY TREFIT:
   · OBDÉLNÍK, ne elipsa. Tvar s border-radius: 50 % se na pravém konci
     ztenčí do nuly, takže pod pilulkami z něj nezbude nic.
   · NE na .dal-vozovka. Ta je nakloněná v perspektivě, takže by se jí
     záře do stran krátila spolu s vozovkou a k pilulkám by nedosáhla.
   · POUZE KLADNÉ vodorovné hodnoty (left: 56 %, right: 0). Pravý okraj
     .dal je zároveň pravý okraj pilulek, takže pokrytí je úplné i bez
     přesahu — a hlídač tools/kontrola-preteceni.py po záporné hodnotě
     v pseudoprvku chce na rodiči overflow-x: clip, což by tuhle záři
     uřízlo přesně tam, kde má být vidět. Rozostření vlastní přesah
     stejně vytvoří, jen se nepromítne do šířky dokumentu. */
.dal::before,
.dal::after {
  content: ""; position: absolute; z-index: 0; pointer-events: none;
  left: 56%; right: 0; filter: blur(28px);
}
.dal::before {
  top: 3%; height: 44%;
  background: linear-gradient(90deg,
    rgba(34,211,238,0) 0%, rgba(34,211,238,.32) 34%,
    rgba(8,145,178,.2) 66%, rgba(14,116,144,.12) 100%);
}
.dal::after {
  bottom: 3%; height: 44%;
  background: linear-gradient(90deg,
    rgba(147,51,234,0) 0%, rgba(192,38,211,.34) 34%,
    rgba(168,45,222,.22) 66%, rgba(147,51,234,.13) 100%);
}
.dal > * { position: relative; z-index: 1; }

/* ── 1. CENTRÁLNÍ UZEL ───────────────────────────────────────────────
   Ne bublina s logem, ale uzel v síti: jádro dýchá a kolem něj se
   rozbíhají prstence, jako když stanice vysílá. Klid uprostřed,
   pohyb kolem — pozornost jde na značku, ne na efekt.             */
.dal-uzel { display: grid; justify-items: center; gap: 12px; text-align: center; }

.dal-jadro {
  position: relative; display: grid; place-items: center;
  width: 108px; height: 108px; border-radius: 50%;
  background:
    radial-gradient(circle at 32% 28%, rgba(167,139,250,.22), rgba(124,58,237,.08) 58%, rgba(255,255,255,0) 72%),
    #fff;
  border: 1px solid rgba(124,58,237,.34);
  box-shadow:
    inset 0 0 30px rgba(167,139,250,.3),
    0 12px 38px -12px rgba(76,29,149,.55);
  animation: dal-dech 4.4s ease-in-out infinite;
}
@keyframes dal-dech {
  0%, 100% { box-shadow: inset 0 0 26px rgba(167,139,250,.22), 0 10px 34px -12px rgba(76,29,149,.45); }
  50%      { box-shadow: inset 0 0 34px rgba(167,139,250,.34), 0 12px 46px -10px rgba(76,29,149,.6); }
}

/* Vysílací prstence. Tři kusy s posunem = souvislý puls, ne blikání. */
.dal-prstenec {
  position: absolute; inset: -6px; border-radius: 50%;
  border: 1px solid rgba(124,58,237,.34);
  opacity: 0; transform: scale(.86);
  animation: dal-puls 4.4s ease-out infinite;
  will-change: transform, opacity;
}
.dal-prstenec:nth-of-type(2) { animation-delay: 1.46s; }
.dal-prstenec:nth-of-type(3) { animation-delay: 2.93s; }
@keyframes dal-puls {
  0%   { opacity: .75; transform: scale(.86); }
  70%  { opacity: 0;   transform: scale(1.55); }
  100% { opacity: 0;   transform: scale(1.55); }
}

/* Značka je kreslená tmavě PRO světlý podklad, takže se tu nepřevrací
   (na tmavé kartě se převracela do bílé). Výška je jediný nastavený
   rozměr, šířka auto — poměr 3,13 podle README. */
.dal-znak { position: relative; z-index: 1; display: block; height: 27px; width: auto; }

.dal-uzel-jmeno { display: block; font-size: 14px; font-weight: 750; color: var(--text); letter-spacing: -.01em; }
.dal-uzel-popis { display: block; font-size: 12px; color: var(--muted); margin-top: -6px; }

/* Satelitní pečeť. Enterprise nákupčí se ptá na bezpečnost dřív než na
   funkce — certifikace proto svítí přímo u jádra, ne až v patičce. */
.dal-pecet {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 13px 7px 10px; border-radius: var(--r-full);
  background: #fff;
  border: 1px solid rgba(124,58,237,.22);
  box-shadow: 0 1px 2px rgba(15,23,42,.08), 0 12px 26px -16px rgba(76,29,149,.5);
}
.dal-pecet-ik { flex: 0 0 auto; display: grid; place-items: center; color: var(--violet); }
.dal-pecet-ik svg { display: block; width: 17px; height: 17px; }
.dal-pecet-t { display: block; text-align: left; }
.dal-pecet-t b { display: block; font-size: 10.5px; font-weight: 750; color: #4C1D95; white-space: nowrap; letter-spacing: .01em; }
.dal-pecet-t em { display: block; font-style: normal; font-size: 9.5px; color: var(--muted); white-space: nowrap; }

/* ── 2. VOZOVKA ──────────────────────────────────────────────────────
   Rovina nakloněná v perspektivě: horní hrana se vzdaluje, dolní je
   u diváka. Díváme se tedy shora od jihu a sever je nahoře.

   POŘADÍ PÁSŮ SE ŘÍDÍ TÍM, ŽE SE V EVROPĚ JEZDÍ VPRAVO (25. 8.):
   kdo jede doprava po obrazovce, jede na východ a jeho jízdní pás
   je na jižní straně, tedy DOLE. Odesílání (POZICE VEN →) proto
   patří dolů a návrat (← KANDIDÁTI ZPĚT) nahoru. Do 25. 8. to bylo
   obráceně, tedy jako v Británii.

   Uvnitř se NEPROTÁČÍ nic zpět: masky a overflow stejně vynutí
   `transform-style: flat`, a při 14° je svislé stlačení 5 % —
   pod prahem, kdy by na tom logo utrpělo.                          */
.dal-scena { perspective: 760px; perspective-origin: 50% 48%; padding: 0 6px; }

.dal-vozovka {
  position: relative;
  display: grid; gap: 9px;
  transform: rotateX(var(--dal-sklon));
}
/* Záře pod vozovkou — teprve tohle z ní udělá technologii, ne asfalt.
   Fialová nahoře (odesílání), tyrkysová dole (příjem). */
.dal-vozovka::before,
.dal-vozovka::after {
  content: ""; position: absolute; left: 6%; right: 2%;
  border-radius: 50%; filter: blur(38px); z-index: -1; pointer-events: none;
}
.dal-vozovka::before { top: -8%; height: 46%; background: rgba(34,211,238,.2); }
.dal-vozovka::after  { bottom: -6%; height: 44%; background: rgba(124,58,237,.26); }

.dal-pas {
  position: relative; height: var(--dal-pas); overflow: hidden;
}
.dal-ven  { background: linear-gradient(90deg, #1D4ED8 0%, #7C3AED 54%, #C026D3 100%); }
.dal-zpet { background: linear-gradient(270deg, #0F7C97 0%, #0891B2 40%, #22D3EE 100%); }

/* ŽÁDNÉ KRAJNICE. Vnější okraj se rozpouští do pozadí, takže vozovka
   pokračuje za obzor.
   Vlevo mizí jen 5 % — tam dálnice začíná, u uzlu, a musí na něj
   navazovat. Vpravo se rozpouští celá poslední pětina: vozovka nemá
   u výjezdů skončit hranou, má se do nich vlít. Pokračování pruhů
   (.dal::before / ::after) jde ještě dál a prosvítá zpod pilulek,
   takže cíle leží uvnitř toho proudu, ne vedle něj. */
.dal-ven {
  -webkit-mask-image: linear-gradient(to top, transparent 0%, #000 30%, #000 100%),
                      linear-gradient(to right, transparent 0%, #000 5%, #000 82%, transparent 100%);
          mask-image: linear-gradient(to top, transparent 0%, #000 30%, #000 100%),
                      linear-gradient(to right, transparent 0%, #000 5%, #000 82%, transparent 100%);
  -webkit-mask-composite: source-in; mask-composite: intersect;
}
.dal-zpet {
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 30%, #000 100%),
                      linear-gradient(to right, transparent 0%, #000 5%, #000 82%, transparent 100%);
          mask-image: linear-gradient(to bottom, transparent 0%, #000 30%, #000 100%),
                      linear-gradient(to right, transparent 0%, #000 5%, #000 82%, transparent 100%);
  -webkit-mask-composite: source-in; mask-composite: intersect;
}

/* Tři přerušované čáry na pás = čtyři pruhy; ta nejvzdálenější leží
   v mizející zóně a naznačí další pruh za obzorem.
   Pozicovat přes `top`, ne přes procentní margin — procenta u margin
   se počítají ze ŠÍŘKY, ne z výšky. */
.dal-cara {
  position: absolute; left: 0; right: 0; height: 2px;
  background: repeating-linear-gradient(to right,
    rgba(255,255,255,.92) 0 20px, transparent 20px 42px);
  opacity: .42;
}
.dal-cara:nth-of-type(1) { top: calc(var(--dal-pas) * .22); }
.dal-cara:nth-of-type(2) { top: calc(var(--dal-pas) * .50); }
.dal-cara:nth-of-type(3) { top: calc(var(--dal-pas) * .78); }

/* Konvoj: skutečná loga cílů jedou po vozovce. Bílá kruhová destička
   sjednotí sedmnáct různě laděných log do jednoho materiálu — bez ní
   by se JPEG s bílým rohem a průhledné SVG na fialové potkat nedaly. */
.dal-vuz {
  position: absolute; left: 0;
  width: var(--dal-chip); height: var(--dal-chip); border-radius: 50%;
  display: grid; place-items: center;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(255,255,255,.85), 0 0 18px rgba(255,255,255,.55);
  animation-name: dal-jed-ven; animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-duration: var(--t); animation-delay: var(--z);
}
.dal-vuz img { display: block; width: 20px; height: 20px; object-fit: contain; }

/* Světelná stopa za vozidlem — bez ní vypadá logo jako přilepený
   odznak, ne jako něco, co se pohybuje. */
.dal-vuz::before {
  content: ""; position: absolute; top: 50%; width: 46px; height: 3px;
  transform: translateY(-50%); border-radius: 2px; pointer-events: none;
}
.dal-ven .dal-vuz::before {
  right: calc(100% + 3px);
  background: linear-gradient(270deg, rgba(255,255,255,.85), rgba(255,255,255,0));
}
.dal-zpet .dal-vuz::before {
  left: calc(100% + 3px);
  background: linear-gradient(90deg, rgba(207,250,254,.85), rgba(207,250,254,0));
}
.dal-zpet .dal-vuz {
  background: linear-gradient(140deg, #ECFEFF, #A5F3FC);
  box-shadow: 0 0 0 1px rgba(207,250,254,.9), 0 0 18px rgba(34,211,238,.75);
  animation-name: dal-jed-zpet;
}
.dal-zpet .dal-vuz svg { display: block; width: 17px; height: 17px; color: #0E7490; }

/* Zpátky se nevrací logo portálu, ale kandidát — silueta a u dvou
   vozidel rovnou skóre shody. Tím je vidět, že zpětný tok nese DATA,
   ne jen „nějaké přihlášky". */
.dal-skore {
  position: absolute; width: auto; height: 20px; border-radius: var(--r-full);
  padding: 0 9px; display: grid; place-items: center;
  font-size: 10.5px; font-weight: 800; color: #0E7490; letter-spacing: .01em;
  background: linear-gradient(140deg, #ECFEFF, #A5F3FC);
  box-shadow: 0 0 0 1px rgba(207,250,254,.9), 0 0 18px rgba(34,211,238,.7);
  animation-name: dal-jed-zpet; animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-duration: var(--t); animation-delay: var(--z);
}

/* Pruhy v pásu: středy 35 / 68 / 101 px, mezi dělicími čarami.
   Odsazení o půl vozidla, ať kotví střed, ne horní hrana. */
.dal-r1 { top: calc(35px - var(--dal-chip) / 2); }
.dal-r2 { top: calc(68px - var(--dal-chip) / 2); }
.dal-r3 { top: calc(101px - var(--dal-chip) / 2); }
.dal-skore.dal-r1 { top: 25px; }
.dal-skore.dal-r2 { top: 58px; }
.dal-skore.dal-r3 { top: 91px; }

@keyframes dal-jed-ven  { from { left: -8%; } to { left: 104%; } }
@keyframes dal-jed-zpet { from { left: 104%; } to { left: -12%; } }

/* Portálová brána nad vozovkou — směrová cedule, provoz jede za ní.
   Sklo, ne plný panel: konvoj musí být vidět i pod ní. */
.dal-smer {
  position: absolute; z-index: 3; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  display: inline-flex; align-items: center; gap: 9px;
  font-size: 11.5px; font-weight: 750; color: #fff;
  letter-spacing: .06em; text-transform: uppercase; white-space: nowrap;
  background: rgba(11,6,22,.6);
  -webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);
  padding: 6px 15px; border-radius: var(--r-full);
  border: 1px solid rgba(255,255,255,.26);
  box-shadow: 0 6px 18px -8px rgba(0,0,0,.7);
}

/* Svodidlo mezi směry — mizí na koncích spolu s vozovkou.
   Mezi pásy prosvítá světlý podklad stránky, takže světle fialové
   čárkování (které fungovalo na tmavé kartě) tu zmizelo a z dálnice
   byly dvě nesouvisející stuhy. Barva proto sytá. */
.dal-svodidlo {
  height: 5px; border-radius: 3px;
  background: repeating-linear-gradient(to right,
    rgba(109,40,217,.7) 0 15px, rgba(109,40,217,.16) 15px 30px);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 5%, #000 82%, transparent 100%);
          mask-image: linear-gradient(to right, transparent 0%, #000 5%, #000 82%, transparent 100%);
}

/* ── 3. VÝJEZDY ──────────────────────────────────────────────────────
   Nahrazuje sloupec textových pilulek. Stejná čtyři sdělení, ale
   doložená logy — pilulka tvrdila, výjezd ukazuje.                  */
/* 18 px, ne 9. Devět stačilo, dokud řádky od sebe držela hrana
   rámečku; bez ní se popisky slijí. Příkaz č. 156. */
.dal-vyjezdy { display: grid; gap: 18px; }

/* ŽÁDNÉ POZADÍ, RÁMEČEK ANI RAMPA. Čtyři orámované obdélníky vedle
   sebe kreslily čtyři krabice, ne cíle — chrom přebil obsah.
   Zbylo logo a text. Svislé odsazení 2 px je jediné, co tu je: bez
   něj se řádky lepí na sebe, s vodorovným by se text odsadil od
   loga dvakrát (jednou paddingem, jednou gapem).

   Rampa šla pryč s rámečkem. Dávala smysl, dokud výjezd vypadal
   jako krabice, do které se najíždí; bez krabice mířila do prázdna.
   Příkaz č. 156 bod 1. */
.dal-vyjezd {
  position: relative;
  display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 12px;
  padding: 2px 0;
}
.dal-vyjezd b {
  font-size: 13px; font-weight: 650; color: var(--text); line-height: 1.3;
  letter-spacing: -.005em;
}

/* NEJVÝŠ DVĚ LOGA, NIKDY PŘES SEBE. Přeložená hromádka ikonek ušetří
   pár pixelů a zaplatí to tím, že se ani jedna značka nedá přečíst —
   z pěti kusů byla dopravní zácpa. Počet nesou čísla v popisku
   („16 pracovních portálů"), ne kupa log. Úplný jmenný seznam je
   stejně v mřížce pod vizuálem. */
.dal-loga { display: flex; align-items: center; gap: 9px; }
.dal-loga img,
.dal-loga span {
  flex: 0 0 auto;
  width: 27px; height: 27px; border-radius: 50%;
  background: #fff; object-fit: contain; padding: 5px;
  box-shadow: 0 0 0 1px var(--line), 0 2px 6px rgba(15,23,42,.12);
}
/* Dlaždice pro kreslený symbol (QR) — stejný materiál jako logo */
.dal-loga span {
  display: grid; place-items: center; padding: 0; color: #4C1D95;
}
.dal-loga span svg { display: block; width: 16px; height: 16px; }

/* ── UZAVŘENÍ POD VIZUÁLEM (příkaz č. 174) ───────────────────────────
   Dřív tu pod sebou stály dva odstavce a pilulka — tři bloky na jedné
   levé hraně, každý jinak dlouhý. Teď je to týž tvar, jakým se zavírá
   buňka sourcingu (č. 160): vlasová linka a pod ní dva sloupce.

   VLEVO VĚTA, VPRAVO VÝKLAD. Ta věta byla do dneška nadpisem celého
   bloku. Nad obrázkem slibovala, co uvidíme; pod ním to potvrzuje —
   a to je silnější pořadí. Proto se hlava bloku zrušila a tahle
   jediná věta z ní přežila.

   Poměr 1,12 : 1 a mezera 44 px jsou převzaté z .zdroj-uzavreni,
   ne vymyšlené znovu. Dvě různá čísla pro tentýž tvar na jedné
   stránce se dřív nebo později rozejdou. */
.dal-uzavreni {
  display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  gap: 44px; align-items: start;
  margin-top: 26px; padding-top: 22px;
  border-top: 1px solid var(--line);
}

/* Kontrast nese barva, ne velikost: první řádek je cizí tvrzení
   (tlumené), druhý naše odpověď (plná). Kdyby byly obě stejně tmavé,
   je to jedna dlouhá věta a pointa se ztratí. */
.dal-veta {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(17px, 1.7vw, 21px);
  line-height: 1.3; letter-spacing: -.015em; font-weight: 700;
  color: var(--muted);
}
.dal-veta strong { color: var(--text); font-weight: 800; }

.dal-popis { margin: 0; font-size: 13.5px; line-height: 1.7; color: var(--muted); }
.dal-popis strong { color: var(--text); font-weight: 650; }

.dal-kai {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 16px;
  padding: 6px 14px 6px 11px; border-radius: var(--r-full);
  font-size: 12px; font-weight: 700; color: #fff;
  background: linear-gradient(100deg, rgba(124,58,237,.95), rgba(217,70,239,.85));
  border: 1px solid rgba(233,213,255,.4);
  box-shadow: 0 0 30px -10px rgba(217,70,239,.95);
}
.dal-kai svg { display: block; width: 15px; height: 15px; flex: 0 0 auto; }

/* ── Úzké okno ───────────────────────────────────────────────────────
   Pod 980 px se tři sloupce nevejdou vedle sebe. Skládají se pod sebe
   a dálnice se narovná: v úzkém sloupci by z perspektivy zbyla jen
   rozmazaná linka a loga v konvoji by se přestala dát přečíst.     */
@media (max-width: 980px) {
  .dal { grid-template-columns: 1fr; gap: 20px; }
  /* Uzavření se skládá pod sebe se stejným odstupem, jaký mezi
     sloupci držela mezera. */
  .dal-uzavreni { grid-template-columns: 1fr; gap: 18px; }
  /* Dva sloupce natvrdo, ne auto-fit. Ten uměl na ~900 px vyrobit
     TŘI sloupce a čtvrtý výjezd zůstal sám na druhém řádku s popiskem
     zalomeným na dva řádky. Čtyři položky chtějí 2 × 2. */
  .dal-vyjezdy { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 26px; }
  /* Výjezdy stojí pod vozovkou, ne vedle ní — pokračování pruhů by
     leželo vedle nich, ne pod nimi. */
  .dal::before, .dal::after { display: none; }
}
@media (max-width: 560px) {
  .dal-vyjezdy { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .dal { --dal-sklon: 0deg; --dal-pas: 92px; --dal-chip: 22px; }
  .dal-vuz img { width: 14px; height: 14px; }
  .dal-r1 { top: calc(27px - var(--dal-chip) / 2); }
  .dal-r2 { top: calc(52px - var(--dal-chip) / 2); }
  .dal-r3 { top: calc(77px - var(--dal-chip) / 2); }
  .dal-skore.dal-r1 { top: 17px; }
  .dal-skore.dal-r2 { top: 42px; }
  .dal-skore.dal-r3 { top: 67px; }
  .dal-smer { font-size: 10.5px; padding: 5px 12px; }
}

/* Vypnutý pohyb: provoz zůstane stát rozprostřený po vozovce, ne
   naskládaný na startu — statický snímek musí sdělit totéž co animace. */
@media (prefers-reduced-motion: reduce) {
  .dal-jadro, .dal-prstenec, .dal-vuz, .dal-skore { animation: none; }
  .dal-prstenec { opacity: .32; transform: scale(1.2); }
  .dal-vuz, .dal-skore { left: var(--klid, 40%); }
  .dal-vuz::before { display: none; }
}
