*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}
html.locked{overflow:hidden}
body{font-family:var(--font-brand);background:var(--gm-cal);color:var(--gm-onix);overflow-x:hidden;overflow-x:clip;-webkit-font-smoothing:antialiased}
a{color:var(--gm-magma);text-decoration:none}a:hover{color:var(--gm-magma-shade)}
img{display:block;max-width:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lbl{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.fx{position:absolute;inset:0;width:100%;height:100%;display:block}
.w{display:inline-block;white-space:nowrap;overflow:hidden;vertical-align:top;padding:.12em 0 .14em;margin:-.12em 0 -.14em}
.c{display:inline-block;will-change:transform}
main>section{position:relative}
.cut::before{content:"";position:absolute;left:0;right:0;top:calc(-12vh + 1px);height:12vh;background:var(--cut);clip-path:polygon(0 100%,100% 0,100% 100%);z-index:5;pointer-events:none}
.cut.rev::before{clip-path:polygon(0 0,100% 100%,0 100%)}

/* cursor */
.cur{position:fixed;left:0;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;background:var(--gm-magma);clip-path:polygon(12% 0,100% 16%,88% 100%,0 84%);z-index:100;pointer-events:none;display:none;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease)}
.has-cur .cur{display:block}
.cur.big{width:54px;height:54px;margin:-27px 0 0 -27px}

/* intro */
#intro{position:fixed;inset:0;z-index:80;background:var(--gm-cal);overflow:hidden}
.in-pleca{position:absolute;inset:0;background:var(--gm-magma);clip-path:polygon(50% 50%,50% 50%,50% 50%,50% 50%)}
.in-mark{position:absolute;left:50%;top:50%;width:min(300px,52vw);aspect-ratio:608/468;margin:calc(min(300px,52vw)*-.385) 0 0 calc(min(300px,52vw)*-.5);color:var(--gm-tierra);background:currentColor;-webkit-mask:url(assets/logo-primary-mask.png) center/contain no-repeat;mask:url(assets/logo-primary-mask.png) center/contain no-repeat;clip-path:inset(0 100% 0 0)}
.in-foot{position:absolute;left:clamp(20px,4vw,56px);bottom:28px;display:flex;gap:14px;align-items:baseline;color:var(--gm-tierra)}
.in-count{font-weight:700;font-size:12px;letter-spacing:.14em;font-variant-numeric:tabular-nums}
.in-skip{position:absolute;right:clamp(20px,4vw,56px);bottom:24px;background:none;border:0;border-bottom:1px solid currentColor;font:inherit;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gm-onix);cursor:pointer;padding:4px 0}

