:root{--white:#fff;--soft:#e8edff;--blue:#132574;--night:#0e1949;--navy:var(--night);--muted:#34426c;--sky:#7995ff;--sky-soft:#7995d3;--mid:#4661ac;--red:#c10218;--wine:#7f0110;--heading:'roc-grotesk',Arial,sans-serif;--body:'helvetica-lt-pro',Arial,sans-serif;--header-height:92px;--shadow:0 3px 8px rgb(14 25 73 / .06),0 14px 32px rgb(14 25 73 / .10);color-scheme:light}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 24px)}
body{margin:0;background:var(--white);color:var(--blue);font:400 1.125rem/1.6 var(--body);overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
button,input,textarea{font:inherit}
button,a,input,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;transition:scale 120ms ease,box-shadow 120ms ease,background-color 120ms ease}
:focus-visible{outline:3px solid var(--mid);outline-offset:5px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--heading);line-height:1.16;color:var(--blue)}
h1{font-weight:600}h2{font-size:clamp(1.9rem,3vw,2.5rem);font-weight:700;letter-spacing:-.025em}h3{font-weight:600}
strong{font-weight:700}
.wrap{width:min(1200px,calc(100% - 80px));margin-inline:auto}
.skip-link{position:fixed;z-index:100;top:12px;left:12px;padding:12px 20px;background:var(--white);color:var(--blue);transform:translateY(-160%);border:2px solid var(--blue);border-radius:8px}
.skip-link:focus{transform:none}
.site-header{position:sticky;top:0;z-index:30;background:var(--white);border-bottom:1px solid rgb(19 37 116 / .06)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;min-height:var(--header-height)}
.brand{display:block;flex-shrink:0}.brand img{width:188px}
.navigation{display:flex;align-items:center;gap:28px;font:400 1rem/1.4 var(--heading)}
.navigation a{padding:14px 0;white-space:nowrap;--link-line-bottom:8px}
/* One underline interaction for navigation and text links. */
.navigation a,.link-hover{position:relative;text-decoration:none;font-family:var(--heading);transition:color 180ms ease}
.navigation a::after,.link-hover::after{content:'';position:absolute;height:2px;bottom:var(--link-line-bottom,-4px);inset-inline:0;background:var(--sky);border-radius:999px;transform:scaleX(0);transform-origin:left;transition:transform 200ms ease;pointer-events:none}
.navigation a:is(:hover,:focus-visible,:active),.link-hover:is(:hover,:focus-visible,:active){color:var(--sky)}
.navigation a:is(:hover,:focus-visible,:active,[aria-current])::after,.link-hover:is(:hover,:focus-visible,:active)::after{transform:scaleX(1)}
.menu-toggle{display:none;align-items:center;gap:10px;min-height:44px;padding:8px 12px;border:1px solid var(--blue);border-radius:999px;background:var(--white);color:var(--blue);font:500 1rem var(--heading)}
.atmosphere-section{position:relative;isolation:isolate;overflow:hidden}
.atmosphere{position:absolute;z-index:-2;inset:0;overflow:hidden;pointer-events:none}
.ambient{position:absolute;width:min(85vw,1100px);aspect-ratio:1;background:radial-gradient(circle closest-side,rgb(121 149 255 / .76),rgb(121 149 255 / 0.5) 80%,rgb(0 0 0 / 0) 100%);border-radius:50%;animation:breathe 16s ease-in-out infinite;pointer-events:none}
.ambient-one{top:-72%;left:-22%}.ambient-two{top:-40%;right:-26%;animation-delay:-7s}
@keyframes breathe{0%,100%{transform:scale(1);opacity:.78}50%{transform:scale(1.045);opacity:1}}
.hero{background:var(--white);min-height:680px;display:grid;align-items:center;padding:78px 0 112px;text-align:center}
.hero .ambient{width:clamp(460px,57vw,850px);animation:hero-breathe 7s ease-in-out infinite}
.hero .ambient-one{top:-55%;left:-19%}
.hero .ambient-two{width:clamp(280px,32vw,500px);top:30px;right:-9%;background:radial-gradient(circle closest-side,rgb(19 37 116 / 1),rgb(19 37 116 / 0.3) 80%,transparent 100%);animation-duration:12s;animation-delay:-3.5s}
.hero .atmosphere{mask-image:linear-gradient(#000 calc(100% - 110px),transparent 100%)}
@keyframes hero-breathe{0%,100%{transform:translate3d(-12px,-8px,0) scale(.95);opacity:.85}50%{transform:translate3d(18px,16px,0) scale(1.08);opacity:1}}
.hero h1{max-width:980px;margin:0 auto 30px;font-size:clamp(2.15rem,4.1vw,3.65rem);letter-spacing:-.032em;text-wrap:balance}
.hero-description{max-width:800px;margin:0 auto 48px;color:var(--muted);font-size:1.125rem;line-height:1.65}
.hero-description strong{font-weight:400}
.button{--wave-color:var(--mid);position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;max-width:100%;padding:14px 25px;border:1px solid transparent;border-radius:999px;text-align:center;text-decoration:none;font:500 1rem/1.35 var(--heading);overflow:hidden;transition:scale 120ms ease,box-shadow 120ms ease,background-color 120ms ease}
.button-primary{background:var(--sky);color:var(--white)}
.button-secondary{--wave-color:var(--sky);background:var(--soft);color:var(--blue)}
.button-label{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:14px}
.button-arrow{font-size:1.25rem;line-height:1}
.button-wave{position:absolute;pointer-events:none;width:var(--wave-size,100%);aspect-ratio:1;border-radius:50%;left:var(--wave-x,50%);top:var(--wave-y,50%);background:var(--wave-color);z-index:0;transform:translate(-50%,-50%) scale(0);opacity:0;transition:opacity 180ms ease,transform 0s 180ms}
.button-wave + .button-wave{z-index:1}
.button.is-hovered .button-wave,.button:focus-visible .button-wave,.button.is-tapped .button-wave{transform:translate(-50%,-50%) scale(1);opacity:.75;transition:transform 680ms cubic-bezier(.4,0,.25,1),opacity 100ms ease}
.button.is-hovered .button-wave + .button-wave,.button:focus-visible .button-wave + .button-wave,.button.is-tapped .button-wave + .button-wave{opacity:.4;transition-delay:85ms}
.button-secondary.is-hovered .button-wave,.button-secondary:focus-visible .button-wave,.button-secondary.is-tapped .button-wave{opacity:.25}
.button.is-wave-reset .button-wave{transform:translate(-50%,-50%) scale(0);opacity:0;transition:none}
:where(button,.button):not(:disabled):not([aria-disabled="true"]):active{scale:.975;box-shadow:inset 0 2px 5px rgb(14 25 73 / .22)}
.button-primary:active{background-color:var(--mid)}
.button-secondary:active,.round-control:not(:disabled):active{background-color:#c0cef9}
.menu-toggle:active,.motion-toggle:not(:disabled):active{background-color:var(--soft)}
.motion-toggle{position:absolute;right:32px;bottom:20px;display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:0;border-radius:99px;color:var(--muted);background:transparent;font:400 .8125rem var(--body)}
.motion-toggle:hover{background:var(--soft)}
.motion-symbol{font-size:1rem}.motion-toggle:disabled{cursor:default}
.icon{display:inline-block;flex-shrink:0;width:30px;height:30px;mask:var(--icon) center/contain no-repeat;background:currentColor}
.challenges{position:relative;isolation:isolate;padding:64px 0 78px;overflow:hidden}
.challenges h2{text-align:center;max-width:900px;color:#350110;margin-bottom:40px}
.challenge-glow{position:absolute;inset:40px -10% 0;z-index:-1;background:radial-gradient(ellipse at 40% 50%,rgb(193 2 24 / .34),rgb(193 2 24 / .1) 42%,rgb(193 2 24 / 0) 70%);mask-image:linear-gradient(#000 55%,transparent 100%)}
/* Alternating entrances share the same clipped container and inset. */
.challenge-stage{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;container-type:inline-size;--challenge-gutter:40px}
.challenge-group{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;gap:18px;list-style:none;padding:0;margin:0}
.challenge-band{--exit-offset:-110%;--band-bg:var(--wine);--band-hover:#980c20;--band-active:#62000c;--band-ink:var(--white);--challenge-inset:max(var(--challenge-gutter),calc((100cqw - 970px)/2));--band-cap:min(28px,var(--challenge-inset));margin:0;width:max-content;max-width:calc(100cqw - var(--challenge-inset) + var(--band-cap));min-width:0;justify-self:start;font-size:1.18rem;line-height:1.45;display:flex}
.challenge-band:nth-child(even){--exit-offset:110%;--band-bg:#fff0f2;--band-hover:#ffe2e6;--band-active:#f8cfd5;--band-ink:var(--wine);justify-self:end}
.challenge-link{display:flex;align-items:center;min-width:0;padding:20px var(--band-cap) 20px var(--challenge-inset);border-radius:0 44px 44px 0;transform-origin:left center;background:var(--band-bg);color:var(--band-ink);text-decoration:none;transition:background-color 180ms ease,box-shadow 180ms ease,scale 120ms ease}
.challenge-band:nth-child(even) .challenge-link{flex-direction:row-reverse;padding-inline:var(--band-cap) var(--challenge-inset);border-radius:44px 0 0 44px;transform-origin:right center}
.challenge-band:nth-child(even) .challenge-copy{flex-direction:row-reverse;text-align:right}
.challenge-copy{display:flex;align-items:center;gap:20px;flex:1;min-width:0}
.challenge-copy > span:last-child{min-width:0;overflow-wrap:anywhere}
.challenge-band .icon{width:34px;height:34px}
@media(hover:hover){.challenge-link:hover{background:var(--band-hover);box-shadow:0 4px 10px rgb(127 1 16 / .15)}}
.challenge-link:active{scale:.985;background:var(--band-active);box-shadow:inset 0 2px 5px rgb(53 1 16 / .22)}
.challenge-link:focus-visible{outline:3px solid var(--sky);outline-offset:-5px}
.is-rotating .challenge-group{grid-area:1/1}
.is-rotating .challenge-group.is-resting{visibility:hidden;pointer-events:none}
.is-rotating .challenge-band{transform:translateX(var(--exit-offset));opacity:0;transition:transform 700ms cubic-bezier(.22,.65,.3,1),opacity 350ms ease;transition-delay:var(--band-delay,0ms)}
.is-rotating .challenge-group.is-active .challenge-band{transform:none;opacity:1}
.challenge-controls{display:flex;align-items:center;justify-content:center;gap:16px;margin:30px 20px 0;color:var(--wine)}
.challenge-controls[hidden]{display:none}
.challenge-controls .round-control{border:0;background:#fff0f2;color:var(--wine);width:42px;height:42px}
.challenge-status{font:500 .9375rem var(--heading);font-variant-numeric:tabular-nums}
.challenge-pause{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:0;border-radius:99px;background:transparent;color:var(--wine);font-size:.875rem}
.challenge-pause:hover{background:#fff0f2}
.challenge-stage.is-instant .challenge-band{transition:none}
.contact{background:linear-gradient(90deg,#0e1949,#132574);color:var(--white);padding:88px 0}
.contact h2{color:var(--white);margin-bottom:16px}
.contact p{color:var(--soft)}
.contact-quick{display:flex;flex-wrap:wrap;gap:16px;margin-top:30px}
.site-footer{padding:76px 0;background:var(--white)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:48px;flex-wrap:wrap}
.site-footer .social-links{gap:20px;justify-content:center}
.site-footer .social-links a{padding:12px 4px;border-radius:12px;perspective:400px;transition:color 180ms ease,background-color 180ms ease,scale 120ms ease}
.social-sculpture{position:relative;display:block;flex:none;width:96px;height:96px;transform-style:preserve-3d;transform:rotateX(8deg) rotateY(-12deg);transition:transform 240ms ease;pointer-events:none}
.social-sculpture::before,.social-sculpture::after{content:'';position:absolute;inset:0;background:var(--navy);mask:var(--icon) center / contain no-repeat}
.social-sculpture::after{transform:translateZ(2px);background:var(--mid)}
.site-footer .social-sculpture .icon{position:absolute;inset:0;width:100%;height:100%;transform:translateZ(4px)}
.site-footer .social-links a:is(:hover,:focus-visible) .social-sculpture{transform:translateY(-4px) rotateX(-5deg) rotateY(10deg)}
.site-footer .social-links a:active .social-sculpture{transform:translateY(0) rotateX(0) rotateY(0)}
.site-footer .social-links a:active{scale:.96;background:var(--soft)}
.social-links{display:flex;flex-wrap:wrap;gap:24px;font:400 .9375rem var(--heading)}
.section-title{text-align:center;margin-bottom:40px}
.solutions{position:relative;isolation:isolate;padding:96px 0 112px}
.solutions::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 52%,rgb(121 149 255 / .33),transparent 64%);mask-image:linear-gradient(transparent,#000 100px,#000 calc(100% - 120px),transparent)}
.solutions-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:stretch}
.solution{padding:26px;border-radius:28px;box-shadow:var(--shadow);background:linear-gradient(125deg,#e8edff,#c0cef9)}
.solution-opc{background:linear-gradient(125deg,#d6d5f2,#f8e2e6)}
.solution-heading{display:flex;align-items:center;gap:20px;margin-bottom:26px}
.solution-heading img{width:132px;flex-shrink:0}
.solution-heading h3{font-size:2rem;line-height:1.2;margin:0 0 6px;color:var(--blue)}
.solution-heading p{font-size:1.125rem;line-height:1.3;margin:0;color:var(--blue)}
.benefits{display:grid;gap:12px;padding:0;list-style:none;margin:0}
.benefits li{display:flex;align-items:center;gap:16px;padding:15px;border-radius:16px;transition:translate 220ms ease,background-color 220ms ease,box-shadow 220ms ease,opacity 360ms ease,filter 360ms ease,transform 420ms cubic-bezier(.2,.65,.3,1)}
.benefits .icon{width:64px;height:64px}.benefits p{font-size:1rem;line-height:1.5;margin:0}
@media(hover:hover) and (pointer:fine){.benefits li:hover{translate:0 -3px;background-color:rgb(255 255 255 / .32);border-color:var(--mid);box-shadow:0 8px 18px rgb(14 25 73 / .09)}}
.methodology{padding:80px 0 76px;background:linear-gradient(180deg,var(--white),#fafafa 140px,var(--white))}
.timeline-scene{position:relative}
.timeline-pin{padding-bottom:10px}
.timeline-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--sky-soft) var(--soft);padding:2px 0 14px}
.timeline-track{position:relative;isolation:isolate;display:flex;gap:28px;list-style:none;margin:0;padding:0;width:100%}
.timeline-track::before{content:'';position:absolute;z-index:-1;left:0;top:48%;width:calc(200% + 28px);height:4px;background:var(--blue)}
.step{flex:0 0 calc((100% - 56px)/3);min-width:0;scroll-snap-align:start;padding:26px 24px 22px;border-radius:24px;background:linear-gradient(125deg,#e8edff,#c0cef9);color:var(--night);min-height:245px}
.step:nth-child(even){background:var(--night);color:var(--white)}
.step-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px;min-height:56px}
.step-number{font:700 3.3rem/1 var(--heading);letter-spacing:-.06em;flex-shrink:0}
.step:nth-child(odd) h3{color:var(--blue)}
.step h3{font-size:1.375rem;color:inherit;margin:0;line-height:1.2;overflow-wrap:break-word}
.step p{font-size:1rem;line-height:1.5;margin:0}
.support{display:flex;align-items:center;gap:20px;width:min(970px,100%);margin:24px auto 0;padding:20px 26px;border:0;border-radius:20px;background:var(--soft);color:var(--blue)}
.support-content > .icon{width:60px;height:60px}.support h3{font-size:1.5rem;line-height:1.2;margin:0 0 7px;color:var(--blue)}
.support p{font-size:.9375rem;line-height:1.5;margin:0}
.timeline-enabled .timeline-scene{height:calc(var(--timeline-height) + var(--timeline-distance))}
.timeline-enabled .timeline-pin{position:sticky;top:var(--timeline-top,calc(var(--header-height) + 24px))}
.timeline-enabled .timeline-viewport{overflow:hidden;scroll-snap-type:none}
.team{padding:84px 0 104px;background:var(--white)}
.team .section-title{margin-bottom:14px}.section-intro{text-align:center;color:var(--muted);margin-bottom:46px;font-size:1.0625rem}
.team-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--sky-soft) transparent}
.js .team-viewport{scrollbar-width:none}
.js .team-viewport::-webkit-scrollbar{display:none}
.team-track{display:flex;gap:48px;margin:0;padding:0 0 14px;list-style:none}
.person{flex:0 0 calc((100% - 96px)/3);text-align:center;min-width:0;scroll-snap-align:center}
.portrait{position:relative;isolation:isolate;display:grid;place-items:center;width:min(208px,100%);aspect-ratio:601 / 570;margin:0 auto 24px;background:url('img/fondo-equipo-degrade.png') center / contain no-repeat}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.person h3{font-size:1.3rem;line-height:1.3;margin:0 0 7px;color:var(--blue)}.person p{font-size:1rem;color:var(--muted);margin:0}
.team-controls{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:20px}
.team-controls[hidden]{display:none}.round-control{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--mid);border-radius:50%;color:var(--blue);background:var(--soft);font-size:1.25rem}
.round-control:disabled{opacity:.4;cursor:default}.team-status{font-size:.9375rem;font-variant-numeric:tabular-nums}
.contact-heading{margin-bottom:38px;text-align:center}.contact-heading::before{content:'';display:block;width:70px;height:5px;margin:0 auto 26px;background:var(--red);border-radius:999px}
.contact-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:64px;align-items:start}
.contact-main{padding:40px;border-radius:28px;background:var(--white);box-shadow:var(--shadow);color:var(--blue)}
.contact-main h3{font-size:1.75rem;margin-bottom:20px;color:var(--blue)}
.contact-main p{color:var(--muted);font-size:1.0625rem;line-height:1.55;margin-bottom:28px}
.contact-email{display:block;width:fit-content;max-width:100%;margin-bottom:32px;font-family:var(--heading);font-size:clamp(1rem,2vw,1.3rem);overflow-wrap:anywhere;color:var(--blue)}
.contact-channel h3{font-size:1.4rem;color:var(--white);margin:0 0 12px}
.contact-channel + .contact-channel{margin-top:30px;padding-top:28px;border-top:1px solid var(--mid)}
.phone-link{display:block;font-size:1.0625rem;text-decoration:none;color:var(--soft);margin-bottom:18px}
.contact address{font-size:1.0625rem;font-style:normal;line-height:1.5;color:var(--soft);margin-bottom:16px}
.map-link{font-weight:500;font-size:1rem}
.contact :focus-visible{outline-color:var(--sky)}.contact-main :focus-visible{outline-color:var(--blue)}
@media(max-width:1000px){.solutions-grid{gap:24px}.solution{padding:22px}.solution-heading{gap:12px}.solution-heading{flex-direction:column;align-items:flex-start}.solution-heading img{width:124px}.solution-heading h3{font-size:2rem}.benefits li{padding:14px;gap:14px}.benefits .icon{width:56px;height:56px}.step{flex-basis:calc((100% - 28px)/2)}.timeline-track::before{width:calc(300% + 56px)}.team-track{gap:24px}.person{flex-basis:calc((100% - 48px)/3)}.portrait{width:180px}.contact-grid{gap:32px}.contact-main{padding:28px}}
@media(max-width:760px){.solutions{padding:60px 0 72px}.solutions-grid{grid-template-columns:1fr;gap:28px}.solution{padding:24px}.solution-heading{flex-direction:row;gap:18px;align-items:center}.solution-heading img{width:124px}.solution-heading h3{font-size:2rem}.benefits .icon{width:56px;height:56px}.section-title{margin-bottom:30px}.methodology{padding:60px 0}.timeline-viewport{overflow:visible;padding:0}.timeline-track{display:grid;gap:20px;padding-left:20px}.timeline-track::before{left:5px;top:30px;bottom:30px;width:3px;height:auto}.step{position:relative;min-height:0;padding:24px}.step::before{content:'';position:absolute;width:11px;height:11px;left:-19px;top:36px;border-radius:50%;background:var(--blue)}.step-heading{min-height:0;margin-bottom:14px}.step-number{font-size:2.7rem}.step h3{font-size:1.375rem}.support{padding:20px;gap:14px;align-items:flex-start;margin-top:26px}.support-content > .icon{width:44px;height:44px}.support h3{font-size:1.3rem}.team{padding:56px 0 68px}.section-intro{font-size:1rem;margin-bottom:34px}.team-track{gap:24px;padding-inline:8%}.person{flex-basis:100%}.portrait{width:192px}.contact-grid{grid-template-columns:1fr;gap:34px}.contact-main{padding:28px 24px}.contact-main h3{font-size:1.5rem}.contact-email{font-size:1.0625rem}.contact-main .button{width:100%}}
[data-motion-paused] .ambient,[data-outside] .ambient{animation-play-state:paused}
@media(max-width:1000px){.challenge-stage{--challenge-gutter:24px}.wrap{width:calc(100% - 48px)}.navigation{gap:18px;font-size:.9375rem}.brand img{width:164px}.hero{min-height:620px}.hero h1{max-width:850px}.challenge-band{font-size:1.0625rem}}
@media(max-width:760px){:root{--header-height:76px}.wrap{width:calc(100% - 40px)}.header-inner{flex-wrap:wrap;gap:0}.brand img{width:150px}.menu-toggle{display:flex}.navigation{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%;padding:4px 0 16px}.js .navigation{display:none}.js .navigation.is-open{display:flex}.navigation a{padding:13px 0}.hero{padding:70px 0 94px;min-height:620px}.hero h1{font-size:clamp(2rem,6.5vw,2.8rem);letter-spacing:-.025em;margin-bottom:26px}.hero-description{font-size:1rem;margin-bottom:34px}.desktop-break{display:none}.hero-cta{padding:14px 20px;font-size:.9375rem}.motion-toggle{right:12px;bottom:14px}.ambient{width:150vw}.ambient-one{top:-35%;left:-75%}.ambient-two{top:-10%;right:-90%}.challenges{padding:46px 0 60px}.challenges h2{font-size:1.8rem;margin-bottom:30px}.challenge-band{font-size:1rem}.challenge-band .icon{width:28px;height:28px}.contact{padding:62px 0}.footer-inner{align-items:flex-start;flex-direction:column;gap:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ambient{animation:none}.button,.button-wave,.navigation a,.navigation a::after,.link-hover,.link-hover::after{transition:none!important}.button:active{transform:none}}
@media(max-width:420px){.solution{padding:20px}.solution-heading{flex-direction:column;align-items:flex-start;gap:12px}.solution-heading img{width:124px}.solution-heading h3{font-size:1.875rem}.solution-heading p{font-size:1.125rem}.benefits li{padding:14px 12px;gap:12px}.benefits .icon{width:48px;height:48px}}

/* One-shot entrances. Content stays readable without JavaScript. */
.reveal{opacity:0;filter:blur(4px);transform:translateY(12px);transition:opacity 360ms ease,filter 360ms ease,transform 420ms cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}
.button.reveal{transition:opacity 360ms ease,filter 360ms ease,transform 420ms cubic-bezier(.2,.65,.3,1),scale 120ms ease,box-shadow 120ms ease,background-color 120ms ease}
.reveal.is-visible{opacity:1;filter:none;transform:none}
[data-motion-paused] .reveal{opacity:1;filter:none;transform:none;transition:none}
@media(max-width:760px){.hero .ambient-one{width:440px;top:-230px;left:-260px}.hero .ambient-two{width:270px;top:74px;right:-165px}}
@media(prefers-reduced-motion:reduce){.hero .ambient{animation:none}.reveal,.challenge-band.reveal{opacity:1;filter:none;transform:none;transition:none}.benefits li{transition:none}.benefits li:hover{translate:none}}
@media(prefers-reduced-motion:reduce){button{transition:none}:where(button,.button):not(:disabled):not([aria-disabled="true"]):active{scale:none}}

/* Local vector illustrations, with a gesture linked to each step. */
.step{display:flex;flex-direction:column;--art-accent:#4661ac;--art-spot:#c10218;transition:translate 220ms ease,box-shadow 220ms ease,opacity 360ms ease,filter 360ms ease,transform 420ms ease}
.step:nth-child(even){--art-accent:#7995ff;--art-spot:#7995ff}
.step-art{margin-top:auto;padding-top:18px;display:flex;justify-content:flex-end}
.step-art svg{display:block;width:160px;height:75px;overflow:visible}
.art-fill{fill:var(--art-accent);fill-opacity:.15;stroke:none}
.art-accent{stroke:var(--art-spot)}
.art-motion{transform-box:fill-box;transform-origin:center;transition:transform 350ms ease}
@media(hover:hover) and (pointer:fine){.step:hover{translate:0 -2px;box-shadow:0 8px 20px rgb(14 25 73 / .12)}.step:hover .art-motion{animation:art-search 1.8s ease-in-out infinite}.step:nth-child(2):hover .art-motion{animation-name:art-adjust}.step:nth-child(3):hover .art-motion{animation-name:art-show}.step:nth-child(4):hover .art-motion{animation-name:art-check}.step:nth-child(5):hover .art-motion{animation-name:art-launch}.step:nth-child(6):hover .art-motion{animation-name:art-learn}}
@keyframes art-search{50%{transform:translate(-5px,-3px) rotate(-5deg)}}
@keyframes art-adjust{50%{transform:translateX(7px)}}
@keyframes art-show{50%{transform:translate(-3px,-2px) scale(1.07)}}
@keyframes art-check{50%{transform:rotate(-8deg) scale(1.06)}}
@keyframes art-launch{50%{transform:translateY(-7px)}}
@keyframes art-learn{50%{transform:translateY(-4px)}}
.social-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;text-decoration:none;transition:color 180ms ease}
.social-links .icon{width:24px;height:24px}
.social-links a:hover,.social-links a:focus-visible{color:var(--sky)}
.contact .social-links{gap:18px}.contact .social-links .link-hover{--link-line-bottom:5px}
.button-label .icon,.phone-link .icon,.map-link .icon{width:22px;height:22px}
.phone-link,.map-link{display:inline-flex;align-items:center;gap:8px}
.phone-link{display:flex;width:fit-content}
@media(max-width:760px){.challenge-stage{--challenge-gutter:20px}.challenge-link{padding-block:16px}.site-footer{padding:52px 0}.footer-inner{gap:32px}.site-footer .social-links{gap:18px}.social-sculpture{width:64px;height:64px}.challenge-copy{gap:12px}.challenge-group{gap:14px}.challenge-controls{gap:10px;flex-wrap:wrap}.challenge-pause{font-size:.8125rem}.step-art svg{width:140px;height:65px}.social-links{gap:18px}}
@media(max-width:380px){.challenge-pause{flex-basis:100%;justify-content:center}}
[data-motion-paused] .step .art-motion{animation:none}
@media(prefers-reduced-motion:reduce){.step,.step .art-motion,.social-sculpture,.is-rotating .challenge-band{transition:none!important;animation:none!important}.step:hover{translate:none}.site-footer .social-links a:is(:hover,:focus-visible,:active) .social-sculpture{transform:none}}
@media print{.is-rotating .challenge-group{grid-area:auto;visibility:visible!important}.is-rotating .challenge-band{opacity:1;transform:none}.challenge-controls{display:none}}

.contact-form{display:grid;gap:20px}
.form-field{display:grid;gap:8px;min-width:0}
.form-field label{font:500 1rem/1.4 var(--heading);color:var(--blue)}
.required-mark{color:var(--blue)}
.contact-form input,.contact-form textarea{width:100%;min-width:0;padding:12px 14px;border:1px solid var(--mid);border-radius:12px;background:#fafbff;color:var(--night);font:400 1rem/1.5 var(--body);transition:border-color 160ms ease,box-shadow 160ms ease}
.contact-form textarea{resize:vertical;min-height:140px}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#58658b;opacity:1}
.contact-form input:focus,.contact-form textarea:focus{border-color:var(--mid);box-shadow:0 0 0 3px rgb(121 149 255 / .18)}
.contact-form .form-note{font-size:.875rem;line-height:1.5;margin:0}
.contact-form > .button{justify-self:start}
.contact-main .contact-direct{margin:28px 0 0;padding-top:22px;border-top:1px solid var(--soft);font-size:.9375rem}
.contact-direct .contact-email{font-size:1rem;margin:8px 0 0}
@media(max-width:760px){.contact-form{gap:18px}.contact-form > .button{justify-self:stretch}.challenge-copy{align-items:center}}
@media(prefers-reduced-motion:reduce){.challenge-link,.contact-form input,.contact-form textarea{transition:none}.challenge-link:active{scale:none}}

/* Section-specific controls keep the situations palette. */
.challenge-controls{position:relative;min-height:48px;margin:30px 32px 0;padding-bottom:52px}
.challenge-pause{position:absolute;right:0;bottom:0;font-size:.8125rem;padding:8px 12px}
.challenge-controls .icon{width:22px;height:22px}
.challenge-controls .round-control:hover:not(:disabled){background:#ffe2e6}
.challenge-controls .round-control:not(:disabled):active,.challenge-pause:not(:disabled):active{background:var(--wine);color:var(--white);box-shadow:inset 0 2px 5px rgb(53 1 16 / .22)}
.challenge-controls :focus-visible{outline-color:var(--wine)}
@media(min-width:761px){.challenge-controls{padding-bottom:0}.challenge-pause{top:2px;bottom:auto}.timeline-viewport{mask-image:linear-gradient(90deg,transparent,#000 12px,#000 calc(100% - 12px),transparent)}}
@media(max-width:760px){.challenge-controls{margin-inline:12px}.challenge-pause{flex-basis:auto}}
/* The cover fades without changing the card's dimensions. */
.support{position:relative;display:block;overflow:hidden}
.support-content{display:flex;align-items:center;gap:20px}
.support-cover{display:none;position:absolute;inset:0;align-items:center;justify-content:center;gap:20px;padding:20px;background:var(--navy);color:var(--white);pointer-events:none;font:600 clamp(1.7rem,3vw,2.5rem)/1.15 var(--heading);text-align:center}
.support-animated .support-cover{display:flex;opacity:1;transition:opacity 1800ms ease-in-out}
.support-animated.support-revealed .support-cover{opacity:0}
.support-animated .support-content{opacity:0}
.support-animated.support-revealed .support-content{opacity:1;transition:opacity 1350ms ease 450ms}
.support-cover .icon{width:52px;height:52px}
@media(max-width:760px){.support-content{gap:14px;align-items:flex-start}.support-cover{gap:12px}.support-cover .icon{width:38px;height:38px}}
/* Centered, native-scroll carousel with equal card widths for every person. */
.team-carousel{position:relative;--person-width:clamp(240px,32cqw,340px)}
.team-viewport{container-type:inline-size;scrollbar-width:none;scroll-behavior:smooth;overflow-y:hidden;padding:20px 0 10px;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.team-track{position:relative;width:max-content;display:flex;align-items:stretch;gap:32px;padding:0 calc((100cqw - var(--person-width))/2) 14px;margin:0}
.team-track .person{flex:0 0 var(--person-width);width:var(--person-width);scroll-snap-align:center;transform:scale(.76);transform-origin:center center;opacity:.55;transition:transform 420ms cubic-bezier(.2,.65,.3,1),opacity 320ms ease}
.team-track .person.is-current{transform:scale(1);opacity:1}
.team-track .portrait{width:min(240px,90%)}
.team-track .person h3{min-height:2.6em;display:flex;align-items:center;justify-content:center;margin-bottom:4px}
.team-controls{margin-top:14px;gap:0}
.team-controls .round-control{position:absolute;top:116px;z-index:2;width:48px;height:48px;background:rgb(255 255 255 / .9);border:0;box-shadow:0 4px 18px rgb(14 25 73 / .1)}
.team-controls .icon{width:28px;height:28px}
.team-prev{left:calc(50% - min(170px,16%) - 42px)}
.team-next{right:calc(50% - min(170px,16%) - 42px)}
@media(max-width:760px){.team-carousel{--person-width:60cqw}.team-track{gap:8px}.team-track .portrait{width:min(176px,90%)}.team-track .person h3{font-size:1.1rem}.team-track .person p{font-size:.9375rem}.team-controls .round-control{top:92px;width:40px;height:40px}.team-prev{left:0}.team-next{right:0}}
@media(prefers-reduced-motion:reduce){.team-viewport{scroll-behavior:auto}.team-track .person{transition:none}.support-cover{display:none!important}.support-content{opacity:1!important}}
@media print{.support-cover{display:none!important}.support-content{opacity:1!important}.team-viewport{overflow:visible;mask-image:none}.team-track{width:100%;padding:0;flex-wrap:wrap}.team-track .person{opacity:1;transform:none}}

/* A small listening gesture, only once the final support content is revealed. */
.support-content > .icon{transform-origin:50% 65%;animation:support-listening 3.8s ease-in-out infinite;animation-play-state:paused}
.support-icon-active .support-content > .icon{animation-play-state:running}
@keyframes support-listening{0%,15%,75%,100%{transform:translateY(0) rotate(0) scale(1)}30%{transform:translateY(-2px) rotate(-6deg) scale(1.04)}45%{transform:translateY(-2px) rotate(5deg) scale(1.04)}60%{transform:translateY(-1px) rotate(-2deg) scale(1.02)}}
[data-motion-paused] .support-content > .icon{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.support-content > .icon{animation:none}}
@media print{.support-content > .icon{animation:none}}

.person-role{display:flex;align-items:center;justify-content:center;gap:8px}
.person-role .icon{width:20px;height:20px;flex-shrink:0}
.person-role > span:last-child{min-width:0}
@media(max-width:760px){.person-role{gap:6px}.person-role .icon{width:18px;height:18px}}


/* Three complete phrases, each rising from its own window. */
.hero-phrase{display:block;overflow:hidden;padding-block:.04em;margin-block:-.04em}
.hero-phrase-text{display:block;text-wrap:balance}
.hero.is-introducing .hero-phrase-text{animation:hero-phrase-in 700ms cubic-bezier(.16,1,.3,1) both;animation-delay:var(--phrase-delay,0ms)}
@keyframes hero-phrase-in{from{transform:translateY(110%);opacity:.4}to{transform:translateY(0);opacity:1}}
.hero .ambient-one{animation:hero-sky-breathe 9s ease-in-out infinite}
.hero.is-introducing .ambient-one{animation:hero-sky-open 1800ms cubic-bezier(.2,.65,.3,1) both}
@keyframes hero-sky-open{from{transform:translate3d(-12px,-8px,0) scale(.95);opacity:.85}to{transform:translate3d(18px,16px,0) scale(1.08);opacity:1}}
@keyframes hero-sky-breathe{0%,100%{transform:translate3d(18px,16px,0) scale(1.08);opacity:1}50%{transform:translate3d(-12px,-8px,0) scale(.95);opacity:.85}}
.hero .ambient{translate:var(--pointer-x,0px) var(--pointer-y,0px);transition:translate 700ms cubic-bezier(.2,.65,.3,1)}
[data-motion-paused] .hero .ambient,.hero[data-outside] .ambient{animation-play-state:paused}
[data-motion-paused] .hero .hero-phrase-text{animation:none;opacity:1;transform:none}
.hero-inner{position:relative;z-index:2;pointer-events:none}
.hero-inner h1,.hero-inner p,.hero-inner a{pointer-events:auto}
.hero .motion-toggle{z-index:3}
.hero.has-side-problems .hero-description{max-width:min(800px,calc(100% - 280px))}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.hero-problems{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-problems[hidden],.hero-problem[hidden]{display:none}
.hero-problem{position:absolute;width:var(--problem-size,100px);height:var(--problem-size,100px);display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:transparent;color:var(--wine);pointer-events:auto;animation:hero-problem-travel 24s ease-in-out infinite both;animation-delay:var(--problem-delay,1.8s);isolation:isolate}
.hero-problem-art{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;overflow:hidden;mask-image:radial-gradient(circle closest-side,#000 66%,transparent 100%)}
.hero-problem-art::before{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle closest-side,rgb(193 2 24 / .36),rgb(193 2 24 / .18) 68%,transparent 100%);opacity:1;transition:opacity 550ms ease}
.hero-problem.is-resolved .hero-problem-art::before{opacity:0}
.hero-problem-art::after{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle closest-side,rgb(121 149 255 / .55),rgb(121 149 255 / .28) 68%,transparent 100%);opacity:0;transition:opacity 550ms ease}
.hero-problem .icon{position:absolute;z-index:2;width:40%;height:40%;transition:opacity 450ms ease,transform 450ms ease}
.hero-problem .improvement-icon{opacity:0;transform:scale(.85);color:var(--blue)}
.hero-problem.is-resolved .problem-icon{opacity:0;transform:scale(.85)}
.hero-problem.is-resolved .improvement-icon{opacity:1;transform:scale(1)}
.hero-problem.is-resolved .hero-problem-art::after{opacity:1}
.hero-problem-wave{position:absolute;z-index:1;left:var(--touch-x,50%);top:var(--touch-y,50%);width:240%;height:240%;border-radius:50%;background:rgb(121 149 255 / .22);transform:translate(-50%,-50%) scale(0);transition:transform 650ms cubic-bezier(.2,.65,.3,1)}
.hero-problem.is-resolved .hero-problem-wave{transform:translate(-50%,-50%) scale(1)}
.hero-problem-label{position:absolute;top:calc(100% - 6px);left:50%;width:max-content;max-width:180px;padding:6px 10px;border-radius:10px;background:rgb(255 255 255 / .94);color:var(--blue);font:500 .75rem/1.35 var(--heading);transform:translate(-50%,4px);opacity:0;visibility:hidden;transition:opacity 180ms ease,transform 180ms ease;pointer-events:auto}
.hero-problem:hover,.hero-problem:focus-visible{animation-play-state:paused;opacity:1!important}
.hero-problem:hover .hero-problem-label,.hero-problem:focus-visible .hero-problem-label{visibility:visible;opacity:1;translate:0 -4px}
.hero-problem:focus-visible{outline:2px solid var(--mid);outline-offset:2px}
.hero-problem.label-dismissed .hero-problem-label{visibility:hidden!important;opacity:0!important;pointer-events:none}
.hero-problem:not(:disabled):active{box-shadow:none}
.hero-problem.is-resolved{animation-play-state:paused}
.hero-problem.is-leaving{pointer-events:none}
.hero-problem.is-leaving .hero-problem-art,.hero-problem.is-leaving .hero-problem-label{opacity:0;transition:opacity 300ms ease}
.hero-problem.is-leaving:hover .hero-problem-label,.hero-problem.is-leaving:focus-visible .hero-problem-label{opacity:0}
@keyframes hero-problem-travel{0%,100%{transform:translate3d(var(--arrival-x),0,0) scale(.94);opacity:0;visibility:hidden}10%{transform:translate3d(0,0,0) scale(1);opacity:.8;visibility:visible}35%{transform:translate3d(var(--drift-x),-8px,0) scale(1.04);opacity:.8;visibility:visible}65%{transform:translate3d(0,7px,0) scale(.98);opacity:.8;visibility:visible}78%{transform:translate3d(0,0,0) scale(1);opacity:.8;visibility:visible}94%{transform:translate3d(var(--arrival-x),0,0) scale(.94);opacity:0;visibility:hidden}}
[data-motion-paused] .hero-problem,.hero[data-problems-outside] .hero-problem{animation-play-state:paused}
@media(max-width:760px){.hero-problem-label{max-width:130px}.hero.has-side-problems h1{margin-bottom:138px}.hero.has-side-problems .hero-description{max-width:100%}}
/* Touch labels remain readable before and after the circle is activated. */
@media(hover:none),(max-width:760px){.hero-problem-label{visibility:inherit;opacity:1;translate:0 -4px}}
@media(prefers-reduced-motion:reduce){.hero .ambient,.hero.is-introducing .ambient,.hero.is-introducing .hero-phrase-text{animation:none!important}.hero-phrase-text{opacity:1;transform:none}.hero .ambient{translate:none;transition:none}.hero-problem{animation:none;opacity:.65;visibility:visible;transform:none}.hero-problem *,.hero-problem-art::before,.hero-problem-art::after{transition:none!important}}
@media print{.hero .ambient,.hero.is-introducing .hero-phrase-text{animation:none!important}.hero-phrase-text{opacity:1;transform:none}.hero-problems{display:none}}

/* Center short sections in the usable screen; long content always grows.
   svh avoids changing section heights as mobile browser controls retract. */
:root{--section-space:clamp(48px,7svh,88px);--screen-content:calc(100svh - var(--header-height) - 1px)}
html{scroll-padding-top:calc(var(--header-height) + 1px)}
.hero,.challenges,.solutions,.team,.contact{min-height:var(--screen-content);padding-block:var(--section-space)}
.hero{padding-block:max(72px,var(--section-space))}
.challenges,.solutions,.team,.contact{display:flex;flex-direction:column;justify-content:center}
.methodology{padding-block:var(--section-space)}
.methodology:not(.timeline-enabled){min-height:var(--screen-content);display:flex;flex-direction:column;justify-content:center}
.methodology.timeline-enabled{padding-block:max(var(--section-space),calc(var(--timeline-top) - var(--header-height) - 1px))}
/* Keep the horizontal journey on notebooks with short browser windows. */
@media(min-width:761px) and (max-height:700px){
  .methodology .section-title{margin-bottom:24px}
  .step{padding:20px;min-height:0}
  .step-heading{min-height:44px;margin-bottom:14px}
  .step-number{font-size:2.8rem}
  .step-art{padding-top:12px}
  .step-art svg{width:128px;height:60px}
  .support{margin-top:16px;padding:16px 22px}
}
@media(max-height:500px) and (min-width:761px){.hero{padding-top:40px}.hero h1{font-size:clamp(2rem,4vw,3rem)}}
@media print{.hero,.challenges,.solutions,.team,.contact{min-height:0;display:block}.timeline-enabled .timeline-pin{position:static}}

/* Direct desktop dragging; touch retains native swipe and vertical scrolling. */
.js .team-viewport{cursor:grab;user-select:none;-webkit-user-select:none}
.team-viewport.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.team-viewport.is-centering{scroll-snap-type:none}
.team-viewport img{-webkit-user-drag:none}

/* Official full PNG (symbol and lettering), reused in every depth plane. */
.footer-identity{display:flex;flex-direction:column;align-items:flex-start;width:min(640px,100%);gap:12px}
.footer-mark{position:relative;flex:none;display:block;width:100%;aspect-ratio:601 / 216;border:0;padding:0;background:transparent;color:var(--blue);perspective:1000px;isolation:isolate;border-radius:24px;touch-action:pan-y}
.footer-mark-rotor{position:absolute;inset:24px 18px;transform-style:preserve-3d;transform:rotateX(calc(10deg + var(--mark-x,0deg))) rotateY(calc(-12deg + var(--mark-y,0deg))) rotateZ(-3deg);transition:transform 550ms cubic-bezier(.2,.65,.3,1);pointer-events:none}
.footer-mark.is-turned .footer-mark-rotor{transform:rotateX(calc(-8deg + var(--mark-x,0deg))) rotateY(calc(14deg + var(--mark-y,0deg))) rotateZ(3deg)}
.footer-mark-layer,.footer-mark-face{position:absolute;inset:0;background:url('img/logo-cor.png') center / contain no-repeat;backface-visibility:hidden}
.footer-mark-layer{transform:translateZ(var(--depth));filter:brightness(.62)}
.footer-mark-face{transform:translateZ(12px)}
.footer-mark-face::after{content:'';position:absolute;inset:0;background:linear-gradient(130deg,rgb(255 255 255 / .4),transparent 48%,rgb(14 25 73 / .14));mask:url('img/logo-cor.png') center / contain no-repeat}
.footer-mark-shadow{position:absolute;left:15%;right:7%;bottom:3%;height:10%;border-radius:50%;background:rgb(14 25 73 / .12);filter:blur(9px);pointer-events:none}
.footer-mark:not(:disabled):active{scale:.98;box-shadow:none;background:transparent}
.footer-mark:disabled{cursor:default}
.footer-home-row{display:flex;justify-content:center;margin-top:24px}
.footer-home{display:inline-flex;align-items:center;gap:6px;min-height:44px;--link-line-bottom:6px;font-size:.875rem;color:var(--muted)}
[data-motion-paused] .footer-mark-rotor{transition:none}
@media(max-width:760px){.site-footer .footer-inner{align-items:center;gap:32px}.footer-identity{align-items:center;gap:16px}.footer-mark{aspect-ratio:601 / 240}.footer-mark-rotor{inset:14px 10px}}
@media(prefers-reduced-motion:reduce){.footer-mark-rotor{transition:none}}
@media print{.footer-mark-shadow{display:none}.footer-mark-rotor{transform:none!important}}

@media(min-width:761px) and (max-width:1100px){.site-footer .footer-inner{justify-content:center}}
[data-motion-paused] .social-sculpture{transition:none}
[data-motion-paused] .site-footer .social-links a:is(:hover,:focus-visible,:active) .social-sculpture{transform:rotateX(8deg) rotateY(-12deg)}

/* Reading, validation and keyboard access; CTA colors remain unchanged. */
#contenido:focus{outline:none}
.contact-form .field-error{margin:0;color:var(--wine);font-size:.875rem;line-height:1.5}
.contact-form .field-error[hidden]{display:none}
.contact-form [aria-invalid="true"]{border-color:var(--wine)}
.timeline-viewport:focus-visible,.team-viewport:focus-visible{mask-image:none;outline-offset:-3px}
.keyboard-help{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%)}
.timeline-pin:has(.timeline-viewport:focus-visible) > .keyboard-help,.team-carousel:has(.team-viewport:focus-visible) > .keyboard-help{position:fixed;z-index:40;inset:auto 20px 16px;width:fit-content;max-width:calc(100% - 40px);height:auto;margin:0 auto;padding:10px 16px;overflow:visible;clip-path:none;background:var(--white);border:1px solid var(--mid);border-radius:12px;box-shadow:var(--shadow);color:var(--blue);font-size:.875rem;line-height:1.4;pointer-events:none}
@media(max-width:760px){.timeline-help{display:none}}
@media(max-width:420px){.benefits li{flex-direction:column;align-items:flex-start;gap:10px}.benefits p{width:100%}}
@media print{.keyboard-help{display:none!important}}
.keyboard-help.help-dismissed{visibility:hidden}
.not-found{min-height:100svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-block:48px;max-width:700px}
.not-found img{margin-bottom:40px}.not-found h1{font-size:clamp(2rem,5vw,3rem)}
