    * {
      box-sizing: border-box;
    }

    html, body {
      margin: 0;
      min-height: 100%;
      background:
        radial-gradient(circle at center, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.02) 18%, transparent 45%),
        linear-gradient(180deg, #111 0%, #0b0b0b 100%);
      font-family: 'Raleway', sans-serif;
      overflow: hidden;
    }

    .wrap {
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-direction: column;
      padding: 30px;
      position: relative;
      isolation: isolate;
    }

    .glow-orb {
      position: absolute;
      width: 520px;
      height: 520px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.06) 25%, transparent 65%);
      filter: blur(40px);
      animation: pulseOrb 4.5s ease-in-out infinite;
      z-index: -1;
    }

    .logo {
      position: relative;
      display: inline-block;
      font-size: clamp(68px, 16vw, 180px);
      font-weight: 900;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: rgba(255,255,255,0.08);
      -webkit-text-stroke: 1px rgba(255,255,255,0.22);
      user-select: none;
      line-height: 1;
    }

    .logo::before,
    .logo::after {
      content: attr(data-text);
      position: absolute;
      inset: 0;
      display: block;
    }

    /* główny napis */
    .logo::before {
      color: #fff;
      -webkit-text-stroke: 0 transparent;
      text-shadow:
        0 0 8px rgba(255,255,255,0.18),
        0 0 22px rgba(255,255,255,0.10);
      clip-path: inset(0 100% 0 0);
      animation:
        revealText 1.5s cubic-bezier(.2,.8,.2,1) forwards 0.2s,
        softFloat 4s ease-in-out infinite 1.8s;
    }

    /* przesuwający się połysk */
    .logo::after {
      color: transparent;
      background: linear-gradient(
        115deg,
        transparent 0%,
        transparent 35%,
        rgba(255,255,255,0.18) 45%,
        rgba(255,255,255,0.95) 50%,
        rgba(255,255,255,0.18) 55%,
        transparent 65%,
        transparent 100%
      );
      background-size: 220% 100%;
      -webkit-background-clip: text;
      background-clip: text;
      animation:
        revealText 1.5s cubic-bezier(.2,.8,.2,1) forwards 0.2s,
        shine 3.2s linear infinite 1.8s;
    }

    .sub {
      text-align: center;
      margin-top: 26px;
      color: rgba(255,255,255,0.72);
      font-size: 15px;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      opacity: 0;
      transform: translateY(18px);
      animation: fadeUp 0.8s ease forwards 1.2s;
    }

    .line {
      margin-top: 20px;
      width: 1px;
      height: 34px;
      background: rgba(255,255,255,0.75);
      opacity: 0;
      transform: scaleY(0);
      transform-origin: top;
      animation: growLine 0.5s ease forwards 1.45s;
    }

    .phone {
      margin-top: 18px;
      color: #fff;
      text-decoration: none;
      font-size: 18px;
      letter-spacing: 0.08em;
      opacity: 0;
      transform: translateY(18px);
      transition: opacity .25s ease, transform .25s ease;
      animation: fadeUp 0.8s ease forwards 1.6s;
    }

    .phone:hover {
      opacity: 0.75;
      transform: translateY(-1px);
    }

    @keyframes revealText {
      0% {
        clip-path: inset(0 100% 0 0);
        filter: blur(12px);
        opacity: 0;
        transform: translateY(25px) scale(0.985);
      }
      60% {
        opacity: 1;
      }
      100% {
        clip-path: inset(0 0 0 0);
        filter: blur(0);
        opacity: 1;
        transform: translateY(0) scale(1);
      }
    }

    @keyframes shine {
      0% {
        background-position: 180% 0;
      }
      100% {
        background-position: -40% 0;
      }
    }

    @keyframes pulseOrb {
      0%, 100% {
        transform: scale(0.95);
        opacity: 0.7;
      }
      50% {
        transform: scale(1.08);
        opacity: 1;
      }
    }

    @keyframes softFloat {
      0%, 100% {
        transform: translateY(0);
      }
      50% {
        transform: translateY(-4px);
      }
    }

    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(18px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    @keyframes growLine {
      from {
        opacity: 0;
        transform: scaleY(0);
      }
      to {
        opacity: 1;
        transform: scaleY(1);
      }
    }
