/* ===========================================================
   "Plan Estratégico ARIFA" — deck styles
   Tema claro Rizoma (manual de marca):
   verde #289448 · cyan #1FACC0 · dorado #a97f14
   Antonio (display, uppercase) · Roboto (cuerpo) · IBM Plex Mono
   Lienzo fijo 1920×1080 · esquinas rectas
   Fases del ciclo: Preparación (gris) · Observar (verde) ·
   Orientar (cyan) · Decidir (dorado) · Actuar (tinta)
   =========================================================== */

@import url('https://fonts.googleapis.com/css2?family=Antonio:wght@600;700&family=Roboto:ital,wght@0,400;0,500;0,700;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --bg:#ffffff;
  --surface:#f4f7f5;
  --surface2:#eef3ef;
  --ink:#141715;
  --ink-dim:#505050;
  --ink-mute:#6d7570;
  --line:rgba(17,24,20,.10);
  --line-strong:rgba(17,24,20,.20);
  --green:#289448;
  --green-soft:#1e7c3c;
  --green-pale:#f0f9f3;
  --cyan:#1FACC0;
  --cyan-soft:#0e7d8d;
  --gold:#a97f14;
  --gold-pale:#faf5e8;

  /* fases del ciclo */
  --ph-prep:#6d7570;
  --ph-obs:#289448;
  --ph-ori:#0e7d8d;
  --ph-dec:#a97f14;
  --ph-act:#141715;

  --font-display:'Antonio','Arial Narrow',sans-serif;
  --font-sans:'Roboto',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;

  --type-title:80px;
  --type-subtitle:42px;
  --type-body:31px;
  --type-small:25px;
  --type-micro:22px;

  --pad-x:112px;
  --pad-y:84px;

  --shadow-card:0 1px 2px rgba(20,40,28,.05),0 12px 32px -14px rgba(20,40,28,.14);
  --ease:cubic-bezier(.22,.61,.36,1);

  --bg-topo:
    radial-gradient(ellipse at 85% -5%, rgba(31,172,192,.06), transparent 45%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='560' height='560' viewBox='0 0 560 560'%3E%3Cg fill='none' stroke='%23141715' stroke-opacity='0.045'%3E%3Ccircle cx='280' cy='280' r='60'/%3E%3Ccircle cx='285' cy='274' r='105'/%3E%3Ccircle cx='274' cy='288' r='150'/%3E%3Ccircle cx='290' cy='270' r='198'/%3E%3Ccircle cx='270' cy='292' r='246'/%3E%3C/g%3E%3C/svg%3E"),
    #ffffff;
}

*{box-sizing:border-box;border-radius:0;}

deck-stage:not(:defined){visibility:hidden;}
deck-stage{background:#0b0f0c;}

section{
  background:var(--bg-topo);
  color:var(--ink);
  font-family:var(--font-sans);
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
}

.frame{
  position:absolute;inset:0;
  padding:var(--pad-y) var(--pad-x);
  display:flex;flex-direction:column;
}

/* ---------- tipografía compartida ---------- */
.eyebrow{
  font-family:var(--font-display);font-weight:600;
  font-size:26px;color:var(--green);
  letter-spacing:.08em;text-transform:uppercase;
  display:flex;align-items:center;gap:16px;margin:0;
}
.eyebrow::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--green);flex:none;}

h1.title{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  font-size:var(--type-title);line-height:.98;letter-spacing:.005em;
  margin:0;text-wrap:balance;
}
h2.head{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  font-size:var(--type-subtitle);line-height:1.02;margin:0;
}
h1 em,h2 em,.grad-text{
  font-style:normal;font-family:inherit;
  background:linear-gradient(92deg,var(--green) 10%,var(--cyan) 90%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
p.body{
  font-size:var(--type-body);line-height:1.42;font-weight:400;
  color:var(--ink-dim);margin:0;max-width:46ch;text-wrap:pretty;
}
.lead{color:var(--ink);}
.mono{font-family:var(--font-mono);}
b{color:var(--ink);}

/* ---------- footer chrome ---------- */
.foot{
  position:absolute;left:var(--pad-x);right:var(--pad-x);bottom:44px;
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--font-mono);font-size:20px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);
}

