@font-face{font-family:"PP Eiko";src:url(/assets/fonts/eiko-thin.woff) format("woff");font-weight:200;font-display:swap}
@font-face{font-family:"PP Eiko";src:url(/assets/fonts/eiko-medium.woff) format("woff");font-weight:500;font-display:swap}
@font-face{font-family:"PP Eiko";src:url(/assets/fonts/eiko-heavy.woff) format("woff");font-weight:900;font-display:swap}
@font-face{font-family:"Futura R";src:url(/assets/fonts/futura-heavy.woff) format("woff");font-weight:400 900;font-display:swap}

:root{
  --blue:#0328D6;--paper:#EDF2F4;--ink:#2B2B33;--white:#FFFFFF;--navy:#01104F;
  --pad:clamp(20px,5.5vw,80px);
  --eiko:"PP Eiko",Georgia,"Times New Roman",serif;
  --futura:"Futura R",Futura,"Century Gothic","Avenir Next",sans-serif;
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--paper:#EDF2F4;--ink:#2B2B33}}
:root[data-theme="dark"]{--paper:#EDF2F4;--ink:#2B2B33}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 80px);scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
*,*::before,*::after{box-sizing:inherit}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--futura);font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
button{font:inherit;color:inherit}
:focus-visible{outline:1.5px solid currentColor;outline-offset:4px}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.h-heavy{font-family:var(--eiko);font-weight:900;letter-spacing:-.02em}
.pill{display:inline-flex;align-items:center;height:48px;padding:0 24px;border-radius:24px;border:1px solid currentColor;background:transparent;cursor:pointer;font-size:15px;white-space:nowrap}
.pill.solid{background:var(--paper);color:var(--blue);border-color:var(--paper)}
.pill:hover{text-decoration:none}
.link-u{border-bottom:1px solid currentColor;padding-bottom:2px}
.link-u:hover{text-decoration:none}

/* NAV */
.nav{position:fixed;left:0;right:0;top:0;z-index:50;padding:calc(env(safe-area-inset-top,0px) + 18px) var(--pad) 18px;display:flex;justify-content:space-between;align-items:center;color:var(--paper);transition:background-color .4s ease,opacity .6s ease,visibility .6s}
.nav.solid{background:rgba(3,40,214,.8);-webkit-backdrop-filter:saturate(1.3) blur(14px);backdrop-filter:saturate(1.3) blur(14px)}
.nav.hidden{opacity:0;pointer-events:none;visibility:hidden}
.nav .logo{display:block;width:clamp(86px,8vw,116px)}
.nav .logo svg{display:block;width:100%;height:auto}
#navLogo path{fill:currentColor}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:clamp(18px,3vw,44px);align-items:center;font-size:16px}
.nav .replay{height:40px;padding:0 16px;font-size:14px}
@media (max-width:760px){.nav ul .opt{display:none}}

/* HERO + JUEGO */
.hero{position:relative;height:100vh;height:100svh;min-height:600px;overflow:hidden;background:var(--navy);color:var(--paper)}
.hero video.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .veil{position:absolute;inset:0;background:rgba(1,16,79,.28)}
.stage{color:var(--paper);position:absolute;inset:0;border:0;padding:0;margin:0;background:transparent;cursor:crosshair;touch-action:manipulation;z-index:2;display:block;width:100%}
.stage[hidden]{display:none}
.glyph{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;z-index:1;transform-origin:50% 50%}
.glyph path,.est path{fill:var(--white)}
.glyph.fall{transition:left 1s cubic-bezier(.2,.7,.3,1),top 1s cubic-bezier(.55,0,.35,1.18),width 1s ease,height 1s ease,transform 1s cubic-bezier(.6,0,.3,1)}
.glyph.still{transition:none}
.est{position:absolute;overflow:visible;pointer-events:none;opacity:0;transition:opacity .7s ease .8s;z-index:1}
.est.on{opacity:1}
.ship{position:absolute;width:52px;height:32px;pointer-events:none;filter:drop-shadow(0 0 6px rgba(255,255,255,.45))}
@media (pointer:fine){.stage{cursor:none}}
.bolt{position:absolute;width:4px;height:16px;background:var(--white);pointer-events:none;box-shadow:0 0 10px 1px rgba(255,255,255,.75)}
.trail{position:absolute;width:2px;background:linear-gradient(to top,rgba(255,255,255,.6),rgba(255,255,255,0));transform-origin:50% 100%;pointer-events:none}
.boom{position:absolute;width:44px;height:28px;margin:-14px 0 0 -22px;pointer-events:none}
.shot{position:absolute;width:1.5px;background:var(--white);opacity:0;pointer-events:none}
.hint{position:absolute;left:var(--pad);right:var(--pad);text-align:center;font-size:clamp(14px,1.2vw,16px);line-height:1.45;pointer-events:none}
.timer{position:absolute;left:var(--pad);height:1px;background:var(--paper);z-index:3}
.skip{position:absolute;right:var(--pad);z-index:4}
.msg{position:absolute;left:0;right:0;margin:0;text-align:center;font-family:var(--eiko);font-weight:900;font-size:clamp(24px,2.6vw,36px);color:var(--white);opacity:0;transition:opacity .4s;z-index:3;pointer-events:none}
.msg.on{opacity:1}
.hero-copy{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(28px,7vh,72px);display:flex;justify-content:space-between;align-items:flex-end;gap:48px;opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s ease;pointer-events:none;z-index:3;visibility:hidden}
.hero-copy.on{opacity:1;transform:none;pointer-events:auto;visibility:visible}
.hero-copy h1{margin:0;max-width:820px;font-family:var(--eiko);font-weight:500;font-size:clamp(28px,3.5vw,52px);line-height:1.08;letter-spacing:-.012em}
.hero-copy .side{width:340px;display:flex;flex-direction:column;gap:22px}
.hero-copy .side p{margin:0;font-size:17px;line-height:1.55}
.hero-copy .ctas{display:flex;gap:26px;align-items:center;font-size:16px}
@media (max-width:760px){.hero-copy{flex-direction:column;align-items:flex-start;gap:18px}.hero-copy .side{width:auto}}

/* ESTUDIO */
.estudio{position:relative;height:175vh;background:var(--blue);color:var(--paper)}
.estudio .stick{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;padding:clamp(90px,12vh,140px) var(--pad) clamp(40px,8vh,90px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:1fr auto;gap:32px 24px}
.estudio .mani{grid-column:1/span 10;align-self:center;margin:0;font-family:var(--eiko);font-weight:200;font-size:clamp(30px,4.1vw,62px);line-height:1.14;letter-spacing:-.012em}
.estudio .w{opacity:.18}
.estudio .w.on{opacity:1}
.estudio .w.acc{font-weight:900;color:var(--white)}
.estudio .ufo{grid-column:1/span 7;align-self:end;margin:0;font-family:var(--eiko);font-weight:900;font-size:clamp(22px,2.1vw,30px);line-height:1.2;color:var(--white);opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.estudio .about{grid-column:9/span 4;align-self:end;margin:0;font-size:16px;line-height:1.65;opacity:0;transition:opacity .6s ease .15s}
.estudio.landed .ufo{opacity:1;transform:none}
.estudio.landed .about{opacity:1}
.estudio .ovni{position:absolute;left:0;top:0;width:clamp(30px,2.8vw,42px);height:auto;overflow:visible;pointer-events:none;will-change:transform}
.estudio .ovni path{fill:var(--white)}
.estudio .beam{position:absolute;left:0;top:0;width:1px;background:linear-gradient(to bottom,rgba(255,255,255,.7),rgba(255,255,255,0));opacity:0;pointer-events:none;transition:opacity .4s}
@media (max-width:900px){.estudio .mani,.estudio .ufo,.estudio .about{grid-column:1/-1}.estudio .stick{grid-template-rows:1fr auto auto}}
@media (prefers-reduced-motion: reduce){.estudio{height:auto}.estudio .stick{position:relative;height:auto;min-height:100svh}.estudio .w{opacity:1}.estudio .ufo,.estudio .about{opacity:1;transform:none}}
/* DESTACADOS */
.feat{position:relative;display:block;height:88vh;height:88svh;min-height:520px;overflow:hidden;background:var(--ink);color:var(--paper)}
.feat:hover{text-decoration:none}
.feat video,.feat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.feat:hover video{transform:scale(1.02)}
.scrim{position:absolute;left:0;right:0;bottom:0;height:65%;background:linear-gradient(to top,rgba(18,18,26,.74),rgba(18,18,26,0));pointer-events:none}
.feat .cap{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(28px,6vh,56px);display:flex;justify-content:space-between;align-items:flex-end;gap:48px}
.feat .idx{font-family:var(--eiko);font-weight:200;font-size:clamp(22px,2.6vw,36px);line-height:1}
.feat .ttl{display:block;margin-top:10px;font-family:var(--eiko);font-weight:900;color:var(--white);font-size:clamp(44px,7.4vw,108px);line-height:.95;letter-spacing:-.02em}
.feat .meta{display:block;margin-top:12px;font-size:clamp(14px,1.2vw,17px)}
.feat .desc{margin:0;width:380px;font-size:16px;line-height:1.55}
.feat .desc span{display:block;margin-top:14px}
@media (max-width:760px){.feat .cap{flex-direction:column;align-items:flex-start;gap:12px}.feat .desc{width:auto;font-size:14px}}

/* REJILLA */
.more{background:var(--paper);color:var(--blue);padding:clamp(72px,9vw,120px) var(--pad)}
.more .head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:clamp(40px,5vw,72px);flex-wrap:wrap}
.more h2{margin:0;font-family:var(--eiko);font-weight:900;font-size:clamp(48px,6.6vw,96px);line-height:.9;letter-spacing:-.02em}
.more .head p{margin:0;max-width:340px;font-size:16px;line-height:1.55;color:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:56px 24px}
@media (max-width:1100px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 14px}}
.card{display:flex;flex-direction:column;gap:12px}
.card:hover{text-decoration:none}
.card .m{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--ink)}
.card .m img,.card .m video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.card:hover .m img,.card:hover .m video{transform:scale(1.03)}
.card .t{font-family:var(--eiko);font-weight:500;font-size:clamp(19px,1.8vw,26px);line-height:1.1}
.card .c{font-size:14px;line-height:1.35;color:var(--ink)}
.card.cta .m{background:var(--blue);color:var(--paper);display:flex;flex-direction:column;justify-content:space-between;padding:clamp(16px,2vw,28px)}
.card.cta .m strong{font-family:var(--eiko);font-weight:900;font-size:clamp(22px,2.6vw,38px);line-height:1.05;color:var(--white)}

