/* SoulBay Lucky Spin & Win – front-end styles */
.sbls-root{--sbls-navy:#071B35;--sbls-royal:#123A67;--sbls-gold:#D4AF37;--sbls-light-gold:#F5D77A;--sbls-white:#fff;--sbls-size:70px;--sbls-size-m:52px;--sbls-off:20px;--sbls-off-m:12px;font-family:inherit;line-height:1.4;box-sizing:border-box}
.sbls-root *,.sbls-root *::before,.sbls-root *::after{box-sizing:border-box}
.sbls-lock{overflow:hidden}

/* ---------- floating launcher ---------- */
.sbls-launcher{position:fixed;z-index:99990;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0;margin:0;background:none;border:0;cursor:pointer;color:var(--sbls-white);font:inherit;-webkit-tap-highlight-color:transparent}
.sbls-pos-right-center .sbls-launcher{right:var(--sbls-off);top:50%;transform:translateY(-50%)}
.sbls-pos-right-bottom .sbls-launcher{right:var(--sbls-off);bottom:calc(var(--sbls-off) + env(safe-area-inset-bottom,0px))}
.sbls-pos-left-center .sbls-launcher{left:var(--sbls-off);top:50%;transform:translateY(-50%)}
.sbls-pos-left-bottom .sbls-launcher{left:var(--sbls-off);bottom:calc(var(--sbls-off) + env(safe-area-inset-bottom,0px))}
.sbls-pos-right-center .sbls-launcher,.sbls-pos-right-bottom .sbls-launcher{margin-right:env(safe-area-inset-right,0px)}
.sbls-pos-left-center .sbls-launcher,.sbls-pos-left-bottom .sbls-launcher{margin-left:env(safe-area-inset-left,0px)}
.sbls-launcher__icon{display:block;width:var(--sbls-size);height:var(--sbls-size);border-radius:50%;padding:4px;background:var(--sbls-navy);border:3px solid var(--sbls-gold);box-shadow:0 0 0 0 rgba(212,175,55,.55),0 6px 18px rgba(7,27,53,.45);animation:sbls-glow 2.4s ease-in-out infinite;transition:transform .2s ease}
.sbls-launcher__icon svg{display:block;animation:sbls-rotate 14s linear infinite}
.sbls-launcher:hover .sbls-launcher__icon,.sbls-launcher:focus-visible .sbls-launcher__icon{transform:scale(1.08)}
.sbls-launcher:focus-visible,.sbls-trigger:focus-visible,.sbls-btn:focus-visible,.sbls-spin-btn:focus-visible,.sbls-close:focus-visible,.sbls-email input:focus-visible,.sbls-result__code:focus-visible{outline:3px solid var(--sbls-light-gold);outline-offset:3px}
.sbls-launcher__label{font-size:11px;font-weight:700;letter-spacing:.03em;white-space:nowrap;padding:2px 9px;border-radius:999px;background:var(--sbls-navy);color:var(--sbls-light-gold);border:1px solid var(--sbls-gold)}
.sbls-launcher__badge{font-size:9px;font-weight:700;line-height:1.2;text-align:center;max-width:calc(var(--sbls-size) + 28px);padding:2px 6px;border-radius:6px;background:linear-gradient(135deg,var(--sbls-gold),var(--sbls-light-gold));color:var(--sbls-navy)}

@keyframes sbls-rotate{to{transform:rotate(360deg)}}
@keyframes sbls-glow{0%,100%{box-shadow:0 0 0 0 rgba(212,175,55,.5),0 6px 18px rgba(7,27,53,.45)}50%{box-shadow:0 0 0 10px rgba(212,175,55,0),0 6px 18px rgba(7,27,53,.45)}}

/* ---------- popup trigger (shortcode mode="popup") ---------- */
.sbls-trigger{cursor:pointer;font:inherit;font-weight:700;padding:.7em 1.4em;border-radius:999px;border:2px solid var(--sbls-gold);background:var(--sbls-navy);color:var(--sbls-light-gold)}
.sbls-trigger:hover{background:var(--sbls-royal)}

/* ---------- modal ---------- */
.sbls-mode-floating .sbls-modal,.sbls-mode-popup .sbls-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:max(12px,env(safe-area-inset-top,0px)) max(12px,env(safe-area-inset-right,0px)) max(12px,env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));opacity:0;transition:opacity .25s ease}
.sbls-modal[hidden]{display:none!important}
.sbls-modal.is-open{opacity:1}
.sbls-backdrop{position:absolute;inset:0;background:rgba(3,12,26,.72);backdrop-filter:blur(2px)}
.sbls-dialog{position:relative;width:min(100%,460px);max-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:clamp(18px,4vw,28px) clamp(14px,4vw,26px);text-align:center;color:var(--sbls-white);background:radial-gradient(circle at 50% 0,var(--sbls-royal),var(--sbls-navy) 70%);border:2px solid var(--sbls-gold);border-radius:22px;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.sbls-mode-floating .sbls-dialog,.sbls-mode-popup .sbls-dialog{transform:translateY(14px) scale(.96);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.sbls-modal.is-open .sbls-dialog{transform:none}
.sbls-dialog:focus{outline:none}
.sbls-mode-inline .sbls-dialog{margin:0 auto}
.sbls-close{position:absolute;top:8px;right:10px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--sbls-light-gold);font-size:30px;line-height:1;cursor:pointer}
.sbls-close:hover{background:rgba(255,255,255,.1)}
.sbls-title{margin:0 28px 4px;font-size:clamp(1.35rem,5vw,1.8rem);font-weight:800;color:var(--sbls-light-gold);letter-spacing:.02em}
.sbls-subtitle{margin:0 0 14px;font-size:clamp(.85rem,3.2vw,.98rem);opacity:.9}

/* ---------- wheel ---------- */
.sbls-stage{display:flex;justify-content:center}
.sbls-wheel-wrap{position:relative;width:clamp(230px,min(78vw,50vh),340px);aspect-ratio:1;margin:12px auto 10px}
.sbls-wheel{display:block;width:100%;height:100%;filter:drop-shadow(0 8px 14px rgba(0,0,0,.45))}
.sbls-wheel-rotor{will-change:transform}
.sbls-seg-big{font-size:36px;font-weight:800;fill:var(--sbls-white);font-family:inherit}
.sbls-seg-small{font-size:22px;font-weight:700;fill:var(--sbls-light-gold);letter-spacing:.08em;font-family:inherit}
.sbls-pointer{position:absolute;z-index:3;top:-10px;left:50%;width:0;height:0;transform:translateX(-50%);border-left:clamp(11px,3.4vw,16px) solid transparent;border-right:clamp(11px,3.4vw,16px) solid transparent;border-top:clamp(22px,6.5vw,30px) solid var(--sbls-gold);filter:drop-shadow(0 3px 3px rgba(0,0,0,.5))}
.sbls-spin-btn{position:absolute;z-index:2;top:50%;left:50%;width:23%;height:23%;min-width:56px;min-height:56px;transform:translate(-50%,-50%);border-radius:50%;border:3px solid var(--sbls-white);background:radial-gradient(circle at 35% 30%,var(--sbls-light-gold),var(--sbls-gold));color:var(--sbls-navy);font:inherit;font-weight:800;font-size:clamp(.6rem,2.4vw,.78rem);line-height:1.1;letter-spacing:.02em;padding:0;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.4);transition:transform .15s ease,filter .15s ease}
.sbls-spin-btn:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.06)}
.sbls-spin-btn:disabled{cursor:not-allowed;filter:grayscale(.6) brightness(.9)}

