/* ================================================================
   WPA DIGITAL CAMPUS · SISTEMA DE DISEÑO v1 · FUENTE ÚNICA DE VERDAD VISUAL
   Extraído del shell APROBADO por Manny (3-jul-2026).
   LEY DE CONTINUIDAD VISUAL: toda página del campus importa ESTE archivo.
   Prohibido cualquier estilo local que contradiga estos tokens.
   Canon: LEY 2026-06-01 B · Sistema de Diseño v1 · ACTA 2026-07-03
   ================================================================ */
:root{
  --bg:#000;
  --ink:#f2ede1;
  --ink-2:rgba(242,237,225,.66);
  --ink-3:rgba(242,237,225,.4);
  --gold:#c9a84c;
  --gold-hot:#e8c45f;
  --gold-grad:linear-gradient(92deg,#fff6d2 0%,#f3d77c 32%,#e0c068 64%,#caa848 100%);
  --royal:#3f7fd1;
  --royal-hot:#6ea8f0;
  --royal-grad:linear-gradient(92deg,#cfe4ff 0%,#8db9f2 40%,#3f7fd1 100%);
  --call:#3dff9e;
  --call-deep:#1fbf72;
  --call-grad:linear-gradient(92deg,#d8ffe9 0%,#7dffc0 40%,#1fbf72 100%);
  --rule-soft:rgba(242,237,225,.1);
  --r:3px;
  --pad:22px;
  --nav-h:60px;
  --tab-h:64px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);
  font-family:'DM Sans',system-ui,sans-serif;font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased}
/* ESCALA TIPOGRÁFICA ÚNICA (auditoría 3-jul · proporción de APLICACIÓN aprobada)
   micro 11 · ui-s 12-13 · base 16 · fila 17 · sección 22 · portal 24-32 · cifras 26-34 · display 32-44 */
a{color:var(--gold);text-decoration:none}
img{display:block}
.mono{font-family:'DM Mono',monospace}
.gold-lum{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.royal-lum{background:var(--royal-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.call-lum{background:var(--call-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.eyebrow{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.34em;text-transform:uppercase}

/* ============ FONDO VIVO (aurora canónica: royal + oro + verde) ============ */
.aurora{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.aurora::before{content:'';position:absolute;inset:0;
  background:linear-gradient(166deg, rgba(63,127,209,.20) 0%, rgba(63,127,209,.10) 26%, rgba(63,127,209,.04) 46%, transparent 64%)}
.aurora i{position:absolute;border-radius:50%}
.aurora .a1{width:86vmax;height:64vmax;left:-24vmax;top:-22vmax;
  background:radial-gradient(closest-side, rgba(63,127,209,.36), rgba(63,127,209,.14) 45%, transparent 72%)}
.aurora .a2{width:56vmax;height:44vmax;right:-18vmax;top:20vh;
  background:radial-gradient(closest-side, rgba(201,168,76,.18), rgba(201,168,76,.07) 45%, transparent 72%)}
.aurora .a3{width:50vmax;height:38vmax;left:4vmax;bottom:-18vmax;
  background:radial-gradient(closest-side, rgba(31,191,114,.12), rgba(31,191,114,.05) 45%, transparent 72%)}
.vig{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(130% 130% at 50% 38%, transparent 52%, rgba(0,0,0,.68) 100%)}

/* ============ HEADER (identidad CENTRADA · ES/EN junto al perfil) ============ */
header{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--nav-h);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  column-gap:12px;padding:0 var(--pad);
  background:rgba(0,0,0,.82);backdrop-filter:blur(16px) saturate(1.15)}
.hleft{justify-self:start}
.hright{display:flex;align-items:center;gap:16px;justify-self:end}
.lang{display:flex;align-items:center;gap:7px;font-family:'DM Mono',monospace;
  font-size:13px;letter-spacing:.12em;user-select:none}
.lang .lg{cursor:pointer;color:var(--ink-3);transition:color .2s;padding:4px 2px}
.lang .lg.active{color:var(--gold-hot);font-weight:500}
.lang .lsep{color:var(--ink-3)}
header::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,rgba(63,127,209,.5),rgba(201,168,76,.55),rgba(31,191,114,.4))}
.brand{display:flex;align-items:center;gap:11px;min-width:0;justify-self:center}
.brand img{width:34px;height:34px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(232,196,95,.5))}
.brand .bn{font-family:'Oswald',sans-serif;font-weight:600;font-size:16px;letter-spacing:.34em;white-space:nowrap}
.brand .bt{display:none;font-family:'DM Mono',monospace;font-size:9.5px;letter-spacing:.3em;
  text-transform:uppercase;color:var(--ink-3);margin-top:2px;white-space:nowrap}
.avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,#2a2008,#0c0a05);
  font-family:'DM Mono',monospace;font-size:12px;color:var(--gold-hot);
  outline:1px solid rgba(232,196,95,.55);outline-offset:2px}

/* ============ NIVEL DEL ESTUDIANTE (bronce·plata·oro·platino·diamante) ============ */
.tier{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:20px;
  font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  white-space:nowrap;background:var(--tier-grad);
  box-shadow:0 8px 22px -8px var(--tier-glow)}
.tier .tg{width:7px;height:7px;border-radius:2px;transform:rotate(45deg);
  background:rgba(8,12,16,.8)}
.tier .tt{color:#0a0f14;font-weight:500}
.tier.bronce{--tier-grad:linear-gradient(92deg,#f2c9a6,#cd8f52 55%,#9c6a38);--tier-glow:rgba(205,143,82,.55)}
.tier.plata{--tier-grad:linear-gradient(92deg,#ffffff,#cfd6dd 50%,#9aa4af);--tier-glow:rgba(207,214,221,.5)}
.tier.oro{--tier-grad:var(--gold-grad);--tier-glow:rgba(232,196,95,.6)}
.tier.platino{--tier-grad:linear-gradient(92deg,#ffffff 0%,#eef1f4 30%,#c3ccd6 62%,#a3aeba 100%);--tier-glow:rgba(226,232,238,.55)}
.tier.diamante{--tier-grad:linear-gradient(92deg,#f2fbff 0%,#cfeaff 35%,#8fd0ff 70%,#56aef2 100%);--tier-glow:rgba(143,208,255,.6)}

/* ============ NAV DESKTOP ============ */
.dnav{display:none}

/* ============ TAB BAR MÓVIL ============ */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:50;height:calc(var(--tab-h) + env(safe-area-inset-bottom));
  padding:0 6px env(safe-area-inset-bottom);display:flex;
  background:rgba(0,0,0,.9);backdrop-filter:blur(18px)}
.tabbar::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,rgba(63,127,209,.4),rgba(201,168,76,.45),rgba(31,191,114,.35))}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  cursor:pointer;color:var(--ink-3);transition:color .2s}
.tab .tn{font-size:12px;letter-spacing:.06em;font-weight:500}
.tab .ti{width:5px;height:5px;border-radius:50%;background:transparent;transition:all .25s}
.tab.active{color:var(--ink)}
.tab.active .ti{background:var(--ac,var(--gold-hot));box-shadow:0 0 10px var(--ac,var(--gold-hot))}
.tab.active .tn{color:var(--ac,var(--gold-hot))}

/* ============ LIENZO ============ */
main{position:relative;z-index:1;padding:calc(var(--nav-h) + 18px) 0 calc(var(--tab-h) + 40px)}
.wrap{padding:0 var(--pad);max-width:1060px;margin:0 auto}
.view{display:none}
.view.on{display:block;animation:fade .5s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ============ HERO ============ */
.hero{padding:44px 0 34px}
.hero .eyebrow{display:block;margin-bottom:18px;color:var(--royal-hot)}
.hero h1{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(32px,5.5vw,44px);
  line-height:1.12;letter-spacing:-.005em;margin:0}
.hero .motto{font-family:'Playfair Display',serif;font-style:italic;font-weight:400;
  font-size:clamp(16px,2.4vw,19px);color:var(--ink-2);margin-top:14px;max-width:640px}
.hero .rule{width:88px;height:3px;background:linear-gradient(90deg,var(--royal),var(--gold-hot),var(--call-deep));
  border-radius:2px;margin-top:26px}

.cta{display:inline-flex;align-items:center;gap:12px;margin-top:30px;padding:17px 30px;
  border-radius:var(--r);cursor:pointer;background:var(--gold-grad);color:#0c0900;
  font-weight:700;font-size:16px;letter-spacing:.04em;
  box-shadow:0 16px 40px -12px rgba(232,196,95,.55);transition:transform .18s,box-shadow .25s;user-select:none}
.cta:hover{transform:translateY(-1px);box-shadow:0 22px 50px -12px rgba(232,196,95,.7)}
.cta:active{transform:scale(.985)}

/* pill EN VIVO */
.pill{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:20px;
  font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--call);background:rgba(61,255,158,.09);box-shadow:inset 0 0 0 1px rgba(61,255,158,.35)}
.pill .pdot{width:6px;height:6px;border-radius:50%;background:var(--call);box-shadow:0 0 8px var(--call)}

/* ============ CIFRAS ============ */
.stats{display:flex;margin-top:44px;padding:26px 0;border-top:1px solid var(--rule-soft);
  border-bottom:1px solid var(--rule-soft)}
.stat{flex:1;text-align:center}
.stat + .stat{border-left:1px solid var(--rule-soft)}
.stat .sv{font-family:'Playfair Display',serif;font-weight:600;font-size:clamp(26px,4.5vw,34px);line-height:1}
.stat .sv small{font-family:'DM Mono',monospace;font-size:13px;color:var(--ink-3);margin-left:3px}
.stat .sl{font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--ink-3);margin-top:10px}

/* ============ SECCIONES ============ */
.sec{margin-top:44px}
.sec-h{display:flex;align-items:baseline;gap:14px;margin-bottom:6px}
.sec-h h2{font-family:'Playfair Display',serif;font-weight:600;font-size:22px;margin:0}
.sec-h .more{margin-left:auto;font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.18em;
  color:var(--royal-hot);cursor:pointer;white-space:nowrap}
.sec-rule{height:2px;border-radius:1px;margin-bottom:6px;
  background:linear-gradient(90deg,var(--sc,var(--gold)) 0%,transparent 65%)}

.row{display:flex;align-items:center;gap:16px;padding:17px 2px;border-bottom:1px solid var(--rule-soft);
  cursor:pointer;transition:padding-left .22s}
.row:hover{padding-left:10px}
.row:last-child{border-bottom:0}
.row .rt{font-size:17px;font-weight:500}
.row .rd{font-family:'DM Mono',monospace;font-size:11.5px;color:var(--ink-3);margin-top:4px;letter-spacing:.05em}
.row .go{margin-left:auto;color:var(--rc,var(--gold));font-size:18px;transition:transform .2s}
.row:hover .go{transform:translateX(4px)}

.pil{padding:15px 2px;border-bottom:1px solid var(--rule-soft)}
.pil:last-child{border-bottom:0}
.pil .pl{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:9px}
.pil .pl b{font-weight:500;font-size:16px}
.pil .pl .mono{font-size:12.5px}
.bar{height:3px;border-radius:2px;background:rgba(242,237,225,.08)}
.bar i{display:block;height:100%;border-radius:2px}

/* ============ PORTALES CON COLOR ============ */
.portal{position:relative;display:block;padding:32px 20px;margin:0 -20px;border-radius:6px;
  cursor:pointer;overflow:hidden;transition:background .25s}
.portal + .portal{margin-top:6px}
.portal::before{content:'';position:absolute;inset:0;opacity:.5;transition:opacity .3s;
  background:radial-gradient(120% 160% at 0% 50%, var(--pc-bg) 0%, transparent 58%)}
.portal:hover::before{opacity:1}
.portal::after{content:'';position:absolute;left:0;top:14%;bottom:14%;width:3px;border-radius:2px;
  background:var(--pc);box-shadow:0 0 14px var(--pc)}
.portal .pm{position:relative;font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.32em;
  text-transform:uppercase;color:var(--pc)}
.portal .pt{position:relative;font-family:'Playfair Display',serif;font-weight:600;
  font-size:clamp(24px,4vw,32px);line-height:1.15;margin-top:8px}
.portal .pd{position:relative;font-size:16px;color:var(--ink-2);margin-top:9px;max-width:620px}
.portal .pa{position:absolute;right:20px;top:50%;transform:translateY(-50%);
  font-size:26px;color:var(--pc);opacity:.55;transition:opacity .25s,transform .25s}
.portal:hover .pa{opacity:1;transform:translateY(-50%) translateX(4px)}

/* ============ VISTA DE MÓDULO ============ */
.mhero{padding:44px 0 10px}
.mhero .eyebrow{display:block;margin-bottom:16px;color:var(--mc,var(--gold))}
.mhero h1{font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(32px,5.5vw,44px);line-height:1.12;margin:0}
.mhero .msub{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(16px,2.4vw,19px);
  color:var(--ink-2);margin-top:12px}
.mhero .rule{width:88px;height:3px;border-radius:2px;margin-top:24px;background:var(--mc,var(--gold))}
.mnote{margin-top:40px;padding-top:16px;border-top:1px solid var(--rule-soft);
  font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.06em;color:var(--ink-3);line-height:1.9}

footer{position:relative;z-index:1;padding:26px var(--pad) calc(var(--tab-h) + 30px);max-width:1060px;margin:0 auto}
footer .frule{height:1px;margin-bottom:18px;
  background:linear-gradient(90deg,rgba(63,127,209,.35),rgba(201,168,76,.4),rgba(31,191,114,.3))}
footer .ftx{font-family:'DM Mono',monospace;font-size:10.5px;letter-spacing:.18em;color:var(--ink-3);
  display:flex;gap:20px;flex-wrap:wrap}

/* ============ DESKTOP ============ */
@media (min-width:960px){
  :root{--pad:48px;--nav-h:124px}
  .tabbar{display:none}
  main{padding-bottom:60px}
  footer{padding-bottom:34px}
  header{grid-template-rows:auto auto;align-items:center;padding-top:20px}
  .hleft{grid-row:1}
  .brand{grid-row:1}
  .hright{grid-row:1}
  .brand img{width:48px;height:48px}
  .brand .bn{font-size:21px}
  .brand .bt{font-size:10px}
  .brand .bt{display:block}
  .brand .bwrap{display:flex;flex-direction:column}
  .dnav{display:flex;justify-content:center;gap:30px;grid-column:1 / -1;grid-row:2;
    width:100%;padding:16px 2px 0;margin-top:6px}
  .dnav .di{display:flex;align-items:baseline;gap:8px;cursor:pointer;padding-bottom:14px;
    position:relative;color:var(--ink-2);transition:color .2s}
    .dnav .di .dl{font-weight:500;font-size:15px;letter-spacing:.04em}
  .dnav .di::after{content:'';position:absolute;left:0;right:100%;bottom:-1px;height:2px;
    background:var(--dc,var(--gold-hot));transition:right .28s ease;box-shadow:0 0 10px var(--dc,var(--gold-hot))}
  .dnav .di:hover{color:var(--ink)}
  .dnav .di.active{color:var(--ink)}
  .dnav .di.active .dl{color:var(--dc,var(--gold-hot))}
  .dnav .di.active::after{right:0}
  .dnav .tier{margin-left:6px;align-self:center;margin-bottom:12px}
  .hero{padding:46px 0 34px}
  .g2{display:grid;grid-template-columns:1fr 1fr;gap:0 72px}
  .portal{padding:40px 26px;margin:0 -26px}
}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important}}