/* SERVICIOS */
.serv{background:var(--blue);color:var(--paper);padding:clamp(72px,9vw,110px) var(--pad)}
.serv .head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:40px;flex-wrap:wrap}
.serv h2{margin:0;font-family:var(--eiko);font-weight:500;font-size:28px}
.serv .head p{margin:0;font-size:16px}
.serv .wrap{display:flex;gap:clamp(32px,6vw,96px);align-items:flex-start}
.serv ul{list-style:none;margin:0;padding:0;flex:0 1 860px;display:flex;flex-direction:column;gap:2px}
.serv li button{display:block;min-height:44px;padding:3px 0;border:0;background:transparent;cursor:pointer;text-align:left;font-family:var(--eiko);font-weight:200;font-size:clamp(28px,3.6vw,52px);line-height:1.06;letter-spacing:-.015em;color:var(--paper)}
.serv li button[aria-pressed="true"]{font-weight:900;color:var(--white)}
.serv .desc{flex:1;margin:0;padding-top:18px;border-top:1px solid var(--paper);font-size:20px;line-height:1.55}
@media (max-width:760px){.serv .wrap{flex-direction:column}.serv .desc{font-size:17px}}

/* CLIENTES */
.clients{background:var(--paper);color:var(--blue);padding:clamp(64px,8vw,100px) var(--pad)}
.clients h2{margin:0 0 28px;font-family:var(--eiko);font-weight:500;font-size:28px}
.clients ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;column-gap:clamp(20px,3vw,44px);row-gap:4px}
.clients li{font-family:var(--eiko);font-weight:500;font-size:clamp(26px,3.2vw,46px);line-height:1.2;letter-spacing:-.01em}

