/* Fortaleza Mexicana · Informe interactivo · estilos */
@font-face{font-family:'Cormorant SC';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/cormorant-sc-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant SC';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/cormorant-sc-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant SC';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/cormorant-sc-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/montserrat-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/montserrat-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/montserrat-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/montserrat-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format('woff2')}

:root{
  /* Fortaleza Mexicana: tinta, oro, crema y vino. Lienzo 16:9 de 192 x 108 rem que escala con la ventana;
     el lomo oscuro de la derecha es la navegación por capítulos. Un solo mundo visual, sin tema alterno. */
  --ink:#171512;--gold:#c39a64;--gold-hi:#f6e2bd;--cream:#e6d9c8;--brown:#9b6b3e;--deep:#6b4a2b;--wine:#63151a;
  --paper:#fcfbf9;--beige:#f6f1ea;--line:#e6d9c8;--dim:#8a7d6b;
  --disp:'Cormorant SC',Georgia,'Times New Roman',serif;
  --body:'Montserrat',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  --ease:cubic-bezier(.2,.8,.2,1);--rail:6.4rem;
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:min(.5208vw,.9259vh);height:100%}
body{height:100%;background:var(--ink);color:var(--ink);font-family:var(--body);overflow:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img{max-width:100%;display:block}
ul,ol{list-style:none}
:focus-visible{outline:.3rem solid var(--gold);outline-offset:.3rem}

/* ---------- escena ---------- */
#deck{position:absolute;inset:0}
.slide{position:absolute;inset:0;visibility:hidden;opacity:0;overflow:hidden;background:var(--paper);color:var(--ink)}
.slide.dark{background:var(--ink);color:var(--cream)}
.slide.dark::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70rem circle at var(--mx,50%) var(--my,35%),rgba(195,154,100,.16),transparent 70%)}
.slide.on{visibility:visible;opacity:1;z-index:2}
.slide.prev{visibility:visible;opacity:1;z-index:1}
.frame{position:absolute;left:50%;top:50%;width:192rem;height:108rem;transform:translate(-50%,-50%);
  padding:8.8rem 17.6rem 5.2rem 12.8rem;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:3rem}
.kicker{font:500 2.4rem/1.2 var(--mono);letter-spacing:.6rem;text-transform:uppercase;color:var(--brown)}
.title{font:700 6.4rem/1.1 var(--disp);margin-top:1.2rem;font-variant-numeric:lining-nums}
.rule{width:20rem;height:.5rem;background:var(--wine);margin-top:1.4rem}
.sub{font:400 2.5rem/1.3 var(--body);color:var(--deep);margin-top:1.6rem}
.body{min-height:0;position:relative}
.foot{display:flex;align-items:center;justify-content:space-between;gap:4rem;min-height:4.4rem}
.src{font:400 2.1rem/1.3 var(--body);color:var(--deep)}
.logos{display:flex;gap:2.8rem;align-items:center;flex:none}
.logos img{height:4rem;width:auto}

/* ---------- piezas ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:2rem;padding:3rem 3.4rem;position:relative;min-height:0}
.card.beige{background:var(--beige);border-color:transparent}
.card.ink{background:var(--ink);color:var(--cream);border-color:transparent}
.card.dash{background:var(--paper);border:2px dashed var(--wine)}
.card.ink::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 42%,rgba(246,226,189,.09) 50%,transparent 58%);background-size:320% 100%;animation:sheen 8s ease-in-out infinite}
@keyframes sheen{0%{background-position:130% 0}60%,100%{background-position:-60% 0}}
.lift:hover{translate:0 -.6rem;box-shadow:0 1.8rem 4rem rgba(23,21,18,.13);border-color:var(--gold)}
.mono{font:500 2.2rem/1.25 var(--mono);letter-spacing:.3rem;text-transform:uppercase;color:var(--brown)}
.mono.lc{text-transform:none;letter-spacing:.04rem}
.ink .mono,.dark .mono{color:var(--gold)}
.mono.wine{color:var(--wine)}
.h{font:700 3rem/1.2 var(--body)}
.h.sm{font-size:2.6rem}.h.lg{font-size:3.6rem}
.p{font:400 2.3rem/1.45 var(--body);color:var(--deep)}
.p.big{font-size:2.7rem}
.ink .p,.dark .p{color:var(--cream)}
.lead{font:500 3rem/1.4 var(--body);color:var(--ink)}
.num{font:700 7.2rem/1 var(--disp);font-variant-numeric:lining-nums tabular-nums;display:block}
.num.md{font-size:5.6rem}.num.lg{font-size:8rem}.num.xl{font-size:15rem}
.ink .num,.num.gold{color:var(--gold)}
.stmt{font:700 5.6rem/1.08 var(--disp)}
.stmt.sm{font-size:4.4rem}.stmt.wine{color:var(--wine);font-size:4.6rem}.stmt.gold{color:var(--gold)}
.pill{display:inline-block;align-self:flex-start;font:500 2rem/1.2 var(--mono);letter-spacing:.2rem;text-transform:uppercase;background:var(--ink);color:var(--cream);padding:.6rem 1.8rem;border-radius:3rem}
.pill.wine{background:var(--wine)}.pill.gold{background:var(--gold);color:var(--ink)}.pill.brown{background:var(--brown);color:#fff}
.gr{display:block;width:12rem;height:.3rem;background:var(--gold)}
.sp{flex:1}
.col{display:flex;flex-direction:column;gap:1.6rem}

/* ---------- entrada escalonada ---------- */
.js [data-a]{--dl:calc(var(--i,0)*55ms + 140ms);opacity:0;transform:translateY(2.8rem);
  transition:opacity .7s var(--ease) var(--dl),transform .9s var(--ease) var(--dl),translate .35s var(--ease),box-shadow .35s,border-color .35s,background-color .35s}
.js [data-a="fade"]{transform:none}
.js [data-a="left"]{transform:translateX(-5rem)}
.js [data-a="right"]{transform:translateX(5rem)}
.js [data-a="zoom"]{transform:scale(.86)}
.js [data-a="grow"]{opacity:1;transform:scaleX(0);transform-origin:left center}
.js .slide.in [data-a]{opacity:1;transform:none}
.js .slide.rst [data-a],.js .slide.rst .w>span{transition:none!important}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em .04em .16em;margin:-.08em -.04em -.16em}
.js .w>span{display:inline-block;transform:translateY(115%);transition:transform 1s var(--ease);transition-delay:calc(var(--wi)*70ms + 260ms)}
.js .slide.in .w>span{transform:none}

/* ---------- portada, divisiones y cierre ---------- */
.cover{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3rem;padding:8rem 12.8rem;text-align:center}
.cv-logo{width:62rem;aspect-ratio:900/325;-webkit-mask:url(../assets/fm_gold.png) center/contain no-repeat;mask:url(../assets/fm_gold.png) center/contain no-repeat;
  background:linear-gradient(100deg,var(--gold) 0%,var(--gold) 42%,var(--gold-hi) 50%,var(--gold) 58%,var(--gold) 100%);background-size:260% 100%;animation:foil 5.5s ease-in-out infinite}
@keyframes foil{0%{background-position:130% 0}55%,100%{background-position:-70% 0}}
.cv-rule{width:20rem;height:.3rem;background:var(--gold);transform-origin:center!important}
.cv-title{font:700 6rem/1.1 var(--disp);color:var(--cream)}
.cv-date{letter-spacing:.8rem;font-size:2.6rem}
.cv-start{display:inline-flex;align-items:center;gap:1.6rem;font:600 2.4rem/1 var(--body);color:var(--ink);background:var(--gold);padding:1.8rem 3.6rem;border-radius:4rem;margin-top:1.4rem}
.cv-start svg{width:2.6rem;height:2.6rem;transition:transform .3s var(--ease)}
.cv-start:hover{background:var(--gold-hi)}.cv-start:hover svg{transform:translateX(.6rem)}
.cv-keys{color:var(--dim)!important;font-size:2rem}
.cv-by{position:absolute;left:0;right:0;bottom:6rem;display:flex;gap:2rem;align-items:center;justify-content:center}
.cv-by img{height:5.2rem}
.dv .frame{display:block;padding:0}
.dv-num{position:absolute;right:20rem;top:50%;font:700 66rem/.8 var(--disp);color:transparent;-webkit-text-stroke:.14rem rgba(195,154,100,.34);
  transform:translate(calc(var(--px,0)*-3rem),calc(-52% + var(--py,0)*-2rem));font-variant-numeric:lining-nums;user-select:none;transition:transform .5s ease-out}
