@media (prefers-reduced-motion: no-preference) {
  main, section, .card, button, .btn { animation: portfolio-enter .42s cubic-bezier(.16,1,.3,1) both; }
  button, .btn { transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
  button:hover, .btn:hover { transform: translateY(-2px); filter: saturate(1.08); }
  button:active, .btn:active { transform: scale(.97); }
}
@keyframes portfolio-enter { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

body { overflow-x:hidden; }
.hero { position:relative; isolation:isolate; }
.hero::before { content:""; position:absolute; z-index:-1; width:18rem; height:18rem; right:-5rem; top:1rem; border-radius:50%; background:radial-gradient(circle, rgba(39,160,102,.18), transparent 68%); animation: band-glow 8s ease-in-out infinite alternate; }
.hero-badge { box-shadow:0 8px 24px rgba(26,95,63,.08); }
.hero-stats .stat { transition:transform .2s ease, background .2s ease; }
.hero-stats .stat:hover { transform:translateY(-3px); }
.search-card, .price-card, .trust-item { box-shadow:var(--shadow-sm); }
.search-card { position:relative; overflow:hidden; }
.search-card::after { content:""; position:absolute; inset:auto -3rem -4rem auto; width:10rem; height:10rem; border-radius:50%; background:rgba(39,160,102,.08); }
.steps .step { transition:transform .2s ease; }
.steps .step:hover { transform:translateY(-4px); }
@keyframes band-glow { from { transform:translate3d(0,0,0) scale(.9); opacity:.55; } to { transform:translate3d(-12px,12px,0) scale(1.1); opacity:1; } }
@media (prefers-reduced-motion: reduce) { .hero::before { animation:none; } }
