/* Airbrush Some Stuff V29 — Cinematic Motion Edition */
:root{--motion-fast:180ms;--motion-mid:420ms;--motion-slow:760ms;--motion-ease:cubic-bezier(.2,.72,.2,1);--motion-spring:cubic-bezier(.16,1,.3,1)}
html.v29-motion-ready{scroll-behavior:smooth}
body.v29-motion{--pointer-x:50vw;--pointer-y:40vh}

/* Page transition */
.v29-page-transition{position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:0;visibility:hidden;background:rgba(3,9,13,.16);transition:opacity .24s ease,visibility .24s ease}
.v29-page-transition:before{content:"";position:absolute;left:-28vw;top:0;width:28vw;height:100%;background:linear-gradient(90deg,transparent,rgba(41,229,255,.16),rgba(216,255,79,.7),rgba(255,255,255,.96),rgba(41,229,255,.18),transparent);filter:blur(1px);box-shadow:0 0 38px rgba(41,229,255,.28)}
body.v29-leaving .v29-page-transition{opacity:1;visibility:visible}
body.v29-leaving .v29-page-transition:before{animation:v29LightSweep .38s var(--motion-ease) forwards}
body.v29-entering .v29-page-transition{opacity:.68;visibility:visible;animation:v29EntryFade .38s ease forwards}
@keyframes v29LightSweep{to{transform:translateX(156vw)}}
@keyframes v29EntryFade{0%{opacity:.5}100%{opacity:0;visibility:hidden}}

/* Global section reveal */
.v29-reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity var(--motion-slow) var(--motion-ease),transform var(--motion-slow) var(--motion-spring);transition-delay:var(--v29-delay,0ms);will-change:opacity,transform}
.v29-reveal.v29-from-left{transform:translate3d(-30px,10px,0)}
.v29-reveal.v29-from-right{transform:translate3d(30px,10px,0)}
.v29-reveal.v29-scale{transform:translate3d(0,18px,0) scale(.975)}
.v29-reveal.v29-visible{opacity:1;transform:none;will-change:auto}
.v29-heading-reveal{overflow:hidden}
.v29-heading-reveal>span.v29-heading-inner{display:inline-block;opacity:0;transform:translateY(.65em);transition:opacity .7s var(--motion-ease),transform .82s var(--motion-spring)}
.v29-heading-reveal.v29-visible>span.v29-heading-inner{opacity:1;transform:none}

/* Lit cards and artwork */
.v29-lit{--mx:50%;--my:50%;position:relative;isolation:isolate;transform:translateZ(0);transition:transform .34s var(--motion-spring),border-color .28s ease,box-shadow .32s ease}
.v29-lit:before{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;background:radial-gradient(380px circle at var(--mx) var(--my),rgba(41,229,255,.105),rgba(216,255,79,.035) 34%,transparent 68%);opacity:0;transition:opacity .28s ease;pointer-events:none}
.v29-lit>*{position:relative;z-index:1}
.v29-lit:hover{transform:translateY(-4px);border-color:rgba(41,229,255,.28)!important;box-shadow:0 22px 58px rgba(0,0,0,.22),0 0 0 1px rgba(41,229,255,.035)}
.v29-lit:hover:before{opacity:1}
.v29-art-hover img{transition:transform .8s var(--motion-spring),filter .5s ease}
.v29-art-hover:hover img{transform:scale(1.035);filter:saturate(1.04) brightness(1.035)}

