:root{
  --bg:#090f18;
  --bg-2:#0d1521;
  --surface:#101925;
  --surface-2:#131f2e;
  --line:#223044;
  --line-soft:rgba(148,163,184,.15);
  --text:#f7f8fb;
  --muted:#9aa8bc;
  --muted-2:#6f7f94;
  --purple:#6d4bd1;
  --purple-2:#8a6fea;
  --cyan:#43c7da;
  --gold:#d8b466;
  --content:1240px;
  --radius:14px;
  --shadow:0 20px 60px rgba(0,0,0,.26);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{color:inherit}
::selection{background:rgba(109,75,209,.55);color:#fff}
.container{width:min(var(--content),calc(100% - 48px));margin-inline:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(9,15,24,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--line-soft)}
.header-inner{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.brand{display:inline-flex;flex-direction:column;gap:2px;flex-shrink:0}
.brand-name{font-size:25px;font-weight:800;letter-spacing:.16em;line-height:1;color:#fff}
.brand-subtitle{font-size:11px;text-transform:uppercase;letter-spacing:.22em;color:var(--muted);margin-top:6px}
.nav{display:flex;align-items:center;gap:27px;font-size:14px;font-weight:500;color:#d9e0ea}
.nav a{position:relative;padding:31px 0 28px}
.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:23px;height:1px;background:var(--gold);transition:right .2s ease}
.nav a:hover,.nav a.active{color:#fff}
.nav a:hover:after,.nav a.active:after{right:0}
.nav-toggle{display:none;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:9px 11px;cursor:pointer}
.nav-toggle span{display:block;width:20px;height:1px;background:#fff;margin:4px 0}
main{overflow:hidden}
.section{border-bottom:1px solid var(--line-soft)}
.section-pad{padding:88px 0}
.hero{padding:76px 0 70px}
.hero-grid{display:grid;grid-template-columns:minmax(0,.96fr) minmax(470px,1.04fr);gap:54px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.21em;text-transform:uppercase;color:var(--gold)}
.eyebrow:before{content:"";width:26px;height:1px;background:currentColor}
h1,h2,h3,p{margin-top:0}
.display{font-family:"Instrument Serif",Georgia,serif;font-weight:400;letter-spacing:-.02em}
.hero h1{font-size:clamp(56px,6.2vw,92px);line-height:.95;max-width:10.7ch;margin:0 0 28px}
.hero-lead{font-size:19px;line-height:1.78;color:#c9d2df;max-width:680px;margin-bottom:32px}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:38px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 19px;border-radius:8px;border:1px solid transparent;font-size:13px;font-weight:700;letter-spacing:.03em;transition:.2s ease}
.btn-primary{background:var(--purple);border-color:var(--purple);color:#fff}
.btn-primary:hover{background:var(--purple-2);transform:translateY(-1px)}
.btn-outline{border-color:#415068;color:#e7edf5;background:transparent}
.btn-outline:hover{border-color:#6a7890;background:#111b29}
.meta-strip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.meta-item{padding:18px 18px 18px 0;border-right:1px solid var(--line)}
.meta-item+ .meta-item{padding-left:18px}
.meta-item:last-child{border-right:0}
.meta-label{font-size:10px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.16em;margin-bottom:5px}
.meta-value{font-size:13px;color:#dce3ed}
.editorial-visual{position:relative;border:1px solid var(--line);background:var(--surface);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.visual-top{height:370px;padding:34px;position:relative;background:linear-gradient(145deg,#111b29,#0b111b)}
.visual-grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(148,163,184,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.07) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.92),transparent)}
.chart-bars{position:absolute;left:42px;right:42px;bottom:38px;height:220px;display:flex;align-items:flex-end;gap:10px}
.chart-bars i{display:block;flex:1;min-width:10px;border:1px solid rgba(255,255,255,.11);background:#172335}
.chart-bars i:nth-child(3n+1){background:rgba(109,75,209,.68)}
.chart-bars i:nth-child(4n){background:rgba(67,199,218,.48)}
.chart-bars i:nth-child(5n){background:rgba(216,180,102,.43)}
.chart-line{position:absolute;left:28px;right:28px;top:82px;height:130px}
.chart-line svg{width:100%;height:100%}
.visual-kicker{position:relative;z-index:2;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#aeb9c8}
.visual-number{position:relative;z-index:2;font-family:"Instrument Serif",Georgia,serif;font-size:53px;line-height:1;margin-top:8px}
.visual-caption{padding:24px 26px 27px;border-top:1px solid var(--line)}
.visual-caption h3{font-size:19px;line-height:1.35;margin-bottom:8px}
.visual-caption p{font-size:13px;color:var(--muted);margin:0}
.color-key{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.color-key div{padding:13px 17px;font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);border-right:1px solid var(--line)}
.color-key div:last-child{border-right:0}.key-purple:before,.key-cyan:before,.key-gold:before{content:"";display:inline-block;width:18px;height:2px;margin-right:8px;vertical-align:middle}.key-purple:before{background:var(--purple)}.key-cyan:before{background:var(--cyan)}.key-gold:before{background:var(--gold)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:38px}
.section-head-copy{max-width:760px}.section-head h2{font-size:clamp(36px,4vw,55px);line-height:1.02;margin:15px 0 12px}.section-head p{color:var(--muted);max-width:660px;margin:0}
.text-link{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#dfe7f2;white-space:nowrap}.text-link:hover{color:var(--gold)}
.feature-grid{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(330px,.72fr);gap:24px}
.card{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);overflow:hidden;transition:transform .2s ease,border-color .2s ease,background .2s ease}.card:hover{transform:translateY(-3px);border-color:#35455d;background:#111c2a}
.feature-card{min-height:520px;display:grid;grid-template-rows:265px 1fr}
.media-placeholder{position:relative;overflow:hidden;background:#101825;border-bottom:1px solid var(--line)}
.media-placeholder:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(148,163,184,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.07) 1px,transparent 1px);background-size:44px 44px}
.media-placeholder:after{content:"";position:absolute;width:46%;height:46%;right:10%;top:17%;border:1px solid rgba(67,199,218,.35);transform:skew(-14deg);box-shadow:-45px 45px 0 rgba(109,75,209,.09),-90px 90px 0 rgba(216,180,102,.05)}
.media-label{position:absolute;left:22px;bottom:18px;z-index:2;font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#dbe3ef;background:#09101a;border:1px solid #28374b;padding:7px 9px;border-radius:6px}
.card-body{padding:25px}.card-meta{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:15px}.category{font-size:10px;text-transform:uppercase;letter-spacing:.17em;font-weight:800;color:var(--gold)}.date{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted-2)}
.card-title{font-size:23px;line-height:1.25;margin-bottom:12px}.card-copy{font-size:14px;color:var(--muted);line-height:1.7}.card-link{display:inline-block;margin-top:14px;font-size:12px;font-weight:700;color:#eaf0f8}.card-link:hover{color:var(--cyan)}
.side-list{display:grid;gap:24px}.side-card{display:grid;grid-template-columns:140px 1fr;min-height:248px}.side-card .media-placeholder{border-bottom:0;border-right:1px solid var(--line)}.side-card .card-body{padding:20px}.side-card .card-title{font-size:18px}
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.publication-card .media-placeholder{height:185px}.publication-card .card-title{font-size:19px}
.split-grid{display:grid;grid-template-columns:.76fr 1.24fr;gap:54px;align-items:start}
.list-clean{list-style:none;padding:0;margin:26px 0 0;border-top:1px solid var(--line)}.list-clean li{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px;color:#d8e1ed}.list-clean span:last-child{color:var(--muted-2);font-size:11px}
.chart-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:28px}.chart-head{display:flex;justify-content:space-between;align-items:start;gap:30px;margin-bottom:24px}.chart-head h3{font-size:22px;margin-bottom:5px}.chart-head p{font-size:13px;color:var(--muted);margin:0}.chart-area{height:300px;position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background-image:linear-gradient(rgba(148,163,184,.06) 1px,transparent 1px);background-size:100% 48px}.chart-area svg{position:absolute;inset:25px 18px;width:calc(100% - 36px);height:calc(100% - 50px)}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.project-card{padding:26px;min-height:310px;display:flex;flex-direction:column}.project-index{font-family:"Instrument Serif",Georgia,serif;font-size:42px;color:#54637a;margin-bottom:auto}.project-card h3{font-size:20px;margin:25px 0 10px}.project-card p{font-size:13px;color:var(--muted);margin-bottom:20px}.tag-row{display:flex;gap:7px;flex-wrap:wrap}.tag{font-size:9px;letter-spacing:.13em;text-transform:uppercase;border:1px solid #314157;color:#aeb9c8;border-radius:999px;padding:6px 8px}
.services-preview{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-mini{padding:27px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:205px}.service-mini .service-no{font-size:10px;color:var(--gold);letter-spacing:.15em}.service-mini h3{font-size:18px;margin:36px 0 9px}.service-mini p{font-size:12px;color:var(--muted);margin:0}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.about-grid h2{font-size:48px;line-height:1.05;margin:15px 0}.about-copy{color:#c5cfdd;font-size:16px;line-height:1.85}.principles{display:grid;gap:0;border-top:1px solid var(--line)}.principle{padding:18px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:40px 1fr;gap:18px}.principle b{color:var(--gold);font-size:11px}.principle h3{font-size:16px;margin-bottom:4px}.principle p{font-size:12px;color:var(--muted);margin:0}
.cta{display:flex;align-items:center;justify-content:space-between;gap:50px;padding:44px;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius)}.cta h2{font-size:42px;line-height:1;margin:0 0 10px}.cta p{margin:0;color:var(--muted);max-width:650px}
.site-footer{padding:56px 0 30px;background:#070b12}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:50px}.footer-brand p{color:var(--muted);font-size:13px;max-width:420px;margin-top:18px}.footer-title{font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:var(--gold);margin-bottom:16px}.footer-links{display:grid;gap:9px;font-size:13px;color:#b7c2d0}.footer-links a:hover{color:#fff}.footer-bottom{margin-top:48px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:30px;color:var(--muted-2);font-size:11px}
.page-hero{padding:70px 0 60px;border-bottom:1px solid var(--line-soft)}.page-hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:end}.page-hero h1{font-size:clamp(50px,6vw,78px);line-height:.97;margin:18px 0}.page-hero p{color:#c8d1df;font-size:17px;line-height:1.8;max-width:690px}.page-aside{border-left:1px solid var(--line);padding-left:28px;color:var(--muted);font-size:13px}.page-aside strong{display:block;color:#fff;font-size:12px;margin-bottom:8px;letter-spacing:.08em;text-transform:uppercase}
.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}.filter-chip{border:1px solid var(--line);background:transparent;color:#aeb8c6;padding:8px 11px;border-radius:999px;font-size:11px}.filter-chip.active{background:#172235;color:#fff;border-color:#40506a}
.dataset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.dataset-card{padding:25px;display:grid;grid-template-columns:44px 1fr;gap:18px}.dataset-icon{width:44px;height:44px;border:1px solid #35455e;border-radius:9px;display:grid;place-items:center;color:var(--cyan);font-weight:800}.dataset-card h3{font-size:18px;margin-bottom:7px}.dataset-card p{font-size:13px;color:var(--muted);margin:0}.dataset-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--muted-2)}
.viz-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.viz-card{padding:0}.viz-card .chart-area{height:250px;border:0;border-bottom:1px solid var(--line)}.viz-card .card-body{padding:22px}.map-placeholder{height:250px;position:relative;background:#0d1622;border-bottom:1px solid var(--line);overflow:hidden}.map-placeholder:before{content:"";position:absolute;inset:-30px;background-image:linear-gradient(38deg,transparent 45%,rgba(67,199,218,.18) 45%,rgba(67,199,218,.18) 47%,transparent 47%),linear-gradient(-27deg,transparent 44%,rgba(109,75,209,.17) 44%,rgba(109,75,209,.17) 46%,transparent 46%);background-size:80px 80px}.map-placeholder:after{content:"";position:absolute;width:14px;height:14px;border:2px solid var(--gold);border-radius:50%;left:58%;top:42%;box-shadow:78px -38px 0 -3px var(--cyan),-110px 40px 0 -3px var(--purple)}
.projects-list{display:grid;gap:22px}.project-feature{display:grid;grid-template-columns:.72fr 1.28fr;min-height:360px}.project-visual{position:relative;border-right:1px solid var(--line);background:#0d1520;overflow:hidden}.project-visual:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 22% 34%,rgba(109,75,209,.4) 0 3px,transparent 4px),radial-gradient(circle at 63% 61%,rgba(67,199,218,.4) 0 3px,transparent 4px),radial-gradient(circle at 77% 24%,rgba(216,180,102,.4) 0 3px,transparent 4px),linear-gradient(rgba(148,163,184,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.05) 1px,transparent 1px);background-size:auto,auto,auto,38px 38px,38px 38px}.project-feature .card-body{padding:34px;display:flex;flex-direction:column;justify-content:center}.project-feature .card-title{font-size:31px}
.service-family{padding:0;overflow:hidden;margin-bottom:28px}.service-family-head{display:grid;grid-template-columns:170px 1fr;gap:34px;padding:30px 32px;border-bottom:1px solid var(--line)}.service-family-no{font-family:"Instrument Serif",Georgia,serif;font-size:54px;color:#536277}.service-family-head h2{font-size:29px;margin-bottom:10px}.service-family-head p{color:var(--muted);margin:0;max-width:850px}.subservices{display:grid;grid-template-columns:repeat(2,1fr)}.subservice{padding:25px 30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:190px}.subservice:nth-child(2n){border-right:0}.subservice h3{font-size:17px;margin-bottom:10px}.subservice p{font-size:13px;color:var(--muted);margin:0;line-height:1.7}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px}.contact-cards{display:grid;gap:12px;margin-top:30px}.contact-card{border-top:1px solid var(--line);padding:17px 0}.contact-card small{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted-2);margin-bottom:4px}.contact-card a{font-size:14px;color:#e4ebf5}.contact-card a:hover{color:var(--gold)}
.contact-form{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);padding:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}.field input,.field textarea,.field select{width:100%;border:1px solid #2c3a50;background:#0b121c;color:#f6f8fb;border-radius:8px;padding:12px 13px;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--purple)}.field textarea{min-height:150px;resize:vertical}.form-note{font-size:11px;color:var(--muted-2);margin-top:12px}.form-status{font-size:12px;color:var(--cyan);min-height:18px;margin-top:12px}
.not-found{min-height:70vh;display:grid;place-items:center;text-align:center;padding:80px 24px}.not-found .code{font-family:"Instrument Serif",Georgia,serif;font-size:100px;color:#536277;line-height:1}.not-found h1{font-size:32px;margin:14px 0}.not-found p{color:var(--muted)}
@media (max-width:1050px){.nav{gap:16px;font-size:13px}.hero-grid{grid-template-columns:1fr 1fr;gap:38px}.card-grid,.project-grid,.services-preview{grid-template-columns:repeat(2,1fr)}.feature-grid{grid-template-columns:1fr}.side-list{grid-template-columns:repeat(2,1fr)}.side-card{grid-template-columns:1fr}.side-card .media-placeholder{height:170px;border-right:0;border-bottom:1px solid var(--line)}.split-grid{grid-template-columns:1fr}.about-grid{gap:42px}.service-family-head{grid-template-columns:110px 1fr}}
@media (max-width:860px){.container{width:min(var(--content),calc(100% - 36px))}.header-inner{min-height:72px}.nav-toggle{display:block}.nav{display:none;position:absolute;top:72px;left:18px;right:18px;background:#0d1521;border:1px solid var(--line);border-radius:10px;padding:10px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:0}.nav.open{display:flex}.nav a{padding:12px 13px}.nav a:after{display:none}.hero{padding-top:56px}.hero-grid,.page-hero-grid,.contact-grid{grid-template-columns:1fr}.editorial-visual{max-width:700px}.meta-strip{grid-template-columns:1fr}.meta-item{border-right:0;border-bottom:1px solid var(--line);padding:14px 0}.meta-item+ .meta-item{padding-left:0}.meta-item:last-child{border-bottom:0}.section-pad{padding:68px 0}.card-grid,.project-grid,.dataset-grid,.viz-grid{grid-template-columns:1fr 1fr}.about-grid{grid-template-columns:1fr}.cta{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.project-feature{grid-template-columns:1fr}.project-visual{height:230px;border-right:0;border-bottom:1px solid var(--line)}.page-aside{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.service-family-head{grid-template-columns:1fr;gap:5px}.service-family-no{font-size:40px}.subservices{grid-template-columns:1fr}.subservice{border-right:0}.form-grid{grid-template-columns:1fr}}
@media (max-width:600px){.container{width:calc(100% - 30px)}.brand-name{font-size:21px}.brand-subtitle{font-size:9px}.hero h1{font-size:49px}.hero-lead{font-size:16px}.visual-top{height:310px;padding:26px}.visual-number{font-size:44px}.chart-bars{left:26px;right:26px}.section-pad{padding:56px 0}.section-head{align-items:flex-start;flex-direction:column;gap:16px}.section-head h2,.about-grid h2{font-size:37px}.card-grid,.project-grid,.services-preview,.dataset-grid,.viz-grid{grid-template-columns:1fr}.side-list{grid-template-columns:1fr}.feature-card{grid-template-rows:210px 1fr;min-height:0}.publication-card .media-placeholder{height:165px}.chart-panel{padding:20px}.chart-area{height:240px}.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.footer-bottom{flex-direction:column}.cta{padding:28px}.cta h2{font-size:34px}.page-hero{padding:54px 0 46px}.page-hero h1{font-size:50px}.service-family-head{padding:24px}.subservice{padding:22px}.contact-form{padding:20px}}

/* ==========================================================================
   NostxlgIA — HERO ÚNICO / vNext
   Registros interactivos · comparación · tendencia · ciudad analítica
   ========================================================================== */
.data-territory-visual{isolation:isolate;display:flex;flex-direction:column}
.data-territory-visual .visual-top{height:448px;padding:0;position:relative;background:radial-gradient(circle at 78% 20%,rgba(67,199,218,.10),transparent 30%),radial-gradient(circle at 24% 82%,rgba(109,75,209,.11),transparent 34%),linear-gradient(160deg,#101a28 0%,#0b121c 100%)}
.territory-stage{position:relative;overflow:hidden;perspective:1100px}
.territory-stage:after{content:"";position:absolute;left:0;right:0;bottom:0;height:29%;background:linear-gradient(to top,rgba(8,13,21,.84),transparent);pointer-events:none;z-index:3}
.data-territory-visual .visual-grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(148,163,184,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.06) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.94),rgba(0,0,0,.25) 80%,transparent);opacity:.9;pointer-events:none}
.territory-glow{position:absolute;width:230px;height:230px;border-radius:50%;filter:blur(58px);opacity:.12;pointer-events:none}
.territory-glow-cyan{right:-60px;top:22px;background:var(--cyan)}
.territory-glow-purple{left:-80px;bottom:-90px;background:var(--purple)}
.territory-header{position:absolute;z-index:25;left:24px;right:24px;top:18px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.visual-kicker{font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#c4cedb}
.territory-toolbar{display:flex;align-items:center;gap:9px}
.territory-control{appearance:none;border:1px solid rgba(148,163,184,.22);background:rgba(7,12,19,.62);color:#c8d3df;border-radius:999px;font:700 9px/1 Inter,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;min-width:32px;height:30px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
.territory-control:hover,.territory-control:focus-visible{background:rgba(15,24,36,.94);border-color:rgba(67,199,218,.48);color:#fff;outline:0;transform:translateY(-1px)}
.territory-control[disabled]{opacity:.42;cursor:default;pointer-events:none}
.territory-control-wide{min-width:74px}
.territory-step{display:flex;align-items:center;gap:7px;max-width:160px;padding:6px 10px;border:1px solid rgba(148,163,184,.20);border-radius:999px;background:rgba(7,12,19,.58);backdrop-filter:blur(8px);font-size:8px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:#aeb9c8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.territory-step-dot{flex:0 0 auto;width:5px;height:5px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px rgba(67,199,218,.08),0 0 16px rgba(67,199,218,.7)}
.data-territory-visual[data-paused="true"] .territory-step-dot{background:var(--gold);box-shadow:0 0 0 4px rgba(216,180,102,.08),0 0 16px rgba(216,180,102,.48)}

.territory-scene{--rx:0deg;--ry:0deg;position:absolute;inset:58px 10px 14px;z-index:2;overflow:hidden;transform-style:preserve-3d;transform:perspective(1000px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .28s ease-out;will-change:transform}
.scene-layer{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(9px) scale(.988);transition:opacity .42s ease,transform .6s cubic-bezier(.2,.76,.2,1),visibility 0s linear .45s}
.data-territory-visual[data-phase="data"] [data-scene="data"],
.data-territory-visual[data-phase="bars"] [data-scene="bars"],
.data-territory-visual[data-phase="line"] [data-scene="line"],
.data-territory-visual[data-phase="territory"] [data-scene="territory"]{opacity:1;visibility:visible;transform:translateY(0) scale(1);pointer-events:auto;transition-delay:0s}

/* ---- Registros + matriz viva ---- */
.data-workbench{display:grid;grid-template-columns:minmax(0,.92fr) minmax(205px,1.08fr);grid-template-rows:minmax(0,1fr);gap:16px;padding:16px 18px 18px;align-items:stretch;height:100%;min-height:0}
.data-registers,.data-matrix-panel{min-width:0;min-height:0;height:100%;overflow:hidden;border:1px solid rgba(148,163,184,.14);border-radius:11px;background:linear-gradient(180deg,rgba(8,15,24,.78),rgba(6,11,18,.58));box-shadow:0 18px 36px rgba(0,0,0,.15);backdrop-filter:blur(9px)}
.data-registers{padding:13px 12px 11px;display:flex;flex-direction:column}
.data-phase-heading,.data-matrix-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.data-phase-heading>div,.data-matrix-heading>div{display:grid;gap:3px}
.data-phase-kicker,.data-matrix-heading span{font:700 7px/1 Inter,system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.data-phase-heading strong{font:500 17px/1.06 "Instrument Serif",Georgia,serif;color:#edf3f8}
.data-sample{font:600 7px/1 Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#8294a8;padding:5px 7px;border:1px solid rgba(148,163,184,.12);border-radius:999px;white-space:nowrap;transition:color .18s ease,border-color .18s ease,background .18s ease,transform .18s ease}.data-sample.is-updating{color:#dcebf2;border-color:rgba(67,199,218,.35);background:rgba(67,199,218,.06);transform:translateY(-1px)}
.data-record-list{display:grid;flex:1;gap:4px;margin-top:9px;min-height:0;overflow:hidden;align-content:start}
.data-record{appearance:none;width:100%;min-height:27px;display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:7px;padding:4px 7px;border:1px solid rgba(148,163,184,.11);border-radius:6px;background:rgba(13,23,35,.68);box-shadow:inset 2px 0 0 rgba(67,199,218,.24);color:inherit;text-align:left;cursor:pointer;opacity:1;transform:none;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,opacity .18s ease,filter .18s ease}
.data-record span{font:700 6px/1 Inter,system-ui,sans-serif;letter-spacing:.13em;text-transform:uppercase;color:#718399}
.data-record strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 8px/1.1 Inter,system-ui,sans-serif;color:#dbe4ee}
.data-record em{font:700 7px/1 Inter,system-ui,sans-serif;font-style:normal;color:#9eb0c4;white-space:nowrap}
.data-record:hover,.data-record:focus-visible,.data-record.is-active{outline:0;border-color:rgba(67,199,218,.46);background:rgba(18,34,48,.92);box-shadow:inset 3px 0 0 var(--cyan),0 0 18px rgba(67,199,218,.08)}

.data-matrix-panel{padding:14px 13px 12px;display:flex;flex-direction:column}
.data-matrix-heading strong{font:600 9px/1.2 Inter,system-ui,sans-serif;color:#dce5ee}
.data-matrix-heading small{display:flex;align-items:center;gap:5px;font:600 6px/1 Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#728398;white-space:nowrap}
.data-matrix-heading small i{display:block;width:34px;height:4px;border-radius:999px;background:linear-gradient(90deg,rgba(67,199,218,.10),rgba(67,199,218,.96));box-shadow:0 0 8px rgba(67,199,218,.12)}.data-territory-visual[data-phase="data"] .data-matrix-heading small i{animation:matrixScaleCycle 5.4s ease-in-out infinite}
.data-matrix{flex:1 1 auto;width:100%;height:auto;min-height:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));gap:5px;margin:12px 0 0;padding:7px;border:1px solid rgba(148,163,184,.10);border-radius:8px;background:rgba(4,9,15,.42);contain:layout paint}
.matrix-cell{position:relative;appearance:none;min-width:0;min-height:0;border:1px solid rgba(92,180,207,.10);border-radius:3px;background:rgba(67,199,218,var(--alpha,.18));box-shadow:inset 0 0 10px rgba(67,199,218,.03);cursor:pointer;opacity:1;transform:none;transition:filter .18s ease,box-shadow .18s ease,border-color .18s ease,background-color .25s ease}
.matrix-cell[data-tone="purple"]{background:rgba(109,75,209,var(--alpha,.28));border-color:rgba(138,111,234,.14)}
.matrix-cell[data-tone="gold"]{background:rgba(216,180,102,var(--alpha,.28));border-color:rgba(216,180,102,.16)}
.data-territory-visual[data-phase="data"] .matrix-cell{animation:cellChromatic 6.4s ease-in-out var(--color-delay) infinite,cellBreath 3.1s ease-in-out var(--pulse-delay) infinite}
.matrix-cell:hover,.matrix-cell:focus-visible,.matrix-cell.is-active-cell{animation-play-state:paused;outline:0;transform:none!important;filter:brightness(1.45) saturate(1.16);border-color:rgba(255,255,255,.38);box-shadow:0 0 0 1px rgba(255,255,255,.08),0 0 18px rgba(67,199,218,.20)}
.matrix-tooltip{position:absolute;z-index:40;left:50%;bottom:calc(100% + 7px);min-width:118px;max-width:165px;padding:7px 8px;border:1px solid rgba(148,163,184,.22);border-radius:7px;background:rgba(5,10,17,.97);box-shadow:0 14px 30px rgba(0,0,0,.34);transform:translate(-50%,5px);opacity:0;pointer-events:none;color:#e8eef5;text-align:left;white-space:nowrap;transition:.16s ease;font:600 7px/1.35 Inter,system-ui,sans-serif}
.matrix-tooltip b,.matrix-tooltip span{display:block}.matrix-tooltip b{font-size:8px;color:#fff}.matrix-tooltip span{margin-top:2px;color:#8fa2b6;font-weight:500}
.matrix-cell:hover .matrix-tooltip,.matrix-cell:focus-visible .matrix-tooltip{opacity:1;transform:translate(-50%,0)}
.data-indicators{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.data-indicators>div{padding:6px 6px 5px;border-top:1px solid rgba(148,163,184,.15);display:grid;gap:3px;opacity:0;transform:translateY(5px)}
.data-indicators span{font:700 6px/1 Inter,system-ui,sans-serif;letter-spacing:.11em;text-transform:uppercase;color:#718399}
.data-indicators strong{font:700 11px/1 Inter,system-ui,sans-serif;color:#e5edf5}
.data-territory-visual[data-phase="data"] .data-indicators>div{animation:signalEnter .35s ease var(--enter-delay) forwards}

/* ---- Barras ---- */
.bars-scene{padding:20px 27px 16px}
.bars-chart{position:relative;width:100%;height:100%;padding:28px 18px 34px 38px;display:flex;gap:18px;align-items:flex-end}
.bars-grid{position:absolute;inset:22px 18px 34px 38px;background:repeating-linear-gradient(to top,transparent 0 50px,rgba(148,163,184,.10) 50px 51px);border-left:1px solid rgba(148,163,184,.18);border-bottom:1px solid rgba(148,163,184,.18)}
.bars-axis{position:absolute;background:rgba(148,163,184,.18)}.bars-axis-y{left:38px;top:22px;bottom:34px;width:1px}.bars-axis-x{left:38px;right:18px;bottom:34px;height:1px}
.chart-bar{position:relative;z-index:2;flex:1;height:100%;min-width:0;padding:0 0 19px;background:none;border:0;pointer-events:none;cursor:pointer;display:flex;justify-content:center;align-items:flex-end;color:inherit}
.chart-bar .bar-fill{width:100%;max-width:44px;height:calc(var(--value,50) * .88%);border:1px solid rgba(67,199,218,.34);border-bottom:0;background:linear-gradient(to top,rgba(67,199,218,.12),rgba(67,199,218,.72));box-shadow:0 -6px 18px rgba(67,199,218,.08);transform-origin:bottom;transform:scaleY(.05);transition:height .85s cubic-bezier(.2,.76,.2,1),transform .6s ease,border-color .2s ease,filter .2s ease;border-radius:6px 6px 2px 2px}
.chart-bar:nth-child(2n) .bar-fill{background:linear-gradient(to top,rgba(109,75,209,.12),rgba(109,75,209,.68));border-color:rgba(109,75,209,.34)}
.chart-bar:nth-child(4) .bar-fill{background:linear-gradient(to top,rgba(216,180,102,.12),rgba(216,180,102,.72));border-color:rgba(216,180,102,.34)}
.chart-bar .bar-cap{position:absolute;bottom:calc((var(--value,50) * .88%) + 19px);width:100%;max-width:44px;height:2px;background:rgba(255,255,255,.20);opacity:0;transform:scaleX(.45);transition:.2s ease}
.chart-bar .bar-label{position:absolute;bottom:0;color:#92a1b3;font:700 9px/1 Inter,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.chart-bar .bar-tooltip{position:absolute;left:50%;bottom:calc((var(--value,50) * .88%) + 31px);transform:translate(-50%,8px);padding:8px 10px;border-radius:8px;border:1px solid rgba(148,163,184,.2);background:rgba(6,11,18,.96);box-shadow:0 16px 30px rgba(0,0,0,.26);color:#eaf1f7;min-width:112px;opacity:0;pointer-events:none;transition:.18s ease}
.bar-tooltip strong,.bar-tooltip em,.bar-tooltip small{display:block;font-style:normal}.bar-tooltip strong{font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:#d7e0ea}.bar-tooltip em{margin-top:4px;font-size:15px;font-weight:700;color:#fff}.bar-tooltip small{margin-top:2px;font-size:9px;color:#8ea2b6}
.data-territory-visual[data-phase="bars"] .bars-scene,.data-territory-visual[data-phase="bars"] .chart-bar{pointer-events:auto}
.data-territory-visual[data-phase="bars"] .chart-bar .bar-fill{transform:scaleY(1)}
.chart-bar:hover .bar-fill,.chart-bar:focus-visible .bar-fill{border-color:rgba(216,180,102,.78);filter:brightness(1.12)}
.chart-bar:hover .bar-cap,.chart-bar:focus-visible .bar-cap{opacity:1;transform:scaleX(1)}
.chart-bar:hover .bar-tooltip,.chart-bar:focus-visible .bar-tooltip{opacity:1;transform:translate(-50%,0)}.chart-bar:focus-visible{outline:0}

/* ---- Tendencia ---- */
.analysis-svg{width:100%;height:100%;overflow:visible;padding:4px 8px 0}
.trend-grid line{stroke:rgba(148,163,184,.08);stroke-width:1}.chart-axis{stroke:rgba(148,163,184,.18);stroke-width:1}
.analysis-trend{fill:none;stroke:var(--cyan);stroke-width:2.6;stroke-linecap:round;filter:url(#trendGlow);stroke-dasharray:720;stroke-dashoffset:720}
.analysis-dot{fill:#0d1723;stroke:var(--gold);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center;transform:scale(.3)}
.analysis-metric{fill:#cbd7e4;font:700 11px Inter,system-ui,sans-serif;letter-spacing:.08em}.trend-label{fill:#6f8095;font:700 8px Inter,system-ui,sans-serif;letter-spacing:.12em}
.data-territory-visual[data-phase="line"] .analysis-trend{animation:lineDraw 1.55s cubic-bezier(.2,.75,.2,1) forwards}
.data-territory-visual[data-phase="line"] .analysis-dot{animation:dotPop .45s ease forwards}.data-territory-visual[data-phase="line"] .analysis-dot:nth-child(2){animation-delay:.08s}.data-territory-visual[data-phase="line"] .analysis-dot:nth-child(3){animation-delay:.16s}.data-territory-visual[data-phase="line"] .analysis-dot:nth-child(4){animation-delay:.24s}.data-territory-visual[data-phase="line"] .analysis-dot:nth-child(5){animation-delay:.32s}.data-territory-visual[data-phase="line"] .analysis-dot:nth-child(6){animation-delay:.40s}.data-territory-visual[data-phase="line"] .analysis-dot:nth-child(7){animation-delay:.48s}.data-territory-visual[data-phase="line"] .analysis-dot:nth-child(8){animation-delay:.56s}

/* ---- Ciudad isométrica: barrios, calles y tipologías urbanas ---- */
.city-scene{position:relative;overflow:hidden;background:radial-gradient(ellipse at 52% 108%,rgba(67,199,218,.10),transparent 52%),linear-gradient(180deg,rgba(6,12,19,.12),rgba(6,12,19,.03));cursor:default}
.city-svg{display:block;width:100%;height:100%;overflow:hidden;filter:drop-shadow(0 24px 30px rgba(0,0,0,.30));transform:scale(1.17);transform-origin:50% 58%}
.city-ground{fill:#071019}
.city-block{stroke-width:.85;vector-effect:non-scaling-stroke;filter:drop-shadow(0 5px 4px rgba(0,0,0,.10))}
.city-block.zone-core{fill:rgba(19,38,52,.94);stroke:rgba(95,190,218,.27)}
.city-block.zone-mid{fill:rgba(15,31,43,.92);stroke:rgba(82,160,191,.20)}
.city-block.zone-edge{fill:rgba(12,25,35,.90);stroke:rgba(112,143,163,.14)}
.city-park{fill:rgba(14,48,48,.82);stroke:rgba(67,199,218,.22);stroke-width:.8;vector-effect:non-scaling-stroke}
.city-plaza{fill:rgba(31,34,45,.84);stroke:rgba(216,180,102,.20);stroke-width:.8;vector-effect:non-scaling-stroke}
.city-road-base{stroke:#142433;stroke-linecap:round;vector-effect:non-scaling-stroke}
.city-road-base.major{stroke-width:18}.city-road-base.secondary{stroke-width:10.5;opacity:.98}
.city-road-mark{stroke:rgba(216,180,102,.46);stroke-width:1.05;stroke-dasharray:5 7;vector-effect:non-scaling-stroke;pointer-events:none}
.city-road-flow{stroke:rgba(67,199,218,.50);stroke-width:1.05;stroke-linecap:round;stroke-dasharray:4 10;vector-effect:non-scaling-stroke;opacity:.58;pointer-events:none}
.city-road-flow.gold{stroke:rgba(216,180,102,.46)}
.data-territory-visual[data-phase="territory"] .city-road-flow{animation:roadFlow var(--flow-speed,3.4s) linear var(--flow-delay,0s) infinite}
.city-building{opacity:0;transform-box:fill-box;transform-origin:50% 100%;transform:translateY(9px) scale(.94);cursor:pointer;transition:transform .18s ease,filter .18s ease,opacity .18s ease}
.data-territory-visual[data-phase="territory"] .city-building{animation:cityRise .64s cubic-bezier(.18,.78,.22,1) var(--delay) forwards}
.city-building .face-left{fill:rgba(33,119,143,.66);stroke:rgba(75,181,205,.16);stroke-width:.62}
.city-building .face-right{fill:rgba(14,66,87,.78);stroke:rgba(60,159,185,.14);stroke-width:.62}
.city-building .face-top{fill:rgba(140,211,224,.96);stroke:rgba(255,255,255,.14);stroke-width:.62}
.city-building.type-house .face-top{fill:rgba(108,190,205,.95)}
.city-building.type-house.accent-gold .face-top{fill:rgba(217,181,99,.96)}
.city-building.type-midrise .face-top{fill:rgba(126,208,220,.97)}
.city-building.type-commercial .face-top{fill:rgba(210,181,104,.94)}
.city-building.type-industrial .face-top{fill:rgba(111,178,191,.95)}
.city-building.type-civic .face-top{fill:rgba(190,228,232,.96)}
.city-building.type-tower .face-left{fill:rgba(45,154,184,.70)}
.city-building.type-tower .face-right{fill:rgba(17,91,118,.82)}
.city-building.type-tower .face-top{fill:rgba(222,199,135,.98)}
.city-building.accent-purple .face-top{fill:rgba(139,113,234,.90)}
.city-building .roof-cap{fill:rgba(236,247,249,.30);stroke:rgba(255,255,255,.18);stroke-width:.45}
.city-building .window-strip{stroke:rgba(202,241,247,.42);stroke-width:.58;vector-effect:non-scaling-stroke}
.city-building .window-strip-v{stroke:rgba(202,241,247,.20);stroke-width:.45;vector-effect:non-scaling-stroke}
.city-building .roof-ridge{stroke:rgba(236,209,144,.86);stroke-width:.72;vector-effect:non-scaling-stroke}.city-building .roof-slope-a{fill:rgba(89,176,192,.94);stroke:rgba(255,255,255,.12);stroke-width:.5}.city-building .roof-slope-b{fill:rgba(42,124,148,.96);stroke:rgba(255,255,255,.10);stroke-width:.5}.city-building.accent-gold .roof-slope-a{fill:rgba(222,188,108,.97)}.city-building.accent-gold .roof-slope-b{fill:rgba(163,126,61,.97)}.city-building .roof-gable{fill:rgba(75,153,171,.95);stroke:rgba(255,255,255,.10);stroke-width:.45}
.city-building:focus-visible{outline:none}
.city-scene.has-focus .city-building:not(.is-hovered){opacity:.25!important;filter:saturate(.50) brightness(.68)}
.city-building.is-hovered{opacity:1!important;transform:translateY(-5px) scale(1.035);filter:brightness(1.18) saturate(1.18)}
.city-building.is-hovered .face-top{stroke:rgba(255,255,255,.38);filter:drop-shadow(0 0 9px rgba(67,199,218,.34))}
.city-tree-trunk{stroke:rgba(216,180,102,.46);stroke-width:1.2;vector-effect:non-scaling-stroke}
.city-tree-crown{fill:rgba(46,151,144,.78);stroke:rgba(102,213,201,.20);stroke-width:.6}
.city-car .car-top{fill:rgba(216,180,102,.90)}.city-car.alt .car-top{fill:rgba(93,196,216,.90)}
.city-car .car-side{fill:rgba(18,91,111,.88);stroke:rgba(255,255,255,.10);stroke-width:.35}
.city-tooltip{position:absolute;z-index:18;left:0;top:0;transform:translate(-50%,-100%);min-width:126px;max-width:190px;padding:8px 9px;border:1px solid rgba(148,163,184,.22);border-radius:8px;background:rgba(5,10,17,.97);box-shadow:0 14px 30px rgba(0,0,0,.34);opacity:0;pointer-events:none;color:#e8eef5;text-align:left;white-space:nowrap;transition:opacity .14s ease,transform .14s ease}
.city-tooltip strong,.city-tooltip span{display:block}.city-tooltip strong{font:700 8px/1.2 Inter,system-ui,sans-serif;letter-spacing:.04em;color:#fff}.city-tooltip span{margin-top:3px;font:600 7px/1.35 Inter,system-ui,sans-serif;color:#8fa2b6}.city-tooltip.is-visible{opacity:1;transform:translate(-50%,calc(-100% - 5px))}
.territory-stats{z-index:12;pointer-events:none}.territory-stat{position:absolute;transform:translate(-50%,-50%) translateY(8px);display:inline-flex;gap:5px;align-items:baseline;padding:6px 8px;border:1px solid rgba(67,199,218,.24);border-radius:999px;background:rgba(4,10,16,.91);box-shadow:0 10px 24px rgba(0,0,0,.27);backdrop-filter:blur(10px);white-space:nowrap;opacity:0;transition:transform .38s ease,opacity .3s ease}.territory-stat strong{font-size:13px;line-height:1;color:#fff}.territory-stat span{font-size:8px;font-weight:600;letter-spacing:.11em;color:#91a4b8;text-transform:uppercase}.territory-stat-alt{border-color:rgba(216,180,102,.24)}.territory-stat-purple{border-color:rgba(138,111,234,.28)}
.data-territory-visual[data-phase="territory"] .territory-stat{transform:translate(-50%,-50%);opacity:1}.data-territory-visual[data-phase="territory"] .territory-stat:nth-child(2){transition-delay:.08s}.data-territory-visual[data-phase="territory"] .territory-stat:nth-child(3){transition-delay:.15s}.data-territory-visual[data-phase="territory"] .territory-stat:nth-child(4){transition-delay:.22s}.data-territory-visual[data-phase="territory"] .territory-stat:nth-child(5){transition-delay:.29s}
.territory-hotspot{--hotspot:#43c7da;position:absolute;z-index:15;width:12px;height:12px;border-radius:50%;background:#0b141e;border:2px solid var(--hotspot);box-shadow:0 0 0 5px rgba(67,199,218,.06),0 0 16px rgba(67,199,218,.28);transform:translate(-50%,-50%);transition:transform .18s ease,box-shadow .18s ease,opacity .22s ease;opacity:0;pointer-events:none}
.territory-hotspot span{position:absolute;left:50%;bottom:18px;transform:translate(-50%,5px);padding:6px 8px;border:1px solid rgba(148,163,184,.2);border-radius:5px;background:rgba(6,11,18,.96);color:#eef3f8;font-size:8px;font-weight:700;letter-spacing:.05em;white-space:nowrap;opacity:0;pointer-events:none;transition:.16s ease;box-shadow:0 9px 24px rgba(0,0,0,.26)}
.data-territory-visual[data-phase="territory"] .territory-hotspot{opacity:1;pointer-events:auto}.territory-hotspot:hover,.territory-hotspot:focus-visible{transform:translate(-50%,-50%) scale(1.32);outline:0;box-shadow:0 0 0 7px rgba(67,199,218,.10),0 0 27px rgba(67,199,218,.50)}.territory-hotspot:hover span,.territory-hotspot:focus-visible span{opacity:1;transform:translate(-50%,0)}
.hotspot-evaluacion{left:29%;top:41%}.hotspot-planeacion{left:48%;top:23%;--hotspot:#d8b466}.hotspot-cartografia{left:72%;top:34%}.hotspot-datos{left:38%;top:67%}.hotspot-tecnologia{left:59%;top:61%;--hotspot:#8a6fea}.hotspot-electoral{left:76%;top:67%;--hotspot:#d8b466}

.data-territory-visual .visual-caption{position:relative;z-index:5;padding:20px 23px 19px;border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(16,25,37,.97),var(--surface))}.data-territory-visual .visual-caption h3{font-family:"Instrument Serif",Georgia,serif;font-size:24px;line-height:1.08;font-weight:400;letter-spacing:-.01em;margin:0 0 7px}.data-territory-visual .visual-caption p{margin:0;color:#aab8cb;font-size:12px;line-height:1.62}.data-territory-visual .color-key{margin-top:0}


@keyframes recordStreamIn{0%{opacity:0;transform:translateY(10px) scale(.985)}70%{opacity:1;transform:translateY(-1px) scale(1)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes recordStreamOut{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(-10px)}}
@keyframes matrixScaleCycle{0%,100%{background:linear-gradient(90deg,rgba(67,199,218,.10),rgba(67,199,218,.96));box-shadow:0 0 8px rgba(67,199,218,.12)}33%{background:linear-gradient(90deg,rgba(138,111,234,.10),rgba(138,111,234,.96));box-shadow:0 0 8px rgba(138,111,234,.14)}66%{background:linear-gradient(90deg,rgba(216,180,102,.10),rgba(216,180,102,.96));box-shadow:0 0 8px rgba(216,180,102,.14)}}
@keyframes recordEnter{0%{opacity:0;transform:translateX(-18px) scale(.98)}60%{opacity:1;transform:translateX(2px) scale(1)}100%{opacity:1;transform:translateX(0) scale(1)}}
@keyframes cellChromatic{
  0%,100%{background-color:rgba(67,199,218,.22);border-color:rgba(67,199,218,.14)}
  14%{background-color:rgba(67,199,218,.72);border-color:rgba(123,231,244,.28)}
  32%{background-color:rgba(109,75,209,.30);border-color:rgba(138,111,234,.18)}
  47%{background-color:rgba(109,75,209,.70);border-color:rgba(166,145,246,.30)}
  65%{background-color:rgba(216,180,102,.28);border-color:rgba(216,180,102,.18)}
  81%{background-color:rgba(216,180,102,.68);border-color:rgba(239,208,137,.30)}
  92%{background-color:rgba(67,199,218,.44);border-color:rgba(67,199,218,.20)}
}
@keyframes cellBreath{0%,100%{filter:brightness(.88);box-shadow:inset 0 0 10px rgba(67,199,218,.02)}42%{filter:brightness(1.42);box-shadow:0 0 18px rgba(67,199,218,.16)}72%{filter:brightness(1.04)}}
@keyframes signalEnter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes lineDraw{from{stroke-dashoffset:720}to{stroke-dashoffset:0}}
@keyframes dotPop{0%{opacity:0;transform:scale(.3)}70%{opacity:1;transform:scale(1.16)}100%{opacity:1;transform:scale(1)}}
@keyframes cityRise{0%{opacity:0;transform:translateY(9px) scale(.9)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes roadFlow{to{stroke-dashoffset:-52}}

@media (max-width:1040px){.hero-grid{grid-template-columns:minmax(0,1fr);gap:42px}.data-territory-visual{max-width:760px}}
@media (max-width:860px){.data-territory-visual .visual-top{height:410px}.territory-scene{inset:60px 6px 12px}.territory-hotspot span{display:none}.data-workbench{grid-template-columns:.94fr 1.06fr;padding:14px;gap:11px}.data-matrix{flex-basis:195px;height:195px}}
@media (max-width:600px){.data-territory-visual .visual-top{height:350px}.territory-header{left:15px;right:15px;top:13px;align-items:flex-start;flex-direction:column;gap:8px}.territory-toolbar{width:100%;justify-content:space-between}.visual-kicker{font-size:8px}.territory-step{font-size:7px;padding:5px 7px;max-width:132px}.territory-control{height:27px;font-size:8px}.territory-scene{inset:66px -5px 8px}.data-workbench{grid-template-columns:.9fr 1.1fr;padding:7px 9px 9px;gap:7px}.data-registers,.data-matrix-panel{padding:7px 6px 6px;border-radius:8px}.data-phase-kicker,.data-matrix-heading span{font-size:5px}.data-phase-heading strong{font-size:12px}.data-matrix-heading strong{font-size:7px}.data-matrix-heading small,.data-sample{display:none}.data-record-list{gap:2px;margin-top:5px}.data-record{min-height:20px;grid-template-columns:31px minmax(0,1fr);gap:4px;padding:2px 4px}.data-record span{font-size:4.8px}.data-record strong{font-size:6px}.data-record em{display:none}.data-matrix{gap:2px;margin:5px 0;flex-basis:155px;height:155px;padding:3px}.matrix-tooltip{display:none}.data-indicators{gap:2px}.data-indicators>div{padding:3px 2px}.data-indicators span{font-size:4.8px}.data-indicators strong{font-size:8px}.bars-scene{padding:16px 14px 12px}.bars-chart{padding:22px 12px 28px 28px;gap:9px}.chart-bar .bar-fill,.chart-bar .bar-cap{max-width:28px}.chart-bar .bar-tooltip{display:none}.territory-stat{padding:4px 6px}.territory-stat strong{font-size:10px}.territory-stat span{font-size:6px}.territory-hotspot{width:10px;height:10px}.data-territory-visual .visual-caption{padding:17px}.data-territory-visual .visual-caption h3{font-size:20px}.data-territory-visual .visual-caption p{font-size:11px}}
@media (prefers-reduced-motion:reduce){.territory-scene,.territory-hotspot,.territory-hotspot span,.territory-control,.scene-layer,.data-record,.matrix-cell,.data-indicators>div,.territory-stat,.chart-bar .bar-fill,.city-building{transition:none!important;animation:none!important}.data-territory-visual[data-phase="territory"] .city-building,.data-territory-visual[data-phase="territory"] .territory-stat,.data-territory-visual[data-phase="territory"] .territory-hotspot{opacity:1!important;transform:none!important}}

.data-indicators{display:none!important}

/* Miniatura cartográfica de proyectos: prefijo aislado `ntx-` */
.project-visual.ntx-territorial{display:grid;grid-template-columns:minmax(0,76fr) minmax(106px,24fr);height:100%;min-width:0;background:#e8ece9;isolation:isolate}
.project-visual.ntx-territorial:before{display:none}
.ntx-map-pane{position:relative;min-width:0;overflow:hidden;background:linear-gradient(145deg,#eef1ee,#dfe5e1)}
.ntx-map-pane:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(53,76,79,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(53,76,79,.035) 1px,transparent 1px);background-size:28px 28px}
.ntx-map{position:absolute;inset:24px 3px 13px;width:calc(100% - 6px);height:calc(100% - 37px);overflow:visible}
.ntx-map-meta{position:absolute;z-index:4;top:10px;left:11px;right:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#506266;font:700 6px/1 Inter,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;pointer-events:none}
.ntx-map-meta strong{color:#28494f;font-size:6px;white-space:nowrap}
.ntx-territory-layer{opacity:0;transition:opacity .75s ease}
.ntx-territorial:not([data-stage="reset"]) .ntx-territory-layer{opacity:1}
.ntx-unit{fill:#d2d8d4;stroke:#f7f8f5;stroke-width:.95;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .72s ease,filter .16s ease,stroke .16s ease,stroke-width .16s ease;outline:none}
.ntx-unit[data-class="0"]{fill:#7967a0}
.ntx-unit[data-class="1"]{fill:#467680}
.ntx-unit[data-class="2"]{fill:#789079}
.ntx-unit[data-class="3"]{fill:#bea15f}
.ntx-territorial[data-stage="layer"] .ntx-unit{fill:#cbd3cf}
.ntx-territorial[data-stage="variable"] .ntx-unit{transition-delay:var(--enter-delay,0ms)}
.ntx-unit:hover,.ntx-unit:focus-visible,.ntx-unit.is-selected{filter:brightness(1.13) saturate(1.08);stroke:#263b42;stroke-width:2.25}
.ntx-unit.is-selected{filter:brightness(1.16) saturate(1.12);stroke:#162d34;stroke-width:2.8}
.ntx-roads,.ntx-pois{opacity:1;transition:opacity .3s ease;pointer-events:none}
.ntx-road{fill:none;stroke:rgba(47,70,73,.11);stroke-width:.6;stroke-linecap:round;vector-effect:non-scaling-stroke}
.ntx-road-major{stroke:rgba(250,251,247,.48);stroke-width:1.4}
.ntx-road-secondary{stroke:rgba(41,67,71,.11);stroke-width:.55}
.ntx-pois circle{fill:#f3f2e9;stroke:#5b4b78;stroke-width:1.2;vector-effect:non-scaling-stroke;transition:fill .2s ease,stroke .2s ease}
.ntx-pois path{fill:none;stroke:#5b4b78;stroke-width:.9;stroke-linecap:round;vector-effect:non-scaling-stroke;transition:stroke .2s ease}
.ntx-territorial:is([data-stage="selected"],[data-stage="updated"]) .ntx-poi-focus circle{fill:#d9c483;stroke:#52466c}.ntx-territorial:is([data-stage="selected"],[data-stage="updated"]) .ntx-poi-focus path{stroke:#52466c}
.ntx-layer-territory-off .ntx-territory-layer{opacity:0!important;pointer-events:none}
.ntx-layer-roads-off .ntx-roads,.ntx-layer-pois-off .ntx-pois{opacity:0}
.ntx-map-scale{position:absolute;z-index:4;left:10px;bottom:9px;display:flex;align-items:end;gap:5px;color:#536468;font:700 6px/1 Inter,system-ui,sans-serif;text-transform:uppercase;pointer-events:none}
.ntx-map-scale i{width:25px;height:5px;border-left:1px solid #536468;border-right:1px solid #536468;border-bottom:1px solid #536468}
.ntx-map-status{position:absolute;z-index:4;right:8px;bottom:7px;max-width:58%;display:flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid rgba(34,58,63,.16);border-radius:999px;background:rgba(245,247,243,.88);color:#3d5357;font:700 5.5px/1 Inter,system-ui,sans-serif;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 5px 14px rgba(43,62,64,.08);pointer-events:none}
.ntx-map-status i{flex:0 0 auto;width:4px;height:4px;border-radius:50%;background:#527b72}
.ntx-territorial[data-autoplay="paused"] .ntx-map-status i{background:#a98642}
.ntx-side-panel{min-width:0;display:flex;flex-direction:column;gap:0;padding:10px 9px 9px;border-left:1px solid #273547;background:linear-gradient(180deg,#111b28,#0c141f);color:#dce4ec;overflow:hidden}
.ntx-panel-section{min-width:0;margin:0;padding:0 0 7px;border:0;border-bottom:1px solid rgba(148,163,184,.14)}
.ntx-panel-section+.ntx-panel-section{padding-top:7px}
.ntx-panel-label,.ntx-variable-control label,.ntx-layer-controls legend{display:block;width:100%;margin:0 0 5px;color:#8494a7;font:800 6px/1 Inter,system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.ntx-variable-control select{display:block;width:100%;height:27px;margin:0;padding:0 17px 0 6px;border:1px solid #304155;border-radius:5px;background:#162333;color:#eef3f7;font:600 7.5px/1 Inter,system-ui,sans-serif;white-space:nowrap;text-overflow:ellipsis;outline:none}
.ntx-variable-control select:focus-visible{border-color:#8a769f;box-shadow:0 0 0 2px rgba(121,103,160,.22)}
.ntx-layer-controls{display:grid;gap:4px}
.ntx-layer-controls legend{padding:0}
.ntx-layer-controls label{min-width:0;display:flex;align-items:center;gap:5px;color:#b7c2cd;font:600 7px/1.1 Inter,system-ui,sans-serif;cursor:pointer}
.ntx-layer-controls input{appearance:none;flex:0 0 auto;width:10px;height:10px;margin:0;border:1px solid #53647a;border-radius:2px;background:#0c1420;cursor:pointer}
.ntx-layer-controls input:checked{border-color:#6f8095;background:#52736e;box-shadow:inset 0 0 0 2px #101b28}
.ntx-layer-controls input:focus-visible{outline:1px solid #d8b466;outline-offset:2px}
.ntx-layer-controls span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ntx-legend ol{display:grid;grid-template-columns:1fr 1fr;gap:4px 5px;margin:0;padding:0;list-style:none}
.ntx-legend li{min-width:0;display:flex;align-items:center;gap:4px;color:#a5b2c0;font:600 6px/1 Inter,system-ui,sans-serif;white-space:nowrap}
.ntx-legend li i{flex:0 0 auto;width:9px;height:5px;border-radius:1px;background:#7967a0}
.ntx-legend li:nth-child(2) i{background:#467680}.ntx-legend li:nth-child(3) i{background:#789079}.ntx-legend li:nth-child(4) i{background:#bea15f}
.ntx-unit-card{min-width:0;margin-top:auto;padding:9px 8px 8px;border:1px solid rgba(148,163,184,.16);border-radius:6px;background:rgba(22,34,48,.86);opacity:.58;transform:translateY(2px);transition:opacity .3s ease,transform .3s ease,border-color .3s ease}
.ntx-territorial:is([data-stage="selected"],[data-stage="updated"],[data-stage="interactive"]) .ntx-unit-card{opacity:1;transform:none;border-color:rgba(190,161,95,.28)}
.ntx-unit-card strong{display:block;min-width:0;margin-bottom:3px;color:#eef2f5;font:700 8.5px/1.2 Inter,system-ui,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ntx-unit-code{display:block;min-width:0;margin-bottom:7px;color:#8191a3;font:600 5.8px/1.1 Inter,system-ui,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ntx-unit-value{min-width:0;display:flex;align-items:end;justify-content:space-between;gap:4px;margin-bottom:6px}.ntx-unit-value span{min-width:0;color:#94a3b3;font:600 5.8px/1.1 Inter,system-ui,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ntx-unit-value b{color:#d9bd7d;font:700 10px/1 Inter,system-ui,sans-serif;white-space:nowrap}
.ntx-unit-class{min-width:0;display:grid;gap:4px}.ntx-unit-class>span{min-width:0;display:flex;align-items:center;gap:4px;color:#a8b5c2;font:600 5.8px/1 Inter,system-ui,sans-serif}.ntx-unit-class em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-style:normal}.ntx-unit-class>span i{flex:0 0 auto;width:6px;height:6px;border-radius:1px;background:#526175}.ntx-unit-class>span i[data-class="0"]{background:#7967a0}.ntx-unit-class>span i[data-class="1"]{background:#467680}.ntx-unit-class>span i[data-class="2"]{background:#789079}.ntx-unit-class>span i[data-class="3"]{background:#bea15f}.ntx-unit-class small{display:block;height:3px;border-radius:999px;background:#28384a;overflow:hidden}.ntx-unit-class small i{display:block;width:0;height:100%;border-radius:inherit;background:#bea15f;transition:width .45s ease}

@media (max-width:860px){.project-visual.ntx-territorial{grid-template-columns:minmax(0,76fr) minmax(104px,24fr);height:230px}.ntx-map{inset:18px 1px 9px;width:calc(100% - 2px);height:calc(100% - 27px)}.ntx-map-meta{top:7px;left:8px}.ntx-map-scale{left:7px;bottom:6px}.ntx-map-status{right:5px;bottom:5px}.ntx-side-panel{padding:6px}.ntx-panel-section{padding-bottom:5px}.ntx-panel-section+.ntx-panel-section{padding-top:5px}.ntx-panel-label,.ntx-variable-control label,.ntx-layer-controls legend{margin-bottom:4px;font-size:5.4px}.ntx-variable-control select{height:23px;font-size:6.6px;padding-left:4px}.ntx-layer-controls{gap:3px}.ntx-layer-controls label{font-size:6px}.ntx-legend ol{gap:3px}.ntx-legend li{font-size:5.3px}.ntx-unit-card{padding:6px}.ntx-unit-card strong{font-size:7.2px}.ntx-unit-code,.ntx-unit-value span,.ntx-unit-class>span{font-size:5px}.ntx-unit-code{margin-bottom:5px}.ntx-unit-value{margin-bottom:5px}.ntx-unit-value b{font-size:8.5px}}
@media (max-width:420px){.project-visual.ntx-territorial{grid-template-columns:minmax(0,70fr) minmax(100px,30fr)}.ntx-map-meta strong{display:none}.ntx-map-status{max-width:64%}.ntx-legend li span{overflow:hidden;text-overflow:ellipsis}.ntx-unit{stroke-width:.75}.ntx-unit:hover,.ntx-unit:focus-visible,.ntx-unit.is-selected{stroke-width:1.7}}
@media (prefers-reduced-motion:reduce){.ntx-territory-layer,.ntx-unit,.ntx-roads,.ntx-pois,.ntx-unit-card{transition:none!important}}
