/* Shared motion language for every public page. */
:root{
  --motion-ease:cubic-bezier(.22,.74,.16,1);
  --motion-ease-soft:cubic-bezier(.2,.65,.28,1);
}

body.loader-running{overflow:hidden}
.site-loader{
  position:fixed;
  z-index:1000;
  inset:0;
  display:grid;
  place-items:center;
  background:radial-gradient(circle at 50% 42%,rgba(35,185,194,.08),transparent 28%),#071316;
  color:#edf5f3;
  clip-path:inset(0 0 0 0);
  transition:clip-path .42s var(--motion-ease),opacity .32s ease;
  overflow:hidden;
}
.site-loader[hidden]{display:none}
.site-loader::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--cyan),transparent);
  opacity:0;
  box-shadow:0 0 18px rgba(85,223,224,.55);
}
.site-loader-inner{display:grid;justify-items:center;text-align:center;padding:24px}
.site-loader-line{width:min(250px,58vw);height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);transform:scaleX(0);opacity:0}
.site-loader-logo{position:relative;width:180px;margin:24px 0 19px;border-radius:14px;overflow:hidden;clip-path:inset(100% 0 0 0);opacity:0}
.site-loader-logo::after{content:"";position:absolute;inset:-20% auto -20% -35%;width:28%;background:linear-gradient(100deg,transparent,rgba(225,255,255,.7),transparent);transform:translateX(-180%) rotate(8deg);opacity:0}
.site-loader-logo img{width:100%;height:auto}
.site-loader strong{font-size:12px;letter-spacing:.2em;opacity:0;transform:translateY(8px)}
.site-loader small{margin-top:8px;color:#7f9b98;font-size:8px;letter-spacing:.18em;opacity:0;transform:translateY(6px)}
.site-loader.is-ready .site-loader-line{animation:loaderLine .62s .04s var(--motion-ease) both}
.site-loader.is-ready .site-loader-logo{animation:loaderLogo .68s .18s var(--motion-ease) both}
.site-loader.is-ready .site-loader-logo::after{animation:loaderShine .58s .52s var(--motion-ease) both}
.site-loader.is-ready strong{animation:loaderText .42s .44s var(--motion-ease) both}
.site-loader.is-ready small{animation:loaderText .4s .55s var(--motion-ease) both}
.site-loader.is-exiting{clip-path:inset(0 0 100% 0)}
.site-loader.is-exiting::after{animation:loaderEdge .42s var(--motion-ease) both}

@keyframes loaderLine{0%{opacity:0;transform:scaleX(0)}100%{opacity:1;transform:scaleX(1)}}
@keyframes loaderLogo{0%{opacity:0;clip-path:inset(100% 0 0 0);transform:translateY(8px)}100%{opacity:1;clip-path:inset(0 0 0 0);transform:none}}
@keyframes loaderShine{0%{opacity:0;transform:translateX(-180%) rotate(8deg)}22%{opacity:.75}100%{opacity:0;transform:translateX(620%) rotate(8deg)}}
@keyframes loaderText{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:none}}
@keyframes loaderEdge{0%{opacity:0}30%{opacity:1}100%{opacity:0}}

.motion-ready [data-reveal]{
  opacity:0;
  transition:
    opacity .78s var(--motion-ease),
    transform .9s var(--motion-ease),
    clip-path 1s var(--motion-ease),
    filter .7s var(--motion-ease);
  transition-delay:var(--motion-delay,0ms);
}
.motion-ready [data-reveal="eyebrow"]{transform:translate3d(0,14px,0);letter-spacing:.035em}
.motion-ready [data-reveal="heading"]{transform:translate3d(0,34px,0);clip-path:inset(0 0 100% 0);filter:blur(5px)}
.motion-ready [data-reveal="text"]{transform:translate3d(0,22px,0)}
.motion-ready [data-reveal="left"]{transform:translate3d(-28px,0,0)}
.motion-ready [data-reveal="right"]{transform:translate3d(28px,0,0)}
.motion-ready [data-reveal="row"]{transform:translate3d(0,18px,0)}
.motion-ready [data-reveal="image"]{transform:translate3d(0,22px,0) scale(.992);clip-path:inset(9% 0 0 0 round 20px)}
.motion-ready [data-reveal="footer"]{transform:translate3d(0,18px,0)}
.motion-ready [data-reveal="cta"]{transform:scale(.955);filter:blur(4px)}
.motion-ready [data-reveal="assistant"]{transform:scale(.92);filter:blur(5px)}
.motion-ready [data-reveal].is-revealed{
  opacity:1;
  transform:none;
  clip-path:inset(0 0 0 0 round 0);
  filter:none;
  letter-spacing:inherit;
}

