@media(prefers-reduced-motion:no-preference){
 html{scroll-behavior:smooth}
 .button,.public-page button[type=submit],.text-link .icon,.project-caption,.project-caption>.icon,.service-image img,.service-number i{transition:transform 200ms var(--ease-out)}
 .button:active,.public-page button[type=submit]:active{transform:scale(.97)!important}
 .button:before{content:'';position:absolute;inset:-35% -80%;background:linear-gradient(105deg,transparent 40%,#ffffff42 49%,transparent 58%);transform:translateX(-70%);z-index:-1}
 .button:focus-visible:before{animation:button-sheen 600ms var(--ease-out)}
 :focus-visible{animation:focus-in 220ms var(--ease-out)}
 .site-header{transition:transform 220ms var(--ease-out)}
 .site-header .brand{transition:transform 220ms var(--ease-out);transform-origin:left}
 .site-header.is-scrolled .brand{transform:scale(.93)}
 .site-header.is-scrolled{background:rgba(222,215,203,.86);border-color:#ffffff8c;box-shadow:inset 0 1px 0 #fffa,0 8px 25px #30251a1c;backdrop-filter:blur(20px) saturate(140%)}
 .header-contact{position:relative}
 .header-contact:before{content:'';position:absolute;inset:0 0 14px;border:1px solid var(--orange);border-radius:9px;pointer-events:none;animation:call-ring 8s ease-out infinite}
 .motion-ready .desktop-nav a[aria-current]{text-decoration:none}
 .motion-ready .nav-indicator{display:block}
 .motion-ready [data-reveal]{transition:transform 600ms var(--ease-out),opacity 600ms var(--ease-out),filter 600ms var(--ease-out)}
 .motion-ready [data-reveal].reveal-pending{opacity:0;transform:translateY(24px);filter:blur(4px)}
 .motion-ready [data-reveal].is-visible:nth-child(2){transition-delay:50ms}
 .motion-ready [data-reveal].is-visible:nth-child(3){transition-delay:100ms}
 .motion-ready [data-reveal].is-visible:nth-child(4){transition-delay:150ms}
 .motion-ready [data-reveal].is-visible:nth-child(5){transition-delay:200ms}
 .motion-ready [data-reveal].is-visible:nth-child(6){transition-delay:250ms}
 .motion-ready [data-reveal].is-visible:nth-child(7){transition-delay:300ms}
 .motion-ready [data-heading].reveal-pending{opacity:0}
 .motion-ready .hero-step{animation:hero-enter 360ms var(--ease-out) both}
 .motion-ready .hero-step:nth-child(2){animation-delay:60ms}
 .motion-ready .hero-step:nth-child(3){animation-delay:120ms}
 .motion-ready .hero-step:nth-child(4){animation-delay:180ms}
 .motion-ready .hero-step:nth-child(5){animation-delay:240ms}
 .motion-ready .hero h1>span{animation:line-in 420ms var(--ease-out) both}
 .motion-ready .hero h1>span:nth-child(2){animation-delay:90ms}
 .motion-ready .hero h1>span:nth-child(3){animation-delay:160ms}
 .motion-ready .hero-script{animation:script-write 1.4s 350ms var(--ease-out) both}
 .hero-slide{transition:opacity 1000ms ease}
 .hero-slide img{animation:ken-burns 14s ease-in-out infinite alternate}
 .hero-slide:not(.is-active) img,.hero.is-paused .hero-slide img{animation-play-state:paused}
 .trust-strip:after{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient(110deg,transparent 0 4px,#fff2 5px,transparent 7px),linear-gradient(100deg,transparent,#fff2,transparent);background-size:210% 210%;clip-path:polygon(73% 0,100% 0,100% 100%,64% 100%);z-index:-1;animation:grain-drift 18s linear infinite alternate;pointer-events:none;opacity:.25}
 .feature-card.is-visible .icon{animation:icon-write 900ms var(--ease-out) both;stroke-dasharray:100;stroke-dashoffset:0}
 .feature-card.is-visible>div:nth-child(2) .icon{animation-delay:100ms}
 .feature-card.is-visible>div:nth-child(3) .icon{animation-delay:200ms}
 .feature-card.is-visible>div:nth-child(4) .icon{animation-delay:300ms}
 .trade-manifesto.is-visible span{animation:line-in 550ms steps(12,end) both}
 .trade-manifesto.is-visible span:nth-child(2){animation-delay:400ms}
 .trade-manifesto.is-visible span:nth-child(3){animation-delay:800ms}
 .marquee-track{animation:trade-loop 46s linear infinite}
 .testimonial.is-visible .testimonial-inner{animation:client-float 6s ease-in-out infinite}
 .testimonial:nth-child(2) .testimonial-inner{animation-delay:-2s}
 .testimonial:nth-child(3) .testimonial-inner{animation-delay:-4s}
 .testimonial.is-visible .initials:after{content:'';position:absolute;inset:-3px;border:1px solid var(--orange);border-radius:50%;animation:initials-ring 1.4s ease-out both}
 .quote-cta:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,#ffffff32 49%,transparent 65%);transform:translateX(-110%);pointer-events:none;animation:closing-sheen 10s ease-in-out infinite;z-index:1}
 .back-top{transition:opacity 220ms var(--ease-out),transform 220ms var(--ease-out);transform:translateY(10px)}
 .back-top.is-shown{visibility:visible;opacity:1;transform:translateY(0)}
 .footer-brand.is-visible:after{content:'';position:absolute;inset:-25%;background:linear-gradient(110deg,transparent 35%,#fff9 50%,transparent 65%);animation:footer-shimmer 1.1s ease-out both;pointer-events:none}
 .mobile-menu[open] nav{animation:drawer-in 240ms var(--ease-drawer) both;transform-origin:top}
 @media(hover:hover) and (pointer:fine){
  .button:hover:before{animation:button-sheen 600ms var(--ease-out)}
  .button:hover .icon,.text-link:hover .icon{transform:translateX(4px)}
  .button:hover{transform:translateY(-2px)}
  .text-link{position:relative;isolation:isolate;overflow:hidden}
  .text-link:before{content:'';position:absolute;inset:0;background:#e54f0715;transform:translateX(-101%);transition:transform 200ms var(--ease-out);z-index:-1}
  .text-link:hover:before{transform:translateX(0)}
  .service-tile:hover .service-image img,.service-tile:focus-within .service-image img{transform:scale(1.06)}
  .service-tile:hover .service-number i,.service-tile:focus-within .service-number i{transform:scaleX(1.5)}
  .service-tile:focus-within{transform:translateY(-5px)}
  .project-card:hover .project-caption,.project-card:focus-within .project-caption{transform:translateY(-9px)}
  .project-card:hover .project-caption>.icon,.project-card:focus-within .project-caption>.icon{transform:rotate(-45deg)}
  .testimonial:hover .testimonial-inner{animation-play-state:paused}
  .trade-marquee:hover .marquee-track{animation-play-state:paused}
 }
}
.glass-glow{pointer-events:none;position:absolute;left:0;top:0;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,#fff5,transparent 70%);opacity:0;z-index:2}
.service-tile>.glass-glow{background:radial-gradient(circle,#fff8,transparent 70%)}
@keyframes hero-enter{from{opacity:0;transform:translateY(14px);filter:blur(3px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes line-in{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes script-write{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes ken-burns{from{transform:scale(1.015) translateX(-.4%)}to{transform:scale(1.09) translateX(.4%)}}
@keyframes button-sheen{from{transform:translateX(-70%)}to{transform:translateX(70%)}}
@keyframes focus-in{from{filter:brightness(1.2)}to{filter:brightness(1)}}
@keyframes call-ring{0%,80%,100%{opacity:0;transform:scale(1)}85%{opacity:.4;transform:scale(1)}96%{opacity:0;transform:scale(1.12,1.25)}}
@keyframes grain-drift{from{background-position:0 0}to{background-position:100% 60%}}
@keyframes icon-write{from{stroke-dashoffset:100;opacity:.2}to{stroke-dashoffset:0;opacity:1}}
@keyframes trade-loop{to{transform:translateX(-50%)}}
@keyframes client-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes initials-ring{0%{transform:scale(.94);opacity:0}30%{opacity:.5}100%{transform:scale(1.15);opacity:0}}
@keyframes closing-sheen{0%,70%{transform:translateX(-110%)}100%{transform:translateX(110%)}}
@keyframes footer-shimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@keyframes drawer-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.public-page *,.public-page *:before,.public-page *:after{animation:none!important;transition:none!important}.back-top.is-shown{visibility:visible;opacity:1}.glass-glow{display:none}.hero-progress{display:none}}
@media(max-width:600px){.trust-strip:after{clip-path:polygon(100% 25%,100% 100%,0 100%,0 85%)}}

/* Motion v2: visible feedback, composed layers, no inline presentation. */
.glass-light{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;z-index:2}
.glass-ambient{position:absolute;inset:-50%;background:linear-gradient(115deg,transparent 35%,#fff5 49%,transparent 62%);opacity:.3;pointer-events:none}
.motion-sheen{position:absolute;inset:0;border-radius:inherit;background:linear-gradient(110deg,transparent 25%,#fff7 48%,transparent 72%);transform:translateX(-120%);pointer-events:none;z-index:3}
.motion-ripple{position:absolute;left:0;top:0;width:20px;height:20px;border-radius:50%;background:#ffae64;pointer-events:none;z-index:4}
.button:before{display:none}
.button,.text-link,.service-tile{position:relative;isolation:isolate;overflow:hidden}
.slide-counter{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.hero-progress{height:5px;z-index:4;box-shadow:0 0 12px #e54f0766}
.slide-previews{position:absolute;right:2.5%;bottom:68px;display:flex;gap:7px;z-index:3}
.slide-previews button{width:74px;height:42px;padding:2px;background:#ffffff80;border:2px solid transparent;border-radius:5px;overflow:hidden;opacity:.65}
.slide-previews img{width:100%;height:100%;object-fit:cover}
.slide-previews button[aria-pressed=true]{border-color:var(--orange);opacity:1}
.orange-diagonal{position:absolute;inset:-20px;background:var(--orange);clip-path:polygon(73% 0,100% 0,100% 100%,64% 100%);z-index:-2;pointer-events:none}
.trust-strip:before{display:none}
@media(prefers-reduced-motion:no-preference){
 .hero-slide img{animation:ken-burns 7s ease-in-out both}
 .hero-media{scale:1.035}
 .hero-slide.is-active img{animation-name:ken-burns}
 .hero-slide:not(.is-active) img{animation:none}
 .motion-ready .hero-script{animation:flourish-sway 8s ease-in-out infinite}
 .trade-manifesto{animation:flourish-sway 9s -3s ease-in-out infinite}
 .hero-card,.approach-copy,.feature-card,.cta-panel,.project-record,.service-tile,.project-card,.testimonial{animation:glass-float 8s ease-in-out infinite}
 .feature-card,.project-card:nth-child(2),.service-tile:nth-child(even){animation-duration:9s;animation-delay:-3s}
 .testimonial:nth-child(2),.service-tile:nth-child(3n){animation-duration:7s;animation-delay:-5s}
 .glass-ambient{animation:ambient-light 8s ease-in-out infinite}
 .brand,.footer-brand{overflow:hidden}
 .brand:after,.footer-brand:after{content:'';position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#fffb 50%,transparent 75%);pointer-events:none;animation:logo-shimmer 9s linear infinite!important}
 .button:after{content:'';position:absolute;inset:1px;border-radius:inherit;box-shadow:inset 0 0 18px 5px #ffcc97;opacity:0;pointer-events:none;animation:cta-breathe 6s ease-in-out infinite}
 .button:active,.text-link:active{transform:scale(.96)!important}
 .button:focus-visible,.text-link:focus-visible{animation:focus-in 240ms var(--ease-out)}
 .motion-ready [data-heading]{transition:transform 600ms var(--ease-out),filter 600ms var(--ease-out),opacity 600ms var(--ease-out)}
 .motion-ready [data-heading].reveal-pending{transform:translateY(16px);filter:blur(4px)}
 .motion-ready .hero h1>span,.trade-manifesto.is-visible span{animation-name:hero-enter}
 .feature-card.is-visible .icon{animation-name:hero-enter}
 .trust-strip:after{animation:grain-drift 14s linear infinite alternate}
 .project-card,.project-record{transition:transform 200ms var(--ease-out)}
 .motion-sheen{transition:transform 600ms var(--ease-out)}
 .button:focus-visible>.motion-sheen,.text-link:focus-visible>.motion-sheen{transform:translateX(120%)}
 .assistant-panel{animation:chat-enter 200ms var(--ease-out);transform-origin:bottom right}
 @media(hover:hover) and (pointer:fine){
  .button:hover>.motion-sheen,.text-link:hover>.motion-sheen,.service-tile:hover>.motion-sheen{transform:translateX(120%)}
  .button:hover .icon,.text-link:hover .icon{animation:arrow-wiggle 700ms var(--ease-out) both}
  .service-tile:hover .service-image img{transform:scale(1.08)}
  .project-card:hover,.project-record:hover{transform:translateY(-8px)}
  .project-card:hover .project-caption{transform:translateY(-10px)}
  .call-button:hover .icon{animation:phone-pulse 600ms ease-in-out infinite}
  .trade-marquee:hover .marquee-track{animation-play-state:running}
  .button-ghost:before,.button.ghost:before,.button--ghost:before{display:block;inset:0;background:var(--orange);transform:translateX(-101%);transition:transform 200ms var(--ease-out);z-index:-1}
  .button-ghost:hover:before,.button.ghost:hover:before,.button--ghost:hover:before{animation:none;transform:translateX(0)}
  .assistant-toggle:hover{transform:translateY(-5px)}
 }
}
@keyframes ken-burns{from{transform:scale(1)}to{transform:scale(1.12)}}
@keyframes glass-float{0%,100%{translate:0 -4px}50%{translate:0 4px}}
@keyframes flourish-sway{0%,100%{translate:0 -4px;rotate:-2deg}50%{translate:6px 4px;rotate:2deg}}
@keyframes ambient-light{0%,100%{transform:translateX(-35%);opacity:.12}50%{transform:translateX(35%);opacity:.35}}
@keyframes grain-drift{from{transform:translate(-12px,-8px)}to{transform:translate(12px,8px)}}
@keyframes logo-shimmer{0%,65%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}
@keyframes cta-breathe{0%,70%,100%{opacity:0}85%{opacity:.7}}
@keyframes arrow-wiggle{0%{transform:translateX(0)}45%{transform:translateX(7px) rotate(-10deg)}70%{transform:translateX(4px) rotate(8deg)}100%{transform:translateX(6px)}}
@keyframes phone-pulse{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.15) rotate(-10deg)}}
@keyframes chat-enter{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.assistant{position:fixed;right:22px;bottom:22px;z-index:100;max-width:calc(100vw - 28px)}
.assistant-toggle.button{background:var(--orange);color:#fff;box-shadow:0 6px 25px #65250933;font-size:15px}
.assistant-panel.glass{width:370px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 115px);margin-bottom:12px;padding:18px;background:#f3efe8f5;box-shadow:0 18px 60px #30251a33;overflow:auto;display:flex;flex-direction:column;gap:12px}
.assistant-panel>header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.assistant-panel>header button{background:transparent;font-size:24px;padding:0 9px;min-height:40px}
.assistant-log{overflow:auto;min-height:90px;max-height:230px;flex:1;line-height:1.6;font-size:14px;overflow-wrap:anywhere}
.assistant-log p{margin-bottom:12px;padding:10px;background:#ffffff9c;border-radius:8px}
.assistant-log .assistant-mine{margin-left:25px;background:#e54f071a}
.assistant-log a{text-decoration:underline}
.assistant-choices{display:flex;flex-wrap:wrap;gap:6px}
.assistant-choices button,.assistant-form [data-chat-cancel]{padding:7px 10px;font-size:12px;min-height:36px;background:#fff;border:1px solid #e54f0744;border-radius:6px}
.assistant-form label{font-size:12px;margin-bottom:4px}
.assistant-form input{background:#fff;border:1px solid #948879;border-radius:5px;font-size:16px}
.assistant-form>div{display:flex;align-items:center;gap:8px;margin-top:8px}
.assistant-form .button{font-size:13px;padding:10px 16px}
.assistant-error{font-size:13px;color:#8b2700}
.public-page .back-top{bottom:98px}
@media(max-width:600px){
 .slide-previews{top:125px;bottom:auto;right:15px;gap:5px}
 .slide-previews button{width:53px;height:36px}
 .slide-counter{font-size:10px}
 .assistant{right:14px;bottom:14px}
 .assistant-panel.glass{padding:14px}
 .orange-diagonal{clip-path:polygon(100% 25%,100% 100%,0 100%,0 85%)}
}
@media(prefers-reduced-motion:reduce){
 .public-page *,.public-page *:before,.public-page *:after{animation:none!important;transition:none!important}
 .reveal-pending{opacity:1!important;transform:none!important;filter:none!important}
 .motion-sheen,.glass-light,.motion-ripple{display:none}
 .hero-media{scale:1}
}
@media(prefers-reduced-motion:no-preference){
 .button:focus-visible:after,.text-link:focus-visible:after{content:'';position:absolute;inset:2px;border:2px solid #ffbe7f;border-radius:inherit;pointer-events:none;animation:focus-ring 1.2s ease-in-out infinite}
 @media(hover:hover) and (pointer:fine){.call-button:hover{animation:phone-button-pulse 900ms ease-in-out infinite}}
}
@keyframes focus-ring{0%,100%{opacity:.45;transform:scale(.97)}50%{opacity:1;transform:scale(1)}}
@keyframes phone-button-pulse{0%,100%{scale:1}50%{scale:1.025}}
