/* jkondraciuk.pl - animacje wejscia (fx.js) */
.fx { transition: opacity .9s cubic-bezier(.16,1,.3,1), transform 1s cubic-bezier(.16,1,.3,1), clip-path 1.1s cubic-bezier(.77,0,.18,1), letter-spacing 1s cubic-bezier(.16,1,.3,1) !important; transition-delay: var(--fxd, 0ms) !important; will-change: transform, opacity; }
/* naglowki: "kurtyna" od dolu + lekki skos */
.fx-title:not(.fx-in) { opacity: 0; transform: translateY(.55em) skewY(2.5deg); clip-path: inset(0 0 100% 0); }
.fx-title.fx-in { clip-path: inset(-30% -8% -30% -8%); }
/* etykiety sekcji: wjazd z boku ze sciskaniem liter */
.fx-label:not(.fx-in) { opacity: 0; transform: translateX(-28px); letter-spacing: .6em; }
/* teksty: miekkie wynurzenie */
.fx-up:not(.fx-in) { opacity: 0; transform: translateY(26px); }
/* karty: obrot 3D od dolu jak karta wyciagana ze stosu */
.fx-card:not(.fx-in) { opacity: 0; transform: perspective(900px) translateY(54px) rotateX(24deg) scale(.93); transform-origin: 50% 100%; }
/* realizacje: rozsypane karty, ktore ukladaja sie w siatke */
.fx-tilt:not(.fx-in) { opacity: 0; transform: perspective(1100px) translateY(70px) rotateY(var(--fxry, -14deg)) rotateZ(var(--fxrz, -3deg)) scale(.9); }
/* zdjecia: odsloniecie od dolu + powolne oddalenie */
.fx-wipe:not(.fx-in) { clip-path: inset(100% 0 0 0 round 20px); }
.fx-wipe.fx-in { clip-path: inset(0 0 0 0 round 20px); }
.fx-wipe img { transition: transform 1.6s cubic-bezier(.16,1,.3,1) !important; transition-delay: var(--fxd, 0ms) !important; }
.fx-wipe:not(.fx-in) img { transform: scale(1.28); }
/* duze bloki: wyplyniecie z glebi (skala) */
.fx-rise:not(.fx-in) { opacity: 0; transform: translateY(46px) scale(.95); }
/* blysk po wejsciu karty */
.fx-glint { position: relative; overflow: hidden; }
.fx-glint::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.10) 48%, rgba(120,190,255,.16) 52%, transparent 65%); transform: translateX(-120%); }
.fx-glint.fx-in::after { animation: fxGlint 1.25s cubic-bezier(.4,0,.2,1) calc(var(--fxd, 0ms) + 350ms) both; }
@keyframes fxGlint { to { transform: translateX(120%); } }
/* telefon: krotsze i blizsze animacje */
@media (max-width: 768px) {
  .fx { transition-duration: .65s, .7s, .8s, .7s !important; }
  .fx-tilt:not(.fx-in) { transform: perspective(900px) translateY(36px) rotateY(calc(var(--fxry, -14deg) * .5)) rotateZ(calc(var(--fxrz, -3deg) * .5)) scale(.95); }
  .fx-card:not(.fx-in) { transform: perspective(900px) translateY(34px) rotateX(16deg) scale(.96); }
}
/* duze bloki: szybciej */
.fx.fx-rise { transition-duration: .7s, .75s, .7s, .7s !important; }
.fx-rise:not(.fx-in) { transform: translateY(32px) scale(.97); }
/* zdjecia: szybsze odsloniecie */
.fx.fx-wipe { transition: clip-path .75s cubic-bezier(.65,0,.2,1) !important; }
.fx-wipe img { transition-duration: 1s !important; }
.fx-wipe:not(.fx-in) img { transform: scale(1.15); }
@media (prefers-reduced-motion: reduce) { .fx, .fx * { transition: none !important; animation: none !important; } .fx:not(.fx-in) { opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; } }