/* Premium CTA light and airbrush particles */
.btn,.admin-btn,button[type="submit"],.filter,.floating-project-main,.menu-toggle{--btn-x:50%;--btn-y:50%}
.btn,.filter,.floating-project-main,.menu-toggle,button[type="submit"]{box-shadow:0 0 0 rgba(41,229,255,0);transition:transform .24s var(--motion-spring),box-shadow .3s ease,border-color .25s ease,filter .25s ease}
.btn:hover,.filter:hover,.floating-project-main:hover,.menu-toggle:hover,button[type="submit"]:hover{filter:brightness(1.035);box-shadow:0 12px 30px rgba(0,0,0,.18),0 0 26px rgba(41,229,255,.10)}
.btn>*,button[type="submit"]>*{position:relative;z-index:2}
.v29-spray-particle{position:fixed;z-index:9999;width:var(--size,5px);height:var(--size,5px);margin:-3px 0 0 -3px;border-radius:50%;background:var(--particle,var(--cyan));box-shadow:0 0 10px color-mix(in srgb,var(--particle,var(--cyan)) 55%,transparent);pointer-events:none;animation:v29Spray .58s var(--motion-ease) forwards}
@keyframes v29Spray{0%{opacity:.92;transform:translate3d(0,0,0) scale(.8)}100%{opacity:0;transform:translate3d(var(--dx),var(--dy),0) scale(.1)}}

/* Radiating Contact Us CTA — reusable */
.btn-radiant{position:relative!important;overflow:visible!important;background:linear-gradient(100deg,var(--lime),#efffa0);box-shadow:0 0 0 1px rgba(216,255,79,.16),0 0 26px rgba(41,229,255,.13),0 0 54px rgba(216,255,79,.08)!important}
.btn-radiant:before{content:""!important;position:absolute!important;z-index:-2!important;inset:-9px!important;border-radius:999px!important;border:1px solid rgba(41,229,255,.22)!important;background:transparent!important;opacity:.65!important;transform:none!important;animation:v29RadiantRing 3.6s ease-out infinite!important;pointer-events:none!important}
.btn-radiant:after{content:""!important;position:absolute!important;z-index:-3!important;inset:-18px!important;border-radius:999px!important;background:radial-gradient(ellipse at center,rgba(41,229,255,.2),rgba(216,255,79,.08) 42%,transparent 72%)!important;transform:none!important;animation:v29RadiantBreath 4.8s ease-in-out infinite!important;pointer-events:none!important}
@keyframes v29RadiantRing{0%{opacity:.6;transform:scale(.93)}80%,100%{opacity:0;transform:scale(1.22)}}
@keyframes v29RadiantBreath{0%,100%{opacity:.48;transform:scale(.96)}50%{opacity:.88;transform:scale(1.06)}}
.contact-radiance-visual{box-shadow:inset 0 0 90px rgba(41,229,255,.035),0 28px 72px rgba(0,0,0,.2)}
.contact-radiance-visual:after{content:"";position:absolute;inset:-35%;background:conic-gradient(from 0deg,transparent 0 22%,rgba(41,229,255,.055) 28%,transparent 34% 62%,rgba(216,255,79,.045) 69%,transparent 76%);animation:v29RadianceTurn 20s linear infinite;pointer-events:none}
.contact-radiance-visual .radiance-core{animation:v29ContactPulse 5.4s ease-in-out infinite!important}
@keyframes v29RadianceTurn{to{transform:rotate(360deg)}}
@keyframes v29ContactPulse{0%,100%{transform:scale(.92);filter:brightness(.95)}50%{transform:scale(1.08);filter:brightness(1.1)}}

/* Navigation micro motion */
.desktop-nav a{position:relative}
.desktop-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:2px;border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--lime));box-shadow:0 0 12px rgba(41,229,255,.26);transition:right .3s var(--motion-ease)}
.desktop-nav a:hover:after,.desktop-nav a.v29-active:after{right:0}
.mobile-menu.open a{opacity:0;transform:translateX(-12px);animation:v29MenuItem .38s var(--motion-spring) forwards;animation-delay:calc(var(--menu-index,0) * 34ms)}
@keyframes v29MenuItem{to{opacity:1;transform:none}}

