*{box-sizing:border-box}

html,body{
  margin:0;
  padding:0;
  width:100%;
  min-height:100%;
  background:#04164f;
}

body{
  font-family:Arial,Helvetica,sans-serif;
  overflow-x:hidden;
}

.page{
  width:100%;
  min-height:100vh;
  background:#04164f;
  padding:0;
}

.poster-wrap{
  position:relative;
  width:100%;
  max-width:1183px;
  margin:0 auto;
  height:100vh;
  aspect-ratio:auto;
  overflow:hidden;
  background:none !important;
}

.poster-bg{
  background:none !important;
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:fill;
  z-index:1;
}

.form-area{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:10;
}

/* =========================
   CHASSIS INPUT
========================= */

.poster-input{
  position:absolute;
  left:21.8%;
  top:50.2%;
  width:56.7%;
  height:4.55%;
  border:2px solid #9bb4ed;
  border-radius:18px;
  background:#fff;
  color:#172b64;
  padding:0 18px;
  font-size:clamp(11px,1.35vw,20px);
  font-weight:700;
  outline:none;
  box-shadow:
    0 2px 7px rgba(0,0,0,.12),
    inset 0 1px 2px rgba(0,0,0,.08);
}

.poster-input:focus{
  border-color:#4f8cff;
  box-shadow:
    0 0 0 3px rgba(79,140,255,.20),
    0 3px 10px rgba(0,0,0,.18);
}

.poster-input::placeholder{
  color:#8792af;
}

/* =========================
   CHECK BUTTON - 3D
========================= */

.poster-check{
  position:absolute;
  left:21.8%;
  top:55.75%;
  width:56.7%;
  height:4.65%;

  border:0;
  border-radius:18px;

  background:linear-gradient(
    180deg,
    #ff6b18 0%,
    #ff3b00 48%,
    #d91f00 100%
  );

  color:#fff;
  font-size:clamp(11px,1.45vw,21px);
  font-weight:900;
  letter-spacing:.2px;

  cursor:pointer;

  box-shadow:
    0 6px 0 #9e1700,
    0 10px 20px rgba(255,50,0,.32),
    inset 0 2px 0 rgba(255,255,255,.45),
    inset 0 -2px 0 rgba(0,0,0,.12);

  text-shadow:
    0 2px 2px rgba(0,0,0,.35);

  transition:
    transform .12s ease,
    box-shadow .12s ease;
}

.poster-check:hover{
  transform:translateY(-2px);

  box-shadow:
    0 8px 0 #9e1700,
    0 13px 24px rgba(255,50,0,.38),
    inset 0 2px 0 rgba(255,255,255,.5);
}

.poster-check:active{
  transform:translateY(5px);

  box-shadow:
    0 1px 0 #9e1700,
    0 4px 8px rgba(255,50,0,.25),
    inset 0 2px 4px rgba(0,0,0,.20);
}

/* =========================
   MESSAGE
========================= */

.message{
  position:absolute;
  left:20%;
  top:61%;
  width:60%;

  min-height:28px;
  padding:5px 10px;

  text-align:center;

  color:#fff;
  background:rgba(4,22,79,.94);

  border:2px solid #ffd54f;
  border-radius:12px;

  font-size:clamp(9px,1.05vw,15px);
  font-weight:900;
  line-height:1.3;

  text-shadow:0 1px 2px rgba(0,0,0,.7);

  box-shadow:
    0 3px 10px rgba(0,0,0,.35);

  z-index:50;

  transition:
    background .2s ease,
    border-color .2s ease,
    color .2s ease;
}

/* ERROR = RED */

.message.error{
  color:#fff;
  background:linear-gradient(
    180deg,
    #ff4b4b,
    #c91515
  );
  border-color:#ffb3b3;

  box-shadow:
    0 3px 12px rgba(180,0,0,.45),
    inset 0 1px 0 rgba(255,255,255,.35);
}

/* VERIFIED / SUCCESS = GREEN */

.message.success{
  color:#fff;
  background:linear-gradient(
    180deg,
    #20c978,
    #078947
  );
  border-color:#9dffd0;

  box-shadow:
    0 3px 12px rgba(0,130,70,.45),
    inset 0 1px 0 rgba(255,255,255,.4);
}

/* INFO */

.message.info{
  color:#fff;
  background:linear-gradient(
    180deg,
    #2879d8,
    #124c9e
  );
  border-color:#9bc9ff;
}

/* =========================
   VERIFIED CUSTOMER BOX
========================= */

.customer{
  position:absolute;
  left:23%;
  top:44%;
  width:54%;
  padding:2.3%;

  border-radius:20px;

  background:linear-gradient(
    135deg,
    #effff6,
    #d8ffe9
  );

  border:3px solid #42d98d;

  color:#16452f;
  text-align:center;

  box-shadow:
    0 12px 30px rgba(0,0,0,.35);

  z-index:30;
}

