/* Scroll choreography: all content stays readable without JavaScript. */
.hero-sequence{position:relative;background:var(--ink)}
.hero{min-height:650px;max-height:none}
.hero-heading{display:contents}
.hero h1{font-size:inherit}
.hero-line{position:absolute;left:0;top:42%;width:100%;text-align:center;font-size:8.1vw;letter-spacing:-.065em;line-height:1;z-index:3;transform:none}
.hero-portrait{z-index:2;left:37%;width:28%;height:67%;top:17%;transform:none}
.hero-portrait img{filter:grayscale(1) brightness(.88);transform:scale(1.03)}
.hero-portrait:after{background:linear-gradient(0deg,var(--ink),transparent 30%)}
.hero h1 .hero-destination{position:absolute;z-index:4;top:57%;left:9%;margin:0;font-size:clamp(80px,10.2vw,165px);line-height:.73;letter-spacing:-.05em;text-align:center;transform-origin:center;white-space:nowrap}
.hero-destination>span{display:block;margin-left:1.2em}
.hero-bottom{bottom:65px}.hero-footnote{bottom:18px}
.hero-bottom p{max-width:290px}
.motion-on .hero-sequence{height:205svh}
.motion-on .hero{position:sticky;top:0;height:100svh}
.motion-on .hero-line{transform:translateY(var(--hero-y,0px)) scale(var(--hero-scale,1));filter:blur(var(--hero-blur,0px));opacity:var(--hero-opacity,1);z-index:var(--hero-layer,3);will-change:transform,filter}
.motion-on .hero-portrait{transform:translateX(var(--photo-x,0px)) scale(var(--photo-scale,1));will-change:transform}
.motion-on .hero-destination{transform:translate(var(--destination-x,0px),var(--destination-y,0px)) scale(var(--destination-scale,1));will-change:transform}
.motion-on .hero-top{opacity:var(--hero-top-opacity,1)}
@keyframes portrait-open{from{clip-path:inset(100% 0 0 0);filter:blur(9px)}to{clip-path:inset(0);filter:blur(0)}}
@keyframes title-in{from{translate:0 80px;opacity:0}to{translate:0 0;opacity:1}}
.motion-on .hero-portrait img{animation:portrait-open 1.5s cubic-bezier(.16,1,.3,1) both}
.motion-on .hero-line{animation:title-in 1.25s .1s cubic-bezier(.16,1,.3,1) both}
.motion-on .hero-destination{animation:title-in 1.5s .3s cubic-bezier(.16,1,.3,1) both}
.intro{position:relative;z-index:5;border-radius:34px 34px 0 0}
.motion-on .reveal{transition:none;opacity:1;transform:none}
.reveal .word-mask{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.14em;margin-bottom:-.14em}
.reveal .word-mask>span{display:inline-block}
.motion-on .reveal.is-waiting .word-mask>span{transform:translateY(115%) rotate(4deg)}
.motion-on .reveal.is-seen .word-mask>span{animation:word-rise .95s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--word-index,0)*45ms)}
@keyframes word-rise{from{transform:translateY(115%) rotate(4deg)}to{transform:translateY(0) rotate(0)}}
.motion-on .reveal.is-waiting:not([data-words]){opacity:0;transform:translateY(55px)}
.motion-on .reveal.is-seen:not([data-words]){animation:panel-rise 1.1s cubic-bezier(.16,1,.3,1) both}
@keyframes panel-rise{from{opacity:0;transform:translateY(55px)}to{opacity:1;transform:translateY(0)}}
.about-photo{overflow:hidden}
.motion-on .about-photo.is-seen img{animation:photo-rise 1.5s cubic-bezier(.16,1,.3,1) both}
@keyframes photo-rise{from{clip-path:inset(100% 0 0 0);transform:scale(1.13)}to{clip-path:inset(0);transform:scale(1)}}
.manifesto{padding:0;overflow:visible}
.manifesto-stage{overflow:hidden;position:relative;background:var(--ink);color:var(--paper)}
.climb-grid{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;min-height:600px;gap:4%}
.climb-copy{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;padding:55px 0 65px}
.climb-copy h2{font-size:clamp(46px,5.4vw,88px);line-height:1;letter-spacing:-.05em}
.climb-copy h2 em{font-size:1.15em;color:var(--olive)}
.climb-lead{font-size:clamp(25px,2.6vw,40px);letter-spacing:-.04em;line-height:1.15;color:#d3d5c8}
.climb-copy p:not(.climb-lead){max-width:310px;font-size:13px;margin:25px 0;color:#b5b8aa}
.climb-copy .text-link{font-size:12px}
.stair-art{width:100%;max-width:650px;justify-self:center}
.stair-art svg{display:block;width:100%;overflow:visible}
.stair-top,.stair-front{font-family:var(--sans);font-size:86px;font-weight:900;letter-spacing:-.065em;fill:var(--paper)}
.stair-front{font-size:76px;fill:url(#step-shade)}
.climb-caption{display:flex;justify-content:space-between;border-top:1px solid #ffffff30;padding-top:22px;font-size:9px;letter-spacing:.15em}
.motion-on .manifesto{height:190svh}
.motion-on .manifesto-stage{position:sticky;top:0;min-height:100svh;padding-top:35px;padding-bottom:30px;display:flex;flex-direction:column;justify-content:space-between}
.motion-on .climb-grid{min-height:0;flex:1}
.motion-on .stair-art{max-width:min(44vw,71svh);transform:translateY(var(--stair-drift,0px)) rotate(var(--stair-rotate,0deg));will-change:transform}
.motion-on .stair-step{opacity:var(--step-opacity,1);transform:translate(var(--step-x,0px),var(--step-y,0px));will-change:transform,opacity}
.topic{transition:background .4s,padding .4s}
.topic:hover,.topic[open]{background:#dfe2ce;padding-left:22px;padding-right:22px}
.topic[open] .topic-body{animation:panel-rise .45s ease both}
.button{position:relative;overflow:hidden;border-radius:2px}
.button:hover{background:#d6e7a5;box-shadow:0 12px 38px #00000014}
.button span{transition:transform .4s cubic-bezier(.16,1,.3,1)}
.button:hover span{transform:rotate(45deg)}
.contact-arrow{transition:transform .6s}.contact-heading:hover .contact-arrow{transform:rotate(45deg)}
.process-grid{display:block;border:0;position:relative}
.process-step,.process-step+.process-step{display:grid;grid-template-columns:.7fr 1.3fr;padding:45px 5%;border:1px solid var(--line);border-radius:14px;background:#e3e4d7;min-height:310px;margin-bottom:22px;box-shadow:0 -12px 40px #191a1708}
.process-step:nth-child(2){background:#d5dac3}.process-step:nth-child(3){background:#c2cba9}
.process-step .step-number{font-size:clamp(100px,16vw,220px);line-height:.85;color:#697554}
.process-step .eyebrow{margin:0 0 18px}.process-step h3{font-size:clamp(30px,3.8vw,57px)}
.process-step p:not(.eyebrow){min-height:0;max-width:530px}
.motion-on .process-step{position:sticky;top:30px}
.motion-on .process-step:nth-child(2){top:56px}.motion-on .process-step:nth-child(3){top:82px}
.motion-toggle{position:fixed;bottom:20px;left:20px;z-index:24;padding:10px 14px;border:1px solid #8d9275;border-radius:30px;background:var(--ink);color:var(--paper);font-size:10px;display:flex;gap:6px}
.motion-toggle:before{content:'';width:5px;height:5px;background:var(--olive);border-radius:50%;align-self:center}
.motion-toggle[aria-pressed=true]:before{background:#898b82}
.reading-progress{position:fixed;left:0;top:0;height:3px;width:100%;transform:scaleX(var(--reading,0));transform-origin:left;background:var(--olive);z-index:60;pointer-events:none}
.motion-off .word-mask>span{transform:none!important;animation:none!important}
@media(min-width:761px){.about-photo{position:sticky;top:35px}.about-grid{align-items:start}.contact-heading h2{transition:letter-spacing .7s}.contact-heading:hover h2{letter-spacing:-.035em}}
@media(max-width:760px){
 .hero{min-height:650px;height:100svh}.hero-portrait{width:55%;height:53%;left:29%;top:20%}
 .hero-line{top:43%;font-size:8.1vw}.hero h1 .hero-destination{left:6%;top:56%;font-size:19vw}
 .hero-bottom{bottom:75px;gap:15px}.hero-bottom p{font-size:11px}.hero-footnote{bottom:22px}
 .hero-bottom .button{padding:14px 17px;min-width:235px}.hero-top{top:105px}
 .motion-on .hero-sequence{height:175svh}.intro{border-radius:22px 22px 0 0}
 .climb-grid{grid-template-columns:1fr;min-height:0;gap:0}.climb-copy{padding:35px 0 15px;display:block}.climb-copy h2{font-size:45px}.climb-copy>div{margin-top:25px}.climb-lead{font-size:24px}.climb-lead br{display:none}.climb-copy p:not(.climb-lead){font-size:12px;margin:15px 0;max-width:320px}
 .stair-art{width:95%;max-width:420px}.motion-on .stair-art{max-width:min(90vw,53svh)}
 .motion-on .manifesto{height:190svh}.motion-on .manifesto-stage{height:auto;min-height:100svh;padding:25px var(--gutter)}
 .motion-on .climb-copy{padding:22px 0 0}.motion-on .climb-copy h2{font-size:36px}.motion-on .climb-copy>div{margin-top:18px}.motion-on .climb-copy .climb-lead{font-size:20px}.motion-on .climb-copy .text-link{display:none}.motion-on .climb-copy p:not(.climb-lead){margin:12px 0 0}
 .climb-caption{font-size:7px;padding-top:15px}.topic:hover,.topic[open]{padding-left:10px;padding-right:10px}
 .process-step,.process-step+.process-step{grid-template-columns:55px 1fr;gap:20px;padding:28px 20px;min-height:320px;margin-bottom:18px;border:1px solid var(--line)}.process-step .step-number{font-size:60px}.process-step h3{font-size:28px}.process-step p:not(.eyebrow){font-size:12px}
 .motion-toggle{left:12px;bottom:12px;padding:8px 10px;font-size:8px}.floating-contact{max-width:180px;font-size:9px;gap:9px;padding:12px}
}
@media(max-height:650px){.motion-on .hero-sequence,.motion-on .manifesto{height:auto}.motion-on .hero,.motion-on .manifesto-stage{position:relative}.motion-on .process-step{position:relative;top:auto!important}}
@media print{.motion-toggle,.reading-progress{display:none}.hero-sequence,.motion-on .hero-sequence,.motion-on .manifesto{height:auto}.motion-on .hero,.motion-on .manifesto-stage,.motion-on .process-step{position:relative;top:auto}.stair-step{opacity:1!important;transform:none!important}.reveal{opacity:1!important}.word-mask>span{transform:none!important;animation:none!important}}

.motion-on .hero-portrait img{filter:grayscale(1) brightness(.88)}
@keyframes portrait-open{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}
@media(prefers-reduced-motion:reduce){.motion-on .hero-line{transform:translateY(var(--hero-y,0px)) scale(var(--hero-scale,1))!important}.motion-on .hero-portrait{transform:translateX(var(--photo-x,0px)) scale(var(--photo-scale,1))!important}}

.motion-toggle{display:none}.motion-on .motion-toggle,.motion-off .motion-toggle{display:flex}

/* The signature stays visible; the rest of the header scrolls away. */
.site-header:before{content:'';flex:1}
.site-header .wordmark{position:fixed;top:20px;left:calc(var(--gutter) - 12px);padding:12px;z-index:40;border-radius:4px;transition:background .25s,box-shadow .25s;color:var(--paper)}
.has-scrolled .site-header .wordmark{background:#191a17ed;box-shadow:0 3px 20px #00000012;backdrop-filter:blur(12px)}
@media(max-width:760px){.site-header .wordmark{top:12px}}
@media print{.site-header .wordmark{display:none}}
@media(min-height:651px){
 .motion-on .process-step{top:96px}
 .motion-on .process-step:nth-child(2){top:122px}
 .motion-on .process-step:nth-child(3){top:148px}
 .motion-on .manifesto-stage{padding-top:100px}
}
@media(min-width:761px){.about-photo{top:96px}}
@media(max-width:760px){
 html{scroll-padding-top:90px}
 .motion-on .manifesto-stage{padding-top:86px}
 .motion-on .stair-art{max-width:min(90vw,46svh)}
}

/* Lucía's own words, with the same editorial hierarchy. */
.hero h1 .hero-service{position:absolute;top:134px;right:var(--gutter);font-family:var(--sans);font-size:11px;font-weight:400;letter-spacing:.04em;line-height:1.65;text-align:right;z-index:5}
.service-context{display:grid;grid-template-columns:1fr 1fr;gap:8%;border-top:1px solid var(--line);margin-top:50px;padding-top:35px}
.service-context .eyebrow{font-size:8px;color:var(--muted);margin-bottom:16px}
.service-context h3{font-size:clamp(26px,3vw,42px);letter-spacing:-.04em;line-height:1.15;margin-bottom:18px}
.service-context article>p:last-child{font-size:14px;color:#575a50;max-width:510px;line-height:1.8}
.process-intro{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:start;padding-bottom:50px}
.process-intro>p:first-child{font-size:15px;color:#575a50;max-width:450px}
.process-intro>p:last-child{font-size:clamp(27px,3.3vw,48px);line-height:1.15;letter-spacing:-.035em}
.process-intro em{font-size:1.15em}
.process-principle{font-size:clamp(28px,4vw,58px);line-height:1.15;letter-spacing:-.04em;padding:45px 0 20px}
.process-principle em{font-size:1.15em}
.approach-premise{font-size:clamp(29px,3.2vw,46px);line-height:1.15;margin-top:40px;letter-spacing:-.04em;color:var(--olive)}
.approach-premise em{font-size:1.25em}
.approach-premise+.approach-intro{margin-top:25px}
.reveal em .word-mask{padding-right:.12em;margin-right:-.12em;padding-left:.04em;margin-left:-.04em}
.desktop-nav{gap:24px}
@media(max-width:1100px) and (min-width:761px){.desktop-nav{gap:16px;font-size:11px}.site-header{gap:25px}}
@media(max-width:760px){
 .hero h1 .hero-service{top:143px;right:auto;left:var(--gutter);font-size:9px;text-align:left;letter-spacing:.02em;line-height:1.4}
 .hero h1 .hero-service br{display:none}.hero h1 .hero-service{max-width:285px}
 .service-context{grid-template-columns:1fr;gap:30px;margin-top:35px;padding-top:28px}
 .service-context h3{font-size:29px}.service-context article>p:last-child{font-size:13px}
 .process-intro{grid-template-columns:1fr;gap:25px;padding-bottom:35px}.process-intro>p:first-child{font-size:14px}.process-intro>p:last-child{font-size:30px}
 .process-principle{font-size:29px;padding:30px 0 16px}.approach-premise{font-size:33px;margin-top:30px}
 .mobile-menu>a{font-size:clamp(25px,7vw,45px)}
}