/* ---------- animación de entrada ---------- */
.rise{opacity:1;}
@media (prefers-reduced-motion:no-preference){
  .anim-ready [data-deck-active] .rise{animation:rise .62s var(--ease) both;}
  .anim-ready [data-deck-active] .rise.d1{animation-delay:.06s;}
  .anim-ready [data-deck-active] .rise.d2{animation-delay:.13s;}
  .anim-ready [data-deck-active] .rise.d3{animation-delay:.2s;}
  .anim-ready [data-deck-active] .rise.d4{animation-delay:.27s;}
  .anim-ready [data-deck-active] .rise.d5{animation-delay:.34s;}
}
@keyframes rise{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}
@media print{
  .rise{opacity:1!important;transform:none!important;animation:none!important;}
}

/* ---------- flood (dividers / cierre) ---------- */
.flood{background:linear-gradient(120deg,var(--green) 0%,#1e8a44 55%,var(--cyan-soft) 130%);color:#fff;}
.flood .eyebrow{color:#eafff1;}
.flood .eyebrow::before{background:#eafff1;}
.flood p.body{color:rgba(255,255,255,.82);}
.flood .foot{color:rgba(255,255,255,.6);}

/* =========================================================
   PALABRA CLAVE — módulo glosario (presente en cada slide)
   ========================================================= */
.kw-card{
  border:1.5px solid var(--line-strong);border-left:5px solid var(--green);
  background:var(--bg);box-shadow:var(--shadow-card);
  padding:26px 30px;display:flex;flex-direction:column;gap:8px;
}
.kw-tag{font-family:var(--font-mono);font-size:15px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);}
.kw-term{font-family:var(--font-display);font-weight:700;font-size:36px;line-height:1;text-transform:uppercase;color:var(--ink);}
.kw-term .kw-gram{font-family:var(--font-mono);font-size:16px;font-weight:400;text-transform:none;letter-spacing:.04em;color:var(--ink-mute);margin-left:12px;font-style:italic;}
.kw-def{font-size:21px;line-height:1.38;color:var(--ink-dim);margin:2px 0 0;}
.kw-def b{color:var(--ink);}
/* variante compacta anclada abajo en slides de contenido general */
.kw-dock{
  position:absolute;left:var(--pad-x);right:var(--pad-x);bottom:96px;
  display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:baseline;
  border-top:2.5px solid var(--green);padding-top:18px;
}
.kw-dock .kd-term{font-family:var(--font-display);font-weight:700;font-size:32px;text-transform:uppercase;white-space:nowrap;}
.kw-dock .kd-term::before{content:"palabra clave · ";font-family:var(--font-mono);font-size:14px;font-weight:400;letter-spacing:.18em;color:var(--ink-mute);display:block;margin-bottom:6px;}
.kw-dock .kd-def{font-size:21px;line-height:1.36;color:var(--ink-dim);max-width:110ch;align-self:end;}
.kw-dock .kd-def b{color:var(--ink);}

/* =========================================================
   PORTADA
   ========================================================= */
.cover{justify-content:space-between;}
.cover .toprow{display:flex;justify-content:space-between;align-items:flex-start;}
.brand-tag{font-family:var(--font-mono);font-weight:600;font-size:24px;letter-spacing:.4em;color:var(--green);writing-mode:vertical-rl;}
.cover-title{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  font-size:150px;line-height:.92;margin:0;max-width:13ch;color:var(--ink);
}
.cover-sub{font-size:33px;color:var(--ink-dim);max-width:52ch;line-height:1.34;margin-top:32px;}
.cover-meta{display:flex;gap:54px;margin-top:8px;}
.cover-meta .m{font-family:var(--font-mono);font-size:20px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);}
.cover-meta .m b{display:block;color:var(--ink);font-weight:500;margin-top:8px;font-size:24px;letter-spacing:.02em;text-transform:none;}
/* anillo decorativo de portada */
.cover-ring{position:absolute;right:-140px;top:50%;transform:translateY(-50%);width:760px;height:760px;opacity:.6;pointer-events:none;}
.cover-ring .cr-seg{fill:none;stroke-width:10;stroke-linecap:butt;}

/* =========================================================
   STATEMENT (punto de partida / cierre)
   ========================================================= */
.statement{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  font-size:74px;line-height:1.03;margin:0;max-width:24ch;
}
.statement em{font-style:normal;background:linear-gradient(92deg,var(--green) 10%,var(--cyan) 90%);-webkit-background-clip:text;background-clip:text;color:transparent;}
.chips{display:flex;gap:22px;margin-top:52px;flex-wrap:wrap;}
.chip{
  border:1.5px solid var(--line-strong);background:var(--bg);box-shadow:var(--shadow-card);
  padding:24px 30px;display:flex;flex-direction:column;gap:8px;max-width:480px;flex:1;
}
.chip .ch-n{font-family:var(--font-mono);font-size:17px;letter-spacing:.14em;text-transform:uppercase;color:var(--green);font-weight:600;}
.chip .ch-t{font-size:24px;line-height:1.34;color:var(--ink-dim);}
.chip .ch-t b{color:var(--ink);}

/* =========================================================
   OBJETIVO — stats
   ========================================================= */
.obj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:56px;}
.obj{border-top:3px solid var(--green);padding-top:22px;display:flex;flex-direction:column;gap:10px;}
.obj .on{font-family:var(--font-display);font-weight:700;font-size:86px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;}
.obj .on small{font-size:40px;color:var(--ink-mute);font-weight:600;}
.obj .ol{font-family:var(--font-mono);font-size:19px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);font-weight:600;}
.obj .od{font-size:22px;line-height:1.36;color:var(--ink-dim);}
.obj-quote{
  margin-top:48px;border-left:4px solid var(--green);padding:8px 0 8px 30px;
  font-size:30px;line-height:1.4;color:var(--ink);font-style:italic;max-width:66ch;
}

