@import url('https://fonts.googleapis.com/css2?family=Archivo:ital,wdth,wght@0,62..125,100..900;1,62..125,100..900&family=JetBrains+Mono:wght@400&display=swap');

:root{
  --black:#000;
  --ink:#f2f2ee;
  --muted:#8a8a86;
  --faint:#161616;
  --blue:#4d7cff;
  --blue-glow:#7fa3ff;
  --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{background:var(--black);color:var(--ink)}
body{font-family:'Archivo',system-ui,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}

/* ---------- ziarno filmowe ---------- */
.grain{position:fixed;inset:-50%;z-index:50;pointer-events:none;opacity:.07;
  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='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* ---------- nawigacja ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;justify-content:space-between;align-items:center;
  padding:28px clamp(16px,4vw,56px);mix-blend-mode:difference}
.logo{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:800;letter-spacing:.02em;font-size:18px}
.logo span{color:var(--blue)}
.nav ul{display:flex;gap:32px;list-style:none;font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.nav a{color:var(--ink);text-decoration:none;opacity:.7;transition:opacity .3s}
.nav a:hover{opacity:1}

/* ---------- wskaźnik sekcji ---------- */
.rail{position:fixed;right:clamp(16px,2vw,32px);top:50%;transform:translateY(-50%);z-index:40;
  display:flex;flex-direction:column;align-items:center;gap:14px;font-size:11px;letter-spacing:.2em;color:var(--muted)}
.rail .track{width:1px;height:120px;background:#2a2a2a;position:relative;overflow:hidden}
.rail .fill{position:absolute;left:0;top:0;width:100%;height:0;background:var(--ink)}
.rail b{color:var(--ink);font-weight:500}

/* ---------- scena przewijana ---------- */
.scroller{height:1400vh;position:relative}
.stage{position:sticky;top:0;height:100vh;height:100lvh;overflow:hidden;background:var(--black)}

/* ogromne słowa za portretem */
.bigwords{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:space-between;
  padding:0 2vw;pointer-events:none;font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:800;
  font-size:clamp(56px,13vw,230px);line-height:.85;letter-spacing:-.04em;text-transform:uppercase}
.bigwords span{color:transparent;-webkit-text-stroke:1px #2c2c2c;will-change:transform}
.bigwords span.fill{color:#141414;-webkit-text-stroke:0}

/* portret 1 */
.p1wrap{position:absolute;inset:0;z-index:2;display:flex;align-items:flex-end;justify-content:center}
.p1{position:relative;height:96vh;aspect-ratio:1145/1374;
  transform-origin:63.97% 32.2%}
.p1 img{width:100%;height:100%;display:block;mix-blend-mode:lighten;
  -webkit-mask-image:radial-gradient(ellipse 62% 70% at 50% 42%,#000 55%,transparent 100%);
          mask-image:radial-gradient(ellipse 62% 70% at 50% 42%,#000 55%,transparent 100%)}
/* dioda: świeci tylko samo zdjęcie, bez widocznej nakładki */
.implant{position:absolute;left:63.97%;top:32.2%;width:2.9%;aspect-ratio:.8;transform:translate(-50%,-50%);
  pointer-events:none;mix-blend-mode:screen}
.implant::before{content:"";position:absolute;inset:-5%;border-radius:50%;
  background:radial-gradient(ellipse,rgba(170,200,255,.9) 0,rgba(90,130,255,.45) 35%,transparent 70%);
  filter:blur(1px);animation:led 2.8s ease-in-out infinite}
.implant::after{content:"";position:absolute;inset:-260%;border-radius:50%;
  background:radial-gradient(circle,rgba(80,120,255,.22) 0,rgba(60,100,255,.07) 30%,transparent 60%);
  animation:led 2.8s ease-in-out infinite}
@keyframes led{0%,100%{opacity:.25}50%{opacity:.85}}

/* rozbłysk w momencie przejścia */
.flash{--r:20px;--h:0px;position:absolute;inset:0;z-index:5;pointer-events:none;opacity:0;mix-blend-mode:screen;
  background:
    radial-gradient(circle at 50% 50%,#000 var(--h),transparent calc(var(--h)*1.45)),
    radial-gradient(circle at 50% 50%,#f4f7ff 0,#9db8ff calc(var(--r)*.12),#3d63f0 calc(var(--r)*.38),#0d1d6b calc(var(--r)*.7),#000 var(--r))}

/* tekst hero */
.hero-copy{position:absolute;z-index:8;left:clamp(16px,5vw,80px);bottom:clamp(40px,9vh,110px);max-width:520px;will-change:transform,opacity}
.eyebrow{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:22px}
.eyebrow i{width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 12px var(--blue);display:block}
.hero-copy h1{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:700;font-size:clamp(30px,3.6vw,56px);line-height:1.02;letter-spacing:-.02em}
.hero-copy h1 em{font-style:normal;color:var(--blue-glow)}
.hero-copy p{margin-top:20px;color:var(--muted);font-size:15px;line-height:1.65;max-width:400px}
.hero-meta{position:absolute;z-index:8;right:clamp(56px,8vw,130px);bottom:clamp(40px,9vh,110px);text-align:right;
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);line-height:2}
.scrollhint{position:absolute;z-index:8;left:50%;bottom:22px;transform:translateX(-50%);font-size:10px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:10px}
.scrollhint::after{content:"";width:1px;height:38px;background:linear-gradient(var(--ink),transparent);animation:drip 1.8s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* =========================================================
   SEKCJA 2 — z rozsypanych elementów powstaje strona
   ========================================================= */
/* portret nad elementami w trybie „lighten”: twarz je zasłania, czarne tło przepuszcza — elementy wsiąkają w głowę */
.p2wrap{position:absolute;inset:0;z-index:3;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;mix-blend-mode:lighten}
.p2{position:relative;height:90vh;aspect-ratio:1145/1374;opacity:0}
.p2 img{width:100%;height:100%;display:block;
  -webkit-mask-image:radial-gradient(ellipse 60% 72% at 50% 42%,#000 55%,transparent 100%);
          mask-image:radial-gradient(ellipse 60% 72% at 50% 42%,#000 55%,transparent 100%)}

/* surowe elementy po lewej — szkice, jeszcze niezłożone */
.atoms{position:absolute;inset:0;z-index:2;pointer-events:none}
.atom{position:absolute;opacity:0;border:1px dashed #3b3b3b;border-radius:10px;background:rgba(20,20,22,.55);
  padding:12px 14px;backdrop-filter:blur(2px)}
.atom .tag{position:absolute;top:-9px;left:10px;font-family:var(--mono);font-size:10px;color:var(--blue-glow);
  background:#000;padding:0 6px;letter-spacing:.04em}
.bar{height:7px;border-radius:4px;background:#3a3a3a;margin:6px 0}
.a-title{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:700;font-size:24px;color:#cfcfcf;white-space:nowrap}
.a-btn{display:inline-block;padding:10px 20px;border-radius:999px;border:1px solid #555;font-size:13px;color:#ddd}
.a-img{width:190px;aspect-ratio:1.5;border-radius:6px;background:#1c1c1c;display:grid;place-items:center}
.a-img svg{width:44px;opacity:.5}
.a-nav{display:flex;gap:10px;align-items:center}
.a-nav b{width:22px;height:22px;border-radius:6px;background:#444;display:block}
.a-nav i{width:34px;height:6px;border-radius:3px;background:#3a3a3a;display:block}
.a-swatch{display:flex;gap:8px}
.a-swatch i{width:24px;height:24px;border-radius:50%;display:block}
.a-card{width:120px}
.a-card .ic{width:26px;height:26px;border-radius:8px;border:1px solid #555;margin-bottom:8px}
.a-input{width:180px;padding:9px 12px;border-radius:8px;border:1px solid #444;font-size:12px;color:#777}
.a-font{font-family:'Archivo',sans-serif;font-stretch:125%;font-size:44px;font-weight:800;color:#bbb;line-height:1}
.a-font small{display:block;font-family:var(--mono);font-size:10px;color:#666;font-weight:400;margin-top:4px}
.a-code{font-family:var(--mono);font-size:16px;color:#9a9a9a}
.atom.bare{border:0;background:none;backdrop-filter:none;padding:0}

/* gotowa strona po prawej */
.site{position:absolute;z-index:2;right:clamp(40px,6vw,110px);top:50%;width:min(420px,27vw);transform:translateY(-50%);
  pointer-events:none}
.bw{position:relative;margin:0 auto;border-radius:12px;background:#0d0d0f;border:1px solid #262629;box-shadow:0 30px 80px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.02);
  overflow:visible;opacity:0}
.bw-bar{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid #1f1f22}
.bw-bar i{width:9px;height:9px;border-radius:50%;background:#2c2c30;display:block}
.bw-bar span{margin-left:10px;flex:1;font-family:var(--mono);font-size:10px;color:#666;background:#161618;border-radius:6px;padding:4px 10px}
.bw-body{padding:16px;display:flex;flex-direction:column;gap:12px}
.part{opacity:0;will-change:transform,opacity}
.s-nav{display:flex;align-items:center;gap:12px}
.s-nav b{width:22px;height:22px;border-radius:7px;background:linear-gradient(135deg,var(--blue),#9a7bff);display:block}
.s-nav i{width:30px;height:5px;border-radius:3px;background:#3a3a44;display:block}
.s-nav em{margin-left:auto;font-style:normal;font-size:10px;padding:5px 10px;border-radius:999px;background:#1c1c22;color:#aab}
.s-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:12px;align-items:center}
.s-title{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:700;font-size:clamp(14px,1.35vw,20px);line-height:1.1;color:#f4f4f4}
.s-text .bar{height:5px;background:#2e2e36;margin:5px 0}
.s-btn{display:inline-block;margin-top:4px;padding:7px 14px;border-radius:999px;background:var(--blue);color:#fff;font-size:10px;font-weight:600;
  box-shadow:0 6px 20px rgba(77,124,255,.35)}
.s-img{aspect-ratio:1;border-radius:10px;overflow:hidden;
  background:radial-gradient(circle at 70% 30%,#ffd68a 0 12%,transparent 13%),linear-gradient(160deg,#6f8dff,#3b2b8f 70%,#1a1240)}
.s-img svg{width:100%;height:100%;display:block}
.s-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.s-card{border-radius:9px;background:#151519;border:1px solid #232329;padding:10px}
.s-card .ic{width:18px;height:18px;border-radius:6px;margin-bottom:8px}
.s-card .bar{height:4px;background:#2c2c34;margin:4px 0}
.s-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #1f1f22;padding-top:10px}
.s-foot i{width:60px;height:4px;border-radius:2px;background:#2a2a30;display:block}
.s-swatch{display:flex;gap:5px}
.s-swatch i{width:10px;height:10px;border-radius:50%}

/* opis po lewej, na koniec */
.s2-copy{position:absolute;z-index:8;left:clamp(16px,6vw,110px);top:50%;transform:translateY(-50%);width:min(460px,31vw)}
.s2-copy .eyebrow{opacity:0}
.s2-title{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:700;font-size:clamp(26px,2.45vw,42px);line-height:1.04;letter-spacing:-.03em}
.s2-title .line{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.s2-title .line span{display:block;transform:translateY(140%)}
.s2-lead{margin-top:20px;color:var(--muted);font-size:15px;line-height:1.7;max-width:400px;opacity:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;list-style:none}
.chips li{font-size:12px;letter-spacing:.04em;padding:8px 14px;border:1px solid #2d2d2d;border-radius:999px;color:#cfcfcf;opacity:0}
.cta{display:inline-flex;align-items:center;gap:14px;margin-top:26px;padding:14px 26px;border:1px solid #333;border-radius:999px;
  color:var(--ink);text-decoration:none;font-size:13px;letter-spacing:.16em;text-transform:uppercase;opacity:0;pointer-events:auto;
  transition:border-color .3s,background .3s}
.cta:hover{border-color:var(--ink);background:rgba(255,255,255,.04)}

/* =========================================================
   SEKCJA 3 — przeglądarka zamienia się w telefon
   ========================================================= */
.glow{position:absolute;z-index:1;right:0;top:0;bottom:0;width:60vw;pointer-events:none;opacity:0;
  background:radial-gradient(ellipse 45% 55% at 68% 50%,var(--gc,#1b2a6b) 0%,transparent 70%);transition:background .8s}
.island{position:absolute;z-index:3;top:10px;left:50%;width:30%;height:18px;border-radius:12px;background:#000;
  transform:translateX(-50%);opacity:0}
.screen{position:absolute;inset:0;overflow:hidden;opacity:0;border-radius:inherit}
#track{display:flex;width:400%;height:100%;will-change:transform}
/* każdy ekran aplikacji = jeden slajd; u góry pasek statusu pod wycięcie aparatu */
.app{width:25%;height:100%;overflow:hidden;position:relative;padding-top:30px;padding-bottom:16px}
.app img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.app-bosman{background:#020617}
.app-splitka{background:#f3eee2}
.ph-home{position:absolute;z-index:3;bottom:7px;left:50%;width:34%;height:4px;border-radius:3px;background:rgba(255,255,255,.55);
  transform:translateX(-50%);opacity:0;mix-blend-mode:difference}

.s3-copy{position:absolute;z-index:8;left:clamp(16px,6vw,110px);top:50%;transform:translateY(-50%);width:min(460px,31vw);pointer-events:none}
.s3-copy .eyebrow{opacity:0}
.s3-title{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:700;font-size:clamp(26px,2.45vw,42px);line-height:1.04;letter-spacing:-.03em}
.s3-title .line{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.s3-title .line span{display:block;transform:translateY(140%)}
.s3-lead{margin-top:20px;color:var(--muted);font-size:15px;line-height:1.7;max-width:400px;opacity:0}
.apps{list-style:none;margin-top:26px;display:flex;flex-direction:column;gap:6px}
.apps li{position:relative;padding:12px 0 12px 22px;opacity:0}
.apps li::before{content:"";position:absolute;left:0;top:19px;width:8px;height:8px;border-radius:50%;background:#333;transition:background .5s,box-shadow .5s}
.apps li.on::before{background:var(--c);box-shadow:0 0 14px var(--c)}
.apps b{font-family:'Archivo',sans-serif;font-stretch:125%;font-size:19px;font-weight:700;color:#777;transition:color .5s}
.apps li.on b{color:var(--ink)}
.apps span{display:block;font-size:13.5px;color:#666;line-height:1.55;margin-top:3px;transition:color .5s}
.apps li.on span{color:var(--muted)}
.s3-copy .cta,.apps a{pointer-events:auto}
.apps a{text-decoration:none;color:inherit}

/* =========================================================
   ZAPLECZE — narzędzia i certyfikaty (bez zdjęć)
   ========================================================= */
.later{height:40vh;display:flex;align-items:center;justify-content:center;gap:14px;font-size:11px;letter-spacing:.28em;
  text-transform:uppercase;color:#444;border-top:1px solid #111;border-bottom:1px solid #111}
.later i{width:40px;height:1px;background:#333;display:block}
.dots{background-color:#000;background-image:radial-gradient(#1c1c1c 1px,transparent 1.2px);background-size:26px 26px}
.pin{position:relative}
.pin-stage{position:sticky;top:0;height:100vh;height:100lvh;overflow:hidden;display:flex;align-items:center;justify-content:center}

/* --- układ okresowy narzędzi --- */
#tools{height:320vh}
.ptable{position:relative;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(6,auto);gap:8px;
  width:min(1120px,86vw,calc((100vh - 250px) * 1.667 + 72px))}
.tile.fb{margin-top:14px}
@media (max-width:800px){.tile.fb{margin-top:0}}
@media (min-width:801px){.pt-legend{display:contents}.pt-legend ul{grid-row:2 / 4;grid-column:3 / 6;align-self:center;padding:0 10px}.pt-info{grid-row:5 / 7;grid-column:9 / 11;align-self:end;margin:0;padding-left:6px}}
.tile{position:relative;aspect-ratio:1;border-radius:10px;border:1px solid color-mix(in srgb,var(--c) 45%,transparent);
  background:linear-gradient(160deg,color-mix(in srgb,var(--c) 18%,#0b0b0d),#0b0b0d 70%);
  padding:8px 9px;display:flex;flex-direction:column;justify-content:space-between;opacity:0;cursor:default;
  transition:box-shadow .3s,border-color .3s,filter .3s,opacity .3s}
.tile .no{font-family:var(--mono);font-size:10px;color:color-mix(in srgb,var(--c) 70%,#fff)}
.tile b{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:800;font-size:clamp(18px,1.95vw,30px);line-height:1;color:#f2f2ee}
.tile .nm{font-size:clamp(9px,.74vw,11.5px);color:#aaa;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* duże logo narzędzia w środku kafelka, dwuliterowy skrót mały w rogu */
.tile .lg{display:flex;align-items:center;justify-content:flex-start;width:clamp(28px,3.2vw,46px);height:clamp(28px,3.2vw,46px);font-style:normal}
.tile .lg img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 2px 10px rgba(0,0,0,.5))}
.tile .lg img[src*=message-circle]{filter:invert(1)}
/* plik Firebase to logo z napisem — pokazujemy sam płomień z lewej */
.tile .lg img[src*=firebase]{object-fit:cover;object-position:left center}
.tile .lg.ic{color:color-mix(in srgb,var(--c) 85%,#fff)}
.tile .lg.ic svg{width:100%;height:100%}
.tile .lg.txt{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:800;font-size:clamp(24px,2.8vw,40px);color:#eee;line-height:1}
.tile b{position:absolute;top:8px;right:9px;font-size:clamp(11px,.95vw,14px)!important;font-weight:700;color:color-mix(in srgb,var(--c) 75%,#fff)!important;letter-spacing:.02em}
.tile:hover{border-color:var(--c);box-shadow:0 0 0 1px var(--c),0 10px 40px color-mix(in srgb,var(--c) 35%,transparent)}
.ptable.focus .tile{filter:grayscale(1) brightness(.35)}
.ptable.focus .tile.hit{filter:none}
.pt-head{grid-row:1;grid-column:2 / 10;align-self:center;padding-left:14px}
.pt-head .eyebrow{margin-bottom:10px}
.pt-head h2{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:700;font-size:clamp(24px,2.6vw,42px);letter-spacing:-.03em;line-height:1}
.pt-legend{grid-row:2 / 4;grid-column:3 / 6;align-self:center;padding:0 10px}
.pt-legend ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.pt-legend li{display:flex;align-items:center;gap:10px;font-size:13px;color:#777;cursor:pointer;transition:color .3s}
.pt-legend li i{width:10px;height:10px;border-radius:3px;background:var(--c);opacity:.35;transition:opacity .3s,box-shadow .3s}
.pt-legend li em{margin-left:auto;font-style:normal;font-family:var(--mono);font-size:11px;color:#555}
.pt-legend li.on{color:#eee}
.pt-legend li.on i{opacity:1;box-shadow:0 0 12px var(--c)}
.pt-info{margin-top:16px;font-family:var(--mono);font-size:12px;color:#666;min-height:18px}
.pt-info b{color:#eee;font-weight:400}

/* --- certyfikaty: portfel --- */
#certs{height:340vh}
.wallet{position:relative;width:min(1180px,90vw)}
.w-head{text-align:center;margin-bottom:34px}
.w-head .eyebrow{justify-content:center;margin-bottom:12px}
.w-head h2{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:700;font-size:clamp(26px,2.8vw,46px);letter-spacing:-.03em;line-height:1}
.w-head p{margin-top:12px;color:var(--muted);font-size:14px}
.cards{display:flex;flex-wrap:wrap;justify-content:center;gap:18px}
.card{position:relative;width:calc((100% - 54px)/4);aspect-ratio:1.586;border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;
  justify-content:space-between;color:#fff;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.6);will-change:transform}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.14) 45%,transparent 60%);border:1px solid rgba(255,255,255,.1)}
.c-top{display:flex;justify-content:space-between;align-items:flex-start}
.iss{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;opacity:.85}
.chip{width:34px;height:26px;border-radius:6px;background:linear-gradient(135deg,#e8d28a,#a88b3c);opacity:.9;position:relative}
.chip::before{content:"";position:absolute;inset:6px 0;border-top:1px solid rgba(0,0,0,.25);border-bottom:1px solid rgba(0,0,0,.25)}
.c-name{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:700;font-size:clamp(14px,1.25vw,19px);line-height:1.15;max-width:92%}
.c-bot{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;opacity:.75}
.card.google{background:linear-gradient(145deg,#1b1d22,#0f1013);}
.card.google .iss{background:linear-gradient(90deg,#4285f4,#ea4335,#fbbc05,#34a853);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:1}
.card.meta{background:linear-gradient(145deg,#0866ff,#0a2a8a)}
.card.canva{background:linear-gradient(145deg,#00c4cc,#7d2ae8)}
.card.ulc{background:linear-gradient(145deg,#2f3a2a,#141a12);border:1px solid #57703f}
.card.ulc .chip{background:none;border:1px dashed #9fbf7a;border-radius:50%;width:30px;height:30px}
.card.ulc .chip::before{display:none}
.card.ulc .c-name{color:#e4f3cf}
.card{cursor:pointer}
/* lico karty = prawdziwy skan certyfikatu */
.cards .card{aspect-ratio:1.29;padding:0;background:#0d0d0f;border:1px solid #2a2a2e}
.cards .card .scan{opacity:1;z-index:1;background-position:center top}
.cards .card .c-top,.cards .card .c-name{display:none}
.cards .card .c-bot{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:34px 14px 11px;opacity:1;color:#fff;
  background:linear-gradient(to bottom,transparent,rgba(0,0,0,.88) 55%);font-size:11px;letter-spacing:.04em}
.cards .card::before{content:"";position:absolute;z-index:2;left:0;top:0;bottom:0;width:4px;background:var(--acc,#4d7cff)}
.cards .card.google{--acc:linear-gradient(#4285f4,#ea4335,#fbbc05,#34a853)}
.cards .card.meta{--acc:#0866ff}
.cards .card.canva{--acc:linear-gradient(#00c4cc,#7d2ae8)}
.cards .card.ulc{--acc:#7fa35a}
.cards .card .c-see{bottom:auto;top:50%;transform:translate(-50%,-40%)}
.cards .card:hover .c-see{transform:translate(-50%,-50%)}
.card .scan{position:absolute;inset:0;z-index:2;background-size:cover;background-position:center;opacity:0;transition:opacity .35s;border-radius:inherit}
.card .c-see{position:absolute;z-index:4;left:50%;bottom:14px;transform:translate(-50%,6px);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  padding:7px 14px;border-radius:999px;background:rgba(0,0,0,.75);color:#fff;opacity:0;transition:opacity .35s,transform .35s;white-space:nowrap}
.card:hover .scan,.card:focus-visible .scan{opacity:1}
.card:hover .c-see,.card:focus-visible .c-see{opacity:1;transform:translate(-50%,0)}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.88);backdrop-filter:blur(6px);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:18px;padding:24px;opacity:0;pointer-events:none;transition:opacity .3s}
.lightbox.open{opacity:1;pointer-events:auto}
.lightbox img{max-width:min(1000px,94vw);max-height:78vh;border-radius:10px;box-shadow:0 30px 80px rgba(0,0,0,.7);transform:scale(.96);transition:transform .3s}
.lightbox.open img{transform:none}
.lb-bar{display:flex;gap:12px;align-items:center}
.lb-bar a,.lb-bar button{font:inherit;font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:11px 20px;border-radius:999px;
  border:1px solid #444;background:none;color:#eee;text-decoration:none;cursor:pointer}
.lb-bar a:hover,.lb-bar button:hover{border-color:#eee}
.w-hint{text-align:center;margin-top:26px;font-size:12px;color:#555;letter-spacing:.06em;opacity:0}

.outro{height:60vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;text-align:center;padding:0 16px}
.outro small{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.outro h2{font-family:'Archivo',sans-serif;font-stretch:125%;font-size:clamp(28px,4vw,56px);font-weight:700;color:#2a2a2a;letter-spacing:-.02em}

/* --- kontakt --- */
.contact{position:relative;overflow:hidden;min-height:100vh;display:flex;flex-direction:column;justify-content:center;
  padding:120px clamp(16px,6vw,110px) 40px;background:#000;border-top:1px solid #111}
.ct-glow{position:absolute;left:-10vw;top:10%;width:60vw;height:60vw;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(77,124,255,.22),rgba(77,124,255,.06) 40%,transparent 65%);animation:ctPulse 6s ease-in-out infinite}
@keyframes ctPulse{0%,100%{opacity:.6;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}}
.ct-wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,1fr);gap:clamp(30px,6vw,100px);align-items:center;max-width:1240px;margin:0 auto;width:100%}
.ct-title{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:700;font-size:clamp(38px,5.4vw,86px);line-height:.98;letter-spacing:-.04em}
.ct-title span{display:block}
.ct-title span:last-child{color:var(--blue-glow)}
.ct-lead{margin-top:24px;color:var(--muted);font-size:15px;line-height:1.7;max-width:440px}
.ct-line{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:12px;margin-top:14px;padding:18px 0;border-bottom:1px solid #1e1e1e;
  color:var(--ink);text-decoration:none;transition:border-color .3s,padding .3s}
.ct-line:first-of-type{margin-top:34px;border-top:1px solid #1e1e1e}
.ct-line small{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#666}
.ct-line b{font-weight:500;font-size:clamp(16px,1.5vw,21px)}
.ct-line span{color:#555;transition:transform .3s,color .3s}
.ct-line:hover{border-color:#444;padding-left:8px}
.ct-line:hover span{transform:translateX(6px);color:var(--blue-glow)}
.ct-form{position:relative;border-radius:20px;padding:clamp(22px,3vw,38px);background:linear-gradient(160deg,#101014,#0a0a0c);
  border:1px solid #222;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.ct-mock{display:flex;flex-direction:column;gap:14px}
.ct-mock label{display:flex;flex-direction:column;gap:7px;font-size:12px;letter-spacing:.06em;color:#999}
.ct-mock input,.ct-mock textarea{font:inherit;font-size:15px;color:#eee;background:#0c0c0f;border:1px solid #2a2a30;border-radius:10px;padding:12px 14px;outline:none;transition:border-color .3s}
.ct-mock input:focus,.ct-mock textarea:focus{border-color:var(--blue)}
.ct-mock button{margin-top:6px;align-self:flex-start;font:inherit;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#fff;
  background:var(--blue);border:0;border-radius:999px;padding:14px 30px;cursor:pointer;box-shadow:0 10px 30px rgba(77,124,255,.35)}
.ct-note{font-size:11px;color:#555}
/* prawdziwy formularz (Forminator) w tym samym stylu */
.ct-form .forminator-ui{margin:0!important}
.ct-form .forminator-ui .forminator-row{margin-bottom:14px!important}
.ct-form .forminator-ui .forminator-label{font-family:'Archivo',sans-serif!important;font-size:12px!important;letter-spacing:.06em!important;color:#999!important;font-weight:400!important;margin-bottom:7px!important}
.ct-form .forminator-ui .forminator-input,.ct-form .forminator-ui .forminator-textarea,.ct-form .forminator-ui input[type=text],.ct-form .forminator-ui input[type=email],.ct-form .forminator-ui input[type=tel],.ct-form .forminator-ui textarea{
  font-family:'Archivo',sans-serif!important;font-size:15px!important;color:#eee!important;background:#0c0c0f!important;border:1px solid #2a2a30!important;
  border-radius:10px!important;padding:12px 14px!important;box-shadow:none!important;transition:border-color .3s!important}
.ct-form .forminator-ui .forminator-input:focus,.ct-form .forminator-ui .forminator-textarea:focus,.ct-form .forminator-ui input:focus,.ct-form .forminator-ui textarea:focus{border-color:var(--blue)!important}
.ct-form .forminator-ui .forminator-button-submit,.ct-form .forminator-ui button[type=submit]{font-family:'Archivo',sans-serif!important;font-size:13px!important;letter-spacing:.16em!important;
  text-transform:uppercase!important;color:#fff!important;background:var(--blue)!important;border:0!important;border-radius:999px!important;padding:14px 30px!important;
  box-shadow:0 10px 30px rgba(77,124,255,.35)!important;cursor:pointer}
.ct-form .forminator-ui .forminator-description,.ct-form .forminator-ui .forminator-description span{color:#666!important}
.ct-foot{position:relative;display:flex;justify-content:space-between;max-width:1240px;margin:80px auto 0;width:100%;padding-top:22px;border-top:1px solid #151515;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#555}
.ct-sys{font-family:var(--mono);color:#3d5bb5}

/* ---------- zapowiedź sekcji 4 ---------- */
.next{height:70vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;text-align:center;padding:0 16px}
.next small{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.next h2{font-family:'Archivo',sans-serif;font-stretch:125%;font-size:clamp(28px,4vw,56px);font-weight:700;color:#2a2a2a;letter-spacing:-.02em}

/* ---------- intro ---------- */
.intro .p1{animation:emerge 2.8s cubic-bezier(.2,.7,.1,1) both}
.intro .hero-copy > *{animation:rise 1.4s cubic-bezier(.2,.7,.1,1) both}
.intro .hero-copy > *:nth-child(1){animation-delay:1.2s}
.intro .hero-copy > *:nth-child(2){animation-delay:1.35s}
.intro .hero-copy > *:nth-child(3){animation-delay:1.5s}
.intro .bigwords{animation:fadein 3s 0.6s ease both}
.intro .hero-meta,.intro .scrollhint,.intro .nav,.intro .rail{animation:fadein 1.6s 1.8s ease both}
@keyframes emerge{0%{filter:brightness(0) blur(14px);opacity:0;transform:scale(1.08) translateY(3%)}
  40%{opacity:1}100%{filter:brightness(1) blur(0);opacity:1;transform:none}}
@keyframes rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes fadein{from{opacity:0}to{opacity:1}}

/* ---------- telefon ---------- */
@media (max-width:800px){
  .nav ul{display:none}
  .rail{display:none}
  .bigwords{flex-direction:column;justify-content:center;gap:40vh;font-size:22vw}
  .p1{height:78vh}
  .hero-meta{display:none}
  .hero-copy{right:16px;bottom:48px;max-width:none}
  .hero-copy p{max-width:none;font-size:14px}
  .eyebrow{flex-wrap:wrap;letter-spacing:.18em;font-size:10px;gap:8px}
  .scrollhint{display:none}
  .p2wrap{align-items:flex-start;padding-top:8vh}
  .p2{height:58vh}
  .atom{transform-origin:center;scale:.72}
  .site{right:50%;top:auto;bottom:20px;width:80vw;transform:translateX(50%);z-index:4}
  .s-img{aspect-ratio:1.25}
  .s2-copy{top:auto;bottom:24px;transform:none;left:16px;right:16px;width:auto}
  .s2-title{font-size:30px}
  .s2-lead{font-size:14px}
  .s3-copy{top:84px;transform:none;left:16px;right:16px;width:auto}
  .s3-title{font-size:26px}
  .s3-lead,.apps span{display:none}
  .apps{margin-top:10px;flex-direction:row;gap:18px}
  .apps li{padding:6px 0 6px 18px}
  .apps li::before{top:13px}
  .s3-copy .cta{display:none}
  .glow{width:100vw}
  .ct-wrap{grid-template-columns:1fr}
  .contact{padding-top:90px}
  .ct-line{grid-template-columns:70px 1fr auto}
  .ct-foot{flex-direction:column;gap:8px}
  .ptable{grid-template-columns:repeat(5,minmax(0,1fr));width:calc(100vw - 32px);gap:6px}
  .tile{grid-row:auto!important;grid-column:auto!important;padding:5px 6px;border-radius:8px}
  .tile .nm{font-size:8.5px;-webkit-line-clamp:1}
  .tile .lg{width:26px;height:26px}
  .tile .lg.txt{font-size:22px}
  .tile b{top:4px;right:5px;font-size:9px!important}
  .pt-head{grid-row:auto;grid-column:1 / -1;padding:0 0 6px}
  .pt-legend{grid-row:auto;grid-column:1 / -1;order:99;padding:8px 0 0}
  .pt-legend ul{flex-direction:row;flex-wrap:wrap;gap:6px 14px}
  .pt-legend li em{display:none}
  .pt-info{display:none}
  .cards{gap:10px}
  .card{width:calc(50% - 5px);padding:10px 12px;border-radius:11px}
  .iss{font-size:8px}
  .chip{width:22px;height:17px}
  .c-name{font-size:12px}
  .c-bot{font-size:9px}
  .w-head{margin-bottom:18px}
}

/* =========================================================
   STYL PORTFOLIO v2 — jak podstrona projekty graficzne:
   szeroki Archivo wersalikami, czarne tło, bez pastylek, kropek i gradientów
   ========================================================= */
.hero-copy h1,.s2-title,.s3-title,.pt-head h2,.w-head h2,.ct-title,.bigwords{text-transform:uppercase;font-weight:800;letter-spacing:-.02em;line-height:.94}
.hero-copy h1{font-size:clamp(30px,3.7vw,60px)}
.s2-title,.s3-title{font-size:clamp(24px,2.5vw,42px)}
.hero-copy h1 em{font-style:italic;font-weight:300}
.ct-title span:last-child{color:var(--ink)}
.ct-title{font-size:clamp(38px,5.6vw,96px)}
.eyebrow{font-stretch:110%}
.eyebrow i{display:none}
.logo{font-stretch:125%}
.nav ul{font-stretch:110%}
.scrollhint::after{background:var(--ink)}
/* pastylki → proste linie */
.chips{display:block;margin-top:22px;border-top:1px solid #232323;max-width:420px}
.chips li{border:0;border-bottom:1px solid #232323;border-radius:0;padding:11px 0;font-size:14px}
.cta{border-radius:0;background:var(--ink);color:#000;border-color:var(--ink);font-weight:600;font-stretch:110%}
.cta:hover{background:var(--blue-glow);border-color:var(--blue-glow);color:#000}
.apps li::before{border-radius:0;width:14px;height:1px;top:22px;box-shadow:none!important}
.apps li.on::before{background:var(--c)}
.a-btn,.s-btn,.s-nav em,.card .c-see,.lb-bar a,.lb-bar button{border-radius:0}
.s-btn{box-shadow:none}
/* bez gradientów */
.glow,.ct-glow{display:none}
.dots{background-image:none}
.tile{background:#0b0b0d}
.s-nav b{background:var(--blue)}
.card::after{background:none}
.cards .card.google{--acc:#4285f4}
.cards .card.canva{--acc:#00c4cc}
/* kontakt i formularz: linie zamiast ramek, prostokątny przycisk */
.ct-form{border-radius:0;background:#000;border:1px solid #232323;box-shadow:none}
.ct-mock{gap:16px}
.ct-mock label{gap:8px;letter-spacing:.08em;color:var(--muted)}
.ct-mock input,.ct-mock textarea{background:#000;border:0;border-bottom:1px solid #333;border-radius:0;padding:10px 0}
.ct-mock input:focus,.ct-mock textarea:focus{border-color:var(--ink)}
.ct-mock button{background:var(--ink);color:#000;border-radius:0;box-shadow:none;font-weight:600;padding:16px 26px}
.ct-form .forminator-ui .forminator-label{color:var(--muted)!important;letter-spacing:.08em!important}
.ct-form .forminator-ui input[type=text],.ct-form .forminator-ui input[type=email],.ct-form .forminator-ui input[type=tel],.ct-form .forminator-ui textarea,
.ct-form .forminator-ui .forminator-input,.ct-form .forminator-ui .forminator-textarea{background:#000!important;border:0!important;border-bottom:1px solid #333!important;border-radius:0!important;padding:10px 0!important}
.ct-form .forminator-ui input:focus,.ct-form .forminator-ui textarea:focus{border-bottom-color:var(--ink)!important}
.ct-form .forminator-ui .forminator-button-submit,.ct-form .forminator-ui button[type=submit]{background:var(--ink)!important;color:#000!important;border-radius:0!important;box-shadow:none!important;font-weight:600!important;padding:16px 26px!important}
.ct-line{font-stretch:100%}
.pt-head h2{font-size:clamp(18px,1.85vw,32px)}
@media (prefers-reduced-motion:reduce){
  .grain,.implant::before,.implant::after,.scrollhint::after{animation:none}
}







.contact .h-xl,.contact .ct-title{font-size:clamp(38px,5.4vw,92px);overflow-wrap:anywhere}
.ct-form{min-width:0}

.rail{display:none!important}
@media (min-width:901px){
.hero-meta{right:calc(clamp(56px,8vw,130px) + var(--spis,0px))}
.site{right:calc(clamp(40px,6vw,110px) + var(--spis,0px))}
}
/* telefon: portrety wygasają od dołu do czerni zamiast kończyć się ostrą krawędzią */
@media (max-width:900px){
  .p1 img{-webkit-mask-image:radial-gradient(ellipse 62% 70% at 50% 42%,#000 55%,transparent 100%),linear-gradient(#000 62%,transparent 94%);
          mask-image:radial-gradient(ellipse 62% 70% at 50% 42%,#000 55%,transparent 100%),linear-gradient(#000 62%,transparent 94%);
          -webkit-mask-composite:source-in;mask-composite:intersect}
  .p2 img{-webkit-mask-image:radial-gradient(ellipse 60% 72% at 50% 42%,#000 55%,transparent 100%),linear-gradient(#000 58%,transparent 92%);
          mask-image:radial-gradient(ellipse 60% 72% at 50% 42%,#000 55%,transparent 100%),linear-gradient(#000 58%,transparent 92%);
          -webkit-mask-composite:source-in;mask-composite:intersect}
}




/* dioda: zwykłe przenikanie zamiast mix-blend/blur; gaśnie, gdy nie jesteśmy na starcie */
.implant{mix-blend-mode:normal!important}
.implant::before{filter:none!important}
.no-led .implant{display:none}
/* telefon: tekst hero wyżej (dół ekranu zasłaniają przyciski przeglądarki i tłumacza), bez listy usług na twarzy */
@media (max-width:800px){
  .hero-copy{bottom:92px}
  .hero-copy .eyebrow{display:none}
  .ptable{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:5px!important}
  .tile{padding:4px 5px!important}
  .tile .lg{width:22px!important;height:22px!important}
  .tile .nm{font-size:7.5px!important}
  .tile .no{font-size:8px}
}
/* ===== v2: działa na produkcji ===== */
.prod{position:relative;padding:150px calc(clamp(16px,6vw,110px) + var(--spis,0px)) 120px clamp(16px,6vw,110px);border-top:1px solid #1c1c1c}
.pr-kick{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-stretch:110%}
.pr-title{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:800;text-transform:uppercase;letter-spacing:-.02em;line-height:.94;font-size:clamp(32px,4.6vw,80px);margin:18px 0 22px;max-width:1100px}
.pr-title em{font-style:italic;font-weight:300;color:var(--muted)}
.pr-lead{color:var(--muted);font-size:15px;line-height:1.7;max-width:560px}
.pr-list{list-style:none;margin-top:60px;border-top:1px solid #232323;max-width:1240px}
.pr-row{display:grid;grid-template-columns:70px 1fr 280px;gap:24px;align-items:start;padding:28px 0;border-bottom:1px solid #232323;cursor:default;
  opacity:.001;transform:translateY(24px);transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.1,1),padding .35s}
.pr-row.in{opacity:1;transform:none}
.pr-no{font-size:13px;font-weight:600;color:#555;font-variant-numeric:tabular-nums;padding-top:8px;transition:color .3s}
.pr-main h3{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:800;text-transform:uppercase;font-size:clamp(20px,2.1vw,34px);letter-spacing:-.01em;line-height:1;transition:color .3s}
.pr-main p{margin-top:12px;color:var(--muted);font-size:14.5px;line-height:1.65;max-width:620px}
.pr-meta{padding-top:6px;text-align:right}
.pr-meta b{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--k);font-weight:600;margin-bottom:8px}
.pr-meta span{font-size:12.5px;color:#777;line-height:1.6}
.pr-row:hover{padding-left:10px}
.pr-row:hover .pr-no{color:var(--k)}
.pr-row:hover h3{color:var(--k)}
.pr-float{position:fixed;left:0;top:0;z-index:30;width:250px;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.9) rotate(-4deg);transition:opacity .3s,transform .4s}
.pr-float.on{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-4deg)}
.pr-float img,.pr-float .pv{display:none}
.pr-float[data-v=img] img{display:block;width:100%;aspect-ratio:.8;object-fit:cover;object-position:top;border-radius:12px;box-shadow:0 30px 70px rgba(0,0,0,.8),0 0 0 1px rgba(255,255,255,.1)}
.pr-float[data-v=notif] .pv-notif,.pr-float[data-v=wizard] .pv-wizard,.pr-float[data-v=alert] .pv-alert{display:block}
.pv{background:#0b0b0d;border:1px solid var(--k);padding:18px;box-shadow:0 30px 70px rgba(0,0,0,.8)}
.pv small{display:block;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#888;margin-bottom:10px}
.pv b{display:block;font-size:15px;color:#f3f3f1;margin-bottom:6px}
.pv span{display:block;font-size:12px;color:#888}
.pv i{display:block;margin-top:14px;font-style:normal;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--k)}
.pv .wz{display:flex;gap:6px;margin:4px 0 16px}.pv .wz i{margin:0;flex:1;height:4px;background:#2a2a2a}.pv .wz i.on{background:var(--k)}
.pv s{display:block;height:6px;background:#26262a;margin:8px 0}
.pv-alert b{color:var(--k)}
/* ===== v2: jak pracuję ===== */
.how{padding:130px calc(clamp(16px,6vw,110px) + var(--spis,0px)) 130px clamp(16px,6vw,110px);border-top:1px solid #1c1c1c}
.how-list{list-style:none;margin-top:40px;display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(24px,5vw,90px);max-width:1240px}
.how-list li{padding:34px 0;border-top:1px solid #232323;opacity:.001;transform:translateY(24px);transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.1,1)}
.how-list li.in{opacity:1;transform:none}
.how-list span{font-size:12px;font-weight:600;color:var(--blue-glow)}
.how-list h3{font-family:'Archivo',sans-serif;font-stretch:125%;font-weight:800;text-transform:uppercase;font-size:clamp(22px,2.4vw,40px);line-height:1;letter-spacing:-.02em;margin:12px 0 14px}
.how-list p{color:var(--muted);font-size:15px;line-height:1.65;max-width:460px}
@media (max-width:900px){
  .pr-row{grid-template-columns:40px 1fr;gap:10px}
  .pr-meta{grid-column:2;text-align:left;padding-top:0}
  .pr-float{display:none}
  .how-list{grid-template-columns:1fr}
}






/*SPIS-CSS*/
/* ===== spis sekcji: gdzie jestem i ile jeszcze zostało ===== */
.sp-nav{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:80;display:flex;flex-direction:column;align-items:flex-end;gap:4px;
  font-family:'Archivo',system-ui,sans-serif;opacity:0;transition:opacity .4s}
.sp-nav.on{opacity:1}
.sp-it{display:flex;align-items:center;gap:12px;padding:5px 0;background:none;border:0;cursor:pointer;color:#8b8b88;font:inherit}
.sp-lb{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-stretch:110%;white-space:nowrap;opacity:0;transform:translateX(8px);
  transition:opacity .3s,transform .3s,color .3s;pointer-events:none}
.sp-no{font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;width:18px;text-align:right;transition:color .3s}
.sp-bar{position:relative;width:2px;height:26px;background:#2a2a2a;overflow:hidden}
.sp-bar i{position:absolute;left:0;right:0;top:0;height:0;background:var(--acc,#f3f3f1)}
.sp-nav.flash .sp-it.cur .sp-lb{opacity:1;transform:none;color:#f3f3f1}
.sp-nav.flash .sp-lb,.sp-nav:hover .sp-lb{background:#000;padding:3px 6px}
.sp-it.cur .sp-no{color:var(--acc,#f3f3f1)}
.sp-it.done .sp-no{color:#5a5a58}
.sp-nav:hover .sp-lb{opacity:1;transform:none}
.sp-it:hover .sp-lb,.sp-it:hover .sp-no{color:#f3f3f1}
.sp-left{order:-1;margin:0 0 10px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#6f6f6c;font-variant-numeric:tabular-nums;white-space:nowrap}
.sp-left b{color:#f3f3f1;font-weight:600}
/* podpowiedź „dalej” na dole ekranu */
.sp-next{position:fixed;right:clamp(14px,2vw,30px);bottom:22px;z-index:80;display:flex;align-items:center;gap:12px;background:none;border:0;cursor:pointer;
  font:600 11px/1 'Archivo',system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#f3f3f1;opacity:0;transform:translateY(10px);
  transition:opacity .4s,transform .4s;pointer-events:none;padding:10px 0}
.sp-next.on{opacity:1;transform:none;pointer-events:auto}
.sp-next small{color:#8b8b88;font-weight:500}
.sp-next span{display:inline-block;animation:spBob 1.6s ease-in-out infinite;color:var(--acc,#f3f3f1)}
@keyframes spBob{50%{transform:translateY(4px)}}
/* telefon: cienki pasek postępu u góry zamiast spisu */
.sp-top{position:fixed;left:0;right:0;top:0;z-index:95;height:3px;display:none;gap:3px}
.sp-top i{flex:1;background:#262626;position:relative;overflow:hidden}
.sp-top i b{position:absolute;inset:0;background:var(--acc,#f3f3f1);transform-origin:left;transform:scaleX(0)}
:root{--spis:70px}
@media (max-width:900px){
  :root{--spis:0px}
  .sp-nav{display:none}
  .sp-top{display:flex}
  .sp-next{display:none}
}
@media (prefers-reduced-motion:reduce){.sp-next span{animation:none}}
/*/SPIS-CSS*/

/*MENU-CSS*/
/* ===== menu nawigacyjne (wspólne dla nowych podstron) ===== */
.nav{display:none!important}
.mn{position:fixed;top:0;left:0;right:0;z-index:90;display:flex;justify-content:space-between;align-items:center;padding:26px clamp(16px,4vw,56px);
  mix-blend-mode:difference;color:#f3f3f1;font-family:'Archivo',system-ui,sans-serif}
.mn-logo{font-stretch:125%;font-weight:800;font-size:18px;letter-spacing:-.01em;color:inherit;text-decoration:none}
.mn-right{display:flex;align-items:center;gap:34px}
/* przełącznik języka (TranslatePress) zamiast pływającego przycisku */
.mn-lang{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;letter-spacing:.14em;font-stretch:110%}
.mn-lang a{color:#8b8b88;text-decoration:none;transition:color .3s}.mn-lang a:hover,.mn-lang a.on{color:#f3f3f1}
.mn-lang span{color:#444}
.mn-quick{font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;font-stretch:110%;color:inherit;text-decoration:none;
  background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;padding-bottom:4px;transition:background-size .35s}
.mn-quick:hover{background-size:100% 1px}
.mn-btn{display:flex;align-items:center;gap:14px;background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:6px 0}
.mn-btn-t{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;font-stretch:110%}
.mn-burger{position:relative;width:30px;height:12px}
.mn-burger i{position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .5s cubic-bezier(.7,0,.2,1),top .5s cubic-bezier(.7,0,.2,1)}
.mn-burger i:first-child{top:0}.mn-burger i:last-child{top:10px}
.mn-btn:hover .mn-burger i:last-child{transform:scaleX(.6);transform-origin:right}
.mn-open .mn-burger i:first-child{top:5px;transform:rotate(45deg)}
.mn-open .mn-burger i:last-child{top:5px;transform:rotate(-45deg)}

.mn-panel{position:fixed;inset:0;z-index:85;background:#000;color:#f3f3f1;font-family:'Archivo',system-ui,sans-serif;
  clip-path:inset(0 0 100% 0);transition:clip-path .8s cubic-bezier(.77,0,.18,1);visibility:hidden}
.mn-open .mn-panel{clip-path:inset(0 0 0 0);visibility:visible}
.mn-panel.closing{visibility:visible}
.mn-inner{height:100%;display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(24px,5vw,90px);padding:110px clamp(16px,4vw,56px) 40px;align-items:center}
.mn-list ul{list-style:none;border-top:1px solid #232323}
.mn-item{border-bottom:1px solid #232323;position:relative}
.mn-link{display:grid;grid-template-columns:54px 1fr;align-items:baseline;padding:clamp(9px,1.6vh,20px) 0;color:inherit;text-decoration:none}
.mn-no{font-size:12px;font-weight:500;letter-spacing:.1em;color:#6f6f6c;font-variant-numeric:tabular-nums;transition:color .3s}
.mn-name{display:block;overflow:hidden;padding-bottom:.06em}
.mn-name span{display:block;font-stretch:125%;font-weight:800;text-transform:uppercase;letter-spacing:-.02em;line-height:.95;
  font-size:clamp(24px,3.3vw,56px);white-space:nowrap;transform:translateY(105%);transition:transform .8s cubic-bezier(.2,.7,.1,1),color .3s,font-style .3s}
.mn-open .mn-name span{transform:none}
.mn-link:hover .mn-name span,.mn-item.is-current .mn-name span{font-style:italic;font-weight:300}
.mn-link:hover .mn-name span{color:var(--k)}
.mn-link:hover .mn-no,.mn-item.is-current .mn-no{color:var(--k)}
.mn-sub a:hover{color:var(--k)!important}
.mn-item.is-current .mn-no{color:#f3f3f1}
.mn-link{position:relative}
.mn-item.is-current .mn-link::after{content:"Jesteś tutaj";grid-column:2;margin-top:8px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#8b8b88}
.mn-list:hover .mn-item:not(:hover) .mn-name span{color:#3a3a38}
.mn-sub{display:flex;flex-wrap:wrap;gap:6px 26px;padding:0 0 16px 54px;margin-top:-6px}
.mn-sub a{font-size:13px;letter-spacing:.06em;color:#8b8b88;text-decoration:none;transition:color .3s}
.mn-sub a::before{content:"↳ ";color:#4a4a48}
.mn-sub a:hover{color:#f3f3f1}
.mn-side{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;gap:30px}
.mn-frame{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center}
.mn-prev{position:absolute;width:min(78%,360px);display:flex;flex-direction:column;align-items:center;gap:18px;
  opacity:0;transform:translateY(24px) rotate(3deg) scale(.95);transition:opacity .45s,transform .7s cubic-bezier(.2,.7,.1,1);pointer-events:none}
.mn-prev.on{opacity:1;transform:rotate(-3deg)}
.mn-box{position:relative;width:100%;aspect-ratio:.8;overflow:hidden;border-radius:14px;background:#0b0b0b;
  box-shadow:0 30px 70px rgba(0,0,0,.7),0 0 0 1px color-mix(in srgb,var(--k) 45%,transparent)}
.mn-box > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mn-home .mn-box > img{object-position:50% 22%}
.mn-cap{font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;font-stretch:110%;color:var(--k)}
.mn-prev .p{opacity:0}
.mn-prev.on .p{animation:mnBuild 5.5s cubic-bezier(.2,.7,.1,1) var(--d,0s) infinite}
@keyframes mnBuild{0%{opacity:0;transform:translateY(18px) scale(.9)}14%{opacity:1;transform:none}82%{opacity:1;transform:none}92%,100%{opacity:0;transform:translateY(-6px)}}
/* budowa stron */
.mn-web .mn-box{aspect-ratio:1.05;background:#0d0d0f}
.w-bar{display:flex;align-items:center;gap:5px;padding:10px 12px;border-bottom:1px solid #1f1f22}
.w-bar i{width:8px;height:8px;border-radius:50%;background:#2c2c30}
.w-bar span{margin-left:8px;flex:1;height:14px;border-radius:4px;background:#161618}
.w-body{padding:16px;display:flex;flex-direction:column;gap:14px}
.w-nav{display:flex;align-items:center;gap:10px}.w-nav b{width:20px;height:20px;border-radius:5px;background:var(--k)}
.w-nav s{width:30px;height:5px;background:#34343a}
.w-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:12px;align-items:center}
.w-h{height:14px;width:92%;background:#ececec;margin-bottom:7px}.w-h2{width:70%}
.w-t{height:5px;width:90%;background:#2e2e36;margin:9px 0 0}.w-t.w2{width:66%;margin-top:6px}
.w-btn{width:56%;height:18px;margin-top:12px;background:var(--k)}
.w-img{aspect-ratio:1;background:color-mix(in srgb,var(--k) 22%,#111);border:1px solid color-mix(in srgb,var(--k) 50%,transparent)}
.w-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.w-cards div{height:52px;background:#151519;border:1px solid #232329;border-top:2px solid var(--k)}
/* aplikacje */
.mn-phone{position:relative;width:62%;aspect-ratio:.5;border-radius:34px;border:8px solid #151515;background:#0b0b0b;padding:34px 12px 12px;display:flex;flex-direction:column;gap:10px;
  box-shadow:0 30px 70px rgba(0,0,0,.7),0 0 0 1px color-mix(in srgb,var(--k) 45%,transparent)}
.ph-notch{position:absolute;top:9px;left:50%;width:34%;height:14px;border-radius:10px;background:#000;transform:translateX(-50%)}
.a-head{display:flex;align-items:center;gap:8px}.a-head b{width:22px;height:22px;border-radius:6px;background:var(--k)}.a-head s{height:7px;width:50%;background:#3a3a3a}
.a-big{height:22%;border:1.5px solid var(--k);border-radius:10px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px}
.a-big s{width:30%;height:4px;background:#444}.a-big b{width:55%;height:14px;background:#eee}
.a-row{display:flex;justify-content:space-between;align-items:center;padding:10px;border:1px solid #262626;border-radius:8px}
.a-row s{width:42%;height:5px;background:#3a3a3a}.a-row b{width:18%;height:6px;background:var(--k)}
.a-tabs{margin-top:auto;display:flex;justify-content:space-around;padding-top:10px;border-top:1px solid #222}
.a-tabs i{width:14px;height:14px;border-radius:4px;background:#333}.a-tabs i.on{background:var(--k)}
/* aplikacje webowe: panel w przeglądarce */
.mn-dash .mn-box{aspect-ratio:1.05;background:#0d0d0f}
.d-body{display:grid;grid-template-columns:24% 1fr;height:calc(100% - 35px)}
.d-side{border-right:1px solid #1f1f22;padding:14px 10px;display:flex;flex-direction:column;gap:10px}
.d-side b{height:10px;width:70%;background:#3a3a3a}.d-side s{height:6px;background:#26262b}.d-side s.on{background:var(--k)}
.d-main{padding:14px;display:flex;flex-direction:column;gap:12px}
.d-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.d-kpi div{height:40px;border:1px solid #26262b;border-top:2px solid var(--k)}
.d-chart{flex:1;display:flex;align-items:flex-end;gap:8%;border-bottom:1px solid #26262b;padding:0 4px}.d-chart i{flex:1;background:var(--k)}
.d-row{height:14px;border-bottom:1px solid #1f1f22;position:relative}.d-row::before{content:'';position:absolute;left:0;top:4px;width:40%;height:5px;background:#2c2c30}
/* AI dla zespołu: rozmowa z asystentem */
.mn-chat .mn-box{aspect-ratio:.9;padding:16px;display:flex;flex-direction:column;gap:14px}
.c-top{display:flex;align-items:center;gap:8px;padding-bottom:12px;border-bottom:1px solid #222}
.c-top b{width:18px;height:18px;border-radius:50%;background:var(--k)}.c-top s{width:40%;height:6px;background:#3a3a3a}
.c-q{align-self:flex-end;width:62%;border:1px solid #333;border-radius:12px 12px 4px 12px;padding:10px;display:flex;flex-direction:column;gap:6px}
.c-q s{height:5px;background:#555}.c-q s+s{width:60%}
.c-src{display:flex;align-items:center;gap:8px}.c-src i{width:7px;height:7px;background:var(--k)}.c-src s{width:46%;height:4px;background:#333}
.c-a{width:86%;border-left:2px solid var(--k);padding:2px 0 2px 12px;display:flex;flex-direction:column;gap:7px}
.c-a s{height:5px;background:#cfcfcc}.c-a s:nth-child(2){width:90%}.c-a s:nth-child(3){width:75%}.c-a s.h{width:40%;background:var(--k)}
/* projekty graficzne: zmieniające się prace */
.mn-gal .mn-box > img{opacity:0}
.mn-gal.on .mn-box > img{animation:mnFade 12s linear infinite}
@keyframes mnFade{0%{opacity:0;transform:scale(1.1)}4%{opacity:1}25%{opacity:1}29%{opacity:0;transform:scale(1)}100%{opacity:0}}
/* automatyzacje: mózg ze stworkami (ze strony Automatyzacje) */
.mn-auto{--hot:#ff9a3c;--hot2:#ffdca0}
.mn-auto-fit{width:400px;height:400px;display:grid;place-items:center}
.mn-auto .ah-visual{display:grid;place-items:center;min-height:480px}
.mn-auto .ah-stage{position:relative;width:480px;height:480px;transform:scale(var(--sc,1));transform-origin:center}
.mn-auto .ah-halo{position:absolute;inset:-6%;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(225,20,20,.28),rgba(225,20,20,.06) 42%,transparent 66%);filter:blur(14px);animation:ah-breathe 6s ease-in-out infinite}
.mn-auto .ah-halo.ring{inset:8%;background:none;border:1px solid rgba(255,90,90,.10);box-shadow:inset 0 0 60px rgba(225,20,20,.14);filter:none;animation:ah-spin 60s linear infinite}
.mn-auto .ah-core{position:absolute;left:50%;top:50%;width:120px;height:120px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,150,80,.9),rgba(225,20,20,.5) 40%,transparent 70%);filter:blur(6px);z-index:2;animation:ah-breathe 4.5s ease-in-out infinite}
.mn-auto .ah-brain{position:absolute;inset:0;z-index:3;overflow:visible}
.mn-auto .ah-brain .fissure,.mn-auto .ah-brain .sulci path{fill:none;stroke:#ffb3a0;stroke-width:2.4;stroke-linecap:round;opacity:.55;filter:drop-shadow(0 0 4px rgba(255,90,50,.5))}
.mn-auto .ah-brain .body{filter:drop-shadow(0 0 26px rgba(225,20,20,.5))}
.mn-auto .ah-brain .node{fill:#fff;filter:drop-shadow(0 0 6px #ff6a2e);animation:ah-node 3s ease-in-out infinite}
.mn-auto .ah-brain .node:nth-child(2n){animation-delay:.6s}
.mn-auto .ah-brain .node:nth-child(3n){animation-delay:1.2s}
.mn-auto .ah-brain .node:nth-child(4n){animation-delay:1.8s}
.mn-auto .ah-orbit{position:absolute;inset:0;pointer-events:none}
.mn-auto .ah-orbit.tilt1{transform:rotate(-22deg)}
.mn-auto .ah-orbit.tilt2{transform:rotate(26deg)}
.mn-auto .ah-orbit.tilt3{transform:rotate(72deg)}
.mn-auto .ah-orbit.front{z-index:5}
.mn-auto .ah-ringline{position:absolute;inset:0;overflow:visible;z-index:1}
.mn-auto .ah-ringline path{fill:none;stroke:rgba(255,120,120,.16);stroke-width:1.3;stroke-dasharray:3 7}
.mn-auto .ah-sat{position:absolute;left:0;top:0;width:44px;height:48px;margin-left:-22px;margin-top:-24px;offset-rotate:0deg;animation:ah-orbit var(--dur) linear infinite;animation-delay:var(--delay,0s)}
.mn-auto .ah-orbit.rev .ah-sat{animation-direction:reverse}
.mn-auto .ah-bot{width:44px;height:48px;display:block;animation:ah-bob 1.15s ease-in-out infinite}
.mn-auto .ah-bot .px{fill:#cd7f5f}
.mn-auto .ah-bot .fill{fill:#f2e9dc}
.mn-auto .ah-bot .screen{fill:#241206}
.mn-auto .ah-bot .eye{fill:#161616;animation:ah-blink 4.5s steps(1) infinite}
.mn-auto .ah-bot .edge{fill:none;stroke:rgba(190,120,80,.55);stroke-width:1}
.mn-auto .ah-bot .ant{fill:var(--hot);filter:drop-shadow(0 0 5px var(--hot));animation:ah-antp 1.6s ease-in-out infinite}
.mn-auto .ah-bot .star{fill:#d97757;filter:drop-shadow(0 0 5px #ff9a3c);animation:ah-antp 2.2s ease-in-out infinite}
.mn-auto .ah-bot .prompt{fill:none;stroke:#eaa877;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.mn-auto .ah-think{position:absolute;left:50%;top:-14px;transform:translateX(-50%);display:flex;gap:4px}
.mn-auto .ah-think i{width:4px;height:4px;border-radius:50%;background:var(--hot2);opacity:.2;box-shadow:0 0 5px var(--hot);animation:ah-dot 1.4s ease-in-out infinite}
.mn-auto .ah-think i:nth-child(2){animation-delay:.2s}
.mn-auto .ah-think i:nth-child(3){animation-delay:.4s}
@keyframes ah-breathe{0%,100%{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}
@keyframes ah-node{0%,100%{opacity:.25;r:2}50%{opacity:1;r:3.4}}
@keyframes ah-orbit{to{offset-distance:100%}}
@keyframes ah-blink{0%,92%,100%{opacity:1}94%,98%{opacity:.15}}
@keyframes ah-antp{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes ah-dot{0%,60%,100%{opacity:.2;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
@keyframes ah-scroll{to{transform:translateX(-50%)}}
@keyframes ah-spin{to{transform:rotate(360deg)}}
@keyframes ah-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}

.mn-auto .ah-stage{--sc:.86;flex:none}
.mn-contact{display:grid;gap:0;border-top:1px solid #232323;opacity:0;transform:translateY(16px);transition:opacity .6s .45s,transform .6s .45s}
.mn-open .mn-contact{opacity:1;transform:none}
.mn-contact a{display:grid;grid-template-columns:80px 1fr;padding:14px 0;border-bottom:1px solid #232323;color:inherit;text-decoration:none;font-size:15px;transition:padding .3s}
.mn-contact a:hover{padding-left:8px}
.mn-contact small{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#6f6f6c;align-self:center}
html.mn-lock.mn-lock,html.mn-lock.mn-lock body{overflow:hidden!important}
body.admin-bar .mn{top:32px}
body.admin-bar .mn-panel{top:32px}
@media (max-width:782px){body.admin-bar .mn{top:46px}body.admin-bar .mn-panel{top:46px}}
@media (max-width:800px){
  .mn{background:#000;mix-blend-mode:normal;padding-top:18px;padding-bottom:18px}
  .mn-quick{display:none}
  .mn-right{gap:20px}
  .mn-inner{grid-template-columns:1fr;align-items:start;padding-top:96px;overflow-y:auto}
  .mn-frame{display:none}
  .mn-link{grid-template-columns:40px 1fr}
  .mn-sub{padding-left:40px}
  .mn-name span{font-size:6.6vw;white-space:normal}
}
@media (max-width:440px){
  .mn-btn-t{display:none}
}
@media (prefers-reduced-motion:reduce){.mn-panel,.mn-name span,.mn-prev{transition:none}.mn-flow .mn-pulse{animation:none}}
/*/MENU-CSS*/

/* WordPress: pełna szerokość, bez marginesów motywu */
html,body{margin:0!important;padding:0!important;background:#000!important}
.ffl{position:relative;color:var(--ink);font-family:'Archivo',system-ui,sans-serif}
/* reset o zerowej wadze — nie nadpisuje odstępów z klas */
:where(.ffl) :where(h1,h2,h3,p,ul){margin:0}
:where(.ffl) a{text-decoration:none}
/* motyw daje akapitom własną, cieńszą czcionkę */
.ffl p,.ffl li,.ffl label{font-family:'Archivo',system-ui,sans-serif;font-weight:400}
/* snippet „ucinak” daje html i body overflow-x:hidden !important — to wyłącza przyklejanie scen (position:sticky).
   clip przycina tak samo, ale nie tworzy kontenera przewijania */
html:has(.ffl){overflow:visible!important}
html:has(.ffl) body{overflow-x:clip!important;overflow-y:visible!important}
/* pasek administratora (widoczny tylko po zalogowaniu) nie może zasłaniać menu */
body.admin-bar .ffl .nav{top:32px}
@media (max-width:782px){body.admin-bar .ffl .nav{top:46px}}
/* WordPress owija formularz w pusty akapit */
.ct-form > p:empty{display:none}