.customer .badge{
  display:inline-block;
  padding:6px 12px;
  border-radius:20px;

  background:#19a96b;

  color:#fff;
  font-size:clamp(9px,1vw,15px);
  font-weight:900;

  box-shadow:
    0 3px 0 #087447,
    0 5px 10px rgba(0,0,0,.18);
}

.customer p{
  margin:7px 0;
  font-size:clamp(12px,1.5vw,22px);
  font-weight:900;
}

/* =========================
   START DRAW - 3D
========================= */

.draw{
  width:100%;
  padding:14px 16px;

  border:0;
  border-radius:16px;

  background:linear-gradient(
    180deg,
    #ff711a 0%,
    #ff3c00 48%,
    #d91f00 100%
  );

  color:#fff;

  font-size:clamp(12px,1.5vw,21px);
  font-weight:900;
  letter-spacing:.3px;

  cursor:pointer;

  box-shadow:
    0 6px 0 #971700,
    0 10px 20px rgba(0,0,0,.32),
    inset 0 2px 0 rgba(255,255,255,.5),
    inset 0 -2px 0 rgba(0,0,0,.12);

  text-shadow:
    0 2px 2px rgba(0,0,0,.35);

  transition:
    transform .12s ease,
    box-shadow .12s ease;
}

.draw:hover{
  transform:translateY(-2px);

  box-shadow:
    0 8px 0 #971700,
    0 13px 24px rgba(0,0,0,.38),
    inset 0 2px 0 rgba(255,255,255,.55);
}

.draw:active{
  transform:translateY(5px);

  box-shadow:
    0 1px 0 #971700,
    0 4px 8px rgba(0,0,0,.28),
    inset 0 2px 4px rgba(0,0,0,.2);
}

.poster-check:disabled,
.draw:disabled{
  opacity:.65;
  cursor:not-allowed;
  transform:none;
}

/* =========================
   RESULT
========================= */

.result{
  position:absolute;
  left:23%;
  top:44%;
  width:54%;
  padding:3%;

  border-radius:22px;

  background:linear-gradient(
    135deg,
    #fff7d6,
    #fff0b5
  );

  border:3px solid #ffd34d;

  color:#d84315;
  text-align:center;

  z-index:31;

  box-shadow:
    0 12px 30px rgba(0,0,0,.35);
}

.result .label{
  font-size:clamp(10px,1.2vw,17px);
  font-weight:900;
}

.result .gift{
  margin:8px 0;
  font-size:clamp(20px,2.8vw,38px);
  font-weight:900;
}

.result p{
  margin:0;
  font-size:clamp(9px,1vw,14px);
  color:#666;
  font-weight:800;
}

/* =========================
   WINNERS
========================= */

.winner-live{
  position:absolute;
  left:5.8%;
  top:86.2%;
  width:88.4%;
  height:4.7%;

  display:flex;
  align-items:center;
  justify-content:center;

  overflow:hidden;
  z-index:25;
}

.winner-live .winner-track{
  width:100%;
  height:100%;
  display:flex;
}

.winner-item{
  width:100%;
  min-width:100%;
  height:100%;

  display:flex;
  align-items:center;
  justify-content:center;

  gap:clamp(8px,1.4vw,24px);

  background:rgba(255,250,230,.96);

  border-radius:14px;

  color:#18255b;

  font-size:clamp(9px,1.1vw,16px);
  font-weight:800;

  white-space:nowrap;
  overflow:hidden;

  box-shadow:
    0 3px 8px rgba(0,0,0,.2);
}

.winner-item strong{
  font-weight:900;
}

.winner-item small{
  font-size:inherit;
}

.winner-item span{
  color:#e65100;
  font-weight:900;
}

/* =========================
   FOOTER
========================= */

.footer-note{
  width:100%;
  max-width:1183px;
  margin:0 auto;
  padding:8px 0 18px;

  text-align:center;

  color:#fff;
  font-size:12px;
  font-weight:800;

  display:none;
}

/* =========================
   DRAW OVERLAY
========================= */

.draw-overlay{
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  left:0;

  background:rgba(0,0,0,.93);

  display:none;
  align-items:center;
  justify-content:center;

  z-index:9999;
  padding:15px;
}

.draw-overlay.active{
  display:flex;
}

.draw-box{
  width:100%;
  max-width:430px;

  padding:30px 22px;

  border-radius:28px;

  background:linear-gradient(
    145deg,
    #fff,
    #fff8e8
  );

  color:#222;
  text-align:center;

  box-shadow:
    0 25px 80px rgba(0,0,0,.85);
}

.draw-brand{
  font-size:11px;
  font-weight:900;
  color:#174ba0;
  letter-spacing:1px;
}