.dv-main{position:absolute;left:12.8rem;top:30rem;width:120rem}
.dv-t{font:700 11rem/1.05 var(--disp);color:var(--cream);margin-top:1.6rem}
.dv-rule{width:20rem;height:.3rem;background:var(--gold);margin:3rem 0}
.dv-p{font-size:3rem!important;max-width:90rem}
.arc{position:absolute;left:12.8rem;right:19.2rem;top:79rem;display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem}
.arc button{display:block;width:100%;text-align:left;padding:1rem 0}
.arc i{display:block;height:.3rem;background:#4a443b;margin-bottom:1.4rem;transition:background .3s}
.arc span{font:500 2.2rem/1.2 var(--mono);letter-spacing:.3rem;text-transform:uppercase;color:var(--dim);transition:color .3s}
.arc .done i{background:var(--cream)}.arc .done span{color:var(--cream)}
.arc .now i{background:var(--gold);height:.5rem;margin-bottom:1.2rem}.arc .now span{color:var(--gold)}
.arc button:hover span{color:var(--gold-hi)}.arc button:hover i{background:var(--gold-hi)}
.dv-foot{position:absolute;left:12.8rem;right:19.2rem;bottom:6.4rem;display:flex;justify-content:space-between;align-items:center}
.dv-foot img{height:6.4rem}.dv-foot img+img{height:5rem}

/* ---------- gráficas ---------- */
.chart{display:flex;flex-direction:column;gap:2rem}
.chart-h{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.seg{display:inline-flex;background:var(--beige);border-radius:3rem;padding:.5rem}
.seg button{font:600 2.1rem/1 var(--body);padding:1.1rem 2.2rem;border-radius:3rem;color:var(--deep);transition:background .3s,color .3s}
.seg button.on{background:var(--ink);color:var(--cream)}
.seg button:not(.on):hover{color:var(--ink)}
.hbars{display:flex;flex-direction:column;gap:1.2rem;flex:1;justify-content:space-around}
.hb{display:grid;grid-template-columns:var(--lw,30rem) 1fr;align-items:center;gap:2rem;border-radius:1.4rem;padding:.8rem 1.4rem;margin:0 -1.4rem;transition:background .3s;text-align:left;width:calc(100% + 2.8rem)}
.hb:hover,.hb.act{background:var(--beige)}
.hb-l b{display:block;font:700 2.5rem/1.2 var(--body)}
.hb-l span{display:block;font:500 2rem/1.3 var(--mono);color:var(--brown)}
.hb-t{position:relative;height:4.4rem;margin-right:17rem}
.hb-t i{position:absolute;left:0;top:0;bottom:0;width:var(--w,0%);min-width:.6rem;background:var(--ink);border-radius:.8rem;transition:width 1.1s var(--ease)}
.hb-t i.wine{background:var(--wine)}.hb-t i.gold{background:var(--gold)}.hb-t i.brown{background:var(--brown)}
.hb-v{position:absolute;left:calc(var(--w,0%) + 1.8rem);top:50%;transform:translateY(-50%);white-space:nowrap;font:700 4.4rem/1 var(--disp);font-variant-numeric:lining-nums tabular-nums;transition:left 1.1s var(--ease)}
.slide:not(.in) .hb-t{--w:0%!important}
.hbars.cmp{gap:.5rem}
.hbars.cmp .hb{padding:.3rem 1.4rem}
.hbars.cmp .hb-l b{font-size:2.1rem;font-weight:600}
.hbars.cmp .hb-t{height:2.8rem;margin-right:20rem}
.hbars.cmp .hb-v{font-size:3rem}
.vbars{display:flex;align-items:flex-end;gap:4rem;height:var(--h,30rem);border-bottom:2px solid var(--line);padding:0 2rem;margin-bottom:4.4rem}
.vb{flex:1;max-width:15rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative}
.vb i{display:block;width:100%;height:var(--hh);min-height:.8rem;background:var(--ink);border-radius:.8rem .8rem 0 0;transition:height 1.1s var(--ease)}
.vb.hl i{background:var(--wine)}.vb.hl b{color:var(--wine)}
.vb b{font:700 4.4rem/1 var(--disp);margin-bottom:.8rem;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.vb span{position:absolute;top:100%;margin-top:1.2rem;font:400 2.1rem/1.2 var(--body);color:var(--deep);white-space:nowrap}
.slide:not(.in) .vb i{height:0!important}
.ring{width:15rem;height:15rem;transform:rotate(-90deg);flex:none}
.ring circle{fill:none;stroke-width:10}
.ring .rt{stroke:rgba(195,154,100,.22)}
.ring .rv{stroke:var(--gold);stroke-linecap:round;stroke-dasharray:var(--p) 100;transition:stroke-dasharray 1.5s var(--ease) .45s}
.ring.wine .rv{stroke:var(--wine)}.ring.wine .rt{stroke:rgba(99,21,26,.14)}
.slide:not(.in) .ring .rv{stroke-dasharray:0 100}
.prog{height:1.4rem;border-radius:.7rem;background:var(--line);overflow:hidden}
.prog i{display:block;height:100%;width:var(--w);background:var(--ink);border-radius:.7rem;transition:width 1.4s var(--ease) .4s}
.slide:not(.in) .prog i{width:0}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:2.4rem}
.kpis.k3{grid-template-columns:repeat(3,1fr)}
.kpi{padding:2.2rem 3.2rem;display:flex;flex-direction:column;gap:.6rem}
.kpi .mono{color:var(--cream);font-size:2.4rem}

/* ---------- láminas ---------- */
.g-idea{display:grid;grid-template-columns:52rem 1fr;gap:3.2rem}
.idea-l{display:flex;flex-direction:column;gap:2.8rem;padding:4.8rem 4.4rem;border-radius:2.4rem}
.idea-r{display:grid;grid-template-rows:auto 1fr auto;gap:2rem;min-height:0}
.prin{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;gap:2rem;min-height:0}
.prin .card{display:flex;flex-direction:column;justify-content:space-between;padding:2.4rem 3rem;overflow:hidden}
.prin b{font:700 3.8rem/1.05 var(--disp)}
.prin .card::after{content:"";position:absolute;left:0;bottom:0;height:.5rem;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.prin .card:hover::after{transform:scaleX(1)}

.g-cont{display:grid;grid-template-columns:54rem 1fr;gap:3.2rem}
.cont-l{display:flex;flex-direction:column;gap:1.8rem}
.cont-l .lead{margin-bottom:.6rem}
.marco{padding:1.8rem 3rem;flex:1;display:flex;flex-direction:column;justify-content:center}
.marco b{font:700 4rem/1.1 var(--disp)}
.cont-r{display:flex;flex-direction:column;gap:2.4rem;border-radius:2.4rem}
.donut-wrap{display:grid;grid-template-columns:36rem 1fr;gap:4rem;align-items:center;flex:1;min-height:0}
.donut{position:relative;width:36rem;height:36rem}
.donut svg{width:100%;height:100%;transform:rotate(-90deg)}
.donut circle{fill:none;stroke-width:13;transition:stroke-dasharray 1.3s var(--ease),stroke-width .35s,opacity .35s;cursor:pointer}
.donut circle.off{opacity:.42}.donut circle.act{stroke-width:17}
.slide:not(.in) .donut circle{stroke-dasharray:0 100!important}
.donut-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;pointer-events:none;text-align:center}
.donut-c .num{font-size:8.4rem}
.leg{display:flex;flex-direction:column;gap:.6rem}
.leg button{display:grid;grid-template-columns:1.8rem 1fr auto;gap:1.6rem;align-items:center;text-align:left;padding:1rem 1.6rem;border-radius:1.4rem;transition:background .3s}
.leg button.act,.leg button:hover{background:var(--beige)}
.leg i{width:1.8rem;height:4.6rem;border-radius:.9rem}
.leg b{display:block;font:700 2.5rem/1.2 var(--body)}
.leg span{display:block;font:400 2.1rem/1.3 var(--body);color:var(--deep)}
.leg em{font:700 4.2rem/1 var(--disp);font-style:normal;font-variant-numeric:lining-nums}
.byred{display:grid;grid-template-columns:auto repeat(3,1fr);gap:2.4rem;align-items:center;border-top:1px solid var(--line);padding-top:2rem}
.byred div{display:grid;grid-template-columns:auto 1fr auto;gap:1.2rem;align-items:center;font:600 2.1rem/1 var(--body)}
.byred u{display:block;height:1.2rem;border-radius:.6rem;background:var(--line);position:relative;text-decoration:none;overflow:hidden}
.byred u i{position:absolute;left:0;top:0;bottom:0;width:var(--w);background:var(--ink);border-radius:.6rem;transition:width .7s var(--ease)}
.byred b{font:700 3rem/1 var(--disp);font-variant-numeric:lining-nums tabular-nums;min-width:3.4rem;text-align:right}

.g-gala{display:grid;grid-template-columns:70rem 1fr;gap:3.2rem}
.gala-l{display:flex;flex-direction:column;gap:2rem;padding:4.8rem;border-radius:2.4rem}
.gala-n{font:700 24rem/.9 var(--disp);color:var(--gold);font-variant-numeric:lining-nums tabular-nums;margin-top:auto;white-space:nowrap}
.gala-r{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2.4rem;min-height:0}
.ringc{display:flex;flex-direction:column;gap:1.6rem;justify-content:center}
.ringc .rw{display:flex;align-items:center;gap:2.4rem}
.gala-r .col{justify-content:center}

.g-tl{display:grid;grid-template-rows:auto 1fr;gap:2.4rem}
.tl-axis{position:relative;height:21rem;margin:0 11rem}
.tl-line,.tl-fill{position:absolute;left:0;top:9.4rem;height:.4rem;border-radius:.2rem}
.tl-line{right:0;background:var(--line)}
.tl-fill{background:var(--gold);width:var(--f,0%);transition:width .9s var(--ease)}
.slide:not(.in) .tl-fill{width:0!important}
.tl-n{position:absolute;top:0;left:var(--x);width:24rem;margin-left:-12rem;text-align:center;padding:0}
.tl-n .d{display:flex;align-items:flex-end;justify-content:center;height:7rem;padding-bottom:1.2rem;font:500 2rem/1.2 var(--mono);letter-spacing:.15rem;text-transform:uppercase;color:var(--brown)}
.tl-n i{display:block;width:2.6rem;height:2.6rem;margin:1.1rem auto 0;border-radius:50%;background:var(--paper);border:.4rem solid var(--line);transition:all .4s var(--ease)}
.tl-n.past i{border-color:var(--gold);background:var(--gold)}
.tl-n.act i{border-color:var(--wine);background:var(--wine);transform:scale(1.5);box-shadow:0 0 0 .8rem rgba(99,21,26,.14)}
.tl-n b{display:block;margin-top:1.8rem;font:700 2.3rem/1.2 var(--body);color:var(--deep);transition:color .3s}
.tl-n.act b,.tl-n:hover b{color:var(--ink)}
.tl-d{display:grid;grid-template-columns:auto 1fr auto;gap:5rem;align-items:center;padding:4rem 5.6rem;border-radius:2.4rem;overflow:hidden}
.tl-big{font:700 22rem/.9 var(--disp);color:var(--gold);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap;min-width:44rem}
.tl-d .stmt{margin:1.2rem 0 1.6rem;color:var(--cream)}
.tl-d .p{font-size:3rem;max-width:66rem}
.tl-swap{animation:swap .6s var(--ease)}
@keyframes swap{from{opacity:0;transform:translateY(2.4rem)}to{opacity:1;transform:none}}
.tl-ctl{align-self:end;display:flex;gap:1.2rem}
.ibtn{width:6rem;height:6rem;border-radius:50%;border:1px solid rgba(230,217,200,.35);display:grid;place-items:center;color:var(--cream);transition:background .3s,color .3s}
.ibtn:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.ibtn svg{width:2.4rem;height:2.4rem}

.g-voc{display:grid;grid-template-rows:auto 5rem 1fr;gap:0}
.voc-top{display:flex;gap:3.2rem;align-items:center;padding:2.2rem 4rem}
.seal{width:9.6rem;height:9.6rem;border-radius:50%;background:var(--ink);display:grid;place-items:center;flex:none}
.seal img{width:7rem}
.voc-lines{position:relative;height:5rem}
.voc-lines i{position:absolute;background:var(--gold)}
.voc-lines .v{top:0;width:2px;margin-left:-1px;height:50%;transform:scaleY(0);transform-origin:top;transition:transform .45s var(--ease) .6s}
.voc-lines .hz{left:10%;right:10%;top:50%;height:2px;margin-top:-1px;transform:scaleX(0);transition:transform .8s var(--ease) .95s}
.voc-lines .b{top:50%;transition-delay:1.6s}
.slide.in .voc-lines i{transform:none}
.voc-row{display:grid;grid-template-columns:repeat(5,1fr);gap:2rem;min-height:0}
.voc{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.2rem;padding:2.6rem 2rem}
.voc .av{width:12.4rem;height:12.4rem;border-radius:50%;object-fit:cover}
.voc .h{font-size:2.5rem;min-height:6rem;display:flex;align-items:center}
.voc .pill{align-self:center}
.voc .p{font-size:2.15rem}
.voc-d{margin-top:auto;border-top:1px solid var(--line);padding-top:1.4rem;width:100%}
.voc-d b{display:block;font:700 4.6rem/1 var(--disp);font-variant-numeric:lining-nums tabular-nums}
.voc-d>span{display:block;margin-top:.4rem;font:500 1.95rem/1.3 var(--mono);color:var(--brown)}

.g-redes{display:grid;grid-template-columns:1fr 36rem;gap:3.6rem}
.redes-l{display:grid;grid-template-rows:auto 1fr;gap:2.4rem;min-height:0}
.phone-col{display:flex;flex-direction:column;gap:1.8rem;align-items:center}
.phone{width:27rem;aspect-ratio:520/958;border-radius:3rem;overflow:hidden;box-shadow:0 2.4rem 5rem rgba(23,21,18,.22);background:var(--ink);position:relative;flex:none}
.phone img{width:100%;height:100%;object-fit:cover;object-position:top;transition:opacity .45s}
.phone img.sw{opacity:0}
.phone-cap{text-align:center}
.phone-cap .h{margin:.6rem 0}
.phone-cap .p{font-size:2.1rem}

.g-res{display:grid;grid-template-columns:1fr 54rem;gap:3.2rem}
.learn{display:flex;flex-direction:column;gap:2.6rem;padding:3.6rem;border-radius:2.4rem}
.learn .h{margin-bottom:.6rem}

.g-com{display:grid;grid-template-columns:56rem 1fr 50rem;gap:2.8rem}
.com-hero{display:flex;flex-direction:column;gap:2rem;padding:4.4rem;border-radius:2.4rem}
.com-mini{margin-top:auto;display:flex;flex-direction:column;gap:1rem;border-top:.3rem solid var(--gold);padding-top:2rem}
.com-mini .mono{color:var(--cream)}
.com-mini b{font-weight:500;color:var(--gold)}
.com-mid{display:flex;flex-direction:column;gap:2rem;border-radius:2.4rem}
.com-mid .vbars{justify-content:center;gap:7rem;flex:1;height:auto;min-height:20rem}
.com-ring{display:flex;gap:2rem;align-items:center}
.com-ring .ring{width:8.4rem;height:8.4rem}.com-ring .ring circle{stroke-width:14}
.com-ring b{color:var(--wine);font-weight:700}
.com-ch{display:flex;flex-direction:column;gap:2.4rem;border-radius:2.4rem}
.chan .row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1rem}
.chan .num{font-size:5rem}
.chan .mono{margin-top:1rem}
.note{background:var(--beige);border-radius:1.6rem;padding:2.2rem 2.4rem;font:500 2.3rem/1.4 var(--body);margin-top:auto}

.g-acc{display:grid;grid-template-columns:50rem 1fr;gap:3.2rem}
.acc-l{display:flex;flex-direction:column;gap:2rem;border:2px solid var(--wine);padding:3.8rem 4rem;border-radius:2.4rem}
.acc-r{display:grid;grid-template-rows:auto auto 1fr;gap:2rem;min-height:0}
.acc-r .kpi{padding:1.8rem 3rem}
.acc-r .kpi .num{font-size:6.4rem}
#aView{flex:1;display:flex;min-height:0}
.mes{display:grid;grid-template-columns:1fr 34rem;gap:4rem;width:100%;align-items:end}
.mes .vbars{--h:26rem}
.mes aside{align-self:center;display:flex;flex-direction:column;gap:1rem}

.g-obj{display:grid;grid-template-rows:1fr auto;gap:3.2rem}
.flow{display:grid;grid-template-columns:1fr 9.6rem 1fr 9.6rem 1fr;min-height:0}
.flow .card{display:flex;flex-direction:column;gap:1.4rem;padding:3.6rem;border-radius:2.4rem;justify-content:center}
.flow .ink .stmt{color:var(--gold)}
.flow-ar{align-self:center;height:.3rem;margin:0 1rem;background:linear-gradient(90deg,rgba(195,154,100,.2),var(--gold));position:relative}
.flow-ar i{position:absolute;top:-.55rem;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--gold);animation:run 1.8s linear infinite}
.flow-ar i:nth-child(2){animation-delay:.6s}.flow-ar i:nth-child(3){animation-delay:1.2s}
@keyframes run{0%{left:-6%;opacity:0}20%,80%{opacity:1}100%{left:96%;opacity:0}}
.band{padding:4rem 5.6rem;border-radius:2.4rem}
.band .stmt{font-size:4.4rem;line-height:1.2;color:var(--cream);margin-top:1.6rem}

