 * {
      box-sizing: border-box;
      user-select: none;
    }

    body {
      margin: 0;
      min-height: 100vh;
      background: radial-gradient(circle at 30% 40%, #1f3a1f, #0b1a0b);
      font-family: 'Segoe UI', 'Arial Black', system-ui, sans-serif;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      overflow-x: hidden;
      position: relative;
    }

    /* black & green flicker overlay */
    body::before {
      content: "";
      position: fixed;
      inset: 0;
      background: repeating-linear-gradient(0deg, rgba(0,255,0,0.02) 0px, transparent 2px, transparent 8px);
      pointer-events: none;
      z-index: 5;
      mix-blend-mode: overlay;
    }

    /* WINMATE88 title with white "MATE" and extra glow */
    h1 {
      font-size: 5.2rem;
      margin: 0.1em 0 0.1em;
      font-weight: 900;
      letter-spacing: 8px;
      text-transform: uppercase;
      transform: perspective(600px) rotateX(2deg);
      filter: drop-shadow(0 15px 10px #000000cc);
      z-index: 10;
      transition: opacity 0.3s ease;
      display: flex;
      justify-content: center;
      gap: 2px;
      text-shadow: 0 0 30px #00ee40, 0 0 60px #008000;
    }

    h1 span.green {
      background: linear-gradient(45deg, #a3ff9f, #0f6b0f, #00cc66);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    h1 span.white {
      color: #ffffff;
      text-shadow: 0 0 30px #ffffff, 0 0 60px #cccccc, 0 0 90px #00ffaa;
    }

    /* when popup active, title fades out */
    h1.popup-active {
      opacity: 0;
      pointer-events: none;
    }

    .slot-machine {
      perspective: 1500px;
      width: 92%;
      max-width: 720px;
      margin: 5px auto 25px;
      padding: 40px 25px 45px;
      background: linear-gradient(145deg, #0f2b0f, #030803);
      border: 8px solid #1f9e4f;
      border-radius: 70px 70px 50px 50px;
      box-shadow: 
        0 30px 40px -10px black,
        inset 0 -8px 20px #0a380a,
        inset 0 8px 30px #3eff8b,
        0 0 0 6px #0f5c2b,
        0 0 0 12px #0b2f0b;
      position: relative;
      z-index: 20;
    }

    .slot-machine::after {
      content: '';
      position: absolute;
      inset: -12px;
      border-radius: 80px 80px 60px 60px;
      background: repeating-linear-gradient(45deg, #28c76e 0px, #28c76e 4px, #0a6320 4px, #0a6320 8px);
      mask: linear-gradient(black, black) content-box, linear-gradient(black, black);
      -webkit-mask: linear-gradient(black, black) content-box, linear-gradient(black, black);
      -webkit-mask-composite: xor;
      mask-composite: exclude;
      pointer-events: none;
      opacity: 0.45;
      z-index: 1;
    }

    .led-marquee {
      position: absolute;
      top: -22px;
      left: 15%;
      right: 15%;
      background: #0b2e0b;
      height: 42px;
      border-radius: 40px;
      border: 3px solid #23d15e;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 14px;
      padding: 0 25px;
      box-shadow: inset 0 -2px 5px #0e4f0e, 0 0 30px #33ff77;
      z-index: 25;
    }

    .led-marquee span {
      color: #b1ffb1;
      font-size: 1.8rem;
      font-weight: 800;
      text-shadow: 0 0 15px #33ee77, 0 0 30px #118f4a;
      animation: blinkGreen 1.1s infinite alternate;
    }

    @keyframes blinkGreen {
      0% { opacity: 0.8; text-shadow: 0 0 5px #11ee77; }
      100% { opacity: 1; text-shadow: 0 0 20px #44ffaa, 0 0 40px #00aa33; }
    }

    .reels-container {
      background: #0f210f;
      border-radius: 50px;
      padding: 25px 12px;
      border: 4px inset #1d9648;
      box-shadow: inset 0 0 50px #000000, 0 12px 10px rgba(0,0,0,0.9);
      margin-bottom: 15px;
    }

    .reels {
      display: flex;
      justify-content: center;
      gap: 18px;
      transform: rotateX(3deg) rotateY(0.5deg);
    }

    .reel {
      width: 130px;
      height: 150px;
      overflow: hidden;
      background: #051005;
      border-radius: 28px;
      border: 4px solid #33cc70;
      box-shadow: inset 0 0 35px #1f9e4f, 0 8px 0 #0a4f1a, 0 12px 20px black;
      position: relative;
    }

    .reel::after {
      content: '';
      position: absolute;
      inset: 0;
      background: linear-gradient(to bottom, transparent 30%, rgba(0,30,0,0.5) 80%);
      pointer-events: none;
      z-index: 3;
    }

    .symbols {
      position: absolute;
      width: 100%;
      transition: transform 2.8s cubic-bezier(0.25, 0.1, 0.15, 1);
      will-change: transform;
    }

    .symbol {
      height: 150px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 5.6rem;
      text-shadow: 0 0 30px #2eff7a, 0 0 60px #1b9e4c;
      filter: drop-shadow(0 0 8px #00aa33);
    }

    .lever {
      position: absolute;
      right: -30px;
      top: 18%;
      width: 30px;
      height: 180px;
      background: linear-gradient(135deg, #1a381a, #0b240b);
      border-radius: 40px;
      border: 3px solid #46e686;
      box-shadow: -5px 5px 20px black, inset -2px -2px 10px #1e4d1e;
      cursor: pointer;
      z-index: 30;
    }

    .knob {
      width: 60px;
      height: 60px;
      background: radial-gradient(circle at 30% 30%, #77ff77, #0b7e0b);
      border-radius: 50%;
      position: absolute;
      top: -20px;
      left: -15px;
      box-shadow: 0 0 0 5px #1f5f1f, 0 12px 20px black, inset -5px -5px 12px #084208;
      transition: top 0.18s ease-out;
      border: 2px solid #aaffaa;
    }

    .lever:active .knob {
      top: 85px;
    }

    .win-indicator {
      display: flex;
      justify-content: center;
      gap: 30px;
      background: #0b1c0b;
      padding: 12px 30px;
      border-radius: 60px;
      border: 2px solid #22cc66;
      margin: 20px auto 0;
      width: fit-content;
      box-shadow: inset 0 0 12px #000000, 0 0 20px #28e678;
    }

    .win-indicator div {
      color: #b5ffb5;
      font-weight: 800;
      font-size: 1.3rem;
      text-transform: uppercase;
      text-shadow: 0 0 12px #18b84a;
    }

    /* popup */
    .popup {
      position: fixed;
      inset: 0;
      background: rgba(3, 15, 3, 0.9);
      backdrop-filter: blur(4px);
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 200;
    }

    .popup-content {
      background: linear-gradient(145deg, #0f2f0f, #071407);
      border: 5px solid #3ce67c;
      padding: 30px 35px;
      border-radius: 70px 70px 40px 40px;
      box-shadow: 0 0 90px #28ed7a, inset 0 0 40px #208f42;
      text-align: center;
      max-width: 850px;
      width: fit-content;
      animation: greenFloat 0.4s;
      display: flex;
      flex-direction: row;
      align-items: center;
      gap: 25px;
      flex-wrap: wrap;
      justify-content: center;
    }

    .popup-left {
      display: flex;
      flex-direction: column;
      gap: 12px;
      min-width: 280px;
    }

    .popup-right {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 15px;
    }

    @keyframes greenFloat {
      0% { transform: scale(0.8) translateY(30px); opacity: 0; }
      100% { transform: scale(1) translateY(0); opacity: 1; }
    }

    .popup-content h2 {
      color: #ffe484;
      font-size: 2.2rem;
      margin: 0 0 8px 0;
      text-shadow: 0 0 25px #f7d44a, 0 0 40px #ffb347;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      flex-wrap: wrap;
    }
    .popup-content h2 span {
      font-size: 2.5rem;
    }

    .bonus-line {
      color: #d0ffd0;
      font-size: 1.4rem;
      background: #1a351a;
      padding: 12px 18px;
      border-radius: 50px;
      border: 2px solid #1fdb5f;
      margin: 0;
      display: flex;
      align-items: center;
      justify-content: flex-start;
      gap: 12px;
      white-space: nowrap;
    }
    .bonus-line span {
      font-size: 1.8rem;
    }

    .urgency {
      color: #ffb86b;
      font-size: 1.5rem;
      font-weight: 800;
      text-transform: uppercase;
      background: #0c2a0c;
      padding: 8px 18px;
      border-radius: 40px;
      display: inline-block;
      margin: 5px 0 0;
      border: 2px solid #ffe064;
      text-shadow: 0 0 15px #ffaa33;
      letter-spacing: 1px;
      animation: pulse 1.2s infinite;
      white-space: nowrap;
    }

    @keyframes pulse {
      0% { opacity: 0.9; text-shadow: 0 0 10px #ffaa33; }
      50% { opacity: 1; text-shadow: 0 0 25px #ffd966; }
      100% { opacity: 0.9; text-shadow: 0 0 10px #ffaa33; }
    }

    .countdown {
      background: #0e2f0e;
      color: #96ff96;
      font-size: 2.6rem;
      letter-spacing: 6px;
      font-weight: 800;
      padding: 8px 25px;
      border-radius: 50px;
      display: inline-block;
      border: 3px solid #46f58a;
      box-shadow: inset 0 0 15px black;
      margin: 0;
    }

    .register-btn {
      display: inline-block;
      background: linear-gradient(145deg, #21c25e, #0d6e0d);
      padding: 16px 45px;
      border-radius: 70px;
      font-size: 2.2rem;
      font-weight: bold;
      color: #0b210b;
      text-decoration: none;
      box-shadow: 0 8px 0 #054d05, 0 10px 40px #3bff8b;
      transition: 0.07s linear;
      border: 2px solid #bbffbb;
      text-transform: uppercase;
      white-space: nowrap;
    }

    .register-btn:active {
      transform: translateY(5px);
      box-shadow: 0 4px 0 #054d05, 0 8px 30px #66ff99;
    }

    .coin {
      position: fixed;
      top: -20px;
      font-size: 2.8rem;
      z-index: 150;
      pointer-events: none;
      animation: coinfall 3s linear forwards;
      filter: drop-shadow(0 0 10px #44ff88);
    }

    @keyframes coinfall {
      0% { transform: translateY(0) rotate(0deg); opacity: 1; }
      100% { transform: translateY(110vh) rotate(720deg); opacity: 0.3; }
    }

    .glitter {
      position: fixed;
      top: -20px;
      font-size: 1.8rem;
      z-index: 140;
      pointer-events: none;
      animation: glitterfall 3.2s linear forwards;
      filter: drop-shadow(0 0 8px #77ff88);
    }

    @keyframes glitterfall {
      0% { transform: translateY(0) scale(1); opacity: 1; }
      100% { transform: translateY(110vh) scale(0.5); opacity: 0; }
    }

    @media (max-width: 700px) {
      h1 { font-size: 3.8rem; }
      .reel { width: 95px; height: 115px; }
      .symbol { font-size: 4.2rem; height: 115px; }
      .lever { right: -25px; height: 150px; }
      .knob { width: 50px; height: 50px; left: -13px; }
      .win-indicator div { font-size: 1rem; }
      .popup-content { flex-direction: column; max-width: 95%; padding: 25px; }
      .bonus-line { white-space: normal; font-size: 1.2rem; }
      .urgency { white-space: normal; }
    }