@font-face{font-family:Montserrat;src:url('assets/fonts/Montserrat-Regular.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Montserrat;src:url('assets/fonts/Montserrat-Medium.woff2') format('woff2');font-weight:500;font-display:swap}@font-face{font-family:Montserrat;src:url('assets/fonts/Montserrat-SemiBold.woff2') format('woff2');font-weight:600 900;font-display:swap}
:root{--sans:Montserrat,Arial,sans-serif;--mono:Montserrat,Arial,sans-serif}
.header{gap:30px}.brand img{width:205px;height:auto}.header.dark .brand img{filter:none}.desktop-nav{align-items:center;gap:28px}.desktop-nav a,.header-contact{display:flex;align-items:center;min-height:44px;line-height:24px;position:relative;font-size:14px;font-weight:500}.desktop-nav a:after{content:'';position:absolute;bottom:5px;left:0;width:100%;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .2s}.desktop-nav a:hover:after,.desktop-nav a.is-active:after{transform:scaleX(1)}.header-contact{border:1px solid var(--line);padding:6px 14px;gap:12px;margin-left:0}.header-contact:hover,.header-contact.is-active{border-color:var(--orange)}
.hero h1{font-size:clamp(53px,7.1vw,119px);letter-spacing:-.065em;line-height:1.04;max-width:90%}.experience .hero{transform:translateX(var(--intro-x,0px));opacity:var(--intro-opacity,1)}.experience .dimension-sticky{transform:translateY(var(--detail-y,0px))}.eyebrow,.small-label{font-size:12px;font-weight:500;letter-spacing:.04em}.hero-bottom p{font-size:18px}.hero-index{line-height:1.9}.dimension-current p{font-size:17px;max-width:420px}.dimension-current ul{font-size:14px}.dimension-current{max-width:440px}.dimension-copy h2{font-size:clamp(24px,2.3vw,35px)}.dimension-current h3{font-size:clamp(33px,3.2vw,48px)}.dimension-tabs button{font-size:23px}.dimension-tabs small{font-size:12px}.model-controls{justify-content:flex-end}
.lens-story{height:auto;padding-bottom:0}.lens-sticky{position:relative;top:0;height:auto;min-height:0}.lens-track{display:block;transform:none}.lens-window{overflow:visible}.lens-panel{padding:35px 0 70px;min-height:620px;scroll-margin-top:100px}.lens-image{height:480px}.lens-panel:nth-child(even) .lens-image{order:2}.lens-copy h3{font-size:clamp(36px,4vw,62px);letter-spacing:-.055em}.lens-copy p{font-size:18px;line-height:1.65}.lens-tabs button{font-size:13px}.lens-bottom>span{font-size:12px}
body.scroll-lenses .lens-story{height:420svh}body.scroll-lenses .lens-sticky{position:sticky;top:var(--header-height);height:calc(100svh - var(--header-height));min-height:0}body.scroll-lenses .lens-window{overflow:hidden;flex:1}body.scroll-lenses .lens-track{display:flex;height:100%}body.scroll-lenses .lens-panel{padding:0;min-height:0;flex:0 0 100%}body.scroll-lenses .lens-image{height:100%}.lens-image video{width:100%;height:100%;object-fit:cover}.lens-image>span{pointer-events:none;bottom:50px;font-size:11px}.metric-scan:after{content:'';position:absolute;top:0;bottom:0;left:30%;width:2px;background:#f07742;box-shadow:0 0 22px 7px #f0774255;pointer-events:none;animation:scan 8s linear infinite alternate}.territory-lines:after{content:'';position:absolute;inset:12%;border:1px solid #efeee8aa;background:repeating-linear-gradient(0deg,transparent 0 49px,#efeee836 50px),repeating-linear-gradient(90deg,transparent 0 49px,#efeee836 50px);transform:skewY(-8deg);pointer-events:none}@keyframes scan{from{left:10%}to{left:90%}}
.project-caption{display:block}.project-caption h3{font-size:clamp(23px,2vw,30px);margin-bottom:9px}.project-caption>span{font-size:13px;display:block;text-align:left}.project-statement>p{font-size:clamp(28px,2.8vw,42px)}
.source-word{font-size:clamp(30px,3.5vw,54px);cursor:help;letter-spacing:-.045em}.source-ideas{top:27%;left:20%}.source-soluciones{top:27%;right:15%}.source-metrica{bottom:27%;left:20%}.source-territorio{bottom:27%;right:15%}.word-caption{font-size:11px;top:-28px}.synapse-target{font-size:clamp(75px,11vw,170px);letter-spacing:-.045em;line-height:1.1}.flying-letter{will-change:auto;line-height:1.1;letter-spacing:-.045em}.is-assembled .synapse-target{visibility:visible}.is-assembled .synapse-target>span:nth-child(5){color:var(--orange)}.is-assembled .flying-letters{visibility:hidden}.dimension-tooltip{position:absolute;bottom:3%;left:10%;right:10%;text-align:center;font-size:16px;line-height:1.5;min-height:24px;color:var(--muted)}.synapse-message{font-size:27px}.synapse-bottom>p:last-child{font-size:18px}.synapse-bottom{gap:6%;grid-template-columns:1fr 1.25fr}.person>span{font-size:12px}.people-grid>div>p{font-size:18px}.people h2{font-size:clamp(38px,4.3vw,65px)}
.footer-wordmark{font-size:inherit;padding:60px 0 0;line-height:0;top:0}.footer-wordmark img{width:100%;height:auto;display:block}.footer-bottom{font-size:11px}.footer-bottom>span:last-child{display:block}
@media(max-width:1100px){.header{gap:20px}.brand img{width:180px}.desktop-nav{gap:20px}.dimension-current p{font-size:16px}.dimension-current ul{font-size:13px}.source-ideas,.source-metrica{left:10%}.source-soluciones,.source-territorio{right:8%}}
@media(max-width:760px){.header{gap:15px}.brand img{width:155px}.header-contact{font-size:12px;padding:4px 9px}.hero h1{font-size:clamp(43px,9.2vw,70px);line-height:1.05;max-width:100%;margin-top:30px}.hero-topline .eyebrow{font-size:10px}.hero-bottom p{font-size:15px;max-width:330px}.hero-bottom .scroll-icon{display:none}.experience .hero{padding-bottom:28px}.model-hotspot{bottom:155px}.dimension-copy h2{font-size:22px}.dimension-current h3{font-size:31px}.dimension-current p{font-size:15px;line-height:1.5}.dimension-current .text-link{font-size:13px}.dimension-tabs button{font-size:15px}.dimension-tabs small{font-size:10px}.dimension-current{margin-top:18px}.dimension-tabs{gap:6px}.lens-sticky{padding-top:35px}.lens-tabs{flex-wrap:wrap;gap:12px}.lens-tabs button{font-size:12px}.lens-panel{display:flex;flex-direction:column;min-height:0;padding:20px 0 55px;gap:24px}.lens-panel:nth-child(even) .lens-image{order:0}.lens-image{width:100%;height:300px!important}.lens-copy h3{font-size:38px}.lens-copy p{font-size:17px}.lens-bottom{display:none}.source-word{font-size:clamp(19px,4.6vw,34px)}.source-ideas,.source-metrica{left:4%}.source-soluciones,.source-territorio{right:2%}.source-ideas,.source-soluciones{top:28%}.source-metrica,.source-territorio{bottom:28%}.word-caption{font-size:8px;top:-24px}.synapse-target{font-size:14vw}.dimension-tooltip{font-size:13px;left:0;right:0;bottom:0;min-height:40px}.synapse-bottom{grid-template-columns:1fr;gap:12px}.synapse-bottom>p:last-child{font-size:16px}.synapse-message{font-size:23px}.project-caption>span{font-size:12px;max-width:none}.footer-bottom{font-size:10px}.footer-wordmark{padding-top:38px}.people-grid>div>p{font-size:17px}}
@media(max-height:800px) and (min-width:761px){.dimension-current h3{font-size:32px}.dimension-current p{font-size:15px}.dimension-current ul{font-size:12px}.dimension-copy h2{font-size:23px}.dimension-current{margin-top:15px}.dimension-tabs button{font-size:20px}.lens-copy h3{font-size:39px}.lens-copy p{font-size:16px}.lens-tabs{margin:15px 0}.lens-sticky{padding-top:20px}.lens-sticky .section-kicker{padding-bottom:16px}}
@media(prefers-reduced-motion:reduce){.metric-scan:after{animation:none}.experience .hero,.experience .dimension-sticky{transform:none}.lens-image img{transform:none!important}}

@media(min-width:1101px){.source-ideas,.source-metrica{left:24%}.source-soluciones,.source-territorio{right:24%}.source-ideas,.source-soluciones{top:35%}.source-metrica,.source-territorio{bottom:35%}}
@media(max-width:360px){.brand img{width:130px}.header{gap:10px}.header-contact{font-size:11px;padding:4px 7px}.hero h1{font-size:39px}.dimension-current p{font-size:14px}}

@media(max-width:760px){.source-ideas,.source-soluciones{top:39%}.source-metrica,.source-territorio{bottom:39%}.source-word{font-size:clamp(20px,5.2vw,34px)}.contact-grid>*{min-width:0}.contact h2{font-size:clamp(42px,12vw,55px)}}

/* Diagram direction: courtyard and site, not photographic textures. */
.hero h1{font-weight:600;font-size:clamp(52px,6.4vw,108px);letter-spacing:-.055em}.hero-bottom p{max-width:470px}.experience-model{left:47%!important;top:20%!important;width:53%!important;height:75%!important}.experience.is-detail .experience-model{left:40%!important;top:14%!important;width:59%!important;height:76%!important}
.lens-sticky.section-pad{padding-left:clamp(24px,3vw,48px);padding-right:clamp(24px,3vw,48px)}.lens-panel{grid-template-columns:1.4fr 1fr;grid-template-rows:auto minmax(0,1fr);gap:25px 4%;align-items:stretch}.lens-panel>h3{grid-column:1/-1;grid-row:1;font-size:clamp(30px,3.5vw,56px);font-weight:500;letter-spacing:-.045em;line-height:1.12;margin:0}.lens-panel .lens-image{grid-row:2;grid-column:1;max-height:none;min-height:0}.lens-panel .lens-copy{grid-row:2;grid-column:2;align-self:end;padding-bottom:35px}.lens-panel:nth-child(even){grid-template-columns:1fr 1.4fr}.lens-panel:nth-child(even) .lens-image{grid-column:2}.lens-panel:nth-child(even) .lens-copy{grid-column:1}.lens-copy p{max-width:490px;font-size:19px}.lens-copy .eyebrow{display:block;margin-bottom:25px}.lens-tabs{margin:18px 0 24px}.lens-bottom{margin-top:16px}.lens-image>span{bottom:48px}
@media(max-width:900px){.hero h1{font-size:7vw}.experience-model{left:39%!important;top:31%!important;width:61%!important;height:57%!important}.lens-copy p{font-size:17px}}
@media(max-width:760px){.lens-panel{display:flex;gap:23px}.lens-panel>h3{font-size:clamp(28px,7vw,40px);line-height:1.15}.lens-panel .lens-copy{padding-bottom:0;align-self:stretch}.lens-panel .lens-image{order:0}.lens-panel:nth-child(even) .lens-image{order:0}.lens-copy .eyebrow{margin-bottom:15px}.lens-copy p{font-size:17px}}
@media(max-width:600px){.hero h1{font-size:10.4vw}.experience-model{left:-4%!important;top:32%!important;width:108%!important;height:45%!important}.experience.is-detail .experience-model{left:-5%!important;top:49%!important;width:110%!important;height:38%!important}.hero-bottom p{font-size:14px}.model-hotspot{bottom:155px}.lens-panel>h3{white-space:normal}}
@media(max-height:800px) and (min-width:761px){.lens-panel>h3{font-size:36px}.lens-copy p{font-size:16px}.lens-copy .eyebrow{margin-bottom:15px}.lens-panel .lens-copy{padding-bottom:15px}}

.lens-panel .lens-copy{align-self:stretch;display:flex;flex-direction:column;justify-content:flex-end}.lens-copy .eyebrow{margin-bottom:auto;padding-top:8px}.lens-copy p{padding-top:30px}.lens-copy .text-link{align-self:flex-start}@media(max-width:760px){.lens-copy .eyebrow{margin-bottom:15px;padding-top:0}.lens-copy p{padding-top:0}}
