/* ============================================
   CTRL+LATAM — DESIGN SYSTEM
   Tokens
   ============================================ */
:root{
  --bg: #05070A;
  --surface: #0D1117;
  --surface-2: #10151C;
  --text: #EFF3F5;
  --text-dim: #8A94A0;
  --text-faint: #4B5563;
  --cyan: #00F0C8;
  --red: #FF2B4C;
  --violet: #8B6BFF;
  --line: rgba(239,243,245,0.10);
  --line-strong: rgba(239,243,245,0.22);

  --display: 'Chakra Petch', sans-serif;
  --body: 'Inter', sans-serif;
  --mono: 'JetBrains Mono', monospace;

  --ease: cubic-bezier(.16,.84,.32,1);
  --container: 1280px;
}

*,*::before,*::after{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; background:var(--bg);}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
  cursor:auto;
}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
img{max-width:100%; display:block;}
.mono{font-family:var(--mono); letter-spacing:0.02em;}

::selection{background:var(--cyan); color:#05070A;}

/* Focus visibility */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--cyan);
  outline-offset:4px;
}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}

/* ============================================
   AMBIENT LAYERS
   ============================================ */
#grid-canvas{
  position:fixed; inset:0; width:100%; height:100%;
  z-index:0; opacity:0.35; pointer-events:none;
}
.scanline{
  position:fixed; inset:0; z-index:2; pointer-events:none;
  background:repeating-linear-gradient(0deg, rgba(255,255,255,0.015) 0px, rgba(255,255,255,0.015) 1px, transparent 1px, transparent 3px);
  mix-blend-mode:overlay;
}
.noise{
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:0.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.cursor-dot, .cursor-ring{display:none;}

/* ============================================
   BOOT SEQUENCE
   ============================================ */
.boot{
  position:fixed; inset:0; z-index:10000; background:var(--bg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem;
  transition:opacity .6s var(--ease), visibility .6s;
}
.boot.done{opacity:0; visibility:hidden;}
.boot__line{font-family:var(--mono); color:var(--cyan); font-size:0.85rem; letter-spacing:0.15em;}
.boot__cursor{animation:blink 1s step-end infinite;}
@keyframes blink{50%{opacity:0;}}
.boot__bar{width:220px; height:2px; background:var(--line); position:relative; overflow:hidden;}
.boot__bar span{position:absolute; inset:0; width:0%; background:var(--cyan); transition:width .1s linear;}
.boot__pct{font-family:var(--mono); font-size:0.7rem; color:var(--text-faint);}

/* ============================================
   COMMAND PALETTE
   ============================================ */
.palette{
  position:fixed; inset:0; z-index:9000; background:rgba(5,7,10,0.8); backdrop-filter:blur(6px);
  display:flex; align-items:flex-start; justify-content:center; padding-top:14vh;
  opacity:0; pointer-events:none; transition:opacity .25s var(--ease);
}
.palette.open{opacity:1; pointer-events:auto;}
.palette__box{
  width:min(520px,90vw); background:var(--surface); border:1px solid var(--line-strong);
  transform:translateY(-12px); transition:transform .25s var(--ease);
}
.palette.open .palette__box{transform:translateY(0);}
.palette__row{padding:1rem 1.25rem; display:flex; align-items:center; gap:.6rem;}
.palette__head{
  justify-content:space-between; border-bottom:1px solid var(--line);
  font-family:var(--mono); font-size:0.75rem; color:var(--text-dim); text-transform:uppercase; letter-spacing:0.1em;
}
.palette__close{background:none; border:1px solid var(--line-strong); color:var(--text-dim); font-family:var(--mono); font-size:0.7rem; padding:.2rem .5rem; cursor:pointer;}
.palette__item{
  display:flex; gap:.8rem; padding:.9rem 1.25rem; border-bottom:1px solid var(--line);
  font-family:var(--display); font-size:1.05rem; transition:background .15s, padding-left .15s;
}
.palette__item .mono{color:var(--cyan);}
.palette__item:hover{background:var(--surface-2); padding-left:1.6rem;}

/* ============================================
   NAV
   ============================================ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:500;
  display:flex; align-items:center; justify-content:space-between;
  padding:1.25rem clamp(1.25rem,4vw,3rem);
  backdrop-filter:blur(10px);
  background:linear-gradient(to bottom, rgba(5,7,10,0.7), transparent);
}
.nav__logo{display:flex; align-items:baseline; gap:.2rem; font-family:var(--display); font-weight:700; font-size:1.1rem;}
.nav__logo-mark .plus{color:var(--red);}
.nav__logo-sub{color:var(--cyan);}
.nav__links{display:flex; gap:2rem; font-family:var(--mono); font-size:0.8rem; letter-spacing:0.04em; text-transform:uppercase;}
.nav__links a{position:relative; padding-bottom:4px; color:var(--text-dim); transition:color .2s;}
.nav__links a:hover{color:var(--text);}
.nav__links a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--cyan); transition:width .25s var(--ease);}
.nav__links a:hover::after{width:100%;}
.nav__actions{display:flex; align-items:center; gap:1rem;}
.nav__cmd{
  background:none; border:1px solid var(--line-strong); color:var(--text-dim);
  font-family:var(--mono); font-size:0.75rem; padding:.45rem .8rem; cursor:pointer; display:flex; gap:.4rem;
  transition:border-color .2s, color .2s;
}
.nav__cmd:hover{border-color:var(--cyan); color:var(--cyan);}
.nav__burger{display:none;}
@media (max-width: 860px){
  .nav__links, .nav__cmd{display:none;}
  .nav__burger{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:38px; height:38px; background:none; border:1px solid var(--line-strong);
    cursor:pointer; padding:0; align-items:center;
  }
  .nav__burger span{width:16px; height:1.5px; background:var(--text); transition:transform .25s var(--ease), opacity .2s;}
  .nav__burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
  .nav__burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .nav__burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
}

.mobile-menu{
  position:fixed; inset:0; z-index:400; background:var(--bg);
  display:flex; flex-direction:column; justify-content:center; gap:3rem; padding:2rem clamp(1.5rem,6vw,3rem);
  transform:translateY(-100%); transition:transform .4s var(--ease);
}
.mobile-menu.open{transform:translateY(0);}
.mobile-menu__links{display:flex; flex-direction:column; gap:1.75rem;}
.mobile-menu__links a{
  font-family:var(--display); font-size:2rem; text-transform:uppercase; display:flex; gap:1rem; align-items:baseline;
}
.mobile-menu__links a .mono{color:var(--cyan); font-size:1rem;}
.mobile-menu__actions{display:flex; flex-direction:column; gap:1rem; align-items:flex-start;}
@media (min-width: 861px){ .mobile-menu{display:none;} }

/* ============================================
   BUTTONS
   ============================================ */
.btn{
  display:inline-flex; align-items:center; gap:.6rem;
  padding:0.95rem 1.6rem; font-family:var(--display); font-size:0.9rem; font-weight:600;
  letter-spacing:0.03em; text-transform:uppercase; border:1px solid transparent;
  transition:transform .2s var(--ease), background .2s, border-color .2s, color .2s;
  clip-path:polygon(0 0, 100% 0, 100% 70%, 92% 100%, 0 100%);
}
.btn--fill{background:var(--cyan); color:#05070A;}
.btn--fill:hover{transform:translateY(-2px); background:#3DFFDA;}
.btn:disabled{opacity:0.35; cursor:not-allowed; pointer-events:none; transform:none;}
[hidden]{display:none !important;}
.btn--ghost{border-color:var(--line-strong); color:var(--text);}
.btn--ghost:hover{border-color:var(--cyan); color:var(--cyan);}
.btn--line{border-color:var(--line-strong); color:var(--text);}
.btn--line:hover{border-color:var(--cyan); color:var(--cyan); transform:translateY(-2px);}
.btn--lg{padding:1.2rem 2rem; font-size:1rem;}

/* ============================================
   HERO
   ============================================ */
.hero{
  position:relative; min-height:100svh; display:flex; flex-direction:column;
  justify-content:flex-end; padding:7rem clamp(1.5rem,5vw,4rem) 4rem; overflow:hidden;
  isolation:isolate; z-index:1;
}
.hero__photo{position:absolute; inset:0; z-index:-2; overflow:hidden;}
.hero__photo img{
  width:100%; height:100%; object-fit:cover; object-position:center 25%;
  filter:grayscale(0.25) contrast(1.12) brightness(0.7) saturate(1.05);
  transform:scale(1.08); will-change:transform;
}
.hero__photo-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(0deg, rgba(5,7,10,0.98) 0%, rgba(5,7,10,0.65) 38%, rgba(5,7,10,0.35) 60%, rgba(5,7,10,0.55) 100%),
    linear-gradient(100deg, rgba(5,7,10,0.5) 0%, transparent 45%),
    radial-gradient(70% 60% at 20% 100%, rgba(0,240,200,0.18), transparent 60%);
}

.hero__tags{position:absolute; inset:0; z-index:1; pointer-events:none;}
.hero__tag-card{
  position:absolute; display:flex; align-items:center; gap:.6rem;
  padding:.6rem .85rem; border:1px solid var(--line-strong); background:rgba(5,7,10,0.55);
  backdrop-filter:blur(6px); animation:tagFloat 5s ease-in-out infinite;
}
.hero__tag-body{display:flex; flex-direction:column; gap:.15rem;}
.hero__tag-body .mono{font-size:0.62rem; color:var(--text-faint); letter-spacing:0.1em;}
.hero__tag-body strong{font-family:var(--display); font-size:0.8rem; text-transform:uppercase; letter-spacing:0.02em;}
.hero__tag-card--1{top:14%; left:8%; animation-delay:.2s;}
.hero__tag-card--2{top:20%; right:9%; animation-delay:1.1s;}
.hero__tag-card--3{top:52%; right:6%; animation-delay:.6s;}
.hero__tag-card--4{top:60%; left:6%; animation-delay:1.6s;}
@keyframes tagFloat{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);} }
@media (max-width:820px){ .hero__tags{display:none;} }

.hero__content{position:relative; z-index:2; max-width:640px;}
.hero__eyebrow{
  display:flex; align-items:center; gap:.5rem; color:var(--cyan);
  font-size:0.75rem; letter-spacing:0.2em; text-transform:uppercase; margin-bottom:1.75rem;
}
.dot{width:6px; height:6px; border-radius:50%; background:var(--cyan); box-shadow:0 0 8px var(--cyan); flex-shrink:0;}
.dot--red{background:var(--red); box-shadow:0 0 8px var(--red);}
.dot--violet{background:var(--violet); box-shadow:0 0 8px var(--violet);}

.keyboard{display:flex; gap:.5rem; margin-bottom:1.75rem; flex-wrap:wrap;}
.key{
  font-family:var(--mono); font-weight:700; font-size:0.75rem; letter-spacing:0.05em;
  padding:.55rem .9rem; border:1px solid var(--line-strong); border-bottom-width:3px;
  background:var(--surface); color:var(--text-dim); transition:transform .08s, background .15s, color .15s, border-color .15s;
}
.key.pressed{transform:translateY(2px); border-bottom-width:1px; background:var(--cyan); color:#05070A; border-color:var(--cyan);}
.key--plus{color:var(--red); border-color:rgba(255,43,76,0.4);}
.key--latam{color:var(--cyan); border-color:rgba(0,240,200,0.4);}

.hero__title{
  font-family:var(--display); font-weight:700; text-transform:uppercase;
  font-size:clamp(2.6rem, 9vw, 6.5rem); line-height:0.94; letter-spacing:-0.01em;
  display:flex; align-items:center; gap:0.02em; flex-wrap:wrap;
}
.plus-big{color:var(--red); font-size:0.7em; margin:0 0.02em;}
.glitch{position:relative;}
.hero__tag{
  font-family:var(--mono); color:var(--text-dim); margin-top:1.1rem; font-size:0.9rem; letter-spacing:0.05em;
}

.hero__date{
  display:inline-flex; align-items:center; gap:1.25rem; margin-top:2rem;
  padding:1rem 1.75rem; border:1px solid var(--line-strong); background:rgba(13,17,23,0.5);
  backdrop-filter:blur(6px); transition:border-color .25s, transform .25s;
}
.hero__date:hover{border-color:var(--cyan); transform:translateY(-2px) scale(1.02);}
.hero__date-day{
  font-family:var(--display); font-weight:700; font-size:2.6rem; line-height:1; color:var(--cyan);
}
.hero__date-info{display:flex; flex-direction:column; gap:.3rem; text-align:left;}
.hero__date-info strong{font-family:var(--display); font-size:1.05rem; letter-spacing:0.03em;}
.hero__date-info .mono{font-size:0.7rem; color:var(--text-dim); letter-spacing:0.08em;}

.hero__desc{
  max-width:520px; margin:1.5rem 0 0; color:var(--text-dim); font-size:1.05rem;
}
.hero__cta{display:flex; gap:1rem; margin-top:2.25rem; flex-wrap:wrap;}

.hero__scroll{position:absolute; bottom:2.2rem; right:clamp(1.5rem,5vw,4rem); z-index:2; display:flex; flex-direction:column; align-items:center; gap:.5rem;}
.hero__scroll .mono{font-size:0.65rem; color:var(--text-faint); letter-spacing:0.2em;}
.hero__scroll-line{width:1px; height:40px; background:var(--line-strong); position:relative; overflow:hidden;}
.hero__scroll-line span{position:absolute; top:-40px; left:0; width:100%; height:100%; background:var(--cyan); animation:scrollDown 1.8s ease-in-out infinite;}
@keyframes scrollDown{ 0%{top:-40px;} 60%{top:40px;} 100%{top:40px;} }
@media (max-width:700px){ .hero__scroll{display:none;} }

.hero__ticker{
  position:absolute; bottom:0; left:0; right:0; z-index:2; overflow:hidden;
  border-top:1px solid var(--line); background:rgba(13,17,23,0.75); backdrop-filter:blur(6px); padding:0.8rem 0;
}
.ticker__track{display:flex; gap:2.5rem; white-space:nowrap; font-family:var(--mono); font-size:0.75rem; color:var(--cyan); letter-spacing:0.1em;
  animation:ticker 24s linear infinite; width:max-content; will-change:transform;}
@keyframes ticker{ from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ============================================
   MANIFESTO STRIP
   ============================================ */
.manifesto{padding:8rem clamp(1.5rem,6vw,6rem); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.manifesto__text{
  font-family:var(--display); font-weight:600; font-size:clamp(1.6rem,4.2vw,3.2rem);
  line-height:1.25; max-width:1100px; text-transform:uppercase; color:var(--text-faint);
}
.reveal-word{display:inline-block; color:var(--text-faint); transition:color .4s;}
.reveal-word.on{color:var(--text);}
.reveal-word.accent{color:var(--text-faint);}
.reveal-word.accent.on{color:var(--cyan);}

/* ============================================
   SECTION SHELL
   ============================================ */
.section{padding:8rem clamp(1.5rem,6vw,6rem); position:relative;}
#ecosistema{padding-bottom:4rem;}
.section--dark{background:var(--surface);}
.section__head{max-width:900px; margin-bottom:4rem;}
.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem; color:var(--cyan);
  font-family:var(--mono); font-size:0.75rem; letter-spacing:0.15em; text-transform:uppercase; margin-bottom:1.25rem;
}
.section__title{
  font-family:var(--display); font-weight:700; text-transform:uppercase;
  font-size:clamp(2rem, 5vw, 3.6rem); line-height:1.08;
}
.outline{
  -webkit-text-stroke:1.5px var(--text);
  color:transparent;
}
.section__lead{margin-top:1.25rem; color:var(--text-dim); font-size:1.1rem; max-width:640px;}

/* Split (ecosistema) */
.split{display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; margin-bottom:2rem;}
.split__text p{color:var(--text-dim); margin-bottom:1.25rem; font-size:1.05rem;}
.split__text strong{color:var(--text); font-family:var(--display);}
.split__visual{display:flex; justify-content:center;}
.split--text-only{grid-template-columns:1fr; position:relative; margin-bottom:3.5rem;}
.split--text-only .split__text{max-width:760px; position:relative; z-index:1;}
.split--text-only .split__text p{font-size:1.15rem; line-height:1.75;}
.split--text-only::before{
  content:''; position:absolute; top:-4rem; right:-4rem; width:420px; height:420px; z-index:0;
  background:radial-gradient(circle, rgba(0,240,200,0.1), transparent 70%);
  pointer-events:none;
}

.ecosistema-visual{
  position:relative; width:100%; height:70vh; min-height:420px; max-height:680px;
  overflow:hidden; border:1px solid var(--line);
}
.ecosistema-visual::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(5,7,10,0.5) 0%, transparent 30%, transparent 70%, rgba(5,7,10,0.3) 100%);
  pointer-events:none;
}
.ecosistema-visual img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.08) contrast(1.05);}

