
/* Layout: lienzo oscuro tipo estudio digital. Titulares enormes a la izquierda, paneles de vidrio en movimiento a la derecha, trabajo a gran formato, etiquetas técnicas en monoespaciada. */
:root{
  --bg:#06080b;--surface:#0d1116;--raise:#141a21;--ink:#f1f4f7;--mute:#8a96a4;--line:rgba(255,255,255,.12);--accent:#3fa2e6;--on-accent:#04121d;
  --display:"Universal Sans","UniversalSans",Inter,"Helvetica Neue",Arial,sans-serif;--body:"Universal Sans","UniversalSans",Inter,"Helvetica Neue",Arial,sans-serif;--mono:"Universal Sans","UniversalSans",Inter,"Helvetica Neue",Arial,sans-serif;--logo:"Barlow","DIN Alternate",Arial,sans-serif;
  --gut:clamp(16px,4vw,56px);color-scheme:dark}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]){--bg:#f3f5f7;--surface:#ffffff;--raise:#e9edf1;--ink:#0a0e13;--mute:#56626f;--line:rgba(10,14,19,.14);--accent:#1b78bd;--on-accent:#ffffff;color-scheme:light}}
:root[data-theme="light"]{--bg:#f3f5f7;--surface:#ffffff;--raise:#e9edf1;--ink:#0a0e13;--mute:#56626f;--line:rgba(10,14,19,.14);--accent:#1b78bd;--on-accent:#ffffff;color-scheme:light}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;font-weight:500;line-height:1.4;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .4s,color .4s}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
h1,h2,h3,p,ul{margin:0}ul{padding:0;list-style:none}
.mono{font-family:var(--mono);font-size:14px;letter-spacing:-.02em;color:var(--mute)}
.shell{padding-inline:var(--gut);max-width:1560px;margin-inline:auto}
section{padding-block:clamp(72px,11vw,160px)}
.h2{font-family:var(--display);font-weight:740;font-size:clamp(34px,5.6vw,84px);line-height:1.04;letter-spacing:-.04em;text-wrap:balance}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(32px,5vw,64px)}
.sec-head>div{display:flex;flex-direction:column;gap:18px;min-width:0}
.link{font-family:var(--mono);font-size:13px;letter-spacing:0;display:inline-flex;gap:10px;align-items:center;padding-bottom:6px;border-bottom:1px solid var(--line);transition:border-color .3s,gap .3s}
.link:hover{border-color:var(--accent);gap:16px}
.btn{font-family:var(--mono);font-size:13px;letter-spacing:0;padding:16px 24px;border:1px solid var(--line);display:inline-flex;gap:10px;align-items:center;transition:background .3s,border-color .3s,color .3s}
.btn:hover{border-color:var(--ink)}
.btn.p{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.p:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:transparent;border-bottom:1px solid transparent;transition:background-color .35s,border-color .35s,backdrop-filter .35s,-webkit-backdrop-filter .35s}
.top.solid,.top.navopen{background:var(--bg);background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.hero{margin-top:-69px}
.top .logo{transform:scale(1.45);transform-origin:left center;transition:transform .45s cubic-bezier(.2,.7,.1,1)}
.top.solid .logo,.top.navopen .logo{transform:none}
@media (max-width:760px){.top .logo{transform:scale(1.2)}}
@media (max-width:380px){.top .logo{transform:none}}
@media (prefers-reduced-motion:reduce){.top .logo{transition:none}}
.top .shell{display:flex;align-items:center;gap:28px;height:68px}
.logo{font-family:var(--logo);font-size:23px;letter-spacing:.02em;font-weight:300;white-space:nowrap;display:flex;align-items:baseline}
.logo{color:var(--ink)}.logo b{font-weight:500;color:inherit}.logo small{font-size:13px;margin-left:4px;letter-spacing:.06em;color:inherit}
.nav{display:flex;gap:28px;margin-left:auto}
.nav a{font-size:15px;color:var(--mute);transition:color .25s}.nav a:hover{color:var(--ink)}
.tools{display:flex;align-items:center;gap:10px}
.chip{font-family:var(--mono);font-size:12px;height:36px;min-width:36px;padding:0 10px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:border-color .25s}
.chip:hover{border-color:var(--ink)}
.chip svg{width:16px;height:16px}
#lang span{opacity:.45}#lang span.on{opacity:1}
.sun{display:none}:root[data-theme="light"] .sun{display:block}:root[data-theme="light"] .moon{display:none}
.top .btn{padding:10px 16px}
.burger{display:none}
@media (max-width:980px){.nav{display:none;position:absolute;left:0;right:0;top:68px;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:8px var(--gut) 20px}
 .nav.open{display:flex}.nav a{font-family:var(--display);font-size:30px;color:var(--ink);padding:12px 0;border-bottom:1px solid var(--line)}
 .tools{margin-left:auto}.burger{display:inline-flex}.top .btn{display:none}.top .shell{gap:12px}}
@media (max-width:420px){.logo small{display:none}}

/* hero */
.hero{position:relative;padding-block:0;min-height:100vh;min-height:clamp(548px,100vh,1008px);min-height:clamp(548px,100svh,1008px);display:flex;align-items:flex-start;overflow:hidden;border-bottom:1px solid var(--line)}
.hero{--bg:#000;--ink:#f1f4f7;--mute:#a7b2be;--line:rgba(255,255,255,.16);--accent:#3fa2e6;--on-accent:#04121d;background:#000;color:var(--ink)}
#hv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.35) 55%,rgba(0,0,0,.05)),linear-gradient(0deg,rgba(0,0,0,.6),transparent 45%);pointer-events:none}
@media (max-width:760px){.hero::before{background:linear-gradient(0deg,rgba(0,0,0,.85),rgba(0,0,0,.45) 60%,rgba(0,0,0,.2))}}
.hero .shell{position:relative;z-index:2;width:100%;padding-block:calc(68px + clamp(36px,9vh,128px)) clamp(52px,13vh,176px);display:flex;flex-direction:column;gap:clamp(16px,3.2vh,36px)}
.hero h1{font-family:var(--display);font-weight:740;font-size:clamp(36px,min(6.6vw,10.4vh),116px);line-height:1;letter-spacing:-.04em;max-width:17ch;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--accent)}
.hero-foot{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(28px,6vh,72px)}
.hero-foot p{max-width:46ch;font-size:clamp(17px,1.5vw,21px);color:var(--mute)}
.hero-foot p strong{color:var(--ink);font-weight:500}
.cta{display:flex;gap:12px;flex-wrap:wrap}

/* respaldo */
.proof{padding-block:clamp(40px,6vw,72px);border-bottom:1px solid var(--line)}
.proof .shell{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:center}
.big{font-family:var(--display);font-weight:740;font-size:clamp(64px,9vw,132px);line-height:.95;letter-spacing:-.04em}
.big sup{font-size:.45em;color:var(--accent);vertical-align:top;margin-left:.04em}
.proof-txt{display:flex;flex-direction:column;gap:10px;min-width:0}
.proof-txt p{max-width:52ch;color:var(--mute)}
.proof-txt .mono{font-family:var(--display);font-weight:740;font-size:clamp(22px,2.6vw,36px);line-height:1.1;letter-spacing:-.02em;color:var(--ink)}
.marq{overflow:hidden;margin-top:clamp(32px,5vw,56px);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marq ul{display:flex;gap:56px;width:max-content;animation:slide 64s linear infinite}
.marq li{font-family:var(--display);font-size:clamp(22px,2.4vw,34px);font-weight:500;letter-spacing:-.02em;white-space:nowrap;color:var(--mute)}
@keyframes slide{to{transform:translateX(-50%)}}
@media (max-width:640px){.proof .shell{grid-template-columns:1fr}}

/* trabajo */
.work{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(12px,1.6vw,24px)}
.case{position:relative;display:block;overflow:hidden;background:var(--raise);grid-column:span 6;aspect-ratio:4/3}
.case.w12{grid-column:span 12;aspect-ratio:21/9}.case.w7{grid-column:span 7}.case.w5{grid-column:span 5}
.case.w7,.case.w5{aspect-ratio:auto;height:clamp(300px,38vw,600px)}
.case img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.1,1)}
.case.top-crop img{object-position:top}
.case:hover img{transform:scale(1.045)}
.case::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(3,5,8,.82));pointer-events:none}
.meta{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:clamp(16px,2.2vw,32px);display:flex;justify-content:space-between;align-items:flex-end;gap:16px;color:#f1f4f7}
.meta h3{font-family:var(--display);font-weight:740;font-size:clamp(22px,2.6vw,40px);line-height:1;letter-spacing:-.03em}
.meta .mono{color:rgba(241,244,247,.72);display:block;margin-bottom:8px}
.arrow{width:44px;height:44px;border:1px solid rgba(255,255,255,.4);display:grid;place-items:center;flex:none;transition:background .3s,transform .3s}
.case:hover .arrow{background:var(--accent);border-color:var(--accent);transform:translateX(6px)}
@media (max-width:820px){.case,.case.w12,.case.w7,.case.w5{grid-column:span 12;aspect-ratio:4/3;height:auto}}

/* capacidades */
.caps{border-top:1px solid var(--line)}
.cap{border-bottom:1px solid var(--line)}
.cap>button{width:100%;display:grid;grid-template-columns:140px minmax(0,1fr) auto;align-items:center;gap:20px;text-align:left;padding:clamp(18px,2.4vw,34px) 0}
.cap h3{font-family:var(--display);font-weight:740;font-size:clamp(26px,4.4vw,64px);line-height:1;letter-spacing:-.03em;transition:color .3s,transform .5s cubic-bezier(.2,.7,.1,1)}
.cap>button:hover h3{transform:translateX(12px)}
.cap.open h3{color:var(--accent)}
.plus{width:22px;height:22px;position:relative;flex:none}
.plus::before,.plus::after{content:"";position:absolute;left:0;right:0;top:50%;height:1.5px;background:currentColor;transition:transform .4s}
.plus::after{transform:rotate(90deg)}.cap.open .plus::after{transform:rotate(0)}
.panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s cubic-bezier(.2,.7,.1,1)}
.cap.open .panel{grid-template-rows:1fr}
.panel>div{overflow:hidden}
.pgrid{display:grid;grid-template-columns:140px minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr);gap:20px clamp(20px,3vw,48px);padding-bottom:clamp(28px,3.4vw,48px)}
.pgrid>*{min-width:0}
.pgrid .lead{font-size:clamp(18px,1.6vw,22px);line-height:1.4;grid-column:2}
.pgrid li{padding:7px 0;border-bottom:1px solid var(--line);font-size:15px}
.pgrid .mono{margin-bottom:12px;display:block}
.ia{color:var(--mute);font-size:15px}
.ia .mono{color:var(--accent)}
@media (max-width:900px){.cap>button{grid-template-columns:minmax(0,1fr) auto}.cap>button .mono{grid-column:1/-1;margin-bottom:-8px}.pgrid{grid-template-columns:1fr}.pgrid .lead{grid-column:auto}.pgrid>span{display:none}}

