/* =========================================================
   MindShot Home V2.12 — Editorial motion system
   Motion is opt-in through .v212-motion-ready (JS).
   ========================================================= */

.home-v212{--v212-ease:cubic-bezier(.16,1,.3,1);--v212-soft:cubic-bezier(.22,.61,.36,1)}

/* Page arrival: only framing elements. Hero typography keeps its V2.11 sequence. */
.home-v212.v212-motion-ready .site-header{opacity:0;transform:translate3d(0,-10px,0)}
.home-v212.v212-motion-ready.v212-page-ready .site-header{opacity:1;transform:none;transition:opacity .65s ease,transform .8s var(--v212-ease)}

/* Generic editorial motion primitives. */
.home-v212.v212-motion-ready .v212-rise,
.home-v212.v212-motion-ready .v212-row,
.home-v212.v212-motion-ready .v212-project,
.home-v212.v212-motion-ready .v212-scale,
.home-v212.v212-motion-ready .v212-line-item{
  opacity:0;
  will-change:transform,opacity,clip-path;
}
.home-v212.v212-motion-ready .v212-rise{transform:translate3d(0,26px,0);transition:opacity .78s ease,transform .92s var(--v212-ease)}
.home-v212.v212-motion-ready .v212-rise.v212-in{opacity:1;transform:none}

.home-v212.v212-motion-ready .v212-mask{
  clip-path:inset(0 0 105% 0);
  transform:translate3d(0,14px,0);
  transition:clip-path .95s var(--v212-ease),transform .95s var(--v212-ease)
}
.home-v212.v212-motion-ready .v212-mask.v212-in{clip-path:inset(0 0 0 0);transform:none}

.home-v212.v212-motion-ready .v212-image-wipe{clip-path:inset(0 100% 0 0);transition:clip-path 1.05s var(--v212-ease)}
.home-v212.v212-motion-ready .v212-image-wipe.v212-in{clip-path:inset(0 0 0 0)}

.home-v212.v212-motion-ready .v212-scale{transform:scale(.975);transition:opacity .75s ease,transform 1s var(--v212-ease)}
.home-v212.v212-motion-ready .v212-scale.v212-in{opacity:1;transform:scale(1)}

