:root {
  --cot-motion-fast: 140ms;
  --cot-motion-standard: 220ms;
  --cot-motion-slow: 360ms;
  --cot-motion-ease: cubic-bezier(.2, .75, .25, 1);
  --cot-motion-ease-emphasized: cubic-bezier(.16, 1, .3, 1);
}

html {
  scroll-behavior: smooth;
}

body,
#app,
#root {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

:where(
  button,
  .btn,
  [role="button"],
  summary,
  a.portal-menu__item,
  a.portal-global-nav__item,
  .project-card__menu-toggle,
  .cot-project-bottom-tab
) {
  transition:
    color var(--cot-motion-fast) var(--cot-motion-ease),
    background-color var(--cot-motion-fast) var(--cot-motion-ease),
    border-color var(--cot-motion-fast) var(--cot-motion-ease),
    box-shadow var(--cot-motion-standard) var(--cot-motion-ease),
    opacity var(--cot-motion-fast) var(--cot-motion-ease),
    transform var(--cot-motion-fast) var(--cot-motion-ease);
  -webkit-tap-highlight-color: transparent;
}

:where(
  button,
  .btn,
  [role="button"],
  summary,
  a.portal-menu__item,
  a.portal-global-nav__item,
  .project-card__menu-toggle,
  .cot-project-bottom-tab
):active:not(:disabled):not([aria-disabled="true"]) {
  transform: translateY(1px) scale(.985);
}

:where(input, textarea, select) {
  transition:
    color var(--cot-motion-fast) var(--cot-motion-ease),
    background-color var(--cot-motion-fast) var(--cot-motion-ease),
    border-color var(--cot-motion-fast) var(--cot-motion-ease),
    box-shadow var(--cot-motion-standard) var(--cot-motion-ease),
    opacity var(--cot-motion-fast) var(--cot-motion-ease);
}

:where(
  .card,
  .project-card,
  .portal-card,
  .field-card,
  .cot-assistant-message,
  .cot-assistant-artifact,
  .cot-wf-task-card,
  .forms-service-card,
  .cot-hq-card
) {
  transition:
    border-color var(--cot-motion-standard) var(--cot-motion-ease),
    box-shadow var(--cot-motion-standard) var(--cot-motion-ease),
    opacity var(--cot-motion-standard) var(--cot-motion-ease),
    transform var(--cot-motion-standard) var(--cot-motion-ease);
}

:where(
  .portal-menu__panel,
  .project-card-menu__panel,
  .menu-dropdown-panel,
  .mobile-menu,
  .mobile-nav,
  [data-website-menu-panel],
  .cot-assistant-communication-menu,
  .cot-project-bottom-dock.is-open,
  .dropdown-menu,
  [role="menu"]
):not([hidden]) {
  transform-origin: top right;
  animation: cot-motion-menu-enter var(--cot-motion-standard) var(--cot-motion-ease-emphasized) both;
}

:where(
  .modal__dialog,
  .cot-modal__dialog,
  .document-level-modal__dialog,
  .cot-photo-viewer__dialog,
  .cot-bottom-sheet,
  .cot-assistant-recording
):not([hidden]) {
  animation: cot-motion-surface-enter var(--cot-motion-standard) var(--cot-motion-ease-emphasized) both;
}

:where(
  .cot-project-chat__messages,
  .cot-project-chat__message-list,
  .modal__body,
  .portal-menu__panel,
  .project-card-menu__panel,
  .cot-report-builder__list,
  .cot-photo-viewer,
  [data-smooth-scroll]
) {
  scroll-behavior: smooth;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

:where(.menu-dropdown-panel, .mobile-menu, .mobile-nav, [data-website-menu-panel]) {
  transition:
    opacity var(--cot-motion-standard) var(--cot-motion-ease),
    transform var(--cot-motion-standard) var(--cot-motion-ease),
    visibility var(--cot-motion-standard) var(--cot-motion-ease);
}

:where(progress, .progress, .progress-bar, .cot-wf-progress__track, .cot-measurement-progress) > :where(i, span, div) {
  transition: width var(--cot-motion-slow) var(--cot-motion-ease-emphasized), transform var(--cot-motion-slow) var(--cot-motion-ease-emphasized);
}

@keyframes cot-motion-menu-enter {
  from { opacity: 0; transform: translateY(-6px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes cot-motion-surface-enter {
  from { opacity: 0; transform: translateY(10px) scale(.992); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (hover: hover) and (pointer: fine) {
  :where(button, .btn, [role="button"], summary):hover:not(:disabled):not([aria-disabled="true"]) {
    will-change: transform;
  }
}

@media (prefers-reduced-motion: reduce) {
  html,
  :where(.cot-project-chat__messages, .cot-project-chat__message-list, .modal__body, .portal-menu__panel, .project-card-menu__panel, .cot-report-builder__list, .cot-photo-viewer, [data-smooth-scroll]) {
    scroll-behavior: auto !important;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    transition-delay: 0ms !important;
  }
}