/* CONTACTO */
.contact{position:relative;overflow:hidden;background:var(--blue);color:var(--paper);padding:clamp(72px,9vw,110px) var(--pad) 0}
.contact h2{margin:0;font-family:var(--eiko);font-weight:900;color:var(--white);font-size:clamp(56px,8.4vw,120px);line-height:.96;letter-spacing:-.02em}
.contact .row{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;margin-top:clamp(40px,5vw,72px);flex-wrap:wrap}
.contact .mails{display:flex;flex-direction:column;gap:10px;font-size:clamp(17px,1.6vw,22px)}
.contact .soc{display:flex;flex-direction:column;align-items:flex-end;gap:10px;font-size:16px}
.contact .soc div{display:flex;gap:28px;flex-wrap:wrap}
.contact .soc span{font-size:14px}
.contact{padding-bottom:clamp(72px,9vw,120px)}
.ct-wrap{position:relative;display:inline-block}
.contact h2 .wd{display:inline-block;will-change:transform,opacity}
.ct-logo{position:absolute;left:0;top:50%;width:min(680px,74vw);height:auto;overflow:visible;transform:translateY(-40%);pointer-events:none;visibility:hidden}
.ct-logo.on{visibility:visible}
.ct-logo path{fill:var(--white);transform-box:fill-box;transform-origin:50% 50%}
.ct-logo .lt,.ct-logo .dt,.ct-logo .es{opacity:0}
.ct-sq,.ct-ufo{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;opacity:0;z-index:3;transform-origin:50% 50%}
.ct-sq{width:clamp(30px,2.8vw,42px);height:auto}
.ct-sq path{fill:var(--white)}
.ct-ufo{width:clamp(96px,9vw,140px);height:auto}
.ct-beam{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;opacity:0;pointer-events:none;z-index:2}
/* PROYECTO */
.p-hero{position:relative;height:92vh;height:92svh;min-height:520px;overflow:hidden;background:var(--ink);color:var(--paper)}
.p-hero video,.p-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.p-hero .cap{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(28px,6vh,64px)}
.p-hero .idx{font-family:var(--eiko);font-weight:200;font-size:clamp(20px,2vw,30px)}
.p-hero h1{margin:10px 0 0;font-family:var(--eiko);font-weight:900;color:var(--white);font-size:clamp(52px,10vw,160px);line-height:.92;letter-spacing:-.025em}
.p-hero .meta{margin:14px 0 0;font-size:clamp(15px,1.3vw,18px)}
.p-body{background:var(--paper);color:var(--ink);padding:clamp(64px,8vw,120px) var(--pad);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 24px}
.p-body dl{grid-column:1/span 4;margin:0;display:grid;grid-template-columns:auto 1fr;gap:14px 24px;align-content:start;font-size:15px;line-height:1.45}
.p-body dt{color:var(--blue)}
.p-body dd{margin:0}
.p-body .txt{grid-column:6/span 7;display:flex;flex-direction:column;gap:22px}
.p-body .lead{margin:0;font-family:var(--eiko);font-weight:900;font-size:clamp(26px,2.9vw,42px);line-height:1.18;letter-spacing:-.01em;color:var(--blue)}
.p-body .txt p:not(.lead){margin:0;max-width:62ch;font-size:18px;line-height:1.65}
@media (max-width:900px){.p-body dl,.p-body .txt{grid-column:1/-1}}
.gallery{background:var(--paper);padding:0 var(--pad) clamp(64px,8vw,120px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;grid-auto-flow:dense}
.gallery figure{margin:0;overflow:hidden;background:var(--ink)}
.gallery figure.wide{grid-column:1/-1}
.gallery img{width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.gallery{grid-template-columns:1fr;gap:14px}}
.next{display:block;background:var(--blue);color:var(--paper);padding:clamp(64px,8vw,110px) var(--pad)}
.next:hover{text-decoration:none}
.next small{font-size:16px}
.next strong{display:block;margin-top:14px;font-family:var(--eiko);font-weight:900;color:var(--white);font-size:clamp(48px,8vw,120px);line-height:.95;letter-spacing:-.02em}
.next span{display:block;margin-top:14px;font-size:16px}
.back{display:inline-flex;margin:0 var(--pad) 0;}

.skiplink{position:absolute;left:12px;top:-60px;z-index:100;background:var(--white);color:var(--blue);padding:10px 16px;border-radius:22px;font-size:15px}
.skiplink:focus{top:12px}
.serv li button:hover{color:var(--white)}
.p-back{background:var(--paper);padding:0 var(--pad) clamp(40px,5vw,64px);color:var(--blue);font-size:16px}
.legal{background:var(--paper);color:var(--ink);padding:clamp(120px,14vw,180px) var(--pad) clamp(64px,8vw,120px)}
.legal h1{margin:0 0 32px;font-family:var(--eiko);font-weight:900;color:var(--blue);font-size:clamp(40px,6vw,80px);line-height:1}
.legal h2{margin:36px 0 12px;font-family:var(--eiko);font-weight:900;color:var(--blue);font-size:24px}
.legal p{max-width:70ch;font-size:16px;line-height:1.7;margin:0 0 12px}
.legal a{color:var(--blue);text-decoration:underline}
.err{min-height:100vh;min-height:100svh;background:var(--blue);color:var(--paper);display:flex;flex-direction:column;justify-content:center;gap:28px;padding:120px var(--pad)}
.err h1{margin:0;font-family:var(--eiko);font-weight:900;color:var(--white);font-size:clamp(56px,10vw,150px);line-height:.92}
.err p{margin:0;font-size:18px}
.footnote{margin-top:clamp(40px,5vw,64px);display:flex;gap:24px;flex-wrap:wrap;font-size:13px}

/* ---------- ovni jugable ---------- */
.estudio .ovni{display:block;pointer-events:auto;cursor:pointer;border-radius:4px}
.estudio .ovni svg{display:block;width:100%;height:auto;overflow:visible;transition:transform .25s ease,filter .25s ease}
.estudio .ovni:hover svg,.estudio .ovni:focus-visible svg{transform:scale(1.25) rotate(8deg);filter:drop-shadow(0 0 10px rgba(255,255,255,.85))}
.estudio .ovni::after{content:"¿Jugamos?";position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);white-space:nowrap;font-family:var(--futura);font-size:13px;color:var(--white);opacity:0;transition:opacity .4s ease}
.estudio.landed .ovni::after{opacity:1}
.estudio .ovni:hover{text-decoration:none}
.ct-logo a{pointer-events:auto;cursor:pointer}
.ct-logo.play .dt{animation:dotpulse 1.8s ease-in-out infinite}
.ct-logo a:hover .dt,.ct-logo a:focus .dt{animation:none;transform:scale(1.35) rotate(12deg)}
@keyframes dotpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.22) rotate(8deg)}}
.ct-hint{opacity:0;transition:opacity .6s ease}
.ct-hint.on{opacity:1}
@media (prefers-reduced-motion: reduce){.ct-logo.play .dt{animation:none}}