@media (max-width: 900px){
  .ecosistema-visual{height:50vh; min-height:320px;}
}

/* Horizontal rail */
.rail{overflow:hidden; margin:0 -6vw; padding:0 6vw;}
.rail__track{display:flex; gap:1.25rem; overflow-x:auto; padding-bottom:1rem; scroll-snap-type:x proximity;}
.rail__track::-webkit-scrollbar{height:3px;}
.rail__track::-webkit-scrollbar-thumb{background:var(--line-strong);}
.rail__card{
  min-width:260px; scroll-snap-align:start; background:var(--surface); border:1px solid var(--line);
  padding:1.75rem; transition:border-color .2s, transform .2s;
}
.rail__card:hover{border-color:var(--cyan); transform:translateY(-4px);}
.rail__num{color:var(--cyan); display:block; margin-bottom:1rem; font-size:0.8rem;}
.rail__card h3{font-family:var(--display); font-size:1.15rem; margin-bottom:.5rem; text-transform:uppercase;}
.rail__card p{color:var(--text-dim); font-size:0.92rem;}
.rail__caption{margin-top:2rem; color:var(--text-faint); max-width:600px; font-size:0.95rem;}

/* Event hero card */
.event-hero{
  display:block; position:relative; border:1px solid var(--line-strong); overflow:visible;
  min-height:480px; display:flex; align-items:flex-end; margin:3.5rem 0 2rem;
  transition:border-color .3s;
}
.event-hero:hover{border-color:var(--cyan);}
.event-hero__bg{
  position:absolute; inset:0; overflow:hidden;
  background:
    linear-gradient(180deg, rgba(5,7,10,0.2), rgba(5,7,10,0.95)),
    radial-gradient(80% 60% at 80% 0%, rgba(255,43,76,0.25), transparent 60%),
    radial-gradient(60% 50% at 10% 100%, rgba(0,240,200,0.2), transparent 60%),
    var(--surface-2);
  transition:transform .6s var(--ease);
}
.event-hero:hover .event-hero__bg{transform:scale(1.04);}
.event-hero__prop{
  position:absolute; z-index:3; top:-3.5rem; right:6%; width:min(280px,32vw); height:auto;
  filter:drop-shadow(0 20px 50px rgba(0,0,0,0.6)); animation:propFloat 5s ease-in-out infinite;
  pointer-events:none;
}
@keyframes propFloat{ 0%,100%{transform:translateY(0) rotate(-3deg);} 50%{transform:translateY(-16px) rotate(2deg);} }
@media (max-width:760px){ .event-hero__prop{display:none;} }
.event-hero__grid{position:relative; padding:3rem clamp(1.5rem,4vw,3.5rem); width:100%;}
.event-hero__live{
  display:inline-flex; align-items:center; gap:.5rem; font-family:var(--mono); font-size:0.72rem;
  letter-spacing:0.15em; color:var(--red); margin-bottom:1.25rem;
}
.event-hero__title{font-family:var(--display); text-transform:uppercase; font-size:clamp(2rem,5vw,3.4rem); line-height:1; margin-bottom:1.25rem;}
.event-hero__desc{max-width:620px; color:var(--text-dim); margin-bottom:2rem;}
.event-hero__meta{display:grid; grid-template-columns:repeat(4,auto); gap:2rem; margin-bottom:2rem;}
.event-hero__meta .mono{display:block; color:var(--text-faint); font-size:0.68rem; letter-spacing:0.1em; margin-bottom:.35rem;}
.event-hero__meta strong{font-family:var(--display); font-size:1rem; text-transform:uppercase;}
.event-hero__cta{font-family:var(--mono); color:var(--cyan); font-size:0.85rem;}
@media (max-width:700px){ .event-hero__meta{grid-template-columns:repeat(2,auto);} }

