
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --akcent:#7c5cff; --akcent2:#a78bfa; --akcent3:#38bdf8;
  --tlo:#08080e;
  --szklo:rgba(255,255,255,.055); --szklo2:rgba(255,255,255,.085);
  --wlos:rgba(255,255,255,.1); --wlos2:rgba(255,255,255,.16);
  --tekst:#f2f2f7; --przygas:#a1a1b5; --slaby:#71718a;
  --sp:cubic-bezier(.16,1,.3,1); --sp2:cubic-bezier(.34,1.4,.64,1);
  --max:1180px;
}
html{background:var(--tlo);scroll-behavior:smooth;scroll-padding-top:92px;overscroll-behavior:none;-webkit-text-size-adjust:100%;overflow-x:hidden}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;background:transparent;
  color:var(--tekst);line-height:1.6;overflow-x:hidden;overscroll-behavior:none;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:rgba(124,92,255,.35)}

/* ---------- tlo ---------- */
.zorza{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none}
.zorza span{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;will-change:transform}
.zorza .z1{width:52vw;height:52vw;background:radial-gradient(circle,#7c5cff,transparent 68%);top:-14%;left:-10%;animation:dryf1 26s ease-in-out infinite}
.zorza .z2{width:44vw;height:44vw;background:radial-gradient(circle,#38bdf8,transparent 68%);top:32%;right:-14%;animation:dryf2 32s ease-in-out infinite}
.zorza .z3{width:40vw;height:40vw;background:radial-gradient(circle,#f472b6,transparent 70%);bottom:-12%;left:24%;animation:dryf3 38s ease-in-out infinite;opacity:.32}
@keyframes dryf1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(9vw,7vh) scale(1.14)}}
@keyframes dryf2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-8vw,-6vh) scale(1.2)}}
@keyframes dryf3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(6vw,-9vh) scale(1.1)}}
.ziarno{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}
/* poswiata idaca za kursorem po calej stronie */
.reflektor{position:fixed;width:520px;height:520px;border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle,rgba(124,92,255,.09),transparent 65%);
  transform:translate(-50%,-50%);opacity:0;transition:opacity .5s;will-change:transform}

/* pasek postepu czytania */
.postep{position:fixed;top:0;left:0;height:2px;z-index:60;width:0;
  background:linear-gradient(90deg,var(--akcent),var(--akcent3));
  box-shadow:0 0 12px rgba(124,92,255,.8);transition:width .1s linear}

/* ---------- pasek gorny ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:50;transition:all .4s var(--sp);
  padding:18px 0;border-bottom:1px solid transparent}
header.przewiniete{padding:10px 0;background:rgba(8,8,14,.72);
  -webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);
  border-bottom-color:var(--wlos)}
.pas{max-width:var(--max);margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:-.02em;font-size:17px}
.logo-znak{width:34px;height:34px;border-radius:10px;flex:0 0 34px;
  background:linear-gradient(135deg,var(--akcent),var(--akcent3));display:grid;place-items:center;
  box-shadow:0 6px 18px -6px rgba(124,92,255,.8);transition:transform .5s var(--sp2)}
.logo:hover .logo-znak{transform:rotate(-8deg) scale(1.08)}
nav{display:flex;gap:4px;align-items:center}
nav a{padding:8px 14px;border-radius:10px;font-size:14px;font-weight:500;color:var(--przygas);
  transition:color .2s,background .2s;position:relative}
nav a:hover{color:var(--tekst);background:var(--szklo)}
nav a.tu{color:var(--tekst)}
nav a.tu::after{content:'';position:absolute;left:14px;right:14px;bottom:3px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--akcent),var(--akcent3));animation:kreska .45s var(--sp) both}
@keyframes kreska{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.przycisk{padding:10px 20px;border-radius:12px;font-weight:600;font-size:14px;cursor:pointer;border:0;
  font-family:inherit;position:relative;overflow:hidden;
  transition:transform .28s var(--sp2),box-shadow .25s,background .25s,opacity .2s}
.przycisk:active{transform:scale(.955)}
.p-glowny{background:linear-gradient(135deg,var(--akcent),#6d4aff);color:#fff;
  box-shadow:0 8px 22px -8px rgba(124,92,255,.8)}
.p-glowny::after{content:'';position:absolute;inset:0;opacity:0;transition:opacity .35s;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.28),transparent 70%);
  transform:translateX(-100%)}
.p-glowny:hover::after{opacity:1;animation:blysk .9s var(--sp)}
@keyframes blysk{to{transform:translateX(100%)}}
.p-glowny:hover{box-shadow:0 16px 38px -10px rgba(124,92,255,.95)}
.p-drugi{background:var(--szklo);color:var(--tekst);border:1px solid var(--wlos);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.p-drugi:hover{background:var(--szklo2);border-color:var(--wlos2)}
.burger{display:none;background:var(--szklo);border:1px solid var(--wlos);border-radius:11px;
  width:40px;height:40px;cursor:pointer;place-items:center;color:var(--tekst)}

/* ---------- sekcje ---------- */
section{padding:96px 0;position:relative;z-index:1;overflow-x:clip}
.kon{max-width:var(--max);margin:0 auto;padding:0 24px}
.naglowek{text-align:center;margin-bottom:52px}
.plakietka{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;
  background:var(--szklo);border:1px solid var(--wlos);font-size:12px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--akcent2);margin-bottom:16px;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
