
@media(prefers-reduced-motion:no-preference){
:root{--spring:cubic-bezier(.34,1.56,.64,1)}

/* 1. Stickers are alive: they wobble and breathe, each on its own beat. */
@keyframes sticker-wobble{0%,100%{rotate:-4deg;scale:1}50%{rotate:5deg;scale:1.07}}
@keyframes sticker-wobble-alt{0%,100%{rotate:4deg;scale:1.04}50%{rotate:-5deg;scale:.97}}
.section-sticker{animation:sticker-wobble 5.2s ease-in-out infinite}
.sticker-1{animation-name:sticker-wobble-alt;animation-duration:6.1s;animation-delay:-1.4s}
.sticker-2{animation-duration:4.6s;animation-delay:-2.2s}

/* 2. Cards pop in: they tilt, drop and settle with a little bounce, staggered along each row. */
@keyframes card-pop{from{rotate:-3deg;scale:.94;translate:0 18px}}
:is(.reference-benefit,.team-list>article,.culture-value-grid>article,.rd-role).nuvora-reveal[data-in]{animation:card-pop .9s var(--spring) backwards;animation-delay:calc(var(--i,0)*85ms)}
:is(.reference-benefit,.team-list>article,.culture-value-grid>article,.rd-role):nth-child(4n+2){--i:1}
:is(.reference-benefit,.team-list>article,.culture-value-grid>article,.rd-role):nth-child(4n+3){--i:2}
:is(.reference-benefit,.team-list>article,.culture-value-grid>article,.rd-role):nth-child(4n+4){--i:3}

/* 3. Hover boing: cards lift and tip one way, then the other, with a springy settle. */
:is(.reference-benefit,.team-list>article,.culture-value-grid>article,.rd-role){transition:opacity .7s ease,transform .8s cubic-bezier(.22,1,.36,1),translate .45s var(--spring),rotate .45s var(--spring),scale .45s var(--spring),background-color .25s ease}
:is(.reference-benefit,.team-list>article,.culture-value-grid>article,.rd-role):hover{translate:0 -6px;rotate:1deg;scale:1.02}
:is(.reference-benefit,.team-list>article,.culture-value-grid>article,.rd-role):nth-child(even):hover{rotate:-1deg}
.team-list .portrait{transition:rotate .45s var(--spring),scale .45s var(--spring)}
.team-list>article:hover .portrait{rotate:-2deg;scale:1.04}
.culture-number{display:inline-block;transition:rotate .45s var(--spring),scale .45s var(--spring)}
.culture-value-grid>article:hover .culture-number{rotate:-12deg;scale:1.25}

/* 4. Buttons wiggle on hover and squish when pressed. */
@keyframes btn-wiggle{0%{rotate:0deg}30%{rotate:-2.5deg}60%{rotate:1.8deg}100%{rotate:0deg}}
:is(.button,.culture-button,.career-button,.solid-button,.nuvora-primary-cta,.team-cta,.journey-cta):hover{animation:btn-wiggle .5s var(--spring)}
:is(.button,.culture-button,.career-button,.solid-button,.nuvora-primary-cta,.team-cta,.journey-cta):active{scale:.96}
.process-tabs button:hover{animation:btn-wiggle .5s var(--spring)}
.role-card{transition:translate .35s var(--spring),border-color .2s}
.role-card:hover{translate:5px 0}

/* 5. The line-art doodles on the "Nuvora way" cards float and tilt gently. */
@keyframes doodle-bob{0%,100%{translate:0 0;rotate:-1.5deg}50%{translate:0 -6px;rotate:1.5deg}}
.benefit-art img{animation:doodle-bob 5s ease-in-out infinite}
.reference-benefit:nth-child(2) .benefit-art img{animation-delay:-1.1s}
.reference-benefit:nth-child(3) .benefit-art img{animation-delay:-2.3s}
.reference-benefit:nth-child(4) .benefit-art img{animation-delay:-3.4s}
.reference-benefit:nth-child(5) .benefit-art img{animation-delay:-.5s}
.reference-benefit:hover .benefit-art img{animation-duration:1.6s}

/* 6. Opening a detail panel drops its content in with a bounce. */
@keyframes drop-in{from{opacity:0;translate:0 -10px;scale:.98}}
:is(.faq details[open]>p,.concept details[open]>ul){animation:drop-in .5s var(--spring)}

/* 7. Photos tilt a touch on hover, like pictures pinned to a board. */
:is(.about-intro-image,.about-vision-image,.about-mission-image) img,.rd-visual.has-photo,.culture-hero-image{transition:rotate .5s var(--spring),scale .5s var(--spring)}
:is(.about-intro-image,.about-vision-image,.about-mission-image) img:hover,.rd-visual.has-photo:hover,.culture-hero-image:hover{rotate:-1deg;scale:1.015}
.about-vision-image img:hover{rotate:1deg}

/* 8. Culture page: the key phrase gets a highlighter-pen swipe. */
@keyframes marker-sweep{to{background-size:100% 100%}}
.nuvora-culture .culture-intro h1 em{padding:0 .1em;margin:0 -.1em;background:linear-gradient(transparent 58%,var(--nuvora-yellow) 58% 90%,transparent 90%) no-repeat 0 0/0% 100%;animation:marker-sweep .9s .7s cubic-bezier(.22,1,.36,1) forwards;-webkit-box-decoration-break:clone;box-decoration-break:clone}
}
