.hero-loader{display:none}
html.has-hero-loader{overflow:hidden;scrollbar-gutter:stable}
/* Keep the desktop layout viewport unchanged when the loading curtain leaves. */
@media(hover:hover) and (pointer:fine){html{scrollbar-gutter:stable}}
html.has-hero-loader .hero-loader{display:grid;position:fixed;inset:0;z-index:1000;place-items:center;background:#f3f0e9;color:#0b0b0b;clip-path:url(#hero-loader-clip);-webkit-clip-path:url(#hero-loader-clip);isolation:isolate}
.hero-loader[data-phase="exiting"]{pointer-events:none}
.hero-loader__mask{position:absolute;width:0;height:0;pointer-events:none}
.hero-loader__phrase{position:relative;margin:0;padding:5px 7px;font:400 10px/1.1 Arial,Helvetica,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;transform:translate3d(calc(-1 * var(--loader-travel-x,0px)),calc(-1 * var(--loader-travel-y,0px)),0);isolation:isolate}
.hero-loader__phrase::before{content:"";position:absolute;inset:0;background:#0b0b0b;z-index:-1;clip-path:inset(0 100% 0 0);animation:hero-loader-ink .62s .88s cubic-bezier(.45,0,.2,1) both;will-change:clip-path}
.hero-loader__line{display:flex;gap:.32em}
.hero-loader__line [data-loader-word]{display:block;animation:hero-loader-word .52s calc(.08s + var(--word) * .075s) cubic-bezier(.22,1,.36,1) both}
.hero-loader__white{position:absolute;inset:0;padding:inherit;color:#fff;clip-path:inset(0 100% 0 0);animation:hero-loader-ink .62s .88s cubic-bezier(.45,0,.2,1) both;will-change:clip-path;pointer-events:none}
.hero-loader-enabled .hero__meta{animation:none}
.hero-intro-static .hero__meta,.hero-intro-static .hero-loader__line [data-loader-word]{animation:none!important}
.hero-intro-static .hero-loader__phrase::before,.hero-intro-static .hero-loader__white{animation:none!important;clip-path:inset(0)}
.hero-loader-fallback .hero{--gallery-opacity:1!important}
.hero-loader-fallback .hero .hero__meta,.hero-loader-fallback .hero .hero__slider,.hero-loader-fallback .hero .hero__project-meta,.hero-loader-fallback .hero .hero__sales{opacity:1!important;filter:none!important;translate:none!important}
.hero-loader-fallback .hero__slide{opacity:1!important;translate:none!important}
@keyframes hero-loader-word{from{opacity:0;translate:0 8px;filter:blur(4px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes hero-loader-ink{to{clip-path:inset(0 0 0 0)}}
@media(prefers-reduced-motion:reduce){.hero-loader__phrase::before,.hero-loader__white{animation:none;clip-path:inset(0)}.hero-loader__line [data-loader-word]{animation:none}.hero-loader__phrase{transform:none}}
