:root{
  --ps-cn-bg:#020e18;

  --ps-text:#ffffff;
  --ps-muted:rgba(255,255,255,.70);

  --ps-ring:#ffffff;

  /* czytelność liczb */
  --ps-cn-value:#ffffff;
  --ps-cn-glow: rgba(110,190,255,.22);
}

/* FULL WIDTH breakout */
.ps-counternet{
  position:relative;
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);

  min-height:100svh;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;

  background:var(--ps-cn-bg);
  color:var(--ps-text);
}

/* smooth top transition */
.ps-counternet::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
  background:
    linear-gradient(
      to bottom,
      rgba(255,255,255,.06) 0%,
      rgba(255,255,255,.02) 10%,
      rgba(255,255,255,0) 26%,
      rgba(0,0,0,.22) 100%
    );
  opacity:.55;
}

/* canvas */
.ps-counternet__bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  pointer-events:none;
}

/* content */
.ps-counternet__container{
  position:relative;
  z-index:2;
  width:min(1200px, calc(100% - 48px));
  margin:0 auto;

  padding:
    clamp(18px, 2.6vw, 32px)
    0
    clamp(120px, 10vw, 170px);

  text-align:center;

  opacity:0;
  transform:translateY(18px);
  transition:
    opacity .85s cubic-bezier(.2,.8,.2,1),
    transform .85s cubic-bezier(.2,.8,.2,1),
    filter .85s cubic-bezier(.2,.8,.2,1);
}

.ps-counternet.is-visible .ps-counternet__container{
  opacity:1;
  transform:translateY(0);
}

/* header */
.ps-counternet__title{
  font-family: "Teko", sans-serif;
  font-weight:600;
  font-size:clamp(40px, 4.8vw, 72px);
  line-height:.95;
  margin:0 0 10px;
	color: #fff;
}

.ps-counternet__lead{
  max-width:820px;
  margin:0 auto clamp(30px, 3.8vw, 48px);
  font-family: "Poppins", sans-serif;
  font-weight:300;
  font-size:16px;
  line-height:1.65;
  color: #fff;
}

/* grid */
.ps-counternet__grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(28px, 3.2vw, 52px);
}

/* counter item */
.ps-counter{
  position:relative;
  opacity:0;
  transform:translateY(18px);
  transition: opacity .65s ease, transform .65s ease;
}

.ps-counternet.is-visible .ps-counter{
  opacity:1;
  transform:translateY(0);
}

.ps-counternet.is-visible .ps-counter:nth-child(1){transition-delay:.05s}
.ps-counternet.is-visible .ps-counter:nth-child(2){transition-delay:.10s}
.ps-counternet.is-visible .ps-counter:nth-child(3){transition-delay:.15s}
.ps-counternet.is-visible .ps-counter:nth-child(4){transition-delay:.20s}

/* ring wrapper */
.ps-counter__ring{
  width:118px;
  height:118px;
  margin:0 auto 14px;
  position:relative;

  /* ✅ hover */
  transform-origin:center;
  transform:scale(1);
  transition:
    transform .85s cubic-bezier(.2,.8,.2,1),
    filter .85s cubic-bezier(.2,.8,.2,1);
  will-change:transform, filter;
}

.ps-counter__svg{
  width:100%;
  height:100%;
  transform:rotate(-90deg);
  display:block;
  filter: drop-shadow(0 0 10px rgba(90,170,255,.08));
  transition: filter .85s cubic-bezier(.2,.8,.2,1);
}

/* base ring */
.ps-counter__track{
  fill:none;
  stroke:rgba(255,255,255,.18);
  stroke-width:1.2;
  transition: stroke .85s cubic-bezier(.2,.8,.2,1);
}

/* progress ring */
.ps-counter__bar{
  fill:none;
  stroke:rgba(255,255,255,.92);
  stroke-width:3.2;
  stroke-linecap:round;
  stroke-dasharray:0 999;
  opacity:.98;
  transition: stroke .85s cubic-bezier(.2,.8,.2,1), opacity .85s cubic-bezier(.2,.8,.2,1);
}

/* ✅ wartości na środku kółka */
.ps-counter__valuewrap{
  position:absolute;
  left:50%;
  top:0;
  width:118px;
  height:118px;

  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;

  line-height:1;
  transform:translate(-50%, -2px);
  pointer-events:none;
}

.ps-counter__plus{
  font-family: "Teko", sans-serif;
  font-weight:500;
  font-size:22px;
  opacity:.90;
  color:var(--ps-cn-value);
  text-shadow:
    0 2px 10px rgba(0,0,0,.55),
    0 0 18px var(--ps-cn-glow);
  display:inline-block;
  transition: transform .85s cubic-bezier(.2,.8,.2,1);
}

.ps-counter__value{
  font-family: "Teko", sans-serif;
  font-weight:600;
  font-size:40px;
  line-height:1;
  letter-spacing:.4px;
  color:var(--ps-cn-value);
  text-shadow:
    0 2px 10px rgba(0,0,0,.55),
    0 0 22px var(--ps-cn-glow);
  display:inline-block;
  transition: transform .85s cubic-bezier(.2,.8,.2,1);
}

/* opis */
.ps-counter__desc{
  margin:0;
  font-family: "Poppins", sans-serif;
  font-weight:300;
  font-size:15.4px;
  color: #fff;
}

/* ✅ HOVER: bąble rosną 15–20% (wolno i miękko) */
@media (hover:hover){
  .ps-counter:hover .ps-counter__ring{
    transform:scale(1.18); /* ~18% */
    filter: drop-shadow(0 14px 26px rgba(0,0,0,.35));
  }

  .ps-counter:hover .ps-counter__svg{
    filter: drop-shadow(0 0 18px rgba(120,210,255,.14));
  }

  .ps-counter:hover .ps-counter__track{
    stroke:rgba(255,255,255,.24);
  }

  .ps-counter:hover .ps-counter__bar{
    stroke:rgba(255,255,255,.98);
    opacity:1;
  }

  /* minimalne “oddechy” typografii (żeby wyglądało naturalnie) */
  .ps-counter:hover .ps-counter__value,
  .ps-counter:hover .ps-counter__plus{
    transform:translateY(-1px);
  }
}

/* reduced motion */
@media (prefers-reduced-motion: reduce){
  .ps-counter__ring,
  .ps-counter__svg,
  .ps-counter__track,
  .ps-counter__bar,
  .ps-counter__value,
  .ps-counter__plus{
    transition:none !important;
  }
}

/* faster fade to white */
.ps-counternet::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:#fff;
  opacity:var(--ps-white,0);
  transition:opacity .35s ease;
  z-index:3;
}

/* responsive */
@media(max-width:1024px){
  .ps-counternet__grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .ps-counternet__container{width:min(1200px, calc(100% - 32px));}
  .ps-counternet__grid{grid-template-columns:1fr}
  .ps-counter__value{font-size:38px;}
}
