/* Pulso — tema Neobrutal Pastel (propuesta 10)
   Tokens: lila de fondo, tinta casi negra, acentos rosa/menta/amarillo.
   Bordes 2.5px, sombras sólidas desplazadas, botones que se hunden. */
:root{
  --fondo:#cdb9f2;
  --tinta:#17141c;
  --papel:#ffffff;
  --rosa:#ffb3d9;
  --menta:#a8f0c6;
  --amarillo:#ffe84a;
  --celeste:#aadcf7;
  --borde:2.5px solid var(--tinta);
  --sombra:5px 5px 0 var(--tinta);
  --fuente:"Hanken Grotesk",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{color-scheme:light}
body{
  background:var(--fondo);
  color:var(--tinta);
  font-family:var(--fuente);
  min-height:100svh;
  -webkit-font-smoothing:antialiased;
}
.pulso-main{
  min-height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:20px 16px;
  max-width:460px;
  margin:0 auto;
}

/* ---------- tarjeta principal ---------- */
.pulso-card{display:flex;flex-direction:column;min-height:70svh;padding:8px 2px}
.pulso-brand{
  align-self:flex-start;
  background:var(--papel);
  border:var(--borde);
  border-radius:8px;
  padding:6px 14px;
  font-weight:800;
  font-size:14px;
  letter-spacing:.12em;
  box-shadow:4px 4px 0 var(--tinta);
}
.pulso-question{
  font-weight:800;
  font-size:clamp(26px,7.5vw,34px);
  line-height:1.08;
  letter-spacing:-.01em;
  margin-top:30px;
  text-wrap:balance;
}
.pulso-chip{
  align-self:flex-start;
  margin-top:16px;
  background:var(--amarillo);
  border:2px solid var(--tinta);
  border-radius:999px;
  font-weight:700;
  font-size:12.5px;
  padding:4px 13px;
  box-shadow:3px 3px 0 var(--tinta);
}
.pulso-chip-cerrada{background:var(--rosa)}
.pulso-chip-live i{
  display:inline-block;width:8px;height:8px;border-radius:50%;
  background:var(--tinta);margin-right:4px;vertical-align:1px;
  animation:pulso-late 1.4s infinite;
}
@keyframes pulso-late{50%{opacity:.25}}

/* ---------- botones de voto ---------- */
.pulso-opts{display:flex;flex-direction:column;gap:14px;margin-top:auto;padding-top:30px}
.pulso-btn{
  font-family:var(--fuente);
  font-weight:800;
  font-size:19px;
  color:var(--tinta);
  background:var(--papel);
  border:var(--borde);
  border-radius:12px;
  padding:16px;
  box-shadow:var(--sombra);
  cursor:pointer;
  transition:transform .1s ease,box-shadow .1s ease;
  touch-action:manipulation;
}
.pulso-btn-2{background:var(--rosa)}
.pulso-btn-3{background:var(--menta)}
.pulso-btn-4{background:var(--amarillo)}
.pulso-btn-5{background:var(--celeste)}
.pulso-btn:active,.pulso-btn:hover{box-shadow:1px 1px 0 var(--tinta);transform:translate(4px,4px)}
.pulso-btn:focus-visible,.pulso-link:focus-visible,.pulso-share-btn:focus-visible{
  outline:3px dashed var(--tinta);outline-offset:3px;
}

/* ---------- pie y links ---------- */
.pulso-foot{margin-top:18px;font-weight:700;font-size:13.5px;text-align:center}
.pulso-link{
  font-family:var(--fuente);
  color:var(--tinta);
  font-weight:700;
  background:none;border:none;cursor:pointer;
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:3px;
}

/* ---------- resultados ---------- */
.pulso-results{display:flex;flex-direction:column;gap:18px;margin-top:auto;padding-top:30px}
.pulso-result-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.pulso-result-label{font-weight:800;font-size:17px}
.pulso-result-pct{font-weight:800;font-size:17px;font-variant-numeric:tabular-nums}
.pulso-bar{
  height:30px;
  background:var(--papel);
  border:var(--borde);
  border-radius:10px;
  box-shadow:4px 4px 0 var(--tinta);
  overflow:hidden;
}
.pulso-bar-fill{
  height:100%;
  min-width:0;
  border-right:2.5px solid var(--tinta);
  transition:width .6s cubic-bezier(.22,1,.36,1);
}
.pulso-bar-fill[style*="width: 0"]{border-right:none}
.pulso-fill-1{background:var(--amarillo)}
.pulso-fill-2{background:var(--rosa)}
.pulso-fill-3{background:var(--menta)}
.pulso-fill-4{background:var(--celeste)}
.pulso-fill-5{background:#e2d6fa}

/* ---------- compartir ---------- */
.pulso-share{
  display:flex;flex-wrap:wrap;gap:9px;align-items:center;
  margin-top:22px;justify-content:center;
}
.pulso-share-label{font-weight:800;font-size:13.5px;width:100%;text-align:center}
.pulso-share-btn{
  font-family:var(--fuente);
  font-weight:700;font-size:13px;color:var(--tinta);
  text-decoration:none;cursor:pointer;
  background:var(--papel);
  border:2px solid var(--tinta);
  border-radius:999px;
  padding:7px 14px;
  box-shadow:3px 3px 0 var(--tinta);
  transition:transform .1s,box-shadow .1s;
}
.pulso-share-btn:active{box-shadow:0 0 0 var(--tinta);transform:translate(3px,3px)}
.pulso-share-qr{
  width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;
  margin-top:12px;
}
.pulso-share-qr[hidden]{display:none}
.pulso-share-qr img{
  width:200px;height:200px;
  background:var(--papel);
  border:var(--borde);border-radius:14px;
  box-shadow:var(--sombra);
  padding:10px;
}
.pulso-share-qr-nota{font-weight:700;font-size:13px;text-align:center}

/* ---------- modal de contacto ---------- */
.pulso-modal{position:fixed;inset:0;display:none;align-items:flex-end;justify-content:center;z-index:50}
.pulso-modal.is-active{display:flex}
.pulso-modal-fondo{position:absolute;inset:0;background:rgba(23,20,28,.55)}
.pulso-modal-card{
  position:relative;
  width:min(440px,100%);
  background:var(--papel);
  border:var(--borde);
  border-radius:18px 18px 0 0;
  border-bottom:none;
  padding:26px 22px 30px;
  box-shadow:0 -6px 0 var(--tinta);
  animation:pulso-sube .25s ease-out;
}
@keyframes pulso-sube{from{transform:translateY(40px);opacity:0}}
.pulso-modal-x{
  position:absolute;top:12px;right:12px;
  font-family:var(--fuente);font-weight:800;font-size:14px;
  background:var(--rosa);border:2px solid var(--tinta);border-radius:8px;
  width:32px;height:32px;cursor:pointer;box-shadow:2px 2px 0 var(--tinta);
}
.pulso-modal-title{font-weight:800;font-size:23px;letter-spacing:-.01em;padding-right:36px}
.pulso-modal-body{font-weight:500;font-size:14.5px;line-height:1.5;margin:10px 0 16px}
.pulso-label{display:block;font-weight:800;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;margin:12px 0 5px}
.pulso-input{
  width:100%;
  font-family:var(--fuente);font-weight:600;font-size:16px;
  border:var(--borde);border-radius:10px;
  padding:11px 13px;background:#faf7ff;
}
.pulso-input:focus{outline:none;background:var(--papel);box-shadow:3px 3px 0 var(--tinta)}
.pulso-consent{display:flex;gap:9px;align-items:flex-start;margin:16px 0;font-weight:600;font-size:13.5px;cursor:pointer}
.pulso-consent input{width:19px;height:19px;accent-color:var(--tinta);flex:none;margin-top:1px}
.pulso-btn-enviar{width:100%;background:var(--menta);font-size:17px;padding:14px}
.pulso-no-gracias{display:block;margin:14px auto 0;font-size:13px}
.pulso-error{
  background:var(--amarillo);border:2px solid var(--tinta);border-radius:8px;
  font-weight:700;font-size:13px;padding:7px 11px;margin:6px 0;
}
.pulso-modal-gracias{text-align:center;padding-bottom:36px}
.pulso-modal-gracias .pulso-btn{margin-top:10px;background:var(--amarillo)}

/* ---------- portada ---------- */
.pulso-home{min-height:auto;padding-top:28px;padding-bottom:28px}
.pulso-home-bajada{
  font-weight:600;font-size:16px;line-height:1.55;margin-top:16px;
}
.pulso-home-nosotros{margin-top:14px;font-size:14px}
.pulso-home-seccion{margin-top:34px}
.pulso-home-lista{list-style:none;display:flex;flex-direction:column;gap:14px;margin-top:14px}
.pulso-home-item{
  display:flex;flex-direction:column;gap:6px;
  color:var(--tinta);text-decoration:none;
  background:var(--papel);
  border:var(--borde);border-radius:12px;
  padding:15px 16px;
  box-shadow:var(--sombra);
  transition:transform .1s ease,box-shadow .1s ease;
}
.pulso-home-item:active,.pulso-home-item:hover{
  box-shadow:1px 1px 0 var(--tinta);transform:translate(4px,4px);
}
.pulso-home-item:focus-visible{outline:3px dashed var(--tinta);outline-offset:3px}
.pulso-home-item-2{background:var(--rosa)}
.pulso-home-item-3{background:var(--menta)}
.pulso-home-item-cerrada{background:#f1ecfb}
.pulso-home-pregunta{font-weight:800;font-size:17px;line-height:1.25}
.pulso-home-cta{
  font-weight:700;font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;
}
.pulso-home-vacio{margin-top:30px;font-weight:600;font-size:15px}

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