@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; } }
.wrap { position:relative; }
.wrap::before { content:""; position:fixed; z-index:-1; width:16rem; height:16rem; right:-7rem; top:6rem; border-radius:50%; background:radial-gradient(circle, rgba(138,168,153,.18), transparent 70%); pointer-events:none; }
.step-ind { transition:color .2s ease, transform .2s ease; }
.step-ind.active { transform:translateY(-2px); }
.upload-zone, .premium, .card { box-shadow:var(--shadow); transition:transform .2s ease, box-shadow .2s ease; }
.upload-zone:hover, .premium:hover, .card:hover { transform:translateY(-3px); box-shadow:0 14px 38px rgba(35,40,42,.12); }
@media (prefers-reduced-motion: reduce) { .step-ind.active { transform:none; } }
