/* Fabrica comparison, 1280px viewport: white project heads, strong image
   hover blur and original reveal curve retained in measured/motion.css.
   Only restore missing entry groups and match the observed 60px editorial
   heading scale. No recoloring, new card treatment or alternate motion engine. */
.navigation .logo{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}
.navigation .logo>img{display:block;width:24px;height:24px;object-fit:contain;filter:brightness(0);flex-shrink:0}
.sand-scroll .hero h1{animation:line-in 1.2s .28s var(--curve) both}
.sand-scroll .founder-card{animation:line-in 1.2s .34s var(--curve) both}
.sand-scroll .registration>span{animation:line-in 1.2s .28s var(--curve) both}
.sand-scroll .wordmark-sub{font-size:clamp(26px,3.3vw,54px);white-space:nowrap}
.sand-scroll .founder-card>img{object-position:100% 69%}
.clients .section-kicker{display:block}
.clients .section-kicker b{flex:0 0 18px;line-height:0}
.clients .section-kicker b svg{display:block}
.clients .client-logos{grid-template-columns:repeat(5,minmax(0,1fr))}
.clients .client-logos>div{height:138px;aspect-ratio:auto;padding:24px;overflow:hidden}
.clients .client-logos img{width:100%;max-width:180px;height:68px;max-height:68px;object-fit:contain;transform:scale(var(--logo-scale,1))}
.clients .client-logos>div:hover img{transform:scale(calc(var(--logo-scale,1)*1.04))}
.clients .logo-fischer{--logo-scale:1.3}
/* Keep alpha cleanup static: URL filters cannot interpolate the color reveal. */
.clients .logo-fischer .client-logo-tone{display:flex;align-items:center;justify-content:center;width:100%;filter:grayscale(1);transition:filter .5s}
.clients .logo-fischer:hover .client-logo-tone{filter:grayscale(0)}

.clients .logo-vmk{--logo-scale:.84}
.clients .logo-gmim{--logo-scale:1.15}
.clients .logo-laimer img{height:112px;max-height:112px}
.clients .logo-ecs img{filter:grayscale(1) brightness(.55) contrast(1.15)}
.clients .logo-ecs:hover img{filter:brightness(.55) contrast(1.15)}
.projects-heading>.heading-main{grid-column:2/4}
.projects-heading>p{grid-column:4}
.editorial-heading h2{font-size:clamp(42px,4.6875vw,72px)}
/* The original reveal class had an !important reset that could cancel
   transforms when a block carries both reveal and scroll-reveal. */
.motion-ready .scroll-reveal.reveal{transform:translate3d(0,var(--reveal-y,0px),0) scale(var(--reveal-scale,1))!important;opacity:var(--reveal-alpha,1)!important;filter:blur(var(--reveal-blur,0px))!important}
.scroll-reveal:focus-within{opacity:1!important;filter:none!important;transform:none!important}
@media(max-width:809px){.editorial-heading h2{font-size:clamp(42px,9vw,68px)}.sand-scroll .wordmark-sub{font-size:clamp(23px,7vw,34px)}}
@media(max-width:809px){.clients .client-logos{grid-template-columns:repeat(2,minmax(0,1fr))}.clients .client-logos>div{height:116px;padding:20px}.clients .client-logos img{height:58px;max-height:58px}.clients .logo-laimer img{height:86px;max-height:86px}.projects-heading>.heading-main,.projects-heading>p{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.motion-ready .scroll-reveal.reveal{opacity:1!important;filter:none!important;transform:none!important}}
.closing-brand{letter-spacing:-.045em;font-kerning:normal}
