/* letras que se desordenan con el scroll */
#ht{perspective:800px}
#ht .ch{display:inline-block;will-change:transform,opacity,filter}
/* foto que se difumina al salir */
.sl{will-change:filter,opacity}
/* leyenda que entra en cada foto */
.s{position:relative}
.cap{position:absolute;left:20px;right:20px;bottom:18px;text-align:left;line-height:1.15;font:700 clamp(14px,1.6vw,22px) 'Unbounded',sans-serif;text-transform:uppercase;color:#fff;
  text-shadow:0 2px 18px rgba(0,0,0,.7);clip-path:inset(0 100% 0 0);transform:translateY(12px);opacity:0;transition:none}
.s.on .cap{animation:capIn .9s cubic-bezier(.2,.8,.2,1) .35s forwards}
@keyframes capIn{to{clip-path:inset(0 0 0 0);transform:none;opacity:1}}
.s.on img{animation:kb 7s ease-out forwards}
@keyframes kb{from{transform:scale(1.08)}to{transform:scale(1)}}
.s{overflow:hidden;border-radius:18px}
.t[aria-pressed=true]{position:relative}
.t[aria-pressed=true]::after{content:'';position:absolute;left:0;bottom:-2px;height:2px;width:100%;background:var(--champagne);transform-origin:left;animation:bar 6s linear forwards}
@keyframes bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
/* redes del pie (misma posición, con animación) */
.ft-social a,.fm-social a{transition:transform .3s cubic-bezier(.3,1.6,.5,1),background .3s,color .3s}
.ft-social svg *,.fm-social svg *{stroke-dasharray:120;stroke-dashoffset:0}
.ft-social.in svg *{animation:draw 1.4s ease both}
.ft-social.in a:nth-child(2) svg *{animation-delay:.15s}.ft-social.in a:nth-child(3) svg *{animation-delay:.3s}.ft-social.in a:nth-child(4) svg *{animation-delay:.45s}
@keyframes draw{from{stroke-dashoffset:120}to{stroke-dashoffset:0}}
.ft-social a:hover,.fm-social a:hover{transform:translateY(-4px) scale(1.1)}
.ft-social a[aria-label=WhatsApp]:hover svg,.fm-social a[aria-label=WhatsApp]:hover svg{animation:ring .6s ease}
.ft-social a[aria-label=TikTok]:hover svg,.fm-social a[aria-label=TikTok]:hover svg{animation:glitch .25s steps(2) 3}
.ft-social a[aria-label=Instagram]:hover svg,.fm-social a[aria-label=Instagram]:hover svg{animation:spinIn .6s ease}
.ft-social a[aria-label=Facebook]:hover svg,.fm-social a[aria-label=Facebook]:hover svg{animation:bounce .6s ease}
@keyframes ring{0%,100%{transform:rotate(0)}20%{transform:rotate(-16deg)}40%{transform:rotate(14deg)}60%{transform:rotate(-8deg)}80%{transform:rotate(4deg)}}
@keyframes glitch{0%{transform:translate(-2px,0);filter:drop-shadow(-2px 0 #25f4ee) drop-shadow(2px 0 #fe2c55)}100%{transform:translate(2px,0)}}
@keyframes spinIn{from{transform:rotate(-90deg) scale(.7)}to{transform:none}}
@keyframes bounce{0%,100%{transform:none}40%{transform:translateY(-6px)}70%{transform:translateY(-1px)}}
@media (prefers-reduced-motion:reduce){.ft-social *,.fm-social *,.nav-wa svg{animation:none!important}}
.nav-wa svg{animation:waPulse 3s ease-in-out infinite}
@keyframes waPulse{0%,80%,100%{transform:rotate(0)}85%{transform:rotate(-14deg)}90%{transform:rotate(12deg)}95%{transform:rotate(-6deg)}}

/* portada clara: la foto de estudio (fondo blanco) se funde con el fondo */
.hero2{background:radial-gradient(60% 50% at 50% 70%,rgba(216,195,165,.10),transparent 70%),#050505;color:var(--white);padding:140px 0 56px;text-align:center;overflow:hidden}
.hero2 h1{font:800 clamp(38px,7.2vw,104px)/.95 'Unbounded',sans-serif;color:var(--white);text-transform:uppercase;letter-spacing:-.02em;padding:0 16px}
.sub{color:var(--champagne);letter-spacing:.2em;text-transform:uppercase;font-size:14px;margin-top:14px}
.sl{margin-top:28px;cursor:grab;touch-action:pan-y;user-select:none}
.tr{display:flex;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.s{flex:0 0 58%;padding:0 1%;opacity:.3;transform:scale(.84);filter:grayscale(.5);transition:opacity .6s,transform .7s cubic-bezier(.2,.8,.2,1)}
.s.on{opacity:1;transform:scale(1);filter:none}
.s img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:18px;pointer-events:none}
.tabs,.ctabs{display:flex;justify-content:safe center;gap:clamp(10px,3vw,40px);overflow-x:auto;scrollbar-width:none;padding:0 16px}
.t,.ct{flex:none;background:none;border:0;border-bottom:2px solid #333;padding:12px 4px;font:500 clamp(12px,1.2vw,16px) 'Space Grotesk';text-transform:uppercase;letter-spacing:.04em;color:#888}
.t[aria-pressed=true]{color:#fff;border-color:var(--champagne)}
/* configura tu (oscuro, estilo Lamborghini) */
.cfg2{background:#121212;padding:clamp(56px,7vw,96px) 0}
.ct{border-color:#333;color:#777}.ct[aria-pressed=true]{color:#fff;border-color:var(--champagne)}
.cg{max-width:1240px;margin:48px auto 0;padding:0 var(--gutter);display:grid;grid-template-columns:1fr 1.1fr;gap:40px;align-items:center}
.k{font:600 clamp(18px,2.2vw,30px) 'Unbounded';text-transform:uppercase}
#cn{font:800 clamp(40px,6vw,88px)/.95 'Unbounded';text-transform:uppercase;margin:10px 0 12px}
.cs{color:var(--white);font-size:18px}
.cimg{background:#fff;border-radius:20px;overflow:hidden}.cimg img{width:100%;aspect-ratio:4/3;object-fit:cover}
@media(max-width:860px){.s{flex-basis:80%}.cg{grid-template-columns:1fr}.ctext{text-align:center}.ctext .btn-row{justify-content:center}.tabs,.ctabs{justify-content:flex-start}}

.hero2 .trust{margin-top:44px}
@media (prefers-reduced-motion:reduce){#ht .ch,.sl{transform:none!important;filter:none!important;opacity:1!important}.s.on img,.s.on .cap{animation:none;clip-path:none;opacity:1;transform:none}}
@media(max-width:600px){.cap{font-size:12px;left:14px;right:14px;bottom:12px}}
/* proyectos realizados: galería */
.gal{columns:3 300px;column-gap:16px;margin-top:8px}
.gal-item{position:relative;display:block;margin:0 0 16px;break-inside:avoid;border-radius:16px;overflow:hidden;background:#111;cursor:zoom-in}
.gal-item img{width:100%;height:auto;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.gal-item:hover img{transform:scale(1.05)}
.gal-cap{position:absolute;inset:auto 0 0 0;padding:44px 16px 14px;background:linear-gradient(transparent,rgba(0,0,0,.85));display:flex;flex-direction:column;gap:2px;color:#fff}
.gal-tag{font:600 11px 'Space Grotesk',sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--champagne)}
.gal-name{font:700 15px/1.25 'Unbounded',sans-serif}
.gal-ver{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--sand);margin-top:4px}
.lb{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.92);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:20px;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.lb.on{opacity:1;visibility:visible}
.lb img{max-width:min(1100px,100%);max-height:72vh;border-radius:14px;transform:scale(.94);transition:transform .35s}
.lb.on img{transform:none}
.lb p{color:#fff;text-align:center;max-width:640px;font-size:15px}
.lb .lb-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.lb-x{position:absolute;top:14px;right:14px;width:44px;height:44px;border-radius:50%;border:1px solid #444;background:#111;color:#fff;font-size:22px;cursor:pointer}
.rail{transition:opacity .3s,visibility .3s}
.rail.off{opacity:0;visibility:hidden}
