/* V3 — inhabit the architecture. The viewport becomes a continuous stage. */
.scene canvas{touch-action:pan-y}
.scene-action,.motion-toggle{font-size:14px}
.scene-action{border:0;border-bottom:1px solid #91b0b4;padding:8px 2px;gap:10px}
.scene-action:hover,.scene-action[aria-pressed=true]{background:transparent;color:var(--teal)}
.scene .scene-label{display:none}
.scene:before{opacity:.6}
.spatial-opening{--journey:0;position:relative;height:190svh;min-height:1200px;background:#edf3f2;isolation:isolate}
.portal-sticky{height:calc(100svh - var(--header-height,100px));min-height:650px;max-height:1100px;position:sticky;top:var(--header-height,100px);overflow:hidden;background:radial-gradient(ellipse at 70% 45%,#deece9 0, #f0f5f3 55%,#f9faf7 100%)}
.portal-night{position:absolute;inset:0;background:radial-gradient(ellipse at 65% 35%,#174b53,#09252e 75%);opacity:clamp(0,calc((var(--journey) - .16)*2.5),1);z-index:0}
.portal-sticky>.scene-hero{position:absolute;inset:0;width:100%;height:100%;margin:0;z-index:1;overflow:visible}
.portal-sticky .scene:before,.portal-sticky .scene-caption{display:none}
.portal-first{position:relative;padding:55px var(--gutter) 110px;width:57%;z-index:2;pointer-events:none;opacity:clamp(0,calc(1 - var(--journey)*2.8),1);transform:translateY(calc(var(--journey)*-65px))}
.portal-first .eyebrow{font-size:13px;margin-bottom:30px;color:#345b61}
.portal-first h1{font-size:clamp(65px,6.7vw,106px);font-weight:500;letter-spacing:-.065em;line-height:1.025;margin:0 0 28px}
.portal-first h1 span{color:var(--teal)}
.portal-first p{font-size:16px;line-height:1.8;max-width:470px;color:#48656d;margin:0 0 27px}
.portal-first a{pointer-events:auto}
.portal-first .hero-actions{gap:25px;flex-wrap:wrap}
.portal-second{position:absolute;z-index:2;left:var(--gutter);bottom:125px;color:white;opacity:clamp(0,calc((var(--journey) - .42)*4),1);transform:translateY(calc((1 - var(--journey))*50px));pointer-events:none}
.portal-second .eyebrow{color:#88d2d5;font-size:13px}
.portal-second h2{font-size:clamp(60px,6.5vw,95px);font-weight:500;letter-spacing:-.06em;line-height:1.07;margin:28px 0}
.portal-second h2 span{color:#83d8db}
.portal-second a{pointer-events:auto;color:#c0dedf}
.portal-second[inert] a{pointer-events:none}
.portal-rail{position:absolute;right:var(--gutter);top:38px;bottom:135px;z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:24px;font-size:12px;letter-spacing:.07em;line-height:1.7;color:#4d7076;pointer-events:none}
.portal-rail i{height:150px;width:1px;background:linear-gradient(to bottom,#00b3be calc(var(--journey)*100%),#96b2b0 0)}
.portal-baseline{position:absolute;left:var(--gutter);right:var(--gutter);bottom:0;height:66px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #b4ccca;z-index:3;color:#4f6c73;font-size:12px;letter-spacing:.055em}
.portal-baseline a{font-size:14px;letter-spacing:0}
.portal-sticky .scene-action{left:auto;right:calc(var(--gutter) + 110px);bottom:80px;z-index:4;pointer-events:auto}
.portal-sticky .motion-toggle{right:var(--gutter);bottom:80px;z-index:4;background:none;color:#345d65}
[data-chapter="1"] .portal-rail,[data-chapter="1"] .portal-baseline,[data-chapter="1"] .scene-action,[data-chapter="1"] .motion-toggle{color:#b6d9dc;border-color:#53757c}
.spatial-opening+.manifesto{position:relative;background:#fff;z-index:2;padding-top:100px;padding-bottom:90px}
.spatial-opening+.manifesto h2{max-width:1180px;font-size:clamp(42px,4.8vw,71px)}

/* A panoramic analysis and a monumental assembly: different even without motion. */
.spatial-service{position:relative;overflow:clip;background:#eef3f0}
.spatial-service-head{position:relative;z-index:2;padding:35px var(--gutter) 0;display:grid;grid-template-columns:1.8fr 1fr;gap:5vw;align-items:end}
.spatial-service .breadcrumb{margin-bottom:40px}
.spatial-service .eyebrow{margin-bottom:25px;color:var(--teal)}
.spatial-service h1{font-size:clamp(52px,4.7vw,70px);line-height:1.07;font-weight:500;letter-spacing:-.055em;margin:0}
.spatial-service h1 span{color:var(--teal)}
.spatial-service-intro{padding-bottom:5px;max-width:400px}
.spatial-service-intro p{font-size:16px;line-height:1.85;color:#49636a;margin:0 0 25px}
.service-landscape{position:relative;margin-top:-12px;height:560px}
.service-landscape>.scene{position:absolute;inset:0;width:100%;height:100%;margin:0}
.service-landscape .scene:before{inset:0 12% 10%}
.service-landscape .scene-caption{bottom:65px;left:var(--gutter);width:auto;font-size:12px;text-align:left;letter-spacing:.08em}
.service-landscape .scene-action{bottom:18px;left:var(--gutter)}
.service-landscape .motion-toggle{right:var(--gutter);bottom:18px}
.landscape-caption{position:absolute;left:var(--gutter);right:var(--gutter);top:44%;display:flex;justify-content:space-between;pointer-events:none;color:#5f7e80;font-size:12px;letter-spacing:.12em;z-index:2}
.activation-opening{background:radial-gradient(ellipse at 60% 65%,#1c4c54,#09252e 73%);color:white}
.activation-opening .breadcrumb{color:#a5c2c9}
.activation-opening h1 span{color:#6cced2}
.activation-opening .eyebrow{color:#6cd5d9}
.activation-opening .spatial-service-intro p{color:#b9cfd4}
.activation-opening .service-landscape{height:590px;margin-top:0}
.activation-opening .scene:before{background:radial-gradient(ellipse,#2d656850,transparent 67%)}
.activation-opening .scene-caption,.activation-opening .scene-action,.activation-opening .motion-toggle{color:#a5d5d9;border-color:#5f878c;background:none}
.activation-opening .landscape-caption{color:#86b5bc}
.service-rgpd-activate .detail-meta{background:#123640;color:#9dc7ce;border-color:#3b5961}
.analysis-scope{background:#fff}
.analysis-body{gap:10vw}
.analysis-fit{background:#edf4f1;border-top:3px solid var(--bright)}
.analysis-process{background:linear-gradient(125deg,#09252e,#1b424a)}
.building-scope{padding-top:110px;padding-bottom:80px}
.building-scope>.scope-list{gap:0}
.building-scope .scope-item{padding:28px 30px 25px;border-top:2px solid #96b8b8;background:#f2f6f4}
.building-scope .scope-item:nth-child(2){margin-top:40px;border-color:#408d96;background:#e7f1ed}
.building-scope .scope-item:nth-child(3){margin-top:80px;border-color:#00b3be;background:#dcebe7}
.building-process{background:#edf4f1}
.building-process .process-item{transition:border-color .5s}
.building-process .process-item.is-visible{border-left-color:#00b3be}

/* Other pages have their own pace and spatial gesture. */
.page-hero .scene{height:580px}
.detail-hero .scene{height:570px}
.about-hero{min-height:720px;grid-template-columns:1.05fr 1.1fr;background:linear-gradient(120deg,#fff 25%,#e3efec)}
.about-hero .scene{height:630px;margin-left:-25px;width:calc(100% + 25px)}
.services-hero .scene{height:580px}
.service-dpo-action .detail-hero{min-height:680px}
.service-consultoria .detail-hero{min-height:680px}
.service-consultoria .detail-hero .scene{height:590px;margin-left:-25px}
.rgpd-hero{min-height:650px}
.editorial-hero{display:block;position:relative;min-height:850px;background:#e4eeea;overflow:clip;padding-top:35px;padding-bottom:0}
.editorial-hero .page-hero-copy{position:relative;z-index:2;width:100%;padding:0;pointer-events:none}
.editorial-hero .page-hero-copy a{pointer-events:auto}
.editorial-hero .breadcrumb{margin-bottom:40px}
.editorial-hero h1{font-size:clamp(60px,7vw,105px);line-height:1.05;max-width:1000px;margin-bottom:22px}
.editorial-hero h1 br{display:none}
.editorial-hero h1 span{display:block;color:#347e7d}
.editorial-hero p{max-width:400px;font-size:16px}
.editorial-hero .scene{height:530px;width:85%;margin:-80px -8% 0 23%}
.editorial-hero .scene-caption{bottom:64px;left:22%;width:auto}
.editorial-hero .scene-action{left:22%;bottom:12px}
.editorial-hero .motion-toggle{right:15%;bottom:12px}
.visual-stage .scene{height:550px}
.method-visual .scene{height:420px}
.scene-method .scene-caption{bottom:65px}
.scene-method .motion-toggle{bottom:12px}
.scene-fallback{padding:80px 30px}
.portal-sticky .scene-unavailable .scene-fallback{left:50%;width:45%}
.scene-unavailable .scene-action,.scene-unavailable .motion-toggle{display:none}

@media(min-width:1700px){.portal-first{padding-top:80px}.portal-first h1{font-size:115px}.service-landscape{height:650px}}
@media(max-width:1150px){
  .portal-sticky{min-height:630px}.portal-first{width:62%;padding-top:60px}.portal-first h1{font-size:clamp(60px,7.5vw,85px)}.portal-first p{max-width:360px}.portal-first p br{display:none}.portal-rail{right:30px}.portal-second h2{font-size:70px}
  .spatial-service-head{gap:5vw;grid-template-columns:1.5fr 1fr}.spatial-service h1{font-size:54px}.service-landscape{height:500px}.activation-opening .service-landscape{height:530px}.landscape-caption{top:55%;font-size:12px;letter-spacing:.04em}.page-hero .scene{height:500px}.editorial-hero .scene{height:500px}.editorial-hero{min-height:790px}
}
@media(max-width:900px){
  .spatial-opening{min-height:1250px}.portal-first{width:68%;padding-top:55px}.portal-first h1{font-size:65px}.portal-first p{max-width:310px}.portal-first .hero-actions{display:flex;align-items:flex-start;flex-direction:column;gap:16px}.portal-rail{right:24px;top:30px}.portal-rail>span:first-child{max-width:105px}.portal-second h2{font-size:65px}.spatial-service-head{gap:35px}.spatial-service h1{font-size:45px}.service-landscape{height:470px}.activation-opening .service-landscape{height:490px}.landscape-caption{display:none}.service-landscape .scene-caption{font-size:12px}.about-hero{min-height:580px}.about-hero .scene{height:490px}.service-dpo-action .detail-hero,.service-consultoria .detail-hero{min-height:580px}.rgpd-hero{min-height:550px}.editorial-hero h1{font-size:72px}.editorial-hero .scene{width:95%;margin-left:15%;height:460px}.editorial-hero{min-height:760px}.editorial-hero .scene-caption{left:8%}.editorial-hero .scene-action{left:8%}
}
@media(max-width:700px){
  .spatial-opening{height:auto;min-height:0;overflow:hidden}.portal-sticky{position:relative;top:0;height:auto;min-height:0;max-height:none;display:flex;flex-direction:column}.portal-night,.portal-second,.portal-rail{display:none}
  .portal-first{width:100%;padding:37px var(--gutter) 0;order:0;opacity:1;transform:none;pointer-events:auto}.portal-first .eyebrow{font-size:12px;margin-bottom:25px;letter-spacing:.06em}.portal-first h1{font-size:clamp(46px,11.9vw,80px);line-height:1.035;max-width:600px;margin-bottom:22px}.portal-first p{font-size:16px;max-width:420px;line-height:1.75;margin-bottom:22px}.portal-first .hero-actions{flex-direction:row;align-items:center;gap:18px}.portal-first .button{padding:14px 18px}.portal-first .text-link{font-size:14px}
  .portal-sticky>.scene-hero{position:relative;inset:auto;order:1;height:390px;width:100%;margin:0;overflow:hidden}
  .portal-sticky .scene-action{left:var(--gutter);right:auto;bottom:12px}.portal-sticky .motion-toggle{right:var(--gutter);bottom:12px}
  .portal-baseline{position:relative;order:2;left:auto;right:auto;bottom:auto;margin:0 var(--gutter);height:65px;gap:20px;font-size:12px;letter-spacing:.02em}.portal-baseline>span:first-child{max-width:155px}.portal-baseline>span:last-child{display:none}.portal-baseline a{font-size:13px;text-align:right;max-width:120px}
  .spatial-opening+.manifesto{padding-top:60px;padding-bottom:55px}.spatial-opening+.manifesto h2{font-size:clamp(32px,8.3vw,49px)}
  .spatial-service-head{display:block;padding-top:24px}.spatial-service .breadcrumb{margin-bottom:32px}.spatial-service .eyebrow{font-size:12px;margin-bottom:20px}.spatial-service h1{font-size:clamp(36px,9.6vw,61px);line-height:1.12;margin-bottom:25px}.spatial-service-intro{max-width:100%;padding-bottom:0}.spatial-service-intro p{font-size:16px;line-height:1.8;margin-bottom:22px}
  .service-landscape{height:340px;margin-top:10px}.activation-opening .service-landscape{height:370px;margin-top:12px}.service-landscape .scene-caption{left:var(--gutter);right:var(--gutter);bottom:65px;font-size:12px;letter-spacing:.03em}.service-landscape .scene-action,.service-landscape .motion-toggle{bottom:10px}.scene-action{font-size:13px;gap:8px}.motion-toggle{font-size:13px}
  .building-scope{padding-top:55px;padding-bottom:45px}.building-scope .scope-item{padding:22px 20px;grid-template-columns:24px 1fr}.building-scope .scope-item:nth-child(2),.building-scope .scope-item:nth-child(3){margin-top:0}.building-scope .scope-item h3{margin-top:0;font-size:21px}
  .page-hero .scene,.detail-hero .scene,.about-hero .scene,.services-hero .scene,.service-consultoria .detail-hero .scene{height:350px;margin:0;width:100%}.about-hero,.service-dpo-action .detail-hero,.service-consultoria .detail-hero,.rgpd-hero{min-height:0}.editorial-hero{min-height:0;padding-top:24px}.editorial-hero .breadcrumb{margin-bottom:32px}.editorial-hero h1{font-size:clamp(42px,11.5vw,68px);margin-bottom:24px}.editorial-hero p{max-width:100%;margin-bottom:22px}.editorial-hero .scene{height:335px;width:calc(100% + 20px);margin:0 -10px}.editorial-hero .scene-caption,.editorial-hero .scene-action{left:10px}.editorial-hero .motion-toggle{right:10px}.editorial-hero .scene-caption{font-size:12px;bottom:65px}.editorial-hero .scene-action,.editorial-hero .motion-toggle{bottom:12px}
  .method-visual .scene{height:290px}.visual-stage .scene{height:340px}.portal-sticky .scene-unavailable .scene-fallback{left:0;width:100%}
}
@media(max-width:360px){.portal-first h1{font-size:43px}.portal-first .hero-actions{gap:17px}.portal-sticky>.scene-hero{height:330px}.spatial-service h1{font-size:33px}.service-landscape{height:310px}.activation-opening .service-landscape{height:330px}.scene-action{font-size:12px}.service-landscape .scene-caption{letter-spacing:0}.spatial-opening+.manifesto h2{font-size:31px}}
@media(prefers-reduced-motion:reduce){
  .spatial-opening{height:auto;min-height:0}.portal-sticky{position:relative;top:0}.portal-first{opacity:1;transform:none}.portal-night,.portal-second,.portal-rail{display:none}.portal-sticky .scene-action{color:#345d65}.portal-baseline{color:#4f6c73}.building-process .process-item{transition:none}
}

@media(min-width:701px){
 .portal-second{left:calc(30% + var(--portal-shift,0%));right:calc(30% - var(--portal-shift,0%));bottom:auto;top:24%;text-align:center;transform:translateY(calc((1 - var(--journey))*30px))}
 .portal-second h2{font-size:clamp(38px,4.2vw,66px);margin:24px 0;line-height:1.16}
 .portal-second h2 span{font-size:.78em}
 .portal-second .eyebrow{font-size:12px;letter-spacing:.06em}
 .portal-second .text-link{font-size:14px}
 .portal-rail{z-index:4;background:linear-gradient(90deg,transparent,#f1f6f355);padding-left:12px}
 [data-chapter="1"] .portal-rail{opacity:0}
 .portal-sticky .scene-action,.portal-sticky .motion-toggle{bottom:79px}
}

.service-landscape .scene-caption,.editorial-hero .scene-caption{transform:none}
.portal-sticky .scene-unavailable .scene-fallback{position:absolute;inset:10% 0 20% 50%;width:45%;color:#37757e}
[data-chapter="1"] .scene-unavailable .scene-fallback{color:#a9d5d8}
.analysis-observatory{position:sticky;top:120px;align-self:start}
.analysis-observatory .section-top{margin-bottom:0}
.analysis-observatory .scene{height:365px;width:100%;margin-top:8px}
.analysis-observatory .scene-caption{bottom:65px;color:#a4d1d5}
.analysis-observatory .motion-toggle{color:#acd3d7;bottom:12px}
.analysis-observatory .scene:before{background:radial-gradient(ellipse,#194753,transparent 70%)}
.analysis-process .process-item{min-height:260px;align-content:center}
.service-page .building-process{display:block;padding-bottom:80px}
.building-process .section-top{max-width:900px}
.building-process .section-top h2{font-size:clamp(36px,4vw,58px)}
.construction-sequence .scene{height:510px;margin-top:-45px}
.construction-sequence .scene-caption{bottom:65px}
.construction-sequence .motion-toggle{bottom:12px}
.construction-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;position:relative;margin-top:12px}
.construction-step{padding:24px 0 15px;text-align:left;background:none;border:0;border-top:1px solid #9ebeba;color:var(--ink);font-family:inherit;cursor:pointer}
.construction-number{font-size:14px;color:#47757c;display:block;margin-bottom:16px}
.construction-step strong{display:block;font-size:27px;font-weight:500;letter-spacing:-.04em;margin-bottom:14px}
.construction-description{font-size:16px;color:#587077;line-height:1.8;display:block}
.construction-step[aria-pressed=true]{border-top:3px solid var(--bright);padding-top:22px}
.construction-step[aria-pressed=true] strong,.construction-step:hover strong{color:var(--teal)}
@media(min-width:701px) and (max-height:760px){
 .portal-sticky{min-height:0;height:calc(100svh - var(--header-height,100px))}
 .portal-first{padding-top:26px;padding-bottom:100px}
 .portal-first .eyebrow{margin-bottom:18px}
 .portal-first h1{font-size:clamp(46px,5.8vw,77px);margin-bottom:18px}
 .portal-first p{margin-bottom:18px;font-size:15px;line-height:1.6}
 .portal-first .hero-actions{flex-direction:row;gap:18px}
 .portal-second{top:17%}.portal-second h2{font-size:clamp(34px,3.8vw,55px);margin:18px 0}
 .portal-rail{display:none}.analysis-observatory{position:static}
}
@media(max-width:700px){
 .portal-sticky .scene-unavailable .scene-fallback{inset:0;width:100%}
 .analysis-observatory{position:static}
 .analysis-observatory .scene{height:285px;margin-top:5px;margin-bottom:20px}
 .analysis-process .process-item{min-height:0}
 .construction-sequence .scene{height:315px;margin-top:0}
 .construction-steps{gap:12px;margin-top:0}
 .construction-step{padding:18px 0 0;min-width:0}
 .construction-step[aria-pressed=true]{padding-top:16px}
 .construction-step strong{font-size:18px;letter-spacing:-.025em;line-height:1.35;overflow-wrap:anywhere}
 .construction-description{font-size:14px;line-height:1.6}
 .construction-number{font-size:12px;margin-bottom:12px}
 .service-page .building-process{padding-bottom:48px}
}

.construction-status{display:none}
@media(max-width:700px){.construction-description{display:none}.construction-status{display:block;font-size:16px;line-height:1.8;color:#587077;margin:16px 0 0;min-height:88px}.construction-step strong{font-size:16px;letter-spacing:-.03em;overflow-wrap:normal}.construction-step{padding-bottom:12px}}

@media(min-width:601px) and (max-width:700px){.page-hero{grid-template-columns:1fr}.service-consultoria .detail-hero{grid-template-columns:1fr}.service-consultoria .page-hero-copy{grid-column:1;grid-row:1;padding-left:0}.service-consultoria .detail-hero .scene{grid-column:1;grid-row:2}.scene-area-select{position:static;width:100%;grid-column:1}}

@media(max-width:700px){.about-hero{grid-template-columns:1fr}.about-hero .page-hero-copy{padding-top:24px;padding-bottom:8px}}

@media(min-width:701px) and (max-width:900px){
  .spatial-opening{height:auto;min-height:0;overflow:hidden}.portal-sticky{position:relative;top:0;height:auto;min-height:0;max-height:none;display:flex;flex-direction:column}.portal-night,.portal-second,.portal-rail{display:none}
  .portal-first{width:100%;padding:37px var(--gutter) 0;order:0;opacity:1;transform:none;pointer-events:auto}.portal-first .eyebrow{font-size:12px;margin-bottom:25px;letter-spacing:.06em}.portal-first h1{font-size:clamp(46px,11.9vw,80px);line-height:1.035;max-width:600px;margin-bottom:22px}.portal-first p{font-size:16px;max-width:420px;line-height:1.75;margin-bottom:22px}.portal-first .hero-actions{flex-direction:row;align-items:center;gap:18px}.portal-first .button{padding:14px 18px}.portal-first .text-link{font-size:14px}
  .portal-sticky>.scene-hero{position:relative;inset:auto;order:1;height:390px;width:100%;margin:0;overflow:hidden}
  .portal-sticky .scene-action{left:var(--gutter);right:auto;bottom:12px}.portal-sticky .motion-toggle{right:var(--gutter);bottom:12px}
  .portal-baseline{position:relative;order:2;left:auto;right:auto;bottom:auto;margin:0 var(--gutter);height:65px;gap:20px;font-size:12px;letter-spacing:.02em}.portal-baseline>span:first-child{max-width:155px}.portal-baseline>span:last-child{display:none}.portal-baseline a{font-size:13px;text-align:right;max-width:120px}

.portal-sticky>.scene-hero{height:470px}.portal-first h1{font-size:68px}.portal-first .hero-actions{flex-direction:row}.portal-sticky .scene-unavailable .scene-fallback{inset:0;width:100%}
}

.portal-second .text-link{background:#09252e;color:#d8eff0;padding:9px 13px;border-bottom-color:#87bfc5}
