/* Phase 6 — motion + interaction polish. Initial content remains visible without JS. */
html.menu-open{overflow:hidden}.w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}.wi{display:inline-block;will-change:transform}.display em .wi,h1 em .wi,h2 em .wi{background:linear-gradient(100deg,var(--green) 5%,#66E58E 45%,var(--teal-2) 95%);-webkit-background-clip:text;background-clip:text;color:transparent}.section--sand .display em .wi,.section--sand h1 em .wi,.section--sand h2 em .wi{background:none;color:#17170e}
.loader{will-change:transform}.loader__brand{display:block;overflow:hidden}.loader__line i{will-change:width}.alify-loaded .loader{pointer-events:none}
.pushmenu__list>li{list-style:none}.menu-open .burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-open .burger span:nth-child(2){opacity:0}.menu-open .burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.burger span{transition:transform .35s cubic-bezier(.7,0,.2,1),opacity .25s}
.acc__panel{will-change:height}.acc__item.is-open .acc__btn{color:var(--green)}.acc__btn i{transition:transform .35s}.acc__item.is-open .acc__btn i{transform:rotate(90deg)}
.service-category{overflow:hidden}.service-hover-preview{position:absolute;z-index:0;right:clamp(1rem,3vw,2.5rem);top:clamp(1rem,3vw,2.5rem);width:min(42%,180px);aspect-ratio:3/2;opacity:0;pointer-events:none;border:1px solid var(--line);background:var(--panel);overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.26)}.service-hover-preview img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.05)}.service-hover-preview.is-visible{opacity:1}.service-category>.idx,.service-category>h3,.service-category__links{position:relative;z-index:2}.service-category__links a{position:relative}.service-category__links a::after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:1px;background:var(--green);transition:width .35s}.service-category__links a:hover::after{width:100%}
.sv-card__preview{position:absolute;inset:0;z-index:0;opacity:0;pointer-events:none;transform:scale(1.04)}.sv-card__preview::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,13,13,.92),rgba(13,13,13,.62) 56%,rgba(13,13,13,.42))}.sv-card__preview img{width:100%;height:100%;object-fit:cover;filter:saturate(.8) contrast(1.1)}.sv-card__preview.is-visible{opacity:1}.sv-card>*:not(.sv-card__preview){position:relative;z-index:2}
.project-card,.work-card,.t-card,.industry-card,.sv-card{will-change:transform}.project-card:hover,.work-card:hover{transform:translateY(-3px)}
.js-alify-slider{position:relative}.js-alify-slider-track{display:flex!important;gap:clamp(1rem,2vw,1.6rem)!important;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:.5rem}.js-alify-slider-track::-webkit-scrollbar{display:none}.js-alify-slider-track>*{scroll-snap-align:start;flex:0 0 min(88%,420px);margin-top:0!important}.js-alify-slider-controls{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1.25rem}.testimonial-slider .js-alify-slider-track>*{display:flex}.testimonial-slider .t-card{width:100%;height:100%}@media(min-width:768px){.js-alify-slider-track>*{flex-basis:calc(50% - .8rem)}}@media(min-width:1200px){.js-alify-slider-track>*{flex-basis:calc(29.85% - 1rem)}}
.js-marquee{overflow:hidden;border-block:1px solid var(--line)}.js-marquee-track{display:flex;flex-wrap:nowrap!important;width:max-content;animation:alify-marquee 28s linear infinite;will-change:transform}.js-marquee:hover .js-marquee-track{animation-play-state:paused}.js-marquee-track>*{flex:0 0 auto}@keyframes alify-marquee{to{transform:translateX(-50%)}}
.filterbar__btn{transition:transform .25s,background .25s,color .25s,border-color .25s}.filterbar__btn:hover{transform:translateY(-1px)}
.wm{will-change:transform}.media-frame img{will-change:transform,opacity}.cursor-ring{will-change:left,top,width,height}.cursor-dot{will-change:left,top}
@media(max-width:767px){.service-hover-preview,.sv-card__preview{display:none}.js-alify-slider-controls{justify-content:flex-start}.js-alify-slider-track>*{flex-basis:88%}}
@media(prefers-reduced-motion:reduce){.js-marquee-track{animation:none!important}.service-hover-preview,.sv-card__preview{display:none!important}.w{overflow:visible}.wi{transform:none!important;opacity:1!important}}

.swiper.js-alify-slider{overflow:hidden}.swiper .js-alify-slider-track{overflow:visible!important;scroll-snap-type:none!important;padding-bottom:0}.swiper .swiper-slide{height:auto}
