
:root{
  --vacio:#0f1330;
  --panel:#171c42;
  --panel-alto:#202657;
  --linea:#303873;
  --ambar:#ffb545;
  --nebula:#ff5f9e;
  --felu:#E9527B;
  --papel:#f2eee2;
  --tenue:#9aa0d4;
  --display:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif;
  --cuerpo:"Karla",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --dato:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--vacio);
  background-image:
    radial-gradient(1px 1px at 12% 18%,rgba(242,238,226,.55),transparent),
    radial-gradient(1px 1px at 78% 9%,rgba(242,238,226,.4),transparent),
    radial-gradient(1px 1px at 34% 62%,rgba(242,238,226,.35),transparent),
    radial-gradient(1px 1px at 88% 74%,rgba(242,238,226,.45),transparent),
    radial-gradient(1px 1px at 58% 34%,rgba(242,238,226,.3),transparent),
    radial-gradient(1px 1px at 22% 88%,rgba(242,238,226,.4),transparent),
    radial-gradient(1400px 700px at 80% -10%,rgba(255,95,158,.10),transparent),
    radial-gradient(1200px 600px at 5% 110%,rgba(255,181,69,.08),transparent);
  color:var(--papel);
  font-family:var(--cuerpo);
  font-size:17px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
.marco{max-width:760px;margin:0 auto;padding:28px 20px 72px}

/* ---------- encabezado ---------- */
.bitacora{
  display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;
  border-bottom:1px solid var(--linea);padding-bottom:14px;margin-bottom:34px;
}
.marca{
  font-family:var(--dato);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ambar);
}
.folio{
  font-family:var(--dato);font-size:12px;letter-spacing:.12em;color:var(--tenue);margin-left:auto;
}

/* ---------- tipografía ---------- */
h1{
  font-family:var(--display);font-weight:800;font-size:clamp(2.3rem,7.5vw,3.6rem);
  line-height:.98;letter-spacing:-.025em;margin:0 0 18px;
}
h1 em{font-style:normal;color:var(--ambar);display:block}
h2{
  font-family:var(--display);font-weight:700;font-size:clamp(1.5rem,4.5vw,2.1rem);
  line-height:1.1;letter-spacing:-.02em;margin:0 0 10px;
}
h3{
  font-family:var(--dato);font-weight:500;font-size:12px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--tenue);margin:0 0 14px;
}
p{margin:0 0 16px;max-width:60ch}
.guia{color:var(--tenue)}

