/* FEN · Explora el cerebro */
.fx{--fx-top:0px;background:linear-gradient(180deg,#fff 0%,var(--cyan-25,#F5FBFE) 100%)}
.fx-hero{padding:clamp(28px,4vw,52px) 0 clamp(14px,2vw,22px)}
.fx-hero-in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:end}
.fx-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.04;margin:4px 0 10px}
.fx-hero .lede{max-width:58ch;margin:0}
.fx-niveles{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fx-niveles li{display:flex;align-items:center;gap:12px;border:1.5px dashed var(--line);border-radius:16px;padding:10px 14px;color:var(--muted)}
.fx-niveles li b{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--line-2);color:var(--muted);font-family:"Plus Jakarta Sans",system-ui,sans-serif}
.fx-niveles li span{display:grid;font-weight:700;font-size:.95rem}
.fx-niveles small{font-weight:500;font-size:.78rem}
.fx-niveles li.activo{border:1.5px solid var(--navy);background:#fff;color:var(--navy);box-shadow:0 14px 30px -24px rgba(11,11,99,.7)}
.fx-niveles li.activo b{background:var(--navy);color:#fff}

.fx-juego{padding-bottom:clamp(30px,5vw,60px)}
.fx-barra{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.fx-seg{display:inline-flex;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:4px}
.fx-seg button{border:0;background:transparent;border-radius:999px;padding:8px 16px;font:inherit;font-size:.9rem;font-weight:700;color:var(--navy);cursor:pointer}
.fx-seg button[aria-checked="true"]{background:var(--navy);color:#fff}
.fx-sw{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:8px 14px;font-size:.88rem;font-weight:600;color:var(--navy);cursor:pointer}
.fx-sw input{width:18px;height:18px;accent-color:var(--navy)}
.fx-jugar{margin-left:auto}

.fx-escena{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:18px;align-items:start}
.fx-lienzo{position:relative;background:radial-gradient(90% 90% at 40% 35%,#fff 0%,#EEF6FD 70%);border:1px solid var(--line);border-radius:28px;padding:14px 14px 10px;box-shadow:0 30px 60px -48px rgba(11,11,99,.6)}
.fx-esc{position:relative}
.fx-svg{display:block;width:100%;height:auto;overflow:visible}
.fx-pie{margin:4px 6px 2px;min-height:1.5em;font-size:.88rem;color:var(--body);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fx-pie b{color:var(--navy)}

/* las formas */
.fx-p{cursor:pointer;stroke:#fff;stroke-width:1.5;transition:opacity .35s,fill .35s,stroke .35s,filter .35s;outline:none}
.fx-lobulo{fill:color-mix(in srgb,var(--c) 28%,#fff)}
.fx-area{fill:color-mix(in srgb,var(--c) 42%,#fff)}
.fx-p[data-p=cerebelo]{fill:color-mix(in srgb,var(--c) 34%,#fff)}
.fx-p[data-p=tronco]{fill:color-mix(in srgb,var(--c) 30%,#fff)}
.fx-folia{fill:none;stroke:color-mix(in srgb,#D9A92B 55%,#7a5b00);stroke-opacity:.45;stroke-width:2;stroke-linecap:round;pointer-events:none}
.fx-surco{fill:none;stroke:#0B0B63;stroke-opacity:.13;stroke-width:3;stroke-linecap:round;pointer-events:none}
.fx-linea{fill:none;stroke:#0B0B63;stroke-opacity:.42;stroke-width:3.5;stroke-linecap:round;pointer-events:none}
.fx-linea.fina{stroke-opacity:.16;stroke-width:2;stroke-dasharray:4 5}
.fx-borde{fill:none;stroke:#0B0B63;stroke-width:3.5;pointer-events:none}
.fx-luz{pointer-events:none}
.fx-mesen{fill:#D46A86;opacity:.18;pointer-events:none}
.fx-interior{opacity:0;pointer-events:none;transition:opacity .45s}
.fx-in{fill:var(--c);stroke:#fff;stroke-width:2}
.fx-in.fx-trazo{fill:none;stroke:var(--c);stroke-width:16;stroke-linecap:round}
.fx-in[data-p=calloso]{fill:color-mix(in srgb,var(--c) 30%,#fff);stroke:var(--c)}
.fx-p:hover,.fx-p:focus-visible{filter:brightness(1.05) drop-shadow(0 0 6px color-mix(in srgb,var(--c) 60%,transparent))}
.fx-p:focus-visible{stroke:#0B0B63;stroke-width:3}
.fx-in.fx-trazo:focus-visible{stroke:var(--c);stroke-width:20}

/* vista interior: la corteza se vuelve transparente */
.fx-modo-interior .fx-interior{opacity:1;pointer-events:auto}
.fx-modo-interior .fx-corteza .fx-p:not(.sel):not(.ok):not(.mal){opacity:.22}
.fx-modo-interior .fx-surco,.fx-modo-interior .fx-linea{opacity:.35}
.fx-modo-interior .fx-tronco-g .fx-p:not(.sel):not(.ok),.fx-modo-interior .fx-cereb-g .fx-p:not(.sel):not(.ok){opacity:.4}
.fx-modo-interior .fx-luz{opacity:.4}

/* lo elegido se ilumina; lo demás se apaga */
.fx-svg.hay-sel .fx-p:not(.sel):not(.ok):not(.mal):not(.grupo){opacity:.5;filter:saturate(.55)}
.fx-modo-interior .fx-svg.hay-sel .fx-corteza .fx-p:not(.sel):not(.ok):not(.mal):not(.grupo){opacity:.14}
.fx-svg.hay-sel .fx-p.grupo{opacity:.85;filter:none}
.fx-p.grupo{fill:color-mix(in srgb,var(--c) 55%,#fff)}
.fx-in.fx-trazo.grupo{fill:none;stroke:color-mix(in srgb,var(--c) 60%,#fff)}
.fx-volver{margin-top:2px!important}
.fx-p.sel{fill:var(--c);opacity:1;filter:url(#fxBrillo);animation:fx-late 1.8s ease-in-out infinite}
.fx-in.fx-trazo.sel{fill:none;stroke:var(--c)}
.fx-p.sel.fx-destello{animation:fx-enciende .6s cubic-bezier(.2,.8,.2,1),fx-late 1.8s ease-in-out .6s infinite}
.fx-p.ok{fill:#2E8B57;opacity:1;filter:url(#fxBrillo);animation:fx-late 1.2s ease-in-out infinite}
.fx-in.fx-trazo.ok{fill:none;stroke:#2E8B57}
.fx-p.mal{fill:#D9534F;opacity:1;animation:fx-sacude .5s}
.fx-in.fx-trazo.mal{fill:none;stroke:#D9534F}
@keyframes fx-late{50%{opacity:.78}}
@keyframes fx-enciende{0%{opacity:.2}60%{opacity:1;filter:url(#fxBrillo) brightness(1.4)}}
@keyframes fx-sacude{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* números */
.fx-num{pointer-events:none;transition:opacity .3s}
.fx-num circle{fill:#fff;stroke:var(--c);stroke-width:3}
.fx-num text{font:800 13px "Plus Jakarta Sans",system-ui,sans-serif;fill:#0B0B63}
.fx-modo-superficie .fx-num-in,.fx-modo-interior .fx-num-sup,.sin-nums .fx-num,.en-desafio .fx-num{opacity:0}
.fx-modo-interior .fx-num-in circle{fill:#fff}

.fx-tip{position:absolute;transform:translate(-50%,-140%);pointer-events:none;background:var(--navy);color:#fff;font-size:.8rem;font-weight:700;padding:5px 10px;border-radius:8px;white-space:nowrap;z-index:3}

/* la ficha */
.fx-panel{background:#fff;border:1px solid var(--line);border-radius:28px;padding:clamp(18px,2.4vw,28px);box-shadow:0 30px 60px -48px rgba(11,11,99,.6);position:sticky;top:calc(var(--fx-top) + 16px)}
.fx-ficha,.fx-desafio{display:grid;gap:10px}
.fx-ficha[hidden],.fx-desafio[hidden]{display:none}
.fx-ojo{margin:0;display:flex;align-items:center;gap:8px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan)}
.fx-panel h2{font-size:clamp(1.4rem,2.4vw,1.8rem);margin:0;line-height:1.1}
.fx-panel p{margin:0;line-height:1.55}
.fx-func{font-weight:800;font-size:1.05rem;color:var(--navy);border-left:5px solid var(--c);padding-left:10px}
.fx-n{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 6px;border-radius:999px;background:#fff;border:3px solid var(--c,var(--navy));color:var(--navy);font:800 .76rem "Plus Jakarta Sans",system-ui,sans-serif;letter-spacing:0}
.fx-mas summary{cursor:pointer;font-weight:700;color:var(--navy)}
.fx-mas p{margin-top:6px;font-size:.92rem}
.fx-enf{display:grid;gap:10px;background:#FFF6E8;border:1px solid #F0D7AE;border-radius:16px;padding:14px}
.fx-enf-t{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#9A5B10}
.fx-enf-i b{color:var(--navy)}
.fx-enf-i p{font-size:.9rem}
.fx-enf-l{display:flex;gap:14px;flex-wrap:wrap;margin-top:4px!important;font-size:.82rem!important}
.fx-enf-l a{color:var(--navy);font-weight:700}
.fx-manual{color:#9A5B10!important}
.fx-enf-no{font-size:.86rem;color:var(--muted)}
.fx-nota-red{font-size:.86rem;color:var(--muted);background:var(--cyan-25,#F5FBFE);border-radius:12px;padding:10px 12px}
.fx-nav{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.fx-lista{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.fx-lista button{width:100%;display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:#fff;border-radius:14px;padding:9px 12px;font:inherit;cursor:pointer;color:var(--body)}
.fx-lista button:hover{border-color:var(--cyan)}
.fx-lista b{display:block;color:var(--navy)}
.fx-lista small{font-size:.8rem}

/* el desafío */
.fx-marcador{display:flex;gap:16px;flex-wrap:wrap;font-size:.84rem;color:var(--muted)}
.fx-marcador b{color:var(--navy)}
.fx-progreso{height:6px;border-radius:6px;background:var(--line-2);overflow:hidden}
.fx-progreso i{display:block;height:100%;background:linear-gradient(90deg,#29A9E0,#0B0B63);transition:width .5s}
.fx-preg{font-size:clamp(1.3rem,2.4vw,1.7rem)!important}
.fx-ayuda{color:var(--muted);font-size:.9rem}
.fx-resp{border-radius:16px;padding:14px;display:grid;gap:6px}
.fx-resp.bien{background:#E3F2E9}
.fx-resp.mal{background:#FDECEC}
.fx-resp-t{font-weight:800;font-size:1.05rem}
.fx-resp.bien .fx-resp-t{color:#1F6A41}
.fx-resp.mal .fx-resp-t{color:#9B2C2C}
.fx-resp p:not(.fx-resp-t){font-size:.9rem}
.fx-link{border:0;background:none;padding:0;font:inherit;font-size:.86rem;color:var(--muted);text-decoration:underline;cursor:pointer}
.fx-final{display:grid;gap:10px;justify-items:start}
.fx-final h2{font-size:clamp(2rem,4vw,2.8rem)!important}
.fx-final-d{font-size:.86rem;color:var(--muted)}
.fx-insignia{width:120px;height:120px;animation:fx-timbre .9s cubic-bezier(.2,1.4,.4,1) both}
@keyframes fx-timbre{from{opacity:0;transform:scale(1.6) rotate(-20deg)}}
.en-desafio .fx-filtros,.en-desafio .fx-tabla-caja{display:none}
.en-desafio .fx-barra .fx-seg,.en-desafio .fx-barra .fx-sw{opacity:.45;pointer-events:none}

/* filtros y tabla */
.fx-filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:22px 0 12px;font-size:.88rem}
.fx-filtros>span{font-weight:700;color:var(--navy);margin-right:4px}
.fx-f{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:7px 14px;font:inherit;font-size:.86rem;font-weight:600;color:var(--navy);cursor:pointer}
.fx-f[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.fx-tabla-caja{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden}
.fx-tabla{width:100%;border-collapse:collapse;font-size:.92rem}
.fx-tabla thead th{background:var(--navy);color:#fff;text-align:left;font-size:.76rem;letter-spacing:.04em;padding:11px 14px}
.fx-tabla td,.fx-tabla tbody th{padding:10px 14px;border-top:1px solid var(--line-2);text-align:left;vertical-align:middle}
.fx-tabla tbody tr{cursor:pointer;transition:background .2s,box-shadow .2s}
.fx-tabla tbody tr:hover{background:var(--cyan-25,#F5FBFE)}
.fx-tabla tbody tr.activa{background:color-mix(in srgb,var(--c) 12%,#fff);box-shadow:inset 5px 0 0 var(--c)}
.fx-fila-bt{border:0;background:none;padding:0;font:inherit;font-weight:800;color:var(--navy);cursor:pointer;text-align:left}
.fx-fila-bt:hover{text-decoration:underline}
.fx-cats{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.fx-cats i{font-style:normal;font-size:.7rem;font-weight:700;color:var(--muted);background:var(--line-2);border-radius:999px;padding:2px 8px}
.fx-col-donde{color:var(--muted);font-size:.84rem;white-space:nowrap}

.fx-pronto{padding:0 0 clamp(28px,4vw,48px)}
.fx-pronto-in{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.fx-pronto article{display:flex;gap:14px;align-items:flex-start;border:1.5px dashed var(--line);border-radius:22px;padding:18px;background:#fff}
.fx-pronto article>b{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--line-2);color:var(--muted);font-family:"Plus Jakarta Sans",system-ui,sans-serif}
.fx-pronto h3{font-size:1.1rem;margin:0 0 4px}
.fx-pronto p{margin:0;font-size:.9rem}
.fx-pronto article>span{margin-left:auto;font-size:.72rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.fx-fuentes{padding-bottom:40px}
.fx-fuentes summary{cursor:pointer;font-weight:700;color:var(--navy)}
.fx-fuentes ul{padding-left:18px;font-size:.86rem}
.fx-fuentes p{font-size:.84rem;color:var(--muted)}

@media(max-width:1020px){
  .fx-hero-in{grid-template-columns:1fr}
  .fx-niveles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fx-niveles li{flex-direction:column;align-items:flex-start;gap:6px}
  .fx-escena{display:contents}
  .fx-panel{margin-top:14px}
  .fx-lienzo{position:sticky;top:calc(var(--fx-top) + 6px);z-index:5;padding:8px 8px 6px}
  .fx-svg{max-height:34vh;width:auto;max-width:100%;margin:0 auto}
  .fx-panel{position:static}
  .fx-jugar{margin-left:0}
}
@media(max-width:620px){
  .fx-niveles li span{font-size:.82rem}
  .fx-niveles small{display:none}
  .fx-barra{gap:8px}
  .fx-jugar{width:100%;justify-content:center}
  .fx-lienzo{border-radius:20px}
  .fx-pie{font-size:.8rem;margin:2px 4px 0}
  .fx-svg{max-height:27vh}
  .fx-lienzo{padding:6px 6px 4px}
  .fx-col-donde{display:none}
  .fx-tabla{font-size:.86rem}
  .fx-tabla td,.fx-tabla tbody th{padding:9px 10px}
  .fx-pronto-in{grid-template-columns:1fr}
  .fx-pronto article{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){
  .fx-p.sel,.fx-p.ok,.fx-p.mal,.fx-insignia{animation:none!important}
}

/* ── el cerebro 3D ─────────────────────────────────────────────────── */
.fx3d{position:relative;width:100%;aspect-ratio:740/540;border-radius:20px;overflow:hidden;cursor:grab;touch-action:pan-y}
.fx3d:active{cursor:grabbing}
.fx3d[hidden]{display:none}
.con-3d .fx-svg{display:none}
.fx3d-lienzo{display:block;width:100%!important;height:100%!important}
.fx3d-nums{position:absolute;inset:0;pointer-events:none}
.fx3d-nums[hidden]{display:none}
.fx3d-num{position:absolute;left:-13px;top:-13px;width:26px;height:26px;border-radius:50%;border:3px solid var(--c);background:#fff;color:#0B0B63;font:800 12px "Plus Jakarta Sans",system-ui,sans-serif;display:grid;place-items:center;padding:0;pointer-events:auto;cursor:pointer;box-shadow:0 4px 10px -4px rgba(11,11,99,.5);will-change:transform}
.fx3d-num[hidden]{display:none}
.fx3d-ctl{position:absolute;right:12px;bottom:12px;display:flex;gap:6px;z-index:2}
.fx3d-ctl[hidden]{display:none}
.fx3d-ctl button{border:1.5px solid var(--line);background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border-radius:999px;padding:7px 12px;font:inherit;font-size:.78rem;font-weight:700;color:var(--navy);cursor:pointer}
.fx3d-ctl button[hidden]{display:none}
.fx3d-ctl button[aria-pressed="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}
.fx-seg[hidden]{display:none}
@media(max-width:1020px){.fx3d{max-height:38vh;aspect-ratio:auto;height:38vh}}
@media(max-width:620px){.fx3d{height:30vh}.fx3d-ctl{right:8px;bottom:8px}.fx3d-ctl button{padding:6px 10px;font-size:.72rem}}

/* nivel 2 y navegación entre niveles */
.fx-niveles a{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;width:100%}
.fx-niveles li:not(.activo):not(.pronto):hover{border-color:var(--cyan);background:#fff}
.fx-niveles li.pronto{opacity:.7}
.fx-sin3d{display:grid;place-items:center;min-height:260px;margin:0;color:var(--muted);font-size:.95rem;text-align:center;padding:20px}
.fx3d-ctl .fx-imp{background:linear-gradient(135deg,#FFE066,#FFB938);border-color:#F2B12B;color:#5A3A00}
.fx3d-ctl .fx-imp:disabled{opacity:.6;cursor:default}
a.fx-otro{display:flex;gap:14px;align-items:flex-start;border:1.5px solid var(--line);border-radius:22px;padding:18px;background:#fff;color:inherit;text-decoration:none;transition:border-color .2s,transform .2s}
a.fx-otro:hover{border-color:var(--cyan);transform:translateY(-2px)}
a.fx-otro>b{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-family:"Plus Jakarta Sans",system-ui,sans-serif}
a.fx-otro h3{font-size:1.1rem;margin:0 0 4px}
a.fx-otro p{margin:0;font-size:.9rem}
a.fx-otro>span{margin-left:auto;font-size:.8rem;font-weight:800;color:var(--cyan);white-space:nowrap}
@media(max-width:620px){a.fx-otro{flex-wrap:wrap}}
