.launchOverlay{
  position:fixed;
  inset:0;
  z-index:250;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  text-align:center;
  background:
    radial-gradient(circle at 50% 30%, rgba(241,209,138,.18), transparent 30%),
    radial-gradient(circle at 20% 80%, rgba(138,93,20,.16), transparent 35%),
    rgba(2,2,4,.96);
  opacity:1;
  pointer-events:auto;
  transition:opacity .9s ease;
}

.launchOverlay.hidden{
  opacity:0;
  pointer-events:none;
}

.launchNoise{
  position:absolute;
  inset:0;
  background-image:repeating-linear-gradient(180deg, rgba(255,255,255,.025) 0 1px, transparent 1px 3px);
  mix-blend-mode:screen;
  animation:grain .9s steps(3) infinite;
}

.launchMessage{
  position:relative;
  z-index:2;
  text-transform:uppercase;
  letter-spacing:2px;
  width:min(380px,88vw);
}

.launchLogo{
  width:88px;
  height:88px;
  object-fit:contain;
  margin:0 auto 16px;
  filter:drop-shadow(0 0 22px rgba(215,167,77,.28));
  opacity:.98;
}

.launchVideoWrap{
  position:relative;
  z-index:2;
  width:min(380px,88vw);
  aspect-ratio:9/16;
  border-radius:32px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 24px 70px rgba(0,0,0,.55);
  background:#000;
}

.launchVideo{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#000;
}

.launchPanel{
  position:relative;
  z-index:2;
  width:min(380px,88vw);
  display:grid;
  gap:10px;
  padding:18px;
  border-radius:30px;
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(145deg, rgba(255,255,255,.05), rgba(0,0,0,.24));
  box-shadow:0 20px 60px rgba(0,0,0,.32);
  backdrop-filter:blur(16px);
}

.launchLabel{
  font-size:.7rem;
  letter-spacing:2.6px;
  text-transform:uppercase;
  color:rgba(255,255,255,.62);
  text-align:left;
}

.launchInput{
  width:100%;
  height:52px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(0,0,0,.42);
  color:#fff;
  padding:0 16px;
  font-size:1.1rem;
  font-weight:1100;
  letter-spacing:3px;
  text-align:center;
  outline:none;
}

.launchInput::placeholder{
  color:rgba(255,255,255,.24);
  letter-spacing:3px;
}

.launchAction,
.launchBroker{
  width:100%;
  height:50px;
  border:none;
  border-radius:20px;
  font-size:.88rem;
  font-weight:1100;
  letter-spacing:1.6px;
  text-transform:uppercase;
  cursor:pointer;
  transition:transform .08s ease, opacity .2s ease;
}

.launchAction{
  color:#120c02;
  background:linear-gradient(90deg,#f2d38f,#d7a74d,#b98026);
  box-shadow:0 14px 34px rgba(215,167,77,.20);
}

.launchBroker{
  color:#f7ead0;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.04);
}

.launchAction:active,
.launchBroker:active{
  transform:scale(.985);
}

.launchAction:disabled{
  opacity:.75;
  cursor:wait;
}

.turnstileShell{
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
}

.turnstileShell[hidden]{
  display:none;
}

.turnstileMount{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
}

.launchStatus{
  min-height:20px;
  font-size:.8rem;
  color:rgba(255,255,255,.62);
  text-align:center;
}

.launchStatus[data-state="error"]{
  color:#ff9db4;
}

.launchStatus[data-state="success"]{
  color:#9dffc5;
}

.launchTitle{
  font-size:2.2rem;
  font-weight:1000;
  letter-spacing:4px;
  background:linear-gradient(120deg, #fff3cf, #d7a74d, #f7e7b5);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:0 0 24px rgba(215,167,77,.20);
}

.launchTag{
  margin-top:8px;
  font-size:.82rem;
  color:#d6c398;
  letter-spacing:3px;
}

.launchNote{
  margin-top:6px;
  font-size:.74rem;
  color:rgba(255,255,255,.55);
  letter-spacing:2px;
}

.scanBeam{
  position:absolute;
  inset:calc(50% - 1px) 18%;
  height:2px;
  background:linear-gradient(90deg, transparent, rgba(241,209,138,.85), transparent);
  box-shadow:0 0 22px rgba(215,167,77,.35);
  animation:beamSweep 2.4s linear infinite;
  z-index:1;
}

@keyframes beamSweep{
  0%{transform:translateX(-100%); opacity:0;}
  40%{opacity:.85;}
  100%{transform:translateX(100%); opacity:0;}
}

@keyframes grain{
  0%,100%{background-position:0 0;}
  50%{background-position:0 10px;}
}

@media (max-width:640px) and (orientation:portrait){
  .launchOverlay{
    justify-content:flex-start;
    gap:12px;
    padding:calc(16px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom));
    overflow:auto;
  }

  .launchVideoWrap{
    width:min(320px, 82vw);
    border-radius:28px;
  }

  .launchPanel{
    width:min(100%, 360px);
    padding:16px;
    border-radius:26px;
  }

  .launchLabel{
    font-size:.64rem;
    letter-spacing:2.2px;
  }

  .launchInput{
    height:48px;
    font-size:1rem;
  }

  .launchAction,
  .launchBroker{
    height:48px;
  }

  .launchStatus{
    font-size:.74rem;
  }
}