.metas{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;gap:2.4rem;height:100%}
.meta{display:flex;flex-direction:column;gap:1.5rem;justify-content:center;padding:2.6rem 3.6rem}
.meta-n{display:flex;align-items:baseline;gap:1.6rem;white-space:nowrap}
.meta-n .ar{font:400 4rem/1 var(--body);color:var(--brown)}
.meta .mono b{color:var(--ink);font-weight:500}

.hub{height:100%}
.hub-svg{position:absolute;inset:0;width:100%;height:100%}
.hub-svg line{stroke:var(--brown);stroke-width:3;vector-effect:non-scaling-stroke;stroke-dasharray:10 12;animation:dash 1.1s linear infinite;opacity:.85;transition:opacity .3s,stroke-width .3s}
.hub-svg line.dimd{opacity:.2}.hub-svg line.hot{stroke-width:5;stroke:var(--wine)}
@keyframes dash{to{stroke-dashoffset:-22}}
.hub-c{position:absolute;left:50%;top:50%;width:34rem;height:34rem;margin:-17rem 0 0 -17rem;border-radius:50%;background:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;text-align:center;padding:3rem;box-shadow:0 0 0 1.6rem rgba(195,154,100,.14),0 0 0 3.4rem rgba(195,154,100,.07)}
.hub-c img{width:22rem}
.hub-c .mono{font-size:1.9rem;letter-spacing:.2rem;color:var(--cream)}
.hub-n{position:absolute;width:47rem;height:20rem;display:flex;flex-direction:column;gap:.8rem;justify-content:center;padding:2.4rem 3rem}
.hub-n .p{font-size:2.15rem}
.hub-n .h{font-size:2.8rem}