[data-motion-line]{position:relative}
[data-motion-line]::before{
  content:"";
  position:absolute;
  z-index:2;
  top:-1px;
  left:0;
  width:100%;
  height:1px;
  background:linear-gradient(90deg,var(--cyan),rgba(85,223,224,.32) 56%,transparent);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform 1.05s var(--motion-ease);
  pointer-events:none;
}
[data-motion-line].is-line-visible::before{transform:scaleX(1)}

/* Composed homepage intro. */
.motion-ready .hero [data-hero-step]{opacity:0;will-change:transform,opacity,filter}
.motion-ready .hero [data-hero-step="eyebrow"]{transform:translate3d(0,14px,0)}
.motion-ready .hero [data-hero-step="line"]{transform:translate3d(0,42px,0);clip-path:inset(0 0 100% 0);filter:blur(7px)}
.motion-ready .hero [data-hero-step="copy"],
.motion-ready .hero [data-hero-step="actions"],
.motion-ready .hero [data-hero-step="meta"]{transform:translate3d(0,24px,0)}
.motion-ready .hero [data-hero-step="visual"]{transform:translate3d(0,28px,0) scale(.985);clip-path:inset(7% 0 0 0 round 34px)}
.motion-ready .hero [data-hero-step].is-revealed{
  opacity:1;
  transform:none;
  clip-path:inset(0 0 0 0 round 0);
  filter:none;
  transition:opacity .78s var(--motion-ease),transform .95s var(--motion-ease),clip-path 1.05s var(--motion-ease),filter .72s var(--motion-ease);
  transition-delay:var(--hero-delay,0ms);
}
.hero h1 .accent{position:relative;width:max-content;max-width:100%}
.hero h1 .accent::after{
  display:block!important;
  left:.02em;
  bottom:-.12em;
  width:min(5.35em,96%);
  height:2px;
  background:linear-gradient(90deg,var(--cyan),rgba(85,223,224,.86) 82%,rgba(85,223,224,.08));
  border-radius:70% 25% 65% 20%;
  transform:scaleX(0) rotate(-.25deg);
  transform-origin:left center;
  transition:transform .72s var(--motion-ease);
}
.hero.hero-intro-complete h1 .accent::after{transform:scaleX(1) rotate(-.25deg)}
.hero.hero-intro-complete h1 .accent{clip-path:none!important}
.hero h1 .accent::before{
  content:"";
  position:absolute;
  z-index:2;
  left:min(5.28em,94%);
  bottom:-.13em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#dff;
  box-shadow:0 0 5px #fff,0 0 13px rgba(85,223,224,.9);
  opacity:0;
  pointer-events:none;
}
.hero.hero-intro-complete h1 .accent::before{animation:underlineGlint .46s .62s var(--motion-ease) both}

.motion-accent{position:relative;display:inline-block;white-space:nowrap}
.motion-accent::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-.09em;
  height:2px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--cyan),rgba(85,223,224,.22));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .68s .32s var(--motion-ease);
}
.motion-accent::before{
  content:"";
  position:absolute;
  z-index:2;
  right:-2px;
  bottom:-.13em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#eaffff;
  box-shadow:0 0 9px rgba(85,223,224,.85);
  opacity:0;
}
[data-reveal="heading"].is-revealed .motion-accent::after,.is-revealed>.motion-accent::after{transform:scaleX(1)}
[data-reveal="heading"].is-revealed .motion-accent::before,.is-revealed>.motion-accent::before{animation:underlineGlint .42s .91s var(--motion-ease) both}
.motion-ready [data-reveal="heading"].is-revealed.has-motion-accent{clip-path:none!important}

