/* =========================================================
   Profesora Evelyn Álvarez · estilos del sitio
   Marca: paleta Peonía, formas redondeadas, scrapbook.
   ========================================================= */

/* ---------- Tipografías (archivos en /fonts) ---------- */
@font-face{font-family:"Fredoka";src:url("../fonts/fredoka-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Fredoka";src:url("../fonts/fredoka-latin-500-normal.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Fredoka";src:url("../fonts/fredoka-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Nunito";src:url("../fonts/nunito-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Nunito";src:url("../fonts/nunito-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Nunito";src:url("../fonts/nunito-latin-700-normal.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Nunito";src:url("../fonts/nunito-latin-800-normal.woff2") format("woff2");font-weight:800;font-display:swap}
@font-face{font-family:"Caveat";src:url("../fonts/caveat-latin-600-normal.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Andika";src:url("../fonts/andika-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"DM Mono";src:url("../fonts/dm-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}

/* ---------- Tokens: tema claro (Papel) ---------- */
:root{
  --morado:#5A2A82; --violeta:#9D55B5; --lila-peonia:#D5B0E8; --lila:#E8D9F2; --rosa:#FCE9F1;
  --ciruela:#8C2B72; --fucsia:#CC2E78; --verde:#5E7D34; --dorado:#C49A3F; --tinta:#221A26;
  --fondo:#FFFCF8; --superficie:#FFFFFF; --superficie-suave:#E8D9F2; --superficie-rosa:#FCE9F1;
  --texto:#221A26; --texto-suave:#6E6472; --acento:#5A2A82; --acento-fucsia:#B0215F; --acento-verde:#4E6A2A;
  --borde:#D9CCE0; --borde-control:#8A7D90; --foco:#CC2E78; --sobre-marca:#FFFFFF;
  --trama:#D5B0E8; --pixel-base:#5A2A82; --pixel-acento:#CC2E78;
  --celda-a:#E8D9F2; --celda-b:#D5B0E8;
  --panel-oscuro:#5A2A82; --codigo-fondo:#221A26; --codigo-texto:#F7F0F9;
  --papel-scrap:#FFFDF9; --puntos-scrap:#E3D3EC;
  --sombra:0 1px 0 rgba(34,26,38,.06),0 8px 18px -8px rgba(75,34,114,.28);
  --sombra-alta:0 2px 0 rgba(34,26,38,.05),0 22px 40px -16px rgba(75,34,114,.45);
  --logo-claro:block; --logo-oscuro:none; --c-tec:#221A26;
  --f-titulo:"Fredoka","Nunito","Arial Rounded MT Bold",system-ui,sans-serif;
  --f-texto:"Nunito","Segoe UI",Calibri,system-ui,sans-serif;
  --f-lectura:"Andika","Nunito",Verdana,sans-serif;
  --f-nota:"Caveat","Segoe Print","Comic Sans MS",cursive;
  --f-mono:"DM Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --r-sm:10px; --r-md:18px; --r-lg:28px; --r-pill:999px;
  --barra-alto:68px;
}
/* ---------- Tema oscuro (Pizarra) ---------- */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --fondo:#1B1420; --superficie:#281F2E; --superficie-suave:#33273B; --superficie-rosa:#35222F;
    --texto:#F7F0F9; --texto-suave:#C9BCCD; --acento:#C9A6EC; --acento-fucsia:#F27AB3; --acento-verde:#A9C77A;
    --borde:#4A3D52; --borde-control:#9C8DA3; --foco:#F27AB3; --trama:#3F3149;
    --pixel-base:#C9A6EC; --pixel-acento:#F27AB3; --celda-a:#33273B; --celda-b:#45374F;
    --panel-oscuro:#33273B; --codigo-fondo:#130D16;
    --papel-scrap:#2E2434; --puntos-scrap:#45374F;
    --sombra:0 1px 0 rgba(0,0,0,.3),0 10px 22px -10px rgba(0,0,0,.7);
    --sombra-alta:0 2px 0 rgba(0,0,0,.3),0 24px 44px -16px rgba(0,0,0,.8);
    --logo-claro:none; --logo-oscuro:block; --c-tec:#6E5A7A;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --fondo:#1B1420; --superficie:#281F2E; --superficie-suave:#33273B; --superficie-rosa:#35222F;
  --texto:#F7F0F9; --texto-suave:#C9BCCD; --acento:#C9A6EC; --acento-fucsia:#F27AB3; --acento-verde:#A9C77A;
  --borde:#4A3D52; --borde-control:#9C8DA3; --foco:#F27AB3; --trama:#3F3149;
  --pixel-base:#C9A6EC; --pixel-acento:#F27AB3; --celda-a:#33273B; --celda-b:#45374F;
  --panel-oscuro:#33273B; --codigo-fondo:#130D16;
  --papel-scrap:#2E2434; --puntos-scrap:#45374F;
  --sombra:0 1px 0 rgba(0,0,0,.3),0 10px 22px -10px rgba(0,0,0,.7);
  --sombra-alta:0 2px 0 rgba(0,0,0,.3),0 24px 44px -16px rgba(0,0,0,.8);
  --logo-claro:none; --logo-oscuro:block; --c-tec:#6E5A7A;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--barra-alto) + 12px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--texto);font-family:var(--f-texto);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
@supports (overflow:clip){body{overflow-x:clip}}
img{max-width:100%;display:block}
a{color:var(--acento);text-underline-offset:3px}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--foco);outline-offset:2px;border-radius:8px}
h1,h2,h3,h4{font-family:var(--f-titulo);font-weight:600;line-height:1.12;text-wrap:balance;margin:0}
p{margin:0}
ul{margin:0}
.envoltura{max-width:1160px;margin-inline:auto;padding-inline:24px}
@media (max-width:520px){.envoltura{padding-inline:16px}}
.logo-claro{display:var(--logo-claro)} .logo-oscuro{display:var(--logo-oscuro)}
[hidden]{display:none!important}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saltar{position:absolute;left:12px;top:-60px;z-index:60;background:var(--morado);color:#fff;padding:10px 16px;border-radius:var(--r-pill);font-weight:800;text-decoration:none}
.saltar:focus{top:12px}

/* ---------- Barra de progreso (cinta washi) ---------- */
.progreso{position:fixed;left:0;right:0;top:0;height:5px;z-index:40;pointer-events:none}
.progreso span{display:block;height:100%;background:var(--fucsia) repeating-linear-gradient(115deg,rgba(252,233,241,.55) 0 5px,transparent 5px 12px);transform-origin:0 50%;transform:scaleX(var(--avance,0));border-radius:0 var(--r-pill) var(--r-pill) 0}
@supports (animation-timeline:scroll()){
  .progreso span{animation:avanzar linear both;animation-timeline:scroll(root)}
  @keyframes avanzar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
}

/* ---------- Barra superior ---------- */
.barra{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--fondo);border-bottom:1px solid var(--borde)}
@supports (backdrop-filter:blur(8px)) and (background:color-mix(in srgb,red 50%,blue)){
  .barra{background:color-mix(in srgb,var(--fondo) 86%,transparent);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2)}
}
.barra .envoltura{display:flex;align-items:center;gap:14px;min-height:var(--barra-alto)}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--texto);font-family:var(--f-titulo);font-weight:600;font-size:17px;line-height:1.1;flex-shrink:0}
.marca img{width:44px;height:44px}
.marca small{display:block;font-family:var(--f-texto);font-weight:600;font-size:12px;color:var(--texto-suave)}
.menu{display:flex;gap:2px;margin-left:auto;list-style:none;padding:0}
.menu a{display:block;padding:8px 12px;border-radius:var(--r-pill);text-decoration:none;color:var(--texto);font-weight:700;font-size:14px;transition:background-color .2s}
.menu a:hover,.menu a[aria-current="true"]{background:var(--superficie-suave)}
.tema{width:42px;height:42px;border-radius:50%;border:2px solid var(--borde);background:var(--superficie);color:var(--texto);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:transform .3s}
.tema:hover{transform:rotate(-20deg)}
.tema svg{width:20px;height:20px}
.tema .sol{display:var(--logo-oscuro)} .tema .luna{display:var(--logo-claro)}
.boton{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:var(--r-pill);font-family:var(--f-texto);font-weight:800;font-size:15px;text-decoration:none;border:2px solid transparent;cursor:pointer;line-height:1.2;transition:transform .18s ease,box-shadow .18s ease,background-color .18s}
.boton:hover{transform:translateY(-2px)}
.boton:active{transform:translateY(0) scale(.98)}
.boton svg{width:18px;height:18px}
.boton-principal{background:var(--morado);color:var(--sobre-marca);box-shadow:0 6px 0 -2px var(--ciruela)}
.boton-principal:hover{box-shadow:0 8px 0 -2px var(--ciruela)}
.boton-secundario{background:transparent;color:var(--acento);border-color:var(--borde-control)}
.boton-suave{background:var(--superficie-suave);color:var(--texto)}
.boton-mini{padding:8px 14px;font-size:14px}
.barra .boton{padding:9px 18px;font-size:14px;box-shadow:none}
@media (max-width:980px){.barra nav{display:none}.tema{margin-left:auto}}
@media (max-width:440px){.marca small{display:none}.barra .envoltura{gap:10px}.barra .boton{padding:9px 14px}.marca{font-size:15.5px;gap:8px}.marca img{width:38px;height:38px}.tema{width:38px;height:38px}}
@media (max-width:350px){.marca span{display:none}}

/* ---------- Elementos de marca ---------- */
.trama{position:absolute;background:var(--trama);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Crect x='2' y='2' width='8' height='8' rx='3' fill='black'/%3E%3C/svg%3E") repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Crect x='2' y='2' width='8' height='8' rx='3' fill='black'/%3E%3C/svg%3E") repeat;pointer-events:none}
.washi{position:absolute;height:28px;border-radius:var(--r-pill);background:var(--fucsia) repeating-linear-gradient(115deg,rgba(252,233,241,.5) 0 6px,transparent 6px 16px);opacity:.93;z-index:2;pointer-events:none}
.washi.violeta{background-color:var(--violeta)}
.washi.dorada{background-color:var(--dorado)}
.washi.verde{background-color:var(--verde)}
.etiqueta{display:inline-flex;align-items:center;gap:6px;padding:5px 13px;border-radius:var(--r-pill);font-size:13px;font-weight:700;letter-spacing:.02em;line-height:1.3;background:var(--superficie-suave);color:var(--texto)}
.etiqueta.fucsia{background:var(--superficie-rosa);color:var(--acento-fucsia)}
.etiqueta.clara{background:var(--superficie);border:1px solid var(--borde)}
.punto-vivo{width:9px;height:9px;border-radius:4px;background:var(--verde);position:relative;flex-shrink:0}
.punto-vivo::after{content:"";position:absolute;inset:-4px;border-radius:7px;border:2px solid var(--verde);opacity:0}
@media (prefers-reduced-motion:no-preference){.punto-vivo::after{animation:latido 1.8s ease-out infinite}}
@keyframes latido{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.6);opacity:0}}
.nota{font-family:var(--f-nota);font-weight:600;color:var(--acento-fucsia);line-height:1.1}
.icono-corazon{display:inline-block}
.ic{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.oculto-js{display:none}

/* ---------- Secciones ---------- */
.seccion{padding-block:92px;position:relative}
.seccion-cabeza{display:grid;gap:14px;max-width:740px;margin-bottom:44px;position:relative}
.antetitulo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--acento)}
.antetitulo svg{width:22px;height:20px;flex-shrink:0}
.seccion h2{font-size:clamp(30px,4.2vw,46px);color:var(--texto)}
.seccion-cabeza > p:not(.antetitulo){font-size:18px;color:var(--texto-suave);max-width:62ch}
.fondo-rosa{background:var(--superficie-rosa)}
.fondo-lila{background:var(--superficie-suave)}
@media (max-width:600px){.seccion{padding-block:68px}}

/* Aparición al hacer scroll: CSS moderno (scroll-driven animations). Sin soporte, todo queda visible. */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .revelar{animation:asentar linear both;animation-timeline:view();animation-range:entry 0% cover 22%}
    @keyframes asentar{from{opacity:.15;translate:0 46px;rotate:-1.5deg}to{opacity:1;translate:0 0;rotate:0deg}}
  }
}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding-block:56px 72px}
.hero .trama.t1{left:-24px;bottom:36px;width:180px;height:108px;opacity:.6}
.hero-rejilla{display:grid;grid-template-columns:1.02fr 1fr;gap:52px;align-items:center;position:relative}
.hero-texto{display:grid;gap:22px;justify-items:start;min-width:0}
.hero h1{font-size:clamp(38px,5.4vw,64px);letter-spacing:-.01em;color:var(--texto)}
.hero h1 .fila{display:block}
.palabra-caja{display:block;height:1.22em;margin-block:.04em .08em;position:relative}
.palabra{display:inline-block;font-family:var(--f-nota);font-weight:600;font-size:1.34em;line-height:.95;color:var(--acento-fucsia);position:relative;padding-inline:.12em;white-space:nowrap}
.palabra::before{content:"";position:absolute;left:0;right:0;bottom:.12em;height:.36em;border-radius:var(--r-pill);background:var(--lila-peonia);opacity:.75;z-index:-1;transform:rotate(-1.5deg)}
:root[data-theme="dark"] .palabra::before{opacity:.3}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .palabra::before{opacity:.3}}
.hero .sub-nota{font-family:var(--f-nota);font-weight:600;font-size:clamp(26px,3vw,34px);color:var(--acento);transform:rotate(-2deg);margin-top:-8px}
.hero-bajada{font-size:18.5px;max-width:56ch;color:var(--texto-suave)}
.hero-bajada strong{color:var(--texto)}
.hero-acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px}

/* Collage arrastrable */
.tablero{position:relative;width:100%;max-width:560px;justify-self:center;aspect-ratio:1/1.02;background-color:var(--papel-scrap);background-image:radial-gradient(circle,var(--puntos-scrap) 2.2px,transparent 2.7px);background-size:18px 18px;border-radius:var(--r-lg);box-shadow:var(--sombra-alta);rotate:-1.2deg;touch-action:pan-y}
.tablero::after{content:"";position:absolute;inset:10px;border-radius:22px;border:2px dashed var(--borde);pointer-events:none}
.pieza{position:absolute;rotate:var(--r,0deg);user-select:none;-webkit-user-select:none;cursor:grab;transition:scale .2s ease,filter .2s ease,box-shadow .2s ease;z-index:3}
.pieza.levantada{cursor:grabbing;scale:1.07;filter:drop-shadow(0 16px 18px rgba(34,26,38,.28))}
.pieza.movil{touch-action:none}
@media (prefers-reduced-motion:no-preference){
  .pieza{animation:caer .8s cubic-bezier(.2,.9,.25,1.2) backwards;animation-delay:calc(var(--i,0) * 90ms + 150ms)}
  @keyframes caer{from{opacity:0;translate:0 -60px;rotate:calc(var(--r,0deg) - 14deg);scale:1.15}}
}
.foto{left:22%;top:17%;width:56%;background:var(--morado);border-radius:var(--r-lg);padding:9% 7% 7%;display:grid;justify-items:center;gap:6px;color:#fff;text-align:center;box-shadow:var(--sombra);z-index:2}
.foto img{width:78%;height:auto;pointer-events:none}
.foto .firma{font-family:var(--f-nota);font-size:clamp(22px,2.6vw,30px);line-height:1}
.foto .pie{font-size:13px;font-weight:700;opacity:.9}
.foto .washi{width:44%;top:-12px;left:28%;rotate:-6deg}
.sticker{display:inline-flex;align-items:center;gap:7px;padding:8px 14px 8px 9px;border-radius:var(--r-pill);background:var(--superficie);border:2px solid var(--c,var(--violeta));color:var(--texto);font-weight:800;font-size:14px;line-height:1;box-shadow:0 4px 0 -1px var(--c,var(--violeta));white-space:nowrap}
.sticker i{width:26px;height:26px;border-radius:50%;background:var(--c,var(--violeta));display:grid;place-items:center;color:#fff;font-style:normal}
.sticker i svg{width:15px;height:15px}
.papelito{background:#FFF3B8;color:#3C2F12;padding:14px 16px 16px;border-radius:6px 6px 14px 6px;font-family:var(--f-nota);font-size:23px;line-height:1.05;width:128px;box-shadow:0 10px 16px -10px rgba(34,26,38,.45)}
.papelito small{display:block;font-family:var(--f-texto);font-size:12px;font-weight:700;margin-top:6px;color:#6B5A24}
.tira{width:120px;height:26px;border-radius:var(--r-pill);background:var(--c,var(--fucsia)) repeating-linear-gradient(115deg,rgba(252,233,241,.5) 0 6px,transparent 6px 16px);opacity:.93}
.corazon-pieza svg{width:58px;height:52px;display:block}
.pista-tablero{position:absolute;right:16px;bottom:-40px;font-family:var(--f-nota);font-size:21px;color:var(--texto-suave);rotate:-2deg;display:flex;align-items:center;gap:6px}
.pista-tablero svg{width:28px;height:28px}
@media (max-width:900px){
  .hero-rejilla{grid-template-columns:1fr;gap:40px}
  .tablero{max-width:470px}
}
@media (max-width:520px){
  .sticker{font-size:12.5px;padding:6px 11px 6px 7px;gap:6px}
  .sticker i{width:22px;height:22px}
  .papelito{width:104px;font-size:19px;padding:10px 12px 12px}
  .tira{width:84px;height:20px}
  .corazon-pieza svg{width:42px;height:38px}
  .foto .pie{font-size:11.5px}
}

/* ---------- Cinta marquesina ---------- */
.marquesina-caja{overflow:hidden;padding-block:14px;margin-top:-6px}
.marquesina{position:relative;z-index:2;margin-inline:-30px;rotate:-1.6deg;background:var(--fucsia) repeating-linear-gradient(115deg,rgba(252,233,241,.28) 0 8px,transparent 8px 22px);color:#fff;overflow:hidden;padding-block:12px;box-shadow:0 10px 20px -14px rgba(140,43,114,.8)}
.marquesina-pista{display:flex;width:max-content}
.marquesina ul{display:flex;align-items:center;gap:26px;list-style:none;padding:0 13px 0 13px;flex-shrink:0}
.marquesina li{display:flex;align-items:center;gap:26px;font-family:var(--f-titulo);font-weight:500;font-size:21px;white-space:nowrap}
.marquesina li svg{width:22px;height:20px}
.marquesina .pixel-blanco{--pixel-base:#FFFFFF;--pixel-acento:#F9C6DD}
@media (prefers-reduced-motion:no-preference){.marquesina-pista{animation:desfilar 38s linear infinite}.marquesina:hover .marquesina-pista{animation-play-state:paused}}
@keyframes desfilar{to{transform:translateX(-50%)}}

/* ---------- Ficha de números ---------- */
.ficha{background:var(--superficie-suave);border-radius:var(--r-lg);padding:28px 30px;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:40px;position:relative}
.ficha > div{display:grid;gap:2px;align-content:start}
.ficha b{font-family:var(--f-titulo);font-weight:600;font-size:clamp(28px,3vw,34px);color:var(--acento);line-height:1.1;font-variant-numeric:tabular-nums}
.ficha > div > span{font-size:14px;font-weight:700;color:var(--texto);line-height:1.35}
@media (max-width:860px){.ficha{grid-template-columns:repeat(2,1fr)}.ficha > div:last-child{grid-column:1/-1}}

/* ---------- Perfil: manos, cabeza, corazón ---------- */
.triada{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.pilar{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--r-lg);padding:30px 28px 28px;display:grid;gap:16px;align-content:start;position:relative}
.pilar-icono{width:58px;height:58px;border-radius:20px;display:grid;place-items:center;background:var(--superficie-suave);color:var(--acento)}
.pilar-icono svg{width:28px;height:28px}
.pilar .nota{font-size:28px;margin-bottom:-8px}
.pilar h3{font-size:24px}
.pilar ul{padding:0;list-style:none;display:grid;gap:10px}
.pilar li{display:grid;grid-template-columns:14px 1fr;gap:10px;align-items:start;font-size:15.5px;line-height:1.5}
.pilar li::before{content:"";width:10px;height:10px;border-radius:3.5px;background:var(--violeta);margin-top:7px}
.pilar.destacado{background:var(--morado);border-color:var(--morado);color:#fff}
.pilar.destacado .pilar-icono{background:rgba(255,255,255,.14);color:#fff}
.pilar.destacado .nota{color:#FCE9F1}
.pilar.destacado li::before{background:#F27AB3}
.pilar.destacado .washi{width:110px;top:-13px;right:30px;rotate:5deg}
:root[data-theme="dark"] .pilar.destacado{background:#4A2370;border-color:#6B3D93}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pilar.destacado{background:#4A2370;border-color:#6B3D93}}
@media (max-width:900px){.triada{grid-template-columns:1fr}}

/* Mapa de niveles y asignaturas */
.cobertura{margin-top:26px;background:var(--superficie);border:1px solid var(--borde);border-radius:var(--r-lg);padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:34px}
.cobertura h3{font-size:22px;margin-bottom:6px}
.cobertura .ayuda{font-size:14.5px;color:var(--texto-suave);margin-bottom:16px}
.niveles{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}
.niveles button{aspect-ratio:1;border-radius:14px;border:0;cursor:pointer;font-family:var(--f-titulo);font-weight:600;font-size:clamp(16px,2vw,21px);background:var(--celda-a);color:var(--texto);transition:transform .2s,background-color .2s}
.niveles button:hover{transform:translateY(-3px)}
.niveles button[aria-pressed="true"]{background:var(--morado);color:#fff;transform:translateY(-3px) rotate(-4deg)}
.nivel-detalle{margin-top:16px;background:var(--superficie-suave);border-radius:var(--r-md);padding:16px 18px;min-height:112px;display:grid;gap:6px;align-content:start}
.nivel-detalle strong{font-family:var(--f-titulo);font-weight:600;font-size:18px}
.nivel-detalle ul{padding:0;list-style:none;display:grid;gap:4px;font-size:15px}
.nivel-detalle li{display:flex;gap:8px;align-items:baseline}
.nivel-detalle li::before{content:"";width:8px;height:8px;border-radius:3px;background:var(--fucsia);flex-shrink:0;translate:0 -1px}
.asignaturas{display:flex;flex-wrap:wrap;gap:10px}
.asignatura{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 8px;border-radius:var(--r-pill);background:var(--superficie-suave);font-weight:800;font-size:14.5px;line-height:1.1}
.asignatura i{width:28px;height:28px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center}
.asignatura i svg{width:16px;height:16px}
.asignatura.no{background:transparent;border:2px dashed var(--borde);color:var(--texto-suave);font-weight:700}
@media (max-width:900px){.cobertura{grid-template-columns:1fr;padding:24px 20px}}
@media (max-width:420px){.niveles{grid-template-columns:repeat(4,1fr)}}

/* ---------- Mini-proyectos ---------- */
.pestanas-caja{overflow-x:auto;margin-inline:-8px;padding:8px 8px 14px;scrollbar-width:thin}
.pestanas{display:flex;gap:8px;width:max-content;min-width:100%}
.pestana{display:inline-flex;align-items:center;gap:8px;padding:9px 16px 9px 9px;border-radius:var(--r-pill);border:2px solid var(--borde);background:var(--superficie);font-weight:800;font-size:15px;cursor:pointer;white-space:nowrap;transition:transform .2s,border-color .2s,background-color .2s}
.pestana i{width:30px;height:30px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;transition:transform .3s}
.pestana i svg{width:17px;height:17px}
.pestana:hover{transform:translateY(-2px);border-color:var(--c)}
.pestana[aria-selected="true"]{background:var(--c);border-color:var(--c);color:#fff}
.pestana[aria-selected="true"] i{background:rgba(255,255,255,.2);transform:rotate(-12deg) scale(1.08)}
.panel-proyecto{margin-top:18px;background:var(--superficie);border-radius:var(--r-lg);box-shadow:var(--sombra);padding:34px;display:grid;grid-template-columns:.9fr 1.1fr;gap:38px;align-items:start;position:relative}
html.cambiando-panel .panel-proyecto:not([hidden]){view-transition-name:panel-proyecto}
.panel-proyecto > .washi{width:150px;top:-14px;left:40px;rotate:-3deg}
.proyecto-texto{display:grid;gap:14px;align-content:start}
.proyecto-texto .nota{font-size:26px}
.proyecto-texto h3{font-size:clamp(24px,2.6vw,30px)}
.proyecto-texto p{color:var(--texto-suave)}
.aprende{padding:0;list-style:none;display:grid;gap:8px;font-size:15px}
.aprende li{display:grid;grid-template-columns:20px 1fr;gap:8px}
.aprende li svg{width:18px;height:18px;color:var(--acento-verde);margin-top:3px}
.tecnologias{display:flex;flex-wrap:wrap;gap:6px}
.tecnologias span{font-family:var(--f-mono);font-size:12.5px;padding:4px 10px;border-radius:var(--r-pill);background:var(--codigo-fondo);color:var(--codigo-texto)}
.mesa{background:var(--superficie-suave);border-radius:var(--r-md);padding:22px;display:grid;gap:16px;position:relative;min-width:0}
.mesa-acciones{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mensaje{font-weight:700;font-size:15px;min-height:1.6em;color:var(--texto)}
.mensaje.bien{color:var(--acento-verde)}
.mensaje.mal{color:var(--acento-fucsia)}
@media (max-width:900px){.panel-proyecto{grid-template-columns:1fr;padding:26px 18px 22px;gap:24px}}
::view-transition-old(panel-proyecto){animation:.22s ease both salirPanel}
::view-transition-new(panel-proyecto){animation:.34s cubic-bezier(.2,.8,.2,1.1) both entrarPanel}
@keyframes salirPanel{to{opacity:0;transform:translateY(-10px) rotate(-.6deg)}}
@keyframes entrarPanel{from{opacity:0;transform:translateY(18px) rotate(.8deg)}}

/* Lenguaje: ruleta de cuentos */
.carretes{display:grid;gap:10px}
.carrete{display:grid;grid-template-columns:92px 1fr;align-items:center;gap:10px}
.carrete > span{font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--texto-suave)}
.ventana-carrete{height:52px;overflow:hidden;border-radius:14px;background:var(--superficie);border:2px solid var(--borde);position:relative}
.ventana-carrete::before,.ventana-carrete::after{content:"";position:absolute;left:0;right:0;height:10px;z-index:1;pointer-events:none}
.ventana-carrete::before{top:0;background:linear-gradient(var(--superficie),transparent)}
.ventana-carrete::after{bottom:0;background:linear-gradient(transparent,var(--superficie))}
.tira-carrete{display:grid}
.tira-carrete div{height:48px;display:flex;align-items:center;padding-inline:14px;font-family:var(--f-titulo);font-weight:500;font-size:18px;line-height:1.1}
.cuento{font-family:var(--f-lectura);font-size:20px;line-height:1.5;background:var(--superficie);border-radius:var(--r-md);padding:16px 18px;border:2px dashed var(--violeta)}
.cuento b{color:var(--acento);font-weight:400;background:var(--superficie-rosa);border-radius:6px;padding:0 4px}
.partes-cuento{display:flex;flex-wrap:wrap;gap:6px}
@media (max-width:520px){.carrete{grid-template-columns:1fr;gap:4px}.tira-carrete div{font-size:16px}.cuento{font-size:18px}}

/* Matemática: fracciones en píxeles */
.selector{display:flex;flex-wrap:wrap;gap:8px}
.selector button{font-family:var(--f-titulo);font-weight:600;font-size:18px;padding:7px 15px;border-radius:var(--r-pill);border:2px solid var(--borde-control);background:var(--superficie);color:var(--texto);cursor:pointer;min-width:60px;font-variant-numeric:tabular-nums}
.selector button[aria-pressed="true"]{background:var(--morado);border-color:var(--morado);color:#fff}
.control-fino{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-weight:700;font-size:14px}
.stepper{display:inline-flex;align-items:center;gap:6px;background:var(--superficie);border-radius:var(--r-pill);padding:4px;margin-left:6px}
.stepper button{width:34px;height:34px;border-radius:50%;border:0;background:var(--superficie-suave);color:var(--texto);font-size:20px;font-weight:800;cursor:pointer;line-height:1}
.stepper output{min-width:28px;text-align:center;font-family:var(--f-titulo);font-size:18px;font-variant-numeric:tabular-nums}
.rejilla-pixeles{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;width:min(100%,340px);justify-self:center}
.rejilla-pixeles span{aspect-ratio:1;border-radius:11px;background:var(--superficie);transition:background-color .3s ease,transform .3s cubic-bezier(.3,1.6,.5,1)}
.rejilla-pixeles span.alt{background:var(--celda-b)}
.rejilla-pixeles span.on{background:var(--morado);transform:scale(.92)}
.rejilla-pixeles span.on.alt{background:var(--ciruela)}
:root[data-theme="dark"] .rejilla-pixeles span.on{background:#9D55B5}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rejilla-pixeles span.on{background:#9D55B5}}
.lectura-fraccion{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 16px;font-family:var(--f-titulo);font-size:22px;font-variant-numeric:tabular-nums}
.frac{display:inline-grid;text-align:center;line-height:1;font-weight:600;color:var(--acento)}
.frac span:first-child{border-bottom:3px solid currentColor;padding:0 6px 4px;border-radius:2px}
.frac span:last-child{padding-top:4px}
.igual{color:var(--texto-suave)}
.porc{font-weight:600;color:var(--acento-fucsia)}
.explica{font-size:15px;color:var(--texto-suave);text-align:center}

/* Ciencias: estados de la materia */
.frasco{position:relative;border-radius:var(--r-md);overflow:hidden;background:var(--superficie)}
.frasco canvas{display:block;width:100%;height:280px}
.termometro{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
.termometro label{font-weight:800;font-size:14px}
.termometro output{font-family:var(--f-titulo);font-weight:600;font-size:22px;min-width:84px;text-align:right;font-variant-numeric:tabular-nums;color:var(--acento)}
input[type="range"]{-webkit-appearance:none;appearance:none;width:100%;height:14px;border-radius:var(--r-pill);background:linear-gradient(90deg,#D5B0E8 0 14.3%,#9D55B5 14.3% 85.7%,#CC2E78 85.7%);outline-offset:4px;cursor:pointer}
input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:var(--morado);border:4px solid #fff;box-shadow:0 2px 6px rgba(34,26,38,.35)}
input[type="range"]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--morado);border:4px solid #fff;box-shadow:0 2px 6px rgba(34,26,38,.35)}
.estados{display:flex;flex-wrap:wrap;gap:8px}
.estados span{padding:6px 14px;border-radius:var(--r-pill);font-weight:800;font-size:14px;background:var(--superficie);color:var(--texto-suave);transition:all .3s}
.estados span.activo{background:var(--morado);color:#fff;transform:scale(1.06)}

/* Historia: línea de tiempo */
.hechos{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.hecho{text-align:left;padding:12px 14px;border-radius:14px;border:2px solid var(--borde);background:var(--superficie);font-weight:700;font-size:14.5px;line-height:1.35;cursor:pointer;transition:transform .2s,opacity .2s,border-color .2s}
.hecho:hover:not(:disabled){transform:translateY(-2px) rotate(-.6deg);border-color:var(--violeta)}
.hecho:disabled{opacity:.35;cursor:default}
.linea-tiempo{list-style:none;padding:0;display:grid;gap:8px;counter-reset:paso;position:relative}
.linea-tiempo li{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;min-height:46px;border-radius:14px;padding:6px 12px 6px 6px;background:var(--superficie);border:2px dashed var(--borde);font-size:14.5px;font-weight:700;line-height:1.3;counter-increment:paso;transition:background-color .3s,border-color .3s}
.linea-tiempo li::before{content:counter(paso);width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--superficie-suave);font-family:var(--f-titulo);font-weight:600}
.linea-tiempo li.lleno{border-style:solid;border-color:var(--violeta);cursor:pointer}
.linea-tiempo li.ok{border-color:var(--verde);background:color-mix(in srgb,var(--verde) 12%,var(--superficie))}
.linea-tiempo li.ok::before{background:var(--verde);color:#fff}
.linea-tiempo li.error{border-color:var(--ciruela);background:color-mix(in srgb,var(--ciruela) 12%,var(--superficie))}
.linea-tiempo li.error::before{background:var(--ciruela);color:#fff}
.linea-tiempo .anio{font-family:var(--f-titulo);font-weight:600;color:var(--acento);font-size:14px;white-space:nowrap}
@media (max-width:560px){.hechos{grid-template-columns:1fr}}

/* Inglés: play, do o go */
.tarjeta-deporte{background:var(--superficie);border-radius:var(--r-md);padding:26px 18px;text-align:center;display:grid;gap:6px;justify-items:center}
.tarjeta-deporte small{font-weight:800;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--texto-suave)}
.tarjeta-deporte .deporte{font-family:var(--f-titulo);font-weight:600;font-size:clamp(34px,5vw,46px);color:var(--acento);line-height:1.05}
.tarjeta-deporte .frase{font-family:var(--f-lectura);font-size:19px;min-height:1.5em}
.verbos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.verbos button{padding:14px 8px;border-radius:var(--r-md);border:0;font-family:var(--f-titulo);font-weight:600;font-size:22px;cursor:pointer;color:#fff;transition:transform .15s}
.verbos button:hover{transform:translateY(-3px)}
.verbos button:disabled{opacity:.55;cursor:default;transform:none}
.verbos [data-verbo="play"]{background:var(--morado)} .verbos [data-verbo="do"]{background:var(--ciruela)} .verbos [data-verbo="go"]{background:#4E6A2A}
.puntos-avance{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.puntos-avance i{width:14px;height:14px;border-radius:5px;background:var(--superficie)}
.puntos-avance i.bien{background:var(--verde)} .puntos-avance i.mal{background:var(--ciruela)} .puntos-avance i.ahora{outline:2px solid var(--violeta);outline-offset:2px}
.regla{font-size:14px;color:var(--texto-suave)}
.sacudir{animation:sacudir .4s}
@keyframes sacudir{20%{transform:translateX(-7px)}40%{transform:translateX(7px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}

/* Artes: mesa de scrap */
.paleta-stickers{display:flex;flex-wrap:wrap;gap:8px}
.paleta-stickers button{width:52px;height:52px;border-radius:14px;border:2px solid var(--borde);background:var(--superficie);display:grid;place-items:center;cursor:pointer;padding:6px;transition:transform .2s}
.paleta-stickers button:hover{transform:translateY(-3px) rotate(-6deg)}
.paleta-stickers svg{width:100%;height:100%}
.hoja-scrap{position:relative;height:300px;border-radius:14px;background-color:var(--papel-scrap);overflow:hidden;box-shadow:inset 0 0 0 2px var(--borde);touch-action:pan-y}
.hoja-scrap[data-papel="puntos"]{background-image:radial-gradient(circle,var(--puntos-scrap) 2px,transparent 2.5px);background-size:16px 16px}
.hoja-scrap[data-papel="cuadros"]{background-image:linear-gradient(var(--puntos-scrap) 1.5px,transparent 1.5px),linear-gradient(90deg,var(--puntos-scrap) 1.5px,transparent 1.5px);background-size:22px 22px}
.hoja-scrap[data-papel="rayas"]{background-image:repeating-linear-gradient(0deg,transparent 0 26px,var(--puntos-scrap) 26px 28px)}
.hoja-scrap .titulo-hoja{position:absolute;left:18px;top:12px;font-family:var(--f-nota);font-size:32px;color:var(--acento);outline:none;z-index:1;border-radius:6px;padding:0 4px;max-width:80%}
.hoja-scrap .titulo-hoja:focus{background:var(--superficie-rosa)}
.pegado{position:absolute;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:scale .15s;rotate:var(--r,0deg)}
.pegado svg{display:block;pointer-events:none}
.pegado.elegido{outline:2px dashed var(--foco);outline-offset:4px;border-radius:8px}
.pegado.levantada{scale:1.08;cursor:grabbing}
@media (prefers-reduced-motion:no-preference){.pegado.nuevo{animation:pop .45s cubic-bezier(.3,1.7,.5,1)}}
@keyframes pop{from{scale:.2;opacity:0}}
.papeles{display:flex;gap:6px;flex-wrap:wrap}
.papeles button[aria-pressed="true"]{background:var(--morado);color:#fff;border-color:var(--morado)}

/* Música: xilófono */
.xilofono{display:flex;align-items:flex-end;justify-content:center;gap:8px;height:240px;padding:12px;background:var(--superficie);border-radius:var(--r-md);position:relative}
.xilofono::before,.xilofono::after{content:"";position:absolute;left:14px;right:14px;height:8px;border-radius:var(--r-pill);background:var(--borde);z-index:0}
.xilofono::before{top:30%}.xilofono::after{top:70%}
.tecla{flex:1;max-width:58px;border:0;border-radius:14px;cursor:pointer;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:10px;gap:2px;font-family:var(--f-titulo);font-weight:600;font-size:15px;color:#fff;position:relative;z-index:1;background:var(--c);transition:transform .12s,filter .12s;box-shadow:0 5px 0 -1px rgba(34,26,38,.25)}
.tecla small{font-family:var(--f-texto);font-size:11px;font-weight:800;opacity:.85}
.tecla.clara{color:#221A26}
.tecla.suena{transform:translateY(4px) scale(.97);filter:brightness(1.25) saturate(1.1);box-shadow:0 1px 0 -1px rgba(34,26,38,.25)}
.partitura{font-family:var(--f-mono);font-size:14px;color:var(--texto-suave);word-spacing:4px}

/* Tecnología: robot */
.robot-zona{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.cuadricula{position:relative;aspect-ratio:1;background:var(--superficie);border-radius:var(--r-md);display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr);padding:6px;gap:4px}
.cuadricula > span{border-radius:10px;background:var(--superficie-suave);display:grid;place-items:center}
.cuadricula .libro svg{width:62%;height:62%}
.cuadricula .meta svg{width:66%;height:60%}
.robot{position:absolute;width:calc((100% - 12px - 16px) / 5);aspect-ratio:1;left:calc(6px + var(--col) * ((100% - 12px - 16px) / 5 + 4px));top:calc(6px + var(--fila) * ((100% - 12px - 16px) / 5 + 4px));transition:left .35s cubic-bezier(.3,1.3,.5,1),top .35s cubic-bezier(.3,1.3,.5,1);display:grid;place-items:center;z-index:2}
.robot svg{width:78%;height:78%}
.robot.choque{animation:sacudir .4s}
.flechas{display:grid;grid-template-columns:repeat(3,48px);grid-template-rows:repeat(2,48px);gap:6px;justify-content:start}
.flechas button{border-radius:14px;border:0;background:var(--morado);color:#fff;cursor:pointer;display:grid;place-items:center;transition:transform .15s}
.flechas button:hover{transform:translateY(-2px)}
.flechas button svg{width:22px;height:22px}
.flechas [data-dir="arriba"]{grid-column:2}
.flechas [data-dir="izquierda"]{grid-column:1;grid-row:2}
.flechas [data-dir="abajo"]{grid-column:2;grid-row:2}
.flechas [data-dir="derecha"]{grid-column:3;grid-row:2}
.programa{display:flex;flex-wrap:wrap;gap:6px;min-height:52px;background:var(--superficie);border-radius:14px;padding:8px;align-content:flex-start}
.programa:empty::before{content:"Tu programa aparece aquí";font-size:14px;color:var(--texto-suave);padding:6px}
.bloque{display:inline-flex;align-items:center;gap:4px;padding:5px 9px 5px 6px;border-radius:10px;background:var(--violeta);color:#fff;font-weight:800;font-size:13px;border:0;cursor:pointer}
.bloque svg{width:15px;height:15px}
.bloque.activo{background:var(--fucsia);transform:scale(1.1)}
@media (max-width:560px){.robot-zona{grid-template-columns:1fr}}

/* ---------- Del código al aula ---------- */
.puentes{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;perspective:1000px}
.puente{background:var(--superficie);border-radius:var(--r-md);box-shadow:var(--sombra);overflow:hidden;display:grid;grid-template-rows:auto 1fr;transform-style:preserve-3d;transition:transform .25s ease,box-shadow .25s ease;will-change:transform}
.puente:hover{box-shadow:var(--sombra-alta)}
.puente-codigo{background:var(--codigo-fondo);color:var(--codigo-texto);padding:16px 18px 18px;font-family:var(--f-mono);font-size:13px;line-height:1.6;display:grid;gap:8px}
.ventana{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#C9BCCD;letter-spacing:.02em}
.ventana i{width:9px;height:9px;border-radius:4px;display:block}
.ventana i:nth-child(1){background:#F27AB3}.ventana i:nth-child(2){background:#E3C27A}.ventana i:nth-child(3){background:#A9C77A}
.ventana span{margin-left:6px}
.puente-codigo code{font-family:inherit;white-space:pre-wrap;word-break:break-word}
.k{color:#F27AB3}.s{color:#E3C27A}.c{color:#9F93A6}.f{color:#C9A6EC}
.puente-aula{padding:20px 20px 22px;display:grid;gap:10px;align-content:start}
.puente-aula .etiqueta{justify-self:start}
.puente-aula h3{font-size:20px}
.puente-aula p{font-size:15px;line-height:1.55;color:var(--texto-suave)}
@media (max-width:980px){.puentes{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.puentes{grid-template-columns:1fr}}

/* ---------- Lo que me mueve (polaroids) ---------- */
.polaroids{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;padding-top:10px}
.polaroid{background:var(--superficie);padding:14px 14px 22px;border-radius:12px;box-shadow:var(--sombra-alta);rotate:var(--r);position:relative;display:grid;gap:12px;transition:rotate .35s cubic-bezier(.3,1.5,.5,1),translate .35s}
.polaroid:hover{rotate:0deg;translate:0 -6px}
.polaroid .washi{width:110px;top:-12px;left:calc(50% - 55px);rotate:calc(var(--r) * -2)}
.polaroid figure{margin:0;aspect-ratio:4/3;border-radius:8px;background:var(--fondo-foto);display:grid;place-items:center;overflow:hidden}
.polaroid figure svg{width:70%;height:78%}
.polaroid .nota{font-size:30px;text-align:center}
.polaroid p{font-size:15.5px;color:var(--texto-suave);padding-inline:6px}
@media (max-width:900px){.polaroids{grid-template-columns:1fr;max-width:460px;margin-inline:auto;gap:40px}}

/* ---------- Trayectoria ---------- */
.linea{position:relative;display:grid;gap:22px;padding-left:44px}
.linea::before{content:"";position:absolute;left:14px;top:12px;bottom:12px;width:4px;background-image:radial-gradient(circle,var(--violeta) 2px,transparent 2.4px);background-size:4px 14px;background-repeat:repeat-y}
.hito{position:relative;background:var(--superficie);border:1px solid var(--borde);border-radius:var(--r-md);padding:24px 26px;display:grid;grid-template-columns:190px 1fr;gap:6px 28px}
.hito::before{content:"";position:absolute;left:-39px;top:28px;width:22px;height:22px;border-radius:8px;background:var(--superficie);border:4px solid var(--violeta)}
.hito.hoy{background:var(--morado);border-color:var(--morado);color:#fff}
.hito.hoy::before{background:var(--fucsia);border-color:var(--fucsia)}
.hito.hoy .fecha,.hito.hoy .lugar{color:#F1E6F5}
.hito.hoy .boton{background:#fff;color:#5A2A82;box-shadow:none;justify-self:start}
.hito .fecha{font-weight:800;font-size:14px;color:var(--acento);font-variant-numeric:tabular-nums;display:grid;gap:8px;align-content:start}
.hito .fecha .etiqueta{justify-self:start}
.hito h3{font-size:22px}
.hito .lugar{font-weight:700;color:var(--texto-suave);font-size:15px;margin-top:2px}
.hito-cuerpo{display:grid;gap:10px}
.hito-cuerpo > p{font-size:15.5px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
@media (max-width:760px){.hito{grid-template-columns:1fr;padding:20px}.linea{padding-left:34px}.linea::before{left:9px}.hito::before{left:-33px}}

/* ---------- Formación ---------- */
.formacion{overflow:hidden}
.formacion .trama{left:-10px;bottom:0;width:240px;height:156px;background:var(--lila-peonia);opacity:.9}
:root[data-theme="dark"] .formacion .trama{background:#45374F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .formacion .trama{background:#45374F}}
.columnas{display:grid;grid-template-columns:1fr 1fr;gap:26px;position:relative}
.columna{background:var(--superficie);border-radius:var(--r-lg);padding:30px;display:grid;gap:4px;align-content:start}
.columna-cabeza{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.columna-cabeza h3{font-size:26px}
.estudio{display:grid;grid-template-columns:1fr auto;gap:4px 14px;padding-block:15px;position:relative}
.estudio + .estudio::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background-image:radial-gradient(circle,var(--borde-control) 1.6px,transparent 2px);background-size:12px 4px;background-repeat:repeat-x;opacity:.7}
.estudio h4{font-weight:500;font-size:19px;line-height:1.25}
.estudio p{font-size:14.5px;color:var(--texto-suave);grid-column:1}
.estudio .anio{font-weight:800;font-size:14px;color:var(--acento);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.estado{font-size:12px;font-weight:800;padding:3px 10px;border-radius:var(--r-pill);background:var(--superficie-rosa);color:var(--acento-fucsia);justify-self:end;align-self:start;white-space:nowrap}
.estado.listo{background:var(--superficie-suave);color:var(--acento)}
.barra-avance{grid-column:1/-1;height:8px;border-radius:var(--r-pill);background:var(--superficie-suave);overflow:hidden;margin-top:6px}
.barra-avance span{display:block;height:100%;width:var(--v);border-radius:inherit;background:var(--fucsia) repeating-linear-gradient(115deg,rgba(252,233,241,.5) 0 5px,transparent 5px 12px)}
@media (max-width:860px){.columnas{grid-template-columns:1fr}.columna{padding:24px 20px}}

/* ---------- Cita ---------- */
.cita{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;max-width:920px;margin-inline:auto}
.cita > svg{width:92px;height:82px}
.cita blockquote{margin:0;font-family:var(--f-titulo);font-weight:500;font-size:clamp(24px,3vw,32px);line-height:1.3;color:var(--texto);text-wrap:balance}
.cita blockquote em{font-style:normal;color:var(--acento)}
.cita .nota{font-size:28px;margin-top:10px;display:block}
@media (max-width:600px){.cita{grid-template-columns:1fr}.cita > svg{width:64px;height:58px}}

/* ---------- Contacto ---------- */
.contacto{padding-block:24px 88px}
.panel{background:var(--panel-oscuro);color:#fff;border-radius:36px;padding:56px;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;position:relative;overflow:hidden}
.panel .trama{right:-10px;top:-10px;width:260px;height:180px;background:rgba(255,255,255,.12)}
.panel h2{font-size:clamp(32px,4.4vw,48px);color:#fff}
.panel .nota{color:#F9C6DD;font-size:32px}
.panel-texto{display:grid;gap:18px;align-content:start;position:relative}
.panel-texto p{font-size:18px;color:#F1E6F5;max-width:46ch}
.panel-texto img{width:112px;height:auto}
.datos{display:grid;gap:12px;position:relative;align-content:start}
.dato{background:rgba(255,255,255,.1);border-radius:var(--r-md);padding:14px 16px;display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;transition:background-color .2s}
.dato:hover{background:rgba(255,255,255,.16)}
.dato .ic-caja{width:40px;height:40px;border-radius:13px;background:rgba(255,255,255,.14);display:grid;place-items:center}
.dato .ic-caja svg{width:20px;height:20px}
.dato small{display:block;font-size:12px;font-weight:700;letter-spacing:.04em;color:#E6D4EE}
.dato a,.dato .valor{color:#fff;font-weight:800;font-size:16px;text-decoration:none;word-break:break-word}
.dato a:hover{text-decoration:underline}
.copiar{font-size:13px;font-weight:800;border:0;border-radius:var(--r-pill);padding:7px 13px;background:#fff;color:#5A2A82;cursor:pointer;white-space:nowrap}
.panel .boton-principal{background:#fff;color:#5A2A82;justify-self:start;box-shadow:0 6px 0 -2px #F27AB3}
@media (max-width:900px){.panel{grid-template-columns:1fr;padding:36px 22px;border-radius:28px}}
@media (max-width:420px){.dato{grid-template-columns:1fr auto}.dato .ic-caja{display:none}}

/* Páginas simples (404 y gracias) */
.pagina-simple{min-height:100vh;display:grid;place-items:center;padding:32px 16px}
.pagina-simple .panel{grid-template-columns:1fr;max-width:620px;text-align:center;justify-items:center;gap:18px}
.pagina-simple .panel p{color:#F1E6F5;font-size:18px;max-width:40ch}
.pagina-simple h1{font-size:clamp(30px,6vw,44px);color:#fff;position:relative}
.pagina-simple img{width:130px;height:auto;position:relative}
.pagina-simple .nota{position:relative}

/* Formulario de contacto */
.panel-sub{font-size:16px!important;color:#F9C6DD!important}
.privado{display:flex;gap:10px;align-items:flex-start;font-size:14.5px!important;color:#E6D4EE!important;background:rgba(255,255,255,.1);border-radius:14px;padding:12px 14px}
.privado svg{width:18px;height:18px;flex-shrink:0;margin-top:2px}
.formulario{position:relative;display:grid;gap:14px;align-content:start;background:rgba(255,255,255,.1);border-radius:24px;padding:24px}
.campo{display:grid;gap:6px;position:relative}
.campo label{font-size:13px;font-weight:800;letter-spacing:.03em;color:#F1E6F5}
.formulario input[type="text"],.formulario input[type="email"],.formulario select,.formulario textarea{width:100%;font:inherit;font-size:16px;color:#221A26;background:#FFFFFF;border:2px solid transparent;border-radius:14px;padding:11px 14px;line-height:1.4;transition:border-color .2s,box-shadow .2s}
.formulario textarea{resize:vertical;min-height:120px}
.formulario select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235A2A82' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px;cursor:pointer}
.formulario input:focus,.formulario select:focus,.formulario textarea:focus{outline:none;border-color:#F27AB3;box-shadow:0 0 0 3px rgba(242,122,179,.35)}
.campo.con-error input,.campo.con-error textarea{border-color:#F27AB3}
.contador{justify-self:end;font-size:12px;color:#E6D4EE;font-variant-numeric:tabular-nums}
.trampa{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.acepto{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#F1E6F5;line-height:1.45;cursor:pointer}
.acepto input{width:20px;height:20px;margin:1px 0 0;accent-color:#CC2E78;flex-shrink:0}
.formulario .boton-principal{justify-self:start}
.formulario .boton-principal:disabled{opacity:.7;cursor:wait;transform:none}
.estado-envio{min-height:1.5em;font-weight:800;font-size:15px;color:#fff}
.estado-envio.bien{color:#C9F29B}
.estado-envio.mal{color:#FFC2DD}
@media (max-width:520px){.formulario{padding:18px 14px}}

footer{padding-block:30px 44px;color:var(--texto-suave);font-size:14px}
footer .envoltura{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:center}
footer .firma{display:flex;align-items:center;gap:10px}
footer svg{width:24px;height:22px}

/* Confeti */
#confeti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:80}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important}
}
