/* Restrained interaction layer: lift cards, zoom imagery, reveal content, and animate estimate feedback. */
@property --beam-angle{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes border-beam-spin{to{--beam-angle:360deg}}
.system-card::before,.project-placeholder::before,.estimate-box::before,.contact-form::before,.concept-card::before,.preview-card::before,.biz-scope::before,.catalog-card::before,.scenario::before,.person-card::before,.photo-card::before,.review-card::before,.work-card::before,.system-card::after,.project-placeholder::after,.estimate-box::after,.contact-form::after,.concept-card::after,.preview-card::after,.biz-scope::after,.catalog-card::after,.scenario::after,.person-card::after,.photo-card::after,.review-card::after,.work-card::after{display:none}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
  /* Functional controls across pages receive the same restrained hover response as primary links. */
  button:not(.button):not(:disabled),[role="tab"]:not(.button),[role="switch"]:not(.button){transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,color .22s ease}
  button:not(.button):not(:disabled):hover,[role="tab"]:not(.button):hover,[role="switch"]:not(.button):hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(35,40,32,.16)}
  button:not(.button):not(:disabled):active,[role="tab"]:not(.button):active,[role="switch"]:not(.button):active{transform:translateY(0);box-shadow:0 2px 7px rgba(35,40,32,.12)}
  .system-card,.work-card,.concept-card,.preview-card,.catalog-card,.scenario,.person-card,.photo-card,.review-card,.business-overview-grid article,.object-card,.service-option,.cap,.trust-card{transition:transform .34s ease,box-shadow .34s ease}
  .system-card:hover,.work-card:hover,.concept-card:hover,.preview-card:hover,.catalog-card:hover,.scenario:hover,.person-card:hover,.photo-card:hover,.review-card:hover,.business-overview-grid article:hover,.object-card:hover,.service-option:hover,.cap:hover,.trust-card:hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(35,40,32,.13)}
  .motion-ready .motion-reveal:is(.system-card,.work-card,.concept-card,.preview-card,.catalog-card,.scenario,.person-card,.photo-card,.review-card,.object-card,.service-option,.cap,.trust-card):hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(35,40,32,.13)}
  .hero-visual>img,.daily-image img,.biz-graphic>img,.photo-card>img,.portrait>img{transition:transform .7s cubic-bezier(.2,.7,.2,1);transform:translate3d(0,var(--parallax-y,0px),0) scale(1)}
  .hero-visual:hover>img,.daily-image:hover img,.biz-graphic:hover>img,.photo-card:hover>img,.person-card:hover .portrait>img{transform:translate3d(0,var(--parallax-y,0px),0) scale(1.045)}
  .button{transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease}
  .button:hover{transform:translate3d(var(--magnetic-x,0px),calc(var(--magnetic-y,0px) - 2px),0);box-shadow:0 9px 22px rgba(35,40,32,.2)}
  .button:not(:hover){transform:translate3d(var(--magnetic-x,0px),var(--magnetic-y,0px),0)}
  .photo-card{transform-style:preserve-3d;will-change:transform}
  .photo-card:hover{transform:perspective(900px) translateY(-6px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));box-shadow:0 18px 36px rgba(35,40,32,.13)}
  .motion-ready .motion-reveal.photo-card:hover{transform:perspective(900px) translateY(-6px) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg))}
  .photo-card::before{display:block;content:"";position:absolute;z-index:2;inset:-35% auto -35% -45%;width:32%;padding:0;border-radius:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);-webkit-mask:none;mask:none;transform:translateX(-160%) rotate(22deg)}
  .photo-card::after{display:block}
  .photo-card figcaption{z-index:4}
  .photo-card:hover::before{animation:image-shine .8s ease-out both}
}
.hero-visual>img,.daily-image img,.biz-graphic>img{will-change:transform}
.photo-card::after{display:block}
.button{position:relative;isolation:isolate;overflow:hidden;border-radius:3px}
.button>*{position:relative;z-index:1}
.button::before{content:"";position:absolute;z-index:0;inset:-1px;padding:1.5px;border-radius:inherit;pointer-events:none;background:conic-gradient(from var(--beam-angle,0deg),transparent 0 305deg,rgba(193,122,80,.5) 326deg,#e4bd88 338deg,#fff8e7 342deg,rgba(193,122,80,.5) 349deg,transparent 358deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:border-beam-spin 4.8s linear infinite}
.button::after{content:"";position:absolute;z-index:-1;inset:-6px;border-radius:inherit;pointer-events:none;background:conic-gradient(from var(--beam-angle,0deg),transparent 0 315deg,rgba(193,122,80,.06) 333deg,rgba(193,122,80,.42) 342deg,transparent 356deg);filter:blur(7px);animation:border-beam-spin 4.8s linear infinite;opacity:.7}
.button-light::before{background:conic-gradient(from var(--beam-angle,0deg),transparent 0 305deg,rgba(122,143,100,.46) 326deg,#c9d8b6 338deg,#fff 342deg,rgba(122,143,100,.46) 349deg,transparent 358deg)}
.count-up{font-variant-numeric:tabular-nums}
@keyframes image-shine{0%{transform:translateX(-160%) rotate(22deg)}100%{transform:translateX(510%) rotate(22deg)}}
.motion-ready .motion-reveal{opacity:0;transform:translate3d(0,18px,0);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1)}
.motion-ready .motion-reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.motion-ready .motion-reveal[data-reveal-delay="1"]{transition-delay:80ms}
.motion-ready .motion-reveal[data-reveal-delay="2"]{transition-delay:150ms}
.motion-ready .motion-reveal[data-reveal-delay="3"]{transition-delay:220ms}
.estimate-result strong{transition:opacity .18s ease,transform .18s ease}
.estimate-result strong.is-updating{opacity:.35;transform:translateY(3px)}
@media(max-width:680px){.motion-ready .motion-reveal{transform:translate3d(0,12px,0);transition-duration:.48s}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-ready .motion-reveal,.estimate-result strong{opacity:1!important;transform:none!important;transition:none!important}.hero-visual>img,.daily-image img,.biz-graphic>img,.photo-card>img,.portrait>img{transform:none!important;transition:none!important}.button::before,.button::after,.photo-card::before{animation:none!important;display:none!important}.button,button,[role="tab"],[role="switch"],.photo-card,.system-card,.work-card,.concept-card,.preview-card,.catalog-card,.scenario,.person-card,.review-card,.business-overview-grid article,.object-card,.service-option,.cap,.trust-card{transform:none!important;transition:none!important;box-shadow:none!important}}