/* 01 / What we do — copy and image meet in the middle. */
.home-v212 .v2-statement{position:relative}
.home-v212 .v2-statement::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:linear-gradient(90deg,#22d3ee,#8b5cf6,#d90097);transition:width 1.15s var(--v212-ease)}
.home-v212 .v2-statement.v212-section-in::after{width:100%}
.home-v212.v212-motion-ready .v22-statement-list>div{opacity:0;transform:translate3d(16px,0,0);transition:opacity .55s ease,transform .72s var(--v212-ease);transition-delay:calc(var(--v212-i,0) * 95ms + 240ms)}
.home-v212.v212-motion-ready .v22-statement-side.v212-in .v22-statement-list>div{opacity:1;transform:none}
.home-v212 .v22-statement-photo{transform:translate3d(0,var(--v212-parallax-y,0px),0) scale(1.035);transition:transform .2s linear}

/* 02 / Services — rows behave like an editorial index rather than cards. */
.home-v212.v212-motion-ready .v2-service-list>a.v212-row{transform:translate3d(-22px,0,0);transition:opacity .58s ease,transform .78s var(--v212-ease);transition-delay:calc(var(--v212-i,0) * 46ms)}
.home-v212.v212-motion-ready .v2-service-list>a.v212-row.v212-in{opacity:1;transform:none}
.home-v212 .v2-services.v212-section-in .v2-head::after{transform:scaleX(1)}
.home-v212 .v2-services .v2-head{position:relative}
.home-v212 .v2-services .v2-head::after{content:"";position:absolute;left:0;right:0;bottom:-22px;height:1px;background:var(--v2-line);transform:scaleX(0);transform-origin:left;transition:transform .95s var(--v212-ease)}

/* 03 / Integrated — build the system from two directions. */
.home-v212.v212-motion-ready .v2-integrated-grid>div:first-child{opacity:0;transform:translate3d(-34px,0,0);transition:opacity .75s ease,transform .95s var(--v212-ease)}
.home-v212.v212-motion-ready .v2-integrated-grid>div:nth-child(2){opacity:0;transform:translate3d(34px,0,0);transition:opacity .75s ease,transform .95s var(--v212-ease);transition-delay:.08s}
.home-v212.v212-motion-ready .v2-integrated.v212-section-in .v2-integrated-grid>div{opacity:1;transform:none}
.home-v212.v212-motion-ready .v2-scenario{opacity:0;transform:translate3d(0,16px,0);transition:opacity .55s ease,transform .7s var(--v212-ease);transition-delay:calc(var(--v212-i,0) * 85ms + 260ms)}
.home-v212.v212-motion-ready .v2-integrated.v212-section-in .v2-scenario{opacity:1;transform:none}
.home-v212 .v21-integrated-type{transform:translate3d(0,var(--v212-type-y,0px),0);will-change:transform}
.home-v212 .v21-integrated-type span{transition:letter-spacing 1.15s var(--v212-ease)}
.home-v212 .v2-integrated.v212-section-in .v21-integrated-type span{letter-spacing:-.08em}

/* 04 / Selected work — portfolio pieces arrive with image masks, not generic fades. */
.home-v212.v212-motion-ready .v210-feature.v212-project,
.home-v212.v212-motion-ready .v210-project-card.v212-project{transform:translate3d(0,30px,0);transition:opacity .7s ease,transform .95s var(--v212-ease);transition-delay:calc(var(--v212-i,0) * 90ms)}
.home-v212.v212-motion-ready .v210-feature.v212-project.v212-in,
.home-v212.v212-motion-ready .v210-project-card.v212-project.v212-in{opacity:1;transform:none}
.home-v212.v212-motion-ready .v210-feature.v212-project .v210-feature-media,
.home-v212.v212-motion-ready .v210-project-card.v212-project .v210-card-media{clip-path:inset(0 0 100% 0);transition:clip-path 1s var(--v212-ease);transition-delay:calc(var(--v212-i,0) * 90ms + 100ms)}
.home-v212.v212-motion-ready .v210-feature.v212-project.v212-in .v210-feature-media,
.home-v212.v212-motion-ready .v210-project-card.v212-project.v212-in .v210-card-media{clip-path:inset(0)}
.home-v212 .v210-feature-media img,
.home-v212 .v210-card-media img{transform:translate3d(0,var(--v212-parallax-y,0px),0) scale(1.035);transition:transform .3s linear}
.home-v212 .v210-feature:hover .v210-feature-media img,
.home-v212 .v210-project-card:hover .v210-card-media img{transform:translate3d(0,var(--v212-parallax-y,0px),0) scale(1.065)}
.home-v212.v212-motion-ready .v210-project-no{opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .6s var(--v212-ease);transition-delay:calc(var(--v212-i,0) * 90ms + 520ms)}
.home-v212.v212-motion-ready .v212-project.v212-in .v210-project-no{opacity:1;transform:none}

/* 05 / Products — each product line draws itself into the section. */
.home-v212.v212-motion-ready .v2-product-lines>a.v212-line-item{transform:translate3d(22px,0,0);transition:opacity .55s ease,transform .75s var(--v212-ease);transition-delay:calc(var(--v212-i,0) * 120ms + 160ms)}
.home-v212.v212-motion-ready .v2-products.v212-section-in .v2-product-lines>a.v212-line-item{opacity:1;transform:none}

/* 06 / Process — the sequence steps in, without a progress bar. */
.home-v212.v212-motion-ready .v2-process li.v212-row{transform:translate3d(0,24px,0);transition:opacity .55s ease,transform .75s var(--v212-ease);transition-delay:calc(var(--v212-i,0) * 75ms)}
.home-v212.v212-motion-ready .v2-process li.v212-row.v212-in{opacity:1;transform:none}
.home-v212.v212-motion-ready .v2-process li.v212-row strong{transform:translateX(-8px);transition:transform .7s var(--v212-ease);transition-delay:calc(var(--v212-i,0) * 75ms + 80ms)}
.home-v212.v212-motion-ready .v2-process li.v212-row.v212-in strong{transform:none}

/* 07 / History — a physical, slightly slower reveal. */
.home-v212.v212-motion-ready .v2-history .number.v212-scale strong{display:block;transform:translate3d(0,22px,0);transition:transform 1s var(--v212-ease)}
.home-v212.v212-motion-ready .v2-history .number.v212-scale.v212-in strong{transform:none}
.home-v212 .v22-history-photo{transform:translate3d(0,var(--v212-parallax-y,0px),0) scale(1.04);transition:transform .25s linear}

/* 08 / Trust — calm, almost typographic. */
.home-v212.v212-motion-ready .v2-clients>span{opacity:0;transform:translateY(9px);transition:opacity .4s ease,transform .6s var(--v212-ease);transition-delay:calc(var(--v212-i,0) * 65ms + 140ms)}
.home-v212.v212-motion-ready .v2-clients.v212-in>span{opacity:1;transform:none}
.home-v212.v212-motion-ready .v2-empty-metric strong{display:inline-block;transform:scaleX(.55);transform-origin:left;transition:transform .9s var(--v212-ease)}
.home-v212.v212-motion-ready .v2-empty-metric.v212-in strong{transform:scaleX(1)}

/* 09 / CTA — poster comes alive once, then rests. */
.home-v212 .v2-cta{--v212-cta-x:50%;background-position:var(--v212-cta-x) 50%;transition:background-position .25s linear}
.home-v212.v212-motion-ready .v2-cta .container{opacity:0;transform:translate3d(0,28px,0);transition:opacity .7s ease,transform .95s var(--v212-ease)}
.home-v212.v212-motion-ready .v2-cta.v212-section-in .container{opacity:1;transform:none}
.home-v212.v212-motion-ready .v2-cta h2>span,
.home-v212.v212-motion-ready .v2-cta h2>em{display:block;clip-path:inset(0 0 105% 0);transform:translateY(12px);transition:clip-path .85s var(--v212-ease),transform .85s var(--v212-ease)}
.home-v212.v212-motion-ready .v2-cta.v212-section-in h2>span,
.home-v212.v212-motion-ready .v2-cta.v212-section-in h2>em{clip-path:inset(0);transform:none}
.home-v212.v212-motion-ready .v2-cta.v212-section-in h2>span:nth-child(2){transition-delay:.10s}
.home-v212.v212-motion-ready .v2-cta.v212-section-in h2>em{transition-delay:.20s}
.home-v212.v212-motion-ready .v2-cta a{transform:translateY(10px);opacity:0;transition:opacity .55s ease,transform .75s var(--v212-ease);transition-delay:.34s}
.home-v212.v212-motion-ready .v2-cta.v212-section-in a{opacity:1;transform:none}

/* JS progress values are intentionally tiny: they add depth, not spectacle. */
.home-v212 .v212-parallax{will-change:transform}

@media(max-width:900px){
  .home-v212.v212-motion-ready .v2-integrated-grid>div:first-child,
  .home-v212.v212-motion-ready .v2-integrated-grid>div:nth-child(2){transform:translate3d(0,24px,0)}
  .home-v212.v212-motion-ready .v2-integrated.v212-section-in .v2-integrated-grid>div{transform:none}
}

@media(max-width:680px){
  .home-v212.v212-motion-ready .v2-service-list>a.v212-row{transform:translate3d(-12px,0,0);transition-delay:calc(var(--v212-i,0) * 32ms)}
  .home-v212.v212-motion-ready .v2-process li.v212-row{transition-delay:calc(var(--v212-i,0) * 48ms)}
  .home-v212.v212-motion-ready .v210-feature.v212-project,
  .home-v212.v212-motion-ready .v210-project-card.v212-project{transition-delay:calc(var(--v212-i,0) * 55ms)}
  .home-v212 .v22-statement-photo,
  .home-v212 .v210-feature-media img,
  .home-v212 .v210-card-media img,
  .home-v212 .v22-history-photo{transform:none!important}
}

@media(prefers-reduced-motion:reduce){
  .home-v212.v212-motion-ready .site-header,
  .home-v212.v212-motion-ready .v212-rise,
  .home-v212.v212-motion-ready .v212-row,
  .home-v212.v212-motion-ready .v212-project,
  .home-v212.v212-motion-ready .v212-scale,
  .home-v212.v212-motion-ready .v212-line-item,
  .home-v212.v212-motion-ready .v2-integrated-grid>div,
  .home-v212.v212-motion-ready .v2-scenario,
  .home-v212.v212-motion-ready .v22-statement-list>div,
  .home-v212.v212-motion-ready .v2-clients>span,
  .home-v212.v212-motion-ready .v2-cta .container,
  .home-v212.v212-motion-ready .v2-cta a{
    opacity:1!important;transform:none!important;transition:none!important
  }
  .home-v212.v212-motion-ready .v212-mask,
  .home-v212.v212-motion-ready .v212-image-wipe,
  .home-v212.v212-motion-ready .v210-feature.v212-project .v210-feature-media,
  .home-v212.v212-motion-ready .v210-project-card.v212-project .v210-card-media,
  .home-v212.v212-motion-ready .v2-cta h2>span,
  .home-v212.v212-motion-ready .v2-cta h2>em{clip-path:none!important;transform:none!important;transition:none!important}
  .home-v212.v212-motion-ready .v2-product-lines>a.v212-line-item{opacity:1!important;transform:none!important}
  .home-v212 .v21-integrated-type,.home-v212 .v22-statement-photo,.home-v212 .v210-feature-media img,.home-v212 .v210-card-media img,.home-v212 .v22-history-photo{transform:none!important}
}

/* Footer — quiet closing cadence. */
.home-v212.v212-motion-ready .site-footer .v212-footer-item{opacity:0;transform:translate3d(0,16px,0);transition:opacity .55s ease,transform .72s var(--v212-ease);transition-delay:calc(var(--v212-i,0) * 55ms)}
.home-v212.v212-motion-ready .site-footer.v212-section-in .v212-footer-item{opacity:1;transform:none}
.home-v212.v212-motion-ready .site-footer .footer-bottom{opacity:0;transition:opacity .55s ease .26s}
.home-v212.v212-motion-ready .site-footer.v212-section-in .footer-bottom{opacity:1}
@media(prefers-reduced-motion:reduce){
  .home-v212.v212-motion-ready .site-footer .v212-footer-item,.home-v212.v212-motion-ready .site-footer .footer-bottom{opacity:1!important;transform:none!important;transition:none!important}
}

/* V2.12.1 — robust fallback for fully clipped reveal nodes.
   The section observer owns the reveal so content can never remain invisible. */
.home-v212.v212-motion-ready .v2-statement.v212-section-in .v22-statement-copy.v212-mask{
  clip-path:inset(0);transform:none;
}
.home-v212.v212-motion-ready .v2-statement.v212-section-in .v22-statement-side.v212-rise{
  opacity:1;transform:none;
}
.home-v212.v212-motion-ready .v2-statement.v212-section-in .v22-statement-visual.v212-image-wipe{
  clip-path:inset(0);
}
.home-v212.v212-motion-ready .v2-history.v212-section-in .v212-image-wipe{
  clip-path:inset(0);
}

/* V2.12.2 — Hero headline as the main motion moment.
   Four different gestures, one editorial sequence. No loops. */
.home-v212 .v211-hero-line{isolation:isolate}

/* Override the earlier generic rise with a more composed four-beat sequence. */
.home-v212 .v211-reveal-piece{
  animation:none;
  opacity:0;
  filter:none;
  will-change:transform,opacity,clip-path,filter;
}

/* 01 — Structural word: weight coming up from the baseline. */
.home-v212 .v211-piece--1{
  transform:translate3d(0,1.08em,0) scaleY(.96);
  transform-origin:left bottom;
  animation:v2122-impulsamos 1.02s .12s cubic-bezier(.16,1,.3,1) forwards;
}

/* 02 — Expressive word: diagonal mask + one-time chromatic travel. */
.home-v212 .v211-piece--2{
  transform:translate3d(.18em,.62em,0) rotate(2.2deg);
  transform-origin:left bottom;
  clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%);
  background-size:230% 100%;
  background-position:0% 50%;
  animation:
    v2122-ideas-reveal 1.02s .42s cubic-bezier(.16,1,.3,1) forwards,
    v2122-ideas-ink 1.15s .70s cubic-bezier(.16,1,.3,1) forwards;
}

