@font-face{ font-family:'Geist'; font-style:normal; font-weight:200 500; font-display:swap;
  src:url(fonts/geist-latin.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face{ font-family:'Geist'; font-style:normal; font-weight:200 500; font-display:swap;
  src:url(fonts/geist-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url(fonts/ibm-plex-mono-400-latin.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url(fonts/ibm-plex-mono-400-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap;
  src:url(fonts/ibm-plex-mono-500-latin.woff2) format('woff2'); unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap;
  src:url(fonts/ibm-plex-mono-500-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
:root{
  --color-primary:        #609A2B;
  --color-primary-ink:    #46701F;
  --color-primary-deep:   #2F4A14;
  --color-primary-soft:   #EDF4E4;
  --color-primary-border: #C9DFAA;
  --color-primary-hover:  #547F25;
  --color-surface:        #FFFFFF;
  --color-surface-alt:    #F7F9F4;
  --color-surface-sunken: #EEF1EA;
  --color-surface-void:   #080B06;
  --color-surface-deep:   #0E140A;
  --color-surface-raised: #18200F;
  --color-ink:            #161A14;
  --color-ink-muted:      #5A6157;
  --color-ink-subtle:     #8A9184;
  --color-ink-inverse:    #F7F9F4;
  --color-ink-inverse-muted: #9C9F9A;
  --color-border:         #E1E6DB;
  --color-border-strong:  #C7CFBE;
  --color-border-inverse: rgba(247,249,244,.14);
  --color-scrim-dark:     rgba(8,11,6,.60);
  --color-scrim-nav:      rgba(8,11,6,.32);
  --color-scrim-tabs:     rgba(50,50,50,.32);
  --color-overlay-light:  rgba(255,255,255,.16);
  --color-accent:         #1F5F7A;
  --color-accent-soft:    #E4EFF3;
  --color-success:        #2E7D32;
  --color-warning:        #8A5A00;
  --color-danger:         #B3261E;
  --color-info:           #1F5F7A;
  --font-display: 'Geist', system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --gutter: clamp(20px, 4.5vw, 72px);
  --maxw: 1500px;
}
*,*::before,*::after{ box-sizing:border-box; }
html{
  -webkit-text-size-adjust:100%; scroll-behavior:auto;
  scroll-padding-top:110px; scroll-padding-bottom:72px;
}
body{
  margin:0;
  background:var(--color-surface-void);
  color:var(--color-ink-inverse);
  font-family:var(--font-display);
  font-weight:300;
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
:focus-visible{
  outline:2px solid var(--color-primary-ink);
  outline-offset:2px;
  border-radius:2px;
}
.on-dark :focus-visible,
.nav :focus-visible,
.compliance :focus-visible{
  outline-color:var(--color-primary-border);
}
::selection{ background:var(--color-primary); color:var(--color-surface); }
.skip{
  position:absolute; left:-9999px;
  top:12px; z-index:200;
  padding:12px 20px;
  background:var(--color-surface);
  color:var(--color-ink);
  border-radius:3px;
}
.skip:focus{ left:12px; }
html:not(.is-rendered) .nav,
html:not(.is-rendered) main{ visibility:hidden; }
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
p, li, dd, td, th{ text-wrap:pretty; }
dt, .btn, .mod-detail-name, .foot span{ text-wrap:balance; }
.d1{
  font-size:clamp(2.15rem, 5.4vw, 5.2rem);
  font-weight:200; line-height:normal;
  letter-spacing:-.032em; margin:0;
  text-wrap:balance;
}
.d2{
  font-size:clamp(1.85rem, 4.1vw, 3.7rem);
  font-weight:300; line-height:1.06;
  letter-spacing:-.028em; margin:0;
  text-wrap:balance;
}
.d3{
  font-size:clamp(1.25rem, 2.1vw, 1.85rem);
  font-weight:400; line-height:1.16;
  letter-spacing:-.02em; margin:0;
  text-wrap:balance;
}
.body-lg{
  font-size:clamp(1rem, 1.1vw, 1.12rem);
  font-weight:300; line-height:1.64;
  color:var(--color-ink-muted); margin:0;
  text-wrap:pretty;
}
.on-dark .body-lg{ color:var(--color-ink-inverse); }
#field{ position:fixed; inset:0; z-index:0; pointer-events:none; }
#field canvas{ display:block; width:100%; height:100%; opacity:0; transition:opacity 1.2s; }
#field canvas.is-on{ opacity:1; }
.motion-toggle{
  position:fixed; right:var(--gutter); bottom:12px; z-index:56;
  display:inline-flex; align-items:center; justify-content:center;
  width:36px; height:36px; padding:0; border-radius:50%;
  color:var(--color-ink-inverse);
  background:var(--color-scrim-dark);
  border:1px solid var(--color-ink-inverse-muted);
  -webkit-backdrop-filter:blur(7px); backdrop-filter:blur(7px);
  transition:background .2s, border-color .2s;
}
.motion-toggle[hidden]{ display:none; }
.motion-toggle:hover{ border-color:var(--color-primary-border); }
.motion-toggle svg{ stroke:currentColor; fill:none; }
.motion-toggle .mt-play{ fill:currentColor; stroke:none; display:none; }
.motion-toggle[aria-pressed="true"]{
  background:var(--color-primary-deep); border-color:var(--color-primary);
}
.motion-toggle[aria-pressed="true"] .mt-pause{ display:none; }
.motion-toggle[aria-pressed="true"] .mt-play{ display:block; }
.nav{
  position:fixed; top:0; left:0; right:0; z-index:60;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; padding:20px var(--gutter);
  background:var(--color-scrim-nav);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}
.brand{
  display:flex; align-items:center; gap:11px;
  flex:0 0 auto; padding:4px 0;
  font-weight:500; font-size:.95rem; letter-spacing:.05em;
  color:var(--color-ink-inverse);
}
.brand-logo{ display:block; height:25px; width:auto; }
@media (max-width:600px){ .brand-logo{ height:16px; } }
.nav-links{
  display:flex; gap:32px; list-style:none; margin:0; padding:0;
}
.nav-links a{
  font-size:1rem; font-weight:400;
  color:var(--color-ink-inverse);
  position:relative; padding:4px 0; transition:color .2s;
}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:0;
  width:100%; height:1px; background:currentColor;
  transform:scaleX(0); transform-origin:right;
  transition:transform .25s cubic-bezier(.22,1,.36,1);
}
.nav-links a:hover{ color:var(--color-ink-inverse); }
.nav-links a:hover::after,
.nav-links a:focus-visible::after{ transform:scaleX(1); transform-origin:left; }
.nav-links a:active{ color:var(--color-primary-border); }
@media (max-width:1199px){ .nav-links{ display:none; } }
.nav-links a{ white-space:nowrap; }
@media (min-width:1200px) and (max-width:1339px){
  .nav, .nav-links{ gap:16px; }
  .nav-links a{ font-size:.9375rem; }
}
.nav-end .btn{ white-space:nowrap; }
.nav-end{ display:flex; align-items:center; gap:12px; flex:0 1 auto; min-width:0; }
.nav-end > .btn{
  max-width:20rem; overflow:hidden;
  transition:background .2s, border-color .2s, color .2s, transform .2s,
    max-width .45s cubic-bezier(.22,1,.36,1), padding .45s cubic-bezier(.22,1,.36,1),
    margin .45s cubic-bezier(.22,1,.36,1), opacity .3s .15s, visibility 0s;
}
.nav:not(.is-past-hero) .nav-end > .btn,
.nav.is-at-contact .nav-end > .btn{
  max-width:0; padding-left:0; padding-right:0; margin-left:-14px;
  opacity:0; visibility:hidden;
  transition:background .2s, border-color .2s, color .2s, transform .2s,
    max-width .45s .1s cubic-bezier(.22,1,.36,1), padding .45s .1s cubic-bezier(.22,1,.36,1),
    margin .45s .1s cubic-bezier(.22,1,.36,1), opacity .2s, visibility 0s .55s;
}
.lang{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:36px; padding:6px 12px; border-radius:100px;
  font-family:var(--font-mono); font-size:.8125rem; font-weight:500;
  letter-spacing:.12em; color:var(--color-ink-inverse);
  border:1px solid var(--color-ink-inverse-muted);
  transition:border-color .2s;
}
.lang:hover{ border-color:var(--color-primary-border); }
.menu-toggle,
.mobile-menu{ display:none; }
.menu-toggle{
  align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:50%;
  color:var(--color-ink-inverse);
  border:1px solid var(--color-ink-inverse-muted);
  transition:border-color .2s;
}
.menu-toggle:hover{ border-color:var(--color-primary-border); }
.menu-toggle svg{ stroke:currentColor; fill:none; }
.menu-toggle .mt-close,
.menu-toggle[aria-expanded="true"] .mt-open{ display:none; }
.menu-toggle[aria-expanded="true"] .mt-close{ display:inline; }
.mobile-menu{
  position:absolute; top:100%; left:0; right:0;
  height:calc(100vh - 72px); height:calc(100dvh - 72px);
  flex-direction:column;
  overflow-y:auto; overscroll-behavior:contain;
  padding:4px var(--gutter) 28px;
  background:var(--color-surface-void);
  border-bottom:1px solid var(--color-border-inverse);
}
.mobile-links{ list-style:none; margin:0; padding:0; }
.mobile-links a{
  display:block; padding:14px 0;
  font-size:1.375rem; font-weight:300; letter-spacing:-.01em;
  color:var(--color-ink-inverse);
  border-bottom:1px solid var(--color-border-inverse);
  transition:color .2s;
}
.mobile-links a:hover{ color:var(--color-primary-border); }
.mobile-menu-end{ flex:1 0 auto; display:flex; flex-direction:column; align-items:flex-start; margin-top:28px; }
.mobile-menu-end .lang{
  margin-top:auto; align-self:stretch; justify-content:flex-start;
  padding:24px 0 0; border:0; border-top:1px solid var(--color-border-inverse); border-radius:0;
}
.mobile-menu-end{ gap:32px; }
.mobile-menu-end .btn{ align-self:center; }
.mobile-menu-end .lang span:first-child{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:36px; padding:6px 12px; border-radius:100px;
  border:1px solid var(--color-ink-inverse-muted);
}
.mobile-menu-end .lang:hover span:first-child{ border-color:var(--color-primary-border); }
@media (min-width:601px){
  .mobile-menu{ height:calc(100vh - 100px); height:calc(100dvh - 100px); }
  .mobile-menu-end .btn{ display:none; }
}
html:has(.nav.is-open){ overflow:hidden; }
@media (max-width:1199px){
  .nav.is-past-hero .nav-end > .lang,
  .nav.is-open .nav-end > .lang{ display:none; }
  .menu-toggle{ display:inline-flex; }
  .nav.is-open{ background:var(--color-surface-void); }
  .nav.is-open .mobile-menu{ display:flex; }
  .nav-end > .lang,
  .menu-toggle{ transition:border-color .2s, opacity .3s, transform .3s cubic-bezier(.22,1,.36,1); }
  @starting-style{
    .nav-end > .lang,
    .menu-toggle{ opacity:0; transform:scale(.8); }
  }
}
@media (max-width:600px){
  .nav{ gap:16px; padding-top:16px; padding-bottom:16px; }
  .nav-end .btn{ display:none; }
}
.btn{
  display:inline-flex; align-items:center; gap:13px;
  padding:14px 15px 14px 28px;
  border-radius:100px;
  font-size:1rem; font-weight:400;
  border:1px solid transparent;
  transition:background .2s, border-color .2s, color .2s, transform .2s;
}
.btn:active{ transform:translateY(1px); }
.btn .chev{
  width:30px; height:30px; border-radius:50%;
  display:grid; place-items:center;
  transition:transform .45s cubic-bezier(.22,1,.36,1);
}
.btn:hover .chev{ transform:translateX(4px); }
.btn-primary{
  background:var(--color-primary-deep);
  border-color:var(--color-primary);
  color:var(--color-surface);
}
.btn-primary:hover{ background:var(--color-primary-hover); }
.btn-primary .chev{ background:var(--color-overlay-light); }
.btn-primary .chev svg{ stroke:var(--color-surface); }
.btn-ghost{
  border-width:2px;
  border-color:var(--color-surface);
  color:var(--color-ink-inverse);
  padding:13px 27px;
}
.btn-ghost:hover{ border-color:var(--color-primary-border); }
.nav-progress{
  position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--color-border-inverse); pointer-events:none;
}
.nav-progress span{
  display:block; height:100%;
  background:var(--color-primary-border);
  transform:scaleX(0); transform-origin:left center;
}
main{ position:relative; z-index:10; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 var(--gutter); }
.block{ padding:clamp(64px, 10vh, 112px) 0; }
.sec-head{ display:grid; grid-template-columns:1fr; gap:24px; margin-bottom:clamp(32px, 5vh, 56px); }
@media (min-width:980px){
  .sec-head{
    grid-template-columns:minmax(0,1fr) minmax(0,420px);
    align-items:end; gap:60px;
  }
}
.stage{ position:relative; }
.stage-pin{
  min-height:100vh; padding-top:120px; position:relative;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding-bottom:17vh;
}
.hero-type{ padding:0 var(--gutter); max-width:1180px; }
.line{ overflow:hidden; display:block; }
.line > span{ display:block; will-change:transform; }
.d1 .line:nth-child(2) > span{ color:var(--color-primary-border); }
.d1 .line:nth-child(3) > span{ color:var(--color-ink-inverse-muted); }
.hero-sub{ margin-top:30px; max-width:56ch; }
.on-dark .hero-sub{ color:var(--color-ink-inverse); }
.hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:36px; }
#recorrido, #consolidar{ padding-top:clamp(14px, calc(3vh - 10px), 30px); }
@media (max-width:1199px){
  #cumplimiento, #industrias, #implementacion, #contacto{ padding-top:clamp(14px, calc(3vh - 10px), 30px); }
}
#recorrido .sec-head{ margin-bottom:clamp(24px, 3.5vh, 40px); }
.material-symbols-outlined{
  display:inline-block; width:1em; flex-shrink:0; overflow:hidden; white-space:nowrap;
}
html:not(.icons-ready) .material-symbols-outlined{ visibility:hidden; }
.mod-details{
  padding:clamp(20px, 3.5vw, 56px);
  background:var(--color-scrim-tabs);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border:1px solid var(--color-border-inverse);
  border-radius:3px;
  scroll-margin-top:110px;
}
.mod-tabs{
  display:flex; gap:6px;
  margin-bottom:clamp(32px, 5vh, 56px); padding-bottom:12px;
  border-bottom:1px solid var(--color-border-inverse);
  overflow-x:auto; scrollbar-width:none;
}
.mod-tabs::-webkit-scrollbar{ display:none; }
.mod-tab{
  display:flex; align-items:center; gap:12px; min-width:0;
  min-height:56px; padding:8px 14px 8px 8px;
  border:1px solid transparent; border-radius:10px;
  text-align:left; font-size:1rem; font-weight:400; line-height:1.25;
  color:var(--color-ink-inverse-muted);
  transition:color .3s, border-color .3s, background-color .3s;
}
.mod-tab-label{ min-width:0; text-wrap:balance; }
.mod-tab .material-symbols-outlined{
  display:grid; place-items:center; flex-shrink:0;
  width:38px; height:38px; border-radius:8px;
  font-size:24px; line-height:1; letter-spacing:0;
  font-variation-settings:'opsz' 24, 'wght' 300;
  background:color-mix(in srgb, var(--color-ink-inverse) 6%, transparent);
  border:1px solid var(--color-border-inverse);
  transition:background-color .3s, color .3s, border-color .3s;
}
.mod-tab:hover{
  color:var(--color-ink-inverse);
  background:color-mix(in srgb, var(--color-ink-inverse) 5%, transparent);
}
.mod-tab[aria-selected="true"]{
  color:var(--color-ink-inverse);
  background:linear-gradient(90deg,
    color-mix(in srgb, var(--color-primary) 30%, transparent),
    color-mix(in srgb, var(--color-primary) 8%, transparent));
  border-color:color-mix(in srgb, var(--color-primary-border) 35%, transparent);
}
.mod-tab[aria-selected="true"] .material-symbols-outlined{
  background:var(--color-primary); border-color:var(--color-primary);
  color:var(--color-surface-void);
}
.mod-tab:focus-visible{ outline-offset:-2px; }
@media (min-width:1400px){
  .mod-tabs{ gap:12px; padding-bottom:16px; overflow:visible; }
  .mod-tab{ flex:0 0 auto; padding-right:20px; white-space:nowrap; }
}
@media (min-width:768px) and (max-width:1399px){
  .mod-tabs{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:8px; padding-bottom:16px; overflow:visible; }
}
@media (min-width:768px) and (max-width:1023px){
  .mod-tab{ gap:8px; padding:6px 10px 6px 6px; font-size:.9375rem; }
  .mod-tab .material-symbols-outlined{ width:32px; height:32px; font-size:20px; }
}
@media (max-width:767px){
  .mod-tabs{ flex-direction:column; gap:4px; overflow:visible; }
  .mod-tab{ width:100%; }
}
.mod-detail{
  display:grid; align-items:center;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:clamp(32px, 5vw, 88px);
}
.mod-detail{ scroll-margin-top:170px; }
.mod-detail[hidden]{ display:none; }
@media (prefers-reduced-motion: no-preference){
  .mod-detail{ animation:tab-in .4s cubic-bezier(.215,.61,.355,1); }
}
@keyframes tab-in{ from{ opacity:0; transform:translateY(8px); } }
@media (max-width:900px){
  .mod-detail{ grid-template-columns:minmax(0,1fr); }
}
.mod-detail-name{
  display:flex; align-items:center; gap:14px;
  margin:0 0 24px;
  font-size:2rem; font-weight:300; line-height:1.15; letter-spacing:-.02em;
  color:var(--color-ink-inverse-muted);
}
.mod-detail-name b{ font-weight:500; color:var(--color-primary-border); }
.mod-detail-name .area{ display:inline-block; }
@media (max-width:600px){
  .mod-detail-name .sep{ display:none; }
  .mod-detail-name .area{ display:block; }
}
.mod-detail-name .material-symbols-outlined{
  font-size:48px; line-height:1; letter-spacing:0;
  color:var(--color-primary-border);
  font-variation-settings:'opsz' 48, 'wght' 200;
}
@media (max-width:400px){
  .mod-detail-name{ font-size:1.625rem; gap:10px; }
  .mod-detail-name .material-symbols-outlined{ font-size:40px; }
}
.mod-detail .d3{ margin-bottom:8px; }
.mod-detail-desc{ margin-top:24px; }
.mod-detail-label{
  margin:24px 0 8px;
  font-family:var(--font-mono); font-size:.8125rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--color-primary-border);
}
.mod-detail-label + .mod-detail-points{ margin-top:0; }
.mod-detail:focus,
.block[tabindex="-1"]:focus{ outline:none; }
.mod-detail-points{
  list-style:none; margin:28px 0 0; padding:0;
  border-top:1px solid var(--color-border-inverse);
}
.mod-detail-points li{
  padding:14px 0 14px 22px; position:relative;
  border-bottom:1px solid var(--color-border-inverse);
  font-size:1rem; line-height:1.6; color:var(--color-ink-inverse);
}
.mod-detail-points li::before{
  content:''; position:absolute; left:0; top:calc(14px + .75em);
  width:10px; height:1px; background:var(--color-primary-border);
}
.mod-detail-media{
  aspect-ratio:4 / 3;
  border:1px solid var(--color-border-inverse);
  box-shadow:inset 0 0 0 1px var(--color-border-inverse);
  border-radius:3px; overflow:hidden;
  background:var(--color-scrim-dark);
  backdrop-filter:blur(7px);
  display:grid; place-items:center;
}
.mod-detail-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.mod-detail-media.has-image{ aspect-ratio:auto; }
.mod-detail-media.has-image img{ height:auto; }
.mod-detail-media.has-image{ position:relative; }
.mod-zoom{
  position:absolute; inset:0; padding:0; cursor:zoom-in;
  display:flex; align-items:flex-end; justify-content:flex-end;
}
.mod-zoom:focus-visible{ outline-offset:-4px; }
.mod-zoom-icon{
  display:grid; place-items:center;
  width:40px; height:40px; margin:12px; border-radius:50%;
  color:var(--color-ink-inverse);
  background:var(--color-scrim-dark);
  border:1px solid var(--color-ink-inverse-muted);
  -webkit-backdrop-filter:blur(7px); backdrop-filter:blur(7px);
  transition:border-color .2s, transform .2s;
}
.mod-zoom-icon svg{ stroke:currentColor; }
.mod-zoom:hover .mod-zoom-icon{ border-color:var(--color-primary-border); transform:scale(1.08); }
html:has(.lightbox[open]){ overflow:hidden; }
.lightbox{
  width:100vw; height:100vh; height:100dvh; max-width:none; max-height:none;
  margin:0; padding:64px var(--gutter); border:0;
  background:transparent; color:var(--color-ink-inverse);
}
.lightbox[open]{ display:grid; place-items:center; }
.lightbox::backdrop{ background:rgba(8,11,6,.92); }
.lightbox-img{
  display:block; width:auto; height:auto; max-width:100%;
  max-height:calc(100vh - 128px); max-height:calc(100dvh - 128px);
  border:1px solid var(--color-border-inverse); border-radius:3px;
}
.lightbox-close{
  position:absolute; top:16px; right:var(--gutter);
  display:grid; place-items:center;
  width:44px; height:44px; padding:0; border-radius:50%;
  background:var(--color-scrim-dark);
  border:1px solid var(--color-ink-inverse-muted);
  transition:border-color .2s;
}
.lightbox-close svg{ stroke:currentColor; }
.lightbox-close:hover{ border-color:var(--color-primary-border); }
@media (prefers-reduced-motion: no-preference){
  .lightbox[open], .lightbox[open]::backdrop{ animation:lightbox-in .25s ease-out; }
}
@keyframes lightbox-in{ from{ opacity:0; } }
.mod-detail-placeholder{
  display:grid; justify-items:center; gap:16px;
  font-family:var(--font-mono); font-size:.8125rem;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--color-ink-inverse-muted);
}
.mod-detail-placeholder .material-symbols-outlined{
  font-size:clamp(96px, 12vw, 160px); line-height:1; letter-spacing:0;
  color:var(--color-primary-border); opacity:.5;
  font-variation-settings:'opsz' 48, 'wght' 200;
}
.cmp{
  width:100%; border-collapse:collapse; table-layout:fixed;
  font-size:1rem; line-height:1.6;
}
.cmp th, .cmp td{
  padding:20px 24px; text-align:left; vertical-align:top;
  border-bottom:1px solid var(--color-border-inverse);
}
.cmp thead th{
  font-family:var(--font-mono); font-size:.8125rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--color-ink-inverse-muted);
}
.cmp thead th.is-suite{ color:var(--color-primary-border); }
.cmp thead th > span{ display:block; }
.cmp-col-extra{
  font-size:.6875rem; font-weight:400; color:var(--color-ink-inverse-muted);
}
.cmp thead td{ border-bottom-color:var(--color-border-inverse); }
.cmp tbody th{
  width:18%; font-weight:500; color:var(--color-ink-inverse);
}
.cmp td{ color:var(--color-ink-inverse-muted); }
.cmp td.is-suite, .cmp thead .is-suite{ background:var(--color-surface-raised); }
.cmp td.is-suite{ color:var(--color-ink-inverse); }
@media (max-width:760px){
  .cmp, .cmp tbody, .cmp tr, .cmp th, .cmp td{ display:block; width:auto; }
  .cmp thead{ display:none; }
  .cmp tr{ padding:8px 0 20px; border-bottom:1px solid var(--color-border-inverse); }
  .cmp th, .cmp td{ border:0; padding:12px 16px; }
  .cmp tbody th{ width:auto; padding-left:0; font-size:1.125rem; }
  .cmp td::before{
    content:attr(data-label); display:block; margin-bottom:4px;
    font-family:var(--font-mono); font-size:.75rem;
    letter-spacing:.14em; text-transform:uppercase;
    color:var(--color-ink-inverse-muted);
  }
  .cmp td.is-suite::before{ color:var(--color-primary-border); }
}
.compliance{
  color:var(--color-ink-inverse);
  border-top:1px solid var(--color-border-inverse);
  border-bottom:1px solid var(--color-border-inverse);
}
.compliance .body-lg{ color:var(--color-ink-inverse); }
.cum-note{
  margin:16px 0 0; font-size:.9375rem; line-height:1.6; font-style:italic;
  color:var(--color-ink-inverse-muted);
}
.facts{
  list-style:none; margin:6vh 0 0; padding:0;
  display:grid; gap:1px;
  background:var(--color-border-inverse);
  border:1px solid var(--color-border-inverse);
}
@media (min-width:1200px){ .facts{ grid-template-columns:repeat(5, minmax(0,1fr)); } }
.facts > div{
  background:var(--color-surface-raised);
  padding:26px 24px 30px;
}
.facts dt{
  font-size:1.375rem; font-weight:400; line-height:1.2;
  letter-spacing:-.01em;
  color:var(--color-primary-border); margin-bottom:14px;
}
.facts dd{
  margin:0; font-size:1rem; line-height:1.6;
  color:var(--color-ink-inverse); font-weight:400;
}
.sectors{
  display:grid; gap:clamp(24px, 4vw, 64px);
  padding:clamp(20px, 3.5vw, 56px);
  background:var(--color-scrim-tabs);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border:1px solid var(--color-border-inverse); border-radius:3px;
}
@media (min-width:980px){
  .sectors{ grid-template-columns:minmax(0,340px) minmax(0,1fr); align-items:start; }
}
.sector-tabs{
  display:flex; flex-direction:column; gap:4px;
}
.sector-tab{
  position:relative;
  display:flex; align-items:center; gap:14px; width:100%;
  min-height:52px; padding:8px 40px 8px 8px;
  border:1px solid transparent; border-radius:8px;
  text-align:left; font-size:1rem; font-weight:400; line-height:1.35;
  color:var(--color-ink-inverse-muted);
  transition:color .3s, border-color .3s, background-color .3s;
}
.sector-tab .material-symbols-outlined,
.sector-title .material-symbols-outlined{
  line-height:1; letter-spacing:0;
  font-variation-settings:'opsz' 24, 'wght' 300;
}
.sector-tab .material-symbols-outlined{
  flex-shrink:0; display:grid; place-items:center;
  width:36px; height:36px; border-radius:8px; font-size:22px;
  background:var(--color-overlay-light);
  background:color-mix(in srgb, var(--color-ink-inverse) 6%, transparent);
  border:1px solid var(--color-border-inverse);
  transition:background-color .3s, color .3s, border-color .3s;
}
.sector-tab::after{
  content:''; position:absolute; right:16px; top:50%;
  width:7px; height:7px; margin-top:-4px;
  border-top:1.5px solid currentColor; border-right:1.5px solid currentColor;
  transform:rotate(45deg) translateX(-4px); opacity:0;
  transition:opacity .3s, transform .3s cubic-bezier(.22,1,.36,1);
}
.sector-tab:hover{
  color:var(--color-ink-inverse);
  background:color-mix(in srgb, var(--color-ink-inverse) 5%, transparent);
}
.sector-tab[aria-selected="true"]{
  color:var(--color-ink-inverse);
  background:linear-gradient(90deg,
    color-mix(in srgb, var(--color-primary) 30%, transparent),
    color-mix(in srgb, var(--color-primary) 8%, transparent));
  border-color:color-mix(in srgb, var(--color-primary-border) 35%, transparent);
}
.sector-tab[aria-selected="true"] .material-symbols-outlined{
  background:var(--color-primary); border-color:var(--color-primary);
  color:var(--color-surface-void);
}
@media (min-width:980px){
  .sector-tab[aria-selected="true"]::after{ opacity:1; transform:rotate(45deg) translateX(0); }
}
@media (max-width:979px){ .sector-tab{ padding-right:12px; } }
.sector-tab:focus-visible{ outline-offset:-2px; }
.sector-panel:focus{ outline:none; }
@media (prefers-reduced-motion: no-preference){
  .sector-panel{ animation:tab-in .4s cubic-bezier(.215,.61,.355,1); }
}
.sector-title{
  display:flex; align-items:center; gap:14px;
  margin:0 0 24px;
  font-size:clamp(1.25rem, 2.1vw, 1.85rem); font-weight:400; line-height:1.16;
  letter-spacing:-.02em; color:var(--color-ink-inverse);
  text-wrap:balance;
}
.sector-title .material-symbols-outlined{ font-size:1.6em; color:var(--color-primary-border); }
.sector-facts{ margin:0; border-top:1px solid var(--color-border-inverse); }
.sector-facts > div{
  display:grid; gap:6px 32px; padding:16px 0;
  border-bottom:1px solid var(--color-border-inverse);
}
@media (min-width:600px){ .sector-facts > div{ grid-template-columns:140px minmax(0,1fr); } }
.sector-facts dt{
  padding-top:4px;
  font-family:var(--font-mono); font-size:.8125rem; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--color-primary-border);
}
.sector-facts dd{ margin:0; font-size:1rem; line-height:1.6; color:var(--color-ink-inverse); }
.sector-facts dd::first-letter{ text-transform:uppercase; }
.sector-facts a{
  text-decoration:underline; text-underline-offset:3px;
  text-decoration-color:var(--color-primary-border);
}
.sector-facts a:hover{ color:var(--color-primary-border); }
@media (max-width:979px){
  .sector-tab{ font-size:1.125rem; }
  .sector-title{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
  }
}
.ind-note{
  margin:clamp(24px, 4vh, 40px) 0 0;
  font-size:clamp(1rem, 1.1vw, 1.12rem); line-height:1.64;
  color:var(--color-ink-inverse); text-wrap:pretty;
}
.steps{
  --dot:32px; --line:3px; --step-ms:7s;
  list-style:none; margin:0; padding:0;
  display:grid;
}
.step{ position:relative; display:grid; align-content:start; }
.step-dot{
  position:relative; z-index:1;
  display:grid; place-items:center;
  width:var(--dot); height:var(--dot); border-radius:50%;
  background:var(--color-surface-void);
  border:1px solid var(--color-ink-inverse-muted);
  color:var(--color-ink-inverse);
  font-family:var(--font-mono); font-size:.8125rem; font-weight:500;
  transition:background-color .4s, border-color .4s, color .4s, box-shadow .4s;
}
.step-num, .step-check{ grid-area:1 / 1; transition:opacity .3s, transform .3s; }
.step-check{ stroke:currentColor; opacity:0; transform:scale(.6); }
.step[data-state="current"] .step-dot,
.step[data-state="done"] .step-dot{
  background:var(--color-primary); border-color:var(--color-primary);
  color:var(--color-surface-void);
}
.step[data-state="current"] .step-dot{
  box-shadow:0 0 0 3px var(--color-surface-void), 0 0 0 4px var(--color-primary);
}
.step[data-state="done"] .step-num{ opacity:0; transform:scale(.6); }
.step[data-state="done"] .step-check{ opacity:1; transform:none; }
.step-title{
  margin:0;
  font-size:1rem; font-weight:400; line-height:1.4;
  color:var(--color-ink-inverse);
  text-wrap:balance;
}
.step:not(:last-child)::before,
.step:not(:last-child)::after{ content:''; position:absolute; }
.step:not(:last-child)::before{ background:var(--color-border-inverse); }
.step:not(:last-child)::after{
  background:var(--color-primary);
  transition:transform .7s cubic-bezier(.22,1,.36,1);
}
.step[data-state="current"]::after{ transition:transform var(--step-ms) linear; }
.step.is-restart::after{ transition:none !important; transform:scale(0) !important; }
@media (min-width:900px){
  .steps{ grid-template-columns:repeat(5, minmax(0,1fr)); --dot:52px; }
  .step-dot{ font-size:1.25rem; }
  .step-check{ width:20px; height:20px; }
  .step{ justify-items:center; gap:18px; padding:0 8px; text-align:center; }
  .step:not(:last-child)::before,
  .step:not(:last-child)::after{
    top:calc(var(--dot) / 2); left:50%; width:100%; height:1px;
  }
  .step:not(:last-child)::after{
    top:calc(var(--dot) / 2 - var(--line) / 2); height:var(--line); border-radius:var(--line);
    transform:scaleX(0); transform-origin:left;
  }
  .step[data-state="current"]::after,
  .step[data-state="done"]::after{ transform:scaleX(1); }
}
@media (max-width:899px){
  .step{
    grid-template-columns:var(--dot) minmax(0,1fr); align-items:start;
    column-gap:18px; padding-bottom:28px;
  }
  .step:last-child{ padding-bottom:0; }
  .step-title{ padding-top:5px; }
  .step:not(:last-child)::before,
  .step:not(:last-child)::after{
    left:calc(var(--dot) / 2); top:var(--dot); bottom:0; width:1px;
  }
  .step:not(:last-child)::after{
    left:calc(var(--dot) / 2 - var(--line) / 2); width:var(--line); border-radius:var(--line);
    transform:scaleY(0); transform-origin:top;
  }
  .step[data-state="current"]::after,
  .step[data-state="done"]::after{ transform:scaleY(1); }
}
.txt-short{ display:none; }
@media (max-width:899px){
  #implementacion .txt-full{ display:none; }
  #implementacion .txt-short{ display:inline; }
}
.step-desc{
  display:grid; margin-top:clamp(32px, 5vh, 48px);
}
.step-desc-item{
  grid-area:1 / 1; margin:0;
  font-size:clamp(1rem, 1.1vw, 1.12rem); line-height:1.64;
  color:var(--color-ink-inverse); text-wrap:pretty;
  opacity:0; transform:translateY(8px); visibility:hidden;
  transition:opacity .6s ease, transform .6s cubic-bezier(.22,1,.36,1), visibility 0s .6s;
}
.step-desc-item.is-active{
  opacity:1; transform:none; visibility:visible;
  transition:opacity .6s ease .15s, transform .6s cubic-bezier(.22,1,.36,1) .15s, visibility 0s;
}
@media (min-width:900px){
  #implementacion .sec-head{ margin-bottom:clamp(64px, 10vh, 120px); }
  .step-desc{ justify-items:center; text-align:center; }
  .step-desc-item{ max-width:60ch; }
}
@media (prefers-reduced-motion: reduce){
  .step-dot, .step-num, .step-check, .step::after,
  .step-desc-item, .step-desc-item.is-active{ transition:none; }
}
.close{ position:relative; z-index:20; padding:clamp(64px, 10vh, 112px) 0 0; }
.close-title{ max-width:17ch; }
.close-body{ margin-top:24px; max-width:48ch; }
.close-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:40px; }
.foot{
  position:relative;
  margin-top:clamp(64px, 10vh, 112px);
  padding:32px 0 96px; display:grid; gap:32px clamp(48px, 8vw, 128px);
  grid-template-columns:repeat(4, minmax(0,max-content));
  font-family:var(--font-mono); font-size:.8125rem;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--color-ink-inverse);
}
.foot a{
  text-transform:none; letter-spacing:.04em;
  text-decoration:underline; text-underline-offset:3px;
}
.foot::before{
  content:''; position:absolute; z-index:-1;
  top:0; bottom:0; left:calc(50% - 50vw); right:calc(50% - 50vw);
  border-top:1px solid var(--color-border-inverse);
  background:var(--color-scrim-nav);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}