/* ---------- pantallas ---------- */
.pantalla{display:none}
.pantalla.activa{display:block;animation:entra .45s ease both}
@keyframes entra{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- botones ---------- */
.boton{
  font-family:var(--display);font-weight:700;font-size:1.05rem;letter-spacing:-.01em;
  background:var(--ambar);color:#14183a;border:none;border-radius:2px;
  padding:15px 30px;cursor:pointer;transition:transform .12s ease,filter .12s ease;
}
.boton:hover{filter:brightness(1.08)}
.boton:active{transform:translateY(1px)}
.boton.fantasma{background:transparent;color:var(--papel);border:1px solid var(--linea)}
.boton.fantasma:hover{border-color:var(--ambar);color:var(--ambar);filter:none}
.acciones{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

/* ---------- constelación de progreso ---------- */
.constelacion{position:relative;height:26px;margin-bottom:30px}
.constelacion svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.paso{font-family:var(--dato);font-size:12px;letter-spacing:.14em;color:var(--tenue);margin-bottom:8px}

/* ---------- pregunta ---------- */
.pregunta{
  font-family:var(--display);font-weight:700;font-size:clamp(1.35rem,4.4vw,1.85rem);
  line-height:1.18;letter-spacing:-.02em;margin:0 0 26px;
}
.opciones{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.opcion{
  display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;
  background:var(--panel);border:1px solid var(--linea);border-radius:3px;
  color:var(--papel);font-family:var(--cuerpo);font-size:1.02rem;line-height:1.4;
  padding:16px 18px;cursor:pointer;
  transition:background .15s ease,border-color .15s ease,transform .1s ease;
}
.opcion:hover{background:var(--panel-alto);border-color:var(--ambar);transform:translateX(3px)}
.opcion .letra{
  font-family:var(--dato);font-size:12px;color:var(--ambar);
  border:1px solid var(--linea);border-radius:2px;
  min-width:24px;height:24px;display:grid;place-items:center;flex:none;margin-top:1px;
}
.opcion:hover .letra{border-color:var(--ambar)}
.opcion.elegida{background:var(--panel-alto);border-color:var(--ambar)}
:focus-visible{outline:2px solid var(--nebula);outline-offset:3px}

/* ---------- resultado ---------- */
.sello{
  font-family:var(--dato);font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--nebula);margin-bottom:12px;
}
.titulo-perfil{display:flex;gap:14px;align-items:center;margin-bottom:6px}
.titulo-perfil .glifo{font-size:2.4rem;line-height:1}
.matiz{
  font-family:var(--dato);font-size:12.5px;letter-spacing:.06em;color:var(--tenue);
  border-left:2px solid var(--nebula);padding-left:12px;margin:0 0 24px;
}
.tarjeta{
  background:var(--panel);border:1px solid var(--linea);border-radius:3px;
  padding:22px;margin-bottom:22px;
}
.radar-caja{display:grid;place-items:center;padding:6px 0 2px}
canvas{max-width:100%;height:auto}
.leyenda{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}
.leyenda li{display:grid;grid-template-columns:112px 1fr 46px;gap:12px;align-items:center;font-size:14px}
.leyenda .nombre{font-family:var(--dato);font-size:11.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--tenue)}
.barra{height:5px;background:var(--panel-alto);border-radius:99px;overflow:hidden}
.barra span{display:block;height:100%;background:var(--ambar);border-radius:99px;width:0;transition:width .9s cubic-bezier(.2,.8,.25,1)}
.leyenda li.top .nombre{color:var(--ambar)}
.leyenda li.top .barra span{background:var(--nebula)}
.cifra{font-family:var(--dato);font-size:12px;color:var(--tenue);text-align:right}
.escala{font-size:13.5px;color:var(--tenue);margin:20px 0 0;max-width:none}
.escala strong{color:var(--papel);font-weight:500}

.juegos{list-style:none;margin:0;padding:0}
.juegos li{
  display:flex;gap:12px;align-items:baseline;
  padding:12px 0;border-bottom:1px dashed var(--linea);
}
.juegos li:last-child{border-bottom:none}
.juegos .nom{font-family:var(--display);font-weight:700;font-size:1.02rem;flex:none}
.juegos .desc{color:var(--tenue);font-size:14.5px}
.etiqueta{
  font-family:var(--dato);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:#14183a;background:var(--ambar);padding:2px 6px;border-radius:2px;flex:none;
  align-self:center;
}
.etiqueta.felu{background:var(--felu);color:#fff}
.juegos li.en-felu .nom{color:var(--felu)}
.zona{
  display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;
  border:1px solid var(--felu);border-left-width:3px;border-radius:2px;
  padding:12px 14px;margin:0 0 18px;font-size:14.5px;
}
.zona b{font-family:var(--display);font-weight:700;color:var(--felu)}
.clave{
  font-size:13px;color:var(--tenue);margin:18px 0 0;padding-top:16px;
  border-top:1px solid var(--linea);max-width:none;
}
.punto{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--felu);margin-right:5px}
.nota{
  font-size:14.5px;color:var(--tenue);border-top:1px solid var(--linea);
  padding-top:18px;margin-top:30px;
}
@media (max-width:520px){
  .marco{padding:20px 14px 56px}
  .leyenda li{grid-template-columns:96px 1fr 42px;gap:8px}
  .juegos li{flex-direction:column;gap:3px}
  .acciones{flex-direction:column}
  .acciones .boton{width:100%;text-align:center}
  .opcion{padding:14px 14px;font-size:1rem}
  .titulo-perfil{flex-wrap:wrap}
  .radar-caja{overflow:hidden}
  canvas{max-width:100%!important;height:auto!important}
}
@media (max-width:360px){
  h1{font-size:2rem}
  .pregunta{font-size:1.2rem}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ---------- puerta / captcha ---------- */
.puerta{
  min-height:100dvh;display:flex;align-items:center;justify-content:center;
  padding:28px 16px;
}
.puerta-caja{
  width:100%;max-width:480px;
  background:var(--panel);border:1px solid var(--linea);border-radius:4px;
  padding:32px 26px;
}
.puerta-caja h1{font-size:clamp(1.8rem,6vw,2.4rem);margin-bottom:14px}
.aviso{
  border:1px solid var(--linea);border-left:3px solid var(--ambar);
  padding:12px 14px;margin:0 0 22px;font-size:15px;color:var(--tenue);
}
.aviso strong{color:var(--papel);font-weight:500}
.puerta-estado{font-size:14px;color:var(--nebula);min-height:1.2em;margin-top:12px}
.puerta-estado.ok{color:#7ddea8}
.oculto{display:none!important}
.pie-mini{
  margin-top:28px;font-family:var(--dato);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--tenue);
}
.pie-mini a{color:var(--tenue);text-decoration:none}
.pie-mini a:hover{color:var(--ambar)}
.mas-atras{
  margin-top:28px;padding-top:18px;border-top:1px solid var(--linea);
  font-size:15px;color:var(--tenue);max-width:none;
}
.mas-atras a{
  color:var(--ambar);font-weight:700;text-decoration:underline;
  text-underline-offset:3px;
}
.mas-atras a:hover{color:var(--nebula)}
.guia-destacada{
  border:1px solid var(--linea);border-left:3px solid var(--nebula);
  padding:12px 14px;color:var(--papel);background:rgba(255,95,158,.06);
  margin:0 0 20px;max-width:none;
}
.contador{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  margin:0 0 20px;padding:12px 14px;
  background:rgba(255,181,69,.08);
  border:1px solid var(--linea);border-radius:3px;
  max-width:none;
}
.contador-cifra{
  font-family:var(--display);font-weight:800;font-size:1.75rem;
  letter-spacing:-.02em;color:var(--ambar);line-height:1;
}
.contador-label{
  font-family:var(--dato);font-size:12px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--tenue);
}

/* ---------- identidad FELU ---------- */
.bitacora-logo{
  align-items:center;gap:14px;
}
.bitacora-texto{
  display:flex;flex-direction:column;gap:4px;min-width:0;flex:1;
}
.bitacora-logo .folio{margin-left:0}
.logo-felu{
  width:72px;height:72px;object-fit:contain;flex:none;
  filter:drop-shadow(0 0 10px rgba(233,82,123,.25));
}
.boletos{
  margin:0 0 20px;padding:0;text-align:center;
}
.boletos img{
  width:min(100%,280px);height:auto;margin:0 auto;display:block;
  filter:drop-shadow(0 8px 24px rgba(0,0,0,.35));
}
.boletos figcaption{
  font-family:var(--dato);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--tenue);margin-top:10px;
}
.boletos-resultado{
  margin:8px 0 28px;
  padding:18px;
  background:var(--panel);
  border:1px solid var(--linea);
  border-radius:3px;
}
.boletos-resultado img{width:min(100%,220px)}

