/* Pointer effects enhance the original responsive, keyboard-accessible layout. */
.hero-refract{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:0;pointer-events:none;border-radius:inherit}
.hero-photo{z-index:0}.hero-frame::after{z-index:1;pointer-events:none}.hero-content{position:relative;z-index:2}
.hero h1{transform-origin:25% 65%}
.project-cursor{position:fixed;left:0;top:0;z-index:55;pointer-events:none;width:94px;height:94px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:8px;background:#f4f3eaeF;color:#22241f;opacity:0;backdrop-filter:blur(8px);box-shadow:0 8px 36px #15201315;font-size:12px;font-weight:600;line-height:1.4;text-align:left;will-change:transform;contain:layout style}
.cursor-arrow{font-size:24px;font-weight:400}
.service-preview{position:fixed;left:0;top:0;width:265px;height:195px;z-index:45;pointer-events:none;border-radius:12px;overflow:hidden;opacity:0;box-shadow:0 24px 60px #1a231f35;will-change:transform;contain:layout style}
.service-preview img{width:100%;height:100%;object-fit:cover}
.rolling-word{display:inline-block;white-space:nowrap}
.rolling-letter{position:relative;display:inline-block}
.rolling-letter>span{display:inline-block}
.rolling-letter>span+span{display:none}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .motion-enabled .hero-photo{transition:none;will-change:transform}
 .motion-enabled .hero h1{will-change:transform;transition:none;user-select:none}
 .motion-enabled .project-card .project-image,.motion-enabled .video-card .project-image,.motion-enabled .gallery-item{transform-origin:center;transition:box-shadow .45s;backface-visibility:hidden;user-select:none}
 .motion-enabled .project-card .project-image:hover,.motion-enabled .video-card .project-image:hover,.motion-enabled .gallery-item:hover{box-shadow:0 30px 45px -30px #1d292974;will-change:transform}
 .motion-enabled .project-image img,.motion-enabled .gallery-item img{transition:transform .38s cubic-bezier(.2,.65,.2,1)}
 .motion-enabled .project-card .project-image::after,.motion-enabled .video-card .project-image::after,.motion-enabled .gallery-item::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(circle at var(--shine-x,50%) var(--shine-y,50%),#ffffff22,transparent 70%);mix-blend-mode:screen}
 .motion-enabled .project-card .project-image:hover::after,.motion-enabled .video-card .project-image:hover::after,.motion-enabled .gallery-item:hover::after{opacity:1}
 .motion-enabled .project-card .project-image:hover .round-arrow,.motion-enabled .gallery-item:hover .zoom-label{opacity:0;transition:opacity .25s}
 .motion-enabled .pill,.motion-enabled .menu-button,.motion-enabled .contact-cta .big-arrow{transition:background .3s,color .3s,border-color .3s;will-change:transform}
 .motion-enabled .rolling-text{display:inline}
 .motion-enabled .rolling-letter{overflow:hidden;vertical-align:bottom;padding-block:.075em;margin-block:-.075em}
 .motion-enabled .rolling-letter>span{transition:transform .65s cubic-bezier(.2,.7,.15,1);transition-delay:var(--delay,0ms)}
 .motion-enabled .rolling-letter>span+span{display:block;position:absolute;left:0;top:100%;color:var(--accent)}
 .motion-enabled a:hover .rolling-letter>span,.motion-enabled a:focus-visible .rolling-letter>span{transform:translateY(-100%)}
 .motion-enabled .menu-main a .rolling-letter>span+span,.motion-enabled .craft-section .rolling-letter>span+span{color:#efae87}
 .motion-enabled .service-row{transition:color .3s,background .3s,padding .45s cubic-bezier(.2,.7,.15,1)}
 .motion-enabled .contact-cta-link h2 em{background:linear-gradient(90deg,var(--accent) 50%,var(--ink) 50%);background-size:200% 100%;background-position:100%;background-clip:text;-webkit-background-clip:text;color:transparent;transition:background-position .8s cubic-bezier(.22,.68,0,1)}
 .motion-enabled .contact-cta-link:hover h2 em{background-position:0}
}
.motion-paused .project-cursor,.motion-paused .service-preview,.motion-paused .hero-refract{display:none!important}
.motion-paused .reveal{opacity:1!important;transform:none!important}
.motion-paused *{animation:none!important;transition:none!important}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.project-cursor,.service-preview,.hero-refract{display:none!important}.rolling-letter>span+span{display:none!important}.rolling-letter>span{transform:none!important}}
