/* Shared page-entry and hover motion. Kept transform-only where possible for smooth interaction. */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }

  #main > * {
    animation: trun-page-enter 440ms cubic-bezier(.2, .75, .25, 1) both;
  }

  #main > :is(.welcome-home, .content-page, .drive-workspace-page, .classrooms-page, .teacher-community-page, .platform-admin-page) > :is(section, article, div) {
    animation: trun-content-rise 520ms cubic-bezier(.2, .75, .25, 1) both;
  }

  #main > :is(.welcome-home, .content-page, .drive-workspace-page, .classrooms-page, .teacher-community-page, .platform-admin-page) > :is(section, article, div):nth-child(2) { animation-delay: 45ms; }
  #main > :is(.welcome-home, .content-page, .drive-workspace-page, .classrooms-page, .teacher-community-page, .platform-admin-page) > :is(section, article, div):nth-child(3) { animation-delay: 90ms; }
  #main > :is(.welcome-home, .content-page, .drive-workspace-page, .classrooms-page, .teacher-community-page, .platform-admin-page) > :is(section, article, div):nth-child(4) { animation-delay: 135ms; }

  :is(.board-card, .resource-card, .welcome-notice-panel, .welcome-notice, .place-card, .post, .form-card, .classroom-card, .teacher-community-card, .platform-panel, .drive-item) {
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, background-color 180ms ease;
  }

  :is(.board-card, .resource-card, .welcome-notice-panel, .place-card, .post, .form-card, .classroom-card, .teacher-community-card, .platform-panel, .drive-item):hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(52, 42, 33, .10);
  }

  .welcome-notice:hover { transform: translateX(4px); }
  .app-launcher:not([hidden]) { animation: trun-pop-in 210ms cubic-bezier(.2, .9, .3, 1) both; }
  .app-launcher a { transition: transform 160ms ease, background-color 160ms ease, box-shadow 160ms ease; }
  .app-launcher a:hover { transform: translateY(-3px) scale(1.015); box-shadow: 0 9px 18px rgba(47, 45, 42, .08); }
  dialog[open] { animation: trun-dialog-enter 220ms cubic-bezier(.2, .9, .3, 1) both; }
  :is(.btn, .icon-btn, .public-login, .avatar, .drive-create-button) { transition: transform 150ms ease, box-shadow 150ms ease, background-color 150ms ease, border-color 150ms ease; }
  :is(.btn, .icon-btn, .public-login, .avatar, .drive-create-button):not(:disabled):active { transform: translateY(1px) scale(.97); }
  :is(.btn-primary, .drive-create-button):not(:disabled):hover { box-shadow: 0 9px 18px rgba(207, 89, 33, .20); }
}

@keyframes trun-page-enter {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes trun-content-rise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes trun-pop-in {
  from { opacity: 0; transform: translateY(-8px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes trun-dialog-enter {
  from { opacity: 0; transform: translateY(10px) scale(.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  #main > *, .app-launcher:not([hidden]), dialog[open] { animation: none; }
}