/* header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:space-between;align-items:center;padding:22px clamp(20px,4vw,56px);color:var(--hdr,#eeece8);transition:color .5s;pointer-events:none}
.hdr>*{pointer-events:auto}
.hdr-logo,.hdr-logo:hover{color:inherit}
.hdr-logo{display:block;width:148px;height:34px;background:currentColor;-webkit-mask:url(assets/logo-wordmark-mask.png) left center/contain no-repeat;mask:url(assets/logo-wordmark-mask.png) left center/contain no-repeat}
.hdr nav{display:flex;gap:24px;align-items:center}
.hdr-tag{display:flex;gap:10px;align-items:center}
.hdr-tag i,.pr-tag i{width:8px;height:8px;background:var(--gm-magma);animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.2}}
.hdr-cta{color:inherit;padding:11px 18px;border:1px solid currentColor;transition:background .3s,color .3s,border-color .3s}
.hdr-cta:hover{background:var(--gm-magma);border-color:var(--gm-magma);color:var(--gm-onix)}
@media(max-width:640px){.hdr{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:16px}.hdr-tag{display:none}.hdr-logo{width:118px;height:28px}.hdr-cta{min-height:44px;display:flex;align-items:center;padding:0 16px}.h-t1{top:130px}.h-meta{top:88px}.ds-top{top:88px}}
@media(hover:none){.hdr-cta:hover{background:none;border-color:currentColor;color:inherit}.av-form button:hover{background:var(--gm-onix);color:var(--gm-cal)}}

/* hero */
#hero{height:420vh;background:var(--gm-onix);color:var(--gm-cal)}
#hero .stage{background:var(--gm-onix)}
.hm{position:absolute;inset:0;overflow:hidden;clip-path:polygon(0% 0%,50% 0%,100% 0%,100% 100%,50% 100%,0% 100%);will-change:clip-path,transform}
.hm-kb{position:absolute;inset:0;animation:kb 14s ease-in-out infinite alternate}
@keyframes kb{to{transform:scale(1.07) translate(-1%,1%)}}
.hm-kb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hm-shade{position:absolute;inset:0;background:var(--gm-onix);opacity:.22}
.h-t{position:absolute;left:clamp(20px,4vw,56px);right:clamp(20px,4vw,56px);font-weight:700;font-size:clamp(46px,10vw,190px);line-height:.95;letter-spacing:-.025em;z-index:3}
.h-t1{top:150px}
.h-t2{bottom:clamp(80px,12vh,130px);text-align:right}
.h-meta{position:absolute;top:100px;left:clamp(20px,4vw,56px);display:flex;gap:16px;z-index:3}
.h-meta b{color:var(--gm-magma)}
.h-meta2{left:auto;right:clamp(20px,4vw,56px);opacity:0}
.h-bottom{position:absolute;left:clamp(20px,4vw,56px);right:clamp(20px,4vw,56px);bottom:30px;display:flex;justify-content:space-between;gap:20px;z-index:3}
.h-scroll{display:flex;align-items:center;gap:12px}
.h-scroll i{width:56px;height:1px;background:rgba(238,236,232,.4);position:relative;overflow:hidden}
.h-scroll i::after{content:"";position:absolute;inset:0;background:var(--gm-magma);animation:scan 1.8s var(--ease) infinite}
@keyframes scan{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media(max-width:640px){.h-bottom span:first-child{display:none}.h-bottom{justify-content:flex-end}.h-t{font-size:clamp(40px,12.5vw,80px)}}

/* manifesto */
#manifiesto{background:var(--gm-cal);padding:22vh clamp(20px,4vw,56px) 8vh;--cut:var(--gm-cal)}
.mf-head{display:flex;justify-content:space-between;gap:20px;color:var(--gm-tierra);margin-bottom:7vh}
.mf-text{font-weight:700;font-size:clamp(30px,4.5vw,76px);line-height:1.06;letter-spacing:-.015em;max-width:1280px;text-wrap:pretty}
.mf-text .mw{opacity:.13}
.mf-text .acc{color:var(--gm-tierra)}
.mf-floats{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:3vw;row-gap:14vh;margin-top:16vh;padding-bottom:6vh}
.fl{position:relative}
.fli{will-change:transform}
.flf{width:100%;aspect-ratio:var(--ar);overflow:hidden;clip-path:var(--cp)}
.flf img{width:100%;height:100%;object-fit:cover;transform:scale(1.12)}
.fl figcaption{margin-top:14px;color:var(--gm-tierra);display:flex;gap:12px}
.fl figcaption b{color:var(--gm-onix)}
.fl1{grid-column:1/6;--ar:4/3;--cp:polygon(0 4%,100% 0,97% 100%,3% 94%)}
.fl2{grid-column:8/12;margin-top:18vh;--ar:3/4;--cp:polygon(6% 0,100% 5%,100% 96%,0 100%)}
.fl3{grid-column:5/10;--ar:4/3;--cp:polygon(0 0,94% 8%,100% 100%,2% 92%)}
.mf-quote{grid-column:1/5;align-self:center;font-weight:700;font-size:clamp(22px,2.3vw,38px);line-height:1.1}
.mf-quote span{display:block;margin-top:16px;font-weight:400;font-size:15px;line-height:1.5;color:var(--text-muted)}
.fl4{grid-column:7/12;--ar:16/10;--cp:polygon(4% 6%,100% 0,96% 100%,0 92%)}
@media(max-width:800px){.mf-floats{row-gap:8vh}.fl1{grid-column:1/10}.fl2{grid-column:5/13;margin-top:0}.fl3{grid-column:1/11}.mf-quote{grid-column:1/13}.fl4{grid-column:3/13}}

/* desde */
#desde{height:260vh;background:var(--gm-tierra);color:var(--gm-cal);--cut:var(--gm-tierra)}
#desde .stage{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--gm-tierra)}
.ds-top{position:absolute;top:100px;left:clamp(20px,4vw,56px);right:clamp(20px,4vw,56px);display:flex;justify-content:space-between;z-index:2}
.od{position:relative;z-index:2;display:flex;font-weight:700;font-size:clamp(120px,27vw,480px);line-height:1.05;height:1.05em;overflow:hidden;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.od-col{display:flex;flex-direction:column;will-change:transform}
.od-col span{display:block;height:1.05em;text-align:center}
.ds-text{position:relative;z-index:2;font-size:clamp(18px,1.9vw,30px);line-height:1.3;text-align:center;max-width:26ch;margin-top:2vh;opacity:0}

/* materiales */
#materiales{background:var(--gm-cal);padding:18vh 0 20vh;overflow:hidden;--cut:var(--gm-cal)}
.mt-head{display:flex;justify-content:space-between;gap:20px;padding:0 clamp(20px,4vw,56px);color:var(--gm-tierra);margin-bottom:6vh}
.mq{white-space:nowrap;will-change:transform}
.mq-in{display:inline-flex;align-items:center;gap:.28em;padding-right:.28em;font-weight:700;font-size:clamp(64px,11vw,200px);line-height:1.12;letter-spacing:-.02em;will-change:transform}
.mq-o .mq-in{color:transparent;-webkit-text-stroke:2px var(--gm-tierra)}
.chip{flex:none;display:block;width:1.45em;height:.78em;overflow:hidden;clip-path:polygon(7% 0,100% 11%,94% 100%,0 88%)}
.chip img{width:100%;height:100%;object-fit:cover}

/* proyectos */
#proyectos{background:var(--gm-onix);color:var(--gm-cal);--cut:var(--gm-onix)}
#proyectos .stage{background:var(--gm-onix)}
.pj-track{position:absolute;top:0;left:0;height:100%;display:flex;align-items:center;gap:5vw;padding:0 10vw 0 clamp(20px,4vw,56px);will-change:transform}
.pj-intro{flex:none;width:min(520px,80vw)}
.pj-intro .lbl{color:var(--gm-arena)}
.pj-intro h2{font-weight:700;font-size:clamp(40px,5vw,86px);line-height:1;letter-spacing:-.02em;margin:22px 0}
.pj-intro p{font-size:17px;line-height:1.5;color:#cfc9c1;max-width:32ch}
.pj-card{flex:none;position:relative;height:56vh}
.pj-l{width:calc(56vh * 1.333)}.pj-p{width:calc(56vh * .75)}
.pj-up{margin-top:-14vh}.pj-dn{margin-top:14vh}
.pj-frame{position:absolute;inset:0;overflow:hidden;will-change:clip-path}
.pj-frame img{width:100%;height:100%;object-fit:cover;transform:scale(1.2)}
.pj-card figcaption{position:absolute;top:calc(100% + 16px);left:0;display:flex;gap:14px;color:#cfc9c1}
.pj-card figcaption b{color:var(--gm-magma)}
.pj-end{flex:none;width:min(560px,78vw);font-weight:700;font-size:clamp(32px,3.6vw,62px);line-height:1.05;letter-spacing:-.015em}
.pj-end span{display:block;margin-top:20px;font-weight:400;font-size:17px;color:#cfc9c1;letter-spacing:0}
.pj-hud{position:absolute;left:clamp(20px,4vw,56px);right:clamp(20px,4vw,56px);bottom:30px;display:flex;align-items:center;gap:24px;color:#cfc9c1}
.pj-n b{color:var(--gm-cal)}
.pj-bar{flex:1;height:1px;background:rgba(238,236,232,.22);position:relative}
.pj-bar i{position:absolute;inset:0;background:var(--gm-magma);transform-origin:left;transform:scaleX(0)}
@media(max-width:700px){.pj-card{height:auto}.pj-l{width:84vw;aspect-ratio:4/3}.pj-p{width:60vw;aspect-ratio:3/4}.pj-up{margin-top:-8vh}.pj-dn{margin-top:8vh}}

/* pronto */
#pronto{height:330vh;background:var(--gm-cal);--cut:var(--gm-cal)}
#pronto .stage{background:var(--gm-cal)}
.pr-wrap{position:absolute;inset:0;z-index:2;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);align-items:center;gap:5vw;padding:100px clamp(20px,4vw,56px) 60px;pointer-events:none}
.pr-tag{display:inline-flex;gap:10px;align-items:center;color:var(--gm-tierra)}
.pr-t{font-weight:700;font-size:clamp(36px,4.6vw,88px);line-height:1;letter-spacing:-.025em;margin:24px 0 28px}
.pr-l{display:block}
.pr-sub{font-size:clamp(16px,1.3vw,20px);line-height:1.5;max-width:32ch;color:var(--text-muted)}
.pr-img{position:relative;width:100%;aspect-ratio:1280/777}
.tile{position:absolute;inset:0;background:url(img/12.jpg) center/cover;will-change:transform,opacity;opacity:0}
@media(max-width:800px){.pr-wrap{grid-template-columns:minmax(0,1fr);align-content:center;gap:5vh}.pr-t{margin:16px 0}}

/* aviso */
#aviso{height:280vh;background:var(--gm-cal);--cut:var(--gm-cal)}
#aviso .stage{background:var(--gm-cal)}
.av-pleca{position:absolute;inset:0;z-index:1;background:var(--gm-magma)}
.av-col>*{flex-shrink:0}
.av-col{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;text-align:center;padding:90px 20px 120px}
.av-sym{width:min(320px,42vw,24vh * 1.96);aspect-ratio:705/359;color:var(--gm-cal);background:currentColor;-webkit-mask:url(assets/logo-symbol-mask.png) center/contain no-repeat;mask:url(assets/logo-symbol-mask.png) center/contain no-repeat;will-change:transform}
.av-t{font-weight:700;font-size:clamp(30px,4.2vw,72px);line-height:1;letter-spacing:-.02em;margin-top:2vh}
.av-sub{font-size:clamp(15px,1.2vw,19px);line-height:1.5;max-width:40ch}
.av-form{display:flex;width:min(520px,100%);border-bottom:1.5px solid var(--gm-onix)}
.av-form input{flex:1;min-width:0;background:none;border:0;font:inherit;font-size:17px;padding:16px 4px;color:var(--gm-onix);outline:none}
.av-form input::placeholder{color:#5a3418}
.av-form button{background:var(--gm-onix);color:var(--gm-cal);border:0;font:inherit;font-weight:700;font-size:14px;letter-spacing:.06em;padding:0 26px;margin:6px 0;cursor:pointer;transition:background .3s,color .3s}
.av-form button:hover{background:var(--gm-cal);color:var(--gm-onix)}
.av-ok{font-weight:700;font-size:18px;max-width:30ch}
@media(max-width:640px){.av-col{gap:16px;padding:80px 20px 150px}.av-form button{min-height:44px;padding:0 18px}.av-foot{flex-direction:column;align-items:center;text-align:center;gap:6px;bottom:max(20px,env(safe-area-inset-bottom));font-size:11px}.pr-wrap{padding:84px 20px 40px}}
@media(max-width:640px) and (max-height:620px){.av-sym{width:min(120px,30vw)}.av-t{font-size:26px;margin-top:0}.av-foot span:first-child{display:none}}
.av-foot{position:absolute;left:clamp(20px,4vw,56px);right:clamp(20px,4vw,56px);bottom:28px;z-index:2;display:flex;justify-content:space-between;gap:12px 28px;flex-wrap:wrap}
.av-foot a{color:inherit}.av-foot a:hover{color:var(--gm-cal)}
.av-fade{opacity:0}

@media(prefers-reduced-motion:reduce){.hm-kb,.h-scroll i::after,.hdr-tag i{animation:none}}
.h-cue{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--gm-cal);opacity:0;pointer-events:none}
.h-cue-m{width:30px;height:48px;border:1.5px solid currentColor;border-radius:15px;position:relative}
.h-cue-m i{position:absolute;left:50%;top:9px;width:6px;height:6px;margin-left:-3px;background:var(--gm-magma);animation:cue 1.8s var(--ease) infinite}
@media(pointer:coarse){.h-cue-m{width:1.5px;height:56px;border:0;border-radius:0;background:rgba(238,236,232,.35)}.h-cue-m i{top:0}}
@keyframes cue{0%{transform:translateY(0);opacity:0}20%{opacity:1}70%{transform:translateY(20px);opacity:1}100%{transform:translateY(24px);opacity:0}}
.fli{transform-origin:center}