.hero-photo{
  transform:translate3d(0,calc(var(--heroParallax,0px) + var(--motion-parallax,0px)),0) scale(var(--hero-image-scale,1.03));
  transition:transform .08s linear;
}
.hero-photo>img{transform:scale(1.035);transition:transform 1.2s var(--motion-ease),filter .5s}
.hero.hero-intro-complete .hero-photo>img{transform:scale(1)}
.hero-logo-card{transform:translate3d(0,var(--motion-logo-parallax,0px),0) rotate(0deg)}
.hero-gridline,.hero-orb{transform:translate3d(var(--motion-bg-x,0px),var(--motion-bg-y,0px),0)}

.trust-strip[data-motion-line]::before{top:0}
.home-services{
  transform:translate3d(0,var(--paper-lift,18px),0);
  transition:transform 1s var(--motion-ease);
}
.home-services.is-scene-visible{--paper-lift:0px}

/* Image reveal and gentle depth on editorial imagery. */
[data-reveal="image"]{overflow:hidden}
[data-reveal="image"] img{transition:transform 1.25s var(--motion-ease),filter .5s;transform:scale(1.055)}
[data-reveal="image"].is-revealed img{transform:translate3d(0,var(--motion-parallax,0px),0) scale(1.015)}
.motion-ready [data-reveal="image"].is-revealed:is(.teaser-photo,.project-link):hover img,
.motion-ready .photo-grid [data-reveal="image"].is-revealed:hover img{transform:scale(1.03)}

/* One interaction language for header, enquiry CTAs and the assistant. */
.btn,.header-cta{position:relative;isolation:isolate;overflow:hidden}
.btn::before,.header-cta::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-2px;
  background:linear-gradient(105deg,transparent 25%,rgba(85,223,224,.2) 48%,transparent 72%);
  transform:translateX(-125%);
  transition:transform .6s var(--motion-ease);
  pointer-events:none;
}
.btn :is(.arrow,[aria-hidden="true"]),.header-cta :is(.arrow,[aria-hidden="true"]){transition:transform .35s var(--motion-ease)}
.cta-prime::after,.assistant-content .btn.primary::after{
  content:"";
  position:absolute;
  z-index:3;
  top:5px;
  right:8px;
  width:8px;
  height:8px;
  opacity:0;
  pointer-events:none;
  background:linear-gradient(90deg,transparent 43%,rgba(230,255,255,.96) 44% 56%,transparent 57%),linear-gradient(0deg,transparent 43%,rgba(230,255,255,.96) 44% 56%,transparent 57%);
  filter:drop-shadow(0 0 4px rgba(85,223,224,.8));
  transform:scale(0) rotate(15deg);
}
.motion-ready .cta-prime[data-reveal="cta"].is-revealed::before{animation:ctaSweep .68s .24s var(--motion-ease) backwards}
.motion-ready .cta-prime[data-reveal="cta"].is-revealed::after{animation:microGlint .42s .67s var(--motion-ease) both}
.motion-ready .cta-prime[data-reveal="cta"].is-revealed{animation:ctaEdge .82s .08s var(--motion-ease) backwards}
.hero.hero-intro-complete .hero-primary::before{animation:ctaSweep .68s .15s var(--motion-ease) backwards}
.hero.hero-intro-complete .hero-primary::after{animation:microGlint .42s .58s var(--motion-ease) both}
.cta-prime,.assistant-content .btn.primary{
  --magnetic-x:0px;
  --magnetic-y:0px;
  transition:transform .34s var(--motion-ease),border-color .34s,box-shadow .34s,background .34s;
}
.cta-prime.is-pressed,.assistant-content .btn.primary.is-pressed{transform:translate3d(var(--magnetic-x),var(--magnetic-y),0) scale(.98)!important;transition-duration:.1s}
.assistant-float.is-pressed{transform:scale(.98)!important;transition-duration:.1s}
.cta-secondary::before{opacity:.52}