/* ---------- Rabieta Invaders ---------- */
.inv{position:relative;min-height:100vh;min-height:100svh;background:var(--blue);color:var(--paper);display:flex;flex-direction:column;align-items:center;gap:14px;padding:calc(env(safe-area-inset-top,0px) + 16px) 16px 22px;overflow:hidden}
.inv::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,rgba(255,255,255,.08),rgba(0,6,60,.45) 75%);pointer-events:none}
.inv > *{position:relative}
.inv-top{width:100%;max-width:980px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.inv-exit,.inv-mute{font-size:15px;color:var(--paper);background:transparent;border:1px solid rgba(237,242,244,.6);border-radius:22px;height:40px;padding:0 16px;display:inline-flex;align-items:center;cursor:pointer}
.inv-exit:hover{text-decoration:none;background:rgba(255,255,255,.1)}
.inv-hud{display:flex;gap:clamp(16px,4vw,40px);margin:0}
.inv-hud div{display:flex;flex-direction:column;align-items:center;gap:2px}
.inv-hud dt{font-size:12px;letter-spacing:.06em}
.inv-hud dd{margin:0;font-size:clamp(18px,2.2vw,24px);font-variant-numeric:tabular-nums;color:var(--white);text-shadow:0 0 6px rgba(255,255,255,.7)}
.inv-stage{flex:1;width:100%;display:flex;justify-content:center;align-items:center;min-height:0}
.inv-screen{position:relative;height:min(66vh,740px);height:min(66svh,740px);aspect-ratio:224/256;max-width:100%;display:flex;justify-content:center;align-items:center;border-radius:18px;overflow:hidden;box-shadow:inset 0 0 60px rgba(0,8,70,.55),0 0 0 1px rgba(255,255,255,.18)}
.inv-screen canvas{display:block;image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 0 1.5px rgba(255,255,255,.8)) drop-shadow(0 0 7px rgba(255,255,255,.35))}
.inv-crt{position:absolute;inset:0;pointer-events:none;background:
  repeating-linear-gradient(to bottom,rgba(0,10,80,.28) 0,rgba(0,10,80,.28) 1px,transparent 1px,transparent 3px),
  radial-gradient(ellipse at center,transparent 58%,rgba(0,6,50,.6) 100%);
  animation:crt 6s steps(60) infinite}
