body {
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    scroll-behavior: smooth;
}

/* Routing & Transitions */
.page-section {
    display: none;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}
.page-section.active {
    display: block;
    opacity: 1;
    animation: fadeIn 0.5s ease-out forwards;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Animations */
@keyframes spin-slow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes spin-reverse {
  from { transform: rotate(360deg); }
  to { transform: rotate(0deg); }
}
.animate-spin-slow { animation: spin-slow 20s linear infinite; }
.animate-spin-reverse { animation: spin-reverse 15s linear infinite; }
.animate-spin-slower { animation: spin-slow 25s linear infinite; }

.mobile-menu-enter {
    animation: slideDown 0.2s ease-out forwards;
}
@keyframes slideDown {
    from { opacity: 0; transform: translateY(-10px); }
    to { opacity: 1; transform: translateY(0); }
}
