/* Isolated home experiment: original page and shared styles are unchanged. */
.site-motion{--motion-progress:0}
.site-motion .hero{position:relative;overflow:hidden;background:#eeeae0}
.site-motion .hero-image{clip-path:inset(var(--hero-inset,0%) round var(--hero-radius,0px));transform:translateZ(0)}
.site-motion .hero-image img{transform:scale(var(--hero-scale,1.06));transition:none!important;filter:none!important}
.site-motion .hero-copy{position:relative;isolation:isolate;background:transparent}
.site-motion .hero-copy:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 85% 10%,#d6be8460,transparent 65%);transform:translateY(var(--wash-y,0px));pointer-events:none}
.site-motion h1 .motion-line,.site-motion h2 .motion-line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.site-motion .motion-line>span{display:block}
.site-motion .motion-reveal{opacity:1}
.site-motion .banner{border-radius:20px;box-shadow:0 20px 70px #2427260b}
.site-motion .banner picture,.site-motion .about-photo{overflow:hidden}
.site-motion .banner img,.site-motion .about-photo img{transform:scale(1.09) translateY(var(--image-y,0px));transition:none!important}
.motion-statement{background:#eeeae0;padding:110px 0 115px;position:relative;margin-top:80px;overflow:hidden}
.motion-statement:before{content:"";position:absolute;inset:-50%;background:radial-gradient(ellipse at 70% 50%,#b3965233,transparent 55%);transform:translateX(var(--wash-x,0px));pointer-events:none}
.motion-statement .wrap{position:relative}
.motion-statement h2{max-width:1060px;font-size:clamp(45px,6.4vw,94px);line-height:1.08;letter-spacing:-.025em;margin:30px 0 40px}
.motion-statement .paint-word{color:#242726;display:inline-block}
.effects-running .motion-statement .paint-word{color:#a39e92;transition:color .25s ease}
.effects-running .motion-statement .paint-word.is-painted{color:#242726}
.site-motion .about{position:relative;isolation:isolate;background:#202625;overflow:hidden}
.site-motion .about:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,#574a2b,#272d28 65%);opacity:var(--about-wash,0)}
.site-motion .about-photo{border-radius:var(--about-radius,0px)}
.site-motion .roadside{position:relative;isolation:isolate;overflow:hidden;background:#d1b87c}
.site-motion .roadside:before{content:"";position:absolute;z-index:-1;inset:0;background:#e6d6b0;clip-path:inset(0 calc(100% - var(--road-wipe,100%)) 0 0)}
.site-motion .service{border-radius:12px;overflow:hidden}
.site-motion .service .image-box{border-radius:12px}
.effects-toolbar{position:fixed;z-index:19;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:18px;padding:11px 18px;border:1px solid #b3965260;border-radius:50px;background:#fffffff5;box-shadow:0 5px 30px #0002;color:#242726;white-space:nowrap;font-size:14px;line-height:1.3;backdrop-filter:blur(12px)}
.effects-toolbar>span{font-size:10px;letter-spacing:.1em;font-weight:700;color:#806725}
.effects-toolbar button{border:0;background:#eeeae0;padding:8px 12px;border-radius:24px;cursor:pointer;color:inherit;font-size:13px}
.effects-toolbar a{font-size:13px;text-decoration:underline;text-underline-offset:3px}
.site-motion .site-footer{padding-bottom:90px}
@media(max-width:760px){
.site-motion .hero-image{height:65vw;max-height:400px}
.site-motion .hero-copy{padding-top:35px;padding-bottom:45px}
.site-motion .banner{border-radius:14px}
.motion-statement{margin-top:45px;padding:75px 0}
.motion-statement h2{font-size:clamp(44px,10.3vw,65px)}
.effects-toolbar{bottom:12px;gap:10px;padding:9px 12px;max-width:calc(100% - 24px)}
.effects-toolbar>span{display:none}
.effects-toolbar a,.effects-toolbar button{font-size:12px}
.site-motion .site-footer{padding-bottom:100px}
}
@media(prefers-reduced-motion:reduce){.site-motion *{scroll-behavior:auto!important}.site-motion .hero-image,.site-motion .hero-image img,.site-motion .banner img,.site-motion .about-photo img{transform:none!important;clip-path:none!important}.paint-word{color:#242726!important}}
.a11y-motion .site-motion img,.effects-paused img{transform:none!important}

/* V3: one scroll/entrance controller, no competing animation players. */
.site-motion .hero-image img{transform:scale(calc(var(--hero-scale,1) * var(--entrance-scale,1)))!important}
.site-motion .banner img,.site-motion .about-photo img{transform:scale(calc(1.04 * var(--entrance-scale,1)))!important}
.site-motion .service img,.site-motion .journal article img{transform:scale(var(--entrance-scale,1))!important;transition:none!important}
.site-motion .photo-frame{overflow:hidden}
.site-motion .hero-image{transform:none;clip-path:none}
.effects-toolbar>span{display:block!important;font-size:9px}
@media(max-width:760px){.effects-toolbar{flex-wrap:wrap;justify-content:center;gap:6px 12px;width:max-content;max-width:calc(100% - 24px);border-radius:18px}.effects-toolbar>span{width:100%;text-align:center}.effects-toolbar button{padding:7px 10px}.effects-toolbar a{font-size:12px}}

/* Effects shared by service/blog cards and interior pages. */
.site-motion .photo-frame,.site-motion .image-box{overflow:hidden;border-radius:12px}
.site-motion .service-list-card img,.site-motion .page-hero img{transform:scale(var(--entrance-scale,1))!important;transition:none!important}
.site-motion .related-content{background:linear-gradient(rgba(179,150,82,calc(var(--card-highlight,1) * .08)),rgba(179,150,82,calc(var(--card-highlight,1) * .08))),#f4f2ec}
.site-motion .service-list-card:focus-visible,.site-motion .related-content:focus-within{outline:3px solid #806725;outline-offset:4px}
@media(prefers-reduced-motion:reduce){.site-motion .service-list-card img,.site-motion .page-hero img{transform:none!important;clip-path:none!important}}
html.a11y-motion .site-motion .service-list-card img,html.a11y-motion .site-motion .page-hero img{transform:none!important;clip-path:none!important}

.site-motion .site-footer{padding-bottom:0}

/* V29: hero copy stays static; only the separate image receives the reveal. */
.site-motion .hero-copy,.site-motion .hero-copy *,.site-motion .page-hero .wrap,.site-motion .page-hero .wrap *{animation:none!important;transition:none!important;transform:none!important;opacity:1!important;clip-path:none!important}

/* Keep image wrappers out of the layout; alt text stays on the image. */
picture.compatible-picture{display:contents}

/* Performance update: hero images are complete at first paint on every page. */
.site-motion .hero-image,.site-motion .page-hero img{clip-path:none!important;-webkit-clip-path:none!important}
.site-motion .hero-image img,.site-motion .page-hero img{transform:none!important;transition:none!important;animation:none!important}