@keyframes crt{0%,100%{opacity:.92}50%{opacity:1}}
.inv-banner{position:absolute;left:50%;top:12%;transform:translateX(-50%);background:var(--white);color:var(--blue);font-size:clamp(13px,1.5vw,16px);padding:10px 18px;border-radius:24px;white-space:nowrap;animation:blink .9s steps(2) infinite;box-shadow:0 0 18px rgba(255,255,255,.7);z-index:3}
@keyframes blink{50%{opacity:.35}}
.inv-overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:24px;text-align:center;background:rgba(3,40,214,.84)}
.inv-overlay h1{margin:0;font-family:var(--eiko);font-weight:900;color:var(--white);font-size:clamp(32px,5vw,58px);line-height:.95;letter-spacing:-.02em;text-shadow:0 0 14px rgba(255,255,255,.45)}
.inv-sub{margin:0;max-width:34ch;font-size:16px;line-height:1.5}
.inv-note{margin:0;max-width:36ch;font-size:13px;line-height:1.5;opacity:.9}
.inv-actions{display:flex;flex-direction:column;gap:10px;align-items:center}
.inv-btn{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 22px;border-radius:24px;border:1px solid var(--white);background:var(--white);color:var(--blue);font-size:15px;cursor:pointer}
.inv-btn.ghost{background:transparent;color:var(--white)}
.inv-btn:hover{text-decoration:none;box-shadow:0 0 16px rgba(255,255,255,.6)}
kbd{display:inline-block;min-width:22px;padding:2px 6px;border:1px solid currentColor;border-radius:6px;font-family:var(--futura);font-size:12px;line-height:1.3;text-align:center}
.inv-legend{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.inv-legend li{display:flex;align-items:center;gap:14px;justify-content:center;font-size:15px}
.inv-legend canvas{width:auto;height:18px;image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 0 4px rgba(255,255,255,.6))}
.inv-legend span{min-width:44px;text-align:left}
.inv-meter{display:flex;align-items:center;gap:12px;font-size:13px}
.inv-bar{width:min(320px,52vw);height:10px;border:1px solid var(--paper);border-radius:6px;overflow:hidden}
.inv-bar i{display:block;height:100%;width:0;background:var(--white);transition:width .25s ease}
.inv-bar.full{box-shadow:0 0 12px rgba(255,255,255,.9);animation:blink .9s steps(2) infinite}
.inv-keys{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;font-size:13px}
.inv-keys li{display:flex;align-items:center;gap:6px}
.inv-touch{display:none;width:100%;max-width:520px;grid-template-columns:1fr 1fr 1.4fr 1.4fr;gap:10px}
.inv-touch button{height:58px;border-radius:16px;border:1px solid var(--paper);background:rgba(255,255,255,.08);color:var(--white);font-size:18px;touch-action:none;-webkit-user-select:none;user-select:none}
.inv-touch button.wide{font-size:15px}
.inv-touch button.on{background:var(--white);color:var(--blue)}
@media (hover:none) and (pointer:coarse){.inv-touch{display:grid}.inv-keys{display:none}.inv-screen{height:min(56vh,640px);height:min(56svh,640px)}}
@media (max-width:560px){.inv-hud dt{font-size:11px}.inv-top{gap:8px}.inv-exit,.inv-mute{height:36px;padding:0 12px;font-size:13px}}
@media (prefers-reduced-motion: reduce){.inv-crt,.inv-banner,.inv-bar.full{animation:none}}

