/* portfolio-motion.css - shared micro-interactions, additive only */

::selection { background:rgba(140,140,140,.30); }
:focus-visible { outline-offset:3px; }

@media (prefers-reduced-motion: no-preference) {

  /* page enter (opacity only, so position:fixed headers stay fixed) */
  body { animation:pf-in 460ms cubic-bezier(.2,.7,.3,1) both; }
  @keyframes pf-in { from { opacity:0; } to { opacity:1; } }

  /* nav underline wipe */
  .topbar nav a { position:relative; }
  .topbar nav a::after {
    content:""; position:absolute; left:0; right:0; bottom:-5px; height:1px;
    background:currentColor; opacity:.55;
    transform:scaleX(0); transform-origin:right;
    transition:transform 340ms cubic-bezier(.2,.7,.3,1);
  }
  .topbar nav a:hover::after,
  .topbar nav a:focus-visible::after,
  .topbar nav a[aria-current="page"]::after { transform:scaleX(1); transform-origin:left; }

  /* brand mark */
  .logo svg, .brand-mark, .brand-logo { transition:transform 460ms cubic-bezier(.2,.7,.3,1); }
  .logo:hover svg { transform:scale(1.07) rotate(-2deg); }
  .back:hover .brand-mark, .back:hover .brand-logo { transform:scale(1.05); }

  /* theme toggle */
  .themetoggle { transition:color 200ms ease, transform 240ms cubic-bezier(.2,.7,.3,1); }
  .themetoggle:hover { transform:translateY(-1px); }
  .themetoggle:active { transform:scale(.9); }

  /* back link arrow */
  .back .nav-arrow { display:inline-block; transition:transform 320ms cubic-bezier(.2,.7,.3,1); }
  .back:hover .nav-arrow, .back:focus-visible .nav-arrow { transform:translateX(-4px); }

  /* case-study cards */
  .metric, .evidence-grid > * {
    transition:transform 400ms cubic-bezier(.2,.7,.3,1), border-color 400ms ease;
  }
  .metric:hover, .evidence-grid > *:hover { transform:translateY(-3px); }

  /* back to top */
  .back-to-top { transition:transform 320ms cubic-bezier(.2,.7,.3,1), opacity 320ms ease; }
  .back-to-top:hover { transform:translateY(-3px); }
}