.draw-box h2{
  margin:5px 0;
  color:#e65100;
  font-size:27px;
}

.draw-machine{
  width:180px;
  height:180px;

  margin:25px auto;

  border-radius:50%;

  display:flex;
  align-items:center;
  justify-content:center;

  background:radial-gradient(
    circle,
    #ffcc00,
    #ff9500 55%,
    #ff3b30
  );

  box-shadow:
    0 0 0 10px #fff,
    0 0 0 13px #ffd54f,
    0 0 50px rgba(255,174,0,.9);

  font-size:70px;

  animation:spin 1s linear infinite;
}

.draw-status{
  min-height:30px;
  font-size:20px;
  font-weight:800;
}

.draw-final{
  display:none;
}

.draw-final.show{
  display:block;
  animation:pop .6s ease;
}

.congrats{
  color:#e65100;
  font-size:23px;
  font-weight:900;
}

.gift-name{
  margin:20px 0;
  padding:17px;

  border-radius:16px;

  background:#ffd54f;
  color:#d84315;

  font-size:32px;
  font-weight:900;
}

/* =========================
   CONFETTI
========================= */

.confetti{
  position:fixed;
  top:0;
  right:0;
  bottom:0;
  left:0;

  pointer-events:none;
  overflow:hidden;

  z-index:10000;
}

.confetti-piece{
  position:absolute;
  top:-20px;

  width:10px;
  height:18px;

  animation:fall 3s linear forwards;
}

/* =========================
   ANIMATIONS
========================= */

@keyframes spin{
  from{
    transform:rotate(0);
  }

  to{
    transform:rotate(360deg);
  }
}

@keyframes pop{
  0%{
    transform:scale(.5);
    opacity:0;
  }

  70%{
    transform:scale(1.08);
    opacity:1;
  }

  100%{
    transform:scale(1);
    opacity:1;
  }
}

@keyframes fall{
  0%{
    transform:translateY(0) rotate(0);
    opacity:1;
  }

  100%{
    transform:translateY(110vh) rotate(720deg);
    opacity:0;
  }
}

/* =========================
   MOBILE
========================= */

@media (max-width:600px){

  html,
  body{
    width:100%;
    height:100%;
    min-height:100%;

    margin:0;
    padding:0;

    overflow-x:hidden;

    background:#04164f;
  }

  .page{
    width:100%;
    min-height:100vh;

    padding:0;
    margin:0;
  }

  .poster-wrap{
    position:relative;

    width:100%;
    max-width:none;

    height:100vh;
    min-height:100vh;

    aspect-ratio:auto;

    margin:0;
    padding:0;

    overflow:hidden;

    background:#04164f !important;
  }

  .poster-bg{
    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:100%;

    display:block;

    object-fit:fill;

    z-index:1;
  }

  .form-area{
    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:100%;

    z-index:10;
  }

  .poster-input{
    padding:0 9px;

    border-radius:10px;
    border-width:1px;

    font-size:11px;
  }

  .poster-check{
    border-radius:10px;

    box-shadow:
      0 4px 0 #9e1700,
      0 7px 13px rgba(255,50,0,.30),
      inset 0 1px 0 rgba(255,255,255,.45);
  }

  .poster-check:active{
    transform:translateY(4px);

    box-shadow:
      0 1px 0 #9e1700,
      0 3px 7px rgba(255,50,0,.25);
  }

  .message{
    left:18%;
    top:61%;
    width:64%;

    min-height:25px;

    padding:4px 7px;

    border-width:1px;
    border-radius:8px;

    font-size:10px;
  }

  .customer{
    border-width:2px;
    border-radius:13px;
  }

  .customer .badge{
    padding:4px 8px;
  }

  .draw{
    padding:9px 8px;
    border-radius:11px;

    font-size:12px;

    box-shadow:
      0 4px 0 #971700,
      0 7px 13px rgba(0,0,0,.35),
      inset 0 1px 0 rgba(255,255,255,.45);
  }

  .draw:active{
    transform:translateY(4px);

    box-shadow:
      0 1px 0 #971700,
      0 3px 7px rgba(0,0,0,.28);
  }

  .winner-item{
    gap:5px;
    border-radius:8px;
  }

  .draw-machine{
    width:145px;
    height:145px;
    font-size:55px;
  }

  .draw-status{
    font-size:17px;
  }

  .footer-note{
    display:none;
  }
}

/* =========================
   VERY SMALL MOBILE
========================= */

@media (max-width:380px){

  .poster-input{
    font-size:10px;
  }

  .poster-check{
    font-size:10px;
  }

  .message{
    font-size:14px;
  }

  .winner-item{
    font-size:12px;
  }

  .draw{
    font-size:11px;
  }
}