/* Movement follows reading: no scroll interception or continuous text loops. */
.motion-ready:after{content:'';position:fixed;top:0;left:0;right:0;height:3px;background:#b6ef48;z-index:50;transform:scaleX(var(--read-progress,0));transform-origin:left;pointer-events:none}
.motion-ready .motion-item{opacity:0;translate:0 24px;transition:opacity .8s ease var(--delay,0ms),translate 1s cubic-bezier(.19,1,.22,1) var(--delay,0ms)}
.motion-ready .motion-item.has-entered{opacity:1;translate:0 0}
.motion-ready h1.motion-item{opacity:1;translate:none;clip-path:inset(0 0 100% 0);transition:clip-path 1.3s cubic-bezier(.22,1,.36,1)}
.motion-ready h1.has-entered{clip-path:inset(0 0 -20px 0)}
.motion-ready h1 .design,.motion-ready h1 .technology{display:inline-block;animation:word-arrive 1.1s cubic-bezier(.16,1,.3,1) both}
.motion-ready h1 .technology{animation-delay:.17s}
@keyframes word-arrive{from{transform:translateY(45px) rotate(3deg);opacity:0}to{transform:translateY(0) rotate(0);opacity:1}}
.motion-ready .design:after,.motion-ready .contact h2 span:after{transform-origin:left;scale:0 1;transition:scale 1.2s cubic-bezier(.7,0,.2,1) .7s}
.motion-ready h1.has-entered .design:after,.motion-ready .contact h2.has-entered span:after{scale:1 1}
.motion-ready .underlined{text-decoration:none;position:relative;background-image:linear-gradient(#b6ef48,#b6ef48);background-repeat:no-repeat;background-position:left bottom;background-size:0 5px;transition:background-size 1.3s ease .5s}
.motion-ready h2.has-entered .underlined{background-size:100% 5px}
.motion-ready .draw-path{stroke-dasharray:var(--path-length);stroke-dashoffset:var(--path-length);transition:stroke-dashoffset 2s cubic-bezier(.4,0,.2,1) .3s}
.motion-ready .has-entered .draw-path{stroke-dashoffset:0}
.motion-ready .wall-marks path:nth-child(2){transition-delay:.6s}.motion-ready .wall-marks path:nth-child(3){transition-delay:1s}.motion-ready .wall-marks path:nth-child(4){transition-delay:1.3s}
.timeline{position:relative;padding-left:24px}.timeline:before,.timeline:after{content:'';position:absolute;top:0;left:0;width:2px;height:calc(100% - 35px);background:#ffffff33;transform-origin:top}.timeline:after{background:#b6ef48;transform:scaleY(var(--line-progress,1))}.timeline article{position:relative}.timeline article:before{content:'';width:8px;height:8px;border:2px solid #b6ef48;background:#2455e8;position:absolute;left:-29px;top:21px;transform:rotate(45deg)}
.area-body{animation:ink-appear .5s ease both}@keyframes ink-appear{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
.expand{transition:transform .35s ease}summary strong{transition:color .25s ease,translate .3s ease}summary:hover strong{color:#2359ea;translate:4px 0}.whatsapp-contact{transition:background .25s,box-shadow .25s,transform .3s}.whatsapp-contact:hover{transform:rotate(0) translateY(-3px);box-shadow:6px 6px 0 #b6ef4844}.name-crown{transition:transform .4s cubic-bezier(.2,.8,.2,1)}.signature:hover .name-crown{transform:rotate(6deg) translateY(-3px)}.back-top:hover svg{transform:rotate(4deg)}.back-top svg{transition:transform .3s ease}.art img{scale:1.015}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-item{opacity:1!important;translate:none!important;clip-path:none!important}.draw-path{stroke-dashoffset:0!important}.art img{scale:1}.timeline:after{transform:none}}
/* El título permanece visible; su entrada no depende del observador. */
.motion-ready h1.motion-item,.motion-ready h1.has-entered{clip-path:none;opacity:1;translate:none;transition:none}
.motion-ready h1 .design,.motion-ready h1 .technology{animation:hero-word-in .85s cubic-bezier(.16,1,.3,1) backwards}
.motion-ready h1 .technology{animation-delay:.12s}
@keyframes hero-word-in{from{transform:translateY(20px) rotate(1deg)}to{transform:translateY(0) rotate(0)}}
.motion-ready h1 .design:after{scale:1 1;animation:hero-line-in 1s cubic-bezier(.7,0,.2,1) .3s backwards}
@keyframes hero-line-in{from{scale:0 1}to{scale:1 1}}
/* Tinta sobre el retrato: dibujo secuencial, fuera del rostro. */
.portrait-graffiti{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:visible}.portrait-stroke,.tag-letters path{stroke-dasharray:1000;stroke-dashoffset:0}.graffiti-animate .portrait-stroke,.graffiti-animate .tag-letters path{animation:portrait-ink 1.8s cubic-bezier(.45,0,.2,1) both;stroke-dasharray:var(--ink-length,1000)}.graffiti-animate .portrait-stroke:nth-child(1){animation-delay:.5s}.graffiti-animate .portrait-stroke:nth-child(2){animation-delay:1s}.graffiti-animate .portrait-stroke:nth-child(3){animation-delay:1.7s}.graffiti-animate .portrait-stroke:nth-child(4){animation-delay:2.2s}.graffiti-animate .tag-letters path{animation-duration:.65s;animation-delay:calc(2.5s + var(--letter,0)*.22s)}.graffiti-animate .tag-underline{animation-delay:3.6s;animation-duration:1s}.graffiti-animate .tag-back{animation:tag-ground .7s 2.2s both}.freck-tag{filter:drop-shadow(1px 2px 0 #12242a66)}@keyframes portrait-ink{from{stroke-dashoffset:var(--ink-length,1000)}to{stroke-dashoffset:0}}@keyframes tag-ground{from{opacity:0}to{opacity:1}}.dino-illustration:after{display:none}
@media(max-width:800px){.portrait-graffiti{inset:0}}
@media(prefers-reduced-motion:reduce){.portrait-stroke,.tag-letters path{stroke-dashoffset:0!important}.tag-back{opacity:1!important}}
/* Explorador de servicios y respuestas táctiles */
.services-explorer{border-top:0;min-width:0}.service-tabs{display:flex;gap:5px;overflow-x:auto;border-bottom:2px solid #2359ea;scrollbar-width:thin;scrollbar-color:#2359ea #e1dfd2;padding-bottom:9px;position:relative}.service-tab{font:inherit;background:transparent;border:0;cursor:pointer;text-align:left;color:#34443f;padding:14px 10px;flex:1;min-width:110px;transition:background .25s,color .25s,transform .25s}.service-tab span:first-child{font:11px 'Courier New',monospace;display:block;margin-bottom:10px}.service-tab span:last-child{font-family:'Barlow Condensed',Impact,sans-serif;font-size:22px;font-weight:700;line-height:1.1;display:block}.service-tab[aria-selected=true]{background:#2359ea;color:white}.service-tab:hover:not([aria-selected=true]){background:#d9e6cb;transform:translateY(-3px)}.service-stage{min-height:355px;background:#fffdf4;border-bottom:1px solid #2359ea44}.service-panel{padding:30px;animation:service-slide .4s cubic-bezier(.2,.7,.2,1)}.service-panel[hidden]{display:none}.service-panel h3{font-family:'Barlow Condensed',Impact,sans-serif;text-transform:uppercase;font-size:39px;line-height:1.1;margin:0 0 7px}.service-tagline{font-size:13px;color:#2359ea;margin-bottom:23px}.service-panel .area-body{padding:0;animation:none;font-size:14px}.service-panel .area-body>p{margin-bottom:15px}.service-controls{display:flex;align-items:center;justify-content:flex-end;gap:17px;padding-top:16px}.service-controls>span{font:12px 'Courier New',monospace}.service-controls button{width:43px;height:43px;border:1px solid #2359ea;background:transparent;color:#2359ea;font-size:23px;cursor:pointer;transition:background .2s,transform .2s}.service-controls button:hover{background:#b6ef48;transform:translateY(-2px)}.service-tab:focus-visible,.service-panel:focus-visible,.service-controls button:focus-visible{outline:3px solid #2359ea;outline-offset:3px}@keyframes service-slide{from{opacity:0;transform:translateX(15px)}to{opacity:1;transform:translateX(0)}}
.education-list article{position:relative;transition:transform .35s ease,background .35s ease,box-shadow .35s ease}.education-list article:hover,.education-list article:focus-within{transform:translateX(7px);background:#ffffff33;box-shadow:-5px 0 0 #215a72;padding-left:12px}.education-list article h3{transition:color .3s}.education-list article:hover h3{color:#174b70}.education-intro h2{transition:transform .45s cubic-bezier(.2,.8,.2,1)}.education-intro h2:hover{transform:rotate(-1.5deg) translateY(-3px)}.education-intro .hand{display:inline-block;transition:color .3s,transform .4s}.education-intro h2:hover .hand{color:#195847;transform:translateX(5px)}.education-crown{transition:transform .4s}.education-intro:hover .education-crown{transform:rotate(3deg) translateY(-5px)}.dino-illustration{border-bottom:3px solid #32d4ce}.dino-illustration:before{content:'';position:absolute;width:100px;height:12px;bottom:-6px;left:10px;background:#b6ef48;transform:rotate(-4deg);z-index:-1}.education-list article:hover{padding-right:0}
@media(max-width:800px){.service-tabs{scroll-snap-type:x proximity;gap:8px}.service-tab{flex:0 0 36%;min-width:120px;scroll-snap-align:center;padding:14px}.service-tab span:last-child{font-size:24px}.service-panel{padding:25px 22px}.service-panel h3{font-size:34px}.service-stage{min-height:370px}.service-controls{justify-content:space-between}.education-list article:hover{transform:none}.dino-illustration{margin-bottom:12px}}
@media(hover:none){.education-list article:active{background:#ffffff55;transform:scale(.99)}.service-tab:active,.service-controls button:active{transform:scale(.97)}}
@media(prefers-reduced-motion:reduce){.education-list article:hover,.education-intro h2:hover,.education-intro h2:hover .hand,.education-intro:hover .education-crown,.service-tab:hover,.service-controls button:hover{transform:none}}
/* Servicios: introducción completa, ilustración y explorador con anchura real. */
.capabilities{display:block;max-width:none;background:#e5eada;padding-inline:max(6%,calc((100vw - 1268px)/2))}.capabilities .section-heading{max-width:900px;margin-bottom:48px}.capabilities .section-heading h2{font-size:clamp(44px,5.5vw,76px);max-width:850px;margin-bottom:22px}.capabilities .section-heading h2 br{display:none}.capabilities .section-heading>p:last-child{max-width:690px;font-size:16px;line-height:1.8}.capabilities-content{display:grid;grid-template-columns:minmax(200px,.65fr) minmax(0,1.35fr);gap:55px;align-items:center}.capabilities-content .dino-illustration{width:100%;height:auto;aspect-ratio:1/1.2;max-width:330px;justify-self:center;margin:0 0 15px}.services-explorer{width:100%;min-width:0}.service-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow:visible;border:0;scrollbar-width:none;padding:0 0 12px}.service-tab{min-width:0;padding:15px 12px;min-height:101px;flex:initial;border-bottom:2px solid #2359ea44}.service-tab span:last-child{font-size:23px;line-height:1.12;overflow-wrap:anywhere;hyphens:auto}.service-tab[aria-selected=true]{border-bottom-color:#2359ea}.service-stage{min-height:370px;background:#f8f8ee;border:1px solid #c6d4bc;border-top:3px solid #2359ea}.service-panel{padding:30px 32px}.service-panel h3{font-size:clamp(29px,3.2vw,41px);overflow-wrap:anywhere}.service-controls{justify-content:flex-end}.service-controls button{width:46px;height:46px}.service-panel .area-body{font-size:15px;line-height:1.8}.service-panel .area-body li{padding-bottom:8px}
@media(max-width:1000px){.capabilities-content{grid-template-columns:minmax(150px,.5fr) minmax(0,1.5fr);gap:30px}.service-tab{padding:13px 9px}.service-tab span:last-child{font-size:21px}.service-panel{padding:25px}.capabilities .section-heading{margin-bottom:35px}}
@media(max-width:650px){.capabilities-content{display:flex;flex-direction:column;gap:35px;align-items:stretch}.capabilities-content .services-explorer{order:0}.capabilities-content .dino-illustration{order:1;width:190px;max-width:55%;height:auto;aspect-ratio:1/1.2;align-self:center;margin:0 0 10px}.capabilities .section-heading h2{font-size:clamp(43px,9.5vw,61px);line-height:1.08}.capabilities .section-heading>p:last-child{font-size:15px;line-height:1.75}.service-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-bottom:14px}.service-tab{min-height:87px;padding:13px 15px;border:1px solid #2359ea33;background:#f8f8ee}.service-tab span:first-child{margin-bottom:6px}.service-tab span:last-child{font-size:24px;overflow-wrap:normal}.service-stage{min-height:0}.service-panel{padding:24px 22px}.service-panel h3{font-size:32px;line-height:1.1}.service-tagline{line-height:1.6}.service-panel .area-body{font-size:14px;line-height:1.8}.service-controls{justify-content:space-between;padding-top:16px}.service-tab:hover:not([aria-selected=true]){transform:none}}
@media(min-width:651px) and (max-width:1100px){.service-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.service-tab{min-height:78px}.service-tab span:last-child{overflow-wrap:normal;font-size:24px}}
@media(max-width:650px){.service-tab span:last-child{font-size:22px;hyphens:none}.service-tab{padding-inline:12px}}
/* Acordeón exclusivo, cabecera con arte y papel cálido neutro. */
.capabilities{background:#f2f0e6}.capabilities .section-heading{position:relative;max-width:none;display:grid;grid-template-columns:minmax(0,1fr) 225px;column-gap:45px;align-items:center;margin-bottom:40px}.capabilities .section-heading>.eyebrow,.capabilities .section-heading>h2,.capabilities .section-heading>p{grid-column:1}.capabilities .section-heading>.eyebrow{grid-row:1}.capabilities .section-heading>h2{grid-row:2}.capabilities .section-heading>p:last-of-type{grid-row:3;max-width:700px}.section-heading>.dino-illustration{grid-column:2;grid-row:1/4;width:215px;height:265px;margin:0;justify-self:end;align-self:center;border:0}.section-heading>.dino-illustration:before{display:none}.capabilities-content{display:block;max-width:1000px;margin:auto}.areas{border-top:2px solid #2359ea;transform:none}.areas details{background:transparent;border-left:0;border-bottom:1px solid #18221e33;box-shadow:none}.areas details[open]{border-left:0;box-shadow:none;background:transparent}.areas summary,.areas details[open] summary{padding:23px 18px;gap:23px;transition:background .25s}.areas summary:hover{background:#e3eadd}.areas summary strong{font-family:'Barlow Condensed',Impact,sans-serif;font-size:33px;text-transform:none;letter-spacing:0}.areas summary small{font-size:13px;line-height:1.5}.areas summary .area-number{padding-top:8px;color:#2359ea}.areas details[open] summary{color:#2359ea}.areas .area-body{background:#fffef8;border:1px solid #d6dccc;border-left:3px solid #2359ea;margin:0 18px 24px 54px;padding:25px 29px;font-size:15px;line-height:1.8}.areas .area-body p{margin-bottom:15px}.areas .area-body ul{margin-top:0}.areas .expand{font-size:29px;flex:none}.areas details[open] .expand{transform:rotate(45deg)}
@media(max-width:800px){.capabilities .section-heading{grid-template-columns:minmax(0,1fr) 150px;gap:0 25px}.section-heading>.dino-illustration{width:150px;height:205px}.capabilities .section-heading h2{font-size:49px}.areas summary strong{font-size:30px}}
@media(max-width:560px){.capabilities .section-heading{display:block;margin-bottom:28px}.capabilities .section-heading h2{font-size:44px}.section-heading>.dino-illustration{width:125px;height:160px;margin:15px 0 0 auto}.areas summary,.areas details[open] summary{padding:20px 6px;gap:14px}.areas summary strong{font-size:29px}.areas summary small{font-size:12px}.areas .area-body{margin:0 0 20px 0;padding:21px 20px;font-size:14px}.areas .area-number{font-size:10px}.capabilities-content{width:100%}}
.service-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 32px;margin:25px 0}.service-offer{border-top:1px solid #2359ea33;padding-top:15px}.service-offer h3{font-family:'DM Sans',Arial,sans-serif;font-size:16px;font-weight:700;line-height:1.4;color:#1a4a65;margin:0 0 8px}.service-offer p{font-size:14px;line-height:1.8;margin:0!important}.service-intro{font-size:16px;max-width:760px}.service-cta{display:inline-flex;gap:18px;align-items:center;padding:12px 17px;background:#b6ef48;color:#14221e;font-size:13px;font-weight:700;margin-top:4px;transition:background .2s,transform .2s}.service-cta:hover{background:#40d8db;transform:translateY(-2px)}.service-cta:focus-visible{outline:3px solid #2359ea;outline-offset:4px}.areas summary strong{font-size:33px}@media(max-width:600px){.service-offers{grid-template-columns:1fr;gap:19px}.service-intro{font-size:14px}.service-offer h3{font-size:15px}.service-offer p{font-size:13px}.service-cta{max-width:100%;font-size:12px}.areas summary strong{font-size:28px}.areas summary small{max-width:245px}}
/* Arte disuelto en la pared del cierre, conservando libre la lectura. */
.contact-art{position:absolute;right:6%;top:50%;width:34%;max-width:490px;aspect-ratio:500/600;transform:translateY(-46%) rotate(4deg);z-index:-1;pointer-events:none;isolation:isolate}.contact-art img{width:100%;height:100%;object-fit:cover;opacity:.53;mix-blend-mode:luminosity;mask-image:radial-gradient(ellipse 48% 46% at 51% 51%,#000 33%,#000b 50%,transparent 83%);-webkit-mask-image:radial-gradient(ellipse 48% 46% at 51% 51%,#000 33%,#000b 50%,transparent 83%)}.contact-art-ink{position:absolute;inset:0;width:100%;height:100%;opacity:.8}.contact-art-ink path{stroke-dasharray:1000;animation:contact-paint 2.8s ease both}@keyframes contact-paint{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
@media(min-width:1101px){.contact h2{max-width:65%;font-size:clamp(65px,6.2vw,105px)}.contact h2 svg{width:110px;margin-left:15px}.contact .wall-marks{opacity:.35}.contact .whatsapp-contact{position:relative;z-index:2}}
@media(max-width:1100px){.contact-art{display:none}}
@media(prefers-reduced-motion:reduce){.contact-art-ink path{animation:none}}
/* Trazos de retrato más presentes en monitores grandes. */
.portrait-graffiti{filter:drop-shadow(0 2px 2px #10201c);}.portrait-graffiti .portrait-stroke{stroke-width:4.5}.portrait-graffiti .tag-letters path{stroke-width:7}.portrait-graffiti .tag-back{fill-opacity:.85}.graffiti-animate .portrait-stroke{animation-duration:2.6s}.graffiti-animate .portrait-stroke:nth-child(1){animation-delay:.7s}.graffiti-animate .portrait-stroke:nth-child(2){animation-delay:1.5s}.graffiti-animate .portrait-stroke:nth-child(3){animation-delay:2.4s}.graffiti-animate .portrait-stroke:nth-child(4){animation-delay:3.1s}.graffiti-animate .tag-letters path{animation-duration:1s;animation-delay:calc(3.5s + var(--letter,0)*.38s)}.graffiti-animate .tag-underline{animation-delay:5.8s;animation-duration:1.5s}.graffiti-animate .tag-back{animation-delay:3.2s}
@media(min-width:1400px){.portrait-graffiti .portrait-stroke{stroke-width:6}.portrait-graffiti .tag-letters path{stroke-width:8}.portrait-graffiti{filter:drop-shadow(0 2px 3px #10201c)}.freck-tag{transform:translate(286px,615px) rotate(-11deg) scale(1.08);transform-origin:0 0}}
@media(max-width:800px){.portrait-graffiti .portrait-stroke{stroke-width:4}.portrait-graffiti .tag-letters path{stroke-width:6}}
/* El grafiti usa el área visible, sin el recorte vertical de object-fit/slice. */
.portrait-graffiti{height:min(100%,calc(100svh - 105px));min-height:0;top:0;bottom:auto;overflow:visible}.freck-tag{transform:translate(315px,570px) rotate(-11deg);transform-origin:0 0}
@media(min-width:1400px){.portrait-graffiti{height:min(100%,calc(100svh - 105px))}.freck-tag{transform:translate(302px,565px) rotate(-11deg) scale(1.02)}}
@media(max-width:800px){.portrait-graffiti{height:100%;top:0}.freck-tag{transform:translate(300px,600px) rotate(-11deg)}}

.whatsapp-contact>.whatsapp-arrow{width:25px;height:25px;flex:0 0 25px;margin-left:10px}
@media(max-width:500px){.whatsapp-contact>.whatsapp-arrow{width:22px;height:22px;flex-basis:22px;margin-left:0}}