.event-hero__sub{display:block; font-family:var(--mono); font-size:0.7rem; color:var(--text-faint); margin-top:.3rem; text-transform:none;}
a.event-hero__cta{font-family:var(--mono); color:var(--cyan); font-size:0.85rem; display:inline-flex; gap:.4rem; border-bottom:1px solid transparent; transition:border-color .2s;}
a.event-hero__cta:hover{border-color:var(--cyan);}

.event-narrative{padding:5rem 0 3rem; max-width:900px;}
.event-narrative__title{font-family:var(--display); text-transform:uppercase; font-size:clamp(1.6rem,4vw,2.6rem); line-height:1.15; margin:1rem 0 2rem;}
.event-narrative__cols{display:grid; grid-template-columns:1fr 1fr; gap:2.5rem;}
.event-narrative__cols p{color:var(--text-dim); font-size:1rem;}
@media (max-width:800px){ .event-narrative__cols{grid-template-columns:1fr;} }

.event-numbers{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:5rem;}
.event-numbers__item{background:var(--bg); padding:2.25rem 1.85rem; transition:transform .3s var(--ease), background .25s;}
.event-numbers__item:hover{transform:translateY(-6px); background:var(--surface);}
.event-numbers__index{color:var(--cyan); display:block; margin-bottom:1rem;}
.event-numbers__item h4{font-family:var(--display); text-transform:uppercase; font-size:1.1rem; margin-bottom:.6rem;}
.event-numbers__item p{color:var(--text-dim); font-size:0.9rem;}
@media (max-width:800px){ .event-numbers{grid-template-columns:1fr;} }

