.wheel-section {
  background: #151713;
  color: #fff;
  padding: 120px 0;
  overflow: hidden;
  border-block: 1px solid #34372f;
}

.wheel-layout {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
  gap: 90px;
  align-items: center;
}

.wheel-copy h2 {
  color: #fff;
  font-size: clamp(58px, 7vw, 100px);
  margin: 38px 0 32px;
}

.wheel-copy h2 em {
  color: var(--acid);
  -webkit-text-stroke: 0;
}

.wheel-copy > p:not(.eyebrow):not(.wheel-result) {
  max-width: 540px;
  color: #a9aca4;
  line-height: 1.7;
}

.wheel-odds {
  margin: 34px 0 26px;
  border-top: 1px solid #3b3e36;
}

.wheel-odds > div {
  display: grid;
  grid-template-columns: 18px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid #3b3e36;
  font: 700 11px var(--font-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.wheel-odds strong { color: var(--acid); }
.odds-dot { width: 9px; height: 9px; border-radius: 50%; background: #30332d; }
.odds-dot.mlo { background: var(--cream); }
.odds-dot.map { background: var(--acid); }

.wheel-discord {
  display: block;
  margin: 0 0 18px;
}

.wheel-discord > span {
  display: block;
  margin-bottom: 8px;
  color: var(--cream);
  font: 800 10px var(--font-mono);
  letter-spacing: .12em;
}

.wheel-discord input {
  width: 100%;
  border: 1px solid #5d6157;
  background: #22251f;
  color: #fff;
  padding: 15px 16px;
  font-size: 14px;
}

.wheel-discord input::placeholder { color: #74786e; }
.wheel-discord input:focus { outline: 3px solid var(--acid); border-color: var(--acid); }
.wheel-discord small { display: block; margin-top: 7px; color: #85897f; font: 9px/1.5 var(--font-mono); }

.wheel-spin {
  width: 100%;
  border: 0;
  background: var(--acid);
  color: var(--ink);
  padding: 20px 22px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .13em;
  cursor: pointer;
  transition: .2s;
}

.wheel-spin:hover:not(:disabled) { background: #fff; transform: translateY(-2px); }
.wheel-spin:disabled { cursor: not-allowed; opacity: .56; }
.wheel-spin b { font-size: 22px; }
.wheel-spin:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }

.wheel-result {
  min-height: 46px;
  margin: 18px 0 7px;
  color: #fff;
  font-size: 13px;
  line-height: 1.6;
  font-weight: 700;
}

.claim-box {
  margin: 4px 0 18px;
  padding: 18px;
  border: 1px solid var(--acid);
  background: #20231d;
}

.claim-box[hidden] { display: none; }
.claim-box > span { display: block; color: #969b90; font: 800 9px var(--font-mono); letter-spacing: .13em; }
.claim-box > strong { display: block; margin: 9px 0 14px; color: var(--acid); font: 900 15px var(--font-mono); letter-spacing: .06em; overflow-wrap: anywhere; }
.claim-box > div { display: flex; gap: 8px; flex-wrap: wrap; }
.claim-box button,.claim-box a { border: 1px solid #5d6157; background: transparent; color: #fff; padding: 10px 12px; font: 800 9px var(--font-mono); letter-spacing: .08em; cursor: pointer; text-decoration: none; }
.claim-box a { background: var(--acid); color: var(--ink); border-color: var(--acid); }

.wheel-terms {
  display: block;
  color: #85897f;
  font: 9px/1.6 var(--font-mono);
  letter-spacing: .06em;
}

.wheel-stage {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 550px;
}

.prize-wheel {
  position: relative;
  width: min(500px, 42vw);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 14px solid var(--cream);
  background:
    repeating-conic-gradient(from 0deg, transparent 0deg 29deg, rgba(240,238,231,.28) 29deg 30deg),
    conic-gradient(from 0deg,
      var(--acid) 0deg 30deg,
      var(--cream) 30deg 60deg,
      #242720 60deg 90deg,
      #30332c 90deg 120deg,
      #242720 120deg 150deg,
      #30332c 150deg 180deg,
      #242720 180deg 210deg,
      #30332c 210deg 240deg,
      #242720 240deg 270deg,
      #30332c 270deg 300deg,
      #242720 300deg 330deg,
      #30332c 330deg 360deg);
  box-shadow: 0 0 0 2px var(--acid), 0 24px 70px rgba(0,0,0,.45), inset 0 0 0 18px rgba(0,0,0,.18);
  transform: rotate(0deg);
  will-change: transform;
}

.wheel-stage.is-spinning .prize-wheel {
  box-shadow: 0 0 0 2px var(--acid), 0 0 44px rgba(217,255,67,.24), 0 24px 70px rgba(0,0,0,.55), inset 0 0 0 18px rgba(0,0,0,.18);
}

.wheel-stage::before,
.wheel-stage::after {
  position: absolute;
  z-index: 3;
  font: 800 10px var(--font-mono);
  letter-spacing: .12em;
}

.wheel-stage::before { content: "MAP · 1%"; top: 36px; right: 35px; color: var(--acid); }
.wheel-stage::after { content: "MLO · 4%"; top: 70px; right: 5px; color: var(--cream); }

.wheel-pointer {
  position: absolute;
  z-index: 5;
  top: 6px;
  left: 50%;
  width: 0;
  height: 0;
  transform: translateX(-50%);
  border-left: 22px solid transparent;
  border-right: 22px solid transparent;
  border-top: 54px solid var(--acid);
  filter: drop-shadow(0 6px 0 #0a0b09);
}

.wheel-stage.is-spinning .wheel-pointer { animation: wheel-pointer-tick .12s ease-in-out infinite alternate; }

@keyframes wheel-pointer-tick {
  from { transform: translateX(-50%) rotate(-4deg); }
  to { transform: translateX(-50%) rotate(4deg); }
}

.wheel-center {
  position: absolute;
  z-index: 4;
  width: 126px;
  height: 126px;
  border-radius: 50%;
  background: var(--acid);
  color: var(--ink);
  display: grid;
  place-content: center;
  text-align: center;
  border: 10px solid #151713;
  box-shadow: 0 0 0 2px var(--cream);
  padding: 0;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease;
}

.wheel-center:hover:not(:disabled) { transform: scale(1.06); background: #fff; }
.wheel-center:focus-visible { outline: 4px solid #fff; outline-offset: 5px; }
.wheel-center:disabled { cursor: wait; }

.wheel-center span { font: 900 20px var(--font-mono); letter-spacing: .16em; margin-left: .16em; }

.wheel-label {
  position: absolute;
  z-index: 2;
  color: #fff;
  font: 900 10px/1.05 var(--font-mono);
  letter-spacing: .08em;
  text-align: center;
  text-shadow: 0 1px 2px rgba(0,0,0,.8);
  pointer-events: none;
}

.wheel-label-map { top: 10%; left: 58%; color: var(--ink); transform: rotate(15deg); }
.wheel-label-mlo { top: 21%; right: 13%; color: var(--ink); transform: rotate(45deg); }
.wheel-label-none { font-size: 8px; color: #e2e0d9; }
.wheel-label-none-1 { top: 46%; right: 2%; transform: rotate(90deg); }
.wheel-label-none-2 { bottom: 12%; right: 21%; transform: rotate(150deg); }
.wheel-label-none-3 { bottom: 12%; left: 20%; transform: rotate(210deg); }
.wheel-label-none-4 { top: 44%; left: 1%; transform: rotate(270deg); }

@media (max-width: 800px) {
  .wheel-section { padding: 85px 0; }
  .wheel-layout { grid-template-columns: 1fr; gap: 45px; }
  .wheel-copy h2 { font-size: 56px; }
  .wheel-stage { min-height: 360px; }
  .prize-wheel { width: min(330px, 85vw); }
  .wheel-pointer { top: -3px; }
  .wheel-stage::before { top: 0; right: 10px; }
  .wheel-stage::after { top: 27px; right: 0; }
  .wheel-center { width: 96px; height: 96px; border-width: 7px; }
  .wheel-center span { font-size: 16px; }
  .wheel-label { font-size: 8px; }
  .wheel-label-none { font-size: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  .wheel-stage.is-spinning .wheel-pointer { animation: none; }
}
