@font-face{font-family:'InterXB';src:url(fonts/inter-extrabold.woff) format('woff');font-weight:800}
@font-face{font-family:'SpaceMono';src:url(fonts/spacemono-regular.woff) format('woff');font-weight:400}
@font-face{font-family:'SpaceMono';src:url(fonts/spacemono-bold.woff) format('woff');font-weight:700}
:root{--m:5.2vw;--bg:#fcf6ed;--ink:#14121c;--accent:#fd4c30;--num:#fc2d10;--cat:#2e3033;--nav:#2c2c33;--gray:#8b857b;--serif:'Newsreader','Source Serif 4',Georgia,serif}
*{box-sizing:border-box}
html{scroll-padding-top:70px}
body{margin:0;padding-top:clamp(20px,7.5vw,110px);background:var(--bg);color:var(--ink);font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.pv{padding-top:clamp(0px,1.2vw,18px)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
.mono{font-family:'SpaceMono',ui-monospace,monospace;text-transform:uppercase;letter-spacing:.06em}
.xb{font-family:'InterXB','Inter',sans-serif;font-weight:800}
.page{max-width:1400px;margin:0 auto}
.tx,.gx{padding-left:var(--m);padding-right:var(--m)}
@media(min-width:1400px){:root{--m:73px}}
header{position:sticky;top:0;z-index:9;background:rgba(252,246,237,.94);backdrop-filter:blur(8px)}
header .tx{display:flex;justify-content:space-between;align-items:center;height:clamp(60px,10.1vw,120px)}
.logo img{display:block;width:clamp(96px,12.9vw,170px);height:auto}
nav{margin-right:-.12em;display:flex;gap:clamp(14px,3.4vw,40px);font-size:clamp(10px,1.3vw,13.5px);color:var(--nav)}nav a:hover{color:var(--accent)}
.view{animation:vin .45s ease both}@keyframes vin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
/* HOME */
h1.home{margin:clamp(6px,1.15vw,14px) 0 clamp(28px,4.5vw,56px) -.025em;font-size:clamp(30px,5.8vw,84px);line-height:1.07;letter-spacing:-.04em}
h1.home span{color:var(--accent)}
.d{display:none}@media(min-width:700px){.d{display:inline}h1.home{white-space:nowrap}}
.grid{display:grid;grid-template-columns:minmax(0,1.067fr) minmax(0,1fr) minmax(0,1.063fr);gap:clamp(22px,2.9vw,38px) clamp(10px,1.8vw,24px)}
.card{display:flex;flex-direction:column}
.th{position:relative;overflow:hidden;background:#e8dfd0;flex:none}
.card:nth-child(1) .th,.card:nth-child(3) .th{aspect-ratio:1.641}.card:nth-child(2) .th{aspect-ratio:1.538}
.card:nth-child(4) .th,.card:nth-child(6) .th{aspect-ratio:1.615}.card:nth-child(5) .th{aspect-ratio:1.514}
.card:nth-child(7) .th,.card:nth-child(9) .th{aspect-ratio:1.438}.card:nth-child(8) .th{aspect-ratio:1.348}
.card:nth-child(10) .th{aspect-ratio:1.73}
.th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.th img.alt{opacity:0;transition:opacity .55s,transform .6s cubic-bezier(.2,.7,.2,1)}.th img.alt.on{opacity:1}
.card:hover .th img{transform:scale(1.04)}
.m{display:flex;margin-top:11px;align-items:flex-start}
.n{color:var(--num);font-weight:700;font-size:clamp(12px,1.67vw,17.5px);line-height:1.1;width:5.06vw;min-width:30px;flex:none;max-width:60px}
.t b{display:block;font-weight:700;font-size:clamp(12.5px,1.64vw,17.5px);letter-spacing:-.025em;line-height:1.1}
.t small{display:block;margin-top:8px;color:var(--cat);font-size:clamp(9.5px,1.2vw,12px);line-height:1.2}
.bio{padding-top:clamp(28px,4.3vw,56px);padding-bottom:clamp(18px,2.6vw,34px);padding-left:var(--m);padding-right:var(--m)}
.bio .row{display:grid;grid-template-columns:29.2% 4.1% 30.8% 5% 1fr;align-items:start}
.bio .row>:nth-child(2){grid-column:3}.bio .row>:nth-child(3){grid-column:5}
.ph2{aspect-ratio:1/1.07;overflow:hidden}.ph2 img{width:100%;height:100%;object-fit:cover;object-position:50% 25%;display:block}
.bio p{margin:0 0 clamp(24px,5vw,60px);font-size:clamp(15px,1.84vw,19px);line-height:1.36;font-weight:600;letter-spacing:-.005em;color:#0b0a10}
.bio p:last-child{margin-bottom:0}
.c{padding:0 var(--m) clamp(28px,4.5vw,56px)}
.lab{margin-left:-.05em;font-size:clamp(13px,2vw,21px);letter-spacing:.08em;line-height:1.2;margin:0 0 .3vw;color:#0b0a10}
.big{display:block;margin-left:-.02em;font-size:clamp(21px,4.25vw,52px);letter-spacing:-.03em;line-height:1.19;word-break:break-word}
.big small{margin-left:1.8vw;position:relative;top:-.3em;font-size:clamp(10px,1.6vw,17px);color:#1e1e26;font-family:'SpaceMono',monospace;letter-spacing:.06em;font-weight:400;text-transform:uppercase}
.big:nth-of-type(1){margin-left:-.03em}.big:nth-of-type(3),.big:nth-of-type(4){margin-left:-.065em}.next a.nl{margin-left:-.025em}.bl{margin-left:-.02em!important}.pdesc.p2{margin-top:clamp(16px,1.8vw,28px)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.big:hover{color:var(--accent)}
/* PROYECTO (estilo de la referencia) */
.pintro{padding-top:clamp(24px,2.6vw,44px);padding-bottom:clamp(26px,3vw,48px)}
.plab{color:var(--gray);font-size:clamp(10px,1vw,12.5px);margin:0 0 clamp(14px,1.6vw,22px)}
.ptitle{margin:0 0 0 -.04em;color:var(--accent);font-size:clamp(32px,3.4vw,60px);line-height:1.05;letter-spacing:-.035em}
.pdesc{margin:clamp(10px,1vw,16px) 0 0 -.045em;font-weight:600;font-size:clamp(21px,2.4vw,42px);line-height:1.18;letter-spacing:-.03em;color:#0b0a10;max-width:100%}
.prole{margin-top:clamp(24px,2.6vw,40px);max-width:40em}
.prole .mono{display:block;color:var(--gray);font-size:clamp(10px,1vw,12.5px);margin-bottom:8px}
.prole p{margin:0;font-size:clamp(15px,1.25vw,19px);line-height:1.45;font-weight:600;letter-spacing:-.005em;color:#0b0a10}
.ptags{list-style:none;margin:clamp(22px,2.4vw,36px) 0 0;padding:0;color:var(--gray);font-size:clamp(12px,1.12vw,17px);line-height:1.45;text-transform:none;letter-spacing:.02em}
.pmedia{border-top:1px solid var(--ink)}
.fullimg{display:block;width:100%;height:auto}
.vbox{position:relative;aspect-ratio:16/9;background:#000;cursor:pointer;overflow:hidden;width:100%}
.vbox>img{width:100%;height:100%;object-fit:cover;display:block}
.vbox iframe,.vtile iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.play{position:absolute;left:50%;top:50%;width:clamp(56px,6vw,92px);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:rgba(255,255,255,.94);display:grid;place-items:center;box-shadow:0 6px 28px rgba(0,0,0,.25);transition:transform .25s}
.play svg{width:42%;fill:var(--ink);margin-left:6%}
.vbox:hover .play,.vtile:hover .play{transform:translate(-50%,-50%) scale(1.08)}
.shorts{display:flex;gap:clamp(10px,1.4vw,20px);justify-content:center;padding:clamp(24px,3vw,44px) var(--m) 0;flex-wrap:wrap}
.vtile{position:relative;aspect-ratio:9/16;width:min(calc(33.333% - 14px),360px);background:var(--ink);cursor:pointer;overflow:hidden;display:flex;align-items:flex-end;padding:16px;color:#f3ece0}
.vtile .mono{font-size:11px;letter-spacing:.08em;color:#cfc7b8}
.pcap{display:flex;justify-content:space-between;gap:12px 28px;flex-wrap:wrap;padding-top:clamp(14px,1.5vw,22px);padding-bottom:clamp(26px,3vw,44px);color:var(--gray);font-size:clamp(10px,1vw,12px);line-height:1.5}
.pcap .l{display:flex;gap:18px;flex-wrap:wrap}.pcap a{color:var(--ink)}.pcap a:hover{color:var(--accent)}
.pcap span.g{text-transform:none;letter-spacing:.02em;max-width:60em}
.next{border-top:1px solid var(--ink);margin-top:clamp(36px,5vw,80px);padding-top:clamp(22px,3vw,40px);padding-bottom:clamp(50px,7vw,100px)}
.next .mono{color:var(--gray);font-size:clamp(10px,1.05vw,12.5px)}
.next a.nl{display:block;margin-top:10px;font-size:clamp(28px,5.8vw,84px);line-height:1.07;letter-spacing:-.04em}
.next a.nl:hover{color:var(--accent)}
.bgrid{border-top:1px solid var(--ink);display:grid;grid-template-columns:minmax(0,34fr) minmax(0,60fr);gap:6%;padding-top:clamp(28px,3.4vw,52px);padding-bottom:clamp(40px,6vw,90px)}
.bphoto{position:sticky;top:clamp(70px,9vw,120px);align-self:start}
.bphoto img{width:100%;display:block;aspect-ratio:1/1.2;object-fit:cover;object-position:50% 22%}
.bsec{padding-bottom:clamp(26px,3.2vw,48px)}.bsec+.bsec{border-top:1px solid rgba(20,18,28,.18);padding-top:clamp(18px,2vw,28px)}
.bsec .mono{display:block;color:var(--gray);font-size:clamp(10px,1vw,12.5px);margin-bottom:clamp(10px,1.1vw,16px)}
.bsec p,.bsec li{font-weight:600;font-size:clamp(17px,1.7vw,26px);line-height:1.3;letter-spacing:-.02em;color:#0b0a10}
.bsec p{margin:0 0 clamp(12px,1.4vw,20px)}
.bsec ul{list-style:none;margin:0;padding:0;columns:2;column-gap:clamp(16px,2vw,32px)}
.bsec li{break-inside:avoid;padding:0 0 .25em}
.bsec .note{font-weight:500;color:var(--gray);font-size:clamp(14px,1.2vw,18px);margin:clamp(10px,1.2vw,16px) 0 0}
.bsec ul.one{columns:1}.bsec li.it{padding:0 0 clamp(14px,1.6vw,24px)}.bsec li.it:last-child{padding-bottom:0}.bsec p.d{margin:.3em 0 0;font-weight:500;font-size:clamp(15px,1.25vw,19px);line-height:1.45;letter-spacing:-.005em;color:#333}
.bsec .it b{display:block;font-weight:700}.bsec .it span{display:block;font-weight:500;color:var(--gray);font-size:.8em}
.pgalw{padding-top:clamp(8px,1vw,16px);padding-bottom:clamp(30px,4vw,60px)}
.plab2{color:var(--gray);font-size:clamp(10px,1vw,12.5px);margin:0 0 clamp(14px,1.6vw,22px)}
.pgal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2.2vw,34px) clamp(12px,1.8vw,28px);align-items:start}
.gt{all:unset;box-sizing:border-box;cursor:zoom-in;display:block}
.gt:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.gimg{position:relative;display:block;overflow:hidden;background:#e8dfd0}
.gimg img{display:block;width:100%;height:auto;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.gimg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s}
.gt.pl .gimg video{opacity:1}.gt:hover .gimg img{transform:scale(1.03)}
.gcap{display:block;margin-top:9px;color:var(--cat);font-size:clamp(9.5px,1vw,11.5px);line-height:1.3}
.gbadge{position:absolute;left:8px;top:8px;z-index:2;background:rgba(20,18,28,.86);color:#fff;font-style:normal;font-size:9.5px;padding:4px 8px;border-radius:99px}
body.lbo{overflow:hidden}
#lb{position:fixed;inset:0;z-index:100;background:rgba(20,18,28,.95);display:flex;align-items:center;justify-content:center}
#lb[hidden]{display:none}
#lb .lbs{display:flex;align-items:center;justify-content:center;max-width:92vw;max-height:84vh}
#lb .lbs img,#lb .lbs video{display:block;max-width:92vw;max-height:84vh;width:auto;height:auto;box-shadow:0 10px 60px rgba(0,0,0,.5)}
#lb button{all:unset;box-sizing:border-box;cursor:pointer;color:#f3ece0;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.1);transition:background .2s}
#lb button:hover,#lb button:focus-visible{background:rgba(255,255,255,.24)}
#lb .lbx{position:absolute;top:clamp(12px,2vw,26px);right:clamp(12px,2vw,26px);width:44px;height:44px;font-size:18px}
#lb .lbn{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:30px;line-height:1;padding-bottom:4px}
#lb .lbp{left:clamp(8px,2vw,28px)}#lb .lbf{right:clamp(8px,2vw,28px)}
#lb .lbc{position:absolute;bottom:clamp(10px,2vw,24px);left:0;right:0;text-align:center;margin:0;color:#cfc7b8;font-size:11px;padding:0 70px}
@media(max-width:1000px){.pgal{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.pgal{grid-template-columns:repeat(2,minmax(0,1fr))}#lb .lbn{width:40px;height:40px;font-size:24px}}
@media(max-width:860px){.bgrid{grid-template-columns:1fr;gap:28px}.bphoto{position:static;max-width:380px}.grid{grid-template-columns:repeat(2,1fr)}.card .th{aspect-ratio:1.5!important}.bio .row{grid-template-columns:1fr 1fr;gap:20px}.bio .row>:nth-child(n){grid-column:auto}.ph2{grid-column:1/-1;max-width:380px}.n{width:30px}}
@media(max-width:700px){.vtile{width:min(100%,300px)}.shorts{flex-direction:column;align-items:center}}
@media(max-width:540px){.em{font-size:4.6vw;overflow-wrap:anywhere}.grid{grid-template-columns:1fr}.bio .row{grid-template-columns:1fr}:root{--m:18px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.vrow{display:flex;gap:clamp(10px,1.4vw,20px);padding-top:clamp(24px,3vw,44px);align-items:stretch}
.vrow .vtile{width:auto;min-width:0;aspect-ratio:var(--ar);flex:var(--ar) 1 0}
.mrow{display:flex;gap:clamp(10px,1.4vw,20px);align-items:flex-start;padding-top:clamp(8px,1vw,16px);padding-bottom:clamp(20px,3vw,44px)}
.mrow figure{margin:0;flex:var(--ar) 1 0;min-width:0}
.mrow img{display:block;width:100%;height:auto}
.mrow figcaption{margin-top:9px;color:var(--cat);font-size:clamp(9.5px,1vw,11.5px)}
@media(max-width:700px){.vrow,.mrow{flex-direction:column;align-items:center}.vrow .vtile{width:100%;flex:none;max-width:420px}.vrow .vtile[style*="0.5625"]{max-width:260px}.mrow figure{flex:none;width:100%;max-width:420px}}

.pvw{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .4s;pointer-events:none;background:#000}
.pvw.on{opacity:1}.pvw iframe{width:100%;height:100%;border:0;display:block}
.pmos{--g:clamp(3px,.45vw,7px);padding-top:clamp(8px,1vw,16px);padding-bottom:clamp(20px,3vw,44px)}
.mos{display:flex;gap:var(--g);width:100%}
.mc{display:flex;flex-direction:column;gap:var(--g);min-width:0}
.mcell{min-height:0;overflow:hidden;background:#e8dfd0}
.mcell img{display:block;width:100%;height:100%;object-fit:cover}
.hire{border-top:1px solid var(--ink);padding-top:clamp(28px,3.4vw,52px);padding-bottom:clamp(40px,6vw,90px)}
.hire-t{margin:0 0 clamp(22px,3vw,44px) -.04em;font-size:clamp(28px,3.4vw,60px);line-height:1.1;letter-spacing:-.035em}
.hire-t span{display:inline-block;padding-bottom:.1em;border-bottom:clamp(3px,.35vw,5px) solid var(--accent)}
.hire-l{list-style:none;margin:0;padding:0;columns:2;column-gap:clamp(24px,5vw,80px)}
.hire-l li{break-inside:avoid;font-weight:600;font-size:clamp(17px,1.9vw,30px);letter-spacing:-.02em;line-height:1.2;padding:.42em 0;color:#0b0a10}
@media(max-width:700px){.hire-l{columns:1}}

nav .lg{all:unset;cursor:pointer;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--nav);white-space:nowrap}
nav .lg span{opacity:.42;transition:opacity .2s,color .2s}
nav .lg[data-cur="es"] [data-l="es"],nav .lg[data-cur="en"] [data-l="en"]{opacity:1;color:var(--ink);font-weight:700}
nav .lg:hover span{color:var(--accent);opacity:1}nav .lg:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

.vfail{position:absolute;inset:0;z-index:3;background:#14121c;color:#f3ece0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:20px}
.vfail p{margin:0;font-size:clamp(11px,1.1vw,13px);color:#cfc7b8}.vfail a{color:var(--accent);font-size:clamp(11px,1.1vw,13px);border-bottom:1px solid currentColor;padding-bottom:2px}
