/* ai-studenci.html: ruch podstrony „W nauce”. Filmy prowadzi wspólny silnik Film (data-film w części); tu stoją
   stany wyjściowe akcji klasa:x (HTML niesie stan końcowy z klasą, film zdejmuje ją na start i nakłada w swoim takcie)
   i wejście tekstu, plansz oraz kafli. Bez skryptu i przy ograniczonym ruchu nic z tego nie chowa treści. */

/* quiz: pasek postępu dojeżdża do 3 z 10; po odpowiedzi guziki zachowują swoje przejścia kolorów */
.qz-pasek:not(.pas) i{transform:scaleX(0)}
.film-gra .qz-odp button{transition:opacity .35s ease, transform .5s cubic-bezier(.2,.7,.2,1), border-color .15s, background-color .25s, box-shadow .15s}
.film-gra .fs-oceny button{transition:opacity .35s ease, transform .5s cubic-bezier(.2,.7,.2,1), background-color .2s, color .2s}

/* przesłanki: ocena przesłanki wskakuje obok niej */
.film-gra .pv-w .pv-ryz[data-t]:not(.f-jest){opacity:0;transform:scale(.6)}
.film-gra .pv-w .pv-ryz[data-t]{transition:opacity .25s ease, transform .4s cubic-bezier(.3,1.5,.5,1)}

/* fiszka: karta kładzie się na stół lekko z ukosa */
.film-gra .fs-karta[data-t]:not(.f-jest){opacity:0;transform:translateY(1.2em) rotate(-2deg)}
.film-gra .fs-karta[data-t]{transition:opacity .4s ease, transform .6s cubic-bezier(.2,.7,.2,1)}

/* kazus: stos kart pod kazusem rozkłada się w takcie filmu (dawniej robiło to odsłanianie .nk-widok.widac) */
.kz-stos.roz i:first-child{transform:rotate(-3deg) translate(-10px, 6px)}
.kz-stos.roz i:nth-child(2){transform:rotate(3.5deg) translate(12px, 10px);transition-delay:.06s}

/* tryb nauki: przełącznik włącza się na oczach */
.nk-tryb, .nk-tryb i{transition:color .3s, background-color .3s}
.nk-tryb i::after{transition:transform .3s cubic-bezier(.3,1.3,.5,1)}
.nk-tryb:not(.wl){color:var(--popiel)}
.nk-tryb:not(.wl) i{background:var(--linia-ciemna)}
.nk-tryb:not(.wl) i::after{transform:translateX(-12px)}

/* kafle: pasek egzaminu rusza, mapa braków zapala się działami */
.nk-pasek i{transition:width .8s cubic-bezier(.2,1,.2,1)}
.nk-pasek:not(.pas) i{width:0}
.nk-mapa i{transition:background-color .35s ease}
.nk-mapa i:not(.o){background:var(--linia)}

/* wejście poza widokami programu: tekst sekcji po kolei, plansza od dołu, kafle jeden po drugim (klasy nadaje skrypt-ai-studenci.js) */
.sa-tekst > *{opacity:0;transform:translateY(18px)}
.sa-tekst.widac > *{opacity:1;transform:none;transition:opacity .6s ease, transform .8s cubic-bezier(.23,1,.32,1);transition-delay:calc(var(--i, 0) * 90ms)}
.sa-plansza{opacity:0;transform:translateY(56px)}
.sa-plansza.widac{opacity:1;transform:none;transition:opacity .7s ease, transform 1s cubic-bezier(.23,1,.32,1);transition-delay:.1s}
.nk-kafel.sa-kafel{opacity:0;transform:translateY(40px)}
.nk-kafel.sa-kafel.widac{opacity:1;transform:none;transition:opacity .6s ease, transform .9s cubic-bezier(.23,1,.32,1);transition-delay:calc(var(--i, 0) * 110ms)}

/* kafle: okno kafla mieści cały przepis z zakrytymi terminami (dawniej 132 px ucinało podpis „Kliknij zakryte miejsca”,
   a reguła .nk-zakryj p dawała mu krój szeryfowy); pole daty stoi tuż po „Stan prawny na:” */
.nk-siatka .nk-kafel-w{height:158px}
.nk-zakryj p.nk-maly{font:400 12px/1.3 var(--mono)}
.nk-zakryj p:not(.nk-maly){font-size:15px;line-height:1.5}
.nk-kafel-w .o-btn{gap:.3em}
@media (max-width:640px){
  .nk-siatka .nk-kafel-w{height:auto;min-height:132px}
}
