:root{--slate-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-behavior:smooth}
body{overflow-x:hidden}
.site-page-wipe{position:fixed;inset:0;z-index:9999;pointer-events:none;visibility:hidden;background:#ffe800;transform:translateY(101%);border-radius:50% 50% 0 0 / 12% 12% 0 0;transition:transform .62s cubic-bezier(.76,0,.24,1),border-radius .62s cubic-bezier(.76,0,.24,1)}
.site-page-wipe.is-leaving{visibility:visible;transform:translateY(0);border-radius:0}
.motion-ready .motion-reveal{opacity:0;transform:translateY(34px);transition:opacity .8s var(--slate-ease),transform .8s var(--slate-ease);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .motion-reveal.is-visible{opacity:1;transform:none}
.motion-ready .media-reveal img{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s var(--slate-ease)}
.motion-ready .media-reveal.is-visible img{clip-path:inset(0)}
.site-full #root main>section:first-child{position:relative;isolation:isolate;overflow:hidden}
.site-full #root main>section:first-child>div{position:relative;z-index:1}
.site-service #root main>section:first-child::before,.site-about #root main>section:first-child::before,.site-services #root main>section:first-child::before,.site-contact #root main>section:first-child::before,.site-insights #root main>section:first-child::before{content:"";position:absolute;right:0;top:0;width:min(47vw,720px);height:100%;background-image:linear-gradient(90deg,#0b0b0b 0%,transparent 32%),var(--page-art);background-size:cover;background-position:center;filter:grayscale(.15) contrast(1.08);opacity:.38;mask-image:linear-gradient(90deg,transparent,#000 22%);pointer-events:none}
.site-service #root main>section:first-child::before{opacity:.31}
.site-full .slate-thinkrow{grid-template-columns:1fr!important;gap:0!important}
.site-full .slate-thinkrow>span:first-child{display:none!important}
.site-full .slate-blind .num{display:none!important}
.site-full .slate-blind{transition:background-color .4s var(--slate-ease),transform .6s var(--slate-ease)}
.site-full .slate-blind:hover{transform:translateY(-8px)}
.site-full a{transition:color .25s var(--slate-ease),background-color .25s var(--slate-ease)}
.site-full img{image-rendering:auto}
.site-full .hl{background:none!important;color:inherit!important;padding:0!important;box-shadow:none!important;box-decoration-break:initial!important}
.site-full .hl::before,.site-full .hl::after{display:none!important}
@media(max-width:720px){.site-full #root main>section:first-child::before{width:100%;opacity:.15;mask-image:linear-gradient(180deg,#000,transparent 85%)}.site-full .slate-thinkrow{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.site-page-wipe,.motion-ready .motion-reveal,.motion-ready .media-reveal img,.site-full .slate-blind{transition:none!important;animation:none!important;transform:none!important;opacity:1!important;clip-path:none!important}}

/* arriving half of the page transition: the new page starts under the yellow, which sweeps up and away
   (ui/wipe.js adds .wipe-arrive before first paint when the previous page left through the wipe) */
html.wipe-arrive::after{content:"";position:fixed;inset:0;z-index:10000;pointer-events:none;background:#ffe800;
  animation:slate-wipe-out .66s cubic-bezier(.76,0,.24,1) .1s both}
@keyframes slate-wipe-out{from{transform:translateY(0);border-radius:0}to{transform:translateY(-101%);border-radius:0 0 50% 50% / 0 0 12% 12%}}
@media(prefers-reduced-motion:reduce){html.wipe-arrive::after{display:none}}
