@font-face{font-family:"Archivo";font-style:normal;font-weight:400 800;font-stretch:100%;font-display:swap;src:url("fonts/archivo-vietnamese.woff2") format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:"Archivo";font-style:normal;font-weight:400 800;font-stretch:100%;font-display:swap;src:url("fonts/archivo-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Archivo";font-style:normal;font-weight:400 800;font-stretch:100%;font-display:swap;src:url("fonts/archivo-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}

:root{
  color-scheme:light;
  --bg:#f3f2f2; --paper:#fbfaf9; --ink:#201e1d; --ink-2:#444141; --mute:#605d5d;
  --rule:#201e1d; --accent:#ec3013; --accent-600:#dd2b0f; --accent-700:#ae1800; --accent-100:#fff2ef;
  /* Escala de calor: del Pacífico (frío) a la alerta (caliente) */
  --l1:#1d7a8c; --l1-soft:#d9eef2;
  --l2:#e8a62f; --l2-soft:#fcefd2;
  --l3:#dd2b0f; --l3-soft:#ffe0d9;
  --l4:#7c1405; --l4-soft:#f1d4cd;
  --font:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --pad:clamp(20px,4vw,48px);
  --max:1240px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.55}
img,svg{display:block;max-width:100%}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3,h4{font-weight:800;letter-spacing:-.02em;line-height:1.05;text-wrap:balance}
p{text-wrap:pretty}
a{color:inherit;text-underline-offset:3px}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--pad)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}

/* ───────── Barra superior ───────── */
.top{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--ink) 94%,transparent);backdrop-filter:blur(10px);color:#f3f2f2;border-bottom:2px solid var(--ink)}
.top .wrap{display:flex;align-items:center;gap:20px;min-height:56px;flex-wrap:wrap;padding-block:8px}
.brand{font-weight:800;font-size:18px;letter-spacing:-.01em;text-decoration:none;margin-right:auto;display:flex;align-items:center;gap:10px}
.brand i{display:block;width:12px;height:12px;background:var(--accent)}
.top nav{display:flex;gap:22px;font-size:14px}
.top nav a{text-decoration:none;opacity:.85}
.top nav a:hover{opacity:1;color:#ff9783}
.meter-top{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.meter-top .bar{width:92px;height:8px;background:#444141;position:relative;overflow:hidden}
.meter-top .bar b{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,var(--l1),var(--l2),var(--l3));transition:width .5s}
@media (max-width:720px){.top nav{display:none}}

/* ───────── Héroe ───────── */
.hero{background:var(--ink);color:#f3f2f2;position:relative;overflow:hidden;border-bottom:2px solid var(--ink)}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(700px 420px at 85% 10%,color-mix(in srgb,var(--accent) 34%,transparent),transparent 70%),
  radial-gradient(600px 400px at 0% 100%,color-mix(in srgb,var(--l1) 38%,transparent),transparent 70%);pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center;padding-block:clamp(48px,8vw,104px)}
.hero h1{font-size:clamp(40px,6.4vw,84px);line-height:.95;letter-spacing:-.035em;margin:18px 0 22px}
.hero h1 em{font-style:normal;color:#ff7a5f}
.hero .lead{font-size:clamp(17px,1.6vw,20px);max-width:54ch;color:#d7d3d3}
.hero .lead+.lead{margin-top:12px}
.tag{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border:1.5px solid currentColor}
.tag::before{content:"";width:8px;height:8px;background:var(--accent);animation:pulse 2s infinite}
@keyframes pulse{50%{opacity:.25}}
.byline{margin-top:22px;font-size:15px;color:#d7d3d3;padding-left:14px;border-left:4px solid var(--accent);max-width:54ch}
.byline a{color:#fff;font-weight:600}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;font:inherit;font-weight:800;font-size:15px;line-height:1.2;padding:13px 18px;border:2px solid var(--ink);background:var(--accent-600);color:#fff;text-decoration:none;cursor:pointer;box-shadow:5px 5px 0 var(--ink);transition:transform .15s,box-shadow .15s,background .15s}
.btn:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink);background:var(--accent)}
.btn:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--ink)}
.btn svg{width:18px;height:18px;flex:none}
.btn.light{background:transparent;color:#f3f2f2;border-color:#f3f2f2;box-shadow:5px 5px 0 rgba(255,255,255,.28)}
.btn.light:hover{background:rgba(255,255,255,.1);box-shadow:7px 7px 0 rgba(255,255,255,.4)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:none;border-color:var(--ink)}
.btn.ghost:hover{background:color-mix(in srgb,var(--ink) 8%,transparent);box-shadow:none;transform:none}

.oni{border:2px solid #f3f2f2;background:rgba(255,255,255,.04);padding:18px 18px 12px}
.oni svg{width:100%;height:auto;overflow:visible}
.oni figcaption{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:#bab6b6;margin-top:8px}
.oni .bar-pos{fill:#ff5c3f}.oni .bar-neg{fill:#4fb3c6}.oni .bar-neu{fill:#7d7979}
.oni .bar{transform-box:fill-box;animation:grow .9s cubic-bezier(.2,.8,.2,1) both}
.oni .bar.up{transform-origin:bottom}.oni .bar.down{transform-origin:top}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.oni .thr{stroke:#f3f2f2;stroke-opacity:.55;stroke-dasharray:4 5}
.oni text{fill:#d7d3d3;font:600 11px var(--font)}

/* ───────── Escalera (resumen de progresividad) ───────── */
.route{padding-block:clamp(56px,8vw,96px);border-bottom:2px solid var(--ink)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,64px);align-items:end;margin-bottom:clamp(28px,4vw,48px)}
.sec-head h2{font-size:clamp(32px,4.6vw,58px);letter-spacing:-.03em}
.sec-head p{font-size:18px;color:var(--ink-2)}
.stairs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;align-items:end;border-bottom:2px solid var(--ink)}
.step{display:flex;flex-direction:column;justify-content:space-between;gap:20px;padding:20px 20px 22px;text-decoration:none;color:#fff;border:2px solid var(--ink);border-bottom:0;margin-left:-2px;transition:transform .2s,filter .2s;position:relative}
.step:first-child{margin-left:0}
.step:nth-child(1){min-height:210px;background:var(--l1)}
.step:nth-child(2){min-height:270px;background:var(--l2);color:var(--ink)}
.step:nth-child(3){min-height:330px;background:var(--l3)}
.step:nth-child(4){min-height:390px;background:var(--l4)}
.step:hover{transform:translateY(-6px);filter:brightness(1.05)}
.step .n{font-size:clamp(44px,6vw,80px);font-weight:800;line-height:.9;letter-spacing:-.04em}
.step .lv{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.step h3{font-size:clamp(17px,1.7vw,22px);margin-top:6px}
.step .collab{font-size:12px;font-weight:600;line-height:1.3;margin-top:10px;padding-top:8px;border-top:2px solid currentColor}
.step .go{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}
.how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:28px}
.how div{padding:16px 20px 16px 0;font-size:14px;color:var(--ink-2)}
.how b{display:block;color:var(--ink);font-size:15px;margin-bottom:2px}
@media (max-width:900px){
  .stairs{grid-template-columns:1fr;border-bottom:0}
  .step{min-height:0 !important;flex-direction:row;align-items:center;border-bottom:2px solid var(--ink);margin-left:0}
  .step:not(:first-child){margin-top:-2px}
  .step .n{font-size:48px}
  .step:nth-child(1){margin-right:60%}.step:nth-child(2){margin-right:40%}.step:nth-child(3){margin-right:20%}
  .step .go{display:none}
  .sec-head,.how{grid-template-columns:1fr}
}
@media (max-width:560px){.step:nth-child(n){margin-right:0}}

/* ───────── Estaciones ───────── */
.station{--c:var(--l1);--soft:var(--l1-soft);--on:#fff;border-bottom:2px solid var(--ink);scroll-margin-top:56px;background:var(--bg)}
.station[data-lv="2"]{--c:var(--l2);--soft:var(--l2-soft);--on:var(--ink)}
.station[data-lv="3"]{--c:var(--l3);--soft:var(--l3-soft)}
.station[data-lv="4"]{--c:var(--l4);--soft:var(--l4-soft)}
.band{background:var(--c);color:var(--on);border-bottom:2px solid var(--ink)}
.band .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:12px}
.band .eyebrow{display:flex;align-items:center;gap:14px}
.band .eyebrow strong{font-size:15px;letter-spacing:.14em}
.pips{display:inline-flex;gap:4px}
.pips i{width:22px;height:10px;border:2px solid currentColor;display:block}
.pips i.on{background:currentColor}
.st-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,5vw,72px);padding-block:clamp(40px,6vw,80px);align-items:center}
.station:nth-of-type(even) .st-visual{order:-1}
.st-num{position:absolute;right:calc(var(--pad));top:-.18em;font-size:clamp(120px,18vw,260px);font-weight:800;letter-spacing:-.06em;line-height:1;color:var(--c);opacity:.14;pointer-events:none;user-select:none}
.st-body{position:relative}
.st-body .k{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.st-body .k img,.st-body .k svg.ico{display:block;flex:none;width:64px;height:64px;background:var(--paper);border:2px solid var(--ink);padding:6px;box-shadow:4px 4px 0 var(--c)}
.st-body .pill{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;background:var(--c);color:var(--on)}
.st-body h3{font-size:clamp(28px,3.2vw,40px);letter-spacing:-.03em;margin-bottom:14px}
.st-body .desc{font-size:18px;color:var(--ink-2);max-width:56ch}
.collab-line{display:inline-block;font-size:14px;margin:0 0 14px;padding:6px 12px;border:2px solid var(--ink);background:var(--paper);border-left:8px solid var(--c)}
.learn{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:10px;max-width:58ch}
.learn li{display:grid;grid-template-columns:22px 1fr;gap:10px;font-size:15.5px}
.learn li::before{content:"";width:12px;height:12px;background:var(--c);margin-top:7px;border:2px solid var(--ink)}
.meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chip{font-size:12.5px;font-weight:600;padding:5px 10px;border:2px solid var(--ink);background:var(--paper)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;align-items:center}
.btn.c{background:var(--c);color:var(--on)}
.btn.c:hover{background:var(--c);filter:brightness(1.08)}
.done{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;cursor:pointer;margin-left:6px}
.done input{position:absolute;opacity:0;width:0;height:0}
.done .box{width:22px;height:22px;border:2px solid var(--ink);background:var(--paper);display:grid;place-items:center}
.done .box svg{width:14px;height:14px;opacity:0;stroke:#fff;fill:none;stroke-width:3.5}
.done input:checked + .box{background:var(--c)}
.done input:checked + .box svg{opacity:1}
.done input:focus-visible + .box{outline:3px solid var(--accent);outline-offset:3px}
.note{font-size:13px;color:var(--mute);margin-top:16px;max-width:60ch}
.note a{color:var(--accent-700)}

.st-visual{position:relative;border:2px solid var(--ink);background:var(--soft);box-shadow:10px 10px 0 var(--c);padding:clamp(16px,2.2vw,28px)}
.vis-title{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;display:flex;justify-content:space-between;gap:12px}
.vis-title span:last-child{color:var(--mute)}

/* V1 · rangos */
.ranks{display:grid;gap:0;border:2px solid var(--ink);background:var(--paper)}
.rank{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:14px;padding:14px 16px 14px calc(16px + var(--i) * 22px);border-bottom:2px solid var(--ink);background:color-mix(in srgb,var(--l1) calc(var(--i) * 9%),var(--paper))}
.rank:last-child{border-bottom:0}
.rank b{font-size:26px;font-weight:800;color:var(--l1);letter-spacing:-.04em}
.rank span{font-weight:800;font-size:18px}
.rank small{font-size:12px;font-weight:600;color:var(--mute)}
.stats3{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:18px;border:2px solid var(--ink);background:var(--paper)}
.stats3 div{padding:12px 14px;border-left:2px solid var(--ink)}
.stats3 div:first-child{border-left:0}
.stats3 b{display:block;font-size:30px;font-weight:800;letter-spacing:-.04em;line-height:1}
.stats3 small{font-size:12px;color:var(--mute);font-weight:600}

/* V2 · video */
.video{position:relative;aspect-ratio:16/9;border:2px solid var(--ink);background:var(--ink);overflow:hidden}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.poster{all:unset;box-sizing:border-box;position:absolute;inset:0;cursor:pointer;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;padding:clamp(14px,2vw,24px);background:
  repeating-linear-gradient(135deg,transparent 0 22px,rgba(255,255,255,.05) 22px 44px),
  radial-gradient(420px 260px at 80% 20%,color-mix(in srgb,var(--l2) 70%,transparent),transparent 70%),
  linear-gradient(160deg,#2d2b2b,#201e1d)}
.poster .play{position:absolute;left:50%;top:44%;translate:-50% -50%;width:clamp(64px,9vw,92px);aspect-ratio:1;background:var(--l2);border:2px solid var(--ink);display:grid;place-items:center;box-shadow:6px 6px 0 var(--ink);transition:transform .2s}
.poster:hover .play{transform:scale(1.08)}
.poster:focus-visible{outline:3px solid var(--accent);outline-offset:-6px}
.poster .play svg{width:40%;fill:var(--ink);margin-left:6%}
.poster strong{font-size:clamp(14px,1.6vw,18px);max-width:34ch;line-height:1.2}
.poster small{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#d7d3d3;font-weight:600}
.vid-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:13px;font-weight:600}


/* V3 · figura del artículo */
.st-visual.plain{border:0;background:none;box-shadow:none;padding:0}
.st-visual.plain{display:grid;gap:22px}
.st-visual.plain img{width:100%;height:auto;display:block}
.dash-card{display:block;text-decoration:none;color:var(--ink);border:2px solid var(--ink);background:var(--paper);box-shadow:8px 8px 0 var(--c);transition:transform .15s,box-shadow .15s}
.dash-card:hover{transform:translate(-2px,-2px);box-shadow:10px 10px 0 var(--c)}
.dash-cap{display:grid;gap:2px;padding:14px 16px;border-top:2px solid var(--ink);font-size:14px}
.dash-cap strong{font-size:16px;line-height:1.25}
.dash-cap span{color:var(--ink-2)}
.dash-cap em{font-style:normal;font-weight:800;color:var(--accent-700);margin-top:4px}
.art-fig{margin:0;max-width:78%;justify-self:end}

/* V4 · esquema olas de calor */
.heat{border:2px solid var(--ink);background:var(--paper);padding:14px 14px 8px}
.heat svg{width:100%;height:auto}
.heat text{font:600 11px var(--font);fill:var(--ink-2)}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:6px;font-size:12px;font-weight:600;color:var(--ink-2)}
.legend i{display:inline-block;width:14px;height:10px;margin-right:6px;vertical-align:-1px;border:1.5px solid var(--ink)}
.idx{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:14px;border:2px solid var(--ink);background:var(--paper)}
.idx div{padding:10px 12px;border-left:2px solid var(--ink)}
.idx div:first-child{border-left:0}
.idx b{display:block;font-size:20px;letter-spacing:-.02em}
.idx small{font-size:11.5px;color:var(--mute);font-weight:600;line-height:1.2;display:block}

@media (max-width:900px){
  .hero .wrap,.st-grid{grid-template-columns:1fr}
  .station:nth-of-type(even) .st-visual{order:0}
  .st-visual{box-shadow:6px 6px 0 var(--c)}
  .rank{padding-left:calc(14px + var(--i) * 12px)}
}

/* ───────── Cierre ───────── */
.summit{background:var(--accent-600);color:#fff;border-bottom:2px solid var(--ink)}
.summit .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(20px,4vw,64px);padding-block:clamp(48px,7vw,88px);align-items:end}
.summit h2{font-size:clamp(34px,5.4vw,68px);letter-spacing:-.035em;line-height:.98}
.summit p{font-size:18px;max-width:50ch}
.consult{grid-column:1/-1;border-top:2px solid #fff;padding-top:24px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(20px,4vw,64px);align-items:center}
.consult .cta-row{margin-top:0}
@media (max-width:900px){.consult{grid-template-columns:1fr}}
@media (max-width:900px){.summit .wrap{grid-template-columns:1fr}}
.partner{border-bottom:2px solid var(--ink);background:var(--paper)}
.partner .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,64px);padding-block:clamp(40px,6vw,72px);align-items:center}
.partner .eyebrow{color:var(--accent-700)}
.partner h2{font-size:clamp(34px,5vw,60px);letter-spacing:-.03em;margin-top:8px}
.partner p{font-size:18px;color:var(--ink-2)}
@media (max-width:900px){.partner .wrap{grid-template-columns:1fr}}
footer{background:var(--ink);color:#d7d3d3}
footer .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:28px;padding-block:44px 52px;font-size:14px}
footer h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:#9b9797;margin-bottom:10px}
footer a{color:#fff}
footer .who{font-size:20px;font-weight:800;color:#fff;text-decoration:none;display:block}
footer .who span{display:block;font-size:13px;font-weight:400;color:#ff9783}
footer p+p{margin-top:8px}

/* ───────── Movimiento ───────── */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
  .oni .bar,.tag::before{animation:none}
  .btn,.step{transition:none}
}
@media print{.top,.cta-row{display:none}.js .rv{opacity:1;transform:none}}
