 .np-popup-overlay {
      position: fixed;
      inset: 0;
      background-color: rgba(0, 0, 0, 0.6);
      display: none;
      justify-content: center;
      align-items: center;
      z-index: 1000;
      padding: 1rem;
    }

    .np-popup-overlay.active {
      display: flex;
    }

    .np-popup-box {
      width: 100%;
      max-width: 700px;
      background: #fff;
      border: 2px solid #ddd;
      border-radius: 10px;
      padding: 2rem;
      font-family: 'Georgia', serif;
      line-height: 1.6;
      color: #333;
      box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
      position: relative;
      max-height: 80vh;
      overflow-y: auto;
    }

    .np-close-btn {
      position: absolute;
      top: 10px;
      right: 15px;
      background: #ccc;
      color: #333;
      border: none;
      border-radius: 3px;
      width: 30px;
      height: 30px;
      font-size: 18px;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: bold;
      transition: background 0.3s ease;
    }

    .np-close-btn:hover {
      background: #999;
    }

    .np-title {
      text-align: center;
      margin-bottom: 1.5rem;
      font-weight: bold;
    }

    .np-title img {
      max-width: 300px;
      width: 100%;
      height: auto;
      display: block;
      margin: 0 auto;
    }

    .np-typewriter {
      font-size: 14px;
      text-align: justify;
      margin-bottom: 1rem;
      min-height: 1.5em;
    }

    .np-cursor {
      display: inline-block;
      width: 2px;
      height: 1.2em;
      background-color: #2c5aa0;
      animation: np-blink 1s infinite;
    }

    @keyframes np-blink {
      0%, 50% { opacity: 1; }
      51%, 100% { opacity: 0; }
    }

    @media (max-width: 600px) {
      .np-popup-box {
        padding: 1.2rem;
      }

      .np-typewriter {
        font-size: 14px;
      }

      .np-title img {
        max-width: 250px;
      }
    }