:root{
  --bg:#0B0B0C; --bg-2:#101012; --surface:#141416; --surface-2:#1B1B1E; --surface-3:#222226;
  --line:#2A2A2D; --line-2:#4A4A4E; --accent:#FFC400; --accent-dim:#6B5400; --on-accent:#111111;
  --text:#F2F2F2; --text-2:#C9C9CD; --text-3:#B5B5B8; --danger:#FF9A8F;
  --gut:clamp(20px,4vw,56px); --sec:clamp(56px,8vw,96px); --r:16px;
  --mono:'JetBrains Mono',ui-monospace,monospace; --sans:'Outfit',system-ui,sans-serif;
  color-scheme:dark;
}
body{margin:0}
html{scroll-behavior:smooth}
[id]{scroll-margin-top:92px}
a{color:inherit;text-decoration:none}
button{font-family:inherit}
::selection{background:var(--accent);color:var(--on-accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:12px;top:-80px;z-index:100;background:var(--accent);color:var(--on-accent);font-weight:700;padding:12px 18px;border-radius:10px}
.skip:focus{top:12px}
.blend{mix-blend-mode:screen}

/* ---- Fondo reactivo al mouse ---- */
@property --mx{syntax:'<length>';inherits:true;initial-value:-600px}
@property --my{syntax:'<length>';inherits:true;initial-value:-600px}
.fx{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;--mx:-600px;--my:-600px;transition:--mx .22s ease-out,--my .22s ease-out}
.fx-base,.fx-grid{position:absolute;inset:0;background-size:48px 48px;animation:drift 18s linear infinite}
.fx-base{background-image:linear-gradient(#17171B 1px,transparent 1px),linear-gradient(90deg,#17171B 1px,transparent 1px)}
.fx-grid{background-image:linear-gradient(rgba(255,196,0,.6) 1px,transparent 1px),linear-gradient(90deg,rgba(255,196,0,.6) 1px,transparent 1px);-webkit-mask-image:radial-gradient(circle 240px at var(--mx) var(--my),#000 0%,transparent 100%);mask-image:radial-gradient(circle 240px at var(--mx) var(--my),#000 0%,transparent 100%)}
.fx-glow{position:absolute;inset:0;background:radial-gradient(circle 380px at var(--mx) var(--my),rgba(255,196,0,.11),transparent 70%)}

@keyframes drift{from{background-position:0 0}to{background-position:48px 48px}}
@keyframes floaty{0%,100%{transform:translate(0,0)}50%{transform:translate(40px,-30px)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes typing{to{width:calc(var(--n) * 1ch)}}
@keyframes pulseGlow{0%,100%{box-shadow:0 0 0 1px var(--line),0 0 24px rgba(255,196,0,.08)}50%{box-shadow:0 0 0 1px var(--accent-dim),0 0 56px rgba(255,196,0,.28)}}
@keyframes rotateWords{
0%,16%{transform:translateY(0)}
20%,36%{transform:translateY(-1.8em)}
40%,56%{transform:translateY(-3.6em)}
60%,76%{transform:translateY(-5.4em)}
80%,96%{transform:translateY(-7.2em)}
100%{transform:translateY(-9em)}
}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes revealUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
@keyframes heroIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes shine{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes sweep{to{transform:rotate(360deg)}}
@keyframes lamp{from{opacity:.55;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1.15)}}

.hero-in{animation:heroIn .9s cubic-bezier(.2,.7,.2,1) both}
.d1{animation-delay:.12s}.d2{animation-delay:.26s}.d3{animation-delay:.4s}
.shine-text{background:linear-gradient(100deg,#FFC400 30%,#FFE58A 50%,#FFC400 70%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--accent);animation:shine 6s linear infinite}
.type{display:block;width:0;overflow:hidden;white-space:nowrap;animation:typing 1s steps(var(--n),end) var(--d) forwards}
.cursor{display:inline-block;width:.6em;height:1.1em;background:var(--accent);vertical-align:text-bottom;margin-left:4px;animation:blink 1s steps(1) infinite}
.orb{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(255,196,0,.2) 0%,rgba(255,196,0,0) 68%);filter:blur(30px);animation:floaty 13s ease-in-out infinite;pointer-events:none}
.orb2{background:radial-gradient(circle,rgba(255,120,40,.14) 0%,rgba(255,120,40,0) 68%);animation-duration:17s;animation-direction:reverse}

.words{height:1.8em;overflow:hidden;display:inline-block;vertical-align:bottom}
.words-track{display:flex;flex-direction:column;animation:rotateWords 12s cubic-bezier(.65,0,.35,1) infinite}
.words-track span{height:1.8em;line-height:1.8em;display:block;color:var(--accent);font-family:var(--mono);font-weight:700}

/* ---- Escena de la portada ---- */
.hero{--px:0;--py:0;position:relative;overflow:hidden}
.dots{position:absolute;right:0;bottom:0;width:360px;height:360px;background-image:radial-gradient(rgba(255,196,0,.55) 1.4px,transparent 1.7px);background-size:14px 14px;-webkit-mask-image:radial-gradient(circle at 100% 100%,#000 0%,transparent 70%);mask-image:radial-gradient(circle at 100% 100%,#000 0%,transparent 70%);pointer-events:none}
.scene{flex:1.4 1 640px;min-width:0;max-width:960px;container-type:inline-size}
.scene__in{position:relative;--Ws:calc(100cqw - 260px)}
.stagewrap{width:var(--Ws);display:flex;flex-direction:column;gap:10px}
.stage{position:relative;width:100%;aspect-ratio:554/438;overflow:hidden;container-type:inline-size}
.stage__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 26%),linear-gradient(0deg,transparent 0%,#000 12%),linear-gradient(180deg,#000 calc(var(--p) - 6%),transparent var(--p));
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0%,#000 26%),linear-gradient(0deg,transparent 0%,#000 12%),linear-gradient(180deg,#000 calc(var(--p) - 6%),transparent var(--p));
  mask-composite:intersect;
  transform:translate3d(calc(var(--px) * -10px),calc(var(--py) * -6px),0) scale(1.03);transition:transform .25s ease-out;animation:sharpen 3.8s ease .5s both}
.beam{position:absolute;left:23.5%;top:29.7%;width:170%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;mix-blend-mode:screen;-webkit-mask-image:radial-gradient(circle,#000 0%,transparent 62%);mask-image:radial-gradient(circle,#000 0%,transparent 62%)}
.beam i{position:absolute;inset:0;background:conic-gradient(from 0deg,rgba(255,214,70,0) 0deg,rgba(255,214,70,0) 334deg,rgba(255,214,70,.3) 354deg,rgba(255,214,70,0) 360deg);animation:sweep 9s linear infinite}
.lamp{position:absolute;left:23.5%;top:29.7%;width:90px;height:90px;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,200,40,.6),transparent 65%);mix-blend-mode:screen;pointer-events:none;animation:lamp 3s ease-in-out infinite alternate}
.glyph{position:absolute;right:6%;top:5%;font-family:var(--mono);font-weight:700;font-size:34px;color:var(--accent);opacity:.8;animation:bob 6s ease-in-out infinite}
/* ---- Galería como terminal ---- */
.cmd{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;margin:0 0 12px;font-family:var(--mono);font-size:14px}
.ps{color:var(--accent)}
.type.inline{display:inline-block;vertical-align:bottom}
.hint{margin:14px 0 0;font-family:var(--mono);font-size:12.5px;color:var(--text-3)}
.dirs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.dir{display:flex;flex-direction:column;width:100%;height:100%;padding:0;text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;color:var(--text);font-family:var(--sans);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.dir__cover{position:relative;aspect-ratio:16/10;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden}
.dir__cover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%;height:100%;border:1px dashed var(--line-2);color:var(--text-3);font-family:var(--mono);font-size:12px;box-sizing:border-box}
.dir__body{display:flex;flex-direction:column;gap:3px;padding:12px 14px 14px}
.dir__name{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;font-size:17px}
.dir__meta{font-size:13px;color:var(--text-3)}
.star{font-family:var(--mono);font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--accent);color:var(--on-accent)}
.files{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.file{display:flex;flex-direction:column;padding:0;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;overflow:hidden;cursor:pointer;color:var(--text);transition:border-color .2s ease,transform .2s ease}
.file__thumb{aspect-ratio:1;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden}
.file__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.fname{font-family:var(--mono);font-size:11px;color:var(--text-3);padding:6px 8px;text-align:left}
.back{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;margin-bottom:12px;background:transparent;border:1px solid var(--line-2);border-radius:10px;color:var(--text);font-family:var(--mono);font-size:13px;cursor:pointer}
.viewer__img{aspect-ratio:16/9;background:var(--bg);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.viewer__img img{width:100%;height:100%;object-fit:contain;display:block}
.vbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}
.vbtn{min-height:44px;min-width:44px;padding:0 14px;border:1px solid var(--line-2);border-radius:10px;background:transparent;color:var(--text);cursor:pointer;font-family:var(--mono);font-size:13px}
@media (hover:hover) and (pointer:fine){
.dir:hover{transform:translateY(-4px);border-color:var(--accent) !important;box-shadow:0 14px 30px rgba(0,0,0,.45)}
.dir:hover img{transform:scale(1.07)}
.file:hover{border-color:var(--accent);transform:translateY(-2px)}
.back:hover,.vbtn:hover{border-color:var(--accent);color:var(--accent)}
}

/* ---- Equipo: pestañas tipo editor ---- */
.tab{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:0 18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;color:var(--text);font-family:var(--sans);font-size:18px;font-weight:600;cursor:pointer;text-align:left;transition:background .2s ease,border-color .2s ease,color .2s ease}
.tab small{font-family:var(--mono);font-size:12px;color:var(--text-3);font-weight:400}
.tab.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.tab.on small{color:#3A2E00}
.pane{animation:fadeIn .45s ease both}
.fcard{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:22px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r)}
.avatar{width:84px;height:84px;border-radius:50%;border:2px dashed var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:6px}
@media (hover:hover) and (pointer:fine){.tab:not(.on):hover{border-color:var(--accent)}}

/* ---- Ensamblado del pingüino desde código ---- */
@property --p{syntax:'<percentage>';inherits:true;initial-value:112%}
@keyframes assemble{from{--p:-12%}to{--p:112%}}
@keyframes sharpen{from{filter:blur(7px) brightness(1.5) saturate(1.3)}to{filter:none}}
@keyframes codeRain{from{transform:translateY(-50%)}to{transform:translateY(0)}}
.asm{position:absolute;inset:0;animation:assemble 3.8s cubic-bezier(.45,.05,.3,1) .5s both}
.asm *{animation-play-state:inherit}
.chars{position:absolute;inset:0;overflow:hidden;pointer-events:none;mix-blend-mode:screen;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 22%),linear-gradient(180deg,rgba(0,0,0,.07) calc(var(--p) - 6%),#000 var(--p));
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0%,#000 22%),linear-gradient(180deg,rgba(0,0,0,.07) calc(var(--p) - 6%),#000 var(--p));
  mask-composite:intersect}
.chars__in{animation:codeRain 16s linear infinite}
.chars pre{margin:0;font-family:var(--mono);font-size:3.1cqw;line-height:1.25;color:rgba(255,196,0,.9);text-shadow:0 0 8px rgba(255,196,0,.55);white-space:pre}
.scan{position:absolute;left:0;right:0;top:var(--p);height:3px;margin-top:-1px;background:linear-gradient(90deg,transparent,var(--accent) 25%,#FFE58A 55%,transparent);box-shadow:0 0 18px 4px rgba(255,196,0,.7);pointer-events:none}
.beam{animation:fadeIn 1.2s ease 4.2s both}
.lamp{animation:fadeIn 1.2s ease 4.2s both,lamp 3s ease-in-out 5.4s infinite alternate}
.stage-ctl{display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:center}
.ctl{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;background:transparent;border:1px solid var(--line-2);border-radius:999px;color:var(--text-2);font-family:var(--mono);font-size:12.5px;cursor:pointer;transition:color .2s ease,border-color .2s ease}
@media (hover:hover) and (pointer:fine){.ctl:hover{color:var(--accent);border-color:var(--accent)}}
/* ---- Viñeta de consola conectada a la laptop de Tux ---- */
@keyframes flow{from{stroke-dashoffset:64}to{stroke-dashoffset:0}}
@keyframes portPulse{0%,100%{box-shadow:0 0 0 0 rgba(255,196,0,.55),0 0 14px rgba(255,196,0,.8)}50%{box-shadow:0 0 0 9px rgba(255,196,0,0),0 0 22px rgba(255,196,0,1)}}
.bubble{position:absolute;right:0;top:calc(var(--Ws) * .3162);width:290px;z-index:2;transform-origin:left center;
  transform:perspective(900px) rotateY(calc(-5deg + var(--px) * -4deg)) rotateX(calc(var(--py) * 4deg));
  transition:transform .25s ease-out;animation:fadeIn .8s ease 3.8s both}
.bubble__in{background:rgba(20,20,22,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--accent-dim);border-radius:14px;overflow:hidden;animation:pulseGlow 5s ease-in-out infinite}
.bubble::before,.bubble::after{content:"";position:absolute;width:0;height:0;border-style:solid;border-color:transparent}
.bubble::before{left:-17px;top:26px;border-width:10px 17px 10px 0;border-right-color:var(--accent-dim)}
.bubble::after{left:-15px;top:27px;border-width:9px 15px 9px 0;border-right-color:#18181B}
.cable{position:absolute;left:calc(var(--Ws) * .58);top:calc(var(--Ws) * .3162 + 36px);width:calc(var(--Ws) * .42 - 47px);height:calc(var(--Ws) * .1503 - 36px);pointer-events:none;z-index:1;filter:drop-shadow(0 0 5px rgba(255,196,0,.8));animation:fadeIn 1s ease 4.2s both}
.cable svg{display:block;width:100%;height:100%;overflow:visible}
.cable .wire{fill:none;stroke:rgba(255,196,0,.55);stroke-width:1.5;stroke-dasharray:5 6;vector-effect:non-scaling-stroke}
.cable .packets{fill:none;stroke:#FFE58A;stroke-width:5;stroke-linecap:round;stroke-dasharray:.1 64;vector-effect:non-scaling-stroke;animation:flow 2.2s linear infinite}
.port{position:absolute;left:calc(var(--Ws) * .58 - 7px);top:calc(var(--Ws) * .4665 - 7px);width:14px;height:14px;border-radius:50%;border:2px solid var(--accent);background:rgba(255,196,0,.25);z-index:1;pointer-events:none;
  transform:translate3d(calc(var(--px) * -10px),calc(var(--py) * -6px),0);transition:transform .25s ease-out;animation:fadeIn 1s ease 4.2s both,portPulse 2.4s ease-out 5.2s infinite}
@container (max-width: 700px){
  .scene__in{--Ws:100cqw}
  .bubble{position:relative;right:auto;top:auto;width:min(290px,100%);margin:16px auto 0;transform:none}
  .bubble::before,.bubble::after,.cable,.port{display:none}
}

/* ---- Cabecera ---- */
.header{position:sticky;top:0;z-index:50;background:rgba(11,11,12,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.bar{position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left}
@supports (animation-timeline: scroll()){
.bar{animation:progress linear both;animation-timeline:scroll(root)}
}
.nav{position:relative}
.nav::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:3px;border-radius:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav.on::after{transform:scaleX(1)}

.btn{transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.card{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.zoom{overflow:hidden}
.zoom img{transition:transform .5s ease;display:block}
.evcard{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.pill{transition:border-color .2s ease,color .2s ease}
.day{transition:background .15s ease}
.ally{transition:transform .25s ease,opacity .25s ease}

.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 40s linear infinite}
.ally{display:flex;align-items:center;padding:0 40px;border-right:1px solid var(--line);opacity:.92}

@media (hover:hover) and (pointer:fine){
.btn:hover{transform:translateY(-2px);box-shadow:0 0 28px rgba(255,196,0,.5)}
.btn-ghost:hover{box-shadow:none;background:rgba(255,255,255,.1)}
.nav:hover::after{transform:scaleX(1)}
.card:hover,.evcard:hover{transform:translateY(-6px);border-color:var(--accent) !important;box-shadow:0 18px 40px rgba(0,0,0,.5),0 0 32px rgba(255,196,0,.18)}
.card:hover .zoom img{transform:scale(1.07)}
.pill:hover{border-color:var(--accent) !important;color:var(--accent) !important}
.day:hover{background:var(--surface-3)}
.ally:hover{opacity:1;transform:scale(1.05)}
.marquee:hover .marquee-track{animation-play-state:paused}
}
.card:focus-visible,.evcard:focus-visible{border-color:var(--accent) !important}

@supports (animation-timeline: view()){
.reveal{animation:revealUp linear both;animation-timeline:view();animation-range:entry 0% entry 45%}
}
@media (prefers-reduced-motion: reduce){
html{scroll-behavior:auto}
*{animation:none !important;transition:none !important}
.type{width:auto}
.bar{display:none}
}

/* ===== Sitio estático: capa sobre el diseño Pro ===== */
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.55}
.page{position:relative;isolation:isolate;overflow-x:clip;min-height:100vh}
img{max-width:100%}
.wrap{max-width:1440px;margin:0 auto;box-sizing:border-box;padding-left:var(--gut);padding-right:var(--gut)}
.sec{padding-top:var(--sec)}
.mono{font-family:var(--mono)}
.accent{color:var(--accent)}
.muted{color:var(--text-2)}
.kicker{font-family:var(--mono);font-size:14px;color:var(--accent)}
.h2{margin:0;font-weight:800;font-size:clamp(30px,3vw,40px);line-height:1.1}
.stack{display:flex;flex-direction:column}
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:700;border-radius:10px;cursor:pointer;border:0}
.btn--primary{min-height:54px;padding:0 26px;background:var(--accent);color:var(--on-accent)}
.btn--ghost{min-height:54px;padding:0 26px;border:2px solid #fff;color:var(--text);background:transparent;font-weight:600}
.btn--accent-ol{min-height:52px;padding:0 24px;border:2px solid var(--accent);color:var(--accent);background:transparent}
.bullets{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px;font-size:15px}
.bullets li{padding:8px 14px;border:1px solid var(--line-2);border-radius:999px;color:var(--text-2)}
.term{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.term__bar{display:flex;align-items:center;gap:8px;padding:13px 18px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.term__bar i{width:12px;height:12px;border-radius:50%;background:#4F4F53;display:block}
.term__bar i:first-child{background:var(--accent)}
.term__bar span{margin-left:12px;font-family:var(--mono);font-size:13px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* cabecera + menú móvil */
.header__in{max-width:1440px;margin:0 auto;box-sizing:border-box;padding:10px var(--gut);display:flex;align-items:center;justify-content:space-between;gap:8px 24px}
.brand{display:flex;align-items:center;gap:16px;min-height:52px}
.brand img{height:48px;width:auto;display:block}
.brand__sep{width:1px;height:36px;background:var(--line-2)}
.brand__tag{color:var(--text-2);font-size:14px;line-height:1.25;max-width:190px}
.menu{display:flex;align-items:center;gap:0 2px;font-size:16px;font-weight:500}
.menu a.nav{display:inline-flex;align-items:center;min-height:48px;padding:0 14px}
.menu a.nav.on{color:var(--accent)}
.menu .btn{margin-left:12px;min-height:46px;padding:0 22px;background:var(--accent);color:var(--on-accent)}
.menu-toggle{display:none;align-items:center;gap:8px;min-height:48px;padding:0 16px;background:transparent;border:1px solid var(--line-2);border-radius:10px;color:var(--text);font-family:var(--mono);font-size:14px;cursor:pointer}
@media (max-width:1100px){
  .brand__tag{display:none}.brand__sep{display:none}
  .menu-toggle{display:inline-flex}
  .menu{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;padding:8px var(--gut) 18px;background:#0B0B0C;border-bottom:1px solid var(--line)}
  .menu.open{display:flex}
  .menu a.nav{min-height:52px;border-bottom:1px solid var(--line)}
  .menu .btn{margin:14px 0 0;justify-content:center}
}
.hero__in{position:relative;z-index:1;max-width:1440px;margin:0 auto;box-sizing:border-box;padding:clamp(40px,6vw,72px) var(--gut) clamp(48px,6vw,72px);display:flex;flex-wrap:wrap;align-items:center;gap:clamp(28px,3vw,44px)}
.hero__copy{flex:1 1 400px;min-width:0;display:flex;flex-direction:column;gap:20px}
.hero__title{margin:0;font-weight:800;font-size:clamp(34px,3.9vw,56px);line-height:1.03;letter-spacing:-.02em;text-wrap:balance}
.ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:6px}

/* cifras */
.stats{list-style:none;margin:0;padding:8px 0;display:flex;flex-wrap:wrap;background:rgba(20,20,22,.72);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:20px}
.stats li{flex:1 1 220px;display:flex;align-items:center;justify-content:center;gap:16px;padding:18px 20px}
.stats li+li{border-left:1px solid var(--line)}
.stats b{display:block;font-weight:800;font-size:32px;line-height:1}
.stats span{font-size:15px;color:var(--text-2)}
@media (max-width:700px){.stats li+li{border-left:0;border-top:1px solid var(--line)}}

/* eventos */
.evgrid{display:flex;flex-wrap:wrap;gap:20px;align-items:stretch}
.evcard{flex:1 1 230px;min-width:0;display:flex;flex-direction:column;gap:12px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.evcard__top{display:flex;align-items:center;gap:14px}
.evcard__top img{height:46px;width:auto;flex:none}
.evcard__name{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;font-weight:700;font-size:19px;line-height:1.2}
.evrow{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--text-2)}
.badge{margin-left:auto;font-family:var(--mono);font-size:11px;padding:2px 8px;border:1px solid var(--line-2);border-radius:999px;color:var(--text-2)}
.badge--next{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:700}
.revive{flex:1.2 1 300px;min-width:0;position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:190px;background:var(--surface);border:1px solid var(--accent-dim);border-radius:var(--r);overflow:hidden}
.revive .zoom{position:absolute;inset:0}
.revive img{width:100%;height:100%;object-fit:cover}
.revive__shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,11,12,.92) 0%,rgba(11,11,12,.2) 60%,transparent 100%)}
.revive__txt{position:relative;display:flex;align-items:center;gap:14px;padding:16px 18px}
.revive__play{flex:none;width:46px;height:46px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center}

/* pasos */
.steps{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:20px}
.steps li{flex:1 1 280px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:26px;display:flex;flex-direction:column;gap:10px}
.steps h3{margin:0;font-weight:700;font-size:23px}
.steps p{margin:0;color:var(--text-2);font-size:16px}
.steps a{margin-top:auto;display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:600;color:var(--accent)}

/* equipo */
.team{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start}
.team__nav{flex:1 1 320px;min-width:0;max-width:440px;display:flex;flex-direction:column;gap:14px}
.team__panel{flex:2 1 520px;min-width:0}
.panel__body{padding:clamp(24px,3vw,40px);min-height:330px}
.lead{margin:0;font-weight:700;font-size:clamp(20px,2.4vw,30px);line-height:1.3;text-wrap:balance}
.fgrid{display:flex;flex-wrap:wrap;gap:16px}
.fgrid .fcard{flex:1 1 180px}
.fcard .chips{display:flex;gap:8px;margin-top:6px}
.chip{font-family:var(--mono);font-size:12px;padding:6px 10px;border:1px solid var(--line-2);border-radius:999px;color:var(--text-2)}
.values{display:flex;flex-direction:column;gap:14px}
.values div{display:flex;gap:16px;align-items:flex-start}
.values svg{flex:none;margin-top:2px}
.values strong{font-size:21px}
.values p{margin:2px 0 0;color:var(--text-2)}
[hidden]{display:none !important}

/* galería + calendario */
.gal-cal{display:flex;flex-wrap:wrap;align-items:flex-start;gap:40px}
.gal{flex:999 1 640px;min-width:0;display:flex;flex-direction:column;gap:26px}
.gal__body{padding:clamp(16px,2.4vw,24px);min-height:360px}
.dir:focus-visible,.file:focus-visible{outline-offset:2px}
.cal{flex:1 1 380px;min-width:0;max-width:480px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px 24px 26px;display:flex;flex-direction:column;gap:14px}
.cal__nav{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cal__nav button{height:44px;min-width:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-3);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:13px}
.cal__month{font-weight:700;font-size:20px;text-align:center;flex:1 1 auto}
.cal__head,.cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.cal__head{font-family:var(--mono);font-size:12px;color:var(--text-3)}
.cal__grid{font-size:17px;font-weight:500}
.cal__grid div{height:42px;display:flex;align-items:center;justify-content:center;border-radius:12px;color:#E8E8E8;box-sizing:border-box}
.cal__grid .ev{background:var(--accent);color:var(--on-accent);font-weight:800;cursor:help}
.cal__grid .today{border:2px solid var(--accent);color:var(--accent);font-weight:700}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;font-size:14px;color:var(--text-3)}
.legend span{display:inline-flex;align-items:center;gap:8px}
.legend i{width:16px;height:16px;border-radius:5px;background:var(--accent);display:block;box-sizing:border-box}
.legend i.o{background:none;border:2px solid var(--accent)}

/* aliados */
.allies{margin-top:var(--sec);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(16,16,18,.78);padding:clamp(36px,5vw,52px) 0 clamp(40px,5vw,56px)}
.allies__head{padding-bottom:26px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.allies__head>div{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.allies__head p{margin:0;color:var(--text-2);font-size:15px;max-width:420px;border-left:1px solid var(--line-2);padding-left:18px}
.pausebtn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid var(--line-2);border-radius:999px;background:transparent;color:var(--text);font-family:var(--mono);font-size:13px;cursor:pointer}
.ally img{height:56px;width:auto;display:block}

/* video */
.video{display:flex;flex-wrap:wrap;gap:32px;align-items:center}
.video__copy{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:12px}
.video__box{flex:2 1 460px;min-width:0}
.video__frame{position:relative;aspect-ratio:16/9;background:var(--bg);overflow:hidden}
.video__frame iframe,.video__frame button{position:absolute;inset:0;width:100%;height:100%;border:0}
.video__play{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:radial-gradient(circle at 50% 50%,#1b1b1e,#0b0b0c);color:var(--text);cursor:pointer;font-family:var(--mono);font-size:14px}
.video__play span{width:68px;height:68px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center}
.video__ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1px dashed var(--line-2);color:var(--text-3);font-family:var(--mono);font-size:13px;text-align:center;padding:16px}

/* únete + pie */
.join{background:var(--surface);border:1px solid var(--accent-dim);border-radius:18px;overflow:hidden;animation:pulseGlow 5s ease-in-out infinite}
.join__body{padding:clamp(32px,5vw,52px) clamp(24px,4vw,48px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px}
.join h2{margin:0;font-weight:800;font-size:clamp(34px,4vw,46px);line-height:1.08;letter-spacing:-.01em}
.footer{border-top:1px solid var(--line);background:#080809}
.footer__top{padding-top:44px;padding-bottom:28px;display:flex;flex-wrap:wrap;gap:36px 56px;align-items:flex-start;justify-content:space-between}
.footer h3{margin:0 0 4px;color:var(--accent);font-weight:700;font-size:17px}
.footer__links{display:flex;flex-wrap:wrap;gap:0 16px;font-size:14px;color:#E4E4E4}
.footer__links a{display:inline-flex;align-items:center;min-height:40px}
.socials{display:flex;flex-wrap:wrap;gap:8px}
.pill{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--line-2);border-radius:999px;font-size:14px}
.nl{display:flex;gap:8px}
.nl input{flex:1 1 auto;min-width:0;height:46px;box-sizing:border-box;padding:0 14px;border:1px solid var(--line-2);border-radius:10px;background:#161618;color:#fff;font-family:inherit;font-size:16px}
.nl button{flex:0 0 auto;width:52px;height:46px;border:0;border-radius:10px;background:var(--accent);cursor:pointer;display:flex;align-items:center;justify-content:center}
.footer__bottom{border-top:1px solid #2A2A2C;padding-top:20px;margin-bottom:28px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px;font-size:14px;color:#B8B8B8}
.footer__bottom span:last-child{display:inline-flex;align-items:center;gap:10px;color:#E4E4E4}

/* 404 */
.notfound{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.notfound .term{max-width:560px;width:100%}
.notfound .term__body{padding:32px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.notfound h1{margin:0;font-size:clamp(26px,5vw,36px);line-height:1.15}
.notfound .btn{margin-top:8px}

@media (min-width:640px){.dirs .flag{grid-column:span 2}}
@media (max-width:400px){.dirs{grid-template-columns:minmax(0,1fr)}.cal{padding:20px 16px 22px}}
