/* ============================================================
   SWEDEN CODES - kazino
   Remiasi css/style.css tokenais (--c-*, --font-*, --radius).
   Čia tik tai, ko bendras stilius neturi.
   ============================================================ */

.kz{ max-width: 1180px; margin: 0 auto; }

/* ------------------------------------------------------------------
   SKAITOMUMAS. Bendras stilius deda tris permatomumo sluoksnius:
   .pp-card yra pusiau permatoma + backdrop-filter: blur(10px),
   body::before rodo background.webp, o body::after uždeda CRT grūdėtumą
   ant VISO puslapio. Rinkodaros puslapiui tinka, bet prie kortų stalo
   kortos ir sumos tampa neįskaitomos. Čia visa tai išjungiam.
   ------------------------------------------------------------------ */
.kz-page{ background: var(--c-void); }
.kz-page .pp-card{
  background: #0E1729;                    /* nepermatoma */
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
body.kz-page::after{ display: none; }     /* jokio grūdėtumo virš stalo */
body.kz-page::before{ opacity: .28; }     /* foto lieka, bet tik kaip fonas */

/* ------------------------------------------------------------------
   `hidden` PRIVALO nugalėti display.
   Naršyklės `[hidden]{display:none}` yra UA taisyklė, tad bet koks mūsų
   `display:flex` ją perrašo ir elementas lieka matomas nepaisant atributo.
   Dėl to `.kz-verdict` (position:absolute; inset:0; backdrop-filter:blur)
   niekada nedingdavo ir stalas atrodė užtemdytas bei neryškus.
   ------------------------------------------------------------------ */
[hidden]{ display: none !important; }

/* balansas viršuje */
.kz-bal{
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12.5px; color: var(--c-gold, #FFD24A);
  border: 1px solid var(--c-grid); border-radius: var(--radius);
  padding: 7px 12px; white-space: nowrap;
}
.kz-bal__coin{
  width: 13px; height: 13px; border-radius: 50%; flex: none;
  background: radial-gradient(circle at 35% 30%, #FFE9A8, #C9821A 70%);
  box-shadow: 0 0 8px rgba(255,210,74,.45);
}
/* balansas žaidimo antraštėje - matomas ir per visą ekraną */
.kz-bal--game{ margin-left: auto; font-size: 12px; padding: 6px 11px; }
.kz-bal--game + .kz-fs{ margin-left: 8px; }
.kz-game--max .kz-bal--game{ font-size: 13.5px; padding: 8px 14px; }

/* Žaidimai atidaromi iš fojė ir žaidžiami per visą ekraną -
   #kzGrid tėra jų nematoma buveinė. */
.kz-grid{ display: block; }
.kz-game{ display: flex; flex-direction: column; gap: 14px; }
.kz-grid .kz-game{ display: none; }

/* ---------------- ŽAIDIMŲ FOJĖ ---------------- */
.kz-lobby{
  display: grid; gap: 18px;
  /* 4 žaidimai: 2×2 nuo vidutinio pločio - auto-fit darydavo 3+1 su
     našlaite antroje eilutėje */
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  padding: 0 clamp(14px, 3vw, 26px);
}
.kz-tile{
  position: relative; display: flex; align-items: center; gap: 22px;
  min-height: 172px; padding: 22px 26px; text-align: left;
  border: 1px solid var(--c-grid); border-radius: var(--radius);
  cursor: pointer; overflow: hidden; color: var(--c-body);
  transition: transform .16s, border-color .16s, box-shadow .2s;
}
@media (min-width: 760px){
  .kz-lobby{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 759px){
  .kz-lobby{ grid-template-columns: minmax(0, 1fr); }
  .kz-tile{ width: 100%; min-width: 0; }
}
@media (max-width: 380px){
  .kz-lobby{ gap: 14px; padding-inline: 10px; }
  .kz-tile{ gap: 14px; min-height: 164px; padding: 18px; }
  .kz-tile__name{ font-size: 17px; }
  .kz-tile__sub{ letter-spacing: .08em; }
}

.kz-tile--bj{
  background:
    radial-gradient(130% 130% at 86% 12%, rgba(17,41,31,.9), rgba(10,23,18,.35) 55%, transparent),
    var(--c-panel-2, #0E1729);
}
.kz-tile--rc{
  background:
    radial-gradient(130% 130% at 86% 12%, rgba(15,26,48,.92), rgba(10,16,28,.35) 55%, transparent),
    var(--c-panel-2, #0E1729);
}
.kz-tile--sl{
  background:
    radial-gradient(130% 130% at 86% 12%, rgba(56,22,30,.92), rgba(30,14,18,.35) 55%, transparent),
    var(--c-panel-2, #0E1729);
}
.kz-tile--hm{
  background:
    radial-gradient(130% 130% at 86% 12%, rgba(58,24,84,.9), rgba(30,14,46,.35) 55%, transparent),
    var(--c-panel-2, #0E1729);
}
.kz-tile::after{
  content: ''; position: absolute; inset: 0 0 auto; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.16), transparent);
}
.kz-tile:hover{
  transform: translateY(-3px);
  border-color: var(--c-gold, #E4B84A);
  box-shadow: 0 16px 36px rgba(0,0,0,.45);
}
.kz-tile:active{ transform: translateY(-1px); }
.kz-tile:focus-visible{ outline: 2px solid var(--c-city, #4DA3FF); outline-offset: 2px; }

.kz-tile__art{ position: relative; width: 118px; height: 118px; flex: none; }
.kz-tile__art .kz-card{ position: absolute; width: 62px; transition: transform .18s; }
.kz-tile__art .kz-card:first-child{ left: 4px; top: 16px; transform: rotate(-11deg); z-index: 1; }
.kz-tile__art .kz-card:last-child{ left: 46px; top: 6px; transform: rotate(9deg); }
.kz-tile:hover .kz-tile__art .kz-card:first-child{ transform: rotate(-14deg) translateY(-4px); }
.kz-tile:hover .kz-tile__art .kz-card:last-child{ transform: rotate(12deg) translateY(-4px); }
.kz-tile__art--horse{ display: flex; align-items: center; }
.kz-tile__art--horse svg{
  width: 114px; height: auto;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,.5));
  transition: transform .18s;
}
.kz-tile:hover .kz-tile__art--horse svg{ transform: translateX(5px); }

.kz-tile__body{ display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.kz-tile__name{
  font-family: var(--font-display); font-weight: 700;
  font-size: 19px; letter-spacing: .06em; color: var(--c-white);
}
.kz-tile__sub{ font-size: 9.5px; letter-spacing: .12em; color: var(--c-gray); }
.kz-tile__cta{
  margin-top: 7px; align-self: flex-start;
  padding: 10px 17px; font-size: 10px; letter-spacing: .14em; font-weight: 700;
  color: #1A1206; border-radius: var(--radius);
  background: linear-gradient(180deg, #FFE08A, #F5C451 45%, #E4A93C);
  box-shadow: 0 4px 12px rgba(228,169,60,.3), inset 0 1px 0 rgba(255,255,255,.5);
}
.kz-tile__cta i{ font-style: normal; display: inline-block; transition: transform .15s; }
.kz-tile:hover .kz-tile__cta i{ transform: translateX(3px); }
.kz-tile__badge{
  position: absolute; top: 12px; right: 12px;
  padding: 5px 10px; font-size: 9px; letter-spacing: .1em;
  color: var(--c-gold, #E4B84A); border: 1px solid rgba(228,184,74,.45);
  border-radius: var(--radius); background: rgba(228,184,74,.07);
}
.kz-tile__badge.is-live{ animation: kzHot 1.2s ease-in-out infinite; }

/* ---------------- BLACKJACK ---------------- */
.kz-felt{
  position: relative;
  background: radial-gradient(120% 90% at 50% 0%, #11291F, #0A1712 70%);
  border: 1px solid var(--c-grid);
  border-radius: var(--radius);
  padding: 16px;
  display: grid; gap: 16px;
  min-height: 214px;
}
/* vinjetė - stalas įgauna gylį */
.kz-felt::after{
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 0 74px rgba(0,0,0,.5), inset 0 0 4px rgba(0,0,0,.4);
}
/* stalo užrašas - po kortomis, virš audinio */
.kz-felt__mark{
  position: absolute; left: 50%; top: 54%;
  transform: translate(-50%, -50%);
  width: min(540px, 94%); height: auto;
  color: var(--c-gold, #E4B84A); opacity: .30;
  pointer-events: none; user-select: none;
}
.kz-felt__line{ stroke: currentColor; stroke-width: 1.1; fill: none; opacity: .6; }
.kz-felt__line--soft{ opacity: .3; }
.kz-felt__t1, .kz-felt__t2{ fill: currentColor; text-anchor: middle; font-family: var(--font-display); }
.kz-felt__t1{ font-size: 20px; font-weight: 700; letter-spacing: .34em; }
.kz-felt__t2{ font-size: 9.5px; font-weight: 600; letter-spacing: .2em; }
.kz-side{ position: relative; z-index: 1; }
.kz-verdict{ z-index: 2; }
.kz-side__label{
  font-size: 10px; letter-spacing: .14em; color: var(--c-gray); margin-bottom: 8px;
}
.kz-side__label b{ color: var(--c-white); font-size: 12px; }
.kz-cards{ display: flex; gap: 7px; flex-wrap: wrap; min-height: 74px; }

/* Tuščias stalas prieš pirmą dalinimą - dvi punktyrinės kortų vietos,
   kad zona neatrodytų kaip nebaigtas puslapis. Vien CSS, be JS. */
.kz-cards:empty::before, .kz-cards:empty::after{
  content: ''; width: 52px; aspect-ratio: 5 / 7; border-radius: 7px;
  border: 1.5px dashed rgba(233,242,250,.13);
}
.kz-cards:empty::after{ opacity: .5; }

/* ---- kelios rankos (po skėlimo) ---- */
.kz-hands{ display: grid; gap: 10px; }
.kz-hands--multi{
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  align-items: start;
}
.kz-hand{
  border: 1px solid transparent; border-radius: 10px;
  padding: 6px 8px; margin: -6px -8px;
  transition: border-color .18s ease, background .18s ease, opacity .18s ease;
}
/* Aktyvi ranka pažymima - kitaip po skėlimo nesuprasi, kuria dabar žaidi. */
.kz-hands--multi .kz-hand.is-active{
  border-color: rgba(70,214,160,.55);
  background: rgba(70,214,160,.06);
  box-shadow: 0 0 0 1px rgba(70,214,160,.12) inset;
}
.kz-hands--multi .kz-hand.is-done:not(.is-active){ opacity: .62; }
.kz-hand__lbl{
  font-size: 10px; letter-spacing: .1em; color: var(--c-gray);
  margin-bottom: 6px; display: flex; align-items: center; gap: 7px;
  width: max-content; max-width: 100%;   /* kitaip `em{margin-left:auto}` nusviestų
                                            žymą į stalo kraštą ir ją nukirstų */
}
.kz-hand__lbl[hidden]{ display: none; }
.kz-hand__lbl i{
  font-style: normal; width: 15px; height: 15px; flex: none;
  display: grid; place-items: center; border-radius: 4px;
  background: rgba(255,255,255,.08); color: var(--c-white); font-size: 9px;
}
.kz-hand__lbl b{ color: var(--c-white); font-size: 13px; }
.kz-hand__lbl s{ text-decoration: none; color: var(--c-gold, #E4B84A); font-size: 9px; }
.kz-hand__lbl u{ text-decoration: none; color: var(--c-gray); font-size: 9px; }
.kz-hand__lbl em{ font-style: normal; font-size: 9px; letter-spacing: .08em; }
.kz-hands--multi .kz-hand__lbl{ width: auto; }
.kz-hands--multi .kz-hand__lbl em{ margin-left: auto; }
.kz-hand__lbl em.is-win { color: #46D6A0; }
.kz-hand__lbl em.is-push{ color: var(--c-gray); }
.kz-hand__lbl em.is-lose{ color: #E8414D; }
.kz-hands--multi .kz-card{ width: 44px; }

/* ---- draudimo klausimas ---- */
.kz-insure{
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin-top: 12px; padding: 11px 13px;
  border: 1px solid rgba(228,184,74,.34);
  background: linear-gradient(180deg, rgba(228,184,74,.10), rgba(228,184,74,.04));
  border-radius: 10px;
}
.kz-insure__q{ font-size: 11px; color: var(--c-white); margin-right: auto; }
.kz-insure__q b{ color: var(--c-gold, #E4B84A); }
.kz-btn--sm{ padding: 7px 13px; font-size: 10px; }
.kz-btn--ghost{ background: transparent; }

/* korta = SVG; proporcijos 5:7 kaip tikros pokerio kortos */
.kz-card{
  width: 56px; flex: none; line-height: 0;
  color: #10151F;                       /* ženklų spalva paveldima per currentColor */
  filter: drop-shadow(0 6px 12px rgba(0,0,0,.55));
  animation: kzDeal .34s var(--ease-hud, ease) both;
}
.kz-card__svg{ width: 100%; height: auto; display: block; }
.kz-card--red{ color: #C8323E; }
.kz-card--back{ color: transparent; }
@keyframes kzDeal{
  from{ opacity: 0; transform: translateY(-22px) rotate(-7deg) scale(.94) }
  to  { opacity: 1; transform: none }
}

/* dalintojo uždaros kortos atsivertimas */
.kz-cards{ perspective: 640px; }
.kz-card--flip{ animation: kzFlip .5s var(--ease-hud, ease) both; }
@keyframes kzFlip{
  from{ transform: rotateY(86deg) scale(.97); opacity: .35 }
  to  { transform: none; opacity: 1 }
}

/* ---------------- REZULTATO PLOKŠTELĖ ----------------
   Anksčiau čia buvo per visą stalą užtemdytas ekranas su viena eilute -
   pigu ir dar uždengia kortas, kurių žaidėjas kaip tik nori pamatyti.
   Dabar rezultatas atplaukia kaip kazino plokštelė stalo apačioje:
   stalas lieka matomas, o suma - pagrindinis akcentas. */
.kz-verdict{
  position: absolute; inset: 0; z-index: 7;   /* virš vietų (.kz-seat = 2) */
  display: flex; align-items: flex-end; justify-content: center;
  padding: 0 12px 16px; pointer-events: none;
  border-radius: var(--radius);
  --vc: #9FB0C8;                    /* akcento spalva pagal baigtį */
  --vc-soft: rgba(159,176,200,.16);
}
/* švelnus atspalvio pašvietimas nuo apačios - vietoj viso ekrano blur'o */
.kz-verdict::before{
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 62%;
  background: linear-gradient(180deg, transparent, var(--vc-soft) 62%, transparent);
  opacity: 0; animation: kzVGlow .5s ease-out .05s forwards;
  border-radius: inherit; pointer-events: none;
}
@keyframes kzVGlow{ to{ opacity: 1 } }

.kz-vpanel{
  position: relative; overflow: hidden;
  display: flex; align-items: center; gap: 14px;
  max-width: 100%; padding: 11px 18px 11px 15px;
  background: linear-gradient(180deg, rgba(18,25,40,.96), rgba(10,15,26,.97));
  border: 1px solid color-mix(in srgb, var(--vc) 42%, transparent);
  border-radius: 12px;
  box-shadow: 0 14px 34px rgba(0,0,0,.55),
              0 0 0 1px rgba(255,255,255,.04) inset,
              0 0 26px -6px color-mix(in srgb, var(--vc) 45%, transparent);
  animation: kzVIn .42s cubic-bezier(.2,.9,.3,1.25) both;
}
@keyframes kzVIn{
  from{ opacity: 0; transform: translateY(16px) scale(.96) }
  to  { opacity: 1; transform: none }
}
/* akcento juostelė kairėje */
.kz-vpanel::before{
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--vc); box-shadow: 0 0 12px var(--vc);
}
/* vienkartinis blizgesio brūkštelėjimas per plokštelę */
.kz-vpanel::after{
  content: ''; position: absolute; top: 0; bottom: 0; width: 60%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.09), transparent);
  transform: translateX(-160%); animation: kzVSheen 1.15s ease-out .28s;
}
@keyframes kzVSheen{ to{ transform: translateX(340%) } }

.kz-vpanel__glyph{
  flex: none; width: 30px; height: 30px; border-radius: 50%;
  display: grid; place-items: center;
  font-size: 15px; font-weight: 700; line-height: 1;
  color: var(--vc);
  background: color-mix(in srgb, var(--vc) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--vc) 38%, transparent);
}
.kz-vpanel__txt{ display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kz-vpanel__label{
  font-family: var(--font-display); font-weight: 700; font-size: 13px;
  letter-spacing: .16em; text-transform: uppercase; color: var(--c-white);
  white-space: nowrap;
}
.kz-vpanel__note{
  font-size: 10.5px; letter-spacing: .05em; color: var(--c-gray);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 34ch;
}
.kz-vpanel__amt{
  margin-left: auto; padding-left: 12px;
  font-family: var(--font-mono); font-size: 19px; font-weight: 700;
  font-variant-numeric: tabular-nums; color: var(--vc);
  white-space: nowrap; letter-spacing: -.01em;
}
.kz-vpanel__amt i{ font-style: normal; font-size: 10px; opacity: .6; margin-left: 4px; letter-spacing: .1em; }

.kz-verdict--win { --vc: #46D6A0; --vc-soft: rgba(70,214,160,.18); }
.kz-verdict--lose{ --vc: #E8414D; --vc-soft: rgba(232,65,77,.14); }
.kz-verdict--push{ --vc: #9FB0C8; --vc-soft: rgba(159,176,200,.12); }
/* blackjack / didelis laimėjimas - auksas ir lėtas pulsas */
.kz-verdict--bj{ --vc: var(--c-gold, #FFD24A); --vc-soft: rgba(255,210,74,.2); }
.kz-verdict--bj .kz-vpanel{ animation: kzVIn .42s cubic-bezier(.2,.9,.3,1.25) both, kzBjGlow 1.6s ease-in-out .5s 3; }
@keyframes kzBjGlow{
  0%,100%{ box-shadow: 0 14px 34px rgba(0,0,0,.55), 0 0 22px -8px rgba(255,210,74,.5) }
  50%    { box-shadow: 0 14px 34px rgba(0,0,0,.55), 0 0 40px -2px rgba(255,210,74,.9) }
}

@media (max-width: 640px){
  .kz-verdict{ padding: 0 8px 10px; }
  .kz-vpanel{ gap: 10px; padding: 9px 13px 9px 12px; width: 100%; }
  .kz-vpanel__glyph{ width: 26px; height: 26px; font-size: 13px; }
  .kz-vpanel__label{ font-size: 11.5px; letter-spacing: .12em; }
  .kz-vpanel__note{ max-width: 20ch; }
  .kz-vpanel__amt{ font-size: 16px; padding-left: 8px; }
}
@media (prefers-reduced-motion: reduce){
  .kz-vpanel, .kz-verdict--bj .kz-vpanel{ animation: kzVIn .01s both; }
  .kz-vpanel::after{ display: none; }
  .kz-verdict::before{ animation: none; opacity: 1; }
}


/* ---------------- SLOTAI ----------------
   Kabinetas: 5 būgnai po 3 langelius. Kiekvienas būgnas - overflow:hidden
   šulinys, kuriame juda ilga .kz-slstrip juosta; sustojimas - transition
   su lengvu peršokimu. Laimėjusios linijos piešiamos SVG sluoksniu virš
   būgnų, laimėję langeliai pulsuoja, kiti pritemsta. */
#kzSl .kz-gamebg{ --bgA: rgba(150,40,60,.30); --bgB: rgba(120,84,20,.22); }

.kz-slcab{
  position: relative;
  width: max-content; max-width: 100%;   /* kabinetas lygiai būgnų pločio */
  margin: 0 auto;
  padding: 14px 22px 16px;
  background: linear-gradient(180deg, #131B2E 0%, #0C1220 100%);
  border: 1px solid rgba(228,184,74,.30);
  border-radius: var(--radius);
  box-shadow: inset 0 0 60px rgba(0,0,0,.5), 0 14px 40px rgba(0,0,0,.4),
              0 0 0 6px #10151F, 0 0 0 7px rgba(228,184,74,.16);
}
/* rėmas lygiai būgnų pločio - laimėjimo linijos baigiasi ties būgnais,
   o ne nusidriekia per visą kabinetą */
/* kabineto iškaba - kaip ant tikro automato stogelio */
.kz-slcab::before{
  content: 'SWEDEN CODES \00b7 SLOTAI';
  display: block; text-align: center;
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .42em;
  color: rgba(228,184,74,.6); margin: 0 0 10px;
  text-shadow: 0 0 12px rgba(228,184,74,.35);
}
.kz-game--max .kz-slcab{ width: max-content; }   /* fullscreen taisyklės nepersveria */
.kz-slframe{
  position: relative; width: max-content; margin: 0 auto;
  display: flex; align-items: center; gap: 10px;
}

/* Linijų bėgeliai - numeriai 1-10 abipus būgnų, kaip ant tikro kabineto.
   Laimėjus linijai, jos numeris užsidega TOS linijos spalva. */
.kz-slrail{ display: flex; flex-direction: column; justify-content: space-between; align-self: stretch; padding: 2px 0; }
.kz-slpip{
  width: 22px; height: 17px;
  display: grid; place-items: center;
  font-family: var(--font-mono); font-size: 9px; color: rgba(255,255,255,.28);
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07); border-radius: 5px;
  transition: all .18s;
}
.kz-slpip.is-on{
  color: #10151F; font-weight: 700;
  background: var(--pc, #E4B84A); border-color: var(--pc, #E4B84A);
  box-shadow: 0 0 12px var(--pc, #E4B84A);
}

/* būgno cilindras: viršus/apačia tamsėja - simboliai tarsi ant ritinio */
.kz-slreel::before{
  content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(180deg,
    rgba(5,8,16,.55) 0%, transparent 22%,
    transparent 78%, rgba(5,8,16,.55) 100%);
  border-radius: inherit;
}
/* vidurinės eilutės žyma - pagrindinė linija visada aiški */
.kz-slreels{ position: relative; }
.kz-slreels::after{
  content: ''; position: absolute; left: -6px; right: -6px; top: 50%; height: 0;
  border-top: 1px dashed rgba(228,184,74,.22);
  transform: translateY(-.5px); pointer-events: none;
}

/* laimėjimo plokštė - auksinė, ne pilka eilutė */
.kz-slwinbar{
  width: max-content; margin: 12px auto 0; padding: 7px 22px;
  background: linear-gradient(180deg, rgba(228,184,74,.16), rgba(228,184,74,.05));
  border: 1px solid rgba(228,184,74,.4); border-radius: 999px;
  box-shadow: 0 0 18px -6px rgba(228,184,74,.6), inset 0 1px 0 rgba(255,255,255,.08);
}

/* monetų lietus dideliam laimėjimui */
.kz-slcoins{ position: absolute; inset: -20px 0 0 0; overflow: hidden; pointer-events: none; z-index: 6; }
.kz-slcoin{
  position: absolute; top: -26px;
  width: 16px; height: 16px; border-radius: 50%;
  background: radial-gradient(circle at 34% 30%, #F6DA8C, #E4B84A 55%, #A87B24);
  box-shadow: 0 0 6px rgba(228,184,74,.7);
  animation: kzCoinFall var(--cd, 1.3s) cubic-bezier(.3,.1,.7,1) var(--cw, 0s) forwards;
}
@keyframes kzCoinFall{
  0%  { transform: translateY(0) rotate(0)       scaleX(1);  opacity: 1; }
  60% {                                          }
  100%{ transform: translateY(var(--ch, 340px)) rotate(560deg) scaleX(.35); opacity: 0; }
}

/* SUKTI kvėpuoja kol laukia; sukantis - ramus */
.kz-slspin:not([disabled]){ animation: kzSpinBreath 2.6s ease-in-out infinite; }
@keyframes kzSpinBreath{
  0%,100%{ box-shadow: 0 6px 18px rgba(0,0,0,.4), 0 0 0 0 rgba(228,184,74,0); }
  50%    { box-shadow: 0 6px 18px rgba(0,0,0,.4), 0 0 22px -4px rgba(228,184,74,.75); }
}

@media (max-width: 640px){
  .kz-slrail{ display: none; }          /* telefone bėgeliams vietos nėra */
  .kz-slframe{ gap: 0; }
}
@media (prefers-reduced-motion: reduce){
  .kz-slspin:not([disabled]){ animation: none; }
  .kz-slcoin{ display: none; }
}

.kz-slreels{
  --slc: clamp(52px, 8vw, 84px);
  display: grid;
  grid-template-columns: repeat(5, var(--slc));
  gap: 8px; justify-content: center;
}
.kz-game--max .kz-slreels{ --slc: clamp(62px, 7.4vw, 100px); }

.kz-slreel{
  position: relative;
  height: calc(var(--slc) * 3);
  overflow: hidden;
  border-radius: 10px;
  background: linear-gradient(180deg, #1A2338 0%, #223050 50%, #1A2338 100%);
  border: 1px solid rgba(255,255,255,.09);
  box-shadow: inset 0 10px 16px rgba(0,0,0,.45), inset 0 -10px 16px rgba(0,0,0,.45);
}
/* stiklo blizgesys ant kiekvieno būgno */
.kz-slreel::after{
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.06) 46%, transparent 55%);
}
.kz-slstrip{
  position: absolute; left: 0; right: 0; top: 0;
  will-change: transform;
}
.kz-slcell{
  height: var(--slc);
  position: relative;
  display: grid; place-items: center;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
/* simbolio plytelė - suteikia būgnui tankumo, be jos langeliai atrodo tušti */
.kz-slcell::before{
  content: ''; position: absolute; inset: 6% 9%;
  border-radius: 14%;
  background: linear-gradient(180deg, rgba(255,255,255,.055), rgba(0,0,0,.18));
  border: 1px solid rgba(255,255,255,.055);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.kz-slcell .kz-slsym{ position: relative; }
.kz-slcell .kz-slsym{ width: 78%; height: 78%; display: block; }

/* sukimosi fazė: judesio suliejimas */
.kz-slreel.is-blur .kz-slsym{ filter: blur(3px) saturate(1.15); }
/* laukimo įtampa: 2 scatteriai jau matomi, paskutiniai būgnai dar sukasi */
.kz-slreel.is-tease{ animation: kzSlTease .5s ease-in-out infinite; }
@keyframes kzSlTease{
  0%,100%{ box-shadow: inset 0 10px 16px rgba(0,0,0,.45), inset 0 -10px 16px rgba(0,0,0,.45), 0 0 0 1px rgba(228,184,74,.25); }
  50%    { box-shadow: inset 0 10px 16px rgba(0,0,0,.45), inset 0 -10px 16px rgba(0,0,0,.45), 0 0 18px 2px rgba(228,184,74,.55); }
}

/* laimėjimo rodymas */
.kz-slframe.is-show .kz-slcell{ opacity: .32; transition: opacity .25s; }
.kz-slframe.is-show .kz-slcell.is-hit{ opacity: 1; }
.kz-slcell.is-hit .kz-slsym{ animation: kzSlHit .5s ease-in-out infinite alternate; }
@keyframes kzSlHit{
  from{ transform: scale(1); filter: drop-shadow(0 0 4px rgba(228,184,74,.45)); }
  to  { transform: scale(1.12); filter: drop-shadow(0 0 12px rgba(228,184,74,.9)); }
}

.kz-sllines{
  position: absolute; inset: 0; width: 100%; height: 100%;
  pointer-events: none; z-index: 3;
}
.kz-sllines polyline{
  fill: none; stroke-linecap: round; stroke-linejoin: round;
  filter: drop-shadow(0 0 6px currentColor);
}

/* nemokamų sukimų juosta */
.kz-slfsban{
  display: flex; justify-content: center; gap: 6px;
  margin: 0 0 12px; padding: 8px 12px;
  background: linear-gradient(180deg, rgba(228,184,74,.18), rgba(228,184,74,.06));
  border: 1px solid rgba(228,184,74,.45);
  border-radius: 9px;
  font-size: 11px; letter-spacing: .14em; color: var(--c-gold, #E4B84A);
  animation: kzSlFsGlow 1.6s ease-in-out infinite;
}
.kz-slfsban b{ color: #FFF; }
@keyframes kzSlFsGlow{
  0%,100%{ box-shadow: 0 0 10px -4px rgba(228,184,74,.5); }
  50%    { box-shadow: 0 0 22px -2px rgba(228,184,74,.85); }
}

/* laimėjimo skaitiklis po būgnais */
.kz-slwinbar{
  display: flex; justify-content: center; align-items: baseline; gap: 4px;
  margin-top: 12px; font-size: 12px; letter-spacing: .16em; color: var(--c-gray);
}
.kz-slwinbar b{
  font-size: 22px; color: var(--c-gold, #E4B84A);
  font-variant-numeric: tabular-nums; letter-spacing: 0;
  text-shadow: 0 0 14px rgba(228,184,74,.45);
}

.kz-slspin{ min-width: 148px; flex: none; width: auto; }
.kz-slspin[disabled]{ opacity: .55; cursor: default; }
#kzSlHint{ font-size: 10px; color: var(--c-gray); letter-spacing: .08em; }

/* išmokų lentelė taisyklėse */
.kz-slpay{
  display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 8px; margin-bottom: 12px;
}
.kz-slpay__row{
  display: flex; align-items: center; gap: 8px;
  padding: 6px 9px; background: var(--c-void-2);
  border: 1px solid var(--c-grid); border-radius: 8px;
}
.kz-slpay__row .kz-slsym{ width: 34px; height: 34px; flex: none; }
.kz-slpay__vals{ font-size: 10.5px; color: var(--c-body); line-height: 1.5; }
.kz-slpay__vals b{ color: var(--c-gold, #E4B84A); }

/* fojės plytelės menas */
/* Fojės plytelės menas: simboliai ant „automato langelių" - kad svoriu
   prilygtų kaimynų kortoms, o ne atrodytų kaip pabirusios ikonos. */
.kz-tile__art--slots .kz-slsym{
  position: absolute; width: 62px; height: 62px;
  padding: 7px; box-sizing: border-box;
  background: linear-gradient(180deg, #223050, #16203A);
  border: 1px solid rgba(228,184,74,.35);
  border-radius: 12px;
  box-shadow: 0 6px 16px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.08);
}
.kz-tile__art--slots .kz-slsym:nth-child(1){ left: 0;    top: 34px; transform: rotate(-10deg); }
.kz-tile__art--slots .kz-slsym:nth-child(2){ left: 30px; top: 8px;  z-index: 1; }
.kz-tile__art--slots .kz-slsym:nth-child(3){ left: 60px; top: 36px; transform: rotate(10deg); }

@media (max-width: 640px){
  .kz-slcab{ padding: 10px; }
  .kz-slreels{ --slc: clamp(46px, 16.5vw, 62px); gap: 5px; }
  .kz-game--max .kz-slreels{ --slc: clamp(50px, 17vw, 64px); }
  .kz-slwinbar b{ font-size: 18px; }
  #kzSlHint{ display: none; }
}

@media (prefers-reduced-motion: reduce){
  .kz-slstrip{ transition: none !important; }
  .kz-slreel.is-blur .kz-slsym{ filter: none; }
  .kz-slreel.is-tease, .kz-slcell.is-hit .kz-slsym, .kz-slfsban{ animation: none; }
}

/* ---------------- STATYMAI ---------------- */
.kz-betrow{ display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.kz-betlabel{ font-size: 10px; letter-spacing: .14em; color: var(--c-gray); }
.kz-bet{
  width: 108px; padding: 9px 11px;
  background: var(--c-void-2); border: 1px solid var(--c-grid);
  border-radius: var(--radius); color: var(--c-white);
  font-size: 14px; font-variant-numeric: tabular-nums;
}
.kz-bet:focus-visible{ outline: none; border-color: var(--c-city); box-shadow: 0 0 0 2px rgba(77,163,255,.25); }
/* Žetonai - apvalūs, kaip tikri: spalva pagal nominalą, brūkšninis žiedas. */
.kz-chips{ display: flex; gap: 7px; align-items: center; }
.kz-chip{
  --chip: #4DA3FF;
  width: 42px; height: 42px; border-radius: 50%; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 9.5px; letter-spacing: .02em; color: var(--c-white);
  background:
    radial-gradient(circle at 50% 32%, rgba(255,255,255,.13), rgba(255,255,255,0) 58%),
    var(--c-panel-2, #0E1729);
  border: 2px solid var(--chip);
  box-shadow: 0 3px 9px rgba(0,0,0,.42);
  position: relative; cursor: pointer;
  transition: transform .12s, box-shadow .15s, filter .15s;
}
.kz-chip::before{
  content: ''; position: absolute; inset: 3px; border-radius: 50%;
  border: 1.5px dashed var(--chip); opacity: .5; pointer-events: none;
}
.kz-chip:hover{ transform: translateY(-2px); box-shadow: 0 6px 14px rgba(0,0,0,.5); filter: brightness(1.1); }
.kz-chip:active{ transform: translateY(0) scale(.93); }
.kz-chip[data-chip="10"]{  --chip: #4DA3FF; }
.kz-chip[data-chip="50"]{  --chip: #46D6A0; }
.kz-chip[data-chip="250"]{ --chip: #8B5CF6; }
.kz-chip[data-chip="max"]{ --chip: var(--c-gold, #E4B84A); color: var(--c-gold, #E4B84A); }
.kz-hint{ font-size: 10.5px; color: var(--c-gray-dim); }

.kz-actions{ display: flex; gap: 8px; flex-wrap: wrap; }
.kz-btn{
  flex: 1 1 auto; min-width: 96px; padding: 12px 16px;
  font-family: var(--font-display); font-weight: 700;
  font-size: 12px; letter-spacing: .08em; text-transform: uppercase;
  color: var(--c-body);
  background:
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,0) 55%),
    var(--c-panel-2, #0E1729);
  border: 1px solid var(--c-grid); border-radius: var(--radius);
  box-shadow: 0 2px 8px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.05);
  cursor: pointer;
  transition: border-color .15s, color .15s, box-shadow .18s, transform .12s, filter .15s;
}
.kz-btn:hover:not(:disabled){
  border-color: var(--c-city); color: var(--c-white);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.07);
}
.kz-btn:active:not(:disabled){ transform: translateY(0) scale(.985); }
.kz-btn--primary{
  color: #1A1206; border-color: #B98A2B;
  background: linear-gradient(180deg, #FFE08A, #F5C451 46%, #E4A93C);
  box-shadow: 0 4px 14px rgba(228,169,60,.32), inset 0 1px 0 rgba(255,255,255,.5);
  text-shadow: 0 1px 0 rgba(255,255,255,.35);
}
.kz-btn--primary:hover:not(:disabled){
  color: #1A1206; border-color: #D8A93E; filter: brightness(1.05);
  box-shadow: 0 7px 20px rgba(228,169,60,.42), inset 0 1px 0 rgba(255,255,255,.55);
}
.kz-btn--ghost{ background: transparent; box-shadow: none; }
.kz-btn:disabled{ opacity: .4; cursor: not-allowed; transform: none; }

/* ---------------- LENKTYNĖS ---------------- */
/* ================= HIPODROMAS =================
   Takas NĖRA sukamas 3D transformacija - jis PIEŠIAMAS suplotas.
   Viena JS funkcija ovPt() projektuoja pasaulio tašką į SVG koordinates, ir
   ta pati funkcija nubrėžia gruntą, tvoras IR pastato žirgą - todėl piešinys
   ir judesys negali išsiskirti. Kadangi 3D konteksto nėra, dingsta ir visa
   klasė bėdų: preserve-3d suplojimai, koplanarinių elementų dažymo tvarka,
   priešingomis kryptimis pasukti vaikai. Gylį duoda z-index pagal q. */
.kz-arena{
  position: relative; overflow: hidden;
  border: 1px solid var(--c-grid); border-radius: var(--radius);
  background: linear-gradient(180deg, #060C1E 0%, #16234A 46%, #1E3326 100%);
  height: clamp(250px, 36vh, 340px);
  /* #kzRace yra flex column su overflow:auto, o numatytasis flex-shrink:1
     suspausdavo areną nuo 439 px iki ~200 px - ovalas likdavo plokščias
     ruoželis. Aukštis čia yra sprendimas, ne pasiūlymas. */
  flex: none;
  isolation: isolate;
  --yfar: 40%;              /* JS perrašo: kur baigiasi tolimoji tako briauna */
  --kz-horse: 46px;         /* JS perrašo pagal takelių tarpą */
}
.kz-game--max .kz-arena{ height: clamp(320px, 52vh, 520px); }

/* --- dangus + saulė --- */
.kz-sky{
  position: absolute; left: 0; right: 0; top: 0;
  bottom: calc(100% - var(--yfar) + 9%);
  background:
    radial-gradient(130% 170% at 50% 100%, rgba(255,168,92,.22), transparent 58%),
    linear-gradient(180deg, #050A1A 0%, #16234A 60%, #34405E 100%);
}
.kz-sun{
  position: absolute; left: 72%; bottom: 2%;
  width: 54px; height: 54px; border-radius: 50%;
  background: radial-gradient(circle, #FFF0C8 18%, #FFB259 55%, rgba(255,150,60,0) 72%);
  opacity: .8;
}
/* tribūnos remiasi tiksliai į tolimąją tako briauną */
.kz-stands{
  position: absolute; left: -2%; right: -2%;
  top: calc(var(--yfar) - 9%); height: 9%;
  background:
    repeating-linear-gradient(90deg,
      rgba(255,255,255,.10) 0 2px, transparent 2px 5px,
      rgba(120,160,220,.08) 5px 7px, transparent 7px 10px),
    linear-gradient(180deg, #26334E 0 22%, #1A2437 22% 100%);
  border-top: 2px solid #2E3C58;
  box-shadow: inset 0 -8px 14px rgba(0,0,0,.5), 0 2px 10px rgba(0,0,0,.4);
}
.kz-stands::after{          /* prožektoriai */
  content: ''; position: absolute; left: 0; right: 0; top: -9px; height: 9px;
  background: repeating-linear-gradient(90deg,
    transparent 0 78px, rgba(255,240,200,.55) 78px 82px, transparent 82px 160px);
}
/* Horizonto linijos NĖRA: nykimo taškas yra virš kadro, tad bet kokia
   nubrėžta kalva prieštarautų paties tako perspektyvai. */
.kz-hills, .kz-railfar{ display: none; }

/* žolės juosta prie žiūrovo + artimoji tvora */
.kz-arena::after{
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 18px;
  background: linear-gradient(180deg, #24402C 0%, #16261A 100%);
  border-top: 1px solid rgba(0,0,0,.55);
  z-index: 1; pointer-events: none;
}
.kz-railnear{
  position: absolute; left: 0; right: 0; bottom: 0; height: 8px; z-index: 2;
  background:
    repeating-linear-gradient(90deg, rgba(228,238,252,.5) 0 3px, transparent 3px 26px),
    linear-gradient(180deg, rgba(228,238,252,.22), transparent);
  pointer-events: none;
}

/* --- TAKAS --- */
#kzTrack{
  position: absolute; inset: 0;
  isolation: isolate;          /* žirgų z-index'ai lieka viduje, tad tvora ir
                                  lenta vis tiek dengia visą lauką */
  transition: transform .9s cubic-bezier(.25,.8,.3,1);
}
.kz-arena.is-running #kzTrack{ transform: scale(1.03); transform-origin: 50% 88%; }
.kz-ovsvg{ position: absolute; inset: 0; width: 100%; height: 100%; display: block; }

.kz-lane{ position: absolute; inset: 0; pointer-events: none; }

/* --- ŽIRGAS ---
   Transformacijos šablonas gyvena CSS'e, JS rašo TIK --tx/--ty/--k.
   Grandinė skaitoma iš dešinės: translate(-50%,-91%) pastato dėžės tašką
   (50 %, 91 %) - kanopas - į vietinę pradžią, scale() didina APIE tą tašką,
   translate3d() nuneša jį ant tako. Todėl kanopos visada tiksliai ant kelio
   taško, kad ir koks būtų mastelis. 91 % - žemiausias piešinio taškas
   (užpakalinė kanopa y=65,5 iš 72 viewBox vienetų). */
.kz-runner{
  position: absolute; left: 0; top: 0;
  width: var(--kz-horse); height: calc(var(--kz-horse) * .72);
  transform-origin: 0 0;
  transform: translate3d(var(--tx, 0px), var(--ty, 0px), 0) scale(var(--k, 1)) translate(-50%, -91%);
  transition: none;            /* kadrinė animacija: bet koks transition atsilieka */
  will-change: transform;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.55));
}
.kz-runner__body{
  position: absolute; inset: 0;
  transform-origin: 50% 91%;
  transform: scaleX(var(--face, 1));    /* tolimoje tiesiojoje bėga kairėn */
}
.kz-horse-svg{ position: absolute; inset: 0; width: 100%; height: 100%; display: block; }

.kz-shadow{
  position: absolute; left: 50%; top: 91%; width: 86%; height: 15%;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse, rgba(0,0,0,.5), transparent 70%);
  pointer-events: none;
}
.kz-dust{
  position: absolute; left: -18%; top: 74%; width: 44%; height: 26%;
  opacity: 0; pointer-events: none;
  background: radial-gradient(circle at 34% 62%, rgba(222,200,168,.55), transparent 60%),
              radial-gradient(circle at 66% 42%, rgba(222,200,168,.35), transparent 58%);
  filter: blur(1.5px);
}
.kz-lane.is-live .kz-dust{ animation: kzHoofDust .36s linear infinite; }
@keyframes kzHoofDust{
  0%  { opacity: .6; transform: translate(0,0) scale(.55) }
  100%{ opacity: 0;  transform: translate(-14px,-3px) scale(1.5) }
}

/* Šuolis ir kojų darbas gyvena ANT __body / .kz-leg, niekada ant .kz-runner -
   kitaip keyframe'ai perrašytų poziciją. `translate` yra atskira savybė nuo
   `transform`, tad su scaleX(--face) susideda, o ne konkuruoja. */
.kz-lane.is-live .kz-runner__body{ animation: kzBob .3s steps(2, end) infinite; }
@keyframes kzBob{ 0%,100%{ translate: 0 0 } 50%{ translate: 0 -6% } }

.kz-lane.is-live .kz-leg{ animation: kzStride .3s ease-in-out infinite; transform-origin: 50% 24%; }
.kz-lane.is-live .kz-leg--b2,
.kz-lane.is-live .kz-leg--f2{ animation-delay: -.15s; }
/* ±10°, ne ±16°: kartu su kojos nuosavu sukimosi tašku tai laiko kanopą virš
   grunto linijos per visą ciklą (pikseliais patikrinta), o šuolis vis tiek
   matomas - koja nueina ~5 vnt., o tai 3 px iš arti. */
@keyframes kzStride{
  0%,100%{ transform: rotate(-10deg) }
  50%    { transform: rotate(10deg) }
}

.kz-lane.is-lead .kz-runner{
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.55)) drop-shadow(0 0 10px rgba(255,216,120,.6));
}
.kz-lane.is-won .kz-runner{
  animation: kzWonPulse 1.4s ease-in-out 3;
}
@keyframes kzWonPulse{
  0%,100%{ filter: drop-shadow(0 2px 4px rgba(0,0,0,.55)) drop-shadow(0 0 8px rgba(228,184,74,.45)) }
  50%    { filter: drop-shadow(0 2px 4px rgba(0,0,0,.55)) drop-shadow(0 0 26px rgba(228,184,74,1)) }
}

/* finišo stulpas - stovi prie išorinės tvoros ties linija */
.kz-post{
  position: absolute; left: 0; top: 0; width: 4px; height: 56px;
  transform-origin: 0 0;
  transform: translate3d(var(--tx,0px), var(--ty,0px), 0) scale(var(--k,1)) translate(-50%, -100%);
  background: linear-gradient(180deg, #F6F9FF, #8B9DB6);
  border-radius: 1px;
  box-shadow: 0 0 12px rgba(255,255,255,.3), 2px 0 4px rgba(0,0,0,.4);
}
.kz-post::before{
  content: ''; position: absolute; left: 3px; top: 0; width: 26px; height: 14px;
  background: repeating-linear-gradient(90deg, #E8414D 0 6px, #F4F8FF 6px 12px);
  box-shadow: 0 2px 5px rgba(0,0,0,.5);
}

/* --- TRANSLIACIJOS LENTA --- */
.kz-board{
  position: absolute; left: 10px; top: 10px; z-index: 4;
  display: grid; gap: 3px; padding: 7px 9px;
  background: rgba(6,11,20,.6); backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,.1); border-radius: 8px;
  pointer-events: none;
}
.kz-board__row{
  display: grid; grid-template-columns: 11px 9px 1fr 16px;
  align-items: center; gap: 7px; font-size: 10px; line-height: 1.5;
}
.kz-board__no{ font-family: var(--font-mono); color: rgba(255,255,255,.45); }
.kz-board__chip{ width: 9px; height: 9px; border-radius: 2px; background: var(--bc); }
.kz-board__nm{
  color: rgba(255,255,255,.8); white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; max-width: 12ch;
}
.kz-board__pos{
  font-family: var(--font-mono); font-size: 9.5px;
  color: rgba(255,255,255,.35); text-align: right;
}
.kz-board__row.is-lead .kz-board__nm{ color: #FFF; font-weight: 700; }
.kz-board__row.is-lead .kz-board__pos{ color: var(--c-gold, #E4B84A); }
.kz-board__row.is-mine .kz-board__nm{ color: #7FE3C0; }

/* Lenktynių rezultatas statomas į arenos vidurį - ties pieva, kur nieko nėra.
   Apačioje jis uždengtų būtent finišuojančius žirgus. */
#kzRcVerdict{ align-items: center; padding-bottom: 0; }

/* --- FOTO FINIŠAS --- */
.kz-photofinish{
  position: absolute; inset: 0; z-index: 6; pointer-events: none;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,.92);
  animation: kzFlash 1s ease-out forwards;
}
.kz-photofinish span{
  font-family: var(--font-display); font-weight: 700; font-size: 15px;
  letter-spacing: .3em; color: #10151F;
}
@keyframes kzFlash{ 0%{opacity:.95} 22%{opacity:.3} 100%{opacity:0} }

/* --- FINIŠO TVARKA --- */
.kz-finish{
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
  margin-top: 10px; font-size: 11px; letter-spacing: .05em;
}
.kz-finish span{
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 10px; border-radius: 999px;
  background: var(--c-void-2); border: 1px solid var(--c-grid);
  color: var(--c-gray); white-space: nowrap;
}
.kz-finish span.is-first{
  color: #10151F; font-weight: 700;
  background: linear-gradient(180deg, #F2CE6A, #D8A93C);
  border-color: rgba(255,232,160,.6);
  box-shadow: 0 0 16px -4px rgba(228,184,74,.7);
}

@media (max-width: 640px){
  .kz-arena{ height: 215px; }
  /* pilname ekrane telefone: pakanka ovalui, o valdikliai lieka slenkami */
  .kz-game--max .kz-arena{ height: clamp(240px, 34vh, 330px); }
  .kz-arena::after{ height: 12px; }
  .kz-board{ left: 5px; top: 5px; padding: 4px 6px; gap: 0; }
  .kz-board__row{ font-size: 8.5px; line-height: 1.35;
                  grid-template-columns: 9px 7px 1fr 13px; gap: 4px; }
  .kz-board__chip{ width: 7px; height: 7px; }
  .kz-board__nm{ max-width: 8ch; }
  .kz-post{ height: 42px; }
  .kz-post::before{ width: 20px; height: 10px; }
}

@media (prefers-reduced-motion: reduce){
  #kzTrack{ transition: none; }
  .kz-lane.is-live .kz-runner__body,
  .kz-lane.is-live .kz-leg,
  .kz-lane.is-live .kz-dust,
  .kz-lane.is-won .kz-runner{ animation: none; }
  .kz-photofinish{ animation: none; opacity: 0; }
}


.kz-horses{ display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.kz-horse{
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 10px 12px; background: var(--c-panel-2);
  border: 1px solid var(--c-grid); border-radius: var(--radius);
  cursor: pointer; text-align: left;
  transition: border-color .15s, background .15s;
}
.kz-horse:hover:not(:disabled){ border-color: var(--c-city); }
.kz-horse:disabled{ opacity: .45; cursor: not-allowed; }
.kz-horse__name{ font-size: 12px; color: var(--c-white); }
.kz-horse__odds{ font-family: var(--font-mono); font-size: 12px; color: var(--c-gold, #FFD24A); }
.kz-horse.is-mine{ border-color: var(--c-gold, #FFD24A); background: rgba(255,210,74,.07); }
.kz-horse__mine{ font-family: var(--font-mono); font-size: 9.5px; color: var(--c-gray); display: block; }

.kz-recent{ display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.kz-recent__label{ font-size: 10px; letter-spacing: .14em; color: var(--c-gray); }
.kz-recent__list{ display: flex; gap: 5px; flex-wrap: wrap; }
.kz-recent__list b{
  font-family: var(--font-mono); font-size: 11px; width: 24px; height: 24px;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--c-grid); border-radius: var(--radius); color: var(--c-body);
}

/* ---------------- bendra ---------------- */
.kz-fair{ font-size: 9.5px; color: var(--c-gray-dim); line-height: 1.6; word-break: break-all; margin: 0; }
.kz-feedwrap{ padding: 0 clamp(14px, 3vw, 26px); }
.kz-feed{ display: grid; gap: 7px; }
.kz-feed__row{
  display: flex; align-items: baseline; gap: 12px;
  padding: 8px 0; border-top: 1px solid var(--c-grid-soft); font-size: 12.5px; color: var(--c-body);
}
.kz-feed__row:first-child{ border-top: 0; }
.kz-feed__what{ flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kz-feed__meta{ flex: none; font-size: 9.5px; letter-spacing: .08em; color: var(--c-gray-dim); }
.kz-feed__amt{ flex: none; font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.kz-feed__amt--up{ color: #46D6A0; }
.kz-feed__amt--down{ color: #E8414D; }
.kz-feed__amt--mid{ color: var(--c-gray); }
@media (max-width: 640px){
  .kz-feed__row{
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    align-items: center; column-gap: 8px; row-gap: 2px;
  }
  .kz-feed__what{ grid-column: 1; grid-row: 1; }
  .kz-feed__meta{
    grid-column: 1; grid-row: 2; min-width: 0;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  .kz-feed__amt{ grid-column: 2; grid-row: 1 / span 2; justify-self: end; }
}

/* „patikrink vienu paspaudimu" - po seed eilute */
.kz-proof{
  margin-top: 9px; align-self: flex-start;
  padding: 7px 12px; font-size: 9.5px; letter-spacing: .1em;
  background: transparent; color: var(--c-city, #4DA3FF);
  border: 1px solid rgba(77,163,255,.35); border-radius: var(--radius);
  cursor: pointer; transition: border-color .15s, background .15s;
}
.kz-proof:hover{ border-color: var(--c-city, #4DA3FF); background: rgba(77,163,255,.08); }

/* taisyklių išskleidimas */
.kz-rules{ margin-top: 10px; }
.kz-rules summary{
  cursor: pointer; list-style: none; user-select: none;
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .14em;
  color: var(--c-gray); transition: color .15s;
}
.kz-rules summary::-webkit-details-marker{ display: none; }
.kz-rules summary::before{ content: '▸ '; color: var(--c-gray-dim); }
.kz-rules[open] summary::before{ content: '▾ '; }
.kz-rules summary:hover{ color: var(--c-white); }
.kz-rules ul{
  margin: 9px 0 0; padding-left: 17px;
  font-size: 11px; color: var(--c-gray); line-height: 1.85;
}

.kz-rg{
  max-width: 760px; margin: 26px auto 40px; padding: 0 20px;
  font-size: 11.5px; color: var(--c-gray-dim); text-align: center; line-height: 1.7;
}

/* ---------------- viso ekrano režimas ----------------
   Fullscreen API iškelia patį .kz-game elementą, todėl jis tampa savo
   „puslapiu" - reikia atkurti foną ir paraštes, kurių šiaip duoda body. */
.kz-fs{
  margin-left: 8px; padding: 5px; line-height: 0;
  min-width: 36px; min-height: 36px;          /* lietimo taikinys */
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: 1px solid var(--c-grid);
  border-radius: var(--radius); color: var(--c-gray); cursor: pointer;
  transition: color .15s, border-color .15s;
}
.kz-fs svg{ width: 15px; height: 15px; display: block; }
.kz-fs:hover{ color: var(--c-white); border-color: var(--c-city); }

/* Žaidimo režimas: fojė plytelė atidaro žaidimą per VISĄ ekraną.
   .kz-game--max yra overlay, veikiantis visur (iOS Safari neleidžia native
   fullscreen ant div); kur palaikoma, dar užprašomas tikras fullscreen -
   klasė lieka ta pati, tad stiliai vieni. */
.kz-game--max{
  display: flex !important;
  position: fixed; inset: 0; z-index: 2100;
  margin: 0; border: 0; border-radius: 0;
  overflow-y: auto; overscroll-behavior: contain;
  background:
    radial-gradient(90% 60% at 50% 0%, rgba(17,27,46,.55), transparent 70%),
    var(--c-void);
  padding: clamp(16px, 3vw, 40px) clamp(14px, 4vw, 56px) clamp(28px, 5vh, 56px);
  animation: kzMaxIn .22s ease-out;
}
@keyframes kzMaxIn{ from{ opacity: 0; transform: scale(.985) } to{ opacity: 1; transform: none } }
.kz-game--max > *{ width: 100%; max-width: 1020px; margin-left: auto; margin-right: auto; }
.kz-game--max > .kz-loader{ max-width: none; width: auto; margin: 0; }
body.kz-lock{ overflow: hidden; }

.kz-game--max .kz-felt{ min-height: min(46vh, 420px); padding: clamp(18px, 3vw, 34px); flex: none; }
.kz-game--max .kz-card{ width: clamp(64px, 7.5vw, 104px); }
.kz-game--max .kz-hands--multi .kz-card{ width: clamp(50px, 5.4vw, 78px); }
.kz-game--max .kz-side__label{ font-size: 12px; }
.kz-game--max .kz-side__label b{ font-size: 17px; }
/* pilname ekrane plokštelė šiek tiek didesnė - proporcijos tos pačios */
.kz-game--max .kz-verdict{ padding-bottom: clamp(18px, 4vh, 40px); }
.kz-game--max .kz-vpanel{ padding: 14px 24px 14px 20px; gap: 18px; }
.kz-game--max .kz-vpanel__label{ font-size: 15px; }
.kz-game--max .kz-vpanel__note{ font-size: 11.5px; }
.kz-game--max .kz-vpanel__amt{ font-size: 24px; }
.kz-game--max .kz-vpanel__glyph{ width: 34px; height: 34px; font-size: 17px; }
.kz-game--max .kz-btn{ padding: 16px 22px; font-size: 14px; }
.kz-game--max .kz-btn--sm{ padding: 10px 16px; font-size: 11px; }
.kz-game--max .kz-horse{ padding: 14px 16px; }
.kz-game--max .kz-horse__name{ font-size: 14px; }
.kz-game--max .kz-horse__odds{ font-size: 15px; }
.kz-game--max .pp-card__title{ font-size: clamp(1rem, 2.4vw, 1.5rem); }
.kz-game--max .kz-felt__mark{ width: min(720px, 82%); }
.kz-game--max .kz-chip{ width: 52px; height: 52px; font-size: 11px; }

/* uždarymo mygtukas matomas tik žaidžiant */
.kz-close{ display: none; }
.kz-game--max .kz-close{ display: inline-flex; }
.kz-close:hover{ color: #E8414D; border-color: #E8414D; }

/* ---------------- provably fair tikrintuvas ---------------- */
/* Paprastam žaidėjui - viena rami eilutė; techninė panelė išsiskleidžia
   tik paspaudus (arba per žaidimo „PATIKRINTI" mygtuką). */
.kz-vfbox summary{
  cursor: pointer; list-style: none; user-select: none;
  text-align: center; padding: 12px 16px;
  font-size: 10px; letter-spacing: .14em; color: var(--c-gray-dim);
  border: 1px dashed var(--c-grid); border-radius: var(--radius);
  transition: color .15s, border-color .15s;
}
.kz-vfbox summary::-webkit-details-marker{ display: none; }
.kz-vfbox summary:hover{ color: var(--c-gray); border-color: var(--c-city, #4DA3FF); }
.kz-vfbox summary i{ font-style: normal; }
.kz-vfbox[open] summary{ margin-bottom: 14px; }

.kz-verifywrap{ padding: 0 clamp(14px, 3vw, 26px); }
.kz-verify .pp-card__text{ max-width: 70ch; }

.kz-vf-tabs{ display: flex; gap: 6px; margin: 14px 0 12px; }
.kz-vf-tab{
  padding: 8px 14px; font-family: var(--font-mono); font-size: 10px;
  letter-spacing: .1em; background: transparent; color: var(--c-gray);
  border: 1px solid var(--c-grid); border-radius: var(--radius); cursor: pointer;
  transition: color .15s, border-color .15s;
}
.kz-vf-tab.is-on{ color: var(--c-white); border-color: var(--c-city); }

.kz-vf-grid{ display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.kz-vf-f{ display: flex; flex-direction: column; gap: 5px; flex: 1 1 220px; }
.kz-vf-f--sm{ flex: 0 1 130px; }
.kz-vf-f span{ font-size: 9.5px; letter-spacing: .12em; color: var(--c-gray); }
.kz-vf-f .kz-bet{ width: 100%; }

.kz-vf-out{
  margin-top: 14px; padding: 14px; background: var(--c-void-2);
  border: 1px solid var(--c-grid); border-radius: var(--radius);
  font-family: var(--font-mono); font-size: 11.5px; line-height: 1.9;
  color: var(--c-body); word-break: break-all;
}
.kz-vf-out b{ color: var(--c-white); }
.kz-vf-out .ok{ color: #46D6A0; }
.kz-vf-out .bad{ color: #E8414D; }
.kz-vf-cards{ display: flex; gap: 5px; flex-wrap: wrap; margin: 9px 0 4px; }
.kz-vf-cards .kz-card{ width: 38px; animation: none; }
.kz-vf-order{ display: flex; gap: 7px; flex-wrap: wrap; margin-top: 8px; }
.kz-vf-order span{
  padding: 5px 10px; border: 1px solid var(--c-grid); border-radius: var(--radius);
  font-size: 11px; color: var(--c-body);
}
.kz-vf-order span:first-child{ border-color: #46D6A0; color: #46D6A0; }

.kz-toast{
  position: fixed; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(16px);
  z-index: 2200; padding: 11px 20px; border-radius: var(--radius);
  background: var(--c-panel-2); border: 1px solid var(--c-grid); color: var(--c-white);
  font-size: 13px; opacity: 0; pointer-events: none;
  transition: opacity .22s, transform .22s;
}
.kz-toast.show{ opacity: 1; transform: translateX(-50%); }

/* Klaviatūra naršantiems - matomas fokusas ant visų valdiklių.
   Įvesties laukelis jau turi savo (.kz-bet:focus-visible aukščiau). */
.kz-btn:focus-visible, .kz-chip:focus-visible, .kz-horse:focus-visible,
.kz-fs:focus-visible, .kz-vf-tab:focus-visible{
  outline: 2px solid var(--c-city, #4DA3FF); outline-offset: 2px;
}

/* Paskutinės statymų sekundės - ženkliukas pulsuoja */
.pp-badge.is-hot{ animation: kzHot 1s ease-in-out infinite; }
@keyframes kzHot{ 0%,100%{ opacity: 1 } 50%{ opacity: .45 } }

/* ---------------- TEXAS HOLD'EM STALAS ---------------- */
#kzHm .kz-gamebg{ --bgA: rgba(96,40,110,.34); --bgB: rgba(60,26,84,.24); }
.kz-hmfelt{
  position: relative;
  min-height: 400px;
  border-radius: 46% / 34%;
  background: radial-gradient(115% 95% at 50% 20%, #2A1240, #180A26 72%);
  border: 3px solid rgba(228,184,74,.35);
  box-shadow:
    inset 0 0 70px rgba(0,0,0,.55),
    0 24px 70px rgba(0,0,0,.5),
    0 0 0 8px #121B2E, 0 0 0 9px rgba(228,184,74,.18);
  padding: 18px;
}
.kz-hmcenter{
  position: absolute; left: 50%; top: 47%;
  transform: translate(-50%, -50%);
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  z-index: 1;
}
.kz-hmboard{ min-height: 66px; justify-content: center; }
.kz-hmboard .kz-card{ width: 48px; }
.kz-hmboard:empty::before, .kz-hmboard:empty::after{ width: 44px; }
.kz-hmpot{
  padding: 6px 14px; font-size: 11px; letter-spacing: .1em;
  color: var(--c-gold, #E4B84A);
  background: rgba(0,0,0,.35); border: 1px solid rgba(228,184,74,.35);
  border-radius: 999px;
}
.kz-hmpot b{ font-size: 13px; }

/* ---- vietos prie stalo ---- */
.kz-seat{
  position: absolute; z-index: 2;
  display: flex; flex-direction: column; align-items: center; gap: 5px;
  width: 132px; text-align: center;
  transition: opacity .2s;
}
.kz-seat--s1{ left: 3%;  top: 8%; }
/* Viršutinė vieta - HORIZONTALI (avataras | vardas | kortos), kad jos
   aukštis nesusidurtų su bendro stalo kortomis centre. */
.kz-seat--s2{
  left: 50%; top: 3%; transform: translateX(-50%);
  flex-direction: row; width: auto; max-width: min(440px, 46%);
  align-items: center; gap: 12px;
}
.kz-seat--s2 .kz-seat__meta{ text-align: left; align-items: flex-start; }
.kz-seat--s3{ right: 3%; top: 8%; }
.kz-seat--hero{ left: 50%; bottom: 3%; transform: translateX(-50%); width: 190px; }
.kz-seat.is-folded{ opacity: .38; }
.kz-seat__ava{
  width: 44px; height: 44px; flex: none;   /* be šito eilutėje suplokštėja į elipsę */
  border-radius: 50%;
  display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 700; font-size: 18px; color: #fff;
  background: linear-gradient(145deg, var(--sc1, #4DA3FF), var(--sc2, #1E4E8F));
  border: 2px solid rgba(255,255,255,.18);
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  position: relative;
}
.kz-seat--hero .kz-seat__ava{ display: none; }
.kz-seat[data-style="tight"] .kz-seat__ava{ --sc1: #4DA3FF; --sc2: #1D4E8F; }
.kz-seat[data-style="aggro"] .kz-seat__ava{ --sc1: #E8414D; --sc2: #7E1B27; }
.kz-seat[data-style="loose"] .kz-seat__ava{ --sc1: #46D6A0; --sc2: #1B6E52; }
.kz-seat.is-act .kz-seat__ava{ outline: 3px solid var(--c-gold, #E4B84A); outline-offset: 2px; }
.kz-seat--hero.is-act .kz-seat__cards .kz-card{ filter: drop-shadow(0 0 14px rgba(228,184,74,.35)); }
.kz-seat__meta{ display: flex; flex-direction: column; gap: 1px; line-height: 1.25; }
.kz-seat__name{ font-size: 11.5px; color: var(--c-white); font-weight: 600; }
.kz-seat__stack{ font-size: 10px; color: var(--c-gold, #E4B84A); }
.kz-seat__cards{ min-height: 0; gap: 4px; justify-content: center;
                 flex: none; flex-wrap: nowrap; }
.kz-seat__cards .kz-card{ width: 34px; }
.kz-seat--hero .kz-seat__cards .kz-card{ width: 62px; }
.kz-seat__cards:empty::before, .kz-seat__cards:empty::after{ content: none; }
.kz-seat__bet{
  position: absolute; font-size: 9.5px; padding: 3px 9px; border-radius: 999px;
  color: var(--c-white); background: rgba(228,184,74,.16);
  border: 1px solid rgba(228,184,74,.4); white-space: nowrap;
}
.kz-seat--s1 .kz-seat__bet{ right: -46px; top: 58%; }
.kz-seat--s2 .kz-seat__bet{ left: 50%; transform: translateX(-50%); bottom: -26px; }
.kz-seat--s3 .kz-seat__bet{ left: -46px; top: 58%; }
.kz-seat--hero .kz-seat__bet{ left: -12px; top: 46%; transform: translateX(-100%); }
.kz-seat__tag{
  font-size: 8.5px; letter-spacing: .1em; padding: 2px 8px; border-radius: 4px;
  background: rgba(255,255,255,.09); color: var(--c-gray);
}
.kz-seat__tag.is-win{ background: rgba(70,214,160,.16); color: #46D6A0; }
.kz-seat__tag.is-cat{ background: rgba(255,255,255,.07); color: var(--c-body); }
.kz-seat.is-winner .kz-seat__ava{ outline: 3px solid #46D6A0; outline-offset: 2px; }
.kz-seat--hero.is-winner .kz-seat__cards .kz-card{ filter: drop-shadow(0 0 16px rgba(70,214,160,.45)); }
.kz-seat__btn{
  position: absolute; width: 20px; height: 20px; border-radius: 50%;
  display: grid; place-items: center; font-size: 10px; font-weight: 700;
  color: #1A1206; background: linear-gradient(180deg, #FFE08A, #E4A93C);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  top: -6px; right: 8px; z-index: 3;
}
.kz-seat--hero .kz-seat__btn{ top: 4px; right: -10px; }

.kz-hmsit{ flex: 0 1 auto; }
#kzHmFelt .kz-verdict{ border-radius: inherit; }

/* fullscreen dydžiai */
.kz-game--max .kz-hmfelt{ min-height: min(62vh, 580px); }
.kz-game--max .kz-hmboard .kz-card{ width: clamp(54px, 5.6vw, 76px); }
.kz-game--max .kz-seat--hero .kz-seat__cards .kz-card{ width: clamp(70px, 7vw, 96px); }
.kz-game--max .kz-seat__cards .kz-card{ width: clamp(36px, 3.4vw, 48px); }
.kz-game--max .kz-seat{ width: 160px; }
.kz-game--max .kz-seat--hero{ width: 230px; }

@media (max-width: 640px){
  /* TELEFONE ovalus stalas su absoliučiai dėliotomis vietomis nesutelpa:
     avatarai užlipdavo vienas ant kito, o boto kortos atsiskirdavo nuo jo
     vardo. Todėl mobiliajame stalas tampa TINKLELIU: botai eilute viršuje,
     bendros kortos viduryje, tu apačioje. */
  .kz-hmfelt{
    min-height: 0; border-radius: 22px; padding: 12px 8px 14px;
    display: grid; gap: 10px;
    grid-template-columns: repeat(3, 1fr);
    grid-template-areas:
      "s1  s2  s3"
      "ctr ctr ctr"
      "her her her";
    align-items: start; justify-items: center;
  }
  .kz-hmfelt .kz-seat{
    position: relative; left: auto; right: auto; top: auto; bottom: auto;
    transform: none; width: 100%; max-width: 118px;
    flex-direction: column; align-items: center; gap: 4px;
  }
  .kz-hmfelt .kz-seat--s1{ grid-area: s1; }
  .kz-hmfelt .kz-seat--s2{ grid-area: s2; max-width: 118px; }
  .kz-hmfelt .kz-seat--s3{ grid-area: s3; }
  .kz-hmfelt .kz-seat--hero{ grid-area: her; max-width: none; width: auto; margin-top: 2px; }
  .kz-seat--s2 .kz-seat__meta{ text-align: center; align-items: center; }
  .kz-hmcenter{
    grid-area: ctr; position: relative; left: auto; top: auto; transform: none;
    margin: 2px 0 4px;
  }

  .kz-seat__ava{ width: 34px; height: 34px; font-size: 14px; }
  .kz-seat__name{ font-size: 10.5px; }
  .kz-seat__stack{ font-size: 9px; }
  .kz-seat__cards .kz-card{ width: 26px; }
  .kz-seat--hero .kz-seat__cards{ flex-wrap: nowrap; }
  .kz-seat--hero .kz-seat__cards .kz-card{ width: 54px; }
  .kz-hmboard .kz-card{ width: 38px; }
  .kz-hmboard{ min-height: 54px; }

  /* statymo žetonas - po vieta, o ne šone (šonuose nebėra vietos) */
  .kz-hmfelt .kz-seat__bet{
    position: static; transform: none; margin-top: 2px;
    left: auto; right: auto; top: auto; bottom: auto;
  }
  .kz-seat__btn{ top: -4px; right: 2px; width: 17px; height: 17px; font-size: 9px; }
  .kz-seat--hero .kz-seat__btn{ top: -4px; right: 8px; }
  .kz-seat__tag{ font-size: 8px; padding: 2px 6px; }
}

/* ---------------- UŽKROVIMO EKRANAS (GRPLS stilius, aukso akcentas) ---------------- */
.kz-loader{
  position: fixed; inset: 0; z-index: 2150;
  background: var(--c-void, #060A12);
  font-family: var(--font-mono);
  opacity: 1; transition: opacity .3s ease;
}
.kz-loader.is-done{ opacity: 0; pointer-events: none; }
/* fono video - kaip GRPLS: prislopintas, po gradientu */
.kz-loader__vid{
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; pointer-events: none;
  filter: saturate(.95) contrast(1.05) brightness(.72);
}
.kz-loader__grade{
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(82% 72% at 50% 40%, transparent 28%, rgba(6,10,18,.55) 100%),
    linear-gradient(180deg, rgba(6,10,18,.62) 0%, rgba(6,10,18,.18) 26%, rgba(6,10,18,.3) 62%, rgba(6,10,18,.92) 100%),
    linear-gradient(0deg, rgba(228,184,74,.05), transparent 45%);
}
.kz-loader__grain{
  position: absolute; inset: -50%; pointer-events: none; opacity: .05; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: kzGrain .6s steps(3) infinite;
}
@keyframes kzGrain{ 0%{transform:translate(0,0)} 50%{transform:translate(-4%,3%)} 100%{transform:translate(3%,-2%)} }

.kz-loader__stage{
  position: absolute; inset: 0; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 15px;
  padding: 60px clamp(20px,3.2vw,52px) 200px;
}
.kz-loader__title{
  position: relative; margin: 0;
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(44px, 9vw, 130px); letter-spacing: clamp(2px,.5vw,7px); line-height: .95;
  color: #fff;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: clamp(1.6px, .26vw, 3.4px) #F4FBFF;
  filter:
    drop-shadow(0 0 2px rgba(244,251,255,.5))
    drop-shadow(0 0 20px rgba(228,184,74,.45))
    drop-shadow(0 0 54px rgba(228,184,74,.3))
    drop-shadow(0 3px 16px rgba(0,0,0,.6));
}
.kz-loader__title::before, .kz-loader__title::after{
  content: attr(data-text); position: absolute; left: 0; top: 0; width: 100%; height: 100%;
  overflow: hidden; pointer-events: none; mix-blend-mode: screen;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: clamp(1.6px, .26vw, 3.4px) #56F0FF;
}
.kz-loader__title::before{ animation: kzGlC 4.4s steps(2) infinite; }
.kz-loader__title::after{ -webkit-text-stroke-color: #FF3B47; animation: kzGlR 3.7s steps(2) infinite; }
@keyframes kzGlC{ 0%,92%,100%{clip-path:inset(0 0 100% 0);transform:translate(0)} 93%{clip-path:inset(16% 0 54% 0);transform:translate(-3px,-1px)} 97%{clip-path:inset(60% 0 16% 0);transform:translate(3px,1px)} }
@keyframes kzGlR{ 0%,90%,100%{clip-path:inset(100% 0 0 0);transform:translate(0)} 92%{clip-path:inset(52% 0 16% 0);transform:translate(3px,1px)} 96%{clip-path:inset(14% 0 60% 0);transform:translate(-3px,-1px)} }

.kz-loader__sub{ font-size: clamp(11px,1.2vw,14px); letter-spacing: 2px; color: var(--c-gray, #8295AC); }
.kz-loader__pow{ font-size: clamp(9px,1vw,12px); letter-spacing: 4px; color: var(--c-gray-dim, #5C6B82); }
.kz-loader__pow b{ color: var(--c-gold, #E4B84A); font-weight: 700; text-shadow: 0 0 12px rgba(228,184,74,.5); }

.kz-loader__term{
  position: absolute; left: clamp(20px,3.2vw,52px); bottom: 92px;
  width: clamp(300px, 31vw, 460px);
  border-left: 2px solid var(--c-gold, #E4B84A); padding-left: 14px;
  font-size: 12px; line-height: 1.7; text-shadow: 0 1px 6px rgba(0,0,0,.6);
}
.kz-loader__term .tl{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--c-gray, #8295AC); animation: kzTin .2s ease; }
.kz-loader__term .tl--cmd{ color: #F7FAFF; }
.kz-loader__term .tl--ok{ color: var(--c-gold, #E4B84A); }
@keyframes kzTin{ from{ opacity: 0 } }

.kz-loader__prog{ position: absolute; left: 0; right: 0; bottom: 0; }
.kz-loader__prow{
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 0 clamp(20px,3.2vw,52px) 10px; text-shadow: 0 1px 6px rgba(0,0,0,.6);
}
.kz-loader__status{ font-size: 12.5px; letter-spacing: 1px; color: var(--c-white, #EAF0F7); }
.kz-loader__pct{ font-weight: 700; font-size: clamp(18px,2vw,26px); color: var(--c-gold, #E4B84A); text-shadow: 0 0 14px rgba(228,184,74,.5); }
.kz-loader__track{ position: relative; height: 4px; width: 100%; background: rgba(255,255,255,.12); overflow: hidden; }
.kz-loader__fill{
  height: 100%; width: 0%;
  background: linear-gradient(90deg, #B98A2B, var(--c-gold, #E4B84A) 70%, #FFE08A);
  box-shadow: 0 0 16px rgba(228,184,74,.5);
  transition: width .25s cubic-bezier(.2,1,.3,1);
}
.kz-loader__fill::after{
  content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: 2px;
  background: #fff; box-shadow: 0 0 10px #fff; opacity: .85;
}

/* ---------------- ŽAIDIMO FONAS (tik per visą ekraną) ----------------
   Kazino salės atmosfera: prožektoriaus kūgis iš viršaus, žaidimo spalvos
   švytėjimas šonuose, milžiniškas vos matomas kortų raštas ir lėtai kylančios
   aukso dulkės. Viskas CSS, be paveikslėlių; dalelės - tik transform/opacity,
   tad GPU jas neša be vargo. */
.kz-gamebg{ display: none; }
.kz-game--max .kz-gamebg{
  display: block; position: fixed; inset: 0; z-index: 0;
  pointer-events: none; overflow: hidden;
}
/* turinys - virš fono */
.kz-game--max > *{ position: relative; z-index: 1; }
.kz-game--max > .kz-gamebg{ max-width: none; width: auto; margin: 0; z-index: 0; }
/* SVARBU: `> *` taisyklė nugalėdavo loaderio position:fixed (vėlesnė toje
   pačioje specifikoje) - užkrovimo ekranas krisdavo į srautą kaip paprastas
   blokas. Grąžinam jam VISĄ overlay padėtį atgal. */
.kz-game--max > .kz-loader{
  position: fixed; inset: 0;
  max-width: none; width: auto; margin: 0; z-index: 3;
}

/* šviesos sluoksnis: prožektorius + akcentiniai šonai (spalva per --bgA/--bgB) */
.kz-gamebg::before{
  content: ''; position: absolute; inset: 0;
  background:
    radial-gradient(58% 44% at 50% -6%, var(--bgA, rgba(38,90,66,.34)), transparent 62%),
    radial-gradient(34% 60% at -8% 78%,  var(--bgB, rgba(20,60,44,.25)), transparent 70%),
    radial-gradient(34% 60% at 108% 78%, var(--bgB, rgba(20,60,44,.25)), transparent 70%),
    radial-gradient(120% 100% at 50% 118%, rgba(0,0,0,.55), transparent 55%);
}
/* raštas + vinjetė */
.kz-gamebg::after{
  content: ''; position: absolute; inset: 0;
  background-image:
    radial-gradient(130% 96% at 50% 50%, transparent 55%, rgba(4,7,12,.66) 100%),
    var(--bgPat, none);
  background-size: auto, 340px 340px;
}
/* per-game paletė */
#kzBj .kz-gamebg{  --bgA: rgba(40,96,68,.36);  --bgB: rgba(22,64,46,.26); }
#kzRace .kz-gamebg{ --bgA: rgba(150,96,36,.32); --bgB: rgba(110,64,26,.22); }
/* kortų žaidimams - milžiniškas vos matomas ženklų raštas */
#kzBj .kz-gamebg, #kzHm .kz-gamebg{
  --bgPat: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='340' height='340'%3E%3Cg fill='%23EAF0F7' fill-opacity='.022'%3E%3Cpath d='M85 34c-14 26-33 36-33 54a18 18 0 0 0 27 16c-2 12-9 19-16 24h44c-7-5-14-12-16-24a18 18 0 0 0 27-16c0-18-19-28-33-54z'/%3E%3Cpath d='M255 208l30 42-30 42-30-42z'/%3E%3C/g%3E%3C/svg%3E");
}
/* lenktynėms - įstriži greičio ruožai, lėtai slenkantys */
#kzRace .kz-gamebg::after{
  background-image:
    radial-gradient(130% 96% at 50% 50%, transparent 55%, rgba(4,7,12,.66) 100%),
    repeating-linear-gradient(115deg, transparent 0 44px, rgba(255,255,255,.02) 44px 48px);
  background-size: auto, auto;
  animation: kzStreak 14s linear infinite;
}
@keyframes kzStreak{ from{ background-position: 0 0, 0 0 } to{ background-position: 0 0, 190px -88px } }

/* aukso dulkės - 12 dalelių, kiekviena su savo keliu */
.kz-gamebg i{
  position: absolute; bottom: -6vh; border-radius: 50%;
  background: radial-gradient(circle at 36% 34%, rgba(255,228,150,.55), rgba(228,184,74,.14) 58%, transparent 72%);
  filter: blur(1.5px); opacity: 0;
  animation: kzDust var(--dur, 16s) linear var(--del, 0s) infinite;
}
@keyframes kzDust{
  0%  { transform: translate3d(0, 0, 0) scale(1); opacity: 0; }
  10% { opacity: var(--o, .35); }
  85% { opacity: var(--o, .35); }
  100%{ transform: translate3d(var(--dx, 3vw), -112vh, 0) scale(.82); opacity: 0; }
}
.kz-gamebg i:nth-child(1){  left: 6%;  width: 7px;  height: 7px;  --dur: 18s; --del: 0s;    --dx:  4vw; --o: .34; }
.kz-gamebg i:nth-child(2){  left: 14%; width: 4px;  height: 4px;  --dur: 23s; --del: -6s;   --dx: -3vw; --o: .26; }
.kz-gamebg i:nth-child(3){  left: 24%; width: 9px;  height: 9px;  --dur: 15s; --del: -11s;  --dx:  5vw; --o: .3;  }
.kz-gamebg i:nth-child(4){  left: 33%; width: 5px;  height: 5px;  --dur: 26s; --del: -3s;   --dx: -4vw; --o: .22; }
.kz-gamebg i:nth-child(5){  left: 42%; width: 6px;  height: 6px;  --dur: 20s; --del: -14s;  --dx:  2vw; --o: .3;  }
.kz-gamebg i:nth-child(6){  left: 51%; width: 11px; height: 11px; --dur: 17s; --del: -8s;   --dx: -5vw; --o: .24; }
.kz-gamebg i:nth-child(7){  left: 60%; width: 4px;  height: 4px;  --dur: 25s; --del: -1s;   --dx:  4vw; --o: .26; }
.kz-gamebg i:nth-child(8){  left: 68%; width: 8px;  height: 8px;  --dur: 19s; --del: -12s;  --dx: -2vw; --o: .32; }
.kz-gamebg i:nth-child(9){  left: 76%; width: 5px;  height: 5px;  --dur: 22s; --del: -5s;   --dx:  5vw; --o: .22; }
.kz-gamebg i:nth-child(10){ left: 84%; width: 10px; height: 10px; --dur: 16s; --del: -9s;   --dx: -4vw; --o: .3;  }
.kz-gamebg i:nth-child(11){ left: 91%; width: 6px;  height: 6px;  --dur: 24s; --del: -15s;  --dx:  3vw; --o: .26; }
.kz-gamebg i:nth-child(12){ left: 97%; width: 4px;  height: 4px;  --dur: 21s; --del: -2s;   --dx: -3vw; --o: .2;  }

/* stalas prožektoriaus šviesoje - pakeltas nuo fono */
.kz-game--max .kz-felt{
  box-shadow:
    0 34px 90px rgba(0,0,0,.6),
    0 0 0 1px rgba(255,255,255,.045),
    0 0 130px rgba(228,184,74,.06);
}

/* „powered by" - nuolatinė eilutė žaidimo režimo apačioje */
.kz-game--max::after{
  content: 'POWERED BY SWEDEN CODES';
  display: block; margin-top: 16px; text-align: center;
  font-family: var(--font-mono); font-size: 9px; letter-spacing: .3em;
  color: var(--c-gray-dim, #5C6B82);
}

@media (max-width: 640px){
  .kz-grid{ grid-template-columns: 1fr; }
  .kz-card{ width: 44px; }
  .kz-hands--multi .kz-card{ width: 36px; }

  /* Siaurame ekrane antraštės eilutė laužosi į dešinėn sulipusį stulpelį -
     style.css mobiliajame bloke perjungia .pp-card__row į flex-direction:
     column, todėl vien flex-wrap neužtenka: kryptį grąžinam atgal į row.
     Pavadinimas - per visą plotį, ženkliukas kairėje, mygtukai dešinėje. */
  .kz-game .pp-card__row{
    display: flex; flex-direction: row; flex-wrap: wrap; align-items: center;
    justify-content: flex-start; gap: 8px; row-gap: 10px;
  }
  .kz-game .pp-card__row .pp-card__title{ flex: 1 1 100%; margin: 0; }
  .kz-game .pp-card__row .kz-fs:first-of-type{ margin-left: auto; }
}
@media (prefers-reduced-motion: reduce){
  .kz-card, .kz-card--flip{ animation: none; }
  .kz-runner.is-running,
  .kz-runner.is-running .kz-leg{ animation: none; }
  .kz-verdict--bj{ animation: none; }
  .pp-badge.is-hot{ animation: none; color: #E8414D; }
  .kz-tile__badge.is-live{ animation: none; }
  .kz-toast{ transition: none; }
  .kz-chip:hover, .kz-tile:hover, .kz-btn:hover:not(:disabled){ transform: none; }
  .kz-game--max{ animation: none; }
  .kz-loader__grain, .kz-loader__title::before, .kz-loader__title::after{ animation: none; }
  .kz-gamebg i{ animation: none; opacity: 0; }
  #kzRace .kz-gamebg::after{ animation: none; }
}
@media (max-width: 900px){
  .kz-loader__term{ display: none; }
}

/* ---- SWC 2026-08-17: vartu ramybe, svieslente, lentos antraste ---- */
.kz-lane.is-gate .kz-runner__body{ animation: kzIdle 3.4s ease-in-out infinite; }
.kz-lane:nth-child(2n).is-gate .kz-runner__body{ animation-delay: -1.2s; }
.kz-lane:nth-child(3n).is-gate .kz-runner__body{ animation-delay: -2.3s; }
@keyframes kzIdle{ 0%,100%{ translate: 0 0; rotate: 0deg } 50%{ translate: 0 -1.2%; rotate: .5deg } }

.kz-board__hd{
  font-size: 8.5px; letter-spacing: .16em; padding: 1px 6px 3px;
  color: rgba(230,240,255,.5);
}

.kz-tote{
  position: absolute; left: 0; top: 0;
  transform-origin: 0 100%;
  transform: translate3d(var(--tx,0px), var(--ty,0px), 0) scale(var(--k,1)) translate(-50%, -100%);
  display: flex; flex-direction: column; align-items: center; gap: 1px;
  padding: 4px 11px 3px;
  background: linear-gradient(180deg, rgba(10,16,28,.92), rgba(7,11,20,.94));
  border: 1px solid rgba(228,238,252,.16);
  border-radius: 3px;
  box-shadow: 0 3px 10px rgba(0,0,0,.45);
  pointer-events: none;
  white-space: nowrap;
}
.kz-tote::after{
  content: ''; position: absolute; left: 16%; right: 16%; top: 100%; height: 7px;
  background:
    linear-gradient(90deg, #23180F 0 3px, transparent 3px) left/50% 100% no-repeat,
    linear-gradient(270deg, #23180F 0 3px, transparent 3px) right/50% 100% no-repeat;
}
.kz-tote__no{ font-size: 10px; letter-spacing: .12em; color: #EAF0F7; opacity: .92; }
.kz-tote__brand{ font-size: 7px; letter-spacing: .2em; color: #FFD24A; opacity: .5; }

@media (prefers-reduced-motion: reduce){
  .kz-lane.is-gate .kz-runner__body{ animation: none; }
}

/* ==========================================================================
   LENKTYNIŲ UI - 2026-08-20
   Kortelė turi rišti statymą su trasa. Anksčiau kortelėje buvo tik vardas ir
   koeficientas, o spalva gyveno tik trasoje, tad nebuvo kaip pasakyti, kuris
   bėgikas ekrane yra tavo. Silkės spalva ateina iš to paties LANE masyvo
   (--sc, nustato JS), kaip ir trasos žirgas bei lentos čipas.
   Tokenai tik iš style.css - kazino.css savų neturi.
   ========================================================================== */

/* --- statymo kortelė ---------------------------------------------------- */
.kz-horse{
  /* dizaino sistema: 8px = kortelė (buvo var(--radius) = 2px) */
  border-radius: 8px;
  padding: 11px 13px;
  gap: 10px;
  position: relative;
  transition: border-color .15s, background .15s, transform .15s, box-shadow .15s;
}
.kz-horse__l{ display: flex; align-items: center; gap: 10px; min-width: 0; }
.kz-horse__txt{ display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.kz-horse__r{ display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }

/* silkė: ta pati spalva kaip žirgo trasoje */
.kz-horse__silk{
  flex: 0 0 auto; width: 12px; height: 12px; border-radius: 50%;
  background: var(--sc, var(--c-gray));
  box-shadow: 0 0 0 2px rgba(6,10,18,.85), 0 0 10px -1px var(--sc, transparent);
}
.kz-horse__name{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* laimėjimo prognozė - SWGC, tad --c-gold yra teisinga (valiutos tokenas) */
.kz-horse__pay{
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .04em;
  color: var(--c-gold); opacity: .75; white-space: nowrap;
}

/* būsenos */
.kz-horse:hover:not(:disabled){
  border-color: var(--c-city);
  background: color-mix(in srgb, var(--c-panel-2) 88%, var(--c-city) 12%);
  transform: translateY(-1px);
}
.kz-horse:active:not(:disabled){ transform: translateY(0); }
.kz-horse:focus-visible{
  outline: 2px solid var(--c-brand);
  outline-offset: 2px;
}

/* favoritas - mažiausias koeficientas */
.kz-horse[data-fav]{ border-color: color-mix(in srgb, var(--c-grid) 55%, var(--c-gold) 45%); }
.kz-horse[data-fav]::after{
  content: "FAVORITAS";
  position: absolute; top: -7px; right: 10px;
  font-family: var(--font-mono); font-size: 7.5px; letter-spacing: .16em;
  color: var(--c-gold);
  background: var(--c-void); padding: 0 5px; border-radius: 999px;
  opacity: .9; pointer-events: none;
}
/* jau pastatyta - auksinė ribą turi 'is-mine', favorito žymė netrukdo */
.kz-horse.is-mine[data-fav]{ border-color: var(--c-gold); }

/* --- saulė -------------------------------------------------------------- */
/* Buvo vienas švelnus radial-gradient iki skaidrumo ties 72 % - dėl to ji
   atrodė kaip neapibrėžta dėmė. Dabar diskas turi aiškų kraštą, o švytėjimas
   perkeltas į box-shadow, tad kraštas lieka švarus. */
.kz-sun{
  width: 44px; height: 44px;
  background: radial-gradient(circle at 50% 46%,
    #FFF6DC 0 32%, #FFD892 32% 54%, #FFA94F 54% 68%, rgba(255,169,79,0) 69%);
  opacity: .95;
  box-shadow:
    0 0 38px 10px rgba(255,168,92,.20),
    0 0 110px 34px rgba(255,140,60,.09);
}

@media (max-width: 640px){
  .kz-horse{ padding: 10px 11px; }
  .kz-horse__silk{ width: 10px; height: 10px; }
  .kz-horse[data-fav]::after{ font-size: 7px; right: 8px; }
}

/* --- provably-fair hash: visas DOM'e, kerpa CSS, ne JS --------------------- */
.kz-fair__hash{
  font-family: var(--font-mono); font-size: 9.5px;
  color: var(--c-gray); cursor: pointer;
  display: inline-block; vertical-align: bottom; max-width: 30ch;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  border-bottom: 1px dotted var(--c-grid);
  transition: color .15s, border-color .15s;
}
.kz-fair__hash:hover{ color: var(--c-white); border-bottom-color: var(--c-city); }
.kz-fair__hash:focus-visible{ outline: 2px solid var(--c-brand); outline-offset: 2px; }

/* --- paskutiniai nugalėtojai: buvo negyvas elementas ---------------------- */
.kz-recent__chip{
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 9px 3px 7px; border-radius: 999px;
  background: var(--c-panel-2); border: 1px solid var(--c-grid);
  font-size: 10px; color: var(--c-body); white-space: nowrap;
}
.kz-recent__dot{
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--sc, var(--c-gray));
  box-shadow: 0 0 0 1px rgba(6,10,18,.8), 0 0 8px -2px var(--sc, transparent);
  flex: 0 0 auto;
}
.kz-recent__nm{ max-width: 12ch; overflow: hidden; text-overflow: ellipsis; }
.kz-recent__none{ font-size: 10px; color: var(--c-gray-dim); font-style: italic; }
.kz-recent__list{ display: flex; flex-wrap: wrap; gap: 6px; }

@media (max-width: 640px){
  .kz-fair__hash{ max-width: 18ch; }
  .kz-recent__nm{ max-width: 9ch; }
}

/* ==========================================================================
   GEMINI-PATVIRTINTOS TAISYKLĖS (žr. swedencode-launcher-design-system)
   Dvi jų jau buvo išbandytos launcher'yje ir pasitvirtino, tad taikom čia
   neklausiant iš naujo.
   ========================================================================== */

/* 1. SVEIKI PIKSELIAI. Trupmeniniai dydžiai verčia Chromium tą patį glifą
      rasterizuoti skirtingai pagal lango dydį - matosi kaip mirgėjimas
      keičiant dydį. Čia taisomi TIK tie trys, kuriuos pats pridėjau
      2026-08-20; likę 28 seni lieka (jų keitimas paveiktų blackjack/slots/
      hold'em išdėstymą, kurio be prisijungimo patikrinti negaliu). */
.kz-horse__pay{ font-size: 10px; }
.kz-horse[data-fav]::after{ font-size: 8px; }
.kz-fair__hash{ font-size: 10px; }

/* 2. PASPAUDIMO BŪSENOS. Iš 9 hover'inamų selektorių 5 neturėjo :active,
      tad jutikliniame ekrane jie atrodo negyvi - lygiai ta pati spraga,
      kurią Gemini rado launcher'yje (ten buvo 1 :active ~1300 eilučių). */
.kz-btn--primary:active:not(:disabled){ transform: translateY(0) scale(.985); }
.kz-close:active{ transform: scale(.92); }
.kz-fair__hash:active{ color: var(--c-city); }
.kz-fs:active{ transform: scale(.94); }
.kz-proof:active{ transform: translateY(0) scale(.985); }

/* 3. SPALVOS DĖSNIS - tik pastaba, ne keitimas.
      --c-good #46D6A0 yra GRPLS tapatybė, #E8414D - Zombie Plague.
      Kazino juos naudoja kaip bendrinę „laimėta/pralaimėta" semantiką
      (.kz-hand__lbl, .kz-vf-order, .kz-chip). Launcher'yje tas pats dalykas
      buvo pagautas DU kartus. Čia jis NEKEIČIAMAS: kazino žetonų spalvos yra
      dokumentuotos DESIGN.md, o keisti reikšmes be gyvo patikrinimo rizikinga.
      Jei taisysim - skirti ne vien spalva (piktograma/forma), kad liktų
      suprantama ir daltonikams. */

/* :active neturi reikšmės klaviatūrai - fokusas jau turi savo žiedą aukščiau. */
@media (prefers-reduced-motion: reduce){
  .kz-btn--primary:active:not(:disabled),
  .kz-close:active,
  .kz-fs:active,
  .kz-proof:active{ transform: none; }
}

/* ==========================================================================
   TAVO ŽIRGAS TRASOJE — 2026-08-20
   Gemini (2026-08-20) teisingai įvardijo problemą: šeši vienodi spraitai
   perspektyvoje, ir per lenktynes neįmanoma sekti SAVOJO. Lyderis jau turi
   .is-lead (aukso švytėjimas), bet .is-mine trasoje neegzistavo.
   Signalas BALTAS, ne node spalva: #E8414D/#4DA3FF/#35E0A1 yra serverių
   tapatybės ir negali nutekėti į bendrą chrome (Gemini pats tai pasiūlė
   TRIS kartus, nors buvo aiškiai perspėtas - klasikinė jo klaida).
   ========================================================================== */
.kz-lane.is-mine .kz-runner{
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.55)) drop-shadow(0 0 9px rgba(255,255,255,.85));
}
/* „TU" vėliavėlė virš savo žirgo - vienintelis tekstas trasoje, tad mažas */
.kz-lane.is-mine .kz-runner::after{
  content: "TU";
  position: absolute; left: 50%; bottom: 100%;
  transform: translate(-50%, -3px);
  font-family: var(--font-mono); font-size: 8px; font-weight: 700;
  letter-spacing: .1em; line-height: 1;
  color: var(--c-void); background: #FFFFFF;
  padding: 2px 4px; border-radius: 999px;
  box-shadow: 0 1px 3px rgba(0,0,0,.6);
  pointer-events: none; white-space: nowrap;
}
/* jei tavo žirgas dar ir pirmauja - abu signalai sudedami, ne konkuruoja */
.kz-lane.is-mine.is-lead .kz-runner{
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.55))
          drop-shadow(0 0 9px rgba(255,255,255,.9))
          drop-shadow(0 0 14px rgba(255,216,120,.7));
}
@media (max-width: 640px){
  .kz-lane.is-mine .kz-runner::after{ font-size: 7px; padding: 1px 3px; }
}

/* ==========================================================================
   TIPOGRAFIJA IR MYGTUKAI — 2026-08-20
   Sveiki pikseliai visur (trupmeniniai verčia Chromium mirgėti keičiant dydį).
   Hierarchija pagal sprendimą: koeficientas yra skaičius, pagal kurį statoma,
   tad jis didžiausias kortelėje; vardas antraeilis; prognozė - trečia.
   Radiusai pagal dizaino sistemą: 7px interaktyvu, 8px kortelė, 999px piliulė.
   ========================================================================== */

/* --- kortelės tipografija ------------------------------------------------ */
.kz-horse__name{
  font-family: var(--font-body); font-size: 13px; font-weight: 600;
  line-height: 17px; letter-spacing: 0;
}
.kz-horse__odds{
  font-family: var(--font-mono); font-size: 16px; font-weight: 700;
  line-height: 20px; letter-spacing: -.01em;
  color: var(--c-white);                 /* buvo auksas; auksas = valiuta, ne akcentas */
}
.kz-horse__pay{ font-size: 10px; line-height: 13px; }
.kz-horse__mine{ font-size: 10px; line-height: 13px; }
/* favoritas: koeficientas lieka baltas, bet kortelė gauna svorio per paviršių */
.kz-horse[data-fav]{ background: color-mix(in srgb, var(--c-panel-2) 82%, var(--c-white) 4%); }

/* --- statymo žetonai ----------------------------------------------------- */
.kz-chip{
  width: 44px; height: 44px;
  font-family: var(--font-mono); font-size: 10px; font-weight: 700;
  letter-spacing: .02em;
}
.kz-game--max .kz-chip{ width: 52px; height: 52px; font-size: 12px; }
/* MAX nėra „+N" - jis nustato, ne prideda. Tegul skiriasi ir forma, ne tik spalva. */
.kz-chip[data-chip="max"]{ font-family: var(--font-display); letter-spacing: .08em; }

/* --- mygtukai ------------------------------------------------------------ */
/* dizaino sistema: 7px interaktyviems (buvo var(--radius) = 2px) */
.kz-btn{ border-radius: 7px; font-size: 12px; letter-spacing: .08em; }
.kz-game--max .kz-btn{ font-size: 14px; }

/* --- balansas / antraštė ------------------------------------------------- */
.kz-game--max .kz-bal--game{ font-size: 14px; }   /* buvo 13.5px */

@media (max-width: 640px){
  .kz-horse__name{ font-size: 12px; line-height: 16px; }
  .kz-horse__odds{ font-size: 15px; line-height: 19px; }
  .kz-chip{ width: 40px; height: 40px; font-size: 10px; }
}

/* --- silkė su numeriu (saddlecloth) -------------------------------------- */
/* Numeris persikelia ANT spalvos, kaip tikrose lenktynėse. Taip vardas atgauna
   visą kortelės plotį (su „5. " priešdėliu „Kaunas Bolt" nebetilpdavo ir buvo
   kerpamas), o ryšys su trasa lieka dvigubas: spalva IR numeris. */
.kz-horse__silk{
  width: 18px; height: 18px;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-mono); font-size: 10px; font-weight: 700;
  line-height: 1; color: var(--c-void);
  text-shadow: 0 1px 0 rgba(255,255,255,.25);
}
@media (max-width: 640px){
  .kz-horse__silk{ width: 16px; height: 16px; font-size: 9px; }
}

/* --- kortelė: dvi eilutės vietoj vienos ---------------------------------- */
/* Vienoje eilutėje vardas ir koeficientas kovojo dėl ~159px: „Kaunas Bolt"
   nebetilpdavo net perkėlus numerį ant silkės (liko ~9 simboliai iš 11).
   Sudėjus vertikaliai vardas gauna 131px (~19 simbolių), o koeficientas tampa
   tikra antrašte - jis ir yra skaičius, pagal kurį sprendžiama. */
.kz-horse{
  flex-direction: column; align-items: stretch; gap: 7px;
  text-align: left;
}
.kz-horse__l{ align-items: center; }
.kz-horse__r{
  flex-direction: row; align-items: baseline; justify-content: space-between;
  gap: 8px;
}
.kz-horse__name{ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kz-horse__odds{ font-size: 18px; line-height: 21px; }
.kz-horse__pay{ text-align: right; }
.kz-game--max .kz-horse__odds{ font-size: 20px; line-height: 24px; }

@media (max-width: 640px){
  .kz-horse{ gap: 6px; }
  .kz-horse__odds{ font-size: 16px; line-height: 19px; }
}

/* ==========================================================================
   ARENOS ATMOSFERA — 2026-08-20
   Takas perpieštas SVG'e (gradientai, šukavimo juostos, šachmatinis finišas).
   Čia - tik tai, kas gyvena VIRŠ jo: prožektoriai, migla ir vinjetė.
   Jokių node spalvų: #E8414D/#4DA3FF/#35E0A1 yra serverių tapatybės.
   ========================================================================== */

/* dangus: daugiau pakopų + šilta pašvaistė nuo prožektorių už tribūnų */
.kz-sky{
  background:
    radial-gradient(120% 150% at 50% 100%, rgba(255,178,105,.20), transparent 55%),
    radial-gradient(60% 90% at 78% 92%, rgba(255,200,140,.16), transparent 60%),
    linear-gradient(180deg, #040814 0%, #0B1430 38%, #1B2A52 72%, #35405F 100%);
}

/* migla ties tolimuoju tako kraštu - atskiria taką nuo tribūnų */
.kz-arena::before{
  content: ""; position: absolute; left: 0; right: 0;
  top: calc(var(--yfar) - 2%); height: 12%;
  background: linear-gradient(180deg, rgba(126,150,190,.16), rgba(126,150,190,0));
  pointer-events: none; z-index: 3;
}

/* prožektorių dėmės ant grunto + vinjetė kraštuose */
.kz-arena::after{
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 4;
  background:
    radial-gradient(52% 34% at 24% 78%, rgba(255,226,178,.10), transparent 70%),
    radial-gradient(52% 34% at 76% 78%, rgba(255,226,178,.10), transparent 70%),
    radial-gradient(120% 80% at 50% 108%, transparent 55%, rgba(4,7,14,.55) 100%);
}

/* tribūnos: gilesnės, su tamsesniu pagrindu po eilėmis */
.kz-stands{
  background:
    repeating-linear-gradient(90deg,
      rgba(255,255,255,.11) 0 2px, transparent 2px 5px,
      rgba(120,160,220,.09) 5px 7px, transparent 7px 10px),
    linear-gradient(180deg, #2B3855 0 18%, #1D2739 18% 62%, #151D2C 62% 100%);
  border-top: 2px solid #33415E;
  box-shadow: inset 0 -6px 10px -6px rgba(4,7,14,.9);
}

/* --- PATAISA 2026-08-20 ---------------------------------------------------
   Ankstesnis blokas užrašė .kz-arena::after, o ten jau gyveno ŽOLĖS JUOSTA
   arenos apačioje (kazino.css:748, responsive perrašymas :924). Atstatoma
   originali reikšmė, o prožektoriai + vinjetė perkeliami ant .kz-track::after,
   kuris buvo laisvas. Pamoka: prieš rašant ::before/::after visada patikrinti,
   ar selektorius jau naudojamas - kazino.css yra pridėtinis. */
.kz-arena::after{
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; top: auto;
  height: 18px; inset: auto 0 0 0; z-index: auto; pointer-events: none;
  background: linear-gradient(180deg, #24402C 0%, #16261A 100%);
  border-top: 1px solid rgba(228,238,252,.10);
}
@media (max-width: 640px){
  .kz-arena::after{ height: 12px; }
}
/* prožektorių dėmės + vinjetė - dabar ant laisvo .kz-track::after */
.kz-track::after{
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 4;
  background:
    radial-gradient(52% 34% at 24% 78%, rgba(255,226,178,.10), transparent 70%),
    radial-gradient(52% 34% at 76% 78%, rgba(255,226,178,.10), transparent 70%),
    radial-gradient(120% 80% at 50% 108%, transparent 55%, rgba(4,7,14,.55) 100%);
}

/* --- PATAISA 2 2026-08-20 -------------------------------------------------
   Ankstesnė pataisa rašė .kz-track::after, bet elementas yra <div id="kzTrack">
   ir tokios KLASĖS nėra - taisyklė nieko neatitiko ir tyliai nieko nedarė.
   (Ta pati spraga, apie kurią įspėja dizaino taisyklė nr. 2: parašyta CSS be
   atitinkamo selektoriaus tiesiog nerenderinama.) Teisingas selektorius yra ID. */
#kzTrack::after{
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 4;
  background:
    radial-gradient(52% 34% at 24% 78%, rgba(255,226,178,.10), transparent 70%),
    radial-gradient(52% 34% at 76% 78%, rgba(255,226,178,.10), transparent 70%),
    radial-gradient(120% 80% at 50% 108%, transparent 55%, rgba(4,7,14,.55) 100%);
}

/* =============================================================================
   ŠONINIS LENKTYNIŲ VAIZDAS - v2, 2026-08-20
   -----------------------------------------------------------------------------
   Kas buvo blogai v1 (pamatyta preview harnese, ne spėta):
     1. Takeliai buvo 50-81 % aukščio, o gruntas prasidėdavo 62 % - du tolimi
        žirgai stovėdavo TRIBŪNOSE.
     2. Viskas buvo repeating-linear-gradient(90deg) - t.y. VERTIKALIOS juostos.
        Tribūnos atrodė kaip brūkšninis kodas, kalvos - kaip trys stulpai,
        gruntas - kaip fanera.
     3. Žirgas 190 px pločio, o horizontalus tarpas tarp jų ~110 px -> visi
        sulipdavo į vieną krūvą.
     4. .kz-sd__lane NETURĖJO .kz-lane klasės, tad kzStride/kzBob/kzHoofDust
        (visi susieti su `.kz-lane.is-live`) NIEKADA nesuveikdavo - žirgai
        slysdavo šonu kaip įklijos.
     5. .kz-side jau nuo seno yra blackjack'o sumos plokštelė (kazino.html:119
        ir :123). v1 ją perrašė į `position:absolute; inset:0` - t.y. sugadino
        blackjack'ą. Todėl čia klasė yra .kz-sdv.
     6. Septyni 6400 px pločio sluoksniai su will-change:transform = ~90 MB
        GPU tekstūrų. Dabar fonai slenka MODULO plyteles (žr. --tile), tad
        sluoksnis tėra „langas + viena plytelė" pločio.

   Spalvos: jokių node tapatybių (#E8414D/#4DA3FF/#35E0A1) - tik gruntas,
   dangus ir bendra chrome.
   ========================================================================== */
.kz-sdv{ position: absolute; inset: 0; overflow: hidden; isolation: isolate; }

/* bendra vinjetė. ID specifiškumas BŪTINAS: kazino.css turi
   `#kzTrack::after` (ovalo vinjetė), o `.kz-sdv::after` jo nenugalėtų. */
#kzTrack.kz-sdv::after{
  content: ""; position: absolute; inset: 0; z-index: 60; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(4,7,14,.55) 0 2%, transparent 12% 88%, rgba(4,7,14,.55) 98% 100%),
    radial-gradient(120% 90% at 50% 46%, transparent 52%, rgba(4,7,14,.42) 100%);
}

/* -----------------------------------------------------------------------------
   SLUOKSNIAI
   Fono sluoksniai yra „langas + viena plytelė" pločio ir slenka tik per
   [0, --tile) ruožą: fonas kartojasi, tad postūmis per plytelės kartotinį yra
   nematomas. Taip gaunam begalinį slinkimą be milžiniškų tekstūrų.
   .kz-sd--wide yra tikram pasauliui: stulpai, finišas, žirgai - juose fono
   nėra, tad platus dėžės plotis nieko nekainuoja.
   -------------------------------------------------------------------------- */
.kz-sd{
  position: absolute; top: 0; left: 0; height: 100%;
  width: calc(100% + var(--tile, 0px));
  pointer-events: none;
}
.kz-sd--wide{ width: 6400px; }        /* > TRACK_PX + lango plotis */

/* --- dangus: x-invariantiškas, tad iš viso nejuda --------------------------- */
.kz-sd--sky{
  --tile: 0px;
  background:
    /* pašvaistė VIRŠ tribūnų (v2.0 dėmės buvo ties 104 %, t.y. už kadro
       apačios - dangus atrodė tiesiog juodas) */
    radial-gradient(60% 78% at 22% 88%, rgba(255,206,150,.20), transparent 66%),
    radial-gradient(52% 70% at 76% 84%, rgba(150,190,255,.13), transparent 68%),
    linear-gradient(180deg, #060B18 0%, #0A1228 34%, #101B3C 64%, #17264C 100%);
}

/* --- tolima panorama: siluetas, kyšantis VIRŠ tribūnų stogo ---------------
   Anksčiau „kalvos" buvo per visą aukštį ir atsidurdavo ties 58-71 %, t.y. UŽ
   grunto - jų apskritai nesimatė. Dabar tai siaura juosta virš stogo: apačia
   lenda už tribūnų (taip ir turi būti - tai TOLIAU), o kupros kyšo.
   Plytelės 200/300 px -> bendra plytelė 600 px. */
.kz-sd--hills{
  --tile: 600px;
  top: 3%; height: 17%;
  background-image:
    radial-gradient(112px 40px at 100px 100%, #101A34 0 99%, transparent 100%),
    radial-gradient(172px 62px at 150px 100%, #0B1224 0 99%, transparent 100%);
  background-repeat: repeat-x, repeat-x;
  background-size: 200px 100%, 300px 100%;
  background-position: 0 bottom, 0 bottom;
}

/* --- tribūnos: minia = taškai, ne juostos ---------------------------------
   Taškų plytelės 7/11/13 px yra tarpusavyje pirminės -> bendra plytelė
   7*11*13 = 1001 px, ir akis nemato taisyklingo tinklelio. */
.kz-sd--stands{
  --tile: 1001px;
  top: 18%; height: 28%;
  background-image:
    radial-gradient(circle at 2px 2px, rgba(216,232,255,.17) 0 1.1px, transparent 1.5px),
    radial-gradient(circle at 2px 2px, rgba(126,164,224,.13) 0 1px,   transparent 1.4px),
    radial-gradient(circle at 2px 2px, rgba(255,196,140,.09) 0 1px,   transparent 1.4px),
    /* sėdynių eilės - horizontalūs tamsūs siūlai, duoda pakopų pojūtį */
    repeating-linear-gradient(0deg, rgba(4,7,14,.34) 0 1px, transparent 1px 9px),
    /* pakopos: viršus TAMSUS (stogo šešėlis), apačia šviesesnė nuo prožektorių */
    linear-gradient(180deg, #070B15 0 10%, #0D1424 10% 32%, #141D30 32% 62%,
                            #101828 62% 86%, #0A101C 86% 100%);
  background-size: 7px 6px, 11px 9px, 13px 7px, 100% 100%, 100% 100%;
  background-position: 0 0, 0 3px, 0 1px, 0 0, 0 0;
  border-top: 3px solid #101827;              /* stogo kraštas */
  border-bottom: 1px solid #1E2A42;
  box-shadow: inset 0 -12px 16px -12px rgba(4,7,14,.95),
              inset 0  10px 14px -10px rgba(0,0,0,1);
}

/* prožektorių stiebai - stipriausias stadiono ženklas, JS deda kas ~880 px */
.kz-sd--pylons{ top: 18%; height: 28%; }
.kz-sd__pylon{
  position: absolute; bottom: 0; width: 3px; height: 116%;
  background: linear-gradient(180deg, #46557A 0 12%, #2B3550 12% 100%);
}
.kz-sd__pylon::before{                  /* lempų juosta */
  content: ""; position: absolute; left: 50%; top: -7px;
  transform: translateX(-50%);
  width: 54px; height: 11px; border-radius: 2px;
  background:
    repeating-linear-gradient(90deg, #FFF3D4 0 5px, #6E7A9A 5px 9px),
    #4A5675;
  box-shadow: 0 0 22px 6px rgba(255,232,180,.30);
}
.kz-sd__pylon::after{                   /* šviesos kūgis žemyn */
  content: ""; position: absolute; left: 50%; top: 4px;
  transform: translateX(-50%);
  width: 210px; height: 340px;
  background: linear-gradient(180deg, rgba(255,232,180,.10), transparent 72%);
  clip-path: polygon(42% 0, 58% 0, 100% 100%, 0 100%);
}

/* --- tolimoji tvora: plona balta juosta + reti stulpeliai ----------------- */
.kz-sd--rail{
  --tile: 56px;
  top: 46%; height: 11px;
  background:
    repeating-linear-gradient(90deg, rgba(226,238,255,.34) 0 2px, transparent 2px 56px),
    linear-gradient(180deg, rgba(240,247,255,.62) 0 2px, rgba(240,247,255,.10) 2px 4px, transparent 4px 100%);
}

/* --- gruntas -------------------------------------------------------------
   Plytelės 90/150/225 -> MBK 450; prožektorių dėmė 900 -> bendra plytelė 900.
   Trumpinys, o ne background-image: kiekvienam sluoksniui reikia savo
   position/size/repeat, o background-image tokių neima. */
.kz-sd--ground{
  --tile: 900px;
  top: 48%; height: 52%;
  background:
    /* prožektorių dėmės ant grunto */
    radial-gradient(340px 108px at 450px 40%, rgba(255,226,186,.10), transparent 72%)
      0 0/900px 100% repeat,
    /* Tekstūra: MINKŠTOS dėmės, ne linijos. Aštrios 2-3 px vertikalios linijos
       kas 137 px akiai susiliejo į kolonas - gruntas atrodė dygsniuotas. */
    radial-gradient(closest-side, rgba(255,238,214,.045), transparent)
      0 22%/90px 30px repeat,
    radial-gradient(closest-side, rgba(18,10,4,.075), transparent)
      0 58%/150px 34px repeat,
    radial-gradient(closest-side, rgba(255,238,214,.030), transparent)
      0 84%/225px 26px repeat,
    /* šukavimas eina IŠILGAI tako, t.y. horizontaliai ekrane */
    repeating-linear-gradient(0deg, rgba(255,240,220,.022) 0 1px, transparent 1px 9px)
      0 0/100% 100% repeat,
    /* bazė: tolimas kraštas beveik juodas, artimas - šiltas, bet NE oranžinis
       (v2.0 apatinis #7E6043 buvo per sodrus ir gruntas atrodė kaip fanera).
       `repeat` (ne no-repeat), nes sluoksnis slenka - o vertikalus gradientas
       horizontaliai kartojasi identiškai, tad siūlės nematyti. */
    linear-gradient(180deg, #1E160F 0%, #33251A 15%, #473526 42%, #5B4531 70%, #6B5340 100%)
      0 0/100% 100% repeat;
  box-shadow: inset 0 12px 18px -12px rgba(4,7,14,.95);
}

/* --- furlongo stulpai ir finišas: tikros pasaulio koordinatės ------------- */
.kz-sd--props{ top: 48%; height: 52%; }
.kz-sd__mark{
  position: absolute; top: 7%; height: 20%; width: 4px;
  background: repeating-linear-gradient(180deg, #F1F5FF 0 6px, #C2402F 6px 12px);
  box-shadow: 0 1px 3px rgba(0,0,0,.6);
}
/* Užrašas ŠALIA stulpo, ne virš jo: virš jo jis atsidurdavo tiksliai ant
   tolimosios tvoros baltos linijos ir tapdavo neįskaitomas. */
.kz-sd__mark::after{
  content: attr(data-f);
  position: absolute; top: -1px; left: 8px;
  font-family: var(--font-mono); font-size: 10px; font-weight: 700; line-height: 1;
  color: rgba(240,246,255,.82); letter-spacing: .06em;
  background: rgba(8,12,20,.66); padding: 2px 5px; border-radius: 3px;
  white-space: nowrap;
}
.kz-sd__finish{
  position: absolute; top: -84%; bottom: 0; width: 6px;
  background: linear-gradient(180deg, rgba(244,248,255,.92), rgba(244,248,255,.34));
  box-shadow: 0 0 20px 4px rgba(244,248,255,.28);
}
.kz-sd__finish::before{                 /* šachmatinė plokštė viršuje */
  content: ""; position: absolute; left: 50%; top: 0; transform: translateX(-50%);
  width: 46px; height: 26px;
  background: repeating-conic-gradient(#F4F8FF 0 25%, #131A26 0 50%) 0 0/13px 13px;
  border: 1px solid rgba(244,248,255,.55);
}
.kz-sd__finish::after{                  /* ryški linija ant grunto */
  content: ""; position: absolute; left: -1px; bottom: 0; width: 8px; height: 84%;
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.30));
}

/* --- starto boksai: kadro pradžia turi turėti prasmę ---------------------- */
/* Boksai stovi ANT tako, tad jie neperžengia tolimosios tvoros: viršus ties
   22 % grunto (~66 % kadro) sutampa su tolimiausiu takeliu, apačia - su
   artimiausiu. Anksčiau top:-34 % kėlė juos į tribūnas ir atrodė kaip siena. */
.kz-sd__gate{
  position: absolute; top: 20%; bottom: 4%; width: 74px;
  background:
    repeating-linear-gradient(0deg, rgba(226,238,255,.24) 0 2px, transparent 2px 15px),
    linear-gradient(180deg, #1A2436 0%, #101827 62%, #0A101B 100%);
  border: 2px solid rgba(226,238,255,.30);
  border-right: none;
  box-shadow: 0 0 16px rgba(0,0,0,.6), inset -12px 0 16px -12px rgba(0,0,0,.9);
}

/* --- bėgikai -------------------------------------------------------------
   Naudojam BENDRĄ .kz-runner kontraktą (--tx/--ty/--k), tad kanopos lieka
   ties 91 % piešinio, o kzStride/kzBob/kzHoofDust veikia be jokių dublikatų. */
.kz-sd--runners{ top: 0; height: 100%; }
.kz-sd__lane{ position: absolute; inset: 0; width: auto; height: auto; pointer-events: none; }

/* šoniniame vaizde žirgas didesnis, tad ir TU vėliavėlė turi paaugti */
.kz-sdv .kz-lane.is-mine .kz-runner::after{ font-size: 10px; padding: 3px 6px; }

/* --- priekinė tvora ------------------------------------------------------
   v2.0 čia buvo ŠVIESI juosta ant šviesaus grunto - atrodė kaip mūro siena.
   Priekinis planas prieš šviesą turi būti TAMSUS: plonas blizgus tvoros
   viršus, o po juo - tamsi neryški masė, kuri nurėžia kadro apačią. */
.kz-sd--near{
  --tile: 132px;
  top: 88%; height: 12%;
  background:
    linear-gradient(180deg, rgba(226,238,255,.22) 0 2px, transparent 2px 100%)
      0 0/100% 100% repeat,
    /* stulpeliai PLONI ir reti - 5 px kas 104 px atrodė kaip mūro eilė */
    repeating-linear-gradient(90deg, rgba(8,12,20,.55) 0 2px, transparent 2px 132px)
      0 0/132px 100% repeat,
    /* be aštrios viršutinės briaunos: tamsa auga tolygiai nuo nulio */
    linear-gradient(180deg, transparent 0 6%, rgba(6,9,16,.34) 42%, rgba(6,9,16,.80) 100%)
      0 0/100% 100% repeat;
  filter: blur(2.2px);
}

@media (max-width: 640px){
  .kz-sd--stands, .kz-sd--pylons{ top: 15%; height: 31%; }
  .kz-sd__mark{ height: 18%; }
  .kz-sd__mark::after{ font-size: 9px; padding: 1px 4px; }
  .kz-sd__pylon::before{ width: 38px; height: 8px; }
  .kz-sdv .kz-lane.is-mine .kz-runner::after{ font-size: 8px; padding: 2px 4px; }
}
@media (prefers-reduced-motion: reduce){
  .kz-sd{ transition: none !important; }
}

/* =============================================================================
   OVALO IŠJUNGIMAS
   Ovalas lieka MODELIU, bet nebepiešiamas, kai šoninis vaizdas realiai sukurtas.
   Sąlyga yra .kz-sdv klasė, kurią prideda tik sėkmingas kzSide.build(), tad
   modulio nepakrovus senas vaizdas rodomas kaip anksčiau.
   ========================================================================== */
#kzTrack.kz-sdv > .kz-lane,
#kzTrack.kz-sdv > .kz-ovsvg,
#kzTrack.kz-sdv > .kz-post,
#kzTrack.kz-sdv > .kz-tote{ display: none; }


/* =============================================================================
   VAIZDUI IS VIRSAUS REIKIA AUKSCIO
   Ovalas piesiamas VISAS, tad zemas langas ji suspaudzia i siaura juosta.
   .kz-game--max .kz-arena turi didesni specifiskuma, tad pilno ekrano rezimas
   lieka nepaliestas.
   ========================================================================== */
.kz-arena{ height: clamp(270px, 40vh, 400px); }
@media (max-width: 640px){ .kz-arena{ height: 240px; } }
/* is-running mastelis 1.03 nukirstu virsutine trasos briauna, nes vaizdas is
   virsaus uzpildo arena iki krastu. Ovalui jis lieka. */
.kz-arena.is-running #kzTrack.kz-tpv{ transform: none; }

/* =============================================================================
   LENKTYNĖS IŠ VIRŠAUS - plokščias 2D ovalas
   -----------------------------------------------------------------------------
   Klasė yra .kz-tpv (ne .kz-top ir ne .kz-side): .kz-side jau nuo seno yra
   blackjack'o sumos plokštelė kazino.html:119 ir :123, ir vieną kartą ji jau
   buvo netyčia perrašyta.
   Spalvos: jokių node tapatybių (#E8414D/#4DA3FF/#35E0A1) bendroje chrome -
   takelio spalvos ateina iš LANE paletės ir gyvena TIK ant žirgų.
   ========================================================================== */
.kz-tpv{ position: absolute; inset: 0; overflow: hidden; isolation: isolate;
  background:
    radial-gradient(120% 90% at 50% 44%, #0B1424 0%, #05080F 78%); }

/* trasos SVG guli po bėgikais */
.kz-tp__track{ position: absolute; inset: 0; width: 100%; height: 100%;
  display: block; pointer-events: none; }

/* vinjetė. ID specifiškumas BŪTINAS: kazino.css turi #kzTrack::after (ovalo
   vinjetė), o .kz-tpv::after jo nenugalėtų. */
#kzTrack.kz-tpv::after{
  content: ""; position: absolute; inset: 0; z-index: 40; pointer-events: none;
  background: radial-gradient(120% 92% at 50% 46%, transparent 58%, rgba(4,7,14,.5) 100%);
}

.kz-tp__runners{ position: absolute; inset: 0; pointer-events: none; z-index: 20; }

/* DVI pakopos: .kz-tp__lane tik STUMIA, .kz-tp__spr tik SUKA. Sudėjus abu į
   vieną elementą, „TU" žymė suktųsi kartu su žirgu ir viršutiniame tiesiajame
   (kryptis 180 laipsnių) atsidurtų aukštyn kojom. */
.kz-tp__lane{
  position: absolute; left: 0; top: 0; width: 0; height: 0;
  will-change: transform;
}
.kz-tp__spr{ position: absolute; left: 0; top: 0; width: 0; height: 0; }

/* Balno numeris. Gyvena ant NESISUKANČIO .kz-tp__lane, todėl viršutiniame
   tiesiajame nevirsta aukštyn kojom - anksčiau „6" ten buvo skaitoma kaip „9". */
.kz-tp__num{
  position: absolute; left: 0; top: 0;
  transform: translate(-50%, -50%);
  width: var(--kz-tp-num, 14px); height: var(--kz-tp-num, 14px); border-radius: 50%;
  background: #FFFFFF; color: #0B111E;
  border: 1px solid rgba(8,12,20,.55);
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: calc(var(--kz-tp-num, 14px) * .68); font-weight: 700;
  line-height: calc(var(--kz-tp-num, 14px) - 2px); text-align: center;
  box-shadow: 0 1px 2px rgba(0,0,0,.5);
  pointer-events: none;
}
.kz-tp__svg{
  position: absolute; left: 0; top: 0;
  width: var(--kz-tp-w, 44px); height: var(--kz-tp-h, 24px);
  /* BŪTINA. style.css turi bendrą `img, svg{ max-width: 100% }`, o šio spraito
     turintysis blokas .kz-tp__spr yra 0 px pločio (jis tėra sukimosi taškas).
     Tad max-width:100% virsta max-width:0 ir žirgas suplokštėja iki nulio:
     ekrane lieka tik balti numerio skrituliai. Peržiūros stende to nesimatė,
     nes ten style.css apskritai nebuvo pakrautas. */
  max-width: none; max-height: none;
  transform: translate(-50%, -50%);
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.65));
  overflow: visible;
}

/* Dulkės iš po kanopų. Gyvena SUKAMAME .kz-tp__spr, tad visada lieka už
   uodegos, kad ir kur žirgas suktų. */
.kz-tp__dust{
  position: absolute; left: 0; top: 0;
  width: 34px; height: 16px;
  transform: translate(-100%, -50%) translateX(-6px);
  background: radial-gradient(70% 100% at 100% 50%, rgba(214,186,148,.42), transparent 72%);
  opacity: 0; pointer-events: none;
}
.kz-tp__lane.is-live .kz-tp__dust{ animation: kzTpDust .58s linear infinite; }
@keyframes kzTpDust{
  0%  { opacity: .55; transform: translate(-100%,-50%) translateX(-4px) scale(.55) }
  100%{ opacity: 0;   transform: translate(-100%,-50%) translateX(-16px) scale(1.5) }
}

/* --- kojų darbas -----------------------------------------------------------
   Iš viršaus kojos juda PIRMYN-ATGAL, o ne sukasi kaip šone, tad čia savi
   keyframe'ai; .kz-leg tyčia NEnaudojamas, kad nepagautų šoninio kzStride.
   0.3 s buvo 3,3 žingsnio per sekundę - iš viršaus, kai spraitas mažas, tai
   skaitosi ne kaip galopas, o kaip virpėjimas. 0.44 s ramiau. */
.kz-tp__lane.is-live .kz-tp__leg--a{ animation: kzTpLegA .44s ease-in-out infinite; }
.kz-tp__lane.is-live .kz-tp__leg--b{ animation: kzTpLegB .44s ease-in-out infinite; }
@keyframes kzTpLegA{ 0%,100%{ transform: translateX(-2.2px) } 50%{ transform: translateX(2.2px) } }
@keyframes kzTpLegB{ 0%,100%{ transform: translateX(2.2px) } 50%{ transform: translateX(-2.2px) } }

/* kūno „kvėpavimas" - vos matomas, bet be jo spraitas atrodo kaip įklija */
.kz-tp__lane.is-live .kz-tp__svg{ animation: kzTpBob .44s ease-in-out infinite; }
@keyframes kzTpBob{
  0%,100%{ transform: translate(-50%, -50%) scale(1) }
  50%    { transform: translate(-50%, -50%) scale(1.03) }
}

/* --- signalai --------------------------------------------------------------
   Signalas BALTAS, ne node spalva. Lyderis - šiltas auksinis žiedas; tavo
   žirgas - baltas. Abu sudedami, o ne konkuruoja. */
.kz-tp__lane.is-lead .kz-tp__svg{
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.65))
          drop-shadow(0 0 7px rgba(255,216,120,.85));
}
.kz-tp__lane.is-mine .kz-tp__svg{
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.65))
          drop-shadow(0 0 7px rgba(255,255,255,.95));
}
.kz-tp__lane.is-mine.is-lead .kz-tp__svg{
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.65))
          drop-shadow(0 0 7px rgba(255,255,255,.95))
          drop-shadow(0 0 12px rgba(255,216,120,.8));
}

/* „TU" žymė kabinama ant .kz-tp__lane, kuris NESISUKA, tad ji visada lieka
   horizontali - net kai žirgas viršutiniame tiesiajame bėga kairėn. */
.kz-tp__lane.is-mine::after{
  content: "TU";
  position: absolute; left: 0; top: 0;
  transform: translate(-50%, -50%) translateY(-19px);
  font-family: var(--font-mono, ui-monospace, monospace);
  font-size: 9px; font-weight: 700; letter-spacing: .08em; line-height: 1;
  color: var(--c-void, #060A12); background: #FFFFFF;
  padding: 2px 4px; border-radius: 999px;
  box-shadow: 0 1px 3px rgba(0,0,0,.7);
  white-space: nowrap; pointer-events: none;
}

@media (max-width: 640px){
  .kz-tp__lane.is-mine::after{ font-size: 8px; padding: 1px 3px;
    transform: translate(-50%, -50%) translateY(-15px); }
}
@media (prefers-reduced-motion: reduce){
  .kz-tp__lane.is-live .kz-tp__leg--a,
  .kz-tp__lane.is-live .kz-tp__leg--b,
  .kz-tp__lane.is-live .kz-tp__svg{ animation: none; }
}

/* --- kontaktinis šešėlis -------------------------------------------------
   Gyvena ant NESISUKANČIO .kz-tp__lane, tad šešėlis krenta visada ta pačia
   kryptimi (šviesa iš viršaus-kairės), kad ir kur žirgas suktų. Be jo
   spraitas atrodo kaip pakibęs virš tako. */
.kz-tp__shadow{
  position: absolute; left: 0; top: 0;
  width: var(--kz-tp-w, 44px); height: var(--kz-tp-h, 24px);
  transform: translate(-50%, -50%) translate(3px, 4px) scale(.92);
  background: radial-gradient(ellipse, rgba(0,0,0,.5), transparent 68%);
  pointer-events: none;
}

/* --- prožektorių žybsnis -------------------------------------------------- */
.kz-tp__glow{ animation: kzTpGlow 3.4s ease-in-out infinite; transform-origin: center; }
@keyframes kzTpGlow{ 0%,100%{ opacity: .55 } 50%{ opacity: 1 } }

/* --- foto finišas ---------------------------------------------------------
   Vienas trumpas blyksnis, kai lyderis kerta liniją. Ne kilpa: kilpa
   mirksėtų visą laiką, kol rezultatų langas atidarytas. */
.kz-tp__flash{
  position: absolute; inset: 0; z-index: 45; pointer-events: none;
  background: radial-gradient(60% 90% at 50% 100%, rgba(255,255,255,.5), transparent 62%);
  opacity: 0;
}
.kz-tpv.is-photo .kz-tp__flash{ animation: kzTpFlash .85s ease-out 1; }
@keyframes kzTpFlash{ 0%{ opacity: .9 } 100%{ opacity: 0 } }

@media (prefers-reduced-motion: reduce){
  .kz-tp__glow{ animation: none }
  .kz-tpv.is-photo .kz-tp__flash{ animation: none }
}

/* --- LAUKIANT STARTO -------------------------------------------------------
   Prie boksų žirgai stovi, bet ne kaip įklijos: lengvas nerimas vietoje.
   Taikoma tik NE bėgimo metu, tad su kzTpBob niekada nesusiduria. */
.kz-tp__lane:not(.is-live) .kz-tp__svg{
  animation: kzTpIdle 3.8s ease-in-out infinite;
}
@keyframes kzTpIdle{
  0%,100%{ transform: translate(-50%, -50%) rotate(0deg) }
  50%    { transform: translate(-50%, -50%) rotate(-1.6deg) }
}
.kz-tp__lane:nth-child(2n):not(.is-live) .kz-tp__svg{ animation-delay: -1.3s; }
.kz-tp__lane:nth-child(3n):not(.is-live) .kz-tp__svg{ animation-delay: -2.5s; }
@media (prefers-reduced-motion: reduce){
  .kz-tp__lane:not(.is-live) .kz-tp__svg{ animation: none; }
}

/* Ovalas/šoninis vaizdas nebepiešiami, kai vaizdas iš viršaus realiai sukurtas. */
#kzTrack.kz-tpv > .kz-lane,
#kzTrack.kz-tpv > .kz-ovsvg,
#kzTrack.kz-tpv > .kz-post,
#kzTrack.kz-tpv > .kz-tote,
#kzTrack.kz-tpv > .kz-sd{ display: none; }

/* =============================================================================
   SLOTŲ KABINETAS - v2, 2026-08-21
   -----------------------------------------------------------------------------
   Prieš tai kabinetas jau turėjo gerų dalykų (būgno cilindro šešėlius, stiklo
   blizgesį, langelių plyteles, tease pulsavimą, laimėjusių langelių ryškinimą),
   tad tai NE perdarymas, o taškiniai sustiprinimai ten, kur trūko:

     1. IŠKABA buvo 9,5 px mono ties 60 % aukso permatomumu - automato veidas
        praktiškai nematomas. Dabar tai tikra šviečianti iškaba.
     2. KABINETAS neturėjo mašinos tapatybės: plokščias stačiakampis be kampų
        laikiklių ir be šoninių šviesų.
     3. NEMOKAMI SUKIMAI keitė tik juostelę viršuje - didžiausias žaidimo
        momentas praeidavo beveik nepastebimai. Dabar persijungia VISAS
        kabinetas.

   SPALVŲ TEISĖ (žr. swedencode-design):
     * --c-gold #FFD24A yra TIK SWGC valiuta. Kabineto auksas čia yra ta pati
       valiutos linija (statai ir laimi SWGC), todėl jis teisėtas - bet nauja
       spalva nemetama: nemokami sukimai NEĮVEDA naujo atspalvio, jie tiesiog
       sustiprina tą patį auksą. Node spalvos (#E8414D / #4DA3FF / #35E0A1)
       čia neįvedamos.
     * Radiusai pagal rolę: 7px valdikliai, 8px kortelės, 999px piliulės.
     * Naudojami TIK laisvi pseudoelementai. Užimti jau buvo:
       .kz-slcab::before (iškaba), .kz-slcell::before, .kz-slreel::before,
       .kz-slreel::after, .kz-slreels::after (vidurio linija).
   ========================================================================== */

/* --- 1. KABINETO KORPUSAS ------------------------------------------------
   Prie esamo gradiento pridedamos dvi vertikalios šviesos juostos prie
   šonų - jos gyvena FONE, o ne pseudoelemente, nes vienintelis laisvas
   ::after reikalingas kampų laikikliams. */
.kz-slcab{
  --slgold: 228,184,74;
  padding-top: 12px;
  border-color: rgba(var(--slgold), .40);
  background:
    linear-gradient(180deg, transparent, rgba(var(--slgold), .55), transparent)
      12px 50% / 2px 62% no-repeat,
    linear-gradient(180deg, transparent, rgba(var(--slgold), .55), transparent)
      calc(100% - 12px) 50% / 2px 62% no-repeat,
    linear-gradient(180deg, #16203A 0%, #0C1220 100%);
  box-shadow:
    inset 0 0 60px rgba(0,0,0,.55),
    inset 0 1px 0 rgba(255,240,200,.10),
    0 18px 46px rgba(0,0,0,.45),
    0 0 0 6px #10151F,
    0 0 0 7px rgba(var(--slgold), .22),
    0 0 38px -10px rgba(var(--slgold), .40);
}

/* --- 2. IŠKABA -----------------------------------------------------------
   Chakra Petch, nes tai antraštė. Buvo 9,5 px mono ties .42em - per smulku
   ir per blyšku, kad būtų automato veidas. */
.kz-slcab::before{
  /* Senas tekstas buvo 'SWEDEN CODES \00b7 SLOTAI' ir ekrane rodė
     „SWEDEN CODES ·SLOTAI" be tarpo: CSS escape'ą baigia BŪTENT tas tarpas,
     tad jis suvalgomas. Rašom simbolį tiesiogiai. */
  content: 'SWEDEN CODES · SLOTAI';
  font-family: var(--font-display);
  font-size: 12px; font-weight: 700; letter-spacing: .26em;
  color: rgba(246,218,140,.95);
  text-shadow: 0 0 18px rgba(var(--slgold), .55), 0 1px 0 rgba(0,0,0,.65);
  margin: 0 0 12px;
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(var(--slgold), .16);
}

/* --- 3. KAMPŲ LAIKIKLIAI -------------------------------------------------
   Aštuoni fono sluoksniai = keturi kampai po dvi atkarpas. Vienas elementas,
   nes .kz-slcab::before jau užimtas iškabos. --bracket yra sistemos tokenas. */
.kz-slcab::after{
  content: ""; position: absolute; inset: 5px;
  pointer-events: none; z-index: 4;
  --bk: rgba(var(--slgold), .55);
  --bw: 2px;
  background:
    linear-gradient(var(--bk), var(--bk)) 0    0    / var(--bracket) var(--bw) no-repeat,
    linear-gradient(var(--bk), var(--bk)) 0    0    / var(--bw) var(--bracket) no-repeat,
    linear-gradient(var(--bk), var(--bk)) 100% 0    / var(--bracket) var(--bw) no-repeat,
    linear-gradient(var(--bk), var(--bk)) 100% 0    / var(--bw) var(--bracket) no-repeat,
    linear-gradient(var(--bk), var(--bk)) 0    100% / var(--bracket) var(--bw) no-repeat,
    linear-gradient(var(--bk), var(--bk)) 0    100% / var(--bw) var(--bracket) no-repeat,
    linear-gradient(var(--bk), var(--bk)) 100% 100% / var(--bracket) var(--bw) no-repeat,
    linear-gradient(var(--bk), var(--bk)) 100% 100% / var(--bw) var(--bracket) no-repeat;
}

/* --- 4. BŪGNŲ LANGAS -----------------------------------------------------
   Tamsi kaktos juosta virš ir po būgnais: langas atrodo iškirstas korpuse,
   o ne uždėtas ant jo. .kz-slreels::before buvo laisvas. */
.kz-slreels::before{
  content: ""; position: absolute; inset: -9px -10px; z-index: 0;
  border-radius: 12px;
  background: #070B14;
  box-shadow: inset 0 2px 10px rgba(0,0,0,.9),
              0 0 0 1px rgba(var(--slgold), .18);
}
.kz-slreel{ z-index: 1; }

/* --- 5. LINIJŲ BĖGELIAI --------------------------------------------------
   Skaitmenys buvo 28 % balto ant beveik nematomo fono. Pakelta, kad ramybės
   būsenoje bėgelis atrodytų kaip įrenginio dalis, o ne kaip šiukšlė. */
.kz-slpip{
  color: rgba(226,238,255,.42);
  background: rgba(255,255,255,.05);
  border-color: rgba(var(--slgold), .14);
}

/* --- 6. LAIMĖJIMO PLOKŠTĖ ------------------------------------------------ */
.kz-slwinbar{
  padding: 8px 26px;
  letter-spacing: .16em;
  border-color: rgba(var(--slgold), .48);
  box-shadow: 0 0 26px -6px rgba(var(--slgold), .75),
              inset 0 1px 0 rgba(255,255,255,.10);
}
.kz-slwinbar b{ font-size: 17px; letter-spacing: .04em; }

/* --- 7. NEMOKAMŲ SUKIMŲ REŽIMAS -----------------------------------------
   JS nededa jokios režimo klasės ant kabineto - vienintelis signalas yra
   atidengta juostelė #kzSlFsBan. Todėl remiamės :has(); jei naršyklė jo
   nemoka, juostelė vis tiek matoma, tik kabinetas nepersijungia.
   ⚠ [hidden] elementui NIEKADA nerašom author `display:` - style.css:6081
   laiko `[hidden]{display:none!important}`, ir būtent tokia klaida kadaise
   paliko neryškų .kz-verdict sluoksnį virš stalo. Čia keičiam tik spalvas. */
.kz-slcab:has(#kzSlFsBan:not([hidden])){
  border-color: rgba(var(--slgold), .75);
  box-shadow:
    inset 0 0 60px rgba(0,0,0,.5),
    inset 0 1px 0 rgba(255,240,200,.16),
    0 18px 46px rgba(0,0,0,.45),
    0 0 0 6px #10151F,
    0 0 0 7px rgba(var(--slgold), .5),
    0 0 60px -8px rgba(var(--slgold), .7);
}
/* Tik režimo vardas: skaičiuoklį ir daugiklį jau rodo juostelė žemiau, o
   abiejose vietose tas pats tekstas kartojosi pažodžiui. */
.kz-slcab:has(#kzSlFsBan:not([hidden]))::before{
  content: 'NEMOKAMI SUKIMAI';
  color: #FFF3D4;
  text-shadow: 0 0 22px rgba(var(--slgold), .9), 0 1px 0 rgba(0,0,0,.65);
  border-bottom-color: rgba(var(--slgold), .38);
}
.kz-slcab:has(#kzSlFsBan:not([hidden]))::after{ --bk: rgba(var(--slgold), .9); }

/* juostelė - tikras šviečiantis skydelis, ne kontūrinė piliulė */
.kz-slfsban{
  background: linear-gradient(180deg, rgba(var(--slgold), .26), rgba(var(--slgold), .08));
  border: 1px solid rgba(var(--slgold), .6);
  color: #FFF3D4;
  letter-spacing: .12em;
  box-shadow: 0 0 24px -6px rgba(var(--slgold), .8),
              inset 0 1px 0 rgba(255,255,255,.14);
}

/* --- 8. SUKIMO MYGTUKAS -------------------------------------------------- */
.kz-slspin{ letter-spacing: .18em; }

@media (max-width: 640px){
  .kz-slcab{ background-size: 0 0, 0 0, auto; }   /* šoninės šviesos netelpa */
  .kz-slcab::before{ font-size: 10.5px; letter-spacing: .18em; }
  .kz-slcab::after{ inset: 4px; }
  .kz-slwinbar b{ font-size: 15px; }
}
@media (prefers-reduced-motion: reduce){
  .kz-slcab{ box-shadow:
    inset 0 0 60px rgba(0,0,0,.55), 0 18px 46px rgba(0,0,0,.45),
    0 0 0 6px #10151F, 0 0 0 7px rgba(var(--slgold), .22); }
}

/* =============================================================================
   9. ANTRAS SLUOKSNIS - GYVUMAS
   Naudojami tik laisvi kabliai: .kz-slcell::after ir .kz-btn::before/::after
   (patikrinta - .kz-btn neturi nė vieno pseudoelemento).
   ========================================================================== */

/* --- 9.1 SIMBOLIŲ RELJEFAS ----------------------------------------------
   Vienas šešėlis visiems - simbolis pakyla nuo plytelės.
   ⚠ Specifiškumas tyčia mažas (0,2,0): sukimosi suliejimas
   `.kz-slreel.is-blur .kz-slsym` yra (0,3,0), tad jis ir toliau laimi.
   Jei čia parašytum tris klases, sukimasis liktų be blur. */
.kz-slcell .kz-slsym{ filter: drop-shadow(0 2px 3px rgba(0,0,0,.55)); }

/* --- 9.2 LAIMĖJIMO LINIJA GYVA -------------------------------------------
   Buvo statiškas 4 px brūkšnys su vienu švytėjimu. Dabar šviesa bėga linija,
   kaip lempučių vora ant tikro kabineto. Brūkšnys ilgas (26/8), tad linija
   vis tiek skaitosi kaip vientisa. */
.kz-sllines polyline{
  filter: drop-shadow(0 0 6px currentColor) drop-shadow(0 0 15px currentColor);
  stroke-dasharray: 26 8;
  animation: kzSlFlow 1.05s linear infinite;
}
@keyframes kzSlFlow{ to{ stroke-dashoffset: -34; } }

/* --- 9.3 LAIMĖJUSIO LANGELIO PROTRŪKIS -----------------------------------
   .kz-slcell::before jau užimtas plytelės, todėl švytėjimas gyvena ::after.
   Jis lieka PO simboliu, nes .kz-slsym yra position:relative. */
.kz-slcell.is-hit::after{
  content: ""; position: absolute; inset: 4% 7%;
  border-radius: 18%; pointer-events: none;
  background: radial-gradient(circle at 50% 50%,
    rgba(255,226,150,.38) 0%, rgba(255,226,150,.12) 45%, transparent 70%);
  animation: kzSlBurst .5s ease-in-out infinite alternate;
}
@keyframes kzSlBurst{
  from{ opacity: .45; transform: scale(.88); }
  to  { opacity: 1;   transform: scale(1.06); }
}

/* --- 9.4 SPECIALIEJI SIMBOLIAI --------------------------------------------
   Scatter ir wild turi skirtis dar prieš sustojant būgnams. */
.kz-slcell .kz-slsym[data-sym="SCAT"]{
  filter: drop-shadow(0 2px 3px rgba(0,0,0,.55))
          drop-shadow(0 0 7px rgba(228,184,74,.65));
}
.kz-slcell .kz-slsym[data-sym="WILD"]{
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.6))
          drop-shadow(0 0 6px rgba(228,184,74,.4));
}

/* --- 9.5 SUKIMO MYGTUKAS -------------------------------------------------
   Pagrindinis valdiklis buvo plokščia auksinė plokštelė. Dabar turi blizgesį
   viršuje, lėtai perbėgantį atšvaitą ir tikrą paspaudimą. */
.kz-slspin{ position: relative; overflow: hidden; }
.kz-slspin::before{
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 48%;
  background: linear-gradient(180deg, rgba(255,255,255,.22), transparent);
  pointer-events: none;
}
.kz-slspin::after{
  content: ""; position: absolute; top: 0; bottom: 0; width: 36%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.30), transparent);
  pointer-events: none;
  animation: kzSlShine 3.6s ease-in-out infinite;
}
@keyframes kzSlShine{ 0%{ left: -40%; } 55%,100%{ left: 112%; } }
.kz-slspin:not([disabled]):active{ transform: translateY(1px); }
.kz-slspin[disabled]::after{ animation: none; opacity: 0; }

/* --- 9.6 RAMYBĖS REŽIMAS -------------------------------------------------
   Lėtas kampų alsavimas: automatas atrodo įjungtas ir tada, kai niekas
   nesuka. Ciklas ilgas (4,2 s), kad netrukdytų. */
.kz-slcab::after{ animation: kzSlCorners 4.2s ease-in-out infinite; }
@keyframes kzSlCorners{ 0%,100%{ opacity: .72; } 50%{ opacity: 1; } }

@media (prefers-reduced-motion: reduce){
  .kz-sllines polyline{ animation: none; stroke-dasharray: none; }
  .kz-slcell.is-hit::after{ animation: none; opacity: .8; }
  .kz-slspin::after{ animation: none; opacity: 0; }
  .kz-slcab::after{ animation: none; }
}

/* =============================================================================
   10. IŠMOKŲ LENTELĖ IR APLINKA
   ========================================================================== */

/* --- 10.1 APLINKOS ŠVIESA ------------------------------------------------
   #kzSl .kz-gamebg buvo --bgA rgba(150,40,60) - blausiai raudona, nors visas
   kabinetas auksinis. Dvi nesusijusios šiltos spalvos vienam ekrane. Dabar
   abi dėmės iš to paties aukso, tik skirtingo sodrumo.
   Taikoma TIK #kzSl - kiti žaidimai turi savo dėmes ir jų neliečiam. */
#kzSl .kz-gamebg{
  --bgA: rgba(150,110,34,.30);
  --bgB: rgba(120,84,20,.22);
}

/* --- 10.2 IŠMOKŲ EILUTĖS RIKIUOJASI PAGAL VERTĘ --------------------------
   SL_PAYTABLE surašyta nuo brangiausio iki pigiausio, tad eilučių tvarka JAU
   yra hierarchija - tik ekrane visos devynios atrodė vienodai. Dabar dvi
   viršutinės (LOGO, CROWN) turi auksinį kraštą, trečia ir ketvirta - silpnesnį.
   Jokio JS: naudojam eilės numerį. */
.kz-slpay__row{ position: relative; transition: border-color .18s, background .18s; }
.kz-slpay__row:nth-child(1),
.kz-slpay__row:nth-child(2){
  border-color: rgba(228,184,74,.42);
  background: linear-gradient(180deg, rgba(228,184,74,.09), rgba(228,184,74,.02));
}
.kz-slpay__row:nth-child(3),
.kz-slpay__row:nth-child(4){
  border-color: rgba(228,184,74,.22);
  background: linear-gradient(180deg, rgba(228,184,74,.05), transparent);
}
.kz-slpay__row:hover{ border-color: rgba(228,184,74,.55); }

/* WILD ir SCATTER - paskutinės dvi eilutės, jos ne mokančios, o taisyklės */
.kz-slpay__row:nth-last-child(1),
.kz-slpay__row:nth-last-child(2){
  border-style: dashed;
  border-color: rgba(226,238,255,.18);
  background: rgba(255,255,255,.02);
}

/* skaičiai lygiuojasi - mono jau yra, tik reikia tabular figūrų ir oro */
.kz-slpay__vals{ letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.kz-slpay__vals b{ font-weight: 700; }

/* =============================================================================
   STATYMO ŽETONAI - tikri kazino žetonai, 2026-08-21
   -----------------------------------------------------------------------------
   ⚠ TAI BENDRA CHROME. .kz-chips yra kazino.html keturis kartus - blackjack,
   lenktynės, hold'em ir slotai. Šis failas keičia visus keturis žaidimus.

   DVI PRIEŽASTYS KEISTI

   1. SPALVŲ TEISĖ. Nominalai buvo nudažyti node tapatybėmis:
        +10  #4DA3FF = --c-city    (NODE-02, SA-MP / SFG)
        +50  #46D6A0 = --c-good    (sėkmės žymuo)
        +250 #8B5CF6 = --c-city-2  (NODE-02 antrinė)
      Dizaino sistema sako aiškiai: node signalai NIEKADA nededami ant bendros
      chrome. Žetonas kazino juostoje yra būtent bendra chrome.

   2. TAI NEATRODĖ KAIP ŽETONAI. Buvo spalvotas žiedas su punktyru viduje.
      Tikrą žetoną atpažįstamą daro KRAŠTO INTARPAI - stačiakampiai kitos
      spalvos įdėklai per patį kraštą - ir platus vidurio įklotas. Abu čia
      padaryti fono sluoksniais, be papildomų elementų.

   SPALVOS - tikrų kazino žetonų kalba, kurią žaidėjas jau moka:
      raudonas -> žalias -> juodas yra kylanti vertė bet kuriame pasaulio
      kazino. MAX lieka auksinis, nes tai visos sumos statymas, o --c-gold
      yra SWGC valiutos žymuo (teisėtas panaudojimas).
   Nė vienas atspalvis nesutampa su #E8414D / #4DA3FF / #35E0A1.
   ========================================================================== */

.kz-chip{
  --chip:  #B4242F;   /* korpusas */
  --spot:  #F2ECE1;   /* krašto intarpai */
  --inlay: #8E1B25;   /* vidurio įklotas */
  --ink:   #FFF3EA;   /* skaičius */

  color: var(--ink);
  border: none;
  /* Sluoksniai iš viršaus žemyn: įklotas -> griovelis -> krašto intarpai.
     Įklotas uždengia vidurį iki 40 %, tad intarpai matomi tik pačiame
     krašte - lygiai kaip ant tikro žetono. */
  background:
    radial-gradient(circle at 50% 50%,
      var(--inlay) 0 40%, transparent 40.5%),
    radial-gradient(circle at 50% 50%,
      transparent 0 40%, rgba(0,0,0,.38) 40% 43%, transparent 43.5%),
    repeating-conic-gradient(from 22.5deg,
      var(--spot) 0 10deg, var(--chip) 10deg 45deg);
  box-shadow:
    0 3px 9px rgba(0,0,0,.55),
    inset 0 0 0 1px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.16);
}

/* ::before jau buvo užimtas punktyrinio žiedo - perdarom į įkloto briauną */
.kz-chip::before{
  inset: 0;
  border: none;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%,
    transparent 0 37%, rgba(255,255,255,.16) 37% 40%, transparent 40.5%);
  opacity: 1;
}
/* ::after buvo laisvas - viršaus blizgesys, kad diskas nebūtų plokščias */
.kz-chip::after{
  content: ""; position: absolute; inset: 0;
  border-radius: 50%; pointer-events: none;
  background: radial-gradient(60% 42% at 50% 20%,
    rgba(255,255,255,.26), transparent 70%);
}

/* --- NOMINALAI: tikra kazino kopėčia --------------------------------------
   ⚠ `color` rašomas KIEKVIENAME [data-chip] bloke, o ne tik bazėje.
   kazino.css jau turi `.kz-chip[data-chip="max"]{ color: var(--c-gold) }`,
   t.y. specifiškumą (0,2,0). Mano bazinis `.kz-chip{ color: var(--ink) }` yra
   (0,1,0) ir pralaimi - MAX užrašas likdavo auksinis ant auksinio įkloto,
   tad jo tiesiog nesimatė. Tokenas nustatytas, o savybė pralaimėta - būtent
   dėl to dizaino sistema liepia tikrinti kaskadą, o ne grep'ą. */
.kz-chip[data-chip="10"]{ color: var(--ink);                       /* raudonas */
  --chip: #B4242F; --spot: #F2ECE1; --inlay: #8E1B25; --ink: #FFF3EA;
}
.kz-chip[data-chip="50"]{ color: var(--ink);                       /* žalias */
  --chip: #1E7A4F; --spot: #F2ECE1; --inlay: #14603C; --ink: #EAFFF4;
}
.kz-chip[data-chip="250"]{ color: var(--ink);                      /* juodas */
  --chip: #232A38; --spot: #D9E2EE; --inlay: #171D28; --ink: #F2F7FF;
}
/* --- POKERIO NOMINALAI: aukstesnes statymu kopecios --------------------
   Pokeris vienintelis naudoja 100 / 500 / 1000 (kazino.html:199-201), o ne
   10 / 50 / 250. Tie trys data-chip niekada neturejo savo taisykliu, tad
   krisdavo i bazini .kz-chip - VISI TRYS buvo raudoni, nors reiskia skirtinga
   verte. Todel cia testinama ta pati kylanti kopecia auksciau uz juoda:
      juodas -> violetinis -> degintas oranzinis
   Tikra kazino tvarka virs $100 yra butent tokia.

   Atspalviai patikrinti skaiciuojant, ne is akies:
     - violetinis #5B3A8E nesutampa su --c-city-2 #8B5CF6 (atstumas 186);
     - oranzinis #B04512 laikomas toli nuo --c-gold (145) IR nuo --c-zombie
       (119), nes MAX zetonas stovi tiesiai salia jo toje pacioje eiluteje;
     - visi uzrasai ant ikloto >= 7.3:1. */
.kz-chip[data-chip="100"]{ color: var(--ink);                      /* juodas */
  --chip: #232A38; --spot: #D9E2EE; --inlay: #171D28; --ink: #F2F7FF;
}
.kz-chip[data-chip="500"]{ color: var(--ink);                      /* violetinis */
  --chip: #5B3A8E; --spot: #EDE4F7; --inlay: #43286B; --ink: #F3EBFF;
}
.kz-chip[data-chip="1000"]{ color: var(--ink);                     /* degintas oranzinis */
  --chip: #B04512; --spot: #FBEBDC; --inlay: #8A340B; --ink: #FFF1E4;
}

.kz-chip[data-chip="max"]{                      /* auksinis - visa suma */
  color: var(--ink);
  --chip: #C8963A; --spot: #2A2118; --inlay: #E4B84A; --ink: #3A2A06;
  box-shadow:
    0 3px 9px rgba(0,0,0,.55),
    inset 0 0 0 1px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.28),
    0 0 16px -4px rgba(228,184,74,.7);
}

/* --- elgsena -------------------------------------------------------------- */
.kz-chip{ transition: transform .16s, box-shadow .16s, filter .16s; }
.kz-chip:hover{ transform: translateY(-3px); filter: brightness(1.08); }
.kz-chip:active{ transform: translateY(0) scale(.94); }
.kz-chip:focus-visible{ outline: 2px solid var(--c-brand); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce){
  .kz-chip{ transition: none; }
  .kz-chip:hover{ transform: none; }
}


/* =============================================================================
   RAKETA (crash)

   Kortelės modifikatorius .kz-tile--cr TURI turėti savo CSS porą — be jos
   kortelė nupieštų tuščią vietą, nes bendro atsarginio varianto nėra.

   Spalvos imamos iš :root žetonų (style.css). Skydeliai kerpami clip-path,
   ne border-radius — kaip visur šioje svetainėje.
   ========================================================================== */

/* --- kortelė fojė ---------------------------------------------------------- */
.kz-tile--cr .kz-tile__art {
  background:
    radial-gradient(120% 90% at 22% 88%, rgba(125, 228, 255, .30), transparent 60%),
    linear-gradient(150deg, #0B1220 0%, #0E1729 55%, #12203a 100%);
  position: relative;
  overflow: hidden;
}
/* kylanti kreivė — tas pats gestas, kaip pačiame žaidime */
.kz-tile--cr .kz-tile__art::before {
  content: "";
  position: absolute;
  left: 8%; right: 6%; bottom: 16%; top: 22%;
  background:
    linear-gradient(to top right, transparent calc(50% - 1.5px),
      rgba(125, 228, 255, .85) calc(50% - 1.5px),
      rgba(125, 228, 255, .85) calc(50% + 1.5px), transparent calc(50% + 1.5px));
  filter: drop-shadow(0 0 6px rgba(125, 228, 255, .55));
}
.kz-tile--cr .kz-tile__art::after {
  content: "🚀";
  position: absolute;
  right: 10%; top: 18%;
  font-size: 22px;
  filter: drop-shadow(0 0 8px rgba(125, 228, 255, .7));
}

/* --- žaidimo scena -------------------------------------------------------- */
.kz-cr-stage {
  position: relative;
  margin: 12px 0 10px;
  min-height: 260px;
  background: linear-gradient(180deg, rgba(11, 18, 32, .92), rgba(6, 10, 18, .96));
  border: 1px solid var(--c-grid);
  clip-path: var(--clip-panel);
  overflow: hidden;
}
#kzCrCanvas { display: block; width: 100%; height: 300px; }

.kz-cr-mult {
  position: absolute;
  left: 0; right: 0; top: 38%;
  text-align: center;
  font: 700 clamp(34px, 7vw, 64px)/1 var(--font-display, "Chakra Petch"), sans-serif;
  letter-spacing: .04em;
  color: var(--c-hot, #F7FAFF);
  text-shadow: 0 0 26px rgba(125, 228, 255, .45);
  pointer-events: none;
}
.kz-cr-mult--wait { font-size: clamp(22px, 4.4vw, 38px); color: var(--c-body, #B9C6D8); text-shadow: none; }
.kz-cr-mult--bust { color: var(--c-red, #FF3B47); text-shadow: 0 0 26px rgba(255, 59, 71, .5); }

.kz-cr-sub {
  position: absolute;
  left: 0; right: 0; top: calc(38% + 62px);
  text-align: center;
  font: 500 12px/1.2 var(--font-mono, monospace);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--c-gray, #8295AC);
  pointer-events: none;
}

/* --- veiksmo mygtukas ----------------------------------------------------- */
.kz-cr-go {
  width: 100%;
  margin-top: 10px;
  padding: 14px 18px;
  border: 1px solid rgba(125, 228, 255, .55);
  background: linear-gradient(180deg, rgba(125, 228, 255, .18), rgba(125, 228, 255, .06));
  color: var(--c-hot, #F7FAFF);
  font: 700 14px/1 var(--font-display, "Chakra Petch"), sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
  clip-path: var(--clip-panel);
  transition: filter .15s ease;
}
.kz-cr-go:hover:not(:disabled) { filter: brightness(1.18); }
.kz-cr-go--cash {
  border-color: rgba(70, 214, 160, .65);
  background: linear-gradient(180deg, rgba(70, 214, 160, .26), rgba(70, 214, 160, .08));
}
.kz-cr-go--done, .kz-cr-go:disabled {
  border-color: var(--c-grid, #1B2840);
  background: rgba(255, 255, 255, .03);
  color: var(--c-gray-dim, #5C6B82);
  cursor: default;
}

/* --- žaidėjų sąrašas ------------------------------------------------------ */
.kz-cr-players {
  margin-top: 12px;
  max-height: 190px;
  overflow-y: auto;
  border: 1px solid var(--c-grid, #1B2840);
  background: rgba(255, 255, 255, .02);
}
.kz-cr-p {
  display: grid;
  grid-template-columns: 1fr auto 74px;
  gap: 10px;
  align-items: center;
  padding: 7px 12px;
  border-bottom: 1px solid rgba(140, 170, 255, .06);
  font: 400 12px/1.3 var(--font-body, system-ui), sans-serif;
  color: var(--c-body, #B9C6D8);
}
.kz-cr-p:last-child { border-bottom: 0; }
.kz-cr-p--empty { justify-items: center; grid-template-columns: 1fr; color: var(--c-gray-dim, #5C6B82); }
.kz-cr-p__n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kz-cr-p__b { color: var(--c-gold, #FFD24A); }
.kz-cr-p__x { text-align: right; color: var(--c-gray, #8295AC); }
.kz-cr-p.is-out .kz-cr-p__x { color: var(--c-good, #46D6A0); font-weight: 700; }

/* --- istorijos juosta ----------------------------------------------------- */
.kz-cr-hist { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.kz-cr-h {
  padding: 3px 9px;
  border: 1px solid var(--c-grid, #1B2840);
  font: 500 11px/1.4 var(--font-mono, monospace);
  color: var(--c-gray, #8295AC);
}
.kz-cr-h.is-lo  { color: var(--c-red, #FF3B47);  border-color: rgba(255, 59, 71, .35); }
.kz-cr-h.is-mid { color: var(--c-body, #B9C6D8); }
.kz-cr-h.is-hi  { color: var(--c-good, #46D6A0); border-color: rgba(70, 214, 160, .45); }

/* --- automatinio atsiėmimo laukas ---------------------------------------- */
.kz-cr-auto { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.kz-cr-auto label {
  font: 500 11px/1 var(--font-mono, monospace);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--c-gray, #8295AC);
}
.kz-cr-auto input { width: 92px; }

@media (max-width: 640px) {
  #kzCrCanvas { height: 230px; }
  .kz-cr-stage { min-height: 200px; }
  .kz-cr-p { grid-template-columns: 1fr auto 62px; font-size: 11px; }
}