.deco{
  position:fixed;z-index:0;pointer-events:none;opacity:.55;
  filter:drop-shadow(0 0 18px rgba(255,181,69,.15));
}
.deco-planeta{
  width:min(220px,38vw);top:8%;right:-4%;
  animation:flota 9s ease-in-out infinite;
}
.deco-astro{
  width:min(110px,22vw);bottom:10%;left:2%;
  animation:flota 7s ease-in-out infinite reverse;
}
@keyframes flota{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-12px)}
}

.intro-hero{
  display:grid;gap:28px;align-items:start;
}
.intro-visual{
  position:relative;
  display:grid;
  place-items:center;
  min-height:180px;
}
.intro-astro{
  position:absolute;width:88px;top:0;left:8%;
  animation:flota 6.5s ease-in-out infinite;
  z-index:2;
}
.intro-planeta{
  position:absolute;width:140px;top:18px;right:6%;
  opacity:.9;z-index:1;
  animation:flota 8s ease-in-out infinite reverse;
}
.boletos-intro{
  margin:70px 0 0;position:relative;z-index:3;
}
.boletos-intro img{width:min(100%,240px)}

.puerta,.marco{position:relative;z-index:1}
.puerta-caja{position:relative;overflow:hidden}

@media (min-width:780px){
  .marco{max-width:880px}
  .intro-hero{
    grid-template-columns:1.15fr .85fr;
    gap:36px;align-items:center;
  }
  .intro-visual{min-height:320px}
  .intro-astro{width:110px;left:4%;top:10%}
  .intro-planeta{width:180px;right:0;top:0}
  .boletos-intro{margin-top:120px}
  .logo-felu{width:84px;height:84px}
  .deco-planeta{width:260px;opacity:.4}
  .deco-astro{width:130px;opacity:.45}
}
@media (max-width:520px){
  .logo-felu{width:58px;height:58px}
  .deco-planeta{width:120px;opacity:.28;top:4%;right:-12%}
  .deco-astro{width:72px;opacity:.3;bottom:6%;left:-2%}
  .intro-astro{width:64px}
  .intro-planeta{width:100px}
  .boletos-intro{margin-top:56px}
  .boletos img{width:min(100%,200px)}
}
@media (prefers-reduced-motion:reduce){
  .deco,.intro-astro,.intro-planeta{animation:none}
}
