@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url(fuentes/plus-jakarta-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url(fuentes/plus-jakarta-sans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
/* Portada de despacho.dev: fachada del MINSA, próxima sesión con su portada y cuenta regresiva, mesas y línea de tiempo.
   construir.py agrega al final las reglas de cada sesión (.s-pptN con su lámina) y de cada mesa (.m1…). */
:root{
  --azul:#0a4da2; --azul-h:#06305f; --noche:#041a36; --cielo:#9cc3ee; --rojo:#C8102E; --linea:#dfe5ee;
  --f:'Plus Jakarta Sans',system-ui,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--noche)}
body{margin:0;background:var(--noche);color:#fff;font-family:var(--f);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;text-wrap:balance}
p,ul{margin:0}
.gut{padding-left:max(16px,env(safe-area-inset-left,0px),calc((100% - 1240px)/2));padding-right:max(16px,env(safe-area-inset-right,0px),calc((100% - 1240px)/2))}
.num{font-variant-numeric:tabular-nums}
.foco:focus-visible{outline:3px solid var(--rojo);outline-offset:3px}
.mono{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}

.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;font-size:11.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.chip.prox{background:#fde8eb;color:#a00d25}
.chip.prox::before{animation:late 1.6s ease-in-out infinite}
.chip.ok{background:#e3f1e8;color:#1d6b3d}
@keyframes late{50%{transform:scale(1.7);opacity:.45}}
@keyframes sube{from{transform:translateY(22px);opacity:.01}to{transform:none;opacity:1}}
@keyframes entraDer{from{transform:translateX(40px);opacity:.01}to{transform:none;opacity:1}}
@keyframes entraIzq{from{transform:translateX(-40px);opacity:.01}to{transform:none;opacity:1}}
@keyframes zoomLento{from{transform:scale(1.02)}to{transform:scale(1.12) translateX(-1.5%)}}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.09) translate(-1.5%,-1%)}}
@keyframes barra{from{transform:scaleX(0)}to{transform:none}}
@keyframes crece{from{transform:scaleY(.02)}to{transform:none}}
@keyframes brillo{from{transform:translateX(-120%) skewX(-18deg)}to{transform:translateX(260%) skewX(-18deg)}}

/* cuenta regresiva */
.cnt{display:flex;gap:8px;min-height:60px}
.cnt div{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0}
.cnt div+div{border-left:1px solid rgba(255,255,255,.16)}
.cnt b{display:block;font-weight:800;font-size:clamp(34px,4.4vw,60px);line-height:1;letter-spacing:-.03em}
.cnt span{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-top:7px;color:rgba(255,255,255,.65)}
.btn{position:relative;overflow:hidden;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 18px;border-radius:12px;background:#fff;color:var(--azul-h);font-weight:800;font-size:15px;transition:transform .3s var(--ease),background .3s}
.btn::after{content:"";position:absolute;inset:0 auto 0 0;width:40%;background:linear-gradient(90deg,transparent,rgba(156,195,238,.55),transparent);animation:brillo 3.6s 1.5s ease-in-out infinite}
.btn:hover{transform:translateY(-2px);background:var(--cielo)}
.btn .fl{color:var(--azul);font-size:18px;transition:transform .3s var(--ease)}
.btn:hover .fl{transform:translateX(4px)}

/* accesos a la encuesta */
.encl{position:relative;z-index:2;display:flex;flex-wrap:wrap;gap:8px}
.encl a{display:flex;align-items:center;gap:9px;padding:6px 13px 6px 6px;border-radius:13px;font-size:13px;font-weight:800;line-height:1.15;transition:transform .25s var(--ease)}
.encl a:hover{transform:translateY(-2px)}
.encl a small{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;opacity:.9}
.encl .gad{background:var(--azul);color:#fff;box-shadow:0 10px 22px -10px rgba(10,77,162,.8)}
.encl .res{background:#fff;color:var(--azul-h);box-shadow:inset 0 0 0 1px var(--linea)}
.encl .ola{position:relative;flex:none;width:34px;height:34px;border-radius:9px;overflow:hidden;background:var(--azul-h)}
.encl .ola i{position:absolute;left:0;bottom:0;width:200%;height:62%;background:var(--cielo);border-radius:40% 45% 0 0;animation:ola 4s linear infinite}
.encl .ola i+i{height:44%;background:#fff;animation-duration:2.8s}
@keyframes ola{to{transform:translateX(-50%)}}
.encl .vas{flex:none;display:flex;gap:3px;align-items:flex-end;width:34px;height:34px;padding:5px 7px;border-radius:9px;background:#e8eef7}
.encl .vas i{flex:1;height:100%;border-radius:3px 3px 2px 2px;background:var(--azul);transform-origin:bottom;animation:sube2 2.4s ease-in-out infinite alternate}
.encl .vas i:nth-child(2){animation-delay:-.8s;background:var(--rojo)}.encl .vas i:nth-child(3){animation-delay:-1.5s}
@keyframes sube2{from{transform:scaleY(.3)}to{transform:none}}
.encl .pt{width:7px;height:7px;border-radius:50%;background:var(--rojo);animation:late 1.6s infinite}

/* fachada */
.hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 44px;align-items:center;padding-block:116px 34px;overflow:hidden;min-height:min(100vh,860px)}
.foto{position:absolute;inset:0;z-index:-2;will-change:transform;background:url(fachada.webp) 62% 38%/cover no-repeat;animation:zoomLento 26s ease-in-out infinite alternate}
.velo{position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(4,26,54,.97) 0%,rgba(6,48,95,.9) 34%,rgba(10,77,162,.5) 66%,rgba(4,26,54,.4) 100%),linear-gradient(0deg,rgba(4,26,54,.97) 0%,rgba(4,26,54,0) 45%)}
.peru{position:absolute;left:0;top:0;bottom:0;width:7px;z-index:2;display:flex;flex-direction:column}
.peru i{flex:1;background:var(--rojo)}.peru i:nth-child(2){background:#fff}
.cab{position:absolute;top:26px;left:max(28px,env(safe-area-inset-left,0px),calc((100% - 1240px)/2));right:max(28px,env(safe-area-inset-right,0px),calc((100% - 1240px)/2));display:flex;justify-content:space-between;align-items:center;gap:16px;z-index:3}
.cab .logo{display:block;width:200px;height:auto;max-width:100%;border-radius:3px;background:#fff;box-shadow:0 0 0 6px #fff}
.cab nav{display:flex;gap:6px;font-size:13px;font-weight:700}
.cab nav a{padding:8px 12px;border-radius:9px;background:rgba(4,26,54,.55);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);transition:background .25s}
.cab nav a:hover{background:rgba(255,255,255,.2)}
.txt{display:flex;flex-direction:column;gap:18px;animation:sube .9s var(--ease) both}
.eyb{display:flex;align-items:center;gap:10px;color:var(--cielo)}
.eyb::before{content:"";width:34px;height:2px;background:var(--rojo)}
.hero h1{font-size:clamp(38px,5.6vw,76px);font-weight:800;line-height:.98;letter-spacing:-.035em}
.hero h1 em{font-style:normal;color:var(--cielo)}
.lead{max-width:46ch;font-size:17px;line-height:1.55;color:rgba(255,255,255,.82)}
.prx{display:flex;flex-direction:column;gap:12px;margin-top:6px;max-width:470px}
.prx h2{font-size:22px;font-weight:800;letter-spacing:-.015em;line-height:1.2}
.prx h2 small{display:block;color:var(--cielo);margin-bottom:6px}
.vidrio{background:rgba(6,30,62,.66);backdrop-filter:blur(12px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 30px 60px -30px rgba(0,0,0,.6)}
.escena{position:relative;padding-bottom:70px;animation:entraDer 1.1s .15s var(--ease) both}
.pantalla{display:block;position:relative;contain:paint;aspect-ratio:16/9;border-radius:16px;overflow:hidden;box-shadow:0 0 0 6px rgba(255,255,255,.08),0 50px 90px -40px rgba(0,0,0,.85),0 0 120px -20px rgba(156,195,238,.45);transform:rotate(-1.4deg);transition:transform .6s var(--ease)}
.pantalla:hover{transform:rotate(0) scale(1.01)}
.pantalla::before{content:"";position:absolute;inset:0;will-change:transform;background:var(--lam) center/cover;animation:kb 16s ease-in-out infinite alternate}
.pantalla::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,0) 32%)}
.reloj{position:absolute;left:-28px;right:28px;bottom:0;padding:16px 18px 14px;border-radius:18px}
.reloj .top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.reloj .fch{color:var(--cielo);font-size:11.5px}
.reloj.hoy .cnt b{color:#ff8a9b}

/* mesas */
.mesas{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:8px;padding:0;list-style:none}
.mz{--m:#9cc3ee;position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-content:center;align-items:center;gap:6px 14px;padding:18px 16px 16px;border-radius:14px;background:rgba(6,30,62,.86);contain:paint;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);overflow:hidden;animation:sube .7s var(--ease) both;transition:transform .35s var(--ease),background .35s}
.mz:nth-child(1){animation-delay:.4s}.mz:nth-child(2){animation-delay:.5s}.mz:nth-child(3){animation-delay:.6s}.mz:nth-child(4){animation-delay:.7s}.mz:nth-child(5){animation-delay:.8s}.mz:nth-child(n+6){animation-delay:.9s}
.mz::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--m);transform-origin:left;animation:barra 1s var(--ease) both;animation-delay:inherit}
.mz::after{content:"";position:absolute;right:-30px;bottom:-30px;width:90px;height:90px;border-radius:50%;background:var(--m);opacity:.16;transition:transform .5s var(--ease)}
.mz:hover{transform:translateY(-4px);background:rgba(10,40,80,.75)}
.mz:hover::after{transform:scale(1.5)}
.mz .k{display:flex;align-items:center;gap:8px;font-size:12px;color:rgba(255,255,255,.65)}
.mz .n{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:7px;background:var(--m);color:#041a36;font-weight:800;font-size:12px;letter-spacing:0}
.mz b{font-size:19px;font-weight:800;line-height:1.18;letter-spacing:-.01em;text-wrap:pretty}
.mz .ico{grid-row:1/3;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:#fff;overflow:hidden;box-shadow:0 0 0 3px var(--m),0 10px 22px -10px var(--m);transition:transform .45s var(--ease)}
.mz .ico img{width:64px;height:64px;object-fit:cover;transform:scale(1.08)}
.mz:hover .ico{transform:scale(1.08) rotate(-4deg)}
.mz .k,.mz b{grid-column:2}
.mz small{grid-column:1/-1}
.mz small{font-size:12px;line-height:1.35;color:rgba(255,255,255,.66)}

/* línea de tiempo: alterna izquierda y derecha */
.lista{position:relative;padding-block:40px 56px}
.lista .t{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:15px;font-weight:700;color:rgba(255,255,255,.78);margin-bottom:24px}
.lista .t span{color:var(--cielo);font-size:11.5px}
.tl{position:relative;display:flex;flex-direction:column;max-width:1040px;margin:0 auto}
.tl::before{content:"";position:absolute;left:50%;top:6px;bottom:6px;width:2px;margin-left:-1px;background:linear-gradient(var(--rojo) 0 var(--rojo-h,30%),var(--cielo) var(--rojo-h,30%));transform-origin:top;animation:crece 1.4s .2s var(--ease) both}
.it{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);align-items:center}
.it+.it{margin-top:-46px}
.it .nodo{grid-column:2;grid-row:1;justify-self:center;display:flex;flex-direction:column;align-items:center;padding:8px 0;background:var(--noche);z-index:1;line-height:1}
.it .nodo b{font-weight:800;font-size:30px;letter-spacing:-.02em}
.it .nodo span{color:var(--cielo);margin-top:5px;font-size:11px}
.it.next .nodo b{color:#ff6a80}
.it .caja{grid-row:1;display:flex;flex-direction:column;gap:10px;min-width:0}
.it.izq .caja{grid-column:1;animation:entraIzq .8s var(--ease) both}
.it.der .caja{grid-column:3;animation:entraDer .8s var(--ease) both}
.it:nth-child(2) .caja{animation-delay:.15s}.it:nth-child(3) .caja{animation-delay:.3s}.it:nth-child(n+4) .caja{animation-delay:.4s}
.tj{position:relative;contain:paint;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);border-radius:16px;overflow:hidden;background:#0a2647;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);transition:transform .45s var(--ease),box-shadow .45s}
.it.izq .tj{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.it.izq .tj .im{order:2}
.tj:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 1px rgba(156,195,238,.5),0 22px 36px -24px rgba(0,0,0,.8)}
.tj .im{background:var(--lam) center/cover no-repeat;min-height:150px;transition:transform .8s var(--ease)}
.tj:hover .im{transform:scale(1.07)}
.tj .bd{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:16px 18px}
.tj .dia{color:var(--cielo);font-size:11px}
.tj h4{font-size:16px;font-weight:700;line-height:1.25}
.tj .pie{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:12.5px;color:rgba(255,255,255,.6)}
.it.next .tj{box-shadow:inset 0 0 0 1px rgba(200,16,46,.6),0 0 0 4px rgba(200,16,46,.12)}
.it.izq .encl{justify-content:flex-end}
.pie-pag{padding-block:0 30px;font-size:12.5px;color:rgba(255,255,255,.5);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}

@media (max-width:980px){
  .hero{grid-template-columns:minmax(0,1fr);padding-top:100px;min-height:0}
  .mesas{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mesas .mz:last-child:nth-child(odd){grid-column:1/-1}
  .reloj{left:12px;right:12px}
  .pantalla{transform:none}
  .tl::before{left:7px;margin-left:0}
  .it{grid-template-columns:56px minmax(0,1fr)}
  .it+.it{margin-top:18px}
  .it .nodo{grid-column:1;justify-self:start;align-items:flex-start;padding:4px 0}
  .it .nodo b{font-size:22px}
  .it.izq .caja,.it.der .caja{grid-column:2}
  .it.izq .tj,.tj{grid-template-columns:minmax(0,1fr)}
  .it.izq .tj .im{order:0}
  .tj .im{min-height:0;aspect-ratio:16/7}
  .it.izq .encl{justify-content:flex-start}
}
@media (max-width:560px){
  .cab nav{display:none}
  .cab .logo{width:160px}
  .lead{font-size:15.5px}
  .mesas{grid-template-columns:minmax(0,1fr)}
  .mz{padding:12px 14px}
  .mz .ico{width:52px;height:52px}.mz .ico img{width:52px;height:52px}
  .mz b{font-size:18px}
  .mz small{flex-basis:100%}
  .escena{padding-bottom:0}
  .reloj{position:relative;left:0;right:0;margin-top:-30px}
  .cnt b{font-size:30px}
}
/* portada.js: .pausa cuando la fachada no se ve; .ligero en equipos modestos, ahorro de datos o si va lento */
.pausa,.pausa *,.pausa *::before,.pausa *::after{animation-play-state:paused!important}
.ligero .vidrio{backdrop-filter:none;background:rgba(6,30,62,.92)}
.ligero .foto,.ligero .pantalla::before,.ligero .btn::after,.ligero .encl .ola i,.ligero .encl .vas i{animation:none}
.ligero .foto,.ligero .pantalla::before{will-change:auto}
@media (prefers-reduced-transparency:reduce){.vidrio{backdrop-filter:none;background:rgba(6,30,62,.92)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.s-ppt2{--lam:url(ppt2-portada.webp)}
.s-ppt1{--lam:url(ppt1-portada.webp)}
.s-ppt3{--lam:url(ppt3-portada.webp)}
.mz.m1{--m:#2F6BFF}
.mz.m2{--m:#12B5A8}
.mz.m3{--m:#7C5CFF}
.mz.m4{--m:#F5B841}
.mz.m5{--m:#E2457A}
