/* Fidesz–KDNP frakció – stíluslap
   Elrendezés: középre zárt fejléc (cím, számok, számláló), szűrők, két névrács (Fidesz, KDNP), változásnapló. */
:root{
  --bg:#f6f5f2; --surface:#ffffff; --fg:#1d1c1a; --muted:#6d6a64; --line:#e2dfd8;
  --accent:#d9620f; --kdnp:#2f5f9e; --strike:#d01f1f; --gone-bg:#ecebe7; --gone-fg:#8c8984;
  --new:#1f7a4d; --shadow:rgba(20,18,15,.18);
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --body:"Public Sans",ui-sans-serif,system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --ease:cubic-bezier(.2,.8,.2,1);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#121110; --surface:#1d1c1a; --fg:#ece9e3; --muted:#9a968e; --line:#302e2a;
  --accent:#f08a3e; --kdnp:#7fa8e0; --strike:#ff4b4b; --gone-bg:#181716; --gone-fg:#6b6862; --new:#5cc492; --shadow:rgba(0,0,0,.6); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#121110; --surface:#1d1c1a; --fg:#ece9e3; --muted:#9a968e; --line:#302e2a;
  --accent:#f08a3e; --kdnp:#7fa8e0; --strike:#ff4b4b; --gone-bg:#181716; --gone-fg:#6b6862; --new:#5cc492; --shadow:rgba(0,0,0,.6); color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.5}
[hidden]{display:none!important}
.wrap{max-width:1100px;margin:0 auto;padding-inline:20px;padding-block:32px 56px;display:flex;flex-direction:column;gap:32px}

/* ---------- Fejléc ---------- */
.hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding-block:20px 8px}
h1{font-family:var(--display);font-weight:800;font-size:clamp(36px,6.5vw,68px);line-height:1.02;margin:0;text-wrap:balance}
h1 span{color:var(--strike);display:inline-block}
.stats{display:flex;justify-content:center;gap:10px 40px;font-variant-numeric:tabular-nums}
.stat{display:flex;flex-direction:column;align-items:center;gap:2px}
.stat b{font-family:var(--display);font-size:clamp(34px,5vw,52px);font-weight:800;line-height:1}
.stat small{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.stat.red b{color:var(--strike)}
.timer output{font-family:var(--mono);font-weight:600;font-size:clamp(26px,4.5vw,42px);font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* ---------- Szűrők ---------- */
.szuro{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.szuro button{font:inherit;font-size:14px;font-weight:600;padding:9px 18px;border-radius:999px;border:1.5px solid var(--fg);background:transparent;color:var(--fg);cursor:pointer;transition:background .2s,color .2s,transform .2s var(--ease)}
.szuro button:hover{transform:translateY(-2px)}
.szuro button[aria-pressed="true"]{background:var(--fg);color:var(--bg)}
.szuro button[data-f="ki"][aria-pressed="true"]{background:var(--strike);border-color:var(--strike);color:#fff}
.szuro button:focus-visible,.card:focus-visible{outline:2px solid var(--strike);outline-offset:2px}
.szuro button em{font-style:normal;font-family:var(--mono);font-size:.82em;opacity:.7;margin-left:4px}
.reszletes{display:flex;flex-direction:column;align-items:center;margin-top:-10px}
.reszletes summary{list-style:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--muted);padding:6px 10px;display:inline-flex;align-items:center;gap:6px;user-select:none}
.reszletes summary::-webkit-details-marker{display:none}
.reszletes summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.reszletes[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.reszletes summary:hover{color:var(--fg)}
.reszletes .szuro{margin-top:8px}
.reszletes .szuro button{font-size:12.5px;padding:6px 12px;border-width:1px;font-weight:500}
.reszletes .szuro button[aria-pressed="true"]{background:var(--strike);border-color:var(--strike);color:#fff}
.ures-uzenet{text-align:center;color:var(--muted);padding:30px 0}

/* ---------- Csoportok ---------- */
section.group{display:flex;flex-direction:column;gap:16px}
.group.ures{display:none}
.ghead{position:relative;padding-bottom:6px}
.ghead h2{font-family:var(--display);font-weight:800;font-size:24px;margin:0}
.ghead::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:3px;background:var(--accent);transform-origin:left}
.ghead.kdnp::after{background:var(--kdnp)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px;perspective:1400px}

/* ---------- Kártya ---------- */
.card{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0;padding-bottom:12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);transform-style:preserve-3d;cursor:default}
.card > :not(.ph){margin-inline:12px}
.card.rejtett{display:none}
.ph{position:relative;aspect-ratio:3/4;background:var(--line);overflow:hidden;margin-bottom:4px}
.ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease),filter .6s ease}
.ph .ini{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:44px;color:var(--muted);background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 14%,var(--surface)),var(--surface))}
.kdnp-grid .ph .ini{background:linear-gradient(160deg,color-mix(in srgb,var(--kdnp) 16%,var(--surface)),var(--surface))}
.name{font-weight:700;font-size:15px;line-height:1.2;align-self:flex-start}
.chip{align-self:flex-start;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:4px;background:var(--fg);color:var(--bg)}
.chip-letartoztatva,.chip-mandatum_elveve,.chip-kizartak,.chip-jelzes{background:var(--strike);color:#fff}
.chip-orizetben{background:#1d4ed8;color:#fff}
.chip-uj{background:var(--new);color:#fff}
.chip-lead{background:var(--accent);color:#fff}
.kdnp-grid .chip-lead{background:var(--kdnp)}
.chip-jelzes{text-transform:none;letter-spacing:0;font-family:var(--body)}
.villa{margin-top:auto;padding-top:8px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:1px;font-variant-numeric:tabular-nums}
.villa b i{font-style:normal;font-size:11px;opacity:.7;margin-left:4px}
.villa small{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.villa b{font-family:var(--mono);font-size:14px;font-weight:600;white-space:nowrap}
.villa.elo b{color:var(--new)}
.villa.elo small::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--new);margin-right:5px;vertical-align:1px;animation:pont 1.2s ease-in-out infinite}
.villa.lezart b{color:var(--strike)}
@keyframes pont{50%{opacity:.25}}

/* részletek: rámutatásra / érintésre csúsznak fel a fotón */
.reszlet{position:absolute;left:0;right:0;bottom:0;z-index:4;display:flex;flex-direction:column;gap:2px;padding:28px 10px 10px;color:#fff;font-size:11.5px;line-height:1.3;
  background:linear-gradient(to top,rgba(0,0,0,.88) 55%,transparent);transform:translateY(101%);transition:transform .45s var(--ease)}
.card:hover .reszlet,.card:focus-within .reszlet{transform:none}

/* hover: enyhe 3D billenés (JS állítja a --rx/--ry értéket), kiemelés */
.card:hover{transform:translateY(-6px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));box-shadow:0 24px 40px -22px var(--shadow)}
.card:not(.gone):hover .ph img{transform:scale(1.07)}

/* kiesettek */
.card.gone{background:var(--gone-bg)}
.card.gone .name{color:var(--gone-fg);background:linear-gradient(var(--strike),var(--strike)) left 55%/100% 2px no-repeat}
.card.resigned .ph img,.card.resigned .ph .ini{filter:grayscale(1) brightness(.6) contrast(1.05)}
.card.jailed .ph img,.card.jailed .ph .ini,.card.custody .ph img,.card.custody .ph .ini,.card.revoked .ph img,.card.revoked .ph .ini{filter:grayscale(1) contrast(1.08)}
.card.jailed .ph::after,.card.custody .ph::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
   linear-gradient(to bottom,#2b2b2b 0,#5a5a5a 5px,#1c1c1c 9px,transparent 9px) top/100% 100% no-repeat,
   linear-gradient(to top,#2b2b2b 0,#5a5a5a 5px,#1c1c1c 9px,transparent 9px) bottom/100% 100% no-repeat,
   repeating-linear-gradient(to right,transparent 0 12px,#151515 12px,#7a7a7a 15px,#262626 19px,transparent 19px 27px);
  box-shadow:inset 0 0 34px rgba(0,0,0,.6)}
.card.custody .ph::after{opacity:.45}

/* ---------- Státusz-rátétek ---------- */
.fx{position:absolute;pointer-events:none;z-index:3}
.fx-badge{top:8px;right:8px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(10,10,10,.72);backdrop-filter:blur(4px);box-shadow:0 2px 10px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,255,255,.12)}
.fx-badge svg{width:17px;height:17px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fx-badge.fx-letartoztatva,.fx-badge.fx-mandatum_elveve,.fx-badge.fx-kizartak{background:rgba(225,6,0,.92)}
.fx-badge.fx-orizetben{background:rgba(29,78,216,.92)}
.fx-lightbar{top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#e10600 0 50%,#2563eb 50% 100%);background-size:200% 100%;animation:lb 1.6s ease-in-out infinite}
@keyframes lb{0%,100%{background-position:0 0;box-shadow:0 0 14px 2px rgba(225,6,0,.6)}50%{background-position:100% 0;box-shadow:0 0 14px 2px rgba(37,99,235,.6)}}
.fx-wash{inset:0;z-index:2;mix-blend-mode:soft-light;background:radial-gradient(120% 70% at 0 0,rgba(225,6,0,.9),transparent 60%),radial-gradient(120% 70% at 100% 0,rgba(37,99,235,.9),transparent 60%);animation:washx 1.6s ease-in-out infinite}
@keyframes washx{0%,100%{opacity:.55}50%{opacity:.2}}
.fx-sweep{inset:0;z-index:2;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.22) 50%,transparent 65%);background-size:250% 100%;background-position:150% 0}
.fx-stamp{left:50%;top:50%;white-space:nowrap;text-align:center;font:700 11px/1.15 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(225,6,0,.9);padding:6px 10px;border-radius:3px;
  box-shadow:0 0 0 2px rgba(255,255,255,.85),0 0 0 4px rgba(225,6,0,.9),0 6px 18px rgba(0,0,0,.35);transform:translate(-50%,-50%) rotate(-12deg)}
.fx-shine{inset:0;z-index:2;background:linear-gradient(110deg,transparent 40%,rgba(255,255,255,.55) 50%,transparent 60%);background-size:250% 100%;background-position:150% 0}

/* ---------- Orbán Viktor kártya ---------- */
.card.kiemelt-k{background:#0a0a0a;border-color:#0a0a0a;color:#fff}
.card.kiemelt-k .villa{border-top-color:#2c2c2c}
.card.kiemelt-k .villa small{color:#9a9a9a}
.card.kiemelt-k .villa b{color:#ff4b4b}
.k-tv{position:absolute;inset:0;z-index:1;mix-blend-mode:soft-light;background:linear-gradient(160deg,rgba(80,170,255,.75),rgba(30,200,110,.55));animation:tv 2.6s steps(1) infinite}
@keyframes tv{0%{opacity:.55}12%{opacity:.8}20%{opacity:.5}47%{opacity:.85}55%{opacity:.6}78%{opacity:.75}90%{opacity:.5}}
.fx-meccs{top:8px;right:8px;font:600 11px var(--mono);background:#1f7a3a;color:#fff;border-radius:4px;padding:3px 7px;display:inline-flex;gap:5px;align-items:center}
.fx-meccs b::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#ff3b30;margin-right:4px;animation:pont 1s steps(1) infinite}
.chip-meccs{display:inline-flex;align-items:center;gap:6px;background:#1f7a3a;color:#fff;text-transform:none;letter-spacing:0;font-family:var(--body);font-size:12px}
.k-labda{width:15px;height:15px;fill:#fff;stroke:#0a0a0a;stroke-width:1.2;animation:pattog .5s cubic-bezier(.3,0,.7,1) infinite alternate,forog 2s linear infinite}
.k-labda path{fill:#0a0a0a}
@keyframes pattog{to{transform:translateY(-3px)}}
@keyframes forog{to{rotate:360deg}}

/* ---------- Változásnapló, lábléc ---------- */
.log{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.log h2{font-family:var(--display);font-size:22px;margin:16px 0 8px}
.row{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.row time{font-family:var(--mono);font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.row p{margin:0;min-width:0}
.row .x{color:var(--strike);font-weight:600}.row .p{color:var(--new);font-weight:600}
footer{font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;gap:6px}
footer a{color:inherit}
footer ul{margin:0;padding-left:18px;columns:2 280px}

@media (max-width:520px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .stats{gap:8px 14px}.stat small{font-size:10px;letter-spacing:.04em}.stat b{font-size:30px}
  .szuro{gap:6px}.szuro button{padding:8px 13px;font-size:13px}
  .row{grid-template-columns:1fr;gap:2px}
}

/* =====================================================================
   FILMES ANIMÁCIÓK
   A kártyák görgetésre „esnek be” (JS: .lathato osztály + --d késleltetés).
   Ha nincs JS, minden azonnal látszik.
   ===================================================================== */
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes maskup{from{opacity:0;transform:translateY(60%);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes sweep{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes drop{0%{opacity:0;transform:translateY(60px) rotateX(-28deg) scale(.92);filter:blur(8px)}60%{opacity:1;filter:blur(0)}100%{opacity:1;transform:none;filter:none}}
@keyframes flash{0%{opacity:0}15%{opacity:.85}100%{opacity:0}}
@keyframes desat{from{filter:none}to{filter:grayscale(1) brightness(.6) contrast(1.05)}}
@keyframes grayin{from{filter:none}to{filter:grayscale(1) contrast(1.08)}}
@keyframes slam{0%{transform:translateY(-105%)}70%{transform:translateY(3%)}85%{transform:translateY(-1.5%)}100%{transform:none}}
@keyframes shake{0%,100%{transform:none}20%{transform:translate(-4px,2px) rotate(-.6deg)}40%{transform:translate(4px,-2px) rotate(.6deg)}60%{transform:translate(-3px,1px)}80%{transform:translate(2px,-1px)}}
@keyframes strike{from{background-size:0 2px}to{background-size:100% 2px}}
@keyframes stampin{0%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scale(2.4)}70%{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(.94)}100%{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(1)}}
@keyframes badgein{from{opacity:0;transform:scale(.4) rotate(-30deg)}to{opacity:1;transform:none}}
@keyframes shine{from{background-position:150% 0}to{background-position:-50% 0}}
@keyframes sweep2{0%{background-position:150% 0}45%,100%{background-position:-50% 0}}
@keyframes ticker{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* fejléc */
.hero h1{animation:maskup 1s var(--ease) both}
.hero h1 span{animation:maskup 1s .18s var(--ease) both}
.hero .stats{animation:rise .8s .35s var(--ease) both}
.hero .timer{animation:rise .8s .5s var(--ease) both}
.szuro{animation:rise .7s .6s var(--ease) both}
.ghead::after{animation:sweep 1.1s .2s var(--ease) both}

/* kártyák belépése */
.js-anim .card{opacity:0}
.js-anim .card.lathato{opacity:1;animation:drop .9s var(--ease) var(--d,0ms) backwards}
/* amíg nem látszik, minden belső animáció áll (a „both” kitöltés miatt a kezdőállapotban vár) */
.js-anim .card:not(.lathato),.js-anim .card:not(.lathato) *,.js-anim .card:not(.lathato) *::before,.js-anim .card:not(.lathato) *::after{animation-play-state:paused!important}

/* kiesett: villanás → elszürkülés → áthúzás */
.card.gone .ph::before{content:"";position:absolute;inset:0;z-index:3;background:#fff;opacity:0;pointer-events:none;animation:flash .7s ease-out calc(var(--d,0ms) + .55s) both}
.card.resigned .ph img,.card.resigned .ph .ini{animation:desat 1.2s ease calc(var(--d,0ms) + .6s) both}
.card.jailed .ph img,.card.jailed .ph .ini,.card.custody .ph img,.card.custody .ph .ini,.card.revoked .ph img,.card.revoked .ph .ini{animation:grayin .8s ease calc(var(--d,0ms) + .6s) both}
.card.gone .name{animation:strike .6s var(--ease) calc(var(--d,0ms) + 1.3s) both}
/* letartóztatva: a rács lecsapódik, a kártya megrázkódik */
.card.jailed .ph::after{animation:slam .6s cubic-bezier(.6,0,.4,1) calc(var(--d,0ms) + .85s) both}
.card.jailed.lathato{animation:drop .9s var(--ease) var(--d,0ms) backwards,shake .45s ease calc(var(--d,0ms) + 1.3s)}
.card.jailed .fx-sweep{animation:sweep2 5s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + 2.2s) infinite}
/* őrizetben: halványabb rács ereszkedik le, villog a fénysáv */
.card.custody .ph::after{animation:slam .8s cubic-bezier(.6,0,.4,1) calc(var(--d,0ms) + .85s) both}
/* mandátum elvéve: pecsét csapódik */
.fx-stamp{animation:stampin .5s cubic-bezier(.3,0,.2,1) calc(var(--d,0ms) + 1s) both}
.card.revoked.lathato{animation:drop .9s var(--ease) var(--d,0ms) backwards,shake .35s ease calc(var(--d,0ms) + 1.38s)}
/* jelvények, új tagok fényvillanása */
.fx-badge{animation:badgein .5s cubic-bezier(.2,.8,.2,1.3) calc(var(--d,0ms) + 1.1s) both}
.fx-shine{animation:shine 1.4s ease-out calc(var(--d,0ms) + .8s) both}
.villa b{animation:ticker .5s var(--ease) calc(var(--d,0ms) + .7s) both}

/* Csökkentett mozgásnál is maradnak az animációk (a tulajdonos kérésére), csak a folytonosak lassulnak */
@media (prefers-reduced-motion:reduce){.fx-lightbar,.fx-wash,.k-tv{animation-duration:4s!important}}

/* =====================================================================
   ISMÉTLŐDŐ ANIMÁCIÓK (a belépés után folyamatosan, ciklikusan futnak)
   ===================================================================== */
/* Orbán Viktor: pattogó focilabda a fotón + a címkében */
.fx-labda{left:10px;bottom:10px;width:30px;height:46px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}
.fx-labda svg{width:26px;height:26px;fill:#fff;stroke:#111;stroke-width:1.1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4));animation:labda 1.1s cubic-bezier(.45,0,.55,1) infinite}
.fx-labda svg path{fill:#111}
.fx-labda svg path+path{fill:none;stroke:#111;stroke-width:1.1}
.fx-labda i{display:block;width:22px;height:5px;margin-top:2px;border-radius:50%;background:rgba(0,0,0,.45);animation:arnyek 1.1s cubic-bezier(.45,0,.55,1) infinite}
@keyframes labda{0%,100%{transform:translateY(0) scale(1.18,.82)}10%{transform:translateY(-3px) scale(.95,1.05)}50%{transform:translateY(-20px) rotate(180deg)}90%{transform:translateY(-3px) rotate(340deg) scale(.95,1.05)}}
@keyframes arnyek{0%,100%{transform:scale(1);opacity:.55}50%{transform:scale(.45);opacity:.2}}
.k-labda{animation:labdakicsi .9s cubic-bezier(.45,0,.55,1) infinite!important;overflow:visible}
@keyframes labdakicsi{0%,100%{transform:translateY(1px) scale(1.12,.88)}50%{transform:translateY(-6px) rotate(180deg)}}
.chip-meccs{overflow:visible}

/* letartóztatva: a rács 6 mp-enként felemelkedik és újra lecsapódik, a kártya megrázkódik */
@keyframes slamloop{0%{transform:translateY(-105%)}7%{transform:translateY(3%)}10%{transform:translateY(-1.5%)}13%,82%{transform:none}92%,100%{transform:translateY(-105%)}}
@keyframes shakeloop{0%,6%,16%,100%{transform:none}8%{transform:translate(-4px,2px) rotate(-.7deg)}10%{transform:translate(4px,-2px) rotate(.7deg)}12%{transform:translate(-3px,1px)}14%{transform:translate(2px,-1px)}}
.card.jailed .ph::after{animation:slamloop 6s cubic-bezier(.6,0,.4,1) calc(var(--d,0ms) + var(--r,0ms) + .6s) infinite both}
.card.jailed.lathato .ph{animation:shakeloop 6s ease calc(var(--d,0ms) + var(--r,0ms) + .6s) infinite}
/* őrizetben: a félrács lassabban ereszkedik le és fel */
.card.custody .ph::after{animation:slamloop 8s cubic-bezier(.6,0,.4,1) calc(var(--d,0ms) + var(--r,0ms) + .6s) infinite both}
/* mandátum elvéve: a pecsét 7 mp-enként újra odacsap */
@keyframes stamploop{0%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scale(2.4)}6%{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(.94)}9%,84%{opacity:1;transform:translate(-50%,-50%) rotate(-12deg) scale(1)}94%,100%{opacity:0;transform:translate(-50%,-50%) rotate(-12deg) scale(1.1)}}
@keyframes thumploop{0%,5%,12%,100%{transform:none}7%{transform:scale(.95)}}
.fx-stamp{animation:stamploop 7s cubic-bezier(.3,0,.2,1) calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.card.revoked.lathato .ph{animation:thumploop 7s ease calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite}
/* kiesettek: időnként fehér villanás, a névvonal újrarajzolódik */
@keyframes flashloop{0%,100%{opacity:0}4%{opacity:.75}14%{opacity:0}}
@keyframes strikeloop{0%{background-size:0 2px}10%,88%{background-size:100% 2px}96%,100%{background-size:0 2px}}
.card.gone .ph::before{animation:flashloop 6s ease-out calc(var(--d,0ms) + var(--r,0ms) + .5s) infinite both}
.card.gone .name{animation:strikeloop 6s var(--ease) calc(var(--d,0ms) + var(--r,0ms) + .9s) infinite both}
/* jelvények: lassú „lélegzés” */
@keyframes badgeloop{0%,100%{transform:scale(1)}50%{transform:scale(1.14)}}
.fx-badge{animation:badgein .5s cubic-bezier(.2,.8,.2,1.3) calc(var(--d,0ms) + 1s) both,badgeloop 2.4s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + 1.5s) infinite}
/* új tagok: 5 mp-enként fényvillanás */
@keyframes shineloop{0%{background-position:150% 0}25%,100%{background-position:-50% 0}}
.fx-shine{animation:shineloop 5s ease-out calc(var(--d,0ms) + var(--r,0ms) + .6s) infinite both}
/* letartóztatottak rácsán végigsöprő fény */
.card.jailed .fx-sweep{animation:sweep2 6s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + 1.6s) infinite}

/* Mentelmi jog felfüggesztve: a pajzs megreped, kettéválik, majd újra összeáll (ciklikusan) */
.fx-pajzs{right:8px;bottom:8px;width:34%;display:flex;flex-direction:column;align-items:center;gap:4px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.45))}
.fx-pajzs svg{width:100%;overflow:visible}
.fx-pajzs .p-test{fill:rgba(255,255,255,.92);stroke:#c9a227;stroke-width:3;transform-origin:50% 50%;animation:pajzs 6s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-pajzs .p-repedes{fill:none;stroke:#d01f1f;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:70;stroke-dashoffset:70;animation:reped 6s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-pajzs span{font:700 9px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#fff;background:#d01f1f;padding:2px 6px;border-radius:3px;animation:pajzsfelirat 6s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both;white-space:nowrap}
@keyframes pajzs{0%{opacity:0;transform:scale(.6)}8%,30%{opacity:1;transform:none}36%{transform:translateX(-2px) rotate(-3deg)}40%{transform:translateX(2px) rotate(3deg)}44%,70%{opacity:1;transform:none}80%,100%{opacity:0;transform:scale(1.15)}}
@keyframes reped{0%,30%{stroke-dashoffset:70}44%,72%{stroke-dashoffset:0}80%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes pajzsfelirat{0%,40%{opacity:0;transform:translateY(4px)}48%,72%{opacity:1;transform:none}80%,100%{opacity:0}}

/* Lemondott: lemondólevél csúszik ki a borítékból és elrepül (ciklikusan) */
.fx-level{left:50%;bottom:14%;width:58%;transform:translateX(-50%)}
.boritek{position:relative;width:100%;aspect-ratio:3/2;animation:boritek 6s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .6s) infinite both}
.boritek .elo{position:absolute;inset:0;z-index:2;background:linear-gradient(to top right,#efe6d2 50%,transparent 50%) left/50.5% 100% no-repeat,linear-gradient(to top left,#e7dcc3 50%,transparent 50%) right/50.5% 100% no-repeat;border-radius:3px}
.boritek::before{content:"";position:absolute;inset:0;background:#d9cdb0;border-radius:3px;box-shadow:0 6px 16px rgba(0,0,0,.4)}
.boritek .fedel{position:absolute;left:0;right:0;top:0;height:55%;z-index:3;background:#e3d7bb;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;animation:fedel 6s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .6s) infinite both}
.boritek .lap{position:absolute;left:8%;right:8%;top:8%;height:120%;z-index:1;background:#fff;border-radius:2px;padding:6% 8%;display:flex;flex-direction:column;gap:5%;box-shadow:0 2px 8px rgba(0,0,0,.25);animation:lap 6s cubic-bezier(.5,0,.3,1) calc(var(--d,0ms) + var(--r,0ms) + .6s) infinite both}
.boritek .lap b{font:800 9px/1 var(--display);color:#d01f1f;text-transform:uppercase;letter-spacing:.06em}
.boritek .lap i{display:block;height:2px;background:#c9c4b8;border-radius:1px}
.boritek .lap i:nth-of-type(3){width:60%}
.boritek .lap em{align-self:flex-end;font:italic 8px/1 Georgia,serif;color:#1d4ed8;margin-top:auto}
@keyframes boritek{0%{opacity:0;transform:translateY(20px)}8%,85%{opacity:1;transform:none}95%,100%{opacity:0;transform:translateY(10px)}}
@keyframes fedel{0%,14%{transform:rotateX(0)}22%,80%{transform:rotateX(180deg);z-index:0}88%,100%{transform:rotateX(0)}}
@keyframes lap{0%,22%{transform:translateY(0);opacity:1}38%{transform:translateY(-85%)}46%{transform:translateY(-85%) rotate(-4deg)}62%{transform:translate(160%,-220%) rotate(28deg);opacity:1}63%,100%{transform:translate(160%,-220%);opacity:0}}

/* Új tagok: belépőkártya lóg be zsinóron, kileng, majd felhúzódik (ciklikusan) */
.fx-belepo{top:0;right:10px;width:30%;display:flex;flex-direction:column;align-items:center;transform-origin:50% 0;animation:belepo 6s cubic-bezier(.4,0,.3,1) calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-belepo .zsinor{display:block;width:3px;height:28px;background:linear-gradient(#1f7a4d,#2fa36b);border-radius:2px}
.fx-belepo .kartya{width:100%;aspect-ratio:3/4.2;background:#fff;border-radius:5px;box-shadow:0 6px 14px rgba(0,0,0,.35);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative;overflow:hidden;padding:6px 4px}
.fx-belepo .csik{position:absolute;top:0;left:0;right:0;height:18%;background:#1f7a4d}
.fx-belepo .kartya::before{content:"";position:absolute;top:5%;left:50%;width:22%;height:6%;margin-left:-11%;border-radius:3px;background:#fff;z-index:1}
.fx-belepo b{font:800 15px/1 var(--display);color:#1f7a4d;margin-top:12%}
.fx-belepo small{font:600 7px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#555}
.fx-belepo .vonalkod{width:70%;height:12%;margin-top:4px;background:repeating-linear-gradient(90deg,#222 0 1px,transparent 1px 3px,#222 3px 5px,transparent 5px 6px)}
@keyframes belepo{0%{transform:translateY(-110%) rotate(0)}12%{transform:translateY(4%) rotate(9deg)}20%{transform:translateY(0) rotate(-6deg)}28%{transform:rotate(4deg)}36%{transform:rotate(-2deg)}44%,80%{transform:rotate(0)}90%,100%{transform:translateY(-110%)}}

/* Mentelmi jog felfüggesztve: piros pecsét csapódik a fotóra (ciklikusan) */
.fx-stamp-mentelmi{font-size:9.5px;letter-spacing:.1em;padding:6px 8px;top:62%}


/* Lemondott: repülőgép húz el a fotó felett kondenzcsíkkal (ciklikusan) */
.fx-repulo{left:0;top:0;width:100%;height:100%;overflow:hidden}
.fx-repulo svg{position:absolute;width:34%;left:0;top:0;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45));animation:repul 6s cubic-bezier(.45,0,.4,1) calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-repulo .kondi{position:absolute;left:0;top:0;width:150%;height:4px;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.9));transform-origin:100% 50%;animation:kondi 6s cubic-bezier(.45,0,.4,1) calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
@keyframes repul{0%{transform:translate(-40%,280%) rotate(10deg) scale(.7);opacity:0}6%{opacity:1}45%{transform:translate(110%,120%) rotate(0deg) scale(1)}70%{transform:translate(260%,-60%) rotate(-12deg) scale(.6);opacity:1}72%,100%{transform:translate(260%,-60%) scale(.6);opacity:0}}
@keyframes kondi{0%{transform:translate(-160%,780%) rotate(-28deg);opacity:0}10%{opacity:.85}45%{transform:translate(-75%,520%) rotate(-28deg);opacity:.85}70%{transform:translate(-10%,40%) rotate(-28deg);opacity:.6}80%,100%{opacity:0;transform:translate(-10%,40%) rotate(-28deg)}}

/* Frakcióvezető: megafon, hanghullámokkal (ciklikusan) */
.fx-megafon{left:8px;top:8px;width:36%;filter:drop-shadow(0 3px 6px rgba(0,0,0,.45));transform-origin:20% 60%;animation:megafon 3s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .9s) infinite both}
.fx-megafon svg{width:100%;overflow:visible}
.fx-megafon .hull{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;opacity:0;animation:hull 1.2s ease-out calc(var(--d,0ms) + var(--r,0ms) + .9s) infinite}
.kdnp-grid .fx-megafon .hull{stroke:var(--kdnp)}
.fx-megafon .h2{animation-delay:calc(var(--d,0ms) + 1.1s)}.fx-megafon .h3{animation-delay:calc(var(--d,0ms) + 1.3s)}
@keyframes hull{0%{opacity:0;transform:translateX(-3px)}30%{opacity:1}100%{opacity:0;transform:translateX(4px)}}
@keyframes megafon{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg) scale(1.05)}}

/* ===== Teljesítmény és élet ===== */
/* képernyőn kívüli kártyák ismétlődő animációi szünetelnek (sok néző, telefon, akku) */
.js-anim .card.lathato:not(.kepen) *,.js-anim .card.lathato:not(.kepen) *::before,.js-anim .card.lathato:not(.kepen) *::after,.js-anim .card.lathato:not(.kepen) .ph{animation-play-state:paused!important}
.fx svg,.fx-stamp,.boritek .lap,.fx-belepo,.card.jailed .ph::after{will-change:transform}

/* fejléc: a piros „kiesett” szám időnként felizzik, a piros cím alcímen fény fut végig */
@keyframes izzas{0%,70%,100%{text-shadow:none;transform:none}80%{text-shadow:0 0 18px color-mix(in srgb,var(--strike) 70%,transparent);transform:scale(1.08)}}
.stat.red b{display:inline-block;animation:izzas 4s ease-in-out 2.5s infinite}
@keyframes cimfeny{0%,60%{background-position:150% 0}100%{background-position:-50% 0}}
.hero h1 span{background:linear-gradient(105deg,var(--strike) 40%,#ff9a8f 50%,var(--strike) 60%) 150% 0/250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:maskup 1s .18s var(--ease) both,cimfeny 7s ease-in-out 2s infinite}

/* ===== Lemondott: privát repülő húz el (ciklikusan) ===== */
.fx-jet{left:0;top:0;width:100%;height:100%;overflow:hidden}
.fx-jet svg{position:absolute;left:0;top:30%;width:62%;filter:drop-shadow(0 6px 8px rgba(0,0,0,.45));animation:jet 7s cubic-bezier(.4,0,.35,1) calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-jet .kondi{position:absolute;left:0;height:3px;width:0;border-radius:2px;background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.85));animation:kondi2 7s cubic-bezier(.4,0,.35,1) calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-jet .k1{top:calc(30% + 13%)}.fx-jet .k2{top:calc(30% + 16%);opacity:.7}
@keyframes jet{0%{transform:translate(-110%,60%) rotate(-4deg);opacity:0}6%{opacity:1}40%{transform:translate(30%,0) rotate(-6deg)}62%{transform:translate(120%,-90%) rotate(-14deg) scale(.8);opacity:1}64%,100%{transform:translate(120%,-90%) scale(.8);opacity:0}}
@keyframes kondi2{0%{width:0;opacity:0;transform:translateY(60%) rotate(-4deg)}10%{opacity:.9}40%{width:60%;transform:translateY(0) rotate(-6deg)}62%{width:110%;opacity:.7;transform:translateY(-120%) rotate(-14deg)}80%,100%{width:110%;opacity:0;transform:translateY(-120%) rotate(-14deg)}}

/* ===== Mentelmi jog: üvegbura megreped, szilánkokra hullik, majd újra összeáll ===== */
.fx-bura{inset:0;z-index:3}
.fx-bura .uveg{position:absolute;inset:6px;border-radius:50% 50% 12px 12px / 30% 30% 12px 12px;border:2px solid rgba(255,255,255,.75);
  background:linear-gradient(120deg,rgba(255,255,255,.45) 0 12%,rgba(255,255,255,.08) 22%,rgba(180,210,255,.12) 60%,rgba(255,255,255,.3) 100%);
  box-shadow:inset 0 0 22px rgba(255,255,255,.35),0 0 0 1px rgba(0,0,0,.1);animation:bura 7s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-bura .repedes{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);overflow:visible}
.fx-bura .repedes path{fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 2px rgba(0,0,0,.6));stroke-dasharray:80;stroke-dashoffset:80;animation:reped2 7s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-bura .szilank{position:absolute;width:22%;aspect-ratio:1;background:linear-gradient(135deg,rgba(255,255,255,.75),rgba(200,220,255,.25));border:1px solid rgba(255,255,255,.8);opacity:0;animation:szilank 7s cubic-bezier(.5,0,.8,.6) calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-bura .s1{left:18%;top:30%;clip-path:polygon(0 0,100% 30%,40% 100%);--tx:-30px;--rot:-120deg}
.fx-bura .s2{left:48%;top:38%;clip-path:polygon(20% 0,100% 60%,0 100%);--tx:20px;--rot:160deg}
.fx-bura .s3{left:30%;top:56%;clip-path:polygon(0 30%,100% 0,70% 100%);--tx:-12px;--rot:90deg}
.fx-bura .s4{left:60%;top:60%;clip-path:polygon(0 0,100% 40%,30% 100%);--tx:28px;--rot:-150deg}
.fx-bura .s5{left:42%;top:20%;clip-path:polygon(50% 0,100% 100%,0 80%);--tx:6px;--rot:200deg}
.fx-bura .felirat{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);white-space:nowrap;font:700 9.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(10,10,10,.75);padding:3px 7px;border-radius:3px;
  background-image:linear-gradient(#d01f1f,#d01f1f);background-repeat:no-repeat;background-position:0 55%;background-size:0 2px;animation:felirat 7s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
@keyframes bura{0%{opacity:0;transform:scale(1.06)}8%,36%{opacity:1;transform:none}40%{transform:translateX(-2px)}42%{transform:translateX(2px)}44%{opacity:1}48%,88%{opacity:0;transform:scale(1.02)}100%{opacity:0}}
@keyframes reped2{0%,30%{stroke-dashoffset:80;opacity:1}42%{stroke-dashoffset:0;opacity:1}48%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes szilank{0%,43%{opacity:0;transform:none}45%{opacity:1;transform:none}70%{opacity:0;transform:translate(var(--tx),120px) rotate(var(--rot))}100%{opacity:0;transform:translate(var(--tx),120px) rotate(var(--rot))}}
@keyframes felirat{0%,8%{opacity:0}14%,40%{opacity:1;background-size:0 2px}50%,86%{opacity:1;background-size:100% 2px}94%,100%{opacity:0;background-size:100% 2px}}

/* ===== Frakcióvezető: reflektorfény söpör rá, kapitányi karszalag, csillogás ===== */
.fx-reflektor{inset:-20% -40% 0;z-index:2;mix-blend-mode:soft-light;background:conic-gradient(from 180deg at 50% 0,transparent 0 160deg,rgba(255,240,200,.95) 172deg,rgba(255,240,200,.95) 188deg,transparent 200deg);
  transform-origin:50% 0;animation:reflektor 5s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
@keyframes reflektor{0%{transform:rotate(-28deg);opacity:0}15%{opacity:1}45%,70%{transform:rotate(0);opacity:1}100%{transform:rotate(26deg);opacity:0}}
.fx-kapitany{left:8px;bottom:8px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#f5d76e,#c9a227);box-shadow:0 0 0 2px #fff,0 4px 10px rgba(0,0,0,.4);
  animation:kapitany 5s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-kapitany span{font:800 16px/1 var(--display);color:#1d1c1a}
.kdnp-grid .fx-kapitany{background:linear-gradient(145deg,#cfe0ff,#7fa8e0)}
@keyframes kapitany{0%{transform:scale(0) rotate(-90deg)}12%{transform:scale(1.2) rotate(10deg)}18%,85%{transform:none}92%,100%{transform:scale(0)}}
.fx-csillag{inset:0;z-index:3}
.fx-csillag i{position:absolute;width:10px;height:10px;background:#fff8d6;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);filter:drop-shadow(0 0 4px #ffd84d);opacity:0;animation:csillag 5s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + 1.6s) infinite}
.fx-csillag i:nth-child(1){left:22%;top:16%}.fx-csillag i:nth-child(2){left:70%;top:24%;animation-delay:calc(var(--d,0ms) + var(--r,0ms) + 1.9s)}
.fx-csillag i:nth-child(3){left:58%;top:8%;width:7px;height:7px;animation-delay:calc(var(--d,0ms) + var(--r,0ms) + 2.2s)}.fx-csillag i:nth-child(4){left:36%;top:30%;width:6px;height:6px;animation-delay:calc(var(--d,0ms) + var(--r,0ms) + 2.5s)}
@keyframes csillag{0%,100%{opacity:0;transform:scale(.3) rotate(0)}12%{opacity:1;transform:scale(1) rotate(45deg)}24%{opacity:0;transform:scale(.4) rotate(90deg)}}

/* ===== „Hol a 8 milliárd?” – bankjegyek repkednek el, kérdőjel lüktet ===== */
.fx-kerdes{inset:0;z-index:3;overflow:hidden}
.fx-kerdes .penz{position:absolute;bottom:-20%;width:34%;aspect-ratio:2.1;border-radius:2px;background:
  radial-gradient(circle at 50% 50%,rgba(255,255,255,.55) 0 18%,transparent 19%),
  linear-gradient(90deg,#3e7d4f 0 8%,#8fc39b 8% 92%,#3e7d4f 92%);box-shadow:0 2px 5px rgba(0,0,0,.35);opacity:0;
  animation:penz 4.5s ease-in calc(var(--d,0ms) + var(--r,0ms) + var(--k,0s) + .8s) infinite}
.fx-kerdes .p1{left:6%;--k:0s;--x:-30px;--f:-220deg}.fx-kerdes .p2{left:40%;--k:.7s;--x:24px;--f:200deg}
.fx-kerdes .p3{left:62%;--k:1.4s;--x:40px;--f:-160deg}.fx-kerdes .p4{left:22%;--k:2.1s;--x:-10px;--f:260deg}.fx-kerdes .p5{left:52%;--k:2.8s;--x:-36px;--f:-240deg}
@keyframes penz{0%{opacity:0;transform:translateY(0) rotate(0)}10%{opacity:1}100%{opacity:0;transform:translate(var(--x),-340%) rotate(var(--f))}}
.fx-kerdes b{position:absolute;right:10px;top:6px;font:800 44px/1 var(--display);color:#fff;text-shadow:0 3px 10px rgba(0,0,0,.55),0 0 0 #000;-webkit-text-stroke:2px #d01f1f;animation:kerdojel 1.6s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite}
@keyframes kerdojel{0%,100%{transform:rotate(-8deg) scale(1)}50%{transform:rotate(8deg) scale(1.15)}}
.fx-kerdes span{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);white-space:nowrap;font:800 12px var(--display);color:#fff;background:#d01f1f;padding:4px 9px;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.4);animation:kerdesfel 3s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite}
@keyframes kerdesfel{0%,100%{transform:translateX(-50%) scale(1)}50%{transform:translateX(-50%) scale(1.08)}}

/* ===== Mentelmi jog: kör alakú piros pecsét csapódik a fotóra (ciklikusan) ===== */
.fx-pecset{left:50%;top:50%;width:72%;aspect-ratio:1;margin-left:-36%;margin-top:-36%;mix-blend-mode:multiply;opacity:0;
  filter:drop-shadow(0 0 1px rgba(208,31,31,.6));animation:pecset 7s cubic-bezier(.3,0,.2,1) calc(var(--d,0ms) + var(--r,0ms) + .9s) infinite both}
.fx-pecset svg{width:100%;height:100%;transform:rotate(-14deg);overflow:visible}
.fx-pecset::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,transparent 55%,rgba(255,255,255,.35) 56%,transparent 70%);mix-blend-mode:screen;opacity:.6}
@keyframes pecset{0%{opacity:0;transform:scale(2.2) rotate(8deg)}5%{opacity:.95;transform:scale(.96)}7%,84%{opacity:.92;transform:scale(1)}92%,100%{opacity:0;transform:scale(1.05)}}
.card:has(.fx-pecset).lathato .ph{animation:thumploop 7s ease calc(var(--d,0ms) + var(--r,0ms) + .9s) infinite}
@media (prefers-color-scheme:dark){.fx-pecset{mix-blend-mode:normal}}

/* ===== Piros árnyalatú kártyák: lemondott, frakcióvezető, mentelmi jog felfüggesztve ===== */
.card.piros{background:color-mix(in srgb,var(--strike) 9%,var(--surface));border-color:color-mix(in srgb,var(--strike) 35%,var(--line))}
.card.piros.gone{background:color-mix(in srgb,var(--strike) 12%,var(--gone-bg))}
.card.piros .ph::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(208,31,31,.18),rgba(208,31,31,.42));mix-blend-mode:multiply}
.card.piros.gone .ph::before{background:linear-gradient(180deg,rgba(208,31,31,.35),rgba(140,10,10,.6));mix-blend-mode:multiply;animation:none}
.card.piros .villa{border-top-color:color-mix(in srgb,var(--strike) 30%,var(--line))}
.card.piros .name{color:color-mix(in srgb,var(--strike) 55%,var(--fg))}
.card.piros.gone .name{color:var(--strike)}
.card.piros:hover{box-shadow:0 24px 40px -22px color-mix(in srgb,var(--strike) 70%,transparent)}
/* a lemondottaknál a szürke helyett vörösbe hajló kép */

/* ===== Lemondott: lemondó nyilatkozat csúszik be, a toll aláírja (ciklikusan) ===== */
.fx-alairas{left:0;right:0;bottom:0;height:46%;overflow:hidden}
.fx-alairas .papir{position:absolute;left:8%;right:8%;bottom:-4%;height:100%;background:#fbfaf6;border-radius:3px 3px 0 0;box-shadow:0 -6px 18px rgba(0,0,0,.35);padding:7% 8%;display:flex;flex-direction:column;gap:5%;
  transform:translateY(110%);animation:papir 8s cubic-bezier(.2,.8,.2,1) calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-alairas .papir span{font:700 7px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#1d1c1a}
.fx-alairas .papir i{display:block;height:1.5px;background:#d8d4c8;border-radius:1px;width:90%}
.fx-alairas .papir i:nth-of-type(3){width:55%}
.fx-alairas .sig{position:absolute;left:8%;bottom:8%;width:70%;overflow:visible}
.fx-alairas .sig path{fill:none;stroke:#1d3f8f;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:420;stroke-dashoffset:420;animation:sig 8s linear calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-alairas .toll{position:absolute;width:20%;left:8%;bottom:10%;transform-origin:15% 85%;opacity:0;animation:toll 8s linear calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
@keyframes papir{0%{transform:translateY(110%)}10%,80%{transform:translateY(0)}92%,100%{transform:translateY(110%)}}
@keyframes sig{0%,16%{stroke-dashoffset:420}52%,80%{stroke-dashoffset:0}81%,100%{stroke-dashoffset:0;opacity:0}}
@keyframes toll{0%,12%{opacity:0;transform:translate(0,-30%) rotate(-10deg)}16%{opacity:1;transform:translate(0,0) rotate(0)}24%{transform:translate(90%,-18%) rotate(-6deg)}32%{transform:translate(180%,6%) rotate(4deg)}40%{transform:translate(270%,-14%) rotate(-5deg)}52%{opacity:1;transform:translate(330%,2%) rotate(0)}58%,100%{opacity:0;transform:translate(360%,-40%) rotate(10deg)}}
.card.resigned .ph img{transform-origin:50% 30%;animation:desat 1.2s ease calc(var(--d,0ms) + .6s) both,settle 8s ease-out both}

/* ===== Frakcióvezető: arany sarokszalag csúszik be, fény fut rajta, arany keret lüktet ===== */
.fx-szalag{inset:0;overflow:hidden;z-index:4}
.fx-szalag span{position:absolute;right:-34%;top:11%;width:110%;padding:5px 0;text-align:center;font:800 9.5px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#1d1c1a;
  background:linear-gradient(90deg,#b8891c,#f1d36a 40%,#c99d2a 60%,#f5dd82);box-shadow:0 3px 8px rgba(0,0,0,.35);transform:rotate(45deg) translateX(120%);
  animation:szalag 6s cubic-bezier(.2,.8,.2,1) calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite both}
.fx-szalag span::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 40%,rgba(255,255,255,.75) 50%,transparent 60%);background-size:250% 100%;animation:szalagfeny 3s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + 1.6s) infinite}
.kdnp-grid .fx-szalag span{background:linear-gradient(90deg,#2f5f9e,#8fb4e6 40%,#3f73b8 60%,#a9c7ef);color:#fff}
@keyframes szalag{0%{transform:rotate(45deg) translateX(120%)}10%,88%{transform:rotate(45deg) translateX(0)}96%,100%{transform:rotate(45deg) translateX(120%)}}
@keyframes szalagfeny{0%,60%{background-position:150% 0}100%{background-position:-50% 0}}
.fx-aranykeret{inset:0;z-index:3;box-shadow:inset 0 0 0 0 rgba(241,211,106,0);animation:aranykeret 3s ease-in-out calc(var(--d,0ms) + var(--r,0ms) + .8s) infinite}
.kdnp-grid .fx-aranykeret{animation-name:kekkeret}
@keyframes aranykeret{0%,100%{box-shadow:inset 0 0 0 0 rgba(241,211,106,0)}50%{box-shadow:inset 0 0 0 3px rgba(241,211,106,.9),inset 0 0 24px rgba(241,211,106,.35)}}
@keyframes kekkeret{0%,100%{box-shadow:inset 0 0 0 0 rgba(143,180,230,0)}50%{box-shadow:inset 0 0 0 3px rgba(143,180,230,.9),inset 0 0 24px rgba(143,180,230,.35)}}

/* változásnapló: forráslink */
.row .forras{font-family:var(--mono);font-size:11px;color:var(--muted);text-decoration:none;white-space:nowrap;margin-left:6px;border-bottom:1px dotted currentColor}
.row .forras:hover{color:var(--strike)}
.row{animation:rise .5s var(--ease) both;animation-delay:calc(var(--i,0) * 40ms)}

/* ===== Változásnapló: visszafogott, csak a nevek színesek ===== */
.row .x{color:var(--strike);font-weight:700}
.row .p{color:var(--new);font-weight:700}
.row .n{color:var(--kdnp);font-weight:700}
.row .forras{font-family:var(--mono);font-size:11px;color:var(--muted);text-decoration:none;white-space:nowrap;margin-left:6px;border-bottom:1px dotted currentColor}
.row .forras:hover{color:var(--strike)}
.row{animation:rise .5s var(--ease) both;animation-delay:calc(var(--i,0) * 40ms)}
.jelmagyarazat{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 10px;font-size:12px;color:var(--muted)}
.jelmagyarazat b{font-weight:700}
.jelmagyarazat .x{color:var(--strike)}.jelmagyarazat .p{color:var(--new)}.jelmagyarazat .n{color:var(--kdnp)}