.foot a:hover{ color:var(--color-primary-border); }
.foot .foot-col a{ display:inline-block; min-height:24px; line-height:24px; }
@media (max-width:1100px){ .foot{ grid-template-columns:repeat(2, minmax(0,max-content)); } }
@media (max-width:760px){ .foot{ grid-template-columns:minmax(0,1fr); } }
.foot-col{ color:var(--color-ink-inverse-muted); }
.foot p.foot-col, .foot .foot-col p, .foot .foot-col ul, .foot .foot-col li{ margin:0; font-size:inherit; line-height:1.8; }
.foot .foot-col ul{ list-style:none; padding:0; }
.foot .foot-col .foot-title{ margin-bottom:12px; font-weight:500; color:var(--color-ink-inverse); }
.foot .foot-col:first-child .foot-title{ text-transform:none; }
.foot p.foot-col{ align-self:end; }
.legal{ padding:clamp(140px, 18vh, 200px) 0 0; }
.legal-body{ max-width:68ch; }
.legal-meta{
  margin:20px 0 0; font-family:var(--font-mono); font-size:.8125rem;
  letter-spacing:.1em; text-transform:uppercase; color:var(--color-ink-inverse-muted);
}
.legal h2{
  margin:56px 0 0; font-size:clamp(1.15rem, 1.6vw, 1.4rem);
  font-weight:400; line-height:1.25; letter-spacing:-.01em; text-wrap:balance;
}
.legal p, .legal li{ font-size:1rem; line-height:1.7; }
.legal p{ margin:16px 0 0; }
.legal ul{ margin:16px 0 0; padding-left:1.2em; }
.legal li + li{ margin-top:8px; }
.legal a:not(.btn){ text-decoration:underline; text-underline-offset:3px; }
.legal a:not(.btn):hover{ color:var(--color-primary-border); }
.legal .btn{ margin-top:40px; }
.js-anim .rv{ opacity:0; transform:translateY(24px); }
@media (prefers-reduced-motion: no-preference){
  .d1 .line > span{ animation:hero-line 1.1s cubic-bezier(.215,.61,.355,1) .25s backwards; }
  .d1 .line:nth-child(2) > span{ animation-delay:.335s; }
  .d1 .line:nth-child(3) > span{ animation-delay:.42s; }
  .hero-sub{ animation:hero-rise .85s cubic-bezier(.215,.61,.355,1) .97s backwards; }
  .hero-actions{ animation:hero-rise-hidden .85s cubic-bezier(.215,.61,.355,1) 1.17s backwards; }
  body:has(#stage) .nav{ animation:hero-drop .85s cubic-bezier(.215,.61,.355,1) 1.22s backwards; }
}
@keyframes hero-line{ from{ transform:translateY(112%); } }
@keyframes hero-rise{ from{ opacity:.01; transform:translateY(18px); } }
@keyframes hero-rise-hidden{ from{ opacity:0; transform:translateY(18px); } }
@keyframes hero-drop{ from{ opacity:0; transform:translateY(-14px); } }
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  .rv{ opacity:1 !important; transform:none !important; }
}
