:root{--azul:#0B1F3A;--azul2:#123058;--esm:#10B981;--amb:#F5A524;--gris:#E6EAF0;--txt:#1F2937;--fondo:#FFFFFF;--suave:#F5F7FA;--borde:#E1E6EE;--rojo:#D64545}
@media (prefers-color-scheme:dark){:root{--txt:#E6EAF0;--fondo:#0B1424;--suave:#101C32;--borde:#22314D}}
*{box-sizing:border-box}
html{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--txt);background:var(--fondo);line-height:1.6}
body{margin:0}
.cont{max-width:1040px;margin:0 auto;padding:0 16px}
.estrecho{max-width:760px}
img{max-width:100%;height:auto}
a{color:#0a7f5a}
@media (prefers-color-scheme:dark){a{color:#34d399}}
h1,h2,h3{font-family:Oswald,Impact,"Arial Narrow",sans-serif;line-height:1.15;letter-spacing:.01em}
h1{font-size:clamp(2rem,6vw,3.2rem);margin:.6em 0 .3em}
h2{font-size:clamp(1.4rem,4vw,1.9rem);margin:1.6em 0 .5em}
h3{font-size:1.2rem;margin:.2em 0 .4em}
.salto{position:absolute;left:-999px}.salto:focus{left:8px;top:8px;background:#fff;color:#000;padding:8px;z-index:9}
.cab{background:var(--azul);color:#fff;position:sticky;top:0;z-index:5}
.fila{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.marca{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-family:Oswald,sans-serif;letter-spacing:.08em}
.marca b{color:var(--esm)}
.cab nav{display:flex;gap:4px 16px;flex-wrap:wrap}
.cab nav a{color:#dbe4f0;text-decoration:none;padding:6px 2px;border-bottom:2px solid transparent}
.cab nav a:hover,.cab nav a[aria-current]{color:#fff;border-bottom-color:var(--esm)}
.hero{background:radial-gradient(circle at 50% 30%,var(--azul2),var(--azul) 70%);color:#fff;padding:56px 0 64px}
.hero h1 span{color:var(--esm)}
.hero .lead{color:#dbe4f0}
.lead{font-size:1.15rem;max-width:62ch}
.etiqueta{display:inline-block;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--esm);font-weight:600;margin:0}
.etiqueta a{color:inherit}
.acciones{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}
.btn,button{display:inline-block;background:var(--esm);color:var(--azul);font:700 1rem Inter,sans-serif;border:0;border-radius:10px;padding:12px 22px;text-decoration:none;cursor:pointer}
.btn:hover,button:hover{filter:brightness(1.08)}
.btn.sec{background:transparent;color:inherit;border:2px solid currentColor}
.btn.off{background:var(--borde);color:#6b7280;cursor:not-allowed}
:focus-visible{outline:3px solid var(--amb);outline-offset:2px}
.rejilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:16px 0}
.tarj{background:var(--suave);border:1px solid var(--borde);border-radius:14px;padding:18px;color:inherit;text-decoration:none;display:block}
.tarj.enlace:hover{border-color:var(--esm)}
.tarj p{margin:.3em 0 0}
.banda{background:var(--suave);border-block:1px solid var(--borde);margin:40px 0;padding:8px 0 32px}
.nivel details{border:1px solid var(--borde);border-radius:12px;margin:10px 0;padding:6px 14px;background:var(--suave)}
.nivel summary{cursor:pointer;font-weight:600;padding:8px 0}
.nivel summary small{font-weight:400;opacity:.7;margin-left:8px}
.lecciones{padding-left:1.4em}
.lecciones li{padding:3px 0}
.pronto{opacity:.6}
.video{aspect-ratio:16/9;background:var(--azul);border-radius:14px;overflow:hidden;margin:20px 0;display:flex;align-items:center;justify-content:center;color:#dbe4f0}
.video iframe{width:100%;height:100%;border:0}
.video.vacio a{color:var(--esm)}
.transcripcion{border-left:4px solid var(--esm);padding-left:16px;max-width:68ch}
.fuentes li{margin:6px 0;word-break:break-word}
.paginado{display:flex;justify-content:space-between;gap:12px;margin:32px 0;flex-wrap:wrap}
.aviso{background:#fff7e6;color:#4a3300;border:1px solid var(--amb);border-radius:10px;padding:12px 14px;font-size:.92rem}
.peq{font-size:.85rem;opacity:.8}
.check{list-style:none;padding:0}.check li{padding:4px 0 4px 28px;position:relative}
.check li:before{content:"✓";position:absolute;left:0;color:var(--esm);font-weight:700}
.check.no li:before{content:"✕";color:var(--rojo)}
.suscribir{display:grid;gap:8px;max-width:460px;margin:16px 0}
.suscribir input[type=email],.calc input{width:100%;padding:12px;border:1px solid var(--borde);border-radius:8px;font:inherit;background:var(--fondo);color:var(--txt)}
.chk{display:flex;gap:8px;font-size:.85rem;align-items:flex-start}.chk input{margin-top:4px}
.trampa{position:absolute;left:-9999px}
.estado{min-height:1.4em;font-size:.95rem;margin:0}
.calc{background:var(--suave);border:1px solid var(--borde);border-radius:14px;padding:18px;margin:16px 0}
.calc label{display:block;font-weight:600;margin:12px 0 4px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 16px}
.calc button{margin-top:16px}
.resultado{margin-top:16px}
.resultado table{border-collapse:collapse;width:100%}
.resultado td{padding:8px;border-bottom:1px solid var(--borde)}.resultado td:last-child{text-align:right;font-weight:700}
.resultado .err{color:var(--rojo);font-weight:600}
.pie{background:var(--azul);color:#c9d4e5;margin-top:64px;padding:28px 0}
.pie .aviso{background:transparent;color:#c9d4e5;border-color:#3a4d6e}
.pie .enlaces{display:flex;gap:8px 18px;flex-wrap:wrap;margin:14px 0}.pie a{color:#fff}
@media (prefers-reduced-motion:no-preference){.btn,button,.tarj{transition:filter .15s,border-color .15s}}
.articulo h2{margin-top:1.8em}.articulo ul,.articulo ol{padding-left:1.3em}.articulo li{margin:6px 0}.articulo p{max-width:68ch}
.toc{background:var(--suave);border:1px solid var(--borde);border-radius:12px;padding:12px 18px;margin:18px 0}.toc ul{margin:6px 0 0;padding-left:1.2em}
.anuncio{margin:28px 0;text-align:center;min-height:90px}.anuncio small{display:block;opacity:.6}

/* ===== Aviso educativo (todas las páginas) ===== */
.banda-aviso{background:#fff7e6;color:#4a3300;border-bottom:1px solid var(--amb);font-size:.88rem;text-align:center;padding:6px 12px}
.banda-aviso b{font-weight:700}
.pie .aviso{border-width:2px;font-size:.95rem}
.pie .aviso b{display:block;font-size:1.05rem;margin-bottom:4px;color:#fff}
.grande-aviso{font-size:1rem;padding:16px 18px}

/* ===== Portada ===== */
.hero2{position:relative;overflow:hidden;background:radial-gradient(circle at 70% 30%,var(--azul2),var(--azul) 70%);color:#fff;padding:48px 0 0}
.hero2:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:70px 70px;mask-image:radial-gradient(circle at 60% 40%,#000,transparent 75%)}
.hero-fondo{position:absolute;inset:0;pointer-events:none}
.brillo{position:absolute;border-radius:50%;filter:blur(70px);opacity:.35}
.b1{width:380px;height:380px;background:var(--esm);left:-80px;top:40px;animation:deriva 14s ease-in-out infinite}
.b2{width:320px;height:320px;background:var(--amb);right:-60px;bottom:-40px;opacity:.22;animation:deriva 18s ease-in-out infinite reverse}
.linea-sube{position:absolute;left:0;right:0;bottom:0;width:100%;height:55%;opacity:.35}
.linea-sube path{stroke-dasharray:1400;stroke-dashoffset:1400;animation:dibuja 3.2s ease-out .4s forwards}
.hero2-grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:end;min-height:560px}
.hero-texto{padding-bottom:56px;align-self:center}
.hero2 h1{font-size:clamp(2.3rem,6vw,4rem);margin:.4em 0 .3em}
.grad{background:linear-gradient(90deg,var(--esm),#6ee7b7,var(--amb));-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:brilla 6s linear infinite}
.hero2 .lead{color:#dbe4f0}
.pildora{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 14px;font-size:.85rem;margin:0;color:#dbe4f0}
.punto{width:8px;height:8px;border-radius:50%;background:var(--esm);animation:pulso 1.8s ease-out infinite}
.btn.grande{padding:15px 28px;font-size:1.05rem}
.hero2 .btn.sec{color:#fff}
.cifras{list-style:none;padding:0;margin:28px 0 0;display:flex;gap:28px;flex-wrap:wrap}
.cifras li{display:flex;flex-direction:column}.cifras b{font:700 2.4rem Oswald,Impact,sans-serif;color:var(--esm);line-height:1}.cifras span{font-size:.85rem;color:#c9d4e5}
.escenario{position:relative;height:540px;display:flex;align-items:flex-end;justify-content:center}
.suelo{position:absolute;left:5%;right:5%;bottom:0;height:10px;border-radius:50%;background:rgba(0,0,0,.3);filter:blur(6px)}
.pers{position:relative;z-index:2}
.pers .fig{display:block;width:100%;height:auto;overflow:visible}
.pers-doc{width:min(46%,240px);margin-right:-2%;animation:entra-izq .9s cubic-bezier(.2,.9,.3,1.2) both}
.pers-inver{width:min(42%,220px);animation:entra-der .9s .25s cubic-bezier(.2,.9,.3,1.2) both}
.pers-lado{width:min(260px,70%);margin:0 auto}
.burbuja{position:absolute;z-index:3;left:2%;top:6%;background:#fff;color:var(--azul);border-radius:16px 16px 16px 2px;padding:10px 14px;font-weight:600;font-size:.95rem;max-width:210px;box-shadow:0 12px 30px rgba(0,0,0,.3);animation:pop .6s 1s cubic-bezier(.2,.9,.3,1.4) both}
.flota{position:absolute;z-index:1;width:84px;animation:flota 5s ease-in-out infinite}
.flota .prop,.icono .prop,.ico .prop{width:100%;height:auto;display:block}
.f1{right:4%;top:10%}.f2{left:0;top:42%;animation-delay:-1.5s;width:76px}.f3{right:0;top:44%;animation-delay:-3s;width:88px}.f4{left:26%;top:2%;animation-delay:-2s;width:66px}
.cinta{background:var(--esm);color:var(--azul);overflow:hidden;white-space:nowrap;font:700 1.1rem Oswald,Impact,sans-serif;letter-spacing:.12em;padding:10px 0}
.cinta-pista{display:inline-flex;gap:40px;animation:cinta 26s linear infinite}
.cinta-pista span:after{content:"✦";margin-left:40px;opacity:.6}
.seccion{padding-block:48px}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:center}
.dos.inv{grid-template-columns:1.2fr .8fr}
.rejilla.r2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.tarj.icono{display:flex;gap:14px;align-items:flex-start}.tarj.icono .prop{width:56px;flex:none}
.tarj{transition:transform .2s,border-color .2s,box-shadow .2s}
.tarj.enlace:hover,.tarj.icono:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(11,31,58,.18)}
.banda-osc{background:radial-gradient(circle at 20% 30%,var(--azul2),var(--azul) 70%);color:#fff;padding:56px 0}
.banda-osc .etiqueta{color:var(--esm)}.banda-osc a{color:#6ee7b7}
.banda-osc .suscribir input[type=email]{background:#fff;color:#0B1F3A}
.banda-osc .chk{color:#dbe4f0}
.barras{display:flex;gap:22px;align-items:flex-end;height:210px;margin:22px 0 6px}
.barra{position:relative;width:84px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.barra span{display:block;width:100%;border-radius:10px 10px 0 0;height:0;transition:height 1.1s cubic-bezier(.2,.8,.2,1)}
.barra em{font:700 1.2rem Oswald,Impact,sans-serif;font-style:normal;margin-top:6px}.rojo{color:#ff8a8a}.verde{color:var(--esm)}
.b-ini{background:var(--esm)}.b-baja{background:var(--rojo);transition-delay:.5s!important}.b-sube{background:var(--amb);transition-delay:1.1s!important}
.visto .b-ini{height:50%}.visto .b-baja{height:25%}.visto .b-sube{height:50%}
.escalera{list-style:none;padding:0;margin:20px 0;display:grid;grid-template-columns:repeat(6,1fr);gap:14px;align-items:end}
.peldano{background:var(--suave);border:1px solid var(--borde);border-radius:14px;padding:14px;transition:transform .25s}
.peldano:nth-child(1){margin-top:150px}.peldano:nth-child(2){margin-top:120px}.peldano:nth-child(3){margin-top:90px}.peldano:nth-child(4){margin-top:60px}.peldano:nth-child(5){margin-top:30px}
.peldano:hover{transform:translateY(-6px)}
.peldano .ico{width:52px;margin-bottom:6px}.peldano h3{font-size:1.05rem}
.progreso{height:6px;background:var(--borde);border-radius:6px;overflow:hidden;margin:8px 0 4px}.progreso span{display:block;height:100%;background:var(--esm);border-radius:6px}
.p-0{width:0}.p-1{width:10%}.p-2{width:20%}.p-3{width:30%}.p-4{width:40%}.p-5{width:50%}.p-6{width:60%}.p-7{width:70%}.p-8{width:80%}.p-9{width:90%}.p-10{width:100%}
.calc-escena .prop.grande{width:min(240px,100%);animation:flota 5s ease-in-out infinite}

/* Animaciones de personajes */
.fig .cuerpo{animation:flota-suave 4s ease-in-out infinite}
.pers-inver .fig .cuerpo{animation-delay:-1.5s}
.fig .ojo{transform-box:fill-box;transform-origin:center;animation:parpadeo 5s infinite}
.fig .bi{transform-origin:106px 205px}.fig .bd{transform-origin:194px 205px}
.a-idle .bi{transform:rotate(8deg)}.a-idle .bd{transform:rotate(-8deg)}
.a-saludar .bi{transform:rotate(8deg)}.a-saludar .bd{animation:saluda 1.1s ease-in-out infinite}
.a-explicar .bi{transform:rotate(25deg)}.a-explicar .bd{animation:explica 1.6s ease-in-out infinite}
.a-celebrar .bi{animation:celebra-i .9s ease-in-out infinite}.a-celebrar .bd{animation:celebra-d .9s ease-in-out infinite}
.a-duda .bi{transform:rotate(65deg)}.a-duda .bd{transform:rotate(-65deg)}
.a-senalar .bi{transform:rotate(8deg)}.a-senalar .bd{transform:rotate(-105deg)}
.brazo-balanza{transform-origin:100px 50px;animation:balancea 4s ease-in-out infinite}
.aguja-m{transform-origin:100px 100px;animation:gira 12s linear infinite}

/* Aparición al hacer scroll (solo si hay JavaScript) */
.js .revela{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.js .revela.visto{opacity:1;transform:none}

@keyframes flota{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-14px) rotate(3deg)}}
@keyframes flota-suave{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes parpadeo{0%,94%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
@keyframes saluda{0%,100%{transform:rotate(-128deg)}50%{transform:rotate(-152deg)}}
@keyframes explica{0%,100%{transform:rotate(-66deg)}50%{transform:rotate(-86deg)}}
@keyframes celebra-i{0%,100%{transform:rotate(145deg)}50%{transform:rotate(165deg)}}
@keyframes celebra-d{0%,100%{transform:rotate(-145deg)}50%{transform:rotate(-165deg)}}
@keyframes balancea{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
@keyframes gira{to{transform:rotate(360deg)}}
@keyframes deriva{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,30px)}}
@keyframes dibuja{to{stroke-dashoffset:0}}
@keyframes brilla{to{background-position:200% 0}}
@keyframes pulso{0%{box-shadow:0 0 0 0 rgba(16,185,129,.6)}100%{box-shadow:0 0 0 12px rgba(16,185,129,0)}}
@keyframes entra-izq{from{opacity:0;transform:translateX(-60px)}to{opacity:1;transform:none}}
@keyframes entra-der{from{opacity:0;transform:translateX(60px)}to{opacity:1;transform:none}}
@keyframes pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes cinta{to{transform:translateX(-50%)}}

@media (max-width:860px){
  .hero2-grid,.dos,.dos.inv{grid-template-columns:1fr}
  .escenario{height:420px}.hero-texto{padding-bottom:8px}
  .escalera{grid-template-columns:repeat(2,1fr)}.peldano:nth-child(n){margin-top:0}
  .pers-lado{width:min(200px,60%)}
}
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important}
  .js .revela{opacity:1;transform:none}
  .visto .b-ini,.b-ini{height:50%}.b-baja{height:25%}.b-sube{height:50%}
  .linea-sube path{stroke-dashoffset:0}
  .a-saludar .bd{transform:rotate(-140deg)}.a-explicar .bd{transform:rotate(-75deg)}.a-celebrar .bi{transform:rotate(155deg)}.a-celebrar .bd{transform:rotate(-155deg)}
}
/* Fondo circular detrás de los personajes en secciones claras (la bata blanca no se ve sobre blanco) */
.seccion .pers-lado:not(.calc-escena){background:radial-gradient(circle at 50% 40%,var(--azul2),var(--azul));border-radius:50%;aspect-ratio:1;padding:34px 40px 0;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;width:min(300px,80%)}
.seccion .pers-lado .fig{width:78%}
@media (max-width:860px){.cab{position:static}}
