/* Script-less lander (RollerAds): the spin and the win window run on ONE
   hidden checkbox. These geos are single_spin - one spin, one prize - so
   there is no #s2 and no second window. */
.nojs-state { position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0; }
.wheel__tap { position: absolute; inset: 0; border-radius: 50%; z-index: 5; cursor: pointer; }
label.spin-btn, label.modal__btn, a.modal__btn {
  display: flex; align-items: center; justify-content: center;
  text-decoration: none; cursor: pointer; text-align: center;
}
.wheel__rotor { transition: transform 4.6s cubic-bezier(0.17, 0.67, 0.10, 1); }
#s1:checked ~ .page .wheel__rotor { transform: rotate(2862deg); }
#s1:checked ~ .page #spinBtn, #s1:checked ~ .page .wheel__tap { pointer-events: none; animation: none; opacity: 0.6; }
.modal { visibility: hidden; opacity: 0; transition: opacity 0.4s ease, visibility 0s linear 0.4s; }
#s1:checked ~ #modal1 {
  visibility: visible; opacity: 1; transition: opacity 0.4s ease 5s, visibility 0s linear 5s;
}
/* a countdown cannot tick without script - a frozen one looks broken */
.banner, .timer { display: none !important; }

/* ── The miss (owner 2026-09-20, after GSB flagged the wheel as SOCIAL_ENGINEERING) ──
   The first press (s0) lands on a losing wedge and opens nothing; only the second
   press (s1) pays. CSS cannot randomise: this lander always misses exactly once. */
#s0:checked ~ .page .wheel__rotor { transform: rotate(2790deg); }               /* 7 turns + 270 */
#s0:checked ~ #s1:checked ~ .page .wheel__rotor { transform: rotate(5382deg); } /* 14 turns + 342 */
#s0:checked ~ #s1:checked ~ #s2:checked ~ .page .wheel__rotor { transform: rotate(8154deg); }
#spinBtn, .wheel__tap--retry, .cta__note--lose {
  visibility: hidden; opacity: 0; pointer-events: none; position: absolute;
}
#s0:checked ~ .page #spinBtn0, #s0:checked ~ .page .wheel__tap--first,
#s0:checked ~ .page .cta__note--start { display: none; }
#s0:checked ~ #s1:not(:checked) ~ .page #spinBtn,
#s0:checked ~ #s1:not(:checked) ~ .page .wheel__tap--retry,
#s0:checked ~ #s1:not(:checked) ~ .page .cta__note--lose {
  visibility: visible; opacity: 1; pointer-events: auto; position: relative;
  transition: opacity 0.3s ease 4.8s, visibility 0s linear 4.8s;
}
#s0:checked ~ #s1:not(:checked) ~ .page .wheel__tap--retry { position: absolute; }
#s1:checked ~ .page .wheel__tap--retry { pointer-events: none; }

/* Funnel pixels without script (patch_nojs_pixels.py, 21/9): the view <img>
   fires on render; the spin pixel is a background that only exists once the
   first press (#s0) is checked. Must stay rendered (no display:none) or the
   browser never fetches it. */
.vx-px { position: absolute; left: 0; top: 0; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
#s0:checked ~ .page .vx-spin { background-image: url("https://t.yopoffers.com/conversion.gif?et=spin"); }