h2{font-size:clamp(28px,4.6vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1.14;margin-bottom:12px}
.naglowek p{color:var(--przygas);font-size:clamp(15px,1.9vw,17px);max-width:620px;margin:0 auto}

/* ---------- ekran powitalny ---------- */
.hero{min-height:100svh;display:grid;place-items:center;text-align:center;padding:130px 0 90px}
.hero-tag{display:inline-flex;align-items:center;gap:9px;padding:8px 18px;border-radius:999px;
  background:var(--szklo);border:1px solid var(--wlos);font-size:12.5px;font-weight:700;
  letter-spacing:.18em;color:var(--akcent2);margin-bottom:26px;
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.kropka{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 12px #4ade80;animation:puls 2.4s ease-in-out infinite}
@keyframes puls{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.82)}}
h1{font-size:clamp(46px,11vw,116px);font-weight:900;letter-spacing:-.045em;line-height:.92;margin-bottom:22px}
/* litery wjezdzaja pojedynczo, z rozmycia */
h1 .lit{display:inline-block;
  background:linear-gradient(180deg,#fff 20%,#b9b9d4 78%);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  opacity:0;transform:translateY(52px) rotate(6deg);filter:blur(12px);
  animation:literaIn .95s var(--sp) forwards;animation-delay:calc(var(--l) * 42ms)}
@keyframes literaIn{to{opacity:1;transform:none;filter:blur(0)}}
.hero-sub{font-size:clamp(15px,2.2vw,19px);color:var(--przygas);max-width:600px;margin:0 auto 36px}
.hero-akcje{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.hero-akcje .przycisk{padding:14px 28px;font-size:15px}
.strzalka{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);color:var(--slaby);
  animation:skok 2.6s ease-in-out infinite;cursor:pointer}
@keyframes skok{0%,100%{transform:translateX(-50%) translateY(0);opacity:.5}50%{transform:translateX(-50%) translateY(9px);opacity:1}}

/* przesuwajacy sie napis */
.tasma{overflow:hidden;padding:16px 0;border-top:1px solid var(--wlos);border-bottom:1px solid var(--wlos);
  background:rgba(255,255,255,.02);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.tasma-tor{display:flex;gap:38px;width:max-content;will-change:transform}
.tasma span{font-size:13px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--slaby);
  display:flex;align-items:center;gap:38px;white-space:nowrap}
.tasma span::after{content:'';width:5px;height:5px;border-radius:50%;background:var(--akcent);flex:0 0 5px}

/* ---------- karty ---------- */
.siatka{display:grid;gap:18px}
.s4{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.s3{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.karta{background:var(--szklo);border:1px solid var(--wlos);border-radius:20px;padding:28px 24px;
  -webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);
  position:relative;overflow:hidden;transform-style:preserve-3d;will-change:transform;
  transition:transform .5s var(--sp),border-color .35s,box-shadow .4s}
.karta::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .35s;pointer-events:none;
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),rgba(124,92,255,.18),transparent 62%)}
.karta:hover::before{opacity:1}
.karta:hover{border-color:rgba(124,92,255,.42);box-shadow:0 26px 56px -24px rgba(124,92,255,.5)}
.k-ikona{width:56px;height:56px;border-radius:17px;display:grid;place-items:center;margin-bottom:18px;
  background:linear-gradient(135deg,rgba(124,92,255,.26),rgba(56,189,248,.15));
  border:1px solid rgba(124,92,255,.3);color:var(--akcent2);
  transition:transform .55s var(--sp2),color .35s,box-shadow .4s}