.g-ml{display:grid;grid-template-columns:62rem 1fr;gap:3.2rem}
.ml-l{display:flex;flex-direction:column;gap:1.6rem;padding:4.4rem 4.8rem;border-radius:2.4rem;align-items:flex-start}
.ml-av{position:relative;width:17rem;height:17rem;margin:1rem;flex:none}
.ml-av img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.orbit{position:absolute;inset:-1.4rem;width:auto;height:auto;animation:spin 26s linear infinite}
.orbit circle{fill:none;stroke:var(--gold);stroke-width:1.2;stroke-dasharray:3 5}
@keyframes spin{to{transform:rotate(360deg)}}
.foil{background:linear-gradient(100deg,var(--gold) 0%,var(--gold) 40%,var(--gold-hi) 50%,var(--gold) 60%,var(--gold) 100%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:foil 5.5s ease-in-out infinite}
.ml-l .stmt{font-size:6.4rem}
.ml-r{display:grid;grid-template-rows:repeat(3,1fr);gap:2rem;min-height:0}
.ml-r .card{display:flex;flex-direction:column;gap:.8rem;justify-content:center;padding:2.4rem 3.6rem}

.g-ag{display:grid;grid-template-rows:auto 1fr;gap:2.4rem}
.chips{display:flex;gap:1.2rem;flex-wrap:wrap}
.chips button{font:600 2.1rem/1 var(--body);padding:1.2rem 2.4rem;border-radius:3rem;border:1px solid var(--line);background:#fff;color:var(--deep);transition:all .3s}
.chips button.on{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.chips button:not(.on):hover{border-color:var(--gold);color:var(--ink)}
.ag-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:1fr 1fr;gap:2.4rem;min-height:0}
.ag{display:flex;flex-direction:column;gap:1.1rem;padding:2.2rem 2.6rem}
.ag .h{font-size:2.7rem}
.ag .p{font-size:2.15rem}
.js .slide.in .ag.off{opacity:.2;filter:grayscale(1)}
.ag .mono{margin-top:auto;font-size:1.9rem}

.g-cine{display:grid;grid-template-columns:76rem 1fr;gap:3.2rem}
.cine-a{display:grid;grid-template-columns:24rem 1fr;gap:3.2rem;padding:3.6rem;border-radius:2.4rem}
.cine-b{display:flex;flex-direction:column;gap:1.6rem;padding:3.6rem;border-radius:2.4rem}
.poster{border:2px dashed var(--brown);border-radius:1.2rem;background:
  repeating-linear-gradient(180deg,var(--brown) 0 1.2rem,transparent 1.2rem 2.8rem) left .8rem top/.8rem 100% no-repeat,
  repeating-linear-gradient(180deg,var(--brown) 0 1.2rem,transparent 1.2rem 2.8rem) right .8rem top/.8rem 100% no-repeat,var(--beige);
  display:grid;place-items:center;text-align:center;aspect-ratio:2/3;animation:reel 5s linear infinite}
@keyframes reel{to{background-position:left .8rem top 2.8rem,right .8rem top 2.8rem,0 0}}
.poster span{font:500 1.9rem/1.3 var(--mono);color:var(--brown);padding:0 2.4rem}
.film{display:grid;grid-template-columns:10.5rem 1fr;gap:2.4rem;align-items:center}

.g-man{display:grid;grid-template-columns:78rem 1fr;gap:3.2rem}
.man-l{display:flex;flex-direction:column;gap:1.8rem;padding:4.4rem 4.8rem;border-radius:2.4rem}
.man-l .stmt{font-size:6rem}
.tags{display:flex;flex-wrap:wrap;gap:1.2rem}
.tags span{font:500 2.2rem/1.2 var(--body);color:var(--cream);border:1px solid rgba(230,217,200,.55);padding:.7rem 1.8rem;border-radius:3rem;animation:bob 4s ease-in-out infinite;animation-delay:calc(var(--k)*-.6s)}
@keyframes bob{50%{transform:translateY(-.5rem);border-color:var(--gold)}}
.man-r{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:2.4rem;min-height:0}
.man-r .card{display:flex;flex-direction:column;gap:1.2rem;justify-content:center}
.man-r .wide{grid-column:span 2}

.steps{display:grid;grid-template-rows:repeat(4,1fr);gap:2.2rem;height:100%}
.step{display:grid;grid-template-columns:13rem 1fr auto;align-items:center;gap:3rem;padding:0 4.4rem;text-align:left;width:100%;cursor:pointer}
.step .num{font-size:8rem;color:var(--gold)}
.step .chk{width:6.4rem;height:6.4rem;border-radius:50%;border:.3rem solid var(--line);display:grid;place-items:center;transition:all .35s var(--ease)}
.step .chk svg{width:3.2rem;height:3.2rem;stroke:#fff;stroke-width:3;fill:none;stroke-dasharray:30;stroke-dashoffset:30;transition:stroke-dashoffset .4s var(--ease) .1s}
.step.done .chk{background:var(--wine);border-color:var(--wine)}
.step.done .chk svg{stroke-dashoffset:0}
.step.done .h{text-decoration:line-through;text-decoration-color:var(--gold)}

/* ---------- lomo de navegación ---------- */
#rail{position:fixed;right:0;top:0;bottom:0;width:var(--rail);background:var(--ink);border-left:2px solid var(--gold);z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:2.4rem 0}
#rail::before{content:"";position:absolute;left:-2px;top:0;width:.5rem;height:calc(var(--prog,0)*100%);background:var(--gold-hi);transition:height .8s var(--ease)}
#rail button{color:var(--dim);width:4.8rem;height:4.8rem;border-radius:50%;display:grid;place-items:center;font:500 2rem/1 var(--mono);transition:color .3s,background .3s}
#rail button:hover{color:var(--gold-hi);background:rgba(195,154,100,.14)}
#rail button.on{color:var(--ink);background:var(--gold)}
#rail svg{width:2.4rem;height:2.4rem}
#rail .home img{width:4.4rem;border-radius:50%}
.r-ch,.r-nav{display:flex;flex-direction:column;gap:.8rem;align-items:center}
#cntr{font:500 1.7rem/1.3 var(--mono);color:var(--cream);text-align:center;margin:.6rem 0}
.zone{position:fixed;top:20%;bottom:20%;width:7rem;z-index:8;display:grid;place-items:center;color:var(--brown);opacity:0;transition:opacity .3s}
.zone:hover,.zone:focus-visible{opacity:1}
.zone svg{width:4rem;height:4rem}
#zl{left:1.6rem}#zr{right:calc(var(--rail) + 1.6rem)}
.pt .zone{display:none}
#edge{position:fixed;top:0;bottom:0;width:.4rem;background:linear-gradient(180deg,var(--gold),var(--gold-hi),var(--gold));box-shadow:0 0 4rem 1rem rgba(195,154,100,.55);z-index:6;opacity:0;pointer-events:none}
#fx{position:fixed;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}
#tip{position:fixed;z-index:30;max-width:46rem;background:var(--ink);color:var(--cream);border:1px solid var(--gold);border-radius:1.2rem;padding:1.2rem 1.8rem;font:500 2rem/1.4 var(--body);pointer-events:none;opacity:0;transform:translateY(.6rem);transition:opacity .2s,transform .2s;white-space:pre-line}
#tip.show{opacity:1;transform:none}
#ov{position:fixed;inset:0;z-index:20;background:var(--ink);color:var(--cream);padding:8rem 14rem 8rem 12.8rem;display:none;overflow:auto}
#ov.show{display:block;animation:swap .4s var(--ease)}
#ov h2{font:700 5.6rem/1.1 var(--disp);margin-bottom:4rem}
.ov-g{display:grid;grid-template-columns:repeat(5,1fr);gap:3.2rem}
.ov-g h3{font:500 2.2rem/1.3 var(--mono);letter-spacing:.3rem;text-transform:uppercase;color:var(--gold);border-top:.3rem solid var(--gold);padding-top:1.6rem;margin-bottom:1.6rem}
.ov-g button{display:block;width:100%;text-align:left;font:500 2.4rem/1.3 var(--body);padding:1.2rem 1.4rem;border-radius:1rem;color:var(--cream);margin:0 -1.4rem}
.ov-g button:hover,.ov-g button.on{background:rgba(195,154,100,.2);color:var(--gold-hi)}
#ovX{position:absolute;right:10rem;top:6rem}

/* ---------- pantallas verticales: una columna con scroll ---------- */
.pt .slide{bottom:10rem;overflow-y:auto}
.pt .frame{position:relative;left:auto;top:auto;transform:none;width:100%;height:auto;min-height:100%;display:flex;flex-direction:column;padding:5rem 4rem;gap:3rem}
.pt .body,.pt .body>*{min-height:auto}
.pt [class*="g-"],.pt .kpis,.pt .prin,.pt .voc-row,.pt .ag-grid,.pt .gala-r,.pt .metas,.pt .flow,.pt .man-r,.pt .ml-r,.pt .steps,.pt .donut-wrap,.pt .mes,.pt .tl-d,.pt .cine-a,.pt .idea-r,.pt .redes-l,.pt .acc-r,.pt .byred{display:flex;flex-direction:column;height:auto}
.pt .title{font-size:5.2rem}.pt .foot{flex-direction:column;align-items:flex-start;gap:2rem}
.pt .hub{height:auto;display:flex;flex-direction:column;gap:2rem}.pt .hub-svg{display:none}
.pt .hub-n,.pt .hub-c{position:static;width:auto;height:auto;margin:0;border-radius:2rem}.pt .hub-c{padding:4rem}
.pt .tl-axis{margin:0;height:auto;display:flex;flex-direction:column;gap:1rem}.pt .tl-line,.pt .tl-fill{display:none}
.pt .tl-n{position:static;width:auto;margin:0;display:grid;grid-template-columns:16rem 3rem 1fr;align-items:center;text-align:left;gap:1.6rem}
.pt .tl-n .d{height:auto;padding:0;justify-content:flex-start}.pt .tl-n i{margin:0}.pt .tl-n b{margin:0}
.pt .tl-big{font-size:12rem;min-width:0}.pt .gala-n{font-size:17rem;margin-top:2rem}.pt .num.xl{font-size:11rem}
.pt .flow-ar{display:none}.pt .voc-lines{display:none}.pt .g-voc{gap:2rem}
.pt .dv-num{font-size:40rem;right:2rem;top:26rem}.pt .dv-main{position:relative;left:auto;top:auto;width:auto;padding:18rem 4rem 4rem}.pt .dv-t{font-size:7rem}
.pt .arc{position:relative;left:auto;right:auto;top:auto;margin:0 4rem;grid-template-columns:1fr}.pt .dv-foot{position:relative;left:auto;right:auto;bottom:auto;margin:4rem}
.pt .cover{min-height:100%;padding:6rem 4rem 16rem}.pt .cv-logo{width:52rem}.pt .cv-title{font-size:4.6rem}.pt .cv-keys{display:none}
.pt .phone-col{order:-1}.pt .hb{grid-template-columns:1fr}.pt .hb-t{margin-right:16rem}
.pt #rail{top:auto;left:0;width:auto;height:10rem;flex-direction:row;border-left:0;border-top:2px solid var(--gold);padding:0 2rem}
.pt #rail::before{left:0;top:-2px;height:.5rem;width:calc(var(--prog,0)*100%)}
.pt .r-ch,.pt .r-nav{flex-direction:row}.pt #rail button{width:7rem;height:7rem;font-size:2.6rem}.pt #cntr{font-size:2.4rem;margin:0 1rem}
.pt .r-nav .rot{transform:rotate(-90deg)}
.pt #ov{padding:6rem 4rem 14rem}.pt .ov-g{grid-template-columns:1fr}.pt #ovX{right:3rem;top:3rem}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0ms!important}
}

/* ================= VERSIÓN 2 ================= */
/* fondo generativo (escenas oscuras) y grano de papel (escenas claras) */
.gl{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.slide.dark .frame{z-index:1}
.slide.dark .bgimg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center}
.slide.dark .bgimg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,21,18,.62),rgba(23,21,18,.78))}
.slide.dark .bgimg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slide:not(.dark)::after{content:"";position:absolute;inset:0;pointer-events:none;mix-blend-mode:multiply;opacity:.55;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .29 0 0 0 0 .17 0 0 0 .11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.card{box-shadow:0 .2rem .8rem rgba(107,74,43,.05)}
.card.ink{box-shadow:0 1.6rem 4rem rgba(23,21,18,.2)}
.tilt{transform-style:preserve-3d}
.js .tilt.tilting{transition:transform .14s ease-out,box-shadow .35s,border-color .35s}
.num.xl2{font-size:13rem}

/* barra de capítulos (arriba) */
#story{position:fixed;left:calc(var(--ox,0px) + 12.8rem);right:calc(var(--ox,0px) + 17.6rem);top:calc(var(--oy,0px) + 3.4rem);z-index:9;display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;transition:opacity .4s}
#story.hide{opacity:0;pointer-events:none}
#story button{display:block;padding:1rem 0;text-align:left}
#story i{display:block;height:.4rem;border-radius:.2rem;background:rgba(155,107,62,.22);overflow:hidden;position:relative}
#story i::after{content:"";position:absolute;inset:0;background:var(--wine);transform:scaleX(var(--f,0));transform-origin:left;transition:transform .7s var(--ease)}
#story span{display:block;margin-top:.7rem;font:500 1.6rem/1 var(--mono);letter-spacing:.2rem;text-transform:uppercase;color:var(--brown);opacity:0;transition:opacity .3s}
#story:hover span,#story button.now span{opacity:1}
.on-dark #story i{background:rgba(230,217,200,.2)}.on-dark #story i::after{background:var(--gold)}.on-dark #story span{color:var(--gold)}
.pt #story{display:none}

/* portada: segundo botón */
.cv-btns{display:flex;gap:1.6rem;align-items:center;justify-content:center;margin-top:1.4rem;flex-wrap:wrap}
.cv-btns .cv-start{margin-top:0}
.cv-alt{display:inline-flex;align-items:center;gap:1.2rem;font:600 2.4rem/1 var(--body);color:var(--gold);border:1px solid var(--gold);padding:1.7rem 3.2rem;border-radius:4rem;transition:background .3s,color .3s}
.cv-alt:hover{background:rgba(195,154,100,.16);color:var(--gold-hi)}
.cv-alt svg{width:2.2rem;height:2.2rem}

/* resumen ejecutivo */
.g-sum{display:grid;grid-template-rows:1.15fr 1fr;gap:2.8rem}
.sum-k{display:grid;grid-template-columns:repeat(5,1fr);gap:2rem;min-height:0}
.sumk{display:flex;flex-direction:column;gap:1rem;text-align:left;padding:3rem 3rem 2.6rem;border-radius:2.4rem;overflow:hidden}
.sumk .num{font-size:8.4rem;margin-top:auto;white-space:nowrap}
.sumk .p{font-size:2.3rem;min-height:6.6rem}
.sumk .go{font:500 1.9rem/1 var(--mono);font-style:normal;letter-spacing:.2rem;text-transform:uppercase;color:var(--gold);opacity:.55;transition:opacity .3s,transform .3s var(--ease)}
.sumk:hover .go{opacity:1;transform:translateX(.8rem)}
.sumk:hover{box-shadow:0 0 0 .2rem var(--gold),0 1.6rem 4rem rgba(23,21,18,.25)}
.sum-r{display:grid;grid-template-columns:repeat(5,1fr);gap:2rem;min-height:0}
.sumc{display:flex;flex-direction:column;gap:1rem;text-align:left;padding:2.6rem 2.8rem;justify-content:center}
.sumc b{font:700 3.6rem/1.08 var(--disp)}
.sumc .p{font-size:2.1rem}

/* escalera */
.g-esc{display:grid;grid-template-columns:1fr 52rem;gap:3.2rem}
.esc-r{display:grid;grid-template-rows:1.08fr 1fr;gap:2.4rem;min-height:0}
.esc-r .card{display:flex;flex-direction:column;gap:1.2rem;justify-content:center;padding:2.8rem 3.6rem;border-radius:2.4rem;overflow:hidden}
.esc-r .lead{font-size:2.7rem;line-height:1.3}.esc-r .p{font-size:2.2rem}
.esc-r .lead b{font:700 6rem/1 var(--disp);color:var(--wine);margin-right:.6rem}
#eBars .hb-t{margin-right:19rem}

/* pictograma */
.picto{display:grid;grid-template-rows:auto auto;gap:2.2rem;width:100%;align-content:center}
.picto-top{display:grid;grid-template-columns:minmax(0,1fr) 31rem;gap:3.6rem;align-items:center}
.dots{display:grid;grid-template-columns:repeat(30,1fr);gap:.7rem}
.dots i{aspect-ratio:1;border-radius:50%;background:#dfd2bf;transition:background .45s,transform .45s var(--ease)}
.dots i.hot{background:var(--wine);transform:scale(1.16)}
.picto-read{min-width:0;text-align:right}
.picto-read .num{font-size:7.2rem;color:var(--wine)}
.picto-read .h{font-size:2.5rem;margin:.6rem 0 .4rem}
.picto-read .cap{opacity:.75;font-size:1.9rem;margin-top:.4rem}
.cau{display:flex;flex-wrap:wrap;gap:.9rem;align-content:flex-start}
.cau button{font:500 1.8rem/1 var(--body);padding:.8rem 1.5rem;border-radius:3rem;border:1px solid var(--line);background:#fff;color:var(--deep);transition:all .25s}
.cau button.act,.cau button:hover{background:var(--wine);border-color:var(--wine);color:#fff}

/* metas con simulador */
.g-metas{display:grid;grid-template-rows:auto minmax(0,1fr);gap:2.4rem;height:100%}
.metas2{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.metas2 .meta{padding:2.2rem 3rem;gap:1rem;text-align:left;cursor:pointer;width:100%;justify-content:flex-start}
.metas2 .meta .num.md{font-size:4.2rem}.metas2 .meta .num.lg{font-size:5.6rem}
.metas2 .meta .h{font-size:2.6rem}
.metas2 .meta .mono{font-size:2rem}
.metas2 .meta.sel{border-color:var(--wine);box-shadow:0 0 0 .2rem var(--wine),0 1.4rem 3rem rgba(99,21,26,.16)}
.metas-b{display:grid;grid-template-columns:1fr 46rem;gap:2.4rem;min-height:0}
.metas-s{display:grid;grid-template-rows:1fr 1fr;gap:2rem;min-height:0}
.metas-s .meta{padding:1.8rem 2.8rem;gap:.9rem}
.metas-s .meta .h{font-size:2.5rem}.metas-s .meta .p{font-size:2.05rem;line-height:1.38}
.sim{display:grid;grid-template-columns:1fr 1fr;gap:5rem;padding:3.2rem 4rem;border-radius:2.4rem;align-items:center}
.sim>div{display:flex;flex-direction:column;gap:1.3rem;min-width:0}
.sim .num{font-size:8.4rem}
.sim input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:1rem;border-radius:.5rem;background:rgba(230,217,200,.25);outline-offset:.8rem;margin:1.2rem 0 .8rem;cursor:pointer}
.sim input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:4rem;height:4rem;border-radius:50%;background:var(--gold);border:.5rem solid var(--ink);box-shadow:0 0 0 .2rem var(--gold);cursor:grab}
.sim input[type=range]::-moz-range-thumb{width:3rem;height:3rem;border-radius:50%;background:var(--gold);border:.5rem solid var(--ink);box-shadow:0 0 0 .2rem var(--gold);cursor:grab}
.sim-bar{position:relative;height:2rem;border-radius:1rem;background:rgba(230,217,200,.18);margin-top:3.2rem}
.sim-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:1rem;background:var(--gold);width:var(--w,0%);transition:width .35s var(--ease),background .3s}
.sim-bar.ok i{background:#9cc496}
.sim-bar u{position:absolute;left:var(--g,80%);top:-.8rem;bottom:-.8rem;width:.3rem;background:var(--cream);text-decoration:none}
.sim-bar u::before{content:"META";position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font:500 1.6rem/1.5 var(--mono);letter-spacing:.2rem;color:var(--cream)}
.sim .verd{font:600 2.3rem/1.35 var(--body);color:var(--cream);min-height:6.2rem}
.sim .verd b{color:var(--gold)}
.sim small{font:400 1.95rem/1.4 var(--body);color:#b5a892}
.sim .rate{font:700 8.4rem/1 var(--disp);color:var(--cream);font-variant-numeric:lining-nums tabular-nums}
.sim .rate small{font:500 2.1rem/1 var(--body);color:var(--cream)}

/* calendario */
.g-cal{display:grid;grid-template-columns:1fr 48rem;gap:2.8rem}
.cal-l{display:grid;grid-template-rows:auto 1fr;gap:2rem;min-height:0}
.cal-m{display:grid;grid-template-columns:1fr 1fr;gap:3.2rem;min-height:0}
.mon{display:grid;grid-template-rows:auto auto 1fr;gap:1rem;min-height:0}
.mon h3{font:700 3.6rem/1 var(--disp)}
.dow,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:.8rem}
.dow span{font:500 1.7rem/1 var(--mono);letter-spacing:.15rem;color:var(--brown);text-align:center}
.days{grid-auto-rows:1fr;min-height:0}
.day{border-radius:1.2rem;border:1px solid var(--line);background:#fff;padding:.7rem .9rem;display:flex;flex-direction:column;justify-content:space-between;text-align:left;min-height:0;transition:all .25s;position:relative}
.day.out{visibility:hidden}
.day.void{background:transparent;border-color:rgba(230,217,200,.6);cursor:default}
.day b{font:700 2.4rem/1 var(--disp);font-variant-numeric:lining-nums;color:var(--deep)}
.day.void b{color:#c9bba8}
.day .dd{display:flex;gap:.4rem;flex-wrap:wrap}
.day .dd i{width:1.1rem;height:1.1rem;border-radius:50%;background:var(--ink)}
.day .dd i.fm{background:var(--gold)}.day .dd i.ev{background:var(--wine)}
.day.has:hover,.day.sel{border-color:var(--ink);box-shadow:0 .8rem 2rem rgba(23,21,18,.14);translate:0 -.3rem}
.day.sel{background:var(--ink)}.day.sel b{color:var(--cream)}.day.sel .dd i{background:var(--cream)}.day.sel .dd i.fm{background:var(--gold)}.day.sel .dd i.ev{background:#d9666f}
.day.today::after{content:"HOY";position:absolute;right:.7rem;top:.8rem;font:500 1.3rem/1 var(--mono);letter-spacing:.1rem;color:var(--wine)}
.day.sel.today::after{color:var(--gold)}
.day.dim{opacity:.3}
.cal-d{display:flex;flex-direction:column;gap:1.6rem;padding:3.4rem 3.6rem;border-radius:2.4rem;overflow:hidden}
.cal-d .stmt{font-size:5rem;color:var(--cream)}
.cal-it{border-top:1px solid rgba(230,217,200,.22);padding-top:1.4rem;display:flex;flex-direction:column;gap:.6rem}
.cal-it .h{font-size:2.5rem;color:var(--cream)}
.cal-it .mono{font-size:1.8rem}
.cal-leg{margin-top:auto;display:flex;gap:2rem;flex-wrap:wrap;font:500 1.8rem/1 var(--body);color:var(--cream)}
.cal-leg span{display:inline-flex;align-items:center;gap:.7rem}
.cal-leg i{width:1.2rem;height:1.2rem;border-radius:50%;background:var(--cream)}

/* campos editables y espacios de imagen */
.fld{display:inline-block;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;color:var(--wine);border-bottom:.2rem dashed var(--wine);padding:0 .3rem;border-radius:.3rem;min-width:4rem;text-align:left;transition:background .25s}
.fld.set{color:inherit;border-bottom-style:solid;border-bottom-color:var(--gold)}
button.fld:hover{background:rgba(195,154,100,.2)}
.ink .fld{color:var(--gold)}.ink .fld.set{color:var(--cream)}
.fld-in{font:inherit;color:var(--ink);background:#fff;border:.2rem solid var(--gold);border-radius:.6rem;padding:.2rem .8rem;width:22rem;max-width:100%}
.slot{position:relative;overflow:hidden}
.slot>img.pic{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.slot.full{border-style:solid;border-color:var(--line);animation:none;background:var(--beige)}
.slot.full>span{display:none}
.slot-b{position:absolute;left:50%;bottom:1rem;transform:translateX(-50%);z-index:2;font:600 1.7rem/1 var(--body);white-space:nowrap;background:var(--ink);color:var(--cream);padding:.9rem 1.5rem;border-radius:3rem;opacity:0;transition:opacity .25s}
.slot:hover .slot-b,.slot-b:focus-visible{opacity:1}
.slot:not(.full) .slot-b{opacity:1;bottom:50%;transform:translate(-50%,160%)}
.film .slot .slot-b{font-size:1.4rem;padding:.6rem .9rem;transform:translateX(-50%);bottom:.6rem}
.gala-l .bgimg{border-radius:inherit;position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.gala-l .bgimg::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,rgba(23,21,18,.74),rgba(23,21,18,.9))}
.gala-l>*:not(.bgimg){position:relative;z-index:1}

/* acuerdos y pendientes */
.g-next{display:grid;grid-template-columns:1fr 60rem;gap:2.8rem;height:100%}
.g-next .steps{height:auto}
.g-next .step{grid-template-columns:10rem 1fr auto;padding:0 3.4rem;gap:2.4rem}
.g-next .step .num{font-size:6.8rem}
.g-next .step .h{font-size:2.7rem}
.pend{display:flex;flex-direction:column;gap:1.3rem;padding:3.2rem 3.4rem;border-radius:2.4rem}
.pend-r{display:grid;grid-template-columns:1fr auto;gap:1.6rem;align-items:baseline;border-top:1px solid var(--line);padding-top:1.2rem}
.pend-r span{font:500 2.2rem/1.3 var(--body)}
.pend-r .fld{font:600 2.2rem/1.3 var(--body)}
.pend .note2{font:400 1.9rem/1.4 var(--body);color:var(--deep);margin-top:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:1rem;font:600 2.1rem/1 var(--body);padding:1.4rem 2.4rem;border-radius:3rem;background:var(--ink);color:var(--cream);transition:background .25s}
.btn:hover{background:var(--wine)}
.btn.line{background:transparent;border:1px solid var(--line);color:var(--ink)}.btn.line:hover{border-color:var(--ink);background:transparent}
.btn.gold{background:var(--gold);color:var(--ink)}.btn.gold:hover{background:var(--gold-hi)}
.btn svg{width:2.2rem;height:2.2rem}
[hidden]{display:none!important}

/* lomo: herramientas */
#rail .tools{display:flex;flex-direction:column;gap:.6rem;align-items:center}
#rail button.live-on{color:var(--ink);background:#d9666f}
#rail button.play-on{color:var(--ink);background:var(--gold)}

/* panel lateral */
#drawer{position:fixed;top:0;bottom:0;right:var(--rail);width:60rem;max-width:calc(100% - var(--rail));z-index:15;background:var(--ink);color:var(--cream);border-left:2px solid var(--gold);padding:4rem 3.6rem;display:flex;flex-direction:column;gap:2rem;transform:translateX(105%);visibility:hidden;transition:transform .5s var(--ease),visibility 0s .5s;box-shadow:-3rem 0 6rem rgba(0,0,0,.35)}
#drawer.show{transform:none;visibility:visible;transition:transform .5s var(--ease)}
#drawer h2{font:700 4.6rem/1.05 var(--disp);color:var(--cream)}
#drawer h3{font:500 1.9rem/1.2 var(--mono);letter-spacing:.25rem;text-transform:uppercase;color:var(--gold);margin-top:1rem}
#drawer p,#drawer li{font:400 2.1rem/1.45 var(--body);color:var(--cream)}
#drawer .x{position:absolute;right:2.4rem;top:2.4rem}
.dr-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:1.6rem;padding-right:.6rem}
#drAsk{overflow:hidden}
#slotList{display:flex;flex-direction:column;gap:1.2rem;margin-top:1.2rem}
.dr-row p b{color:var(--gold);font-weight:600}
.dr-row{display:flex;justify-content:space-between;align-items:center;gap:2rem;border-top:1px solid rgba(230,217,200,.2);padding-top:1.4rem}
.dr-row .btn{background:var(--gold);color:var(--ink);flex:none}
.dr-row .btn.line{background:transparent;color:var(--cream);border-color:rgba(230,217,200,.4)}
.keys{display:grid;grid-template-columns:auto 1fr;gap:.8rem 2rem;align-items:center}
.keys kbd{font:500 1.8rem/1 var(--mono);border:1px solid rgba(230,217,200,.4);border-radius:.6rem;padding:.6rem 1rem;color:var(--gold);text-align:center}
.chat{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:1.6rem}
.chat .q{align-self:flex-end;background:var(--gold);color:var(--ink);padding:1.2rem 1.8rem;border-radius:1.8rem 1.8rem .4rem 1.8rem;font:600 2.1rem/1.35 var(--body);max-width:88%}
.chat .a{background:rgba(230,217,200,.1);padding:1.6rem 1.8rem;border-radius:1.8rem 1.8rem 1.8rem .4rem;font:400 2.1rem/1.5 var(--body);white-space:pre-wrap}
.sugg{display:flex;flex-wrap:wrap;gap:1rem}
.sugg button{font:500 1.9rem/1.3 var(--body);text-align:left;padding:1rem 1.6rem;border-radius:1.4rem;border:1px solid rgba(230,217,200,.35);color:var(--cream)}
.sugg button:hover{border-color:var(--gold);color:var(--gold-hi)}
.ask-f{display:flex;gap:1rem}
.ask-f input{flex:1;font:400 2.2rem/1 var(--body);padding:1.5rem 2rem;border-radius:3rem;border:1px solid rgba(230,217,200,.4);background:transparent;color:var(--cream)}
.ask-f input::placeholder{color:var(--dim)}

/* buscador */
#cmd{position:fixed;inset:0;z-index:25;background:rgba(23,21,18,.72);display:none;align-items:flex-start;justify-content:center;padding-top:16rem}
#cmd.show{display:flex}
.cmd-b{width:88rem;max-width:92%;background:var(--paper);border-radius:2.4rem;overflow:hidden;box-shadow:0 4rem 10rem rgba(0,0,0,.5);animation:swap .3s var(--ease)}
.cmd-b input{width:100%;font:500 2.8rem/1 var(--body);padding:2.8rem 3.4rem;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);outline:none}
.cmd-l{max-height:46rem;overflow:auto;padding:1rem}
.cmd-l button{display:grid;grid-template-columns:8rem 1fr auto;gap:1.6rem;align-items:center;width:100%;text-align:left;padding:1.4rem 2.4rem;border-radius:1.4rem;font:500 2.3rem/1.2 var(--body);color:var(--ink)}
.cmd-l button span{font:500 1.8rem/1 var(--mono);color:var(--brown)}
.cmd-l button em{font:500 1.7rem/1 var(--mono);font-style:normal;color:var(--brown)}
.cmd-l button.act{background:var(--ink);color:var(--cream)}.cmd-l button.act span,.cmd-l button.act em{color:var(--gold)}

/* subtítulos, avisos y transmisión en vivo */
#cc{position:fixed;left:calc(var(--ox,0px) + 12.8rem);right:calc(var(--ox,0px) + 17.6rem);bottom:calc(var(--oy,0px) + 1.6rem);z-index:12;display:none;justify-content:center;pointer-events:none}
#cc.show{display:flex}
#cc p{max-width:130rem;background:rgba(23,21,18,.94);color:var(--cream);font:500 2.3rem/1.35 var(--body);padding:1.2rem 2.6rem;border-radius:1.8rem;border:1px solid rgba(195,154,100,.5);text-align:center;animation:swap .5s var(--ease)}
#toast{position:fixed;left:50%;top:9rem;transform:translate(-50%,-2rem);z-index:40;background:var(--ink);color:var(--cream);border:1px solid var(--gold);font:500 2.1rem/1.3 var(--body);padding:1.3rem 2.4rem;border-radius:3rem;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
#toast.show{opacity:1;transform:translate(-50%,0)}
#liveb{position:fixed;left:calc(var(--ox,0px) + 12.8rem);top:calc(var(--oy,0px) + .2rem);z-index:14;display:none;align-items:center;gap:1.2rem;background:var(--ink);color:var(--cream);border:1px solid #d9666f;border-radius:4rem;padding:.3rem .4rem .3rem 1.6rem;font:500 1.7rem/1 var(--body)}
#liveb.show{display:flex}
#liveb i{width:1.2rem;height:1.2rem;border-radius:50%;background:#d9666f;animation:blink 1.4s ease-in-out infinite}
@keyframes blink{50%{opacity:.25}}
#liveb .btn{padding:.6rem 1.3rem;font-size:1.5rem;background:var(--gold);color:var(--ink)}

.pt .g-sum,.pt .sum-k,.pt .sum-r,.pt .g-esc,.pt .esc-r,.pt .g-metas,.pt .metas2,.pt .g-cal,.pt .cal-m,.pt .cal-l,.pt .g-next,.pt .picto-top{display:flex;flex-direction:column;height:auto}
.pt .day{min-height:9rem}.pt #drawer{right:0;bottom:10rem;width:100%}.pt #cc{left:2rem;right:2rem;bottom:12rem}
.pt .dots{grid-template-columns:repeat(15,1fr)}

/* ajustes finos */
.pill .fld,.pill .fld.set{color:inherit;border-bottom-color:currentColor}
.pill .fld-in{font:500 2rem/1.2 var(--body);letter-spacing:0;text-transform:none;width:18rem}
.esc-r .num.lg{font-size:9rem}
.esc-note{font:400 1.95rem/1.4 var(--body);color:var(--deep);border-top:1px solid var(--line);padding-top:1.4rem}
.sumk>.mono{font-size:2rem}
.sumc>.mono{font-size:1.9rem}
.cv-keys kbd,.kbd{font:500 1.8rem/1 var(--mono);border:1px solid rgba(230,217,200,.35);border-radius:.6rem;padding:.3rem .8rem;color:var(--gold);margin:0 .3rem}
.slide.dark>.frame::after{content:"";position:absolute;inset:3.2rem 9.6rem 3.2rem 3.2rem;border:1px solid rgba(195,154,100,.22);border-radius:.6rem;pointer-events:none;
  -webkit-mask:linear-gradient(#000,#000) top left/9rem 9rem no-repeat,linear-gradient(#000,#000) top right/9rem 9rem no-repeat,linear-gradient(#000,#000) bottom left/9rem 9rem no-repeat,linear-gradient(#000,#000) bottom right/9rem 9rem no-repeat;
  mask:linear-gradient(#000,#000) top left/9rem 9rem no-repeat,linear-gradient(#000,#000) top right/9rem 9rem no-repeat,linear-gradient(#000,#000) bottom left/9rem 9rem no-repeat,linear-gradient(#000,#000) bottom right/9rem 9rem no-repeat}
.pt .slide.dark>.frame::after{display:none}
.pt #rail .r-ch,.pt #rail .home,.pt #bFs,.pt #bCmd{display:none}
.pt #rail .tools{flex-direction:row}
.pt #liveb{left:2rem;top:1rem}
.pt .metas-b,.pt .metas-s,.pt .sim{display:flex;flex-direction:column;height:auto;align-items:stretch}
.pt .cal-d{min-height:40rem}
.col>.btn,.pend>.btn{align-self:flex-start}
.pend>.btn{margin-top:.4rem}

/* fondos generativos: velo para proteger el texto */
.slide.dark>.frame::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1}
.slide.dark>.frame.cover::before{background:radial-gradient(ellipse 66rem 42rem at 50% 45%,rgba(23,21,18,.9) 0,rgba(23,21,18,.66) 58%,rgba(23,21,18,0) 100%)}
.slide.dv>.frame::before{background:linear-gradient(90deg,rgba(23,21,18,.9) 0,rgba(23,21,18,.72) 42%,rgba(23,21,18,0) 78%)}
.chips button i{display:inline-block;width:1.2rem;height:1.2rem;border-radius:50%;margin-right:.9rem;background:var(--ink)}
.chips button i.fm{background:var(--gold)}.chips button i.ev{background:var(--wine)}
.chips button.on i.pedro{background:var(--cream)}.chips button.on i.ev{background:#d9666f}
.cal-next{margin-top:auto;display:flex;flex-direction:column;gap:.4rem}
.cal-next .mono{margin-bottom:.6rem}
.cal-next button{display:grid;grid-template-columns:8.6rem 1fr;gap:1.2rem;align-items:baseline;text-align:left;padding:.9rem 1.2rem;margin:0 -1.2rem;border-radius:1rem;font:500 1.95rem/1.3 var(--body);color:var(--cream);transition:background .25s}
.cal-next button:hover,.cal-next button.act{background:rgba(195,154,100,.18)}
.cal-next b{font:500 1.8rem/1.3 var(--mono);color:var(--gold);text-transform:uppercase;letter-spacing:.1rem}