/* ---------- misc ---------- */
.sbls-status{min-height:1.4em;margin:6px 0;font-size:.92rem;color:var(--sbls-light-gold)}
.sbls-email{margin:6px 0 4px;text-align:left}
.sbls-email label{display:block;font-size:.85rem;margin-bottom:4px}
.sbls-email input{width:100%;min-height:44px;padding:8px 12px;border-radius:10px;border:2px solid var(--sbls-gold);background:var(--sbls-white);color:var(--sbls-navy);font:inherit;font-size:16px}
.sbls-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;margin:6px 4px 0;padding:10px 24px;border-radius:999px;border:0;background:linear-gradient(135deg,var(--sbls-gold),var(--sbls-light-gold));color:var(--sbls-navy);font:inherit;font-weight:800;letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:transform .15s ease}
.sbls-btn:hover{transform:translateY(-1px)}
.sbls-btn[hidden]{display:none}
.sbls-book{background:transparent;color:var(--sbls-light-gold);border:2px solid var(--sbls-gold)}
.sbls-result{margin-top:8px;animation:sbls-pop .5s cubic-bezier(.2,.8,.2,1)}
.sbls-result__eyebrow{margin:0;font-weight:800;letter-spacing:.14em;color:var(--sbls-light-gold)}
.sbls-result__msg{margin:2px 0 6px;font-size:.92rem;opacity:.9}
.sbls-result__discount{margin:0;font-size:clamp(2rem,9vw,2.8rem);font-weight:900;line-height:1.1;background:linear-gradient(135deg,var(--sbls-gold),var(--sbls-light-gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.sbls-result__label{margin:8px 0 4px;font-size:.85rem;opacity:.85}
.sbls-result__code{display:block;max-width:100%;margin:0 auto;padding:10px 14px;border-radius:12px;border:2px dashed var(--sbls-gold);background:rgba(255,255,255,.08);color:var(--sbls-white);font-size:clamp(1rem,4.6vw,1.35rem);font-weight:800;letter-spacing:.06em;white-space:pre-wrap;overflow-wrap:anywhere;user-select:all}
.sbls-result__expiry{margin:8px 0 0;font-size:.8rem;opacity:.8}
.sbls-result__expiry:empty{display:none}
.sbls-terms{margin:14px 0 0;font-size:.72rem;line-height:1.35;opacity:.7}
@keyframes sbls-pop{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}

/* ---------- confetti ---------- */
.sbls-confetti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:5}
.sbls-confetti i{position:absolute;top:-10px;width:8px;height:12px;border-radius:2px;opacity:0;animation:sbls-fall 2s ease-in forwards}
@keyframes sbls-fall{0%{opacity:1;transform:translate3d(0,0,0) rotate(0)}100%{opacity:0;transform:translate3d(var(--sbls-dx,0),460px,0) rotate(540deg)}}

/* ---------- responsive ---------- */
@media (max-width:767px){
	.sbls-launcher{gap:3px}
	.sbls-pos-right-center .sbls-launcher,.sbls-pos-right-bottom .sbls-launcher{right:var(--sbls-off-m)}
	.sbls-pos-left-center .sbls-launcher,.sbls-pos-left-bottom .sbls-launcher{left:var(--sbls-off-m)}
	.sbls-pos-right-bottom .sbls-launcher,.sbls-pos-left-bottom .sbls-launcher{bottom:calc(var(--sbls-off-m) + env(safe-area-inset-bottom,0px))}
	.sbls-launcher__icon{width:var(--sbls-size-m);height:var(--sbls-size-m);border-width:2px;padding:3px}
	.sbls-launcher__label{font-size:10px;padding:1px 7px}
	.sbls-launcher__badge{display:none}
	.sbls-dev-desktop{display:none}
}
@media (min-width:768px){.sbls-dev-mobile{display:none}}
@media (max-width:360px){.sbls-dialog{border-radius:16px}.sbls-btn{padding:10px 16px}}
@media (max-height:640px){.sbls-wheel-wrap{width:clamp(200px,min(70vw,44vh),300px)}}

@media (prefers-reduced-motion:reduce){
	.sbls-launcher__icon,.sbls-launcher__icon svg,.sbls-result,.sbls-confetti i{animation:none!important}
	.sbls-modal,.sbls-dialog{transition:none!important}
}