/* ---------- formulario de contacto ---------- */
.cform{background:var(--paper);color:var(--ink);padding:clamp(120px,14vw,170px) var(--pad) clamp(64px,8vw,110px);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:40px 24px}
.cf-head{grid-column:1/span 5}
.cf-kicker{margin:0 0 14px;font-size:16px;color:var(--blue)}
.cf-head h1{margin:0;font-family:var(--eiko);font-weight:900;color:var(--blue);font-size:clamp(44px,6vw,88px);line-height:.95;letter-spacing:-.02em}
.cf-head p.lead{margin:22px 0 0;font-size:17px;line-height:1.6;max-width:40ch}
.cf-head .direct{margin-top:18px;font-size:15px}
.cf-head .direct a{color:var(--blue);text-decoration:underline}
.cf{grid-column:7/span 6;display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.cf .f{display:flex;flex-direction:column;gap:8px}
.cf .f.full{grid-column:1/-1}
.cf label{font-size:14px;color:var(--blue)}
.cf input,.cf select,.cf textarea{font:inherit;font-family:var(--futura);font-size:16px;color:var(--ink);background:var(--white);border:1px solid rgba(3,40,214,.35);border-radius:10px;padding:13px 14px;width:100%}
.cf textarea{min-height:170px;resize:vertical;line-height:1.5}
.cf input:focus,.cf select:focus,.cf textarea:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.cf .check{grid-column:1/-1;display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5}
.cf .check input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--blue)}
.cf .check a{color:var(--blue);text-decoration:underline}
.cf .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf .send{grid-column:1/-1;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.cf button[type=submit]{height:52px;padding:0 28px;border-radius:26px;border:0;background:var(--blue);color:var(--white);font-family:var(--futura);font-size:16px;cursor:pointer}
.cf button[type=submit][disabled]{opacity:.6;cursor:wait}
.cf-status{margin:0;font-size:15px;line-height:1.5}
.cf-status.ok{color:var(--blue)}
.cf-status.err{color:var(--white);background:var(--blue);padding:10px 14px;border-radius:10px}
.cf-done{grid-column:7/span 6;align-self:center;background:var(--blue);color:var(--paper);border-radius:18px;padding:clamp(28px,4vw,48px)}
.cf-done h2{margin:0 0 12px;font-family:var(--eiko);font-weight:900;color:var(--white);font-size:clamp(30px,3.6vw,46px);line-height:1}
.cf-done p{margin:0;font-size:16px;line-height:1.6}
@media (max-width:900px){.cf-head,.cf,.cf-done{grid-column:1/-1}.cf{grid-template-columns:1fr}}

.gallery video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
/* flecha de «Siguiente proyecto»: glifo → de PP Eiko Heavy */
.next{position:relative;overflow:hidden;padding-right:calc(var(--pad) + clamp(92px,15vw,250px))}
.next::after{content:"";position:absolute;right:var(--pad);top:50%;width:clamp(72px,12.5vw,210px);aspect-ratio:778/412;background:var(--white);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 778 412'%3E%3Cpath d='M778 206 480 0 532 194H0V218H532L480 412Z'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 778 412'%3E%3Cpath d='M778 206 480 0 532 194H0V218H532L480 412Z'/%3E%3C/svg%3E") no-repeat center/contain;transform:translate(0,-50%);animation:nextNudge 2.4s cubic-bezier(.6,0,.2,1) infinite;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.next:hover::after,.next:focus-visible::after{animation:none;transform:translate(clamp(14px,2vw,32px),-50%)}
@keyframes nextNudge{0%,55%,100%{transform:translate(0,-50%)}70%{transform:translate(14px,-50%)}85%{transform:translate(0,-50%)}}
@media (prefers-reduced-motion:reduce){.next::after{animation:none}}

/* selector de idioma ES / EN */
.nav .lang{display:flex}
.lang-sw{position:relative;display:inline-flex;align-items:center;gap:6px;padding:3px;border:1.5px solid currentColor;border-radius:999px;font-size:13px;line-height:1;letter-spacing:.06em}
.lang-sw::before{content:"";position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 6px);border-radius:999px;background:var(--white);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.lang-sw[data-lang="en"]::before{transform:translateX(calc(100% + 6px))}
.lang-sw a{position:relative;z-index:1;min-width:2.9em;padding:6px 10px;text-align:center;border-radius:999px;color:inherit;text-decoration:none;transition:color .3s,opacity .3s}
.lang-sw a[aria-current]{color:var(--blue)}
.lang-sw a:not([aria-current]):hover{opacity:.7}
.lang-sw a:focus-visible{outline:2px solid var(--white);outline-offset:2px}
