/* Purposeful DZPARTNER motion: subtle hierarchy, never decorative noise. */
@keyframes orbitDrift { 0%,100% { transform: rotate(-23deg) scale(1); } 50% { transform: rotate(-14deg) scale(1.035); } }
@keyframes orbitDriftAlt { 0%,100% { transform: rotate(31deg) scale(1); } 50% { transform: rotate(40deg) scale(.97); } }
@keyframes phoneFloatDesktop { 0%,100% { transform: rotate(7deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-10px); } }
@keyframes phoneFloatMobile { 0%,100% { transform: rotate(2deg) scale(.7) translateY(0); } 50% { transform: rotate(2deg) scale(.7) translateY(-10px); } }
@keyframes cardEnter { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@keyframes softShine { 0%,100% { opacity: .35; } 50% { opacity: .75; } }

.partner-phone { animation: phoneFloatDesktop 7s ease-in-out infinite; will-change: transform; }
.orbit-one { animation: orbitDrift 12s ease-in-out infinite; }
.orbit-two { animation: orbitDriftAlt 14s ease-in-out infinite; }
.partner-progress span { animation: softShine 2.8s ease-in-out infinite; }
.carousel-card { animation: cardEnter .5s both cubic-bezier(.16,1,.3,1); }
.carousel-card:nth-child(2) { animation-delay: .06s; }.carousel-card:nth-child(3) { animation-delay: .12s; }.carousel-card:nth-child(4) { animation-delay: .18s; }
.carousel-track-container { cursor: grab; }.carousel-track-container:active { cursor: grabbing; }
.carousel-track-container::after { content: 'اسحب لرؤية بقية المشاريع'; display: block; width: 100%; padding-top: 4px; color: #71839a; font-size: .68rem; text-align: center; }
.btn-hero-primary,.btn-hero-secondary,.btn-primary,.btn-secondary,.amount-chips button,.mobile-cta a { transition: transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease; }
.btn-hero-primary:active,.btn-hero-secondary:active,.btn-primary:active,.btn-secondary:active,.amount-chips button:active { transform: scale(.97); }
.amount-chips button.active { box-shadow: 0 0 0 3px rgba(54,232,164,.1),0 8px 18px rgba(54,232,164,.12); }
.reveal-on-scroll { opacity: 0; transform: translateY(20px); transition: opacity .6s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1); }
.reveal-on-scroll.is-visible { opacity: 1; transform: translateY(0); }
@media(max-width:640px) { .partner-phone { animation: phoneFloatMobile 7s ease-in-out infinite; } .carousel-track-container::after { display: none; } .mobile-cta { animation: cardEnter .45s both .25s; } }
@media(prefers-reduced-motion:reduce) { .partner-phone,.orbit-one,.orbit-two,.partner-progress span,.carousel-card,.mobile-cta { animation: none!important; } .reveal-on-scroll { opacity:1; transform:none; transition:none; } }
/* Opening sequence: establishes the brand without delaying interaction. */
.hero-brand-badge,.welcome-title,.welcome-desc,.hero-cta-group,.trust-pillars-grid,.hero-phone-col{opacity:0;animation:heroEnter .72s both cubic-bezier(.16,1,.3,1)}
.hero-brand-badge{animation-delay:.08s}.welcome-title{animation-delay:.16s}.welcome-desc{animation-delay:.25s}.hero-cta-group{animation-delay:.34s}.trust-pillars-grid{animation-delay:.43s}.hero-phone-col{animation-delay:.18s}
@keyframes heroEnter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
.hero-phone-col{animation-name:heroPhoneEnter}.hero-phone-col::before{animation:heroHalo 1.8s both .5s cubic-bezier(.16,1,.3,1)}
@keyframes heroPhoneEnter{from{opacity:0;transform:translate3d(-30px,25px,0) scale(.94)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@keyframes heroHalo{from{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}
.numeric-value{display:inline-block;direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.02em}
#display-equity-pct{min-width:4.8ch;text-align:left}
.amount-chips button{direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums}
@media(max-width:640px){.hero-brand-badge,.welcome-title,.welcome-desc,.hero-cta-group,.trust-pillars-grid{animation-duration:.55s}.hero-phone-col{animation-name:heroPhoneEnterMobile;animation-duration:.65s}.hero-phone-col::before{animation:none}@keyframes heroPhoneEnterMobile{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}}
@media(prefers-reduced-motion:reduce){.hero-brand-badge,.welcome-title,.welcome-desc,.hero-cta-group,.trust-pillars-grid,.hero-phone-col,.hero-phone-col::before{animation:none!important;opacity:1!important;transform:none!important}}
