:root{--ink:#202020;--muted:#696969;--paper:#ffffff;--sand:#fafaf8;--line:#e5e5e5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.skip-link{position:absolute;z-index:20;left:16px;top:-60px;padding:10px;background:var(--paper)}.skip-link:focus{top:12px}.site-header{position:absolute;z-index:5;top:0;left:0;width:100%;height:94px;padding:0 clamp(24px,5vw,78px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(32,32,32,.2)}.brand{font-family:Manrope,Arial,sans-serif;font-size:14px;letter-spacing:.04em;font-weight:500;white-space:nowrap}.brand strong{font-weight:800}.brand-dot,.title-period,.footer-wordmark span{color:#202020}.site-header nav{display:flex;gap:clamp(20px,3vw,44px);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.12em}.site-header nav a,.hero-bottom a,.footer a{transition:opacity .25s}.site-header nav a:hover,.hero-bottom a:hover,.footer a:hover{opacity:.58}.hero{height:100svh;min-height:620px;position:relative;overflow:hidden;background:var(--sand);display:grid;place-items:center}.hero-pattern{position:absolute;inset:-12%;background-image:url('assets/copacabana.svg');background-repeat:repeat;background-position:center;background-size:900px 440px;transform:scale(var(--pattern-scale,1.16)) rotate(-4deg);transform-origin:center;will-change:transform;animation:pattern-in 1.4s cubic-bezier(.2,.8,.2,1) both}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(250,250,248,.04),transparent 35%,transparent 65%,rgba(250,250,248,.04));pointer-events:none}.hero-inner{position:relative;z-index:2;text-align:center;background:rgba(255,255,255,.95);border:1px solid rgba(255,255,255,.48);padding:clamp(38px,5vw,72px) clamp(35px,8vw,128px) clamp(34px,4vw,58px);box-shadow:0 15px 80px rgba(0,0,0,.13)}.eyebrow{display:flex;align-items:center;justify-content:center;gap:13px;font-size:10px;font-weight:700;letter-spacing:.3em}.eyebrow-line{height:1px;width:26px;background:currentColor}.hero h1{font-family:Manrope,Arial,sans-serif;font-size:clamp(88px,15.5vw,228px);line-height:.93;letter-spacing:-.095em;margin:25px 0 15px;padding-right:.1em;font-weight:800}.hero-inner p{margin:0;font-size:clamp(13px,1.2vw,17px);letter-spacing:.04em}.hero-bottom{position:absolute;z-index:2;bottom:0;left:0;width:100%;height:88px;padding:0 clamp(24px,5vw,78px);display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.16em}.hero-bottom a{display:flex;gap:18px;align-items:center}.hero-bottom a span{font-size:22px;line-height:1}.intro{min-height:510px;max-width:1360px;margin:auto;padding:clamp(95px,12vw,175px) clamp(26px,7vw,100px) clamp(90px,11vw,150px);display:grid;grid-template-columns:1fr minmax(0,1.6fr);column-gap:55px;align-items:start}.section-index{font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.intro h2{font-family:Manrope,Arial,sans-serif;font-size:clamp(46px,6.5vw,94px);line-height:1.04;letter-spacing:-.07em;font-weight:500;margin:-17px 0 24px}.intro h2 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.075em}.intro p{grid-column:2;max-width:500px;color:var(--muted);line-height:1.7;font-size:15px;margin:0}.projects{border-top:1px solid var(--line);padding:120px 24px 130px}.projects-heading{text-align:center;margin-bottom:100px}.projects-heading h2{font-family:Manrope,Arial,sans-serif;font-size:clamp(52px,7vw,110px);font-weight:500;line-height:1;margin:18px 0;letter-spacing:-.075em}.projects-heading p{font-size:15px;color:var(--muted);margin:0}.project-list{display:flex;flex-direction:column;align-items:center;gap:clamp(120px,13vw,210px)}.project{width:min(100%,650px);margin:0}.project-image-wrap{width:100%;overflow:hidden;background:#eeeeec;aspect-ratio:4/5}.project img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.75,.25,1)}.project:hover img{transform:scale(1.035)}.project:nth-child(2) .project-image-wrap{aspect-ratio:4/5}.project:nth-child(3) .project-image-wrap{aspect-ratio:4/5}.project:nth-child(4) .project-image-wrap{aspect-ratio:4/5}.project:nth-child(4) img{object-position:65% center}.project figcaption{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:8px 16px;padding-top:18px;border-top:1px solid var(--ink);margin-top:14px}.project-number{font-size:10px;color:var(--muted);font-weight:700;letter-spacing:.16em}.project-name{grid-column:1;font-family:Manrope,Arial,sans-serif;font-size:clamp(24px,3vw,34px);letter-spacing:-.06em}.project-type{grid-column:2;grid-row:2;align-self:end;color:var(--muted);font-size:12px}.reference-note{text-align:center;margin:120px 0 0;color:#8a8a8a;font-size:11px;letter-spacing:.025em}.footer{min-height:255px;background:#202020;color:#ffffff;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:20px;padding:55px clamp(24px,5vw,78px)}.footer>div{display:flex;flex-direction:column;align-items:start;gap:8px}.footer-wordmark{font-family:Manrope,Arial,sans-serif;font-size:clamp(38px,5vw,68px);font-weight:800;letter-spacing:-.09em;line-height:.9}.footer small{font-size:11px;color:#bcbcbc}.footer a,.footer-year{font-size:11px;text-transform:uppercase;letter-spacing:.16em}.footer-year{justify-self:end;color:#bcbcbc}@keyframes pattern-in{from{transform:scale(1.29) rotate(-4deg);opacity:.55}to{transform:scale(var(--pattern-scale,1.16)) rotate(-4deg);opacity:1}}@media(max-width:700px){.site-header{height:76px}.brand{font-size:12px}.site-header nav{gap:17px;font-size:10px}.hero{min-height:550px}.hero-pattern{background-size:700px 342px}.hero-inner{width:calc(100% - 48px);padding:35px 18px 38px}.hero h1{font-size:clamp(72px,18vw,125px);margin:22px 0 14px}.eyebrow{font-size:8px;letter-spacing:.2em}.hero-bottom{height:70px;font-size:9px;letter-spacing:.08em}.intro{min-height:auto;display:block;padding:95px 28px 110px}.intro h2{margin:29px 0 27px}.intro p{font-size:14px}.projects{padding:95px 20px 110px}.projects-heading{margin-bottom:72px}.projects-heading p{font-size:13px}.project-list{gap:110px}.project figcaption{gap:4px 10px}.project-type{font-size:10px}.reference-note{margin-top:90px}.footer{min-height:220px;grid-template-columns:1fr auto;align-items:end;padding-top:50px;padding-bottom:40px}.footer-year{grid-column:2;grid-row:1;align-self:start}.footer a{grid-column:2;grid-row:1;align-self:end}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-pattern{animation:none}.project img{transition:none}}

.site-header{background:rgba(255,255,255,.94)}.hero-bottom{background:rgba(255,255,255,.94)}
/* El mosaico une portada y estudio antes de fundirse con el blanco. */
.opening{position:relative;overflow:hidden;background:#fff}
.opening-pattern{position:absolute;inset:-12%;background-image:url('assets/copacabana.svg');background-repeat:repeat;background-position:center top;background-size:1080px 528px;transform:scale(var(--pattern-scale,1.16)) rotate(-4deg);transform-origin:center;will-change:transform;animation:pattern-in 1.4s cubic-bezier(.2,.8,.2,1) both}
.opening .hero{background:transparent;overflow:visible}
.opening .hero::after{display:none}
.opening .hero-bottom{background:rgba(255,255,255,.76)}
.opening .intro{position:relative;z-index:1;padding-top:clamp(190px,18vw,250px)}
.opening .intro::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(255,255,255,.85) 170px,#fff 270px)}
.opening .intro>*{position:relative;z-index:1}
@media(max-width:700px){.opening-pattern{background-size:800px 391px}.opening .intro{padding-top:190px}.opening .intro::before{background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(255,255,255,.88) 130px,#fff 230px)}}
@media(prefers-reduced-motion:reduce){.opening-pattern{animation:none}}
/* El fundido ocupa todo el ancho, también fuera de la columna de texto. */
.opening-fade{position:absolute;left:0;right:0;top:max(100svh,620px);bottom:0;background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(255,255,255,.86) 170px,#fff 270px)}
.opening .intro::before{display:none}
@media(max-width:700px){.opening-fade{top:max(100svh,550px);background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(255,255,255,.9) 135px,#fff 230px)}}
/* Portada y proyectos comparten el mismo lienzo para evitar un corte visual. */
.opening-pattern{top:-120px;bottom:auto;height:calc(100svh + 520px)}
.opening .projects{position:relative;z-index:1;background:transparent;border-top:0;padding-top:clamp(250px,23vw,320px)}
@media(max-width:700px){.opening-pattern{top:-95px;height:calc(100svh + 430px)}.opening .projects{padding-top:250px}}