/* IA */
.ai{--bg:#000;--surface:#05070a;--ink:#f1f4f7;--mute:#a7b2be;--line:rgba(255,255,255,.16);--accent:#3fa2e6;position:relative;overflow:hidden;background:#020305;color:var(--ink);border-block:1px solid var(--line)}
#iav{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.ai::before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 30% 50%,rgba(0,0,0,.55),rgba(0,0,0,.15) 70%);pointer-events:none}
.ai>.shell{position:relative;z-index:2}
:root[data-theme="light"] .hero{--bg:#f3f3f7;--ink:#0a0e13;--mute:#4b5663;--line:rgba(10,14,19,.14);--accent:#1b78bd;--on-accent:#fff;background:#f3f3f7}
:root[data-theme="light"] .hero::before{background:linear-gradient(90deg,rgba(243,243,247,.82),rgba(243,243,247,.4) 55%,rgba(243,243,247,0)),linear-gradient(0deg,rgba(243,243,247,.55),rgba(243,243,247,0) 45%)}
@media (max-width:760px){:root[data-theme="light"] .hero::before{background:linear-gradient(0deg,rgba(243,243,247,.88),rgba(243,243,247,.55) 60%,rgba(243,243,247,.25))}}
:root[data-theme="light"] .ai{--bg:#f3f3f7;--surface:#f3f3f7;--ink:#0a0e13;--mute:#4b5663;--line:rgba(10,14,19,.14);--accent:#1b78bd;background:#f3f3f7}
:root[data-theme="light"] .ai::before{background:radial-gradient(ellipse at 30% 50%,rgba(243,243,247,.6),rgba(243,243,247,.15) 70%)}
:root[data-theme="light"] #iav{opacity:.7}

.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs button{font-family:var(--mono);font-size:13px;letter-spacing:0;padding:18px clamp(14px,2.4vw,32px);color:var(--mute);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color .3s,border-color .3s}
.tabs button[aria-selected="true"]{color:var(--ink);border-color:var(--accent)}
.flow{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.25fr);gap:clamp(20px,4vw,64px);align-items:center;padding-top:clamp(32px,5vw,64px)}
.flow>div{display:flex;flex-direction:column;gap:16px;min-width:0}
.flow p.in{font-size:clamp(18px,1.7vw,23px);line-height:1.4;color:var(--mute)}
.flow p.out{font-family:var(--display);font-weight:740;font-size:clamp(26px,3.6vw,52px);line-height:1.04;letter-spacing:-.03em;text-wrap:balance}
.pulse{width:clamp(48px,7vw,110px);height:1px;background:var(--line);position:relative;overflow:hidden}
.pulse::after{content:"";position:absolute;inset:0;width:40%;background:var(--accent);animation:run 2.2s cubic-bezier(.6,0,.2,1) infinite}
@keyframes run{from{transform:translateX(-100%)}to{transform:translateX(250%)}}
.swap{animation:swap .6s cubic-bezier(.2,.7,.1,1)}
@keyframes swap{from{transform:translateY(14px);filter:blur(6px)}to{transform:none;filter:none}}
.ai-foot{margin-top:clamp(36px,5vw,64px);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.ai-foot p{color:var(--mute);max-width:56ch;font-size:15px}
@media (max-width:820px){.flow{grid-template-columns:1fr}.pulse{width:64px}}

/* cierre */
.end{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.end h2,.end h1{font-family:var(--display);font-weight:740;font-size:clamp(48px,9vw,150px);line-height:.96;letter-spacing:-.04em}
.end .intro{display:flex;flex-direction:column;gap:24px}
.end .intro p{color:var(--mute);max-width:40ch;font-size:19px}
form{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.f{display:flex;flex-direction:column;gap:4px;border-bottom:1px solid var(--line);padding:14px 0;transition:border-color .3s}
.f:focus-within{border-color:var(--accent)}
.f label{font-family:var(--mono);font-size:12.5px;letter-spacing:0;color:var(--mute)}
.f input,.f select,.f textarea{font:inherit;font-size:18px;color:var(--ink);background:transparent;border:0;outline:0;padding:4px 0;width:100%;resize:vertical}
.f select option{background:var(--surface);color:var(--ink)}
form .btn{align-self:flex-start;margin-top:24px}
#fmsg{font-size:14px;color:var(--mute);margin-top:14px;min-height:1.5em}
@media (max-width:860px){.end{grid-template-columns:1fr}}

/* footer */
footer{border-top:1px solid var(--line);padding-block:clamp(40px,6vw,72px) 32px}
.fgrid{display:grid;grid-template-columns:1.4fr repeat(3,minmax(0,1fr));gap:32px}
.fgrid h4{font-family:var(--mono);font-size:12px;letter-spacing:0;color:var(--mute);margin:0 0 14px;font-weight:400}
.fgrid li{padding:4px 0;font-size:15px}.fgrid a:hover{color:var(--accent)}
.fgrid p{color:var(--mute);font-size:15px;max-width:30ch;margin-top:14px}
.legal a,.legal button{font:inherit;color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
.legal a:hover,.legal button:hover{color:var(--accent)}
/* páginas internas */
.pg{padding-block:clamp(48px,7vw,104px) clamp(72px,10vw,144px)}
.pg-head{display:flex;flex-direction:column;gap:20px;margin-bottom:clamp(32px,5vw,64px)}
.pg-head h1{font-family:var(--display);font-weight:740;font-size:clamp(44px,8vw,128px);line-height:.98;letter-spacing:-.04em;margin:0;text-wrap:balance}
.pg-head p{max-width:54ch;font-size:clamp(18px,1.6vw,22px);color:var(--mute)}
.disc{display:flex;flex-direction:column;gap:clamp(44px,6vw,88px);margin-top:clamp(48px,7vw,104px)}
.disc h2{font-family:var(--display);font-weight:740;font-size:clamp(32px,5vw,72px);line-height:1;letter-spacing:-.04em;margin:0 0 clamp(16px,2.2vw,28px);text-wrap:balance}
.disc h2 a{color:inherit;text-decoration:none}.disc h2 a:hover{color:var(--accent)}
.disc p,.pg-head p.disc-lead,p.disc-lead{max-width:68ch;font-size:clamp(17px,1.5vw,21px);line-height:1.5;color:var(--mute);margin:0}
.disc b,.disc-lead b{color:var(--ink);font-weight:600}
p.disc-lead{margin-bottom:clamp(24px,3vw,40px)}.pg-head p.disc-lead{margin-bottom:0}
.join-btn{margin-top:clamp(24px,3vw,40px);display:inline-flex}
.jobs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px)}
.jobs a{color:inherit;text-decoration:none;display:block}.jobs h3{font-family:var(--display);font-weight:740;font-size:clamp(20px,1.9vw,26px);letter-spacing:-.02em;line-height:1.15;margin:0 0 10px}
.jobs h3 span{display:inline-block;transition:transform .2s}.jobs a:hover h3{color:var(--accent)}.jobs a:hover h3 span{transform:translateX(4px)}
.jobs p{color:var(--mute);font-size:15px;line-height:1.6;margin:0}.jobs b{color:var(--ink);font-weight:600}
@media (max-width:900px){.jobs{grid-template-columns:1fr}}
.pg-head .mono a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.joblist h2 span{display:inline-block;transition:transform .2s}.joblist h2 a:hover span{transform:translateX(6px)}
.joblist .btn{margin-top:clamp(18px,2vw,28px)}
.jobd{display:flex;flex-direction:column;gap:clamp(32px,4vw,56px);margin-top:clamp(40px,6vw,88px);max-width:80ch}
.jobd h2{font-family:var(--display);font-weight:740;font-size:clamp(22px,2.2vw,30px);letter-spacing:-.02em;margin:0 0 14px}
.jobd p,.jobd li{color:var(--mute);font-size:clamp(16px,1.3vw,19px);line-height:1.55}.jobd p{margin:0 0 12px}
.jobd section{padding:0;margin:0;min-height:0;border:0}.jobd ul{list-style:disc;margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:8px}.jobd b{color:var(--ink);font-weight:600}
form.apply{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px);border-top:0}
.apply fieldset{border:0;padding:0;margin:0;min-width:0;display:flex;flex-direction:column;border-top:1px solid var(--line)}
.apply legend{font-family:var(--display);font-weight:740;font-size:clamp(20px,1.9vw,26px);letter-spacing:-.02em;padding:0 0 16px;float:left;width:100%}
.apply .f label i{font-style:normal;opacity:.7}.apply input[type=file]{font-size:14px;color:var(--mute)}
.apply .chk{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--mute);padding-top:14px;cursor:pointer}
.apply .chk input{margin-top:3px;accent-color:var(--accent);flex:none}.apply .chk a{color:var(--ink);text-decoration:underline}
@media (max-width:900px){form.apply{grid-template-columns:1fr}}
.backl{display:inline-flex;gap:8px;align-items:center;font-size:14px;color:var(--mute);margin-bottom:clamp(20px,3vw,36px);transition:color .2s}.backl:hover{color:var(--ink)}
.backl span{display:inline-block;transition:transform .2s}.backl:hover span{transform:translateX(-4px)}
.back-foot{margin-top:clamp(48px,6vw,88px);padding-top:24px;border-top:1px solid var(--line)}.back-foot .backl{margin:0}
.skip{position:absolute;left:16px;top:-80px;z-index:100;background:var(--accent);color:var(--on-accent);padding:12px 18px;font-size:14px;transition:top .2s}.skip:focus{top:12px}
@media (max-width:760px){.backl{min-height:44px;align-items:center}.apply .chk{padding-block:10px}.info b a{display:inline-block;padding-block:10px}}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.h3x{font-family:var(--display);font-weight:740;font-size:clamp(28px,3.6vw,52px);line-height:1.04;letter-spacing:-.03em;margin:0 0 clamp(20px,3vw,36px);text-wrap:balance}
.block{margin-top:clamp(56px,8vw,120px)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:clamp(24px,3vw,40px)}
.filters button{font-size:14px;padding:10px 16px;border:1px solid var(--line);transition:background .25s,color .25s,border-color .25s}
.filters button:hover{border-color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.wgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,24px)}
.wgrid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.wgrid .case{grid-column:auto;aspect-ratio:4/3;height:auto}
.case-hero{aspect-ratio:21/9;overflow:hidden;background:var(--raise);margin-bottom:clamp(28px,4vw,56px)}
.case-hero img{width:100%;height:100%;object-fit:cover;display:block}
.metarow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;border-block:1px solid var(--line);padding:22px 0;margin-block:clamp(28px,4vw,48px)}
.metarow div{display:flex;flex-direction:column;gap:6px;min-width:0}.metarow b{font-weight:600}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,5vw,72px)}
.two h2{font-family:var(--display);font-weight:740;font-size:clamp(22px,2.2vw,30px);letter-spacing:-.02em;margin:0 0 12px}
.two p{color:var(--mute);max-width:56ch}
.gal{display:flex;flex-direction:column;gap:clamp(12px,1.6vw,24px);margin-block:clamp(32px,5vw,72px)}
.gal img{width:100%;display:block;background:var(--raise)}
.next{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;border-top:1px solid var(--line);padding-top:28px;flex-wrap:wrap}
.next a{display:flex;flex-direction:column;gap:10px}
.next b{font-family:var(--display);font-weight:740;font-size:clamp(32px,5vw,72px);line-height:1;letter-spacing:-.04em;transition:color .3s}
.next a:hover b{color:var(--accent)}
.svc-hero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.svc-hero .pg-head{margin:0}
.card{border:1px solid var(--line);background:var(--surface);padding:clamp(20px,2.4vw,32px);display:flex;flex-direction:column;gap:8px}
.card h2{font-family:var(--display);font-weight:740;font-size:22px;letter-spacing:-.02em;margin:0 0 4px}
.inc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,4vw,64px);border-top:1px solid var(--line)}
.inc li{padding:16px 0;border-bottom:1px solid var(--line);font-size:clamp(17px,1.5vw,20px)}
.aibox{border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);padding:clamp(24px,3vw,44px);background:radial-gradient(100% 120% at 0% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%),var(--surface);display:flex;flex-direction:column;gap:14px}
.aibox .mono{color:var(--accent)}.aibox p{font-family:var(--display);font-weight:600;font-size:clamp(22px,2.6vw,36px);line-height:1.15;letter-spacing:-.02em;max-width:30ch}
.faq{border-top:1px solid var(--line);max-width:860px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{font-family:var(--display);font-weight:600;font-size:clamp(18px,1.6vw,22px);padding:20px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";color:var(--mute)}.faq details[open] summary::after{content:"–"}
.faq p{color:var(--mute);max-width:64ch;padding-bottom:22px}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.steps div{background:var(--bg);padding:clamp(20px,2.4vw,32px);display:flex;flex-direction:column;gap:12px;min-width:0}
.steps b{font-family:var(--display);font-weight:740;font-size:clamp(22px,2.2vw,30px);letter-spacing:-.02em}.steps p{color:var(--mute);font-size:15px}
.rowlink{display:grid;grid-template-columns:140px minmax(0,1fr) auto;align-items:center;gap:20px;padding:clamp(18px,2.4vw,34px) 0;border-bottom:1px solid var(--line)}
.rowlink h2{font-family:var(--display);font-weight:740;font-size:clamp(26px,4.4vw,64px);line-height:1;letter-spacing:-.03em;margin:0;transition:color .3s,transform .5s cubic-bezier(.2,.7,.1,1)}
.rowlink p{grid-column:2;color:var(--mute);margin-top:-8px}
.rowlink:hover h2{color:var(--accent);transform:translateX(12px)}
.tags{display:flex;flex-wrap:wrap;gap:8px}.tags li{border:1px solid var(--line);padding:10px 16px;font-size:15px}
.clist{columns:4;column-gap:32px}.clist li{padding:8px 0;border-bottom:1px solid var(--line);break-inside:avoid;font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:-.02em}
.info{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);margin-top:8px}
.info div{padding:14px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.info b{font-weight:600}
.cta-band{margin-top:clamp(56px,8vw,120px);border-top:1px solid var(--line);padding-top:clamp(32px,5vw,64px);display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.cta-band h2{font-family:var(--display);font-weight:740;font-size:clamp(34px,6vw,96px);line-height:.98;letter-spacing:-.04em;margin:0}
#page{animation:pgin .6s cubic-bezier(.2,.7,.1,1)}@keyframes pgin{from{transform:translateY(18px)}}
@media (max-width:900px){.wgrid,.wgrid.g3,.two,.svc-hero,.inc{grid-template-columns:1fr}.metarow{grid-template-columns:repeat(2,minmax(0,1fr))}.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.case-hero{aspect-ratio:4/3}.rowlink{grid-template-columns:minmax(0,1fr) auto}.rowlink .mono{grid-column:1/-1;margin-bottom:-10px}.rowlink p{grid-column:1/-1}.clist{columns:2}}
@media (max-width:520px){.steps{grid-template-columns:1fr}.clist{columns:1}}
.case-hero.fit{aspect-ratio:auto;max-height:none;padding:clamp(20px,4vw,64px);display:grid;place-items:center;background:radial-gradient(80% 90% at 50% 0%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 70%),var(--raise)}
.case-hero.fit img{width:min(100%,760px);height:auto;object-fit:contain;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(40px,6vw,88px)}
.stats div{background:var(--bg);padding:clamp(20px,3vw,44px);display:flex;flex-direction:column;gap:8px;min-width:0}
.stats b{font-family:var(--display);font-weight:740;font-size:clamp(34px,4.6vw,72px);line-height:1;letter-spacing:-.04em;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}
.stats span{color:var(--mute)}
@media (max-width:700px){.stats{grid-template-columns:1fr}}
.frow{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,88px);align-items:center;margin-top:clamp(48px,7vw,120px)}
.frow img{width:100%;display:block;background:var(--raise)}
.frow.alt{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.frow.alt img{order:2}
.frow .fcap{display:flex;flex-direction:column;gap:16px;min-width:0}
.frow h2{font-family:var(--display);font-weight:740;font-size:clamp(28px,3.4vw,50px);line-height:1.04;letter-spacing:-.03em;margin:0;text-wrap:balance}
.frow p{color:var(--mute);font-size:clamp(17px,1.4vw,20px);max-width:40ch}
@media (max-width:900px){.frow,.frow.alt{grid-template-columns:1fr}.frow.alt img{order:0}}
.team{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,36px)}
.tm{display:flex;flex-direction:column;gap:10px;min-width:0}
.ph-photo{aspect-ratio:4/5;background:radial-gradient(90% 70% at 30% 20%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%),var(--raise);border:1px solid var(--line);display:grid;place-items:center;margin-bottom:8px}
.ph-photo{overflow:hidden}.ph-photo img{width:100%;height:100%;object-fit:cover;display:block}
.ph-photo span{font-family:var(--display);font-weight:740;font-size:clamp(40px,6vw,88px);letter-spacing:-.04em;color:color-mix(in srgb,var(--ink) 30%,transparent)}
.ph-photo.all{border-style:dashed;border-color:color-mix(in srgb,var(--accent) 60%,transparent)}.ph-photo.all span{color:var(--accent)}
.team .ph-photo,.team .tm-all .ph-photo{width:clamp(96px,11vw,148px);aspect-ratio:1;margin-bottom:12px}.team .ph-photo span{font-size:clamp(32px,4vw,56px)}
.tm h3{font-family:var(--display);font-weight:740;font-size:clamp(22px,2.2vw,30px);line-height:1.1;letter-spacing:-.02em;margin:0}
.tm p{color:var(--mute);font-size:16px;max-width:38ch}
@media (max-width:760px){.team{grid-template-columns:1fr 1fr}.tm-all{grid-column:1/-1}.tm-all .ph-photo{aspect-ratio:16/7}}
@media (max-width:440px){.team{grid-template-columns:1fr}}
/* privacidad */
.lp{padding-block:clamp(48px,7vw,112px) clamp(72px,10vw,144px)}
.lp-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(32px,6vw,96px);align-items:start}
.lp-side{position:sticky;top:calc(68px + 32px);display:flex;flex-direction:column;gap:20px}
.lp-side h1{font-family:var(--display);font-weight:740;font-size:clamp(40px,5.6vw,84px);line-height:1;letter-spacing:-.04em;margin:0;text-wrap:balance}
.lp-side nav{display:flex;flex-direction:column;gap:2px;margin-top:12px;border-top:1px solid var(--line)}
.lp-side nav a{padding:9px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--mute);transition:color .25s,padding .25s}
.lp-side nav a:hover{color:var(--ink);padding-left:8px}
.lp-body{display:flex;flex-direction:column;gap:clamp(36px,4vw,56px);min-width:0}
.lp-body section{padding:0;display:flex;flex-direction:column;gap:14px;scroll-margin-top:100px}
.lp-body h2{font-family:var(--display);font-weight:740;font-size:clamp(22px,2.2vw,30px);line-height:1.15;letter-spacing:-.02em;margin:0}
.lp-body p,.lp-body li{max-width:68ch;color:var(--mute);font-size:17px;line-height:1.55}
.lp-body ul{display:flex;flex-direction:column;gap:8px;padding-left:20px;list-style:disc}
.lp-body strong{color:var(--ink);font-weight:600}
.lp-body a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.ph{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--ink);padding:1px 6px;border:1px dashed var(--accent)}
.ctable{border-top:1px solid var(--line);max-width:68ch}
.ctable div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--mute)}
.ctable b{color:var(--ink);font-weight:600}
.lp-note{border:1px dashed var(--accent);padding:14px 16px;font-size:14px;color:var(--mute);max-width:68ch}
@media (max-width:860px){.lp-grid{grid-template-columns:1fr}.lp-side{position:static}.ctable div{grid-template-columns:1fr;gap:4px}}
/* cookies */
#ck{position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:60;width:min(460px,calc(100vw - 32px));background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:22px;display:flex;flex-direction:column;gap:16px;box-shadow:0 24px 60px rgba(0,0,0,.45);animation:ckin .5s cubic-bezier(.2,.7,.1,1)}
@keyframes ckin{from{transform:translateY(24px);opacity:0}}
#ck h3{font-family:var(--display);font-weight:740;font-size:20px;letter-spacing:-.02em;margin:0}
#ck p{font-size:14px;line-height:1.5;color:var(--mute);margin:0}
#ck p a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.ck-btns{display:flex;gap:8px;flex-wrap:wrap}
.ck-btns .btn{padding:12px 16px;flex:1 1 auto;justify-content:center}
.ck-link{font-size:14px;text-decoration:underline;text-underline-offset:3px;color:var(--mute);align-self:flex-start}
.ck-link:hover{color:var(--ink)}
.ck-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;padding:12px 0;border-top:1px solid var(--line);align-items:center}
.ck-row b{font-size:15px;font-weight:600}.ck-row span{grid-column:1;font-size:13px;color:var(--mute);line-height:1.45}
.ck-row input{grid-row:1/3;grid-column:2;appearance:none;-webkit-appearance:none;width:44px;height:24px;border:1px solid var(--line);background:var(--raise);position:relative;cursor:pointer;margin:0;transition:background .25s,border-color .25s}
.ck-row input::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;background:var(--mute);transition:transform .25s,background .25s}
.ck-row input:checked{background:var(--accent);border-color:var(--accent)}.ck-row input:checked::after{transform:translateX(20px);background:#fff}
.ck-row input:disabled{opacity:.55;cursor:not-allowed}
#ck{border-radius:20px;border-color:color-mix(in srgb,var(--accent) 70%,transparent);background:radial-gradient(120% 90% at 0% 0%,color-mix(in srgb,var(--accent) 26%,transparent),transparent 60%),radial-gradient(80% 70% at 100% 100%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 70%),var(--surface);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent),0 0 44px color-mix(in srgb,var(--accent) 22%,transparent),0 24px 60px rgba(0,0,0,.45)}
#ck .btn{border-radius:12px}
.ck-row input{border-radius:999px}.ck-row input::after{border-radius:50%}
.legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:clamp(40px,6vw,72px);padding-top:20px;border-top:1px solid var(--line)}
@media (max-width:760px){.fgrid{grid-template-columns:1fr 1fr}.fgrid>div:first-child{grid-column:1/-1}}

.anim .rv{opacity:0;transform:translateY(56px);transition:opacity 1s cubic-bezier(.2,.7,.1,1) var(--d,0s),transform 1.1s cubic-bezier(.2,.7,.1,1) var(--d,0s)}
.anim .rv.in{opacity:1;transform:none}
.anim .case.rv{clip-path:inset(14% 0 0 0);transition:opacity .9s var(--d,0s),transform 1.2s cubic-bezier(.2,.7,.1,1) var(--d,0s),clip-path 1.2s cubic-bezier(.2,.7,.1,1) var(--d,0s)}
.anim .case.rv.in{clip-path:inset(0)}
.anim .case.rv img{transform:scale(1.14)}.anim .case.rv.in img{transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.anim .rv,.anim .case.rv{opacity:1;transform:none;clip-path:none}html{scroll-behavior:auto}}
