/* ===========================================================
   EL ESPEJO · la experiencia del test
   Una película que empieza de noche y termina al amanecer.
   =========================================================== */
.espejo{background:#04030d;min-height:100svh;overflow-x:hidden}
.espejo #cielo{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block}

/* grano de película y viñeta */
.grano{position:fixed;inset:-50%;z-index:1;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grano 1.2s steps(6) infinite}
@keyframes grano{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.vineta{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,transparent 55%,rgba(0,0,0,.72) 100%)}

/* franjas de cine: entran en cada capítulo */
.franja{position:fixed;left:0;right:0;height:0;background:#000;z-index:5;transition:height .9s cubic-bezier(.7,0,.2,1)}
.franja.arriba{top:0}.franja.abajo{bottom:0}
.cine .franja{height:9svh}

/* cabecera mínima */
.e-top{position:fixed;top:0;left:0;right:0;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px var(--pad)}
.e-marca{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:400;letter-spacing:-.01em;color:var(--bone)}
.e-marca b{font-weight:600;letter-spacing:.35px;text-transform:uppercase;font-size:11px;color:rgba(255,255,255,.55)}
.e-conteo{font-size:12px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:rgba(255,255,255,.6);font-variant-numeric:tabular-nums;transition:opacity .4s}
.e-barra{position:fixed;left:0;top:0;height:2px;width:100%;z-index:7;background:rgba(255,255,255,.06)}
.e-barra i{display:block;height:100%;width:0;background:linear-gradient(90deg,#8052ff,#ff5fa2,#ffb829);transition:width .8s cubic-bezier(.2,.7,.3,1);box-shadow:0 0 14px rgba(255,160,90,.6)}

/* pantallas */
.e-app{position:relative;z-index:3}
.pant{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:86px var(--pad) 60px;
  opacity:0;visibility:hidden;transform:translateY(18px) scale(.985);filter:blur(10px);
  transition:opacity .9s ease,transform 1s cubic-bezier(.2,.7,.3,1),filter .9s ease,visibility 0s linear 1s}
.pant.on{opacity:1;visibility:visible;transform:none;filter:none;transition:opacity 1s ease .15s,transform 1.1s cubic-bezier(.2,.7,.3,1) .15s,filter 1s ease .15s,visibility 0s}
.pant.sale{opacity:0;transform:translateY(-14px) scale(1.01);filter:blur(12px)}
/* pantallas largas (datos, resultado): dentro del flujo para que la página crezca y se pueda bajar */
.pant.scroll{position:relative;inset:auto;display:block;min-height:100svh;overflow:visible}
.pant.scroll.sale{position:absolute;top:0;left:0;right:0}
.caja{width:100%;max-width:880px}
.caja.estrecha{max-width:640px}

/* texto que aparece palabra por palabra */
.reve span{display:inline-block;opacity:0;transform:translateY(.4em);filter:blur(6px);transition:opacity .7s ease,transform .8s cubic-bezier(.2,.7,.3,1),filter .7s ease}
.on .reve span{opacity:1;transform:none;filter:none}

/* intro */
.e-eti{display:block;font-size:12px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:#ffb829;margin-bottom:22px}
.e-h1{margin:0;font-size:clamp(40px,7.4vw,96px);font-weight:400;letter-spacing:-.045em;line-height:1.02;color:#fff}
.e-h1 em{font-style:normal;background:linear-gradient(90deg,#b89bff,#ff8fb8 55%,#ffc46b);-webkit-background-clip:text;background-clip:text;color:transparent}
.e-sub{margin:28px 0 0;max-width:56ch;font-size:clamp(16px,1.5vw,19px);font-weight:200;line-height:1.55;color:rgba(255,255,255,.78)}
.e-nota{margin:22px 0 0;font-size:13px;font-weight:400;color:rgba(255,255,255,.45)}
.e-btn{display:inline-flex;align-items:center;gap:12px;margin-top:38px;border:0;cursor:pointer;border-radius:9999px;
  padding:18px 30px;font-family:var(--font);font-size:14px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:#120a24;
  background:linear-gradient(90deg,#c9b6ff,#ffb3cf 50%,#ffd08a);box-shadow:0 10px 40px -10px rgba(255,150,120,.6);transition:transform .3s ease,box-shadow .3s ease}
.e-btn:hover{transform:translateY(-2px);box-shadow:0 16px 50px -10px rgba(255,150,120,.8)}
.e-btn:focus-visible{outline:2px solid #fff;outline-offset:4px}
.e-btn .ar{transition:transform .3s ease}.e-btn:hover .ar{transform:translateX(4px)}
.e-meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:34px}
.e-meta span{font-size:12px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:rgba(255,255,255,.55)}

/* cortinilla de capítulo */
.cap-num{display:block;font-size:13px;font-weight:600;letter-spacing:.5em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:20px}
.cap-tit{margin:0;font-size:clamp(52px,11vw,150px);font-weight:400;letter-spacing:-.05em;line-height:.95;color:#fff}
.cap-frase{margin:30px auto 0;max-width:34ch;font-size:clamp(18px,2vw,24px);font-weight:200;line-height:1.4;color:rgba(255,255,255,.82)}
.cap .caja{text-align:center}

/* pregunta */
.preg-cap{display:block;font-size:12px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:#ffb829;margin-bottom:18px}
.preg-t{margin:0;font-size:clamp(26px,3.6vw,46px);font-weight:400;letter-spacing:-.03em;line-height:1.14;color:#fff;max-width:24ch}
.ops{display:grid;gap:12px;margin-top:38px;max-width:720px}
.op{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:18px;width:100%;text-align:left;cursor:pointer;
  padding:18px 22px;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:rgba(255,255,255,.9);
  font-family:var(--font);font-size:clamp(15px,1.4vw,18px);font-weight:200;line-height:1.4;
  opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.3,1),background .25s ease,border-color .25s ease}
.on .op{opacity:1;transform:none}
.op:hover{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.3)}
.op:focus-visible{outline:2px solid #ffb829;outline-offset:3px}
.op b{display:grid;place-items:center;width:30px;height:30px;border-radius:9999px;border:1px solid rgba(255,255,255,.3);font-size:12px;font-weight:600;color:rgba(255,255,255,.8)}
.op.elegida{background:linear-gradient(90deg,rgba(128,82,255,.35),rgba(255,120,150,.28));border-color:rgba(255,200,160,.6);color:#fff}
.op.elegida b{background:#fff;color:#120a24;border-color:#fff}
.preg-pie{display:flex;justify-content:space-between;align-items:center;margin-top:26px;max-width:720px}
.atras{background:none;border:0;cursor:pointer;font-family:var(--font);font-size:12px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:rgba(255,255,255,.45);padding:6px 0}
.atras:hover{color:#fff}
.tecla{font-size:12px;color:rgba(255,255,255,.35)}
@media(max-width:600px){.tecla{display:none}}

/* datos */
.e-form{display:grid;gap:22px;margin-top:34px}
.e-f2{display:grid;gap:22px}
@media(min-width:620px){.e-f2{grid-template-columns:1fr 1fr}}
.e-campo{display:grid;gap:8px}
.e-campo label{font-size:12px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:rgba(255,255,255,.62)}
.e-campo label em{font-style:normal;color:#ffb829}
.e-campo input,.e-campo select{width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:14px;
  color:#fff;font-family:var(--font);font-size:17px;font-weight:200;padding:15px 16px;transition:border-color .25s,background .25s}
.e-campo input::placeholder{color:rgba(255,255,255,.3)}
.e-campo input:focus,.e-campo select:focus{outline:0;border-color:#ffb829;background:rgba(255,255,255,.08)}
.e-campo select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,#ffb829 50%),linear-gradient(135deg,#ffb829 50%,transparent 50%);background-position:calc(100% - 20px) 24px,calc(100% - 14px) 24px;background-size:6px 6px;background-repeat:no-repeat}
.e-campo select option{background:#120a24}
.e-campo .ayuda{font-size:12px;line-height:1.5;color:rgba(255,255,255,.45)}
.e-ref{padding:20px;border-radius:18px;border:1px solid rgba(255,184,41,.35);background:rgba(255,184,41,.06)}
.e-ref label{color:#ffb829}
.e-check{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;font-size:13px;line-height:1.55;color:rgba(255,255,255,.6)}
.e-check input{width:18px;height:18px;margin-top:2px;accent-color:#ffb829}
.e-error{margin:0;font-size:13px;color:#ff9aa8;min-height:1em}

/* resultado */
.res{padding-top:110px;padding-bottom:90px}
.res-nivel{display:flex;align-items:baseline;gap:16px;margin:0}
.res-nivel b{font-size:14px;font-weight:600;letter-spacing:.35px;color:#ffb829}
.res-nombre{font-size:clamp(22px,2.6vw,30px);font-weight:400;letter-spacing:-.02em;color:rgba(255,255,255,.85)}
.res-tit{margin:18px 0 0;font-size:clamp(38px,6.4vw,84px);font-weight:400;letter-spacing:-.045em;line-height:1.02;color:#fff;max-width:17ch}
.res-txt{margin:26px 0 0;max-width:58ch;font-size:clamp(16px,1.5vw,19px);font-weight:200;line-height:1.6;color:rgba(255,255,255,.82)}
.res-bloque{margin-top:clamp(56px,8vw,96px)}
.res-bloque h3{margin:0 0 8px;font-size:12px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:#ffb829}
.res-bloque h4{margin:0;font-size:clamp(26px,3.4vw,42px);font-weight:400;letter-spacing:-.03em;line-height:1.12;color:#fff;max-width:22ch}
.res-bloque p{margin:18px 0 0;max-width:58ch;font-size:clamp(15px,1.4vw,18px);font-weight:200;line-height:1.6;color:rgba(255,255,255,.78)}
.res-dos{display:grid;gap:clamp(40px,6vw,80px)}
@media(min-width:880px){.res-dos{grid-template-columns:1fr 1fr;align-items:start}}

/* la escala de estados */
.escala{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:0;position:relative}
.escala li{position:relative;display:flex;align-items:center;gap:14px;padding:8px 0 8px 22px;font-size:15px;font-weight:200;color:rgba(255,255,255,.35);transition:color .6s}
.escala li::before{content:"";position:absolute;left:4px;top:50%;width:6px;height:6px;border-radius:9999px;background:rgba(255,255,255,.2);transform:translateY(-50%)}
.escala li.sobre{color:rgba(255,255,255,.7)}
.escala li.umbral{border-top:1px solid rgba(255,184,41,.55);margin-top:6px;padding-top:14px;color:#ffb829;font-weight:400}
.escala li.umbral::after{content:attr(data-nota);position:absolute;right:0;top:-10px;font-size:11px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:#ffb829;background:#0d0719;padding:2px 8px;border-radius:9999px}
.escala li.aqui{color:#fff;font-weight:400}
.escala li.aqui::before{width:12px;height:12px;left:1px;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.12),0 0 24px rgba(255,190,120,.9)}
.escala li.aqui span{margin-left:auto;font-size:11px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:#120a24;background:#fff;padding:3px 10px;border-radius:9999px}
.escala-nota{font-size:13px!important;color:rgba(255,255,255,.5)!important}

/* perfil por capítulo */
.perfil{display:grid;gap:18px;margin-top:22px}
.perfil div{display:grid;gap:8px}
.perfil .fila{display:flex;justify-content:space-between;font-size:14px;font-weight:400;color:rgba(255,255,255,.85)}
.perfil .fila span:last-child{color:rgba(255,255,255,.5);font-variant-numeric:tabular-nums}
.perfil .barra{height:6px;border-radius:9999px;background:rgba(255,255,255,.08);overflow:hidden}
.perfil .barra i{display:block;height:100%;width:0;border-radius:9999px;background:linear-gradient(90deg,#8052ff,#ff7aa8,#ffb829);transition:width 1.6s cubic-bezier(.2,.7,.3,1)}
.perfil .debil .fila span:first-child{color:#ffb829}

.accion{margin-top:24px;padding:24px;border-radius:20px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12)}
.accion b{display:block;font-size:12px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:#ffb829;margin-bottom:10px}
.accion p{margin:0!important;color:rgba(255,255,255,.88)!important}

.cierre{text-align:center;margin-top:clamp(70px,10vw,120px)}
.cierre h4{margin:0 auto!important;max-width:18ch!important}
.cierre p{margin-left:auto!important;margin-right:auto!important}
.cierre .e-btn{margin-top:30px}
.cierre .secundario{display:block;margin-top:22px;font-size:13px;font-weight:600;letter-spacing:.35px;text-transform:uppercase;color:rgba(255,255,255,.6)}
.cierre .secundario:hover{color:#fff}
.invito{display:inline-block;margin-top:22px;padding:8px 16px;border-radius:9999px;background:rgba(255,184,41,.12);border:1px solid rgba(255,184,41,.35);font-size:13px;color:#ffd08a}
.aviso{margin:60px auto 0!important;max-width:60ch!important;font-size:12px!important;line-height:1.6!important;color:rgba(255,255,255,.38)!important;text-align:center}
.credito-e{margin-top:26px;text-align:center;font-size:12px;color:rgba(255,255,255,.3)}
.credito-e a{color:rgba(255,255,255,.55)}

@media(prefers-reduced-motion:reduce){
  .grano{animation:none}
  .pant,.pant.on,.reve span,.op{transition:opacity .3s ease!important;transform:none!important;filter:none!important}
}

/* cortinilla con objeto: el objeto arriba, el texto debajo */
.pant.cap{align-items:flex-start}
.pant.cap .caja{margin-top:calc(48svh - 86px)}
.cap-tit{font-size:clamp(44px,7.6vw,108px)}
.cap-frase{margin-top:22px;font-size:clamp(17px,1.8vw,22px)}
.cap-num{margin-bottom:14px}
@media(max-width:699px){ .pant.cap .caja{margin-top:calc(46svh - 86px)} }