/* Form focus / completion / sending */
.project-form label,.pc-form-grid label,.estimate-controls label,.estimate-contact label,.tool-form label,.checkout-grid label{transition:color .25s ease}
.project-form label:focus-within,.pc-form-grid label:focus-within,.estimate-controls label:focus-within,.estimate-contact label:focus-within,.tool-form label:focus-within,.checkout-grid label:focus-within{color:var(--cyan)}
.project-form input:focus,.project-form select:focus,.project-form textarea:focus,.pc-form-grid input:focus,.pc-form-grid select:focus,.pc-form-grid textarea:focus,.estimate-controls input:focus,.estimate-controls select:focus,.estimate-contact input:focus,.estimate-contact textarea:focus,.tool-form input:focus,.tool-form select:focus,.tool-form textarea:focus{outline:none!important;border-color:rgba(41,229,255,.72)!important;box-shadow:0 0 0 3px rgba(41,229,255,.09),0 0 22px rgba(41,229,255,.08)!important}
.v29-complete{border-color:rgba(116,230,164,.48)!important;box-shadow:inset 0 -2px rgba(116,230,164,.14)}
button.v29-sending{pointer-events:none;opacity:.78;min-width:130px}
button.v29-sending:before{animation:v29SendingPulse 1.2s ease-in-out infinite}
@keyframes v29SendingPulse{0%,100%{opacity:.08}50%{opacity:.25}}

/* Mural estimator micro feedback */
#estimateTotal,#depositDue,#artworkCost,#materialsCost,#prepCost,#travelCost,#rentalCost,#clearcoatCost,#discountAmount{transition:color .22s ease,text-shadow .22s ease,transform .22s ease}
.v29-value-change{color:var(--cyan)!important;text-shadow:0 0 18px rgba(41,229,255,.32);transform:translateY(-1px)}
#estimateTotal.v29-value-change,#depositDue.v29-value-change{color:var(--lime)!important;text-shadow:0 0 22px rgba(216,255,79,.28)}
.discount-good{animation:v29DiscountGlow .9s var(--motion-ease)}
@keyframes v29DiscountGlow{0%{box-shadow:0 0 0 rgba(216,255,79,0)}45%{box-shadow:0 0 32px rgba(216,255,79,.2)}100%{box-shadow:0 0 0 rgba(216,255,79,0)}}

/* Gallery modal and filters */
.lightbox[open]{animation:v29ModalOpen .42s var(--motion-spring)}
.lightbox[open] .lightbox-art{animation:v29ImageOpen .58s var(--motion-spring)}
@keyframes v29ModalOpen{from{opacity:0;transform:translateY(18px) scale(.975)}to{opacity:1;transform:none}}
@keyframes v29ImageOpen{from{opacity:.45;transform:scale(.965)}to{opacity:1;transform:none}}
.rating-buttons button{transition:transform .22s var(--motion-spring),background .22s ease,box-shadow .22s ease}
.rating-buttons button:hover{transform:translateY(-3px) rotate(-3deg);box-shadow:0 8px 22px rgba(255,216,77,.12)}

/* Soft section dividers */
.v29-motion main>section:not(:first-child){position:relative}
.v29-motion main>section:not(:first-child):where(.content-showcase,.project-grid-section,.process,.pc-tool-grid,.builder-layout,.what-next-section,.group-order-checklist,.contact-reassurance):after{content:"";position:absolute;left:8%;right:8%;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(41,229,255,.12),rgba(216,255,79,.08),transparent);pointer-events:none}

/* Very restrained parallax */
.v29-parallax{transform:translate3d(0,var(--v29-parallax-y,0px),0);transition:transform .08s linear;will-change:transform}

@media(max-width:980px){
  .v29-lit:hover{transform:translateY(-2px)}
  .v29-parallax{transform:none!important}
}
@media(max-width:700px){
  .v29-reveal{transform:translate3d(0,16px,0);transition-duration:.5s}
  .v29-lit:before{display:none}
  .btn-radiant:after{inset:-10px!important}
  .v29-spray-particle:nth-of-type(n+7){display:none}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .v29-page-transition,.v29-spray-particle,.contact-radiance-visual:after,.btn-radiant:before,.btn-radiant:after{display:none!important}
  .v29-reveal,.v29-heading-reveal>span.v29-heading-inner,.v29-lit,.v29-art-hover img,.mobile-menu.open a,.v29-parallax{opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
  .radiance-core,.radiance-ring{animation:none!important}
}
