@layer invariants {
  :where(.main, #page-root, [data-page]),
  :where(.main, #page-root, [data-page]) > * {
    min-inline-size: 0;
  }

  :where(img, video, audio, canvas, iframe, svg) {
    max-inline-size: 100%;
  }

  :where(
    .app-shell, #modal-root, #toast-root, .auth-page, .marketing-page
  ) :where(
    button, .button, .icon-button, [role="button"], [role="tab"],
    .tab, .nav-item, .cocreate-hub-nav > a, summary,
    input:not([type="checkbox"]):not([type="radio"]), textarea, select
  ) {
    touch-action: manipulation;
  }

  [data-copy-priority="critical"],
  .project-heading .page-title > p,
  .project-page .section-title p {
    display: block;
    overflow: visible;
    -webkit-box-orient: initial;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    white-space: normal;
  }

  @media (max-width: 900px), (pointer: coarse) {
    :where(
      .app-shell, #modal-root, #toast-root, .auth-page, .marketing-page
    ) :where(
      button, .button, .icon-button, [role="button"], [role="tab"],
      .tab, .nav-item, .cocreate-hub-nav > a, summary,
      input:not([type="checkbox"]):not([type="radio"]), textarea, select
    ) {
      min-block-size: var(--touch-target);
    }

    :where(.icon-button, [data-icon-only="true"]) {
      min-inline-size: var(--touch-target);
    }

    .mobile-bottom-nav .nav-item {
      min-block-size: 52px;
    }

    .choice-control,
    .choice-chip,
    .governance-check,
    .cocreate-term-consent,
    .project-ai-task-toggle {
      min-block-size: var(--touch-target);
    }

    .project-heading .page-actions > .button,
    .project-actions-menu > summary,
    .project-more-tabs select,
    .project-page .section-title .button,
    .project-page .editor-toolbar .button {
      min-block-size: var(--touch-target);
    }
  }
}