/* =========================================================
   EL CICLO — hub interactivo
   ========================================================= */
.cyc-wrap{display:grid;grid-template-columns:900px 1fr;gap:64px;flex:1;align-items:center;margin-top:-10px;}
.cyc-svg{width:100%;height:auto;overflow:visible;}
.cyc-base{fill:none;stroke:var(--line);stroke-width:3;}
.cyc-arc{fill:none;stroke-width:14;stroke-linecap:round;}
.cyc-arc.prep{stroke:var(--ph-prep);opacity:.55;}
.cyc-arc.obs{stroke:var(--ph-obs);}
.cyc-arc.ori{stroke:var(--ph-ori);}
.cyc-arc.dec{stroke:var(--ph-dec);}
.cyc-arc.act{stroke:var(--ph-act);}
.cyc-chev{fill:#fff;}
.cyc-phlbl{font-family:var(--font-mono);font-size:22px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;}
.cyc-phlbl.prep{fill:var(--ph-prep);}
.cyc-phlbl.obs{fill:var(--ph-obs);}
.cyc-phlbl.ori{fill:var(--ph-ori);}
.cyc-phlbl.dec{fill:var(--ph-dec);}
.cyc-phlbl.act{fill:var(--ph-act);}
.cyc-node{cursor:pointer;outline:none;}
.cyc-node .nc{fill:var(--bg);stroke:var(--line-strong);stroke-width:2.5;transition:stroke .25s var(--ease),fill .25s var(--ease);}
.cyc-node .nn{font-family:var(--font-display);font-weight:700;font-size:40px;fill:var(--ink);transition:fill .25s var(--ease);}
.cyc-node .nt{font-family:var(--font-sans);font-weight:500;font-size:21px;fill:var(--ink-dim);}
.cyc-node:hover .nc,.cyc-node:focus-visible .nc{stroke:var(--green);stroke-width:4;fill:var(--green-pale);}
.cyc-node:hover .nn,.cyc-node:focus-visible .nn{fill:var(--green-soft);}
.cyc-center{text-anchor:middle;}
.cyc-center .cc-big{font-family:var(--font-display);font-weight:700;font-size:64px;fill:var(--ink);text-transform:uppercase;}
.cyc-center .cc-sub{font-family:var(--font-mono);font-size:22px;letter-spacing:.14em;fill:var(--ink-mute);text-transform:uppercase;}
.cyc-side{display:flex;flex-direction:column;gap:28px;}
.cyc-side .cy-lead{font-size:29px;line-height:1.42;color:var(--ink-dim);}
.cyc-side .cy-lead b{color:var(--ink);}
.cyc-legend{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line-strong);}
.cyc-legend .lg{display:grid;grid-template-columns:26px 190px 1fr;gap:18px;align-items:baseline;padding:15px 4px;border-bottom:1px solid var(--line);}
.cyc-legend .lg .dot{width:16px;height:16px;border-radius:50%;align-self:center;}
.cyc-legend .lg .ln{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:26px;}
.cyc-legend .lg .ld{font-size:20px;color:var(--ink-dim);line-height:1.3;}
.cyc-hint{font-family:var(--font-mono);font-size:17px;letter-spacing:.08em;color:var(--ink-mute);text-transform:uppercase;}

