:root { --motion-ease: cubic-bezier(.16, 1, .3, 1); }
.quick-icon, .category-icon, .game-cover, .screen-img, .nav-item svg, .bottom-nav svg {
  transition: transform 280ms var(--motion-ease);
}
.dots button { transition: width 300ms var(--motion-ease), background-color 200ms ease; }
.quick-item, .category-item, .notice-card, .new-item, .game-list-card, .download-card {
  transition: translate 240ms var(--motion-ease), background-color 200ms ease, box-shadow 240ms ease;
}
@media (hover: hover) and (pointer: fine) {
  .quick-item:hover .quick-icon, .category-item:hover .category-icon { transform: translateY(-4px) rotate(-5deg); }
  .game-card:hover .game-cover, .new-item:hover .game-cover, .game-list-card:hover .game-cover { transform: scale(1.035); }
  .screen-img:hover { transform: scale(1.025); }
  .notice-card:hover, .download-card:hover { translate: 0 -3px; }
  .new-item:hover, .game-list-card:hover { background-color: rgba(var(--theme-rgb, 124, 77, 255), .035); }
  .nav-item:hover svg, .bottom-nav a:hover svg { transform: translateY(-3px); }
  #admin-app button:hover:not(:disabled) { filter: brightness(1.04); }
}
.modal-backdrop { animation: veil-in 220ms ease-out; }
.modal-backdrop .modal { animation: sheet-in 340ms var(--motion-ease); }
.modal-backdrop.is-closing { animation: veil-out 180ms ease-in forwards; pointer-events: none; }
.modal-backdrop.is-closing .modal { animation: sheet-out 180ms ease-in forwards; }
.fold-title span:first-child { transition: transform 260ms var(--motion-ease); }
.fold-card.open .fold-title span:first-child { transform: rotate(180deg); }
.fold-reveal { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 300ms var(--motion-ease); }
.fold-card.open .fold-reveal { grid-template-rows: 1fr; }
.fold-reveal > .fold-clip { min-height: 0; overflow: hidden; visibility: hidden; transition: visibility 300ms; }
.fold-card.open .fold-clip { visibility: visible; }
.fold-card .fold-body { display: block; }
.toast { animation: sheet-in 250ms var(--motion-ease); }
@keyframes veil-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes veil-out { to { opacity: 0; } }
@keyframes sheet-in { from { opacity: 0; transform: translateY(22px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes sheet-out { to { opacity: 0; transform: translateY(12px) scale(.98); } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .quick-item:hover .quick-icon, .category-item:hover .category-icon, .game-card:hover .game-cover,
  .new-item:hover .game-cover, .game-list-card:hover .game-cover, .screen-img:hover,
  .nav-item:hover svg, .bottom-nav a:hover svg { transform: none; }
  .notice-card:hover, .download-card:hover { translate: none; }
}