.karta:hover .k-ikona{transform:translateZ(30px) scale(1.12) rotate(-7deg);color:#fff;
  box-shadow:0 14px 30px -12px rgba(124,92,255,.9)}
.k-ikona svg{width:27px;height:27px}
.karta h3{font-size:19px;font-weight:700;margin-bottom:9px;letter-spacing:-.015em}
.karta p{color:var(--przygas);font-size:14.5px}
.cena{margin-top:16px;padding-top:15px;border-top:1px solid var(--wlos);
  font-weight:700;color:var(--akcent2);font-size:15px}

/* ---------- cennik ---------- */
.cen{background:var(--szklo);border:1px solid var(--wlos);border-radius:22px;padding:32px 26px;text-align:center;
  -webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);position:relative;overflow:hidden;
  transition:transform .45s var(--sp),border-color .35s,box-shadow .4s}
.cen::before{content:'';position:absolute;inset:0;opacity:0;transition:opacity .35s;pointer-events:none;
  background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),rgba(124,92,255,.16),transparent 60%)}
.cen:hover::before{opacity:1}
.cen:hover{transform:translateY(-7px);border-color:rgba(124,92,255,.45);box-shadow:0 26px 56px -24px rgba(124,92,255,.55)}
.cen.wyroznione{border-color:rgba(124,92,255,.5);background:linear-gradient(180deg,rgba(124,92,255,.13),var(--szklo))}
.wstazka{position:absolute;top:0;left:50%;transform:translateX(-50%);padding:5px 15px;border-radius:0 0 11px 11px;
  background:linear-gradient(135deg,var(--akcent),var(--akcent3));font-size:11px;font-weight:800;
  letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.cen h3{font-size:17px;font-weight:700;margin-bottom:6px;margin-top:8px}
.cen .kwota{font-size:38px;font-weight:900;letter-spacing:-.035em;margin:14px 0 4px;
  background:linear-gradient(180deg,#fff,#b9b9d4);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.cen .opis{color:var(--przygas);font-size:14px;min-height:42px}

/* ---------- sprzet ---------- */
.sprzet{display:flex;align-items:center;gap:14px;padding:15px 18px;border-radius:15px;
  background:var(--szklo);border:1px solid var(--wlos);transition:transform .35s var(--sp),background .3s,border-color .3s}
.sprzet:hover{transform:translateX(6px);background:var(--szklo2);border-color:rgba(124,92,255,.34)}
.sprzet .ikonka{width:38px;height:38px;border-radius:12px;flex:0 0 38px;display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(124,92,255,.22),rgba(56,189,248,.13));
  border:1px solid rgba(124,92,255,.24);color:var(--akcent2);transition:transform .4s var(--sp2)}
.sprzet:hover .ikonka{transform:scale(1.1) rotate(-6deg)}
.sprzet .ikonka svg{width:19px;height:19px}
.sprzet b{font-size:15px;font-weight:650;display:block}
.sprzet i{font-style:normal;font-size:12.5px;color:var(--slaby)}

/* ---------- galeria ---------- */
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.foto{position:relative;border-radius:18px;overflow:hidden;cursor:pointer;aspect-ratio:4/3;
  background:var(--szklo);border:1px solid var(--wlos);transition:transform .5s var(--sp),box-shadow .45s,border-color .35s}
.foto img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--sp)}
.foto:hover{transform:translateY(-6px) scale(1.015);border-color:rgba(124,92,255,.48);
  box-shadow:0 28px 56px -24px rgba(0,0,0,.9)}
