:root {
  --motion-fast: 180ms;
  --motion-normal: 300ms;
  --motion-enter: 600ms;
  --ease-interface: cubic-bezier(.2, .8, .2, 1);
}
a:focus-visible, button:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid currentColor !important;
  outline-offset: 4px;
}
.portfolio-skip {
  position: fixed; top: 12px; left: 12px; z-index: 20000;
  padding: 12px 18px; border-radius: 8px; background: #ede0c8; color: #0d0805;
  transform: translateY(-180%); font: 700 14px/1.4 Inter, sans-serif;
}
.portfolio-skip:focus { transform: none; }
.footer-tagline, .footer-location, .footer-copy { color: #b9ac99; }
.nav-link, .stat-label, .hero-desc { color: #b9ac99; }
#hero p.anim-fadeup, footer .text-xs.tracking-widest { color: #b9ac99 !important; }
/* Category anchors need real grid heights even before their images enter view.
   Lazy images and offscreen animation suspension still avoid unnecessary work. */
.identity-project-grid, .editorial-project-grid, .packaging-project-grid,
.photography-project-grid, .uxui-project-grid { content-visibility: visible; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  [data-reveal], .anim-up, .anim-fadeup { opacity: 1 !important; transform: none !important; }
}