.directory-row{position:relative}
.directory-row::before{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:100%;
  height:1px;
  background:linear-gradient(90deg,var(--cyan),transparent 78%);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .5s var(--motion-ease);
}
.directory-row:hover::before{transform:scaleX(1)}

#header.scrolled{
  background:rgba(7,19,22,.9);
  border-bottom-color:rgba(85,223,224,.16);
  backdrop-filter:blur(20px) saturate(120%);
  box-shadow:0 14px 38px rgba(0,0,0,.12);
}
.header-cta.attention-once{animation:headerAttention 1.05s var(--motion-ease) both}
.header-cta.attention-once::after{animation:microGlint .46s .45s var(--motion-ease) both}
.nav a{transition:color .28s var(--motion-ease)}
.nav a:hover{color:#f4fffd}
.nav a[aria-current="page"]::after{width:100%;opacity:.78}

.directory-row::after{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 10px rgba(85,223,224,.65);
  opacity:0;
  transform:translate(-8px,-50%) scale(.4);
  transition:opacity .3s,transform .4s var(--motion-ease);
}
.directory-row :is(h2,h3){transition:transform .36s var(--motion-ease),color .3s}
.service-aside img{transition:transform .7s var(--motion-ease),filter .4s}
.service-aside.row-active img{transform:scale(1.012);filter:saturate(.96) contrast(1.015)}

.teaser-photo,.project-link figure,.photo-grid a{position:relative;overflow:hidden}
.teaser-photo::after,.project-link figure::after,.photo-grid a::after{
  content:"";
  position:absolute;
  z-index:2;
  top:-30%;
  bottom:-30%;
  left:-45%;
  width:22%;
  background:linear-gradient(100deg,transparent,rgba(230,255,252,.24),transparent);
  transform:translateX(-220%) rotate(8deg);
  opacity:0;
  pointer-events:none;
}

.assistant-bubble{
  position:fixed;
  z-index:84;
  inset-inline-end:20px;
  bottom:max(94px,calc(env(safe-area-inset-bottom) + 94px));
  width:min(330px,calc(100% - 40px));
  min-height:74px;
  display:grid;
  grid-template-columns:42px 1fr;
  align-items:center;
  gap:12px;
  padding:12px 17px 12px 12px;
  border:1px solid rgba(85,223,224,.4);
  border-radius:18px;
  background:rgba(8,25,29,.94);
  color:#edf5f3;
  box-shadow:0 20px 60px rgba(0,0,0,.32),0 0 24px rgba(35,185,194,.07);
  backdrop-filter:blur(12px);
  text-align:left;
  opacity:0;
  transform:translateY(10px) scale(.92);
  transition:opacity .42s var(--motion-ease),transform .48s var(--motion-ease),border-color .3s;
  overflow:visible;
}
.assistant-bubble::before{content:"";position:absolute;right:25px;bottom:-7px;width:12px;height:12px;background:rgba(8,25,29,.94);border-right:1px solid rgba(85,223,224,.4);border-bottom:1px solid rgba(85,223,224,.4);transform:rotate(45deg)}
.assistant-bubble::after{content:"";position:absolute;left:15px;right:15px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);transform:scaleX(0);transform-origin:left;opacity:0}
.assistant-bubble.is-visible{opacity:1;transform:none}
.assistant-bubble.is-visible::after{animation:bubbleGlint .68s .44s var(--motion-ease) both}
.assistant-bubble.is-leaving{opacity:0;transform:translateY(6px) scale(.97);pointer-events:none}
.assistant-bubble-icon{width:42px;height:36px;border-radius:9px;overflow:hidden;border:1px solid rgba(85,223,224,.24)}
.assistant-bubble-icon img{width:100%;height:100%;object-fit:cover}
.assistant-bubble>span:nth-child(2){font-size:11px;line-height:1.55;color:#dcecea}
.assistant-bubble>i{position:absolute;top:-4px;left:34%;width:6px;height:6px;border-radius:50%;background:#eaffff;box-shadow:0 0 9px rgba(85,223,224,.85);opacity:0}
.assistant-bubble.is-visible>i{animation:microGlint .42s .93s var(--motion-ease) both}

@keyframes headerAttention{0%,100%{transform:none;box-shadow:none}45%{transform:translateY(-2px) scale(1.01);border-color:rgba(85,223,224,.72);box-shadow:0 0 0 1px rgba(85,223,224,.18),0 10px 32px rgba(35,185,194,.2)}}
@keyframes bubbleGlint{0%{opacity:0;transform:scaleX(0)}25%{opacity:1}100%{opacity:0;transform:scaleX(1)}}

/* The fixed project check builds from a point into a quiet, interactive tool. */
.assistant-float{
  --magnetic-x:0px;
  --magnetic-y:0px;
  isolation:isolate;
  overflow:hidden;
  border-color:rgba(85,223,224,.18);
  transition:transform .38s var(--motion-ease),border-color .35s,box-shadow .35s,filter .7s var(--motion-ease),opacity .7s var(--motion-ease);
}
.assistant-float::before{
  content:"";
  position:absolute;
  z-index:2;
  inset:0;
  border:1px solid rgba(85,223,224,.7);
  border-radius:inherit;
  clip-path:polygon(0 0,0 0,0 0,0 0);
  opacity:0;
  pointer-events:none;
}
.assistant-float::after{
  content:"";
  position:absolute;
  z-index:3;
  inset:-35% -25%;
  width:32%;
  background:linear-gradient(100deg,transparent,rgba(210,255,255,.5),transparent);
  transform:translateX(-260%) rotate(7deg);
  opacity:0;
  pointer-events:none;
}
.assistant-float.is-revealed::before{animation:assistantOutline .75s .05s var(--motion-ease) both}
.assistant-float.is-revealed::after{animation:assistantSweep .72s .48s var(--motion-ease) both}
.assistant-float.is-revealed .float-logo{animation:assistantChild .58s .34s var(--motion-ease) backwards}
.assistant-float.is-revealed > span:last-child{animation:assistantText .58s .42s var(--motion-ease) backwards}
.assistant-beacon{
  position:absolute;
  z-index:4;
  top:50%;
  left:15px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 0 0 rgba(85,223,224,.5),0 0 14px rgba(85,223,224,.9);
  opacity:0;
  pointer-events:none;
}
.assistant-float.is-revealed .assistant-beacon{animation:assistantBeacon .66s both}
.assistant-float.attention-pulse{animation:assistantPulse .9s var(--motion-ease) both}

/* Opening and closing retain the existing dialog structure and focus logic. */
.assistant-shell.open .assistant-layout{animation:assistantPanelIn .46s var(--motion-ease) both}
.assistant-shell.open .assistant-brand{animation:assistantContentIn .5s .08s var(--motion-ease) both}
.assistant-shell.open .assistant-top{animation:assistantContentIn .48s .12s var(--motion-ease) both}
.assistant-shell.open .step-label,.assistant-shell.open .stepbar{animation:assistantContentIn .48s .18s var(--motion-ease) both}
.assistant-shell.open .assistant-content>h3,.assistant-shell.open .assistant-content>p{animation:assistantContentIn .48s .23s var(--motion-ease) both}
.assistant-shell.open .choice-grid .choice{animation:assistantChoiceIn .45s var(--motion-ease) both}
.assistant-shell.open .choice-grid .choice:nth-child(1){animation-delay:.27s}
.assistant-shell.open .choice-grid .choice:nth-child(2){animation-delay:.32s}
.assistant-shell.open .choice-grid .choice:nth-child(3){animation-delay:.37s}
.assistant-shell.open .choice-grid .choice:nth-child(4){animation-delay:.42s}
.assistant-shell.open .choice-grid .choice:nth-child(n+5){animation-delay:.47s}
.assistant-shell.closing{opacity:0;pointer-events:none}
.assistant-shell.closing .assistant-layout{transform:translateY(10px) scale(.985);opacity:0;transition:transform .28s var(--motion-ease-soft),opacity .24s ease}

@keyframes ctaSweep{0%{transform:translateX(-125%);opacity:0}18%{opacity:1}100%{transform:translateX(125%);opacity:0}}
@keyframes ctaEdge{0%,100%{box-shadow:0 0 0 0 rgba(85,223,224,0)}48%{box-shadow:0 0 0 1px rgba(85,223,224,.42),0 0 20px rgba(35,185,194,.12)}}
@keyframes microGlint{0%,100%{opacity:0;transform:scale(0) rotate(15deg)}45%{opacity:.9;transform:scale(1) rotate(15deg)}}
@keyframes underlineGlint{0%,100%{opacity:0;transform:translateX(-7px) scale(.2)}48%{opacity:1;transform:translateX(0) scale(1)}}
@keyframes assistantBeacon{0%{opacity:0;transform:scale(0)}36%{opacity:1;transform:scale(1);box-shadow:0 0 0 7px rgba(85,223,224,.12),0 0 16px rgba(85,223,224,.9)}100%{opacity:0;transform:scale(.4)}}
@keyframes assistantOutline{0%{opacity:0;clip-path:polygon(0 0,0 0,0 0,0 0)}24%{opacity:.85}100%{opacity:0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}}
@keyframes assistantSweep{0%{opacity:0;transform:translateX(-260%) rotate(7deg)}20%{opacity:.65}100%{opacity:0;transform:translateX(430%) rotate(7deg)}}
@keyframes assistantChild{0%{opacity:0;transform:scale(.86)}100%{opacity:1;transform:scale(1)}}
@keyframes assistantText{0%{opacity:0;transform:translateX(9px)}100%{opacity:1;transform:none}}
@keyframes assistantPulse{0%,100%{box-shadow:0 18px 65px rgba(0,0,0,.28),0 0 0 0 rgba(85,223,224,0)}45%{box-shadow:0 18px 65px rgba(0,0,0,.28),0 0 0 1px rgba(85,223,224,.32),0 0 24px rgba(85,223,224,.14)}}
@keyframes assistantPanelIn{0%{opacity:0;transform:translateY(12px) scale(.97)}100%{opacity:1;transform:none}}
@keyframes assistantContentIn{0%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:none}}
@keyframes assistantChoiceIn{0%{opacity:0;transform:translateY(9px) scale(.985)}100%{opacity:1;transform:none}}

@media (hover:hover) and (pointer:fine){
  .cta-prime:hover,.assistant-content .btn.primary:hover{
    transform:translate3d(var(--magnetic-x),calc(var(--magnetic-y) - 2px),0) scale(1.01);
    border-color:rgba(85,223,224,.66);
    box-shadow:0 0 0 1px rgba(85,223,224,.12),0 10px 30px rgba(35,185,194,.18);
  }
  .cta-prime:hover::before,.assistant-content .btn.primary:hover::before{transform:translateX(150%);transition-duration:.62s}
  .cta-prime:hover::after,.assistant-content .btn.primary:hover::after{animation:microGlint .42s .42s var(--motion-ease) both}
  .cta-prime:hover :is(.arrow,[aria-hidden="true"]),.assistant-content .btn.primary:hover :is(.arrow,[aria-hidden="true"]){transform:translateX(5px)}
  .cta-prime:hover .arrow,.assistant-content .btn.primary:hover .arrow{transform:translateX(5px) rotate(48deg)}
  .cta-secondary:hover{transform:translateY(-1px);border-color:rgba(85,223,224,.38);box-shadow:0 7px 20px rgba(35,185,194,.08)}
  .cta-secondary:hover :is(.arrow,[aria-hidden="true"]){transform:translateX(3px)}
  .assistant-float:hover{
    transform:translate3d(var(--magnetic-x),calc(var(--magnetic-y) - 3px),0) scale(1.02);
    border-color:rgba(85,223,224,.62);
    box-shadow:0 20px 70px rgba(0,0,0,.3),0 0 0 1px rgba(85,223,224,.12),0 0 28px rgba(35,185,194,.13);
  }
  .assistant-float:hover::after{animation:assistantSweep .72s var(--motion-ease) both}
  .assistant-float:hover .float-logo{transform:translateX(2px) scale(1.025);transition:transform .35s var(--motion-ease)}
  .header-cta:hover{transform:translate3d(var(--magnetic-x),calc(var(--magnetic-y) - 2px),0) scale(1.015);box-shadow:0 0 0 1px rgba(85,223,224,.2),0 11px 34px rgba(35,185,194,.22)}
  .directory-row:hover::after{opacity:1;transform:translate(0,-50%) scale(1)}
  .directory-row:hover :is(h2,h3){transform:translateX(5px)}
  .directory-row:hover .directory-arrow{transform:translate(3px,-2px) rotate(-8deg)}
  .teaser-photo:hover::after,.project-link:hover figure::after,.photo-grid a:hover::after{animation:imageShine .78s var(--motion-ease) both}
  .project-link:hover img,.photo-grid a:hover img,.teaser-photo:hover img{transform:scale(1.015)!important}
}

@keyframes imageShine{0%{opacity:0;transform:translateX(-220%) rotate(8deg)}20%{opacity:.7}100%{opacity:0;transform:translateX(760%) rotate(8deg)}}

@media(max-width:760px){
  .motion-ready [data-reveal="heading"]{transform:translate3d(0,22px,0);filter:blur(3px)}
  .motion-ready [data-reveal="text"],.motion-ready [data-reveal="row"]{transform:translate3d(0,14px,0)}
  .motion-ready [data-reveal="left"],.motion-ready [data-reveal="right"]{transform:translate3d(0,18px,0)}
  .motion-ready .hero [data-hero-step="line"]{transform:translate3d(0,28px,0);filter:blur(4px)}
  .hero h1 .accent::after{bottom:-.08em;width:min(5.35em,94%)}
  .hero h1 .accent::before{display:none}
  .hero-photo,.hero-logo-card,[data-parallax] img{--motion-parallax:0px!important;--motion-logo-parallax:0px!important}
  .home-services{--paper-lift:10px}
  .cta-prime:hover,.assistant-float:hover{transform:none;box-shadow:inherit}
  .cta-prime.is-pressed,.assistant-float.is-pressed{transform:scale(.98)!important}
  .site-loader-logo{width:150px}
  .site-loader strong{font-size:10px;letter-spacing:.14em}
  .site-loader small{font-size:7px;letter-spacing:.12em}
  .assistant-bubble{inset-inline-end:12px;bottom:max(82px,calc(env(safe-area-inset-bottom) + 82px));width:min(286px,calc(100% - 24px));min-height:64px;grid-template-columns:36px 1fr;padding:10px 14px 10px 10px;border-radius:15px}
  .assistant-bubble-icon{width:36px;height:31px}
  .assistant-bubble>span:nth-child(2){font-size:10px;line-height:1.45}
  .motion-accent{white-space:normal}
}

@media(prefers-reduced-motion:reduce){
  .motion-ready [data-reveal],.motion-ready .hero [data-hero-step]{
    opacity:1!important;
    transform:none!important;
    clip-path:none!important;
    filter:none!important;
    transition:none!important;
  }
  [data-motion-line]::before{transform:scaleX(1)!important;transition:none!important}
  .hero h1 .accent::after{transform:scaleX(1) rotate(-.25deg)!important;transition:none!important}
  .hero h1 .accent::before,.assistant-beacon{display:none!important}
  .hero-photo,.hero-logo-card,.hero-gridline,.hero-orb,[data-parallax] img{transform:none!important;transition:none!important}
  .home-services{transform:none!important}
  .assistant-float::before,.assistant-float::after,.cta-prime::after{display:none!important}
  .site-loader{transition:opacity .08s linear!important}.site-loader-line,.site-loader-logo,.site-loader strong,.site-loader small{opacity:1!important;transform:none!important;clip-path:none!important}
  .motion-accent::after{transform:scaleX(1)!important;transition:none!important}.motion-accent::before{display:none!important}
  .assistant-bubble{transition:none!important;transform:none!important}.assistant-bubble::after,.assistant-bubble>i{display:none!important}
  .assistant-shell.open .assistant-layout,.assistant-shell.open .assistant-brand,.assistant-shell.open .assistant-top,.assistant-shell.open .step-label,.assistant-shell.open .stepbar,.assistant-shell.open .assistant-content>*,.assistant-shell.open .choice-grid .choice{animation:none!important;opacity:1!important;transform:none!important}
}