.foto:hover img{transform:scale(1.1)}
.foto::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.6));
  opacity:0;transition:opacity .35s;pointer-events:none}
.foto:hover::after{opacity:1}
.foto .lupka{position:absolute;right:12px;bottom:12px;width:36px;height:36px;border-radius:12px;display:grid;place-items:center;
  background:rgba(255,255,255,.16);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.24);opacity:0;transform:translateY(10px) scale(.85);transition:all .4s var(--sp2)}
.foto:hover .lupka{opacity:1;transform:none}

#lupa{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:24px;
  background:rgba(4,4,9,.9);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}
#lupa.on{display:grid;animation:wejscieTla .3s ease both}
@keyframes wejscieTla{from{opacity:0}to{opacity:1}}
#lupa img{max-width:min(94vw,1300px);max-height:86svh;border-radius:16px;object-fit:contain;
  box-shadow:0 40px 100px -30px rgba(0,0,0,.95);animation:wejscieFoto .55s var(--sp) both}
@keyframes wejscieFoto{from{opacity:0;transform:scale(.9) translateY(24px)}to{opacity:1;transform:none}}
.l-przyc{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;
  display:grid;place-items:center;transition:background .25s,transform .3s var(--sp2);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.l-przyc:hover{background:rgba(255,255,255,.2);transform:translateY(-50%) scale(1.12)}
.l-lewo{left:18px}.l-prawo{right:18px}
.l-zamknij{position:absolute;top:20px;right:20px;transform:none}
.l-zamknij:hover{transform:scale(1.12) rotate(90deg)}
.l-licznik{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-size:13px;color:var(--przygas);
  padding:6px 16px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid var(--wlos)}

/* ---------- o studiu ---------- */
.o-siatka{display:grid;grid-template-columns:1.25fr .75fr;gap:22px;align-items:start}
.o-tekst{background:var(--szklo);border:1px solid var(--wlos);border-radius:22px;padding:34px;
  -webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}
.o-tekst p{color:var(--przygas);font-size:16px}
.liczby{display:grid;gap:14px}
.liczba{background:var(--szklo);border:1px solid var(--wlos);border-radius:18px;padding:22px;text-align:center;
  -webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);transition:transform .4s var(--sp),border-color .3s}
.liczba:hover{transform:scale(1.035);border-color:rgba(124,92,255,.42)}
.liczba b{display:block;font-size:34px;font-weight:900;letter-spacing:-.035em;
  background:linear-gradient(135deg,var(--akcent2),var(--akcent3));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.liczba span{font-size:13px;color:var(--slaby)}

/* ---------- formularz ---------- */
.kontakt-siatka{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}
.formularz{background:var(--szklo);border:1px solid var(--wlos);border-radius:22px;padding:32px;
  -webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);position:relative;overflow:hidden}
/* etykieta unosi sie nad pole */
.pole{position:relative;margin-bottom:20px}
.pole input,.pole textarea,.pole select{width:100%;padding:22px 16px 10px;border-radius:14px;font-family:inherit;font-size:15px;
  background:rgba(0,0,0,.3);border:1px solid var(--wlos);color:var(--tekst);
  transition:border-color .28s,box-shadow .28s,background .28s}
.pole textarea{resize:vertical;min-height:126px;padding-top:26px}
.pole select{cursor:pointer;-webkit-appearance:none;appearance:none;
  height:56px;padding:24px 42px 8px 16px;line-height:1.2;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%23a1a1b5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center}
