.spin-wheel-overlay{position:fixed;z-index:12000;inset:0;display:grid;place-items:center;padding:20px;background:rgba(28,13,23,.72);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s ease}
.spin-wheel-overlay.is-visible{opacity:1;visibility:visible}
.spin-wheel-dialog{position:relative;width:min(820px,100%);max-height:min(94dvh,940px);overflow:auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(250px,.85fr);align-items:center;gap:clamp(20px,4vw,44px);padding:clamp(26px,4vw,44px);border:1px solid rgba(255,255,255,.82);border-radius:30px;background:linear-gradient(145deg,#fffdfa,#f4eceb);box-shadow:0 32px 100px rgba(20,8,15,.38);transform:translateY(18px) scale(.97);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.spin-wheel-overlay.is-visible .spin-wheel-dialog{transform:translateY(0) scale(1)}
.spin-wheel-close{position:absolute;z-index:3;top:14px;right:14px;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(50,26,43,.12);border-radius:50%;background:#fff;color:#321a2b;font-size:16px;box-shadow:0 4px 14px rgba(50,26,43,.1);cursor:pointer}
.spin-wheel-visual{position:relative;display:grid;place-items:center;min-width:0;padding:18px 0 12px}
.spin-wheel-wheel-box{position:relative;width:min(370px,42vw);aspect-ratio:1}
.spin-wheel-pointer{position:absolute;z-index:2;top:50%;left:-28px;width:0;height:0;border-top:16px solid transparent;border-bottom:16px solid transparent;border-left:28px solid #321a2b;filter:drop-shadow(0 4px 4px rgba(0,0,0,.2));transform:translateY(-50%)}
.spin-wheel-disk{position:relative;width:100%;height:100%;aspect-ratio:1;border:9px solid #fff;border-radius:50%;box-shadow:0 14px 36px rgba(50,26,43,.2),inset 0 0 0 2px rgba(255,255,255,.62);transition:transform 5.4s cubic-bezier(.12,.72,.08,1);will-change:transform}
.spin-wheel-label{position:absolute;top:50%;left:50%;display:-webkit-box;box-sizing:border-box;margin-top:-18px;padding:0;color:#fff;font-size:14px;font-weight:900;line-height:1.08;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.8),0 0 7px rgba(0,0,0,.7);overflow:hidden;overflow-wrap:normal;word-break:normal;-webkit-box-orient:vertical;-webkit-line-clamp:4;pointer-events:none;transition:transform .2s ease}
.spin-wheel-center{position:absolute;top:50%;left:50%;width:68px;height:68px;display:grid;place-items:center;border:5px solid #fff;border-radius:50%;background:linear-gradient(145deg,#71384f,#321a2b);color:#fff;font-size:22px;box-shadow:0 4px 14px rgba(50,26,43,.35);transform:translate(-50%,-50%)}
.spin-wheel-copy{min-width:0;text-align:center}
.spin-wheel-eyebrow{display:inline-flex;align-items:center;gap:7px;margin-bottom:10px;color:#987447;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.spin-wheel-title{margin:0 0 10px;color:#321a2b;font-size:clamp(25px,3vw,34px);line-height:1.14;font-weight:800}
.spin-wheel-description{margin:0 auto 20px;max-width:350px;color:#695962;font-size:14px;line-height:1.6}
.spin-wheel-action{width:100%;min-height:50px;border:0;border-radius:999px;background:#71384f;color:#fff;font:700 14px var(--font-family);cursor:pointer;transition:transform .2s ease,background .2s ease,opacity .2s ease}
.spin-wheel-action:hover:not(:disabled){background:#57283d;transform:translateY(-2px)}
.spin-wheel-action:disabled{cursor:wait;opacity:.65}
.spin-wheel-result{display:none;margin-top:14px;padding:15px;border:1px solid var(--accent-coffee-border);border-radius:18px;background:rgba(255,255,255,.88);text-align:left}
.spin-wheel-result.is-visible{display:block;animation:spinWheelResultIn .28s ease both}
.spin-wheel-result-title{margin:0 0 5px;color:#321a2b;font-size:16px;font-weight:800}
.spin-wheel-result-text{margin:0 0 10px;color:#695962;font-size:12.5px;line-height:1.5}
.spin-wheel-code-row{display:flex;align-items:center;gap:8px}
.spin-wheel-code{flex:1;min-width:0;padding:10px;border:1px dashed #bd9965;border-radius:12px;background:#fbf7f1;color:#321a2b;font:700 13px monospace;letter-spacing:.06em;text-align:center;overflow-wrap:anywhere}
.spin-wheel-copy-code{width:40px;height:40px;flex:none;border:1px solid var(--border);border-radius:12px;background:#fff;color:#71384f;cursor:pointer}
.spin-wheel-note{min-height:18px;margin:9px 0 0;color:#695962;font-size:11.5px;line-height:1.4}
@keyframes spinWheelResultIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){
  .spin-wheel-overlay{padding:12px;align-items:center}
  .spin-wheel-dialog{width:min(460px,100%);max-height:calc(100dvh - 24px);grid-template-columns:1fr;gap:4px;padding:24px 18px 18px;border-radius:26px}
  .spin-wheel-close{top:10px;right:10px;width:36px;height:36px}
  .spin-wheel-visual{padding:12px 0 4px}
  .spin-wheel-wheel-box{width:min(340px,82vw)}
  .spin-wheel-label{width:70px;margin-left:-35px;margin-top:-16px;font-size:14px}
  .spin-wheel-center{width:60px;height:60px;font-size:20px}
  .spin-wheel-title{font-size:25px}
  .spin-wheel-description{font-size:13px;margin-bottom:14px}
  .spin-wheel-copy{padding:0 2px}
}
@media(max-height:680px) and (max-width:700px){
  .spin-wheel-dialog{width:min(700px,100%);grid-template-columns:minmax(0,.95fr) minmax(180px,1fr);gap:14px;padding:22px 16px}
  .spin-wheel-disk{width:min(260px,42vh,66vw)}
  .spin-wheel-label{width:62px;margin-left:-31px;font-size:13px}
  .spin-wheel-title{font-size:21px}
  .spin-wheel-description{font-size:12px}
}
@media(max-width:380px){
  .spin-wheel-label{width:58px;margin-left:-29px;font-size:12.5px}
}
@media(prefers-reduced-motion:reduce){
  .spin-wheel-overlay,.spin-wheel-dialog,.spin-wheel-disk,.spin-wheel-action{transition-duration:.01ms}
  .spin-wheel-result.is-visible{animation:none}
}