.event-feature{position:relative; margin-bottom:2rem; overflow:hidden; border:1px solid var(--line); aspect-ratio:16/8;}
.event-feature img{width:100%; height:100%; object-fit:cover; object-position:center; display:block; filter:saturate(1.08) contrast(1.04); transform:scale(1.18); will-change:transform;}
.event-feature__caption{
  position:absolute; left:0; right:0; bottom:0; padding:1.5rem clamp(1.25rem,3vw,2.5rem);
  background:linear-gradient(0deg, rgba(5,7,10,0.92), transparent);
  color:var(--text-dim); font-size:0.92rem; max-width:600px; z-index:2;
}
.event-feature__caption .mono{color:var(--cyan); display:block; margin-bottom:.4rem; font-size:0.72rem; letter-spacing:0.1em;}
.event-feature--reverse .event-feature__caption{text-align:right; right:0; left:auto; margin-left:auto;}

.event-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:2rem;}
.event-card{background:var(--surface); padding:2.25rem 1.75rem; transition:background .25s, transform .3s var(--ease);}
.event-card:hover{transform:translateY(-6px);}
.event-card:hover{background:var(--surface-2);}
.event-card .mono{color:var(--text-faint); font-size:0.75rem;}
.event-card h4{font-family:var(--display); text-transform:uppercase; font-size:1.1rem; margin:.75rem 0 .6rem;}
.event-card p{color:var(--text-dim); font-size:0.9rem;}
@media (max-width:800px){ .event-cards{grid-template-columns:1fr;} }