/* etykieta wyboru zawsze u gory — pole zawsze ma wartosc, wiec nie ma czego zaslaniac */
.pole.wybor label{top:9px;font-size:11.5px;letter-spacing:.04em;color:var(--akcent2);font-weight:600}
.pole select option{background:#14141f}
.pole label{position:absolute;left:16px;top:16px;font-size:15px;color:var(--slaby);pointer-events:none;
  transition:all .28s var(--sp);transform-origin:left top}
.pole input:focus~label,.pole input.pelne~label,
.pole textarea:focus~label,.pole textarea.pelne~label,
.pole select:focus~label,.pole select.pelne~label{
  top:8px;font-size:11.5px;letter-spacing:.04em;color:var(--akcent2);font-weight:600}
.pole input:focus,.pole textarea:focus,.pole select:focus{outline:0;border-color:rgba(124,92,255,.7);
  box-shadow:0 0 0 4px rgba(124,92,255,.15);background:rgba(0,0,0,.4)}
.pole.zly input,.pole.zly textarea{border-color:rgba(248,113,113,.6)}
.licznik-znakow{position:absolute;right:14px;bottom:11px;font-size:11.5px;color:var(--slaby);
  opacity:0;transition:opacity .3s}
.pole textarea:focus~.licznik-znakow{opacity:1}
.formularz .przycisk{width:100%;padding:16px;font-size:15px;margin-top:4px}
.odp{margin-top:14px;padding:13px 16px;border-radius:13px;font-size:14px;display:none;
  animation:odpIn .45s var(--sp) both}
@keyframes odpIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.odp.zle{display:block;background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.35);color:#fca5a5}
/* ekran sukcesu */
.sukces{position:absolute;inset:0;display:none;place-items:center;text-align:center;padding:32px;
  background:#0c0c14;-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);z-index:3;border-radius:22px}
.sukces.on{display:grid;animation:odpIn .45s var(--sp) both}
.ptaszek-kolo{width:74px;height:74px;border-radius:50%;margin:0 auto 18px;display:grid;place-items:center;
  background:linear-gradient(135deg,rgba(74,222,128,.2),rgba(56,189,248,.14));
  border:1px solid rgba(74,222,128,.45);animation:kolkoIn .6s var(--sp2) both}
@keyframes kolkoIn{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
.ptaszek-kolo path{stroke-dasharray:32;stroke-dashoffset:32;animation:rysuj .6s var(--sp) .3s forwards}
@keyframes rysuj{to{stroke-dashoffset:0}}
.sukces h3{font-size:21px;font-weight:800;margin-bottom:8px;letter-spacing:-.02em}
.sukces p{color:var(--przygas);font-size:14.5px;max-width:320px;margin:0 auto 18px}

.k-karta{background:var(--szklo);border:1px solid var(--wlos);border-radius:22px;padding:30px;
  -webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}
.k-poz{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--wlos);transition:transform .3s var(--sp)}
.k-poz:last-child{border-bottom:0}
.k-poz:hover{transform:translateX(6px)}
.k-ik{width:42px;height:42px;border-radius:13px;flex:0 0 42px;display:grid;place-items:center;color:var(--akcent2);
  background:linear-gradient(135deg,rgba(124,92,255,.22),rgba(56,189,248,.14));border:1px solid rgba(124,92,255,.26);
  transition:transform .4s var(--sp2)}
.k-poz:hover .k-ik{transform:scale(1.1) rotate(-6deg)}
.k-poz small{display:block;font-size:12px;color:var(--slaby)}
.k-poz b{font-size:15px;font-weight:650}

/* ---------- stopka ---------- */
footer{padding:44px 0 34px;border-top:1px solid var(--wlos);text-align:center;position:relative;z-index:1;
  background:rgba(0,0,0,.28);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.stopka-z3{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--slaby);font-weight:600;margin-top:14px;
  padding:8px 16px;border-radius:999px;background:var(--szklo);border:1px solid var(--wlos);
  transition:color .3s,border-color .3s,transform .3s var(--sp2)}
.stopka-z3:hover{color:var(--tekst);border-color:rgba(124,92,255,.45);transform:translateY(-2px)}
.stopka-z3 svg{width:15px;height:15px;flex:0 0 15px}

/* ---------- pojawianie sie ---------- */
.poj{opacity:0;transform:translateY(34px);filter:blur(6px);
  transition:opacity .85s var(--sp),transform .85s var(--sp),filter .85s var(--sp)}
.poj.widac{opacity:1;transform:none;filter:blur(0)}
.poj-op{transition-delay:calc(var(--o,0) * 90ms)}

/* ---------- telefon ---------- */
@media (max-width:900px){ .o-siatka,.kontakt-siatka{grid-template-columns:1fr} }
@media (max-width:760px){
  section{padding:70px 0}
  .kon,.pas{padding:0 18px}
  nav{position:fixed;top:0;right:0;bottom:0;width:min(78vw,300px);flex-direction:column;align-items:stretch;
    gap:6px;padding:calc(78px + env(safe-area-inset-top)) 18px 24px;
    background:rgba(10,10,18,.92);-webkit-backdrop-filter:blur(26px);backdrop-filter:blur(26px);
    border-left:1px solid var(--wlos);transform:translateX(100%);transition:transform .5s var(--sp);z-index:49}
  nav.otwarte{transform:none}
  nav a{padding:14px 16px;font-size:16px;opacity:0;transform:translateX(24px);transition:all .45s var(--sp)}
  nav.otwarte a{opacity:1;transform:none}
  nav.otwarte a:nth-child(1){transition-delay:.06s}
  nav.otwarte a:nth-child(2){transition-delay:.11s}
  nav.otwarte a:nth-child(3){transition-delay:.16s}
  nav.otwarte a:nth-child(4){transition-delay:.21s}
  nav.otwarte a:nth-child(5){transition-delay:.26s}
  nav.otwarte a:nth-child(6){transition-delay:.31s}
  nav a.tu::after{display:none}
  .burger{display:grid}
  .pas>.przycisk{display:none}
  .hero{padding:104px 0 76px;min-height:92svh}
  .hero-akcje .przycisk{width:100%;max-width:290px}
  .galeria{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
  .l-przyc{width:42px;height:42px}
  .l-lewo{left:8px}.l-prawo{right:8px}
  .reflektor{display:none}
  footer{padding-bottom:calc(34px + env(safe-area-inset-bottom))}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .poj{opacity:1;transform:none;filter:none}
  h1 .lit{opacity:1;transform:none;filter:none}
  .reflektor{display:none}
}

/* ============ v4 — wiecej ruchu ============ */
/* naglowki sekcji: slowo po slowie */
h2 .sl{display:inline-block;opacity:0;transform:translateY(28px) rotate(3deg);filter:blur(8px);
  transition:opacity .8s var(--sp),transform .8s var(--sp),filter .8s var(--sp);
  transition-delay:calc(var(--w) * 70ms)}
.widac h2 .sl,h2.widac .sl{opacity:1;transform:none;filter:blur(0)}

/* karty wjezdzaja z obrotem w 3D */
.karta.poj,.cen.poj{transform:perspective(1000px) rotateX(-14deg) translateY(46px);transform-origin:center top}
.karta.poj.widac,.cen.poj.widac{transform:perspective(1000px) rotateX(0) translateY(0)}

/* wyrozniona pozycja cennika — obracajaca sie ramka */
.cen.wyroznione::after{content:'';position:absolute;inset:-1px;border-radius:22px;padding:1px;z-index:-1;
  background:conic-gradient(from var(--kat,0deg),transparent 0deg,var(--akcent) 90deg,var(--akcent3) 180deg,transparent 270deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  animation:obrot 5s linear infinite}
@keyframes obrot{to{--kat:360deg}}
@property --kat{syntax:'<angle>';initial-value:0deg;inherits:false}

/* zdjecia w galerii przesuwaja sie wolniej niz strona */
.foto img{will-change:transform}

/* fala na przycisku po kliknieciu */
.fala-klik{position:absolute;border-radius:50%;transform:translate(-50%,-50%) scale(0);
  background:rgba(255,255,255,.4);pointer-events:none;animation:falaOut .65s var(--sp) forwards}
@keyframes falaOut{to{transform:translate(-50%,-50%) scale(1);opacity:0}}

/* przelaczniki grup sprzetu */
.grupy{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:26px;position:relative}
.grupa-p{padding:9px 18px;border-radius:999px;font-size:13.5px;font-weight:600;cursor:pointer;
  background:var(--szklo);border:1px solid var(--wlos);color:var(--przygas);font-family:inherit;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:relative;overflow:hidden;
  transition:color .3s,border-color .3s,transform .3s var(--sp2),background .3s}
.grupa-p:hover{color:var(--tekst);transform:translateY(-2px);border-color:var(--wlos2)}
.grupa-p.tu{color:#fff;border-color:rgba(124,92,255,.55);
  background:linear-gradient(135deg,rgba(124,92,255,.35),rgba(56,189,248,.2));
  box-shadow:0 8px 22px -8px rgba(124,92,255,.8)}
.grupa-p .ile{opacity:.6;font-size:12px;margin-left:5px}

/* znikanie i wracanie pozycji przy filtrowaniu */
.sprzet{transition:transform .45s var(--sp),opacity .35s var(--sp),background .3s,border-color .3s}
.sprzet.schowany{opacity:0;transform:scale(.9) translateY(-8px);pointer-events:none;
  position:absolute;visibility:hidden}
.sprzet.wraca{animation:wracaIn .5s var(--sp) both;animation-delay:calc(var(--k,0) * 45ms)}
@keyframes wracaIn{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}

/* wielki znak wodny sekcji, przesuwa sie z przewijaniem */
.woda{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:-1;pointer-events:none;
  font-size:clamp(64px,15vw,230px);font-weight:900;max-width:100vw;letter-spacing:-.05em;white-space:nowrap;
  color:rgba(255,255,255,.017);user-select:none}

@media (prefers-reduced-motion:reduce){
  h2 .sl{opacity:1;transform:none;filter:none}
  .karta.poj,.cen.poj{transform:none}
  .cen.wyroznione::after{animation:none}
  .woda{display:none}
}

/* ═══════════ v5 — przejscia i nowy ruch ═══════════ */

/* kurtyna miedzy stronami */
.kurtyna{position:fixed;inset:0;z-index:200;pointer-events:none;display:grid;place-items:center;
  background:linear-gradient(135deg,#0b0b16,#131126 55%,#0a0f1e);
  clip-path:inset(0 0 0 0);transition:clip-path .75s var(--sp)}
.kurtyna.znika{clip-path:inset(0 0 100% 0)}
.kurtyna.wchodzi{clip-path:inset(100% 0 0 0);transition:clip-path .55s var(--sp)}
.kurtyna.wchodzi.pelna{clip-path:inset(0 0 0 0)}
.kurtyna-znak{display:flex;align-items:center;gap:12px;font-weight:800;font-size:19px;letter-spacing:-.02em;
  opacity:0;animation:znakIn .5s var(--sp) .1s forwards}
@keyframes znakIn{to{opacity:1}}
.kurtyna-znak .logo-znak{animation:pulsZnak 1.6s ease-in-out infinite}
@keyframes pulsZnak{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}

/* ruchoma pigulka w menu — TYLKO na duzym ekranie.
   UWAGA: goly `nav{position:relative}` nadpisywal `position:fixed` z reguly mobilnej
   (jest nizej w pliku, ta sama waga) i menu na telefonie zamieniało sie w blok na 450 px. */
@media (min-width:761px){ nav{position:relative} }
.pigulka{position:absolute;top:50%;height:34px;border-radius:10px;z-index:-1;
  background:linear-gradient(135deg,rgba(124,92,255,.3),rgba(56,189,248,.18));
  border:1px solid rgba(124,92,255,.35);opacity:0;
  transform:translateY(-50%);transition:left .5s var(--sp),width .5s var(--sp),opacity .3s}
.pigulka.on{opacity:1}
nav a.tu::after{display:none}

/* odsloniecie przez wycieranie */
.wyt{clip-path:inset(0 100% 0 0);transition:clip-path 1.05s var(--sp)}
.wyt.widac{clip-path:inset(0 0 0 0)}

/* przeciagniecie swiatla po naglowku przy wejsciu */
h2 .sl{position:relative}
.naglowek.widac h2{background-image:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.85) 45%,transparent 70%);
  background-size:220% 100%;background-position:-120% 0;
  -webkit-background-clip:text;background-clip:text;
  animation:przeciagnij 1.5s var(--sp) .45s}
@keyframes przeciagnij{to{background-position:220% 0}}

/* kreska rozdzielajaca sekcje, rysowana od srodka */
.kreska{height:1px;max-width:var(--max);margin:0 auto;position:relative;overflow:hidden}
.kreska::before{content:'';position:absolute;inset:0;transform:scaleX(0);transform-origin:center;
  background:linear-gradient(90deg,transparent,var(--wlos2) 30%,rgba(124,92,255,.55) 50%,var(--wlos2) 70%,transparent);
  transition:transform 1.2s var(--sp)}
.kreska.widac::before{transform:scaleX(1)}

/* strzalka wysuwa sie w przycisku */
.przycisk .strz{display:inline-block;margin-left:7px;transition:transform .35s var(--sp2)}
.przycisk:hover .strz{transform:translateX(5px)}

/* zachecajacy kafelek prowadzacy do sprzetu */
.zachet{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center;
  background:linear-gradient(135deg,rgba(124,92,255,.15),var(--szklo));
  border:1px solid rgba(124,92,255,.3);border-radius:24px;padding:34px 34px;
  -webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);position:relative;overflow:hidden;
  transition:transform .5s var(--sp),border-color .35s,box-shadow .45s}
.zachet:hover{transform:translateY(-5px);border-color:rgba(124,92,255,.55);
  box-shadow:0 28px 60px -26px rgba(124,92,255,.6)}
.zachet::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(124,92,255,.2),transparent 62%)}
.zachet:hover::before{opacity:1}
.zachet h3{font-size:clamp(20px,2.6vw,27px);font-weight:800;letter-spacing:-.025em;margin-bottom:8px}
.zachet p{color:var(--przygas);font-size:15px;max-width:520px}
.zachet-ikony{display:flex;gap:-6px}
.zachet-ik{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;color:var(--akcent2);
  background:linear-gradient(135deg,rgba(124,92,255,.26),rgba(56,189,248,.15));
  border:1px solid rgba(124,92,255,.3);margin-left:-14px;
  transition:transform .45s var(--sp2)}
