/* Tokyo Club — hoja única. Sin webfonts: la página tiene que abrir
   rápido en 4G saturada. La personalidad va en el tracking y la escala. */
:root{
  --tinta:#0F1420; --tinta-2:#161D2B; --tinta-3:#232C3D;
  --papel:#ECEDEF; --papel-2:#FBFBFC;
  --rojo:#E8402A; --rojo-osc:#C4321F;
  --mp:#009EE3; --mp-osc:#0286BE;

  /* ── FONDO ──────────────────────────────────────────
     Poné una imagen en /static/fondo.jpg y se usa sola.
     Si no existe, queda solo el degradado.
     --velo: cuánto oscurece la foto (0 = foto limpia,
             .85 = casi negro). Subilo si el texto no se lee. */
  --velo:.72;
  --gris:#6B7280; --gris-cl:#9AA1AC;
  --verde:#15803D;
  --r:14px;
  --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans); background:var(--tinta); color:var(--papel);
  min-height:100vh; line-height:1.55; padding:24px 16px 48px;
  display:flex; flex-direction:column; align-items:center;
  position:relative; isolation:isolate;
}
/* capa de fondo separada: la foto no se mueve al scrollear
   y el velo se ajusta sin tocar nada más */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;
  background:
    linear-gradient(rgba(15,20,32,var(--velo)), rgba(15,20,32,var(--velo))),
    radial-gradient(ellipse 90% 60% at 50% -5%, #223052 0%, transparent 65%),
    url("/static/fondo.jpg") center/cover no-repeat,
    var(--tinta);
}
.envoltorio{width:100%;max-width:440px}

.marca{text-align:center;margin:4px 0 22px}
.logo{
  max-width:min(340px,88%);   /* ajustá acá si tu logo es muy ancho o alto */
  max-height:110px;
  width:auto;height:auto;display:block;margin:0 auto;
  /* el alt se ve como texto si falta el archivo */
  font-size:34px;font-weight:800;letter-spacing:-.04em;color:var(--papel);
}

.ticket{background:var(--papel-2);color:var(--tinta);border-radius:var(--r);overflow:hidden}
.ticket-cab{padding:24px 24px 22px;text-align:center}
.evento{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gris)}
.precio{font-size:44px;font-weight:800;letter-spacing:-.04em;margin:10px 0 2px;
        font-variant-numeric:tabular-nums}
.precio-sub{font-size:13px;color:var(--gris)}

.perf{position:relative;height:24px;background:var(--papel-2)}
.perf::before,.perf::after{content:"";position:absolute;top:50%;
  transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background:var(--tinta)}
.perf::before{left:-12px} .perf::after{right:-12px}
.perf i{position:absolute;top:50%;left:14px;right:14px;height:0;border-top:2px dashed #D8DCE2}

.ticket-cuerpo{padding:4px 24px 26px}
.campo{margin-bottom:14px}
label{display:block;font-size:12px;font-weight:600;letter-spacing:.04em;
      text-transform:uppercase;color:var(--gris);margin-bottom:6px}
input[type=text],input[type=email],input[type=tel],input[type=password]{
  width:100%;padding:13px 14px;font-size:16px;font-family:inherit;
  border:1.5px solid #DDE1E7;border-radius:9px;background:#fff;color:var(--tinta)}
input:focus-visible{outline:none;border-color:var(--tinta);box-shadow:0 0 0 3px rgba(15,20,32,.10)}
input::placeholder{color:#B6BCC5}
.ayuda{font-size:12px;color:var(--gris);margin-top:5px}
.sugerencia{font-size:13px;color:var(--rojo-osc);margin-top:6px;display:none}
.sugerencia button{background:none;border:none;color:var(--rojo-osc);
  text-decoration:underline;cursor:pointer;font:inherit;padding:0}

.cant{display:flex;align-items:center;gap:14px}
.cant button{width:46px;height:46px;font-size:24px;line-height:1;font-family:inherit;
  border:1.5px solid #DDE1E7;background:#fff;border-radius:9px;color:var(--tinta);cursor:pointer}
.cant button:hover{border-color:var(--tinta)}
.cant button:disabled{opacity:.35;cursor:default}
.cant output{font-size:26px;font-weight:700;min-width:38px;text-align:center;
             font-variant-numeric:tabular-nums}

.total{display:flex;justify-content:space-between;align-items:baseline;
       padding:16px 0 4px;margin-top:6px;border-top:1.5px solid #E6E9ED}
.total span{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris)}
.total strong{font-size:26px;font-weight:800;letter-spacing:-.02em;
              font-variant-numeric:tabular-nums}

.pagar{width:100%;margin-top:16px;padding:16px;font-size:16px;font-weight:700;
  font-family:inherit;letter-spacing:.03em;text-transform:uppercase;
  background:var(--mp);color:#fff;border:none;border-radius:9px;cursor:pointer;
  box-shadow:0 2px 10px rgba(0,158,227,.28)}
.pagar:hover{background:var(--mp-osc)}
.pagar:disabled{opacity:.55;cursor:default}
.pagar:focus-visible{outline:3px solid #fff;outline-offset:2px}

.aviso{background:#FDECEA;border:1px solid #F5C2BA;color:#8A2517;
       padding:12px 14px;border-radius:9px;font-size:14px;margin-bottom:16px}
.pie{text-align:center;font-size:12px;color:var(--gris-cl);margin-top:20px;line-height:1.7}
.cerrado{text-align:center;padding:40px 24px}
.cerrado h2{font-size:22px;margin-bottom:8px;letter-spacing:-.02em}
.cerrado p{color:var(--gris);font-size:14px}

.estado{text-align:center;padding:36px 24px}
.icono{width:62px;height:62px;border-radius:50%;margin:0 auto 18px;
       display:flex;align-items:center;justify-content:center;font-size:30px;color:#fff}
.icono.ok{background:var(--verde)} .icono.mal{background:var(--rojo)}
.icono.espera{background:var(--tinta-3);animation:latir 1.4s ease-in-out infinite}
@keyframes latir{0%,100%{opacity:1}50%{opacity:.45}}
.estado h2{font-size:23px;letter-spacing:-.02em;margin-bottom:10px;color:var(--tinta)}
.estado p{color:var(--gris);font-size:15px;margin-bottom:8px}
.codigo{font-family:var(--mono);font-size:20px;font-weight:700;letter-spacing:.12em;
        background:#F1F3F5;padding:9px 16px;border-radius:8px;display:inline-block;
        margin:12px 0;color:var(--tinta)}
.enlace{display:inline-block;margin-top:14px;color:var(--tinta);font-size:14px;font-weight:600}

.qr-caja{background:#fff;border:1.5px solid #E6E9ED;border-radius:12px;
         padding:18px;text-align:center;margin-bottom:14px}
.qr-caja img{width:100%;max-width:240px;height:auto;display:block;margin:0 auto}
.qr-tit{font-size:15px;font-weight:700;color:var(--tinta)}
.qr-sub{font-size:12px;color:var(--gris);margin-bottom:12px}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
