.firma-page{color:var(--fg);background:var(--bg);min-height:100vh}.firma-hero{padding:120px 0 28px;text-align:center}.firma-title{margin-top:22px;font-size:clamp(1.9rem,5.2vw,3.4rem);text-wrap:balance}.firma-sub{margin:18px auto 0;max-width:52ch;color:var(--muted);font-size:16px;line-height:1.7}.firma-aviso{margin:16px auto 0;max-width:56ch;padding:10px 14px;border:1px solid var(--accent-dim);border-radius:var(--r-md);color:var(--accent);font-size:13.5px;text-align:center}.firma-cargando{padding:48px 0}.firma-cargando,.firma-error{text-align:center;color:var(--muted)}.firma-error{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 16px;border:1px dashed var(--border);border-radius:var(--r-lg)}.firma-diales{margin-top:26px;padding:22px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);display:grid;gap:18px}.firma-diales-title{font-family:var(--font-display);font-size:22px;font-weight:600}.firma-dial{border:none;padding:0;margin:0;display:grid;gap:8px}.firma-dial-legend{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:0}.firma-chips{display:flex;flex-wrap:wrap;gap:8px}.firma-chip{cursor:pointer;transition:color .2s,border-color .2s,background-color .2s,box-shadow .2s}.firma-chip:hover{border-color:var(--accent);color:var(--accent)}.firma-chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--bg);box-shadow:var(--glow)}.firma-hint{font-size:12.5px;color:var(--dim)}.firma-puertas{display:flex;flex-wrap:wrap;gap:14px}.firma-cata-link{justify-self:start;font-size:13.5px;color:var(--accent);text-decoration:none;border-bottom:1px solid var(--accent-dim);padding-bottom:2px;transition:color .2s,border-color .2s}.firma-cata-link:focus-visible,.firma-cata-link:hover{outline:none;color:var(--accent-hover);border-color:var(--accent)}.firma-preliminar{margin-top:24px;display:grid;gap:10px}.firma-preliminar-chip{justify-self:start;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-dim);border-radius:var(--r-sm);padding:5px 10px}.firma-preliminar-nota{color:var(--muted);font-size:13.5px}.firma-ceremonia{position:fixed;inset:0;z-index:70;display:grid;place-items:center;gap:18px;align-content:center;background:color-mix(in oklch,var(--bg) 88%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:firma-ceremonia-velo .9s ease both}.firma-ceremonia-bg{position:absolute;inset:0;z-index:0;pointer-events:none}.firma-ceremonia-bg img{width:100%;height:100%;object-fit:cover;object-position:center}.firma-ceremonia-bg:after{content:"";position:absolute;inset:0;background:hsla(0,0%,5%,.74)}.firma-ceremonia>:not(.firma-ceremonia-bg){position:relative;z-index:1}.firma-sello{width:116px;height:116px;border-radius:9999px;border:2px solid var(--accent);box-shadow:var(--glow);animation:firma-sello .9s cubic-bezier(.22,.61,.36,1) both}.firma-ceremonia-texto{font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}@keyframes firma-sello{0%{transform:scale(2.2);opacity:0}55%{transform:scale(.94);opacity:1}to{transform:scale(1);opacity:1}}@keyframes firma-ceremonia-velo{0%{opacity:0}30%{opacity:1}to{opacity:1}}.carta-firma{position:relative;overflow:hidden;margin-top:26px;padding:26px 24px;border:1px solid var(--border);border-radius:var(--r-xl);background:var(--elev);display:grid;gap:12px;justify-items:center;text-align:center}.carta-bg{position:absolute;inset:0;z-index:0;pointer-events:none}.carta-bg img{width:100%;height:100%;object-fit:cover;object-position:center}.carta-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,hsla(0,0%,5%,.55),hsla(0,0%,5%,.8))}.carta-firma>:not(.carta-bg){position:relative;z-index:1}.carta-kicker{letter-spacing:.16em;color:var(--muted)}.carta-kicker,.carta-regalo{font-family:var(--font-mono);font-size:10px;text-transform:uppercase}.carta-regalo{letter-spacing:.14em;padding:4px 10px;border:1px solid var(--accent);border-radius:9999px;color:var(--accent)}.firma-regalo-headline{margin-top:26px;text-align:center;font-size:clamp(20px,4vw,26px)}.carta-palabras,.firma-regalo-headline{font-family:var(--font-display);font-weight:600}.carta-palabras{font-size:clamp(1.6rem,4.6vw,2.4rem);letter-spacing:-.01em}.carta-campos{display:flex;gap:8px;width:min(360px,100%)}.carta-campo{height:6px;border-radius:9999px;background:var(--carta-color,var(--bar-color-neutral))}.carta-campo--solido{flex:2}.carta-campo--suave{flex:1;opacity:.45}.carta-contador{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}.firma-rara{margin-top:18px;text-align:center;font-family:var(--font-display);font-size:20px;color:var(--accent)}.firma-resultados{position:relative;overflow:hidden;margin-top:30px;padding:22px 20px;border:1px solid var(--border);border-radius:var(--r-xl);display:grid;gap:14px}.firma-resultados-bg{position:absolute;inset:0;z-index:0;pointer-events:none}.firma-resultados-bg img{width:100%;height:100%;object-fit:cover;object-position:center}.firma-resultados-bg:after{content:"";position:absolute;inset:0;background:hsla(0,0%,5%,.76)}.firma-resultados>:not(.firma-resultados-bg){position:relative;z-index:1}.firma-resultados-title{font-family:var(--font-display);font-size:24px;font-weight:600}.firma-lista-resultados{list-style:none;padding:0;margin:0;display:grid;gap:12px}@media (min-width:760px){.firma-lista-resultados{grid-template-columns:repeat(3,1fr)}}.card-resultado-firma{display:grid;gap:8px;align-content:start;padding:18px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--elev)}.card-resultado-nombre{justify-self:start;color:inherit;font-family:var(--font-display);font-size:19px;font-weight:600;text-decoration:none;border-radius:var(--r-sm)}.card-resultado-nombre:hover{color:var(--accent)}.card-resultado-nombre:focus-visible{outline:2px solid var(--accent-dim);outline-offset:2px}.card-resultado-razon{font-size:13.5px;line-height:1.6;color:var(--muted)}.firma-page .card-lista-toggle{justify-self:start;border:1px solid var(--border);border-radius:var(--r-sm);background:transparent;color:var(--muted);font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;padding:5px 9px;cursor:pointer;transition:color .2s,border-color .2s}.firma-page .card-lista-toggle:focus-visible,.firma-page .card-lista-toggle:hover{outline:none;color:var(--accent);border-color:var(--accent)}.firma-page .card-lista-toggle--activa{color:var(--accent);border-color:var(--accent)}.firma-salidas{margin-top:26px;display:flex;flex-wrap:wrap;gap:12px}.pase-backdrop{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:20px;background:hsla(0,0%,5%,.86);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.pase{width:min(560px,100%);max-height:calc(100vh - 40px);overflow-y:auto;display:grid;gap:16px;padding:30px 26px;border:1px solid var(--border);border-radius:var(--r-xl);background:var(--elev);box-shadow:var(--sh-lg)}.pase-kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.pase-firma{font-family:var(--font-display);font-size:clamp(1.7rem,5vw,2.4rem);font-weight:600;line-height:1.15}.pase-nombres{margin:0;padding-left:22px;display:grid;gap:6px;font-size:17px;color:var(--fg)}.pase-tiendas{display:grid;gap:10px}.pase-tienda{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-md)}.pase-tienda b{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:500}.pase-tienda span{font-size:14px;color:var(--muted)}.pase-tienda a{justify-self:start;margin-top:4px;font-size:13px;color:var(--accent)}.pase-horario{font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;line-height:1.7;color:var(--dim)}.pase-cerrar{justify-self:start}@media (prefers-reduced-motion:reduce){.firma-chip,.firma-page .card-lista-toggle{transition:none}.firma-ceremonia,.firma-sello{animation:none}}