.event-quote{
  border-left:2px solid var(--cyan); padding:0.5rem 0 0.5rem 2rem; margin:4rem 0 5rem; max-width:800px;
}
.event-quote .mono{color:var(--cyan); font-size:0.75rem; letter-spacing:0.12em;}
.event-quote p{font-family:var(--display); text-transform:uppercase; font-size:clamp(1.4rem,3.2vw,2.2rem); line-height:1.25; margin:1rem 0;}
.event-quote cite{color:var(--text-dim); font-style:normal; font-size:0.95rem;}

.event-hub-head{margin-bottom:2rem;}

.event-close{border-top:1px solid var(--line); padding-top:4rem; margin-top:4rem; text-align:center;}
.event-close p{color:var(--text-dim); max-width:600px; margin:0 auto 2.5rem; font-size:1rem;}
.event-close__logos{display:flex; align-items:center; justify-content:center; gap:3rem; margin-bottom:1.75rem; flex-wrap:wrap;}
.event-close__logos img{height:36px; width:auto; opacity:0.85; filter:grayscale(1) brightness(1.4);}
.event-close__meta{color:var(--text-faint); font-size:0.78rem; letter-spacing:0.08em;}

.event-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; margin-bottom:1rem;}
.event-tile{
  border:1px solid var(--line-strong); padding:2.5rem 1.75rem; min-height:180px;
  display:flex; flex-direction:column; justify-content:flex-end; gap:.5rem;
  transition:border-color .25s, transform .25s;
}
.event-tile:hover{border-color:var(--cyan); transform:translateY(-4px);}
.event-tile .mono{color:var(--text-faint); font-size:0.7rem; letter-spacing:0.12em;}
.event-tile h4{font-family:var(--display); font-size:1.4rem; text-transform:uppercase;}
.event-tile p{color:var(--text-dim); font-size:0.88rem;}
.event-tile__go{color:var(--cyan); margin-top:.4rem;}
@media (max-width:800px){ .event-grid{grid-template-columns:1fr;} }



/* Experiencias modules */
.modules{
  display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line);
}
.module{
  background:var(--bg); padding:2.5rem 1.75rem; grid-column:span 2;
  transition:background .25s;
}
.module:hover{background:var(--surface);}
.module--lg{grid-column:span 3;}
.module__icon{font-size:1.6rem; display:block; margin-bottom:1.25rem;}
.module h3{font-family:var(--display); text-transform:uppercase; font-size:1.15rem; margin-bottom:.5rem;}
.module p{color:var(--text-dim); font-size:0.9rem;}
@media (max-width:900px){
  .modules{grid-template-columns:repeat(2,1fr);}
  .module, .module--lg{grid-column:span 1;}
}

/* Stats */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:1.5rem;}
.stat{background:var(--surface); padding:2.25rem 1.75rem;}
.stat h3{font-family:var(--display); text-transform:uppercase; color:var(--cyan); font-size:1.3rem; margin-bottom:.75rem;}
.stat p{color:var(--text-dim); font-size:0.88rem;}
.stats__note{color:var(--text-faint); font-size:0.9rem; margin-bottom:4rem; max-width:600px;}
@media (max-width:800px){ .stats{grid-template-columns:repeat(2,1fr);} }

.amp__intro{color:var(--text-dim); margin-bottom:1.5rem; max-width:500px;}
.amp__list{display:grid; grid-template-columns:repeat(2,1fr); gap:0.6rem 2.5rem; max-width:700px;}
.amp__list li{
  padding:0.7rem 0; border-bottom:1px solid var(--line); color:var(--text-dim); font-size:0.95rem;
  position:relative; padding-left:1.2rem;
}
.amp__list li::before{content:'›'; position:absolute; left:0; color:var(--cyan);}

/* Tiers */
.tiers{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;}
.tier{
  border:1px solid var(--line-strong); padding:2.25rem 1.85rem; position:relative;
  display:flex; flex-direction:column; transition:transform .25s var(--ease), border-color .25s;
}
.tier:hover{transform:translateY(-6px); border-color:var(--cyan);}
.tier--featured{border-color:var(--cyan); background:linear-gradient(180deg, rgba(0,240,200,0.05), transparent 30%);}
.tier__badge{
  position:absolute; top:-1px; right:-1px; background:var(--cyan); color:#05070A;
  font-family:var(--mono); font-size:0.65rem; letter-spacing:0.1em; padding:.4rem .7rem;
}
.tier__head .mono{color:var(--text-faint); font-size:0.75rem; letter-spacing:0.1em;}
.tier__head h3{font-family:var(--display); font-size:1.6rem; text-transform:uppercase; margin:.5rem 0 1rem;}
.tier__price{font-family:var(--display); font-size:2rem; color:var(--cyan); margin-bottom:1rem;}
.tier__price span{font-size:0.9rem; color:var(--text-faint); font-family:var(--mono);}
.tier__value{color:var(--text-dim); font-size:0.88rem; margin-bottom:1.75rem; min-height:80px;}
.tier__group{margin-bottom:1.25rem;}
.tier__group h4{font-family:var(--mono); font-size:0.72rem; color:var(--text-faint); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:.6rem;}
.tier__group ul li{font-size:0.85rem; color:var(--text-dim); padding:.3rem 0 .3rem 1rem; position:relative;}
.tier__group ul li::before{content:'+'; position:absolute; left:0; color:var(--red);}
.tier__cta{margin-top:auto; width:100%; justify-content:center; text-align:center;}
@media (max-width:900px){ .tiers{grid-template-columns:1fr;} }

/* Impacto */
.pillars{display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:3rem;}
.pillar{
  border:1px solid var(--line-strong); padding:.85rem 1.3rem; font-family:var(--mono);
  font-size:0.8rem; color:var(--text-dim); text-transform:uppercase; letter-spacing:0.04em;
}
.impact-list{display:grid; grid-template-columns:repeat(2,1fr); gap:1rem 3rem; max-width:800px;}
.impact-list li{
  font-family:var(--display); font-size:1.1rem; padding-left:1.5rem; position:relative; line-height:1.4;
}
.impact-list li::before{content:'//'; position:absolute; left:0; color:var(--cyan);}
@media (max-width:700px){ .impact-list{grid-template-columns:1fr;} }

