*{box-sizing:border-box;margin:0;padding:0}
:root{--ink:#0a0a0a;--paper:#fff;--turq:#2d9ba3;--soft:rgba(10,10,10,.5);--rule:rgba(10,10,10,.14);--img-r:0px;--e:cubic-bezier(.19,1,.22,1);--eo:cubic-bezier(.16,1,.3,1)}
body{background:var(--paper);color:var(--ink);font-family:'Archivo',system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::selection{background:var(--turq);color:#fff}
.wrap{max-width:1680px;margin:0 auto;padding-inline:clamp(16px,2.6vw,44px)}
.mk{width:auto;display:block}

/* tipografía de cartel */
.big{font-family:'Anton',Impact,sans-serif;font-weight:400;text-transform:uppercase;line-height:.84;letter-spacing:-.012em;text-wrap:balance}
.lbl{font-size:clamp(10px,1vw,13px);font-weight:700;letter-spacing:.1em;text-transform:uppercase;display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.5em}
.lbl .sep{display:inline-block;color:var(--turq)}

.ring{position:fixed;top:0;left:0;width:26px;height:26px;border:2px solid var(--turq);border-radius:50%;pointer-events:none;z-index:9999;opacity:0;transform:translate(-50%,-50%);transition:width .45s var(--e),height .45s var(--e),background .35s,border-color .35s,opacity .35s}
.ring.live{opacity:1}
.ring.on{width:78px;height:78px;background:var(--turq);border-color:var(--turq);mix-blend-mode:multiply}
@media(hover:none){.ring{display:none}}

#scroll{position:fixed;top:0;left:0;width:100%;will-change:transform;z-index:1}
body.native #scroll{position:static;transform:none!important}
body.native #spacer{display:none}
#spacer{pointer-events:none}

/* nav */
.nv{position:fixed;top:0;left:0;right:0;z-index:400;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:clamp(12px,1.6vw,20px) clamp(16px,2.6vw,44px);transition:background .4s,box-shadow .4s}
.nv.sm{background:rgba(255,255,255,.92);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--rule)}
.nv-l,.nv-r{display:flex;align-items:center;gap:clamp(12px,1.8vw,26px)}
.nv .lk{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 0;position:relative}
.nv .lk::after{content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--turq);transition:width .5s var(--e)}
.nv .lk:hover::after{width:100%}
.nv-cta{background:var(--turq);color:#fff;padding:11px 20px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;transition:background .35s}
.nv-cta:hover{background:var(--ink)}

/* hero */
.hr{min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding-block:clamp(90px,13vh,150px) clamp(20px,3vh,40px);position:relative}
.hr-top{display:flex;justify-content:space-between;gap:16px;margin-bottom:auto;padding-top:clamp(24px,4vh,52px)}
.hr h1{display:flex;flex-direction:column;font-size:clamp(42px,12.4vw,240px);line-height:.84}
/* Máscaras de revelado: el recuadro se agranda por arriba y por abajo para no
   cortar tildes ni descendentes (Anton desborda la caja con line-height .84),
   y el espacio extra se descuenta con márgenes negativos iguales. */
.hr h1 .ln{display:block;overflow:hidden;padding-block:.34em;margin-block:-.34em}
.hr h1 .ln>span{display:block;transform:translateY(104%);filter:blur(14px);transition:transform 1.05s var(--eo),filter .85s var(--e)}
.hr h1.go .ln>span{transform:translateY(0);filter:blur(0)}
.hr h1 .tq{color:var(--turq)}
.hr-b{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:22px;margin-top:auto;padding-top:clamp(20px,3vh,34px);border-top:2px solid var(--ink);opacity:0;transform:translateY(12px);transition:opacity 1s var(--e) .55s,transform 1s var(--e) .55s}
.hr-b.go{opacity:1;transform:none}
.hr-b p{max-width:42ch;font-size:clamp(13px,1.25vw,16px);line-height:1.5;color:var(--soft)}

/* odómetro de años, dentro de una frase */
.od{max-width:34ch;font-size:clamp(13px,1.25vw,16px);line-height:1.5;color:var(--soft);display:flex;flex-wrap:wrap;align-items:baseline;gap:.32em}
.od-w{height:1.3em;overflow:hidden;display:inline-block;line-height:1.3;vertical-align:baseline}
.od-t{display:block;animation:roll 4.2s var(--eo) forwards;will-change:transform,filter}
.od-t span{display:block;line-height:1.3}
@keyframes roll{0%{transform:translateY(0);filter:blur(9px)}72%{filter:blur(6px)}100%{transform:translateY(calc(-100% + 1.3em));filter:blur(0)}}

/* banda a sangre */
.bnd{background:var(--turq);color:#fff;padding-block:clamp(46px,9vh,120px)}
.bnd.ink{background:var(--ink)}
.bnd-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:clamp(24px,4vw,60px)}
.bnd h2{font-size:clamp(38px,9.4vw,190px);color:#fff}
.bnd .lbl{color:rgba(255,255,255,.72)}
.bnd .lbl .sep{color:#fff}
.bio{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,3.4vw,64px);margin-top:clamp(30px,5vh,64px);padding-top:clamp(20px,3vh,34px);border-top:2px solid rgba(255,255,255,.28)}
.bio-c p{font-size:clamp(14px,1.35vw,16.5px);line-height:1.62;color:rgba(255,255,255,.8);text-wrap:pretty}
.bio-c p+p{margin-top:15px}

/* declaración */
.st{padding-block:clamp(56px,11vh,150px)}
.st h2{font-size:clamp(30px,7.4vw,140px)}
.st h2 .tq{color:var(--turq)}
.st-m{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px);margin-top:clamp(30px,5vh,64px);padding-top:clamp(20px,3vh,32px);border-top:2px solid var(--ink)}
.st-m p{font-size:15px;line-height:1.55;color:var(--soft)}
.st-m h4{margin-bottom:10px}

/* mosaico de trabajos: filas que derivan */
.mos{display:flex;flex-direction:column;gap:clamp(6px,.7vw,10px)}
.mrow{overflow:hidden}
.mtrack{display:flex;gap:clamp(6px,.7vw,10px);width:max-content;animation:drift 60s linear infinite}
.mtrack.rev{animation-direction:reverse}
@keyframes drift{to{transform:translateX(-50%)}}
.mos:hover .mtrack{animation-play-state:paused}
.mtile{flex:0 0 auto;display:block;overflow:hidden;background:#eee;height:var(--h);width:calc(var(--h) * var(--ar))}
.mtile img{width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none;transition:transform 1.1s var(--eo),filter .5s var(--e)}
.mtile:hover img{transform:scale(1.05);filter:saturate(1.08)}
.mrow.r0{--h:clamp(180px,30vh,420px)}
.mrow.r1{--h:clamp(110px,18vh,240px)}
.mrow.r2{--h:clamp(130px,22vh,300px)}
@media(prefers-reduced-motion:reduce){.mtrack{animation:none}}

/* trabajo */
.wk{padding-block:clamp(40px,7vh,90px)}
.wk-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:clamp(22px,3.4vh,40px)}
.wk-h h2{font-size:clamp(30px,7vw,132px)}
.wg{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(10px,1.2vw,18px)}
.wc{grid-column:span 4;display:block}
.wc:nth-child(7n+1){grid-column:span 6}
.wc:nth-child(7n+4){grid-column:span 6}
.wc-i{aspect-ratio:4/3;overflow:hidden;background:#eee}
.wc:nth-child(7n+1) .wc-i,.wc:nth-child(7n+4) .wc-i{aspect-ratio:16/9}
.wc-i img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--eo),filter .6s var(--e)}
.wc:hover .wc-i img{transform:scale(1.045)}
.wc-b{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding-top:10px}
.wc-b h3{font-family:'Anton',Impact,sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(15px,1.5vw,24px);line-height:1;letter-spacing:-.01em}
.wc:hover .wc-b h3{color:var(--turq)}
.wc-b .lbl{color:var(--soft);text-align:right;flex:0 0 auto}
.wk-all{display:inline-flex;align-items:center;gap:12px;margin-top:clamp(24px,4vh,44px);font-family:'Anton',Impact,sans-serif;text-transform:uppercase;font-size:clamp(18px,2.6vw,44px);line-height:1;padding-bottom:8px;border-bottom:3px solid var(--ink);transition:gap .5s var(--e),color .35s,border-color .35s}
.wk-all:hover{gap:24px;color:var(--turq);border-color:var(--turq)}

/* servicios / proceso */
.rows{border-top:2px solid var(--ink)}
.row{display:grid;grid-template-columns:70px 1fr 1.25fr;gap:clamp(14px,2.4vw,40px);align-items:center;padding-block:clamp(16px,2.4vw,28px);border-bottom:1px solid var(--rule);position:relative;transition:padding-left .6s var(--e)}
.row::before{content:'';position:absolute;left:0;top:0;bottom:0;width:0;background:var(--turq);transition:width .6s var(--e);z-index:-1}
.row:hover{padding-left:20px}
.row:hover::before{width:100%}
.row>*{position:relative}
.row .n{font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--soft)}
.row h3{font-family:'Anton',Impact,sans-serif;font-weight:400;text-transform:uppercase;font-size:clamp(19px,3.4vw,58px);line-height:.9;letter-spacing:-.012em}
.row p{font-size:14.5px;line-height:1.55;color:var(--soft)}
.row:hover .n,.row:hover h3,.row:hover p{color:#fff}

/* contacto */
.ct{background:var(--turq);color:#fff;padding-block:clamp(56px,11vh,150px);text-align:center}
.ct h2{font-size:clamp(34px,10.4vw,210px);color:#fff}
.ct-m{display:inline-block;margin-top:clamp(20px,3.4vh,40px);font-family:'Anton',Impact,sans-serif;text-transform:uppercase;font-size:clamp(15px,3vw,52px);line-height:1;padding-bottom:9px;border-bottom:4px solid rgba(255,255,255,.5);transition:border-color .35s}
.ct-m:hover{border-color:#fff}
.ct-l{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(14px,2.4vw,32px);margin-top:clamp(24px,4vh,48px)}
.ct-l a{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.ct-l a:hover{color:#fff}
.ct .ser{margin:0 auto clamp(20px,3.4vh,40px)}

/* footer */
.ft{padding-block:clamp(24px,3.4vh,42px) clamp(18px,2.6vh,32px)}
.ft-t{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;padding-bottom:clamp(18px,2.6vh,32px);border-bottom:2px solid var(--ink)}
.frase{display:block;width:100%;max-width:min(560px,72vw);height:auto;margin:clamp(22px,3.4vh,40px) auto clamp(6px,1vh,14px)}
.ft-b{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px;padding-top:16px}
.ft-b nav{display:flex;flex-wrap:wrap;gap:18px}
.ft .lbl{color:var(--soft)}

/* revelados con desenfoque */
.kn{overflow:hidden;display:block;padding-block:.34em;margin-block:-.34em}
.kn>span{display:block;transform:translateY(104%);filter:blur(12px);transition:transform 1.05s var(--eo),filter .8s var(--e)}
.kn.in>span{transform:translateY(0);filter:blur(0)}
.fd{opacity:0;transform:translateY(18px);transition:opacity .9s var(--e),transform .9s var(--e)}
.fd.in{opacity:1;transform:none}

/* menú compacto */
.brg{display:none;width:40px;height:40px;border:0;background:transparent;padding:0;cursor:pointer;flex-direction:column;justify-content:center;align-items:flex-end;gap:5px}
.brg span{display:block;height:2px;width:22px;background:var(--ink);transition:transform .45s var(--e),opacity .3s,width .45s var(--e)}
.brg[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.brg[aria-expanded="true"] span:nth-child(2){opacity:0;width:0}
.brg[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mnu{position:fixed;inset:0;z-index:380;background:var(--paper);display:flex;flex-direction:column;justify-content:center;gap:clamp(6px,1.6vh,16px);padding:clamp(70px,12vh,120px) clamp(16px,2.6vw,44px) clamp(24px,5vh,60px);opacity:0;pointer-events:none;transition:opacity .4s var(--e)}
.mnu.open{opacity:1;pointer-events:auto}
.mnu a{font-family:'Anton',Impact,sans-serif;text-transform:uppercase;font-size:clamp(30px,10vw,68px);line-height:1;letter-spacing:-.012em}
.mnu a:active{color:var(--turq)}
.mnu .foot{margin-top:auto;color:var(--soft)}

@media(max-width:1000px){
.nv .lk{display:none}
.brg{display:flex}
.hr{min-height:auto;padding-block:96px 32px}
.st-m{grid-template-columns:1fr;gap:20px}
.bio{grid-template-columns:1fr;gap:16px}
.wc,.wc:nth-child(7n+1),.wc:nth-child(7n+4){grid-column:span 12}
.wc-i,.wc:nth-child(7n+1) .wc-i,.wc:nth-child(7n+4) .wc-i{aspect-ratio:4/3}
.row{grid-template-columns:38px 1fr;gap:10px}
.row p{grid-column:2}
.mrow.r0{--h:clamp(150px,26vh,260px)}
.mrow.r1{--h:clamp(96px,16vh,150px)}
.mrow.r2{--h:clamp(110px,19vh,180px)}
}

/* visor de imágenes */
.lbx{position:fixed;inset:0;z-index:9998;background:rgba(10,10,10,.94);display:grid;place-items:center;padding:clamp(16px,5vw,72px);animation:lbxin .25s ease}
@keyframes lbxin{from{opacity:0}to{opacity:1}}
.lbx img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.lbx-x,.lbx-n{position:fixed;border:0;background:var(--paper);color:var(--ink);cursor:pointer;font-size:16px;width:46px;height:46px;display:grid;place-items:center;transition:background .3s,color .3s}
.lbx-x:hover,.lbx-n:hover{background:var(--turq);color:#fff}
.lbx-x{top:18px;right:18px}
.lbx-n{top:50%;transform:translateY(-50%)}
.lbx-n.prev{left:18px}
.lbx-n.next{right:18px}
.lbx-c{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.7)}
@media(max-width:700px){.lbx-n{top:auto;bottom:18px;transform:none}.lbx-c{bottom:76px}}

/* radio solo en imágenes: bandas y bloques de texto siguen rectos */
.mtile,.pj7-i img,.cl-lead,.cl-lead img,.cl-i,.cl-i img,.mtile img{border-radius:var(--img-r)}

/* área táctil: los enlaces de pie y de contacto son de 12px de alto */
@media(hover:none){
.ct-l a,.ft-b nav a,.ft-b a{padding-block:14px}
.ct-l{gap:clamp(10px,2.4vw,32px)}
.ft-b nav{gap:14px 18px}
.mnu a{padding-block:6px}
}
