/* Motion & polish — respects prefers-reduced-motion */
:root{--reveal-ease:cubic-bezier(.22,1,.36,1)}
.reveal{opacity:0;transform:translateY(18px) scale(.98);transition:opacity .7s var(--reveal-ease), transform .7s var(--reveal-ease);will-change:opacity,transform}
.reveal.in{opacity:1;transform:none}
.reveal-delay-1{transition-delay:.08s}.reveal-delay-2{transition-delay:.16s}.reveal-delay-3{transition-delay:.24s}
.hero-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.hero-particles span{position:absolute;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 0 12px rgba(139,124,255,.8);animation:floatParticle linear infinite;opacity:.0}
@keyframes floatParticle{0%{transform:translateY(20px) scale(.6);opacity:0}15%{opacity:.7}100%{transform:translateY(-120px) scale(1);opacity:0}}
.hero-slim .slider{isolation:isolate}
.hero-slim .slide{background-size:200% 200%;animation:gradShift 12s ease infinite}
@keyframes gradShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.skel{background:linear-gradient(90deg,var(--surface2) 25%,color-mix(in srgb,var(--primary) 12%,var(--surface2)) 37%,var(--surface2) 63%);background-size:400% 100%;animation:shimmer 1.2s ease infinite;border-radius:12px}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:0 0}}
.drawer{transition:transform .32s var(--reveal-ease)}
.overlay{transition:opacity .28s ease}
.toast{transition:opacity .25s, transform .25s var(--reveal-ease)}
.pbox{transition:transform .28s var(--reveal-ease), box-shadow .28s, border-color .28s}
@media (hover:hover) and (pointer:fine){.pbox:hover{transform:translateY(-8px) scale(1.015)}}
.btn.primary{position:relative;overflow:hidden}
.btn.primary::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.28) 48%,transparent 62%);transform:translateX(-120%);pointer-events:none}
@media (hover:hover) and (pointer:fine){.btn.primary:hover::after{animation:sheen .85s ease}}
.qchip,.chip{transition:transform .2s, background .2s, border-color .2s, color .2s, box-shadow .2s}
@media (hover:hover) and (pointer:fine){.qchip:hover,.chip:hover{transform:translateY(-2px)}}
.ny-sec{position:relative;overflow:hidden;padding:36px 0 28px;margin-top:10px;background:
  radial-gradient(700px 280px at 10% 0%, rgba(255,80,120,.18), transparent 60%),
  radial-gradient(600px 260px at 90% 20%, rgba(255,200,60,.14), transparent 55%),
  linear-gradient(180deg, color-mix(in srgb, var(--primary) 10%, transparent), transparent)}
.ny-sec::before{content:"";position:absolute;inset:0;background-image:radial-gradient(2px 2px at 20% 30%, rgba(255,255,255,.5), transparent),radial-gradient(2px 2px at 70% 60%, rgba(255,220,120,.45), transparent),radial-gradient(1.5px 1.5px at 40% 80%, rgba(255,255,255,.35), transparent);animation:twinkle 4s ease-in-out infinite;pointer-events:none}
@keyframes twinkle{0%,100%{opacity:.45}50%{opacity:1}}
.ny-banner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 20px;border-radius:18px;border:1px solid rgba(255,255,255,.14);background:linear-gradient(135deg, rgba(90,71,251,.35), rgba(255,77,109,.25) 55%, rgba(0,200,160,.2));box-shadow:var(--glow);overflow:hidden}
.ny-banner h2{margin:0;font-size:clamp(22px,4vw,32px)}
.ny-banner p{margin:6px 0 0;opacity:.9}
.ny-festoon{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.ny-festoon i{position:absolute;top:-10px;width:8px;height:12px;border-radius:2px;opacity:.85;animation:fall linear infinite}
@keyframes fall{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:1}100%{transform:translateY(220px) rotate(260deg);opacity:0}}
.ny-count{display:flex;gap:10px;flex-wrap:wrap}
.ny-count .cd{min-width:64px;padding:10px 12px;border-radius:12px;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.16);text-align:center;backdrop-filter:blur(8px)}
.ny-count b{display:block;font-size:22px;font-weight:800;direction:ltr}
.ny-count span{font-size:11px;opacity:.8}
.contact-sec{padding:40px 0 20px}
.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.contact-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--shadow);transition:transform .25s, box-shadow .25s}
@media (hover:hover) and (pointer:fine){.contact-card:hover{transform:translateY(-4px);box-shadow:var(--glow)}}
.contact-card h3{margin:0 0 8px;font-size:15px}
.contact-card a,.contact-card p{margin:0;color:var(--text2);font-size:14px;line-height:1.6;direction:ltr;unicode-bidi:plaintext}
.contact-card[data-dir="rtl"] a,.contact-card[data-dir="rtl"] p{direction:rtl}
.legal-page{max-width:820px;margin:0 auto;padding:32px 16px 60px}
.legal-page h1{margin:0 0 8px;font-size:clamp(26px,4vw,36px)}
.legal-page h2{margin:28px 0 10px;font-size:18px}
.legal-page p,.legal-page li{color:var(--text2);line-height:1.75}
.legal-page ul{padding-inline-start:1.2em}
.legal-meta{color:var(--muted);font-size:13px;margin-bottom:22px}
.foot-contact a{color:#fff}
.foot-contact li{margin-bottom:6px}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal.in{opacity:1;transform:none;transition:none}
  .hero-particles,.ny-festoon,.ny-sec::before,.skel,.hero-slim .slide,.btn.primary::after{animation:none!important}
  .pbox:hover{transform:none}
}

/* hover fine only */
