.halloween-launcher[hidden], .halloween-dialog [hidden] { display: none !important; }
.halloween-launcher { position: fixed; bottom: 22px; left: 22px; z-index: 110; display: flex; align-items: center; gap: 10px; background: #19101f; border: 1px solid #d27841; border-radius: 99px; padding: 12px 16px; color: #ffe9c6; font: 700 11px Inter, sans-serif; letter-spacing: .06em; cursor: pointer; box-shadow: 0 5px 28px #0008; }
.halloween-launcher span { color: #ff9d47; font-size: 19px; }
.halloween-launcher strong { color: #19101f; background: #ffae58; padding: 4px 6px; border-radius: 4px; }
.halloween-dialog { position: fixed; inset: 0; padding: 0; margin: auto; width: min(820px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow: auto; border: 1px solid #684571; border-radius: 22px; background: #15101c; color: #f4f1e9; box-shadow: 0 30px 120px #000a; }
.halloween-dialog::backdrop { background: #030207c9; backdrop-filter: blur(8px); }
body.halloween-open { overflow: hidden; }
.halloween-close { position: absolute; right: 13px; top: 13px; z-index: 2; width: 38px; height: 38px; border-radius: 50%; border: 1px solid #62516e; background: #20172a; color: #f6eafc; font: 26px/1 Arial, sans-serif; cursor: pointer; }
.halloween-layout { display: grid; grid-template-columns: 1fr 1fr; }
.halloween-art-panel { position: relative; display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 45px 8px 30px; background: radial-gradient(ellipse at 50% 80%, #883f201d, transparent 70%), #1b1225; border-right: 1px solid #382742; overflow: hidden; }
.halloween-art-label { position: absolute; top: 26px; width: 100%; left: 0; text-align: center; color: #ba9ccc; font: 8px monospace; letter-spacing: .19em; }
.halloween-character-button { padding: 0; border: 0; background: none; width: 100%; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.halloween-character { width: 100%; display: block; }
.halloween-ghost-float { animation: halloween-float 4s ease-in-out infinite; }
.halloween-tap-hint { color: #ccb9d9; font-size: 12px; text-align: center; margin-top: -15px; }
.halloween-tap-hint > span { color: #ffac56; font-size: 22px; margin-right: 6px; }
.halloween-copy { padding: 58px 32px 28px; }
.halloween-kicker { color: #c7aacd; font-size: 9px; letter-spacing: .13em; font-weight: 700; line-height: 1.7; }
.halloween-copy h2 { font-size: clamp(30px, 3.3vw, 43px); line-height: 1.1; letter-spacing: .01em; margin: 14px 0 0; }
.halloween-copy h2 span { color: #ffad59; }
.halloween-discount { font-family: Anton, Impact, sans-serif; font-size: 100px; line-height: 1; color: #b9ff80; margin: 20px 0 12px; letter-spacing: -.04em; }
.halloween-discount span { font-size: 62px; }
.halloween-description { color: #eee8e0; font-size: 15px; font-weight: 600; line-height: 1.5; }
.halloween-instruction { color: #b9a8c4; font-size: 12px; line-height: 1.7; margin: 14px 0 17px; }
.halloween-reveal-button { display: flex; width: 100%; justify-content: space-between; align-items: center; min-height: 48px; padding: 12px 17px; background: #ffad59; color: #261224; border: 0; border-radius: 7px; cursor: pointer; font: 800 12px Inter, sans-serif; text-transform: uppercase; letter-spacing: .03em; }
.halloween-reveal-button:hover { background: #ffc485; }
.halloween-reveal-button:disabled { opacity: .6; cursor: wait; }
.halloween-reveal-button span { font-size: 20px; }
.halloween-terms { margin-top: 14px; color: #b4a3bd; font-size: 10px; line-height: 1.6; }
.halloween-feedback { min-height: 18px; margin-top: 8px; font-size: 11px; color: #c0ff91; line-height: 1.5; }
.halloween-dismiss { display: block; margin: 8px auto 0; background: none; border: 0; border-bottom: 1px solid #65516c; color: #c9bace; padding: 7px 0; cursor: pointer; font-size: 11px; }
.halloween-reward { margin-top: 17px; }
.halloween-reward-label { font-size: 9px; font-weight: 700; color: #c5acd2; letter-spacing: .14em; }
.halloween-coupon { display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 1px dashed #b398c2; padding: 12px; border-radius: 7px; margin: 7px 0 13px; background: #25182e; }
.halloween-coupon code { font-size: clamp(14px, 1.5vw, 18px); color: #e8ffcc; font-weight: 800; letter-spacing: .04em; user-select: all; }
.halloween-coupon button { background: none; border: 0; color: #ffbe78; font-size: 10px; cursor: pointer; padding: 8px 0; }
.halloween-dialog.is-revealed .halloween-wink { transform-origin: 239px 121px; animation: halloween-wink .65s ease; }
.halloween-dialog.is-revealed .pumpkin-grin { fill: #b9ff80; }
.halloween-dialog.is-revealed .halloween-tap-hint { visibility: hidden; }
.halloween-dialog.is-revealed .halloween-ghost-float { animation: none; }
.halloween-dialog button:focus-visible, .halloween-coupon code:focus-visible { outline: 2px solid #b9ff80; outline-offset: 4px; }
@keyframes halloween-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes halloween-wink { 0%,100% { transform: scaleY(1); } 40%,70% { transform: scaleY(.08); } }
.motion-paused .halloween-dialog *, .motion-paused .halloween-dialog *::before { animation: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) { .halloween-dialog * { animation: none !important; transition: none !important; } }
@media (max-width: 620px) {
  .halloween-dialog { width: min(390px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); border-radius: 17px; }
  .halloween-layout { grid-template-columns: 1fr; }
  .halloween-art-panel { padding: 20px 0 0; height: 246px; border: 0; border-bottom: 1px solid #382742; }
  .halloween-character-button { width: 217px; margin: auto; }
  .halloween-art-label { top: 13px; font-size: 6px; }
  .halloween-tap-hint { position: absolute; bottom: 8px; right: 13px; font-size: 9px; }
  .halloween-tap-hint > span { font-size: 15px; }
  .halloween-copy { padding: 21px 25px 20px; }
  .halloween-copy h2 { font-size: 32px; margin-top: 8px; }
  .halloween-copy h2 br { display: none; }
  .halloween-copy h2 span { display: block; }
  .halloween-discount { float: right; font-size: 62px; margin: 11px 0 8px 12px; }
  .halloween-discount span { font-size: 39px; }
  .halloween-description { font-size: 13px; margin-top: 14px; }
  .halloween-instruction { font-size: 11px; margin-top: 12px; }
  #halloweenBeforeReveal, .halloween-reward { clear: both; padding-top: 4px; }
  .halloween-coupon code { font-size: 18px; }
  .halloween-terms { margin-top: 10px; }
  .halloween-launcher { bottom: 14px; left: 14px; padding: 9px 12px; font-size: 10px; }
}
@media (max-height: 700px) and (max-width: 620px) {
  .halloween-art-panel { height: 185px; }
  .halloween-character-button { width: 174px; }
  .halloween-copy { padding-top: 15px; }
  .halloween-copy h2 { font-size: 27px; }
  .halloween-discount { font-size: 51px; }
}