/* Participa */
.paths{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-bottom:5rem;}
.path{
  border:1px solid var(--line-strong); padding:2.5rem 1.85rem; display:flex; flex-direction:column; gap:1rem;
  min-height:260px; position:relative; overflow:hidden; transition:border-color .25s, transform .25s;
}
.path:hover{border-color:var(--cyan); transform:translateY(-6px);}
.path__num{color:var(--text-faint); font-size:0.8rem;}
.path h3{font-family:var(--display); font-size:1.5rem; text-transform:uppercase;}
.path p{color:var(--text-dim); font-size:0.92rem; flex-grow:1;}
.path__go{color:var(--cyan); font-size:0.85rem;}
@media (max-width:900px){ .paths{grid-template-columns:1fr;} }

/* Inline multi-step form panel */
.path{cursor:pointer; background:none; border:1px solid var(--line-strong); text-align:left; font-family:inherit; color:inherit; width:100%;}
.path.is-selected{border-color:var(--cyan);}

.form-panel{
  border:1px solid var(--line-strong); background:var(--surface); padding:2.5rem clamp(1.5rem,4vw,3rem);
  margin-bottom:5rem; max-width:720px;
}
.form-panel__head{display:flex; align-items:center; gap:1.5rem; margin-bottom:2rem;}
.form-panel__back{
  background:none; border:none; color:var(--text-dim); font-size:0.78rem; cursor:pointer;
  transition:color .2s;
}
.form-panel__back:hover{color:var(--cyan);}
.form-panel__progress{flex:1; height:2px; background:var(--line); position:relative; overflow:hidden;}
.form-panel__progress span{position:absolute; inset:0 100% 0 0; background:var(--cyan); width:50%; transition:width .35s var(--ease);}
.form-panel__step{color:var(--text-faint); font-size:0.72rem; letter-spacing:0.1em; white-space:nowrap;}

.role-form{display:none;}
.role-form.is-active{display:block;}
.hp-field{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}

.form-intro{margin-bottom:2rem;}
.form-intro .mono{color:var(--cyan); font-size:0.75rem; letter-spacing:0.12em;}
.form-intro h3{font-family:var(--display); text-transform:uppercase; font-size:1.5rem; margin-top:.5rem;}

.form-step{display:none; border:none; flex-direction:column; gap:1.25rem;}
.form-step.is-active{display:flex;}

.field{display:flex; flex-direction:column; gap:.5rem;}
.field .mono{font-size:0.72rem; color:var(--text-faint); letter-spacing:0.08em; text-transform:uppercase;}
.field input, .field select, .field textarea{
  background:var(--bg); border:1px solid var(--line-strong); color:var(--text);
  padding:0.85rem 1rem; font-family:var(--body); font-size:0.95rem; width:100%;
  transition:border-color .2s, box-shadow .2s;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--cyan); box-shadow:0 0 0 3px rgba(0,240,200,0.12);
}
.field input:invalid.touched, .field select:invalid.touched{border-color:var(--red);}
.field textarea{resize:vertical;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:1.25rem;}
@media (max-width:560px){ .field-row{grid-template-columns:1fr;} }

.form-nav{display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-top:2rem;}
.form-nav__back{
  background:none; border:none; color:var(--text-dim); font-size:0.8rem; cursor:pointer; padding:.5rem 0;
  transition:color .2s;
}
.form-nav__back:hover{color:var(--cyan);}
#stepAction{margin-left:auto;}

.form-success{
  display:none; text-align:center; padding:2rem 0;
}
.form-success.is-active{display:block;}
.form-success .mono{color:var(--cyan); font-size:0.75rem; letter-spacing:0.15em;}
.form-success h3{font-family:var(--display); text-transform:uppercase; font-size:1.6rem; margin:1rem 0;}
.form-success p{color:var(--text-dim); max-width:420px; margin:0 auto;}

.cta-band{
  border-top:1px solid var(--line); padding-top:3rem; display:flex; align-items:center; justify-content:space-between;
  gap:2rem; flex-wrap:wrap;
}
.cta-band p{font-family:var(--display); font-size:1.4rem; max-width:480px; text-transform:uppercase; line-height:1.3;}
.btn--lg .mono{opacity:0.6; font-size:0.75rem;}

/* ============================================
   FOOTER
   ============================================ */
.footer{padding:5rem clamp(1.5rem,6vw,6rem) 2rem; border-top:1px solid var(--line);}
.footer__top{display:flex; justify-content:space-between; gap:3rem; flex-wrap:wrap; margin-bottom:3rem;}
.footer__logo{font-family:var(--display); font-size:2rem; text-transform:uppercase;}
.footer__logo .plus{color:var(--red);}
.footer__cols{display:flex; gap:4rem; flex-wrap:wrap;}
.footer__cols > div{display:flex; flex-direction:column; gap:.7rem;}
.footer__cols .mono{color:var(--text-faint); font-size:0.7rem; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:.3rem;}
.footer__cols a{color:var(--text-dim); font-size:0.9rem; transition:color .2s;}
.footer__cols a:hover{color:var(--cyan);}
.footer__bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  color:var(--text-faint); font-size:0.78rem; padding-top:2rem; border-top:1px solid var(--line);
}
.online{color:var(--cyan);}