/* 03 — Second structural word answers from the side, not from below. */
.home-v212 .v211-piece--3{
  transform:translate3d(-.34em,.08em,0) skewX(-5deg);
  clip-path:inset(0 100% 0 0);
  transform-origin:left center;
  animation:v2122-construimos .98s .76s cubic-bezier(.16,1,.3,1) forwards;
}

/* 04 — Outline is revealed horizontally; a color wash passes once inside it. */
.home-v212 .v211-piece--4{
  transform:translate3d(.10em,0,0);
  clip-path:inset(0 100% 0 0);
  animation:v2122-soluciones-reveal 1.12s 1.03s cubic-bezier(.16,1,.3,1) forwards;
}
.home-v212 .v211-piece--4::before{
  content:attr(data-word);
  position:absolute;
  inset:0;
  font:inherit;
  letter-spacing:inherit;
  color:transparent;
  -webkit-text-stroke:0;
  background:linear-gradient(90deg,var(--v21-cyan),#5f8cff 34%,var(--v21-violet) 66%,var(--v21-magenta));
  -webkit-background-clip:text;
  background-clip:text;
  clip-path:inset(0 100% 0 0);
  opacity:0;
  animation:v2122-solution-wash 1.04s 1.28s cubic-bezier(.16,1,.3,1) forwards;
  pointer-events:none;
}

/* Underline waits for the outline to settle. */
.home-v212 .v21-word--solutions::after{
  animation:none;
  transform:scaleX(0);
  animation:v211-underline-draw .76s 1.72s cubic-bezier(.16,1,.3,1) forwards;
}

/* Trajectory answers the completed headline. */
.home-v212 .v21-flight-path:not(.v21-flight-path--ghost){animation-delay:1.48s;animation-duration:1.55s}
.home-v212 .v21-flight-runner{animation-delay:2.86s}
.home-v212 .v21-coord,.home-v212 .v21-cross,.home-v212 .v21-flight-node{animation-delay:1.98s}
.home-v212 .coord-b,.home-v212 .cross-b,.home-v212 .node-b{animation-delay:2.14s}
.home-v212 .coord-c{animation-delay:2.30s}

/* Support content waits until the headline has become readable. */
.home-v212 .v211-hero-support{animation-delay:1.46s}
.home-v212 .v211-hero-proof{animation-delay:1.68s}

@keyframes v2122-impulsamos{
  0%{opacity:0;transform:translate3d(0,1.08em,0) scaleY(.96)}
  52%{opacity:1}
  100%{opacity:1;transform:translate3d(0,0,0) scaleY(1)}
}
@keyframes v2122-ideas-reveal{
  0%{opacity:0;transform:translate3d(.18em,.62em,0) rotate(2.2deg);clip-path:polygon(0 100%,100% 100%,100% 100%,0 100%)}
  22%{opacity:1}
  100%{opacity:1;transform:translate3d(0,0,0) rotate(0);clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
}
@keyframes v2122-ideas-ink{
  from{background-position:0% 50%}
  to{background-position:100% 50%}
}
@keyframes v2122-construimos{
  0%{opacity:0;transform:translate3d(-.34em,.08em,0) skewX(-5deg);clip-path:inset(0 100% 0 0)}
  30%{opacity:1}
  100%{opacity:1;transform:translate3d(0,0,0) skewX(0);clip-path:inset(0 0 0 0)}
}
@keyframes v2122-soluciones-reveal{
  0%{opacity:0;transform:translate3d(.10em,0,0);clip-path:inset(0 100% 0 0)}
  24%{opacity:1}
  100%{opacity:1;transform:translate3d(0,0,0);clip-path:inset(0 0 0 0)}
}
@keyframes v2122-solution-wash{
  0%{opacity:0;clip-path:inset(0 100% 0 0)}
  24%{opacity:.82}
  68%{opacity:.55;clip-path:inset(0 0 0 0)}
  100%{opacity:0;clip-path:inset(0 0 0 0)}
}

@media(max-width:680px){
  .home-v212 .v211-piece--1{animation-duration:.88s;animation-delay:.06s}
  .home-v212 .v211-piece--2{animation-duration:.90s,.96s;animation-delay:.29s,.48s}
  .home-v212 .v211-piece--3{animation-duration:.88s;animation-delay:.57s}
  .home-v212 .v211-piece--4{animation-duration:.94s;animation-delay:.80s}
  .home-v212 .v211-piece--4::before{animation-duration:.88s;animation-delay:1.00s}
  .home-v212 .v21-word--solutions::after{animation-delay:1.32s}
  .home-v212 .v21-flight-path:not(.v21-flight-path--ghost){animation-delay:1.13s}
  .home-v212 .v211-hero-support{animation-delay:1.22s}
  .home-v212 .v211-hero-proof{animation-delay:1.42s}
}

@media(prefers-reduced-motion:reduce){
  .home-v212 .v211-reveal-piece{opacity:1!important;transform:none!important;clip-path:none!important;animation:none!important}
  .home-v212 .v211-piece--4::before{display:none!important}
  .home-v212 .v21-word--solutions::after{transform:scaleX(.7);animation:none!important}
}