/* dibujo de arcos y aparición de nodos al entrar */
@media (prefers-reduced-motion:no-preference){
  .anim-ready [data-deck-active] .cyc-arc{stroke-dasharray:640;stroke-dashoffset:640;animation:arcdraw 1s var(--ease) forwards;}
  .anim-ready [data-deck-active] .cyc-arc.prep{animation-delay:.05s;}
  .anim-ready [data-deck-active] .cyc-arc.obs{animation-delay:.25s;}
  .anim-ready [data-deck-active] .cyc-arc.ori{animation-delay:.5s;}
  .anim-ready [data-deck-active] .cyc-arc.dec{animation-delay:.75s;}
  .anim-ready [data-deck-active] .cyc-arc.act{animation-delay:.95s;}
  .anim-ready [data-deck-active] .cyc-node{animation:nodepop .45s var(--ease) both;}
  .anim-ready [data-deck-active] .cyc-node:nth-of-type(1){animation-delay:.15s;}
  .anim-ready [data-deck-active] .cyc-node:nth-of-type(2){animation-delay:.3s;}
  .anim-ready [data-deck-active] .cyc-node:nth-of-type(3){animation-delay:.45s;}
  .anim-ready [data-deck-active] .cyc-node:nth-of-type(4){animation-delay:.6s;}
  .anim-ready [data-deck-active] .cyc-node:nth-of-type(5){animation-delay:.75s;}
  .anim-ready [data-deck-active] .cyc-node:nth-of-type(6){animation-delay:.9s;}
  .anim-ready [data-deck-active] .cyc-node:nth-of-type(7){animation-delay:1.05s;}
}
@keyframes arcdraw{to{stroke-dashoffset:0;}}
@keyframes nodepop{from{opacity:0;transform:scale(.6);transform-origin:center;transform-box:fill-box;}to{opacity:1;transform:scale(1);transform-origin:center;transform-box:fill-box;}}
@media print{
  .cyc-arc{stroke-dasharray:none!important;stroke-dashoffset:0!important;animation:none!important;}
  .cyc-node{opacity:1!important;animation:none!important;}
}

/* =========================================================
   CÓMO FUNCIONA — mecánica + tabla de sesiones
   ========================================================= */