/* ============================================
   REVEAL ANIMATION HOOKS (JS toggles .in)
   ============================================ */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}

/* ============================================
   RESPONSIVE REFINEMENTS — pasada global
   ============================================ */

/* Tablet */
@media (max-width: 900px){
  /* Dentro de @media (max-width: 900px) — Tablet */
.split{
  grid-template-columns: 1fr;
  gap: 2.5rem;
}
.ecosistema-visual{
  height: 55vh;
  min-height: 340px;
}
  .section{padding:5.5rem clamp(1.25rem,5vw,3rem);}
  .manifesto{padding:5rem clamp(1.25rem,5vw,3rem);}
  .footer__cols{gap:2.5rem;}
  .event-feature{aspect-ratio:16/10;}
}

/* Mobile */
@media (max-width: 640px){
  /* Dentro de @media (max-width: 640px) — Mobile */
.ecosistema-visual{
  height: 55vh;
  min-height: 300px;
  max-height: 460px;
}
  body{font-size:15px;}
  .nav{padding:1rem 1.25rem;}
  .nav__logo{font-size:0.95rem;}

  .hero{padding:6rem 1.25rem 4rem;}
  .hero__title{letter-spacing:-0.02em;}
  .keyboard{gap:.4rem;}
  .key{padding:.45rem .7rem; font-size:0.68rem;}
  .hero__desc{font-size:0.98rem;}
  .hero__date{padding:.8rem 1.25rem; gap:.9rem;}
  .hero__date-day{font-size:2rem;}
  .hero__date-info strong{font-size:0.92rem;}
  .hero__date-info .mono{font-size:0.62rem;}
  .hero__cta{width:100%;}
  .hero__cta .btn{flex:1; justify-content:center;}
  .hero__ticker{padding:0.65rem 0;}
  .ticker__track{gap:1.5rem; font-size:0.68rem;}

  .section{padding:4.5rem 1.25rem;}
  .section__title{font-size:clamp(1.7rem,8vw,2.4rem);}
  .manifesto{padding:4rem 1.25rem;}
  .manifesto__text{font-size:clamp(1.25rem,6vw,1.8rem);}

  .split{gap:2rem;}

  .rail__card{min-width:220px; padding:1.4rem;}

  .event-hero{min-height:auto; margin:2.75rem 0 1.5rem;}
  .event-hero__grid{padding:2rem 1.25rem;}
  .event-hero__title{font-size:clamp(1.8rem,9vw,2.6rem);}
  .event-hero__meta{grid-template-columns:1fr 1fr; gap:1.25rem;}
  .event-hero__prop{width:min(180px,40vw); top:-2.25rem; right:4%;}

  .event-narrative{padding:3.5rem 0 2rem;}
  .event-narrative__title{font-size:clamp(1.4rem,7vw,2rem);}
  .event-feature{aspect-ratio:4/5;}
  .event-feature__caption{padding:1.25rem;}
  .event-feature--reverse .event-feature__caption{text-align:left; margin-left:0;}

  .event-quote{padding-left:1.25rem; margin:2.75rem 0 3.5rem;}
  .event-quote p{font-size:clamp(1.15rem,6vw,1.6rem);}

  .event-close{padding-top:2.75rem; margin-top:2.75rem;}
  .event-close__logos{gap:1.75rem;}
  .event-close__logos img{height:26px;}

  .paths{gap:1rem;}
  .path{padding:1.85rem 1.4rem; min-height:auto;}

  .form-panel{padding:1.75rem 1.25rem; margin-bottom:3rem;}
  .form-panel__head{gap:1rem;}
  .field-row{gap:1rem;}
  .form-intro h3{font-size:1.25rem;}
  .form-nav{flex-wrap:wrap;}
  #stepAction{width:100%; justify-content:center;}
  .form-nav__back{order:2; margin:0 auto;}

  .cta-band{gap:1.5rem;}
  .cta-band p{font-size:1.15rem;}
  .btn--lg{width:100%; justify-content:center; text-align:center; flex-wrap:wrap;}

  .footer{padding:3.5rem 1.25rem 1.5rem;}
  .footer__top{gap:2rem;}
  .footer__cols{gap:2rem; width:100%; justify-content:space-between;}
  .footer__bottom{flex-direction:column; align-items:flex-start; gap:.5rem;}

  .mobile-menu__links a{font-size:1.6rem;}
}

/* Very small phones */
@media (max-width: 380px){
  .event-hero__meta{grid-template-columns:1fr;}
  .keyboard{justify-content:center;}
  .amp__list{grid-template-columns:1fr;}
}