/* =========================
SPINLIX FINAL CLEAN CSS
========================= */

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

:root{
  --bg:#050816;
  --panel:rgba(10,15,30,0.82);
  --card:rgba(255,255,255,0.04);
  --primary:#22c55e;
  --text:#ffffff;
}

body{
  font-family:'Poppins',sans-serif;
  background:var(--bg);
  color:var(--text);
  overflow-x:hidden;
}

/* BACKGROUND */

.bg{

  position:fixed;
  inset:0;

  background:
  radial-gradient(
    circle at top left,
    rgba(59,130,246,0.30) 0%,
    transparent 35%
  ),

  radial-gradient(
    circle at bottom right,
    rgba(34,197,94,0.22) 0%,
    transparent 35%
  ),

  #050816;

  z-index:-1;
}

/* MENU BUTTON */

.menu-btn{

  position:fixed;

  top:20px;
  left:20px;

  width:64px;
  height:64px;

  border-radius:22px;

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid
  rgba(255,255,255,0.05);

  backdrop-filter:
  blur(20px);

  display:flex;
  justify-content:center;
  align-items:center;

  font-size:30px;

  cursor:pointer;

  z-index:1000;

  transition:0.3s;
}

.menu-btn:hover{

  transform:
  scale(1.05);

  background:
  rgba(255,255,255,0.08);
}

/* SIDEBAR */

.sidebar{

  position:fixed;

  top:0;
  left:-420px;

  width:400px;
  height:100vh;

  background:
  rgba(10,15,30,0.82);

  backdrop-filter:
  blur(24px);

  border-right:
  1px solid
  rgba(255,255,255,0.05);

  transition:0.4s;

  padding:25px;

  overflow:auto;

  z-index:1001;
}

.sidebar.active{
  left:0;
}

/* SCROLLBAR */

.sidebar::-webkit-scrollbar{
  width:8px;
}

.sidebar::-webkit-scrollbar-thumb{

  background:
  rgba(255,255,255,0.12);

  border-radius:20px;
}

/* SIDEBAR HEADER */

.sidebar-header{

  display:flex;

  justify-content:
  space-between;

  align-items:center;

  margin-bottom:22px;
}

.sidebar-header h2{

  font-size:30px;

  font-weight:700;

  letter-spacing:-1px;
}

.sidebar-header button{

  width:56px;

  height:56px;

  border:none;

  border-radius:18px;

  background:
  rgba(255,255,255,0.06);

  color:white;

  cursor:pointer;

  font-size:32px;

  font-weight:600;

  display:flex;

  align-items:center;

  justify-content:center;

  padding:0;

  line-height:1;

  transition:0.3s;

  transform:translateY(-1px);
}

.sidebar-header button:hover{

  background:
  rgba(255,255,255,0.10);

  transform:
  scale(1.05)
  translateY(-1px);
}

/* CARD */

.card{

  background:
  rgba(255,255,255,0.04);

  border-radius:28px;

  padding:22px;

  margin-bottom:18px;

  border:
  1px solid
  rgba(255,255,255,0.05);

  backdrop-filter:
  blur(14px);

  box-shadow:
  0 10px 30px
  rgba(0,0,0,0.18);
}

.card h3{

  margin-bottom:16px;

  font-size:22px;

  font-weight:600;

  letter-spacing:-0.5px;
}

/* TEXTAREA */

textarea{

  width:100%;

  height:220px;

  background:
  rgba(0,0,0,0.25);

  border:
  1px solid
  rgba(255,255,255,0.05);

  border-radius:20px;

  padding:16px;

  resize:none;

  color:white;

  font-size:15px;

  outline:none;

  transition:0.3s;
}

textarea:focus{

  border-color:
  rgba(34,197,94,0.4);
}

/* SETTINGS */

.setting{
  margin-bottom:18px;
}

.setting label{

  display:flex;

  align-items:center;

  gap:10px;

  font-size:15px;

  opacity:0.92;
}

/* RANGE */

input[type="range"]{

  width:100%;

  margin-top:10px;

  accent-color:var(--primary);
}

/* NUMBER */

input[type="number"]{

  width:100%;

  padding:14px;

  border:none;

  border-radius:18px;

  background:
  rgba(0,0,0,0.25);

  border:
  1px solid
  rgba(255,255,255,0.05);

  color:white;

  font-size:16px;

  outline:none;
}

/* REMOVE NUMBER ARROWS */

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button{

  -webkit-appearance:none;

  margin:0;
}

input[type=number]{
  -moz-appearance:textfield;
}

/* BUTTON */

button{

  width:100%;

  padding:15px;

  border:none;

  border-radius:18px;

  background:
  linear-gradient(
    135deg,
    #22c55e,
    #16a34a
  );

  box-shadow:
  0 10px 20px
  rgba(34,197,94,0.18);

  color:white;

  font-weight:700;

  font-size:16px;

  cursor:pointer;

  transition:0.3s;
}

button:hover{

  transform:
  translateY(-2px);

  filter:brightness(1.05);
}

/* TEAM */

.team-flex{

  display:flex;

  gap:10px;
}

#teamResult{
  margin-top:15px;
}

.team-card{

  background:
  rgba(0,0,0,0.22);

  padding:15px;

  border-radius:18px;

  margin-bottom:10px;

  border:
  1px solid
  rgba(255,255,255,0.04);
}

/* HISTORY */

#historyList{

  list-style:none;

  margin-bottom:15px;
}

#historyList li{

  background:
  rgba(0,0,0,0.22);

  padding:12px;

  border-radius:14px;

  margin-bottom:10px;

  border:
  1px solid
  rgba(255,255,255,0.04);
}

/* MAIN */

.main{

  min-height:100vh;

  display:flex;

  flex-direction:column;

  justify-content:center;

  align-items:center;

  padding:25px;
}

/* TITLE */

.title{

  text-align:center;

  margin-bottom:20px;
}

.title h1{

  font-size:52px;

  font-weight:800;

  letter-spacing:-2px;
}

.title p{

  opacity:0.68;

  margin-top:6px;

  font-size:15px;
}

/* WINNER */

.winner-box{

  text-align:center;

  margin-bottom:25px;
}

.winner-box span{
  opacity:0.7;
}

.winner-box h2{

  font-size:42px;

  margin-top:8px;

  font-weight:800;

  letter-spacing:-1px;
}

/* WINNER POP */

.winner-box h2.win{

  animation:
  winnerPop
  0.5s ease;
}

@keyframes winnerPop{

  0%{
    transform:scale(0.7);
  }

  70%{
    transform:scale(1.12);
  }

  100%{
    transform:scale(1);
  }
}

/* WHEEL */

.wheel-wrapper{

  position:relative;

  width:800px;

  height:800px;

  display:flex;

  justify-content:center;

  align-items:center;
}

/* POINTER */

.pointer{

  position:absolute;

  top:-5px;

  width:0;

  height:0;

  border-left:30px solid transparent;

  border-right:30px solid transparent;

  border-top:65px solid #ef4444;

  z-index:10;

  transform-origin:center top;

  filter:
  drop-shadow(
    0 0 12px
    rgba(239,68,68,0.3)
  );
}

/* POINTER SHAKE */

.pointer.tick{

  animation:
  pointerTick
  0.12s linear;
}

@keyframes pointerTick{

  0%{
    transform:rotate(0deg);
  }

  50%{
    transform:rotate(-10deg);
  }

  100%{
    transform:rotate(0deg);
  }
}

/* CANVAS */

#wheel{

  width:100%;
  height:100%;

  border-radius:50%;

  box-shadow:
  0 0 30px rgba(34,197,94,0.12),
  0 0 80px rgba(59,130,246,0.08);

  transition:
  filter 0.2s;
}

/* MOTION BLUR */

#wheel.fast{
  filter:blur(1px);
}

/* AUTO SPIN */

.bottom-controls{

  margin-top:25px;

  display:flex;

  gap:12px;

  width:100%;

  max-width:520px;

  align-items:center;
}

.bottom-controls input{

  width:110px;

  min-width:110px;

  height:56px;

  padding:0 14px;

  border:none;

  border-radius:18px;

  background:
  rgba(255,255,255,0.05);

  border:
  1px solid
  rgba(255,255,255,0.05);

  color:white;

  font-size:18px;

  text-align:center;

  outline:none;
}

.bottom-controls button{

  flex:1;

  height:56px;
}

/* MODAL */

.modal{

  position:fixed;

  inset:0;

  background:
  rgba(0,0,0,0.72);

  display:flex;

  justify-content:center;

  align-items:center;

  opacity:0;

  pointer-events:none;

  transition:0.3s;

  z-index:2000;
}

.modal.active{

  opacity:1;

  pointer-events:auto;
}

.modal-content{

  background:
  rgba(15,23,42,0.88);

  backdrop-filter:
  blur(18px);

  padding:42px;

  border-radius:32px;

  text-align:center;

  width:90%;

  max-width:460px;

  border:
  1px solid
  rgba(255,255,255,0.05);

  box-shadow:
  0 20px 60px
  rgba(0,0,0,0.35);
}

.modal-content h2{

  font-size:28px;
}

.modal-content h1{

  font-size:50px;

  margin:20px 0;

  color:#22c55e;

  letter-spacing:-1px;
}

.modal-buttons{

  display:flex;

  gap:12px;
}

/* CONFETTI */

.confetti{

  position:fixed;

  width:10px;

  height:10px;

  top:-20px;

  animation:
  fall linear forwards;
}

@keyframes fall{

  to{

    transform:
    translateY(120vh)
    rotate(720deg);

    opacity:0;
  }
}

/* FOOTER */

footer{

  width:100%;

  padding:30px 20px 50px;

  text-align:center;
}

.footer-title{

  opacity:0.72;

  font-size:14px;

  letter-spacing:0.3px;
}

.footer-credit{

  margin-top:10px;

  font-size:14px;

  opacity:0.6;
}

.footer-credit a{

  color:white;

  text-decoration:none;

  font-weight:600;

  transition:0.3s;
}

.footer-credit a:hover{

  opacity:1;

  color:#22c55e;
}

/* SEO CONTENT */

.seo-content{

  width:100%;

  max-width:900px;

  margin:80px auto 20px;

  padding:32px;

  background:
  rgba(255,255,255,0.04);

  border-radius:28px;

  backdrop-filter:
  blur(14px);

  border:
  1px solid
  rgba(255,255,255,0.05);

  line-height:1.8;
}

.seo-content h2{

  font-size:32px;

  margin-bottom:16px;

  letter-spacing:-1px;
}

.seo-content p{

  opacity:0.82;

  font-size:16px;
}

/* MOBILE */

@media(max-width:900px){

  .main{

    padding-top:120px;

    min-height:auto;
  }

  .title h1{
    font-size:38px;
  }

  .winner-box h2{
    font-size:34px;
  }

  .wheel-wrapper{

    width:94vw;

    height:94vw;

    margin-top:10px;
  }

  .sidebar{

    width:100%;

    left:-100%;
  }

  .bottom-controls{

    margin-top:20px;

    width:94vw;

    max-width:94vw;
  }

  .bottom-controls input{

    width:90px;

    min-width:90px;
  }

  .modal-buttons{
    flex-direction:column;
  }

  .seo-content{

    width:94vw;

    margin-top:60px;

    padding:24px;
  }

  .seo-content h2{

    font-size:24px;

    line-height:1.4;
  }

  .seo-content p{

    font-size:15px;

    line-height:1.9;
  }

  footer{

    padding:
    30px 20px 50px;
  }
}
