/* ══════════════════════════════════════════════════════════════
   EL ASTROLABIO DEL ALBA — piel ritual de la calculadora de
   ascendente. Solo viste la card de entrada: el motor (calc_natal)
   y el bloque de resultado de la landing quedan intactos.
   Scope: .bx-astrolabio / #bx* — no toca nada más de la página.
   ══════════════════════════════════════════════════════════════ */
.bx-astrolabio{
  /* mismo número para rueda y tipografía: ancho real disponible dentro de la card
     (100vw − padding del articulo ~8vw − borde card − padding del panel) */
  --bxw:min(90vw - 14px,600px);
  --bxpaper:#f5efdf; --bxink:#1e2a5a; --bxgold:#a5803c; --bxgoldd:#8a6d2f;
  --bxinks:rgba(30,42,90,.62);
  position:relative;
  margin:.9rem calc(clamp(1.3rem,3.5vw,2.2rem)*-1) 1rem;
  padding:14px 6px 10px;
  background-color:var(--bxpaper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0.42 0 0 0 0 0.35 0 0 0 0 0.22 0 0 0 0.055 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  color:var(--bxink);
  text-align:center;
  overflow:hidden;
}
.bx-sub{
  font-family:'Caveat',cursive;font-size:clamp(18px,5vw,24px);color:var(--bxinks);
  text-align:center;margin:2px auto 10px;transform:rotate(.4deg);line-height:1.15;
  max-width:480px;padding:0 12px;
}
#bxRuedaWrap{position:relative;width:var(--bxw);max-width:100%;margin:0 auto}
#bxAstro{display:block;width:100%;height:auto}
#bxIdle{
  transform-box:view-box;transform-origin:360px 360px;
  animation:bxcielo 120s linear infinite;
  will-change:transform;
}
@keyframes bxcielo{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){#bxIdle{animation:none}}
#bxGyre{
  transform-box:view-box;transform-origin:360px 360px;
  transition:transform 4.2s cubic-bezier(.14,.72,.16,1.01);
  will-change:transform;
}
.bx-sign text{transition:fill .5s ease}
.bx-sign.asc text{fill:#8a6d2f !important;font-weight:700}
.bx-halo{transform-box:fill-box;transform-origin:center;animation:bxplop .5s cubic-bezier(.18,1.5,.4,1) both}
@keyframes bxplop{from{transform:scale(1.35);opacity:.2}to{transform:scale(1);opacity:1}}

/* ── altar central ── */
#bxAltar{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:37%;z-index:3}
.bx-flabel{
  font-family:'Caveat',cursive;font-size:calc(var(--bxw)*0.031);color:var(--bxink);
  line-height:1;margin:0 0 calc(var(--bxw)*0.004);text-align:center;
}
.bx-flabel b{color:var(--bxgoldd);font-family:Georgia,serif;font-size:calc(var(--bxw)*0.020);font-weight:bold}
.bx-field{position:relative;padding:calc(var(--bxw)*0.008) calc(var(--bxw)*0.012);margin:0 0 calc(var(--bxw)*0.010)}
.bx-field>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.bx-field{line-height:0}
.bx-field input,.bx-field select{
  display:block;width:100%;border:none;outline:none;background:transparent;text-align:center;
  font-family:Georgia,serif;font-size:calc(var(--bxw)*0.026);color:var(--bxink);letter-spacing:1px;
  position:relative;z-index:1;padding:0;margin:0;box-shadow:none;border-radius:0;height:auto;
  appearance:none;-webkit-appearance:none;-moz-appearance:none;line-height:1.35;
}
.bx-field select{text-align-last:center;cursor:pointer;padding-right:calc(var(--bxw)*0.030);letter-spacing:0}
.bx-field select option{font-family:Georgia,serif;color:#1e2a5a;background:#f5efdf}
.bx-field input::placeholder{color:rgba(30,42,90,.35);font-style:italic;letter-spacing:0}
.bx-field input:focus,.bx-field select:focus{box-shadow:0 0 0 2px rgba(165,128,60,.35)}
.bx-field input[disabled]{opacity:.4}
.bx-horanota{
  font-family:'Caveat',cursive;font-size:calc(var(--bxw)*0.026);color:var(--bxgoldd);
  text-align:center;line-height:1;margin:calc(var(--bxw)*-0.004) 0 calc(var(--bxw)*0.006);
  transform:rotate(-1.6deg);
}
.bx-sinhora{
  display:flex;align-items:center;justify-content:center;gap:.35em;
  font-family:'Caveat',cursive;font-size:calc(var(--bxw)*0.024);color:var(--bxinks);
  margin:0 0 calc(var(--bxw)*0.008);cursor:pointer;line-height:1;font-weight:400;
}
.bx-sinhora input{width:calc(var(--bxw)*0.018);height:calc(var(--bxw)*0.018);min-width:12px;min-height:12px;margin:0;accent-color:#8a6d2f;cursor:pointer;appearance:auto;-webkit-appearance:auto}
#bxAlba{
  position:relative;display:block;width:100%;
  margin-top:calc(var(--bxw)*0.012);
  padding:calc(var(--bxw)*0.020) calc(var(--bxw)*0.010);
  cursor:pointer;user-select:none;text-align:center;
  font-family:Georgia,'Times New Roman',serif;font-weight:bold;
  font-size:calc(var(--bxw)*0.0265);letter-spacing:.5px;color:#241c08;
  background:transparent;border:none;line-height:1;border-radius:0;box-shadow:none;
  transition:transform .15s ease;
}
#bxAlba>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#bxAlba span{position:relative;z-index:1}
#bxAlba:hover{transform:translateY(-2px)}
#bxAlba:active{transform:translateY(1px)}
#bxEstado{
  font-family:'Caveat',cursive;font-size:clamp(19px,5vw,24px);color:var(--bxink);
  margin-top:8px;min-height:30px;transform:rotate(-.3deg);text-align:center;padding:0 10px;
}

/* ── la forja escondida: el formulario original sigue vivo para el motor ── */
.bx-forja{display:none !important}

/* ── fallback si rough.js no llegó: campos llanos, sin rueda ── */
.bx-plain #bxAstro,.bx-plain .bx-sub{display:none}
.bx-plain #bxRuedaWrap{width:min(94vw,340px)}
.bx-plain #bxAltar{position:static;transform:none;width:auto;max-width:300px;margin:0 auto;padding:10px 0}
.bx-plain .bx-field{border:1px solid rgba(30,42,90,.5);border-radius:6px;padding:.45rem .6rem}
.bx-plain #bxAlba{border:2px solid #8a6d2f;border-radius:8px;background:rgba(224,178,90,.9);padding:.6rem}