.mec-grid{display:grid;grid-template-columns:500px 1fr;gap:56px;flex:1;margin-top:32px;align-content:start;}
.mec-facts{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line-strong);}
.mec-fact{display:grid;grid-template-columns:118px 1fr;gap:20px;padding:14px 4px;border-bottom:1px solid var(--line);align-items:baseline;}
.mec-fact .mf-n{font-family:var(--font-display);font-weight:700;font-size:36px;line-height:1;color:var(--green);white-space:nowrap;}
.mec-fact .mf-n small{font-size:19px;color:var(--ink-mute);}
.mec-fact .mf-t{font-size:19px;line-height:1.34;color:var(--ink-dim);}
.mec-fact .mf-t b{color:var(--ink);}
.ses-table{display:flex;flex-direction:column;border-top:1px solid var(--line-strong);}
.ses-row{
  display:grid;grid-template-columns:74px 380px 200px 1fr;gap:24px;align-items:center;
  padding:14px 8px;border-bottom:1px solid var(--line);
  cursor:pointer;transition:background .25s var(--ease),padding .25s var(--ease);
  text-align:left;background:none;border-left:none;border-right:none;border-top:none;
  color:inherit;font-family:inherit;width:100%;font-size:inherit;
}
.ses-row:hover{background:rgba(40,148,72,.06);padding-left:22px;}
.ses-row .sr-n{font-family:var(--font-mono);font-size:26px;font-weight:600;}
.ses-row .sr-t{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:25px;line-height:1.05;}
.ses-row:hover .sr-t{color:var(--green-soft);}
.ses-row .sr-f{font-family:var(--font-mono);font-size:16px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;}
.ses-row .sr-r{font-size:19px;color:var(--ink-dim);line-height:1.28;}
.ph-c-prep{color:var(--ph-prep);}
.ph-c-obs{color:var(--ph-obs);}
.ph-c-ori{color:var(--ph-ori);}
.ph-c-dec{color:var(--ph-dec);}
.ph-c-act{color:var(--ph-act);}

/* =========================================================
   REGLAS DEL JUEGO
   ========================================================= */
.rules-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;flex:1;align-content:center;margin-top:26px;}
.rule{
  border:1.5px solid var(--line-strong);background:var(--bg);box-shadow:var(--shadow-card);
  padding:34px 32px;display:flex;flex-direction:column;gap:14px;
  transition:transform .3s var(--ease),border-color .3s;
}
.rule:hover{transform:translateY(-5px);border-color:var(--green);}
.rule .rn{font-family:var(--font-mono);font-size:30px;color:var(--green);font-weight:600;line-height:1;}
.rule h3{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:29px;margin:0;line-height:1.06;}
.rule p{font-size:20px;line-height:1.36;color:var(--ink-dim);margin:0;}
.rule p b{color:var(--ink);}

/* =========================================================
   SESIONES — plantilla
   ========================================================= */
.ses-top{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;}
.ses-title{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  font-size:66px;line-height:.98;margin:18px 0 0;max-width:20ch;
}
.ses-meta{display:flex;gap:14px;margin-top:22px;flex-wrap:wrap;}
.ses-badge{
  font-family:var(--font-mono);font-size:17px;letter-spacing:.1em;text-transform:uppercase;
  padding:9px 16px;border:1.5px solid var(--line-strong);color:var(--ink-dim);font-weight:500;
}
.ses-badge.ph{color:#fff;border:none;font-weight:600;}
.ses-badge.ph-prep{background:var(--ph-prep);}
.ses-badge.ph-obs{background:var(--ph-obs);}
.ses-badge.ph-ori{background:var(--ph-ori);}
.ses-badge.ph-dec{background:var(--ph-dec);}
.ses-badge.ph-act{background:var(--ph-act);}
.minicyc{flex:none;width:190px;height:190px;}
.minicyc svg{width:100%;height:100%;overflow:visible;}
.minicyc .m-ring{fill:none;stroke:var(--line-strong);stroke-width:4;}
.minicyc .m-dot{fill:#cfd8d1;}
.minicyc .m-dot.on{fill:var(--green);}
.minicyc .m-lbl{font-family:var(--font-display);font-size:52px;font-weight:700;fill:var(--ink);text-anchor:middle;}
.minicyc .m-sub{font-family:var(--font-mono);font-size:20px;fill:var(--ink-mute);text-anchor:middle;letter-spacing:.12em;text-transform:uppercase;}
@media (prefers-reduced-motion:no-preference){
  .anim-ready [data-deck-active] .minicyc .m-dot.on{animation:dotpulse 1.1s var(--ease) 1;}
}
@keyframes dotpulse{0%{r:14;}40%{r:22;}100%{r:14;}}

.ses-grid{display:grid;grid-template-columns:1fr 1.12fr;gap:52px;flex:1;margin-top:34px;align-content:start;}
.ses-h{
  font-family:var(--font-mono);font-size:17px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-mute);margin:0 0 14px;font-weight:600;
  display:flex;align-items:center;gap:14px;
}
.ses-h::after{content:"";flex:1;border-top:1px solid var(--line-strong);}
.ses-how{font-size:24px;line-height:1.44;color:var(--ink-dim);margin:0 0 34px;}
.ses-how b{color:var(--ink);}
.ses-exp{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.ses-exp li{
  position:relative;display:block;padding:13px 0 13px 42px;
  border-bottom:1px solid var(--line);font-size:22px;line-height:1.36;color:var(--ink-dim);
}
.ses-exp li::before{content:"→";position:absolute;left:0;top:13px;color:var(--green);font-family:var(--font-mono);font-weight:600;}
.ses-exp li b{color:var(--ink);}

.res-card{
  border:2px solid var(--green);border-top:8px solid var(--green);
  background:var(--green-pale);box-shadow:var(--shadow-card);
  padding:30px 34px;display:flex;flex-direction:column;gap:14px;
}
.res-card .res-tag{
  font-family:var(--font-mono);font-size:16px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--green-soft);font-weight:600;display:flex;align-items:center;gap:12px;
}
.res-card .res-tag::before{content:"✓";font-size:20px;}
.res-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.res-card li{font-size:23px;line-height:1.34;color:var(--ink);padding-left:26px;position:relative;}
.res-card li::before{content:"";position:absolute;left:0;top:.52em;width:10px;height:10px;background:var(--green);}
.res-card li b{color:var(--green-soft);}
.ses-bottom{display:grid;grid-template-columns:1.15fr .85fr;gap:24px;margin-top:24px;}
.rule-card{
  border:1.5px solid var(--line-strong);background:var(--bg);box-shadow:var(--shadow-card);
  padding:24px 28px;display:flex;flex-direction:column;gap:10px;
}
.rule-card .rc-tag{font-family:var(--font-mono);font-size:15px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;}
.rule-card p{font-size:21px;line-height:1.4;color:var(--ink);margin:0;font-style:italic;}
.ses-comp{
  margin-top:20px;font-family:var(--font-mono);font-size:16px;color:var(--ink-mute);
  letter-spacing:.02em;line-height:1.5;
}
.ses-comp b{color:var(--ink-dim);font-weight:500;}

/* =========================================================
   INSTANTÁNEA VIVA
   ========================================================= */
.viva-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;flex:1;align-content:center;margin-top:20px;}
.viva{border-top:3px solid var(--cyan);padding-top:24px;display:flex;flex-direction:column;gap:14px;}
.viva .vt{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:32px;line-height:1.05;margin:0;}
.viva p{font-size:22px;line-height:1.42;color:var(--ink-dim);margin:0;}
.viva p b{color:var(--ink);}
.viva-band{
  background:var(--ink);color:#fff;padding:26px 36px;font-size:25px;line-height:1.38;
  display:flex;align-items:center;gap:26px;margin-top:10px;
}
.viva-band .vb-tag{font-family:var(--font-mono);font-size:16px;letter-spacing:.14em;text-transform:uppercase;color:#7ee59a;font-weight:600;white-space:nowrap;flex:none;}

/* =========================================================
   ENTREGABLES
   ========================================================= */
.del-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;flex:1;align-content:center;margin-top:20px;}
.del{
  border:1.5px solid var(--line-strong);background:var(--bg);box-shadow:var(--shadow-card);
  padding:32px 30px;display:flex;flex-direction:column;gap:12px;
  transition:transform .3s var(--ease),border-color .3s;
}
.del:hover{transform:translateY(-5px);border-color:var(--green);}
.del .dn{font-family:var(--font-mono);font-size:26px;color:var(--green);font-weight:600;line-height:1;}
.del h3{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:28px;margin:0;line-height:1.08;}
.del p{font-size:20px;line-height:1.36;color:var(--ink-dim);margin:0;}
.del .dtag{margin-top:auto;font-family:var(--font-mono);font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);}
.del.opt{border-style:dashed;background:var(--surface);}
.del.opt .dn{color:var(--cyan-soft);}

/* =========================================================
   ROLES
   ========================================================= */
.roles-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;flex:1;align-content:center;margin-top:26px;}
.role-col{border-top:3px solid var(--green);padding-top:26px;}
.role-col.consult{border-top-color:var(--cyan);}
.role-col h3{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:38px;margin:0 0 6px;}
.role-col .who{font-family:var(--font-mono);font-size:18px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:22px;}
.role-item{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:15px 0;border-bottom:1px solid var(--line);font-size:24px;line-height:1.38;color:var(--ink-dim);align-items:baseline;}
.role-item .ri{color:var(--green);font-family:var(--font-mono);font-weight:600;}
.role-col.consult .role-item .ri{color:var(--cyan-soft);}
.role-item b{color:var(--ink);}

/* =========================================================
   RESULTADOS ESPERADOS
   ========================================================= */
.out-list{display:flex;flex-direction:column;margin-top:36px;border-top:1px solid var(--line-strong);}
.out-row{
  display:grid;grid-template-columns:90px 1fr;gap:30px;align-items:baseline;
  padding:21px 8px;border-bottom:1px solid var(--line);
}
.out-row .on{font-family:var(--font-mono);font-size:26px;color:var(--green);font-weight:600;}
.out-row .ot{font-size:26px;line-height:1.38;color:var(--ink-dim);}
.out-row .ot b{color:var(--ink);}
.out-band{
  margin-top:30px;background:var(--ink);color:#fff;padding:26px 36px;
  font-size:24px;line-height:1.4;display:flex;gap:26px;align-items:center;
}
.out-band .ob-tag{font-family:var(--font-mono);font-size:16px;letter-spacing:.14em;text-transform:uppercase;color:#7ee59a;font-weight:600;white-space:nowrap;flex:none;}

/* =========================================================
   CIERRE
   ========================================================= */
.close-frase{
  font-family:var(--font-display);font-weight:700;text-transform:uppercase;
  font-size:84px;line-height:1;margin:26px 0 0;max-width:20ch;color:#fff;
}
.close-frase em{font-style:normal;color:#7ee59a;}
.close-next{margin-top:56px;display:flex;gap:22px;flex-wrap:wrap;}
.close-next .cn{
  border:1.5px solid rgba(255,255,255,.35);padding:22px 28px;max-width:500px;flex:1;
  display:flex;flex-direction:column;gap:8px;
}
.close-next .cn .cnt{font-family:var(--font-mono);font-size:16px;letter-spacing:.14em;text-transform:uppercase;color:#d9fbe6;font-weight:600;}
.close-next .cn .cnd{font-size:22px;line-height:1.38;color:rgba(255,255,255,.85);}
.close-next .cn .cnd b{color:#fff;}
.flood .kw-dock{border-top-color:rgba(255,255,255,.5);}
.flood .kw-dock .kd-term{color:#fff;}
.flood .kw-dock .kd-term::before{color:rgba(255,255,255,.6);}
.flood .kw-dock .kd-def{color:rgba(255,255,255,.85);}
.flood .kw-dock .kd-def b{color:#fff;}

/* helpers */
.spacer{flex:1;}
.mt-auto{margin-top:auto;}