.zachet-ik:first-child{margin-left:0}
.zachet-ik svg{width:25px;height:25px}
.zachet:hover .zachet-ik:nth-child(1){transform:translateX(-8px) rotate(-9deg)}
.zachet:hover .zachet-ik:nth-child(2){transform:translateY(-6px) scale(1.07)}
.zachet:hover .zachet-ik:nth-child(3){transform:translateX(8px) rotate(9deg)}
@media(max-width:720px){
  .zachet{grid-template-columns:1fr;text-align:center;padding:28px 22px}
  .zachet-ikony{justify-content:center}
}

/* akapity tekstu o studiu */
.o-tekst p+p{margin-top:15px}

/* ── strona sprzetu ── */
.pod-hero{padding:150px 0 46px;text-align:center;position:relative}
.pod-hero h1{font-size:clamp(38px,7.5vw,74px);margin-bottom:16px}
.wroc{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--przygas);
  padding:9px 17px;border-radius:999px;background:var(--szklo);border:1px solid var(--wlos);
  margin-bottom:22px;transition:color .25s,transform .3s var(--sp2),border-color .25s}
.wroc:hover{color:var(--tekst);transform:translateX(-4px);border-color:var(--wlos2)}

@media (prefers-reduced-motion:reduce){
  .kurtyna{display:none}
  .wyt{clip-path:none}
  .kreska::before{transform:scaleX(1)}
  .naglowek.widac h2{animation:none}
}

/* przewijanie do kotwicy nie moze chowac tresci pod przyklejonym paskiem */
section[id],.pod-hero,[id]{scroll-margin-top:92px}
@media(max-width:760px){html{scroll-padding-top:76px}section[id],.pod-hero,[id]{scroll-margin-top:76px}}

/* odnosnik powrotu tez nie moze wpasc pod pasek przy przewinieciu do niego */
.wroc{scroll-margin-top:112px}

/* przycisk menu musi zostac NAD wysunietym panelem (panel jest jego rodzenstwem
   i ma z-index 49, wiec bez tego przykrywal go i nie dalo sie zamknac) */
.burger{position:relative;z-index:60}
.burger .ikona-x{display:none}
body.menu-otwarte .burger .ikona-menu{display:none}
body.menu-otwarte .burger .ikona-x{display:block}
body.menu-otwarte .burger{background:rgba(124,92,255,.25);border-color:rgba(124,92,255,.5)}
body.menu-otwarte{overflow:hidden}

@media(max-width:760px){ .tylko-duzy{display:none} }
