/* Paleta y tipografía tomadas de lbs.luquebusinesship.com */
:root{--black:#080808;--panel:#121214;--line:#2a2a2e;--purple:#7600ff;--purple-h:#8b2cff;--yellow:#ffda00;--pink:#ff205b;--cyan:#55dcf4;--white:#f7f7f7;--muted:#a7a49e;
--heading:Impact,'Arial Narrow',"Helvetica Neue",Arial,sans-serif;--body:"Helvetica Neue",Arial,Helvetica,sans-serif;color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--black);color:var(--white);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;position:relative;overflow-x:hidden}
.glow{position:fixed;inset:-30% -20% auto auto;width:70vw;height:70vw;max-width:900px;max-height:900px;background:radial-gradient(circle,rgba(118,0,255,.35),transparent 60%);pointer-events:none;z-index:0}
.container{position:relative;z-index:1;width:100%;max-width:620px;margin:0 auto;padding:28px 18px 48px;display:grid;gap:26px}
.top{display:flex;align-items:center;justify-content:space-between}
.wordmark{height:64px;width:auto}
.mark{height:72px;width:auto}
.eyebrow{font-weight:700;font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:var(--yellow);margin:0 0 10px}
h1,h2{font-family:var(--heading);font-weight:400;text-transform:uppercase;letter-spacing:-.02em;line-height:.97;margin:0}
h1{font-size:clamp(44px,11vw,76px)}
h1 span{color:var(--yellow)}
h2{font-size:clamp(34px,8vw,52px)}
.lead{color:var(--muted);margin:14px 0 0;max-width:52ch}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px;display:grid;gap:14px}
label{font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:grid;gap:7px}
input{font:inherit;font-size:16px;color:var(--white);background:var(--black);border:1px solid var(--line);border-radius:8px;padding:12px 14px;width:100%}
input::placeholder{color:#5f5d59}
input:focus{outline:none;border-color:var(--purple);box-shadow:0 0 0 3px rgba(118,0,255,.35)}
input[aria-invalid="true"]{border-color:var(--pink)}
.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;font:inherit;font-weight:700;font-size:15px;padding:14px 23px;cursor:pointer;transition:background .2s,transform .2s}
.button:hover{transform:translateY(-2px)}
.button:disabled{opacity:.55;cursor:default;transform:none}
.button-purple{background:var(--purple);color:#fff}.button-purple:hover{background:var(--purple-h)}
.button-yellow{background:var(--yellow);color:#000}
.button:focus-visible,.link:focus-visible{outline:3px solid var(--white);outline-offset:4px}
.link{background:none;border:0;color:var(--cyan);font:inherit;font-size:14px;cursor:pointer;justify-self:start;padding:0;text-decoration:underline;text-underline-offset:3px}
.estado{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center}
.estado p{margin:0;font-weight:700}
.tag{font-family:var(--heading);font-size:20px;letter-spacing:.02em;text-transform:uppercase;background:var(--purple);color:#fff;padding:4px 12px;border-radius:6px}
.nota{margin:0;color:var(--muted);font-size:14px}
.cupos{display:grid;gap:18px}
.cupo{border-top:1px solid var(--line);padding-top:16px;display:grid;gap:12px}
.cupo h3{margin:0;font-family:var(--heading);font-weight:400;font-size:22px;text-transform:uppercase;color:var(--yellow)}
.fila{display:grid;grid-template-columns:96px 1fr;gap:10px}
.msg{margin:0;font-size:14px;color:var(--pink)}
footer{color:#6f6d69;font-size:13px;text-align:center}
footer a{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}
a.button{text-decoration:none;justify-self:start}
.top a{display:block}
@media (max-width:420px){.wordmark{height:52px}.mark{height:58px}.panel{padding:18px}}
@media (prefers-reduced-motion:reduce){.button{transition:none}.button:hover{transform:none}}
.sitio{font-weight:700;font-size:18px;color:var(--yellow);text-decoration:underline;text-underline-offset:4px;word-break:break-all}
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:rgba(8,8,8,.82);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade .25s ease}
.modal[hidden]{display:none}
.modal-card{position:relative;width:100%;max-width:480px;max-height:calc(100vh - 40px);overflow:auto;background:var(--panel);border:2px solid var(--purple);border-radius:16px;padding:36px 26px 26px;display:grid;gap:14px;justify-items:center;text-align:center;box-shadow:0 0 0 6px rgba(118,0,255,.18),0 30px 80px rgba(118,0,255,.35);animation:pop .35s cubic-bezier(.2,.9,.3,1.2)}
.modal-card h2{color:var(--yellow);font-size:clamp(32px,8vw,46px)}
.modal-card p{margin:0}
.modal-card .eyebrow{margin:0;color:var(--cyan)}
.modal-card .button,.modal-card .link{justify-self:center}
.modal-card .button{width:100%}
.check{width:64px;height:64px;border-radius:50%;background:var(--yellow);color:#000;display:grid;place-items:center;font-size:34px;font-weight:700}
.cerrar{position:absolute;top:10px;right:12px;background:none;border:0;color:var(--muted);font-size:30px;line-height:1;cursor:pointer;padding:4px 8px}
.cerrar:hover{color:var(--white)}
.cerrar:focus-visible{outline:3px solid var(--white);outline-offset:2px}
body.con-modal{overflow:hidden}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:scale(.9) translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.modal,.modal-card{animation:none}}
.aviso{margin:0;padding:14px 16px;border:1px solid var(--cyan);border-radius:10px;background:rgba(85,220,244,.08);font-size:14px;color:var(--white)}
.aviso strong{color:var(--cyan)}
