/* Feedback and motion remain legible in every accessibility mode. */
:root { --motion-quick: 120ms; --motion-medium: 220ms; --motion-long: 360ms; --motion-ease: cubic-bezier(.2,.7,.25,1); }
html { scrollbar-gutter: stable; }
.site-header { transition: box-shadow var(--motion-medium) ease; }
.desktop-nav a::after { transition: transform 160ms ease; }
.button, .filter-button, .icon-button, .lightbox-close, .gallery-thumbnail, .project-card, .contact-action, .mobile-header-request {
  transition: background-color var(--motion-quick) ease, color var(--motion-quick) ease, border-color var(--motion-quick) ease, box-shadow var(--motion-medium) ease;
}
.arrow, .project-card-arrow { display: inline-block; transition: transform 160ms ease; }
.button:not(:disabled):hover .arrow, .contact-action:hover .arrow, .project-trigger:hover .project-card-arrow { transform: translate(2px,-2px); }
a[href^='#']:hover .arrow, .project-trigger:hover .project-card-arrow, button[type='submit']:hover .arrow { transform: translateX(2px); }
.text-link, .header-phone, .footer-navigation a, .footer-social, .footer-contact-phone, .footer-legal-links a { transition: color 120ms ease; }
.details-symbol { transition: transform 180ms ease; }
.form-field input, .form-field select, .form-field textarea { transition: border-color 120ms ease, background-color 120ms ease; }
.form-field input:hover, .form-field select:hover, .form-field textarea:hover { border-color: var(--muted); }
.form-field [aria-invalid='true']:hover { border-color: #874c35; }
.button, .icon-button, .filter-button, .project-trigger, .contact-action, .mobile-header-request, .menu-toggle, summary { touch-action: manipulation; }
.is-pressed, .button:active, .icon-button:active, .filter-button:active, .project-trigger:active, .mobile-header-request:active { transition-duration: 0ms !important; }
.button-outline.is-pressed, .icon-button.is-pressed, .filter-button.is-pressed, .contact-action.is-pressed, .mobile-header-request.is-pressed, summary.is-pressed { background-color: var(--soft); border-color: var(--ink); }
.button-dark.is-pressed { background-color: #261b15; }
.project-trigger.is-pressed { background-color: var(--soft); }
a.is-pressed:not(.button):not(.project-trigger):not(.contact-action):not(.mobile-header-request) { color: var(--hover); }
.menu-toggle.is-pressed { background: var(--soft); }
.motion-frame-previous { position: absolute; inset: 0; pointer-events: none; display: block; }
.lightbox-photo { touch-action: pan-y pinch-zoom; }
.gallery-drag-neighbour { pointer-events: none; }
.project-viewer::backdrop { background: rgb(33 23 17 / calc(.64 * var(--viewer-progress, 1))); animation: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .arrow, .project-card-arrow { transform: none !important; }
  .menu-icon i, .details-symbol { transition: none !important; }
  .button, .filter-button, .icon-button, .contact-action, .mobile-header-request, .project-card { transition: background-color 80ms linear, color 80ms linear, border-color 80ms linear; }
}
