
        /* Custom scrollbar */
        ::-webkit-scrollbar {
            width: 8px;
        }

        ::-webkit-scrollbar-track {
            background: transparent;
        }

        ::-webkit-scrollbar-thumb {
            background: #1e5f8f;
            border-radius: 4px;
        }

        ::-webkit-scrollbar-thumb:hover {
            background: #174b73;
        }

        .rotate-180 {
            transform: rotate(180deg);
        }

        /* Animations */
        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes float {

            0%,
            100% {
                transform: translateY(0);
            }

            50% {
                transform: translateY(-10px);
            }
        }

        @keyframes pulse-glow {

            0%,
            100% {
                box-shadow: 0 0 20px rgba(249, 115, 22, 0.3);
            }

            50% {
                box-shadow: 0 0 40px rgba(249, 115, 22, 0.6);
            }
        }

        @keyframes gradient-shift {
            0% {
                background-position: 0% 50%;
            }

            50% {
                background-position: 100% 50%;
            }

            100% {
                background-position: 0% 50%;
            }
        }

        @keyframes typing {
            from {
                width: 0;
            }

            to {
                width: 100%;
            }
        }

        @keyframes blink {
            50% {
                border-color: transparent;
            }
        }

        .animate-fade-in-up {
            animation: fadeInUp 0.6s ease-out forwards;
            opacity: 0;
        }

        .animate-float {
            animation: float 3s ease-in-out infinite;
        }

        .animate-pulse-glow {
            animation: pulse-glow 2s ease-in-out infinite;
        }

        .gradient-animate {
            background-size: 200% 200%;
            animation: gradient-shift 5s ease infinite;
        }

        .stagger-1 {
            animation-delay: 0.1s;
        }

        .stagger-2 {
            animation-delay: 0.2s;
        }

        .stagger-3 {
            animation-delay: 0.3s;
        }

        .stagger-4 {
            animation-delay: 0.4s;
        }

        .stagger-5 {
            animation-delay: 0.5s;
        }

        /* Typing effect */
        .typing-text {
            overflow: hidden;
            white-space: nowrap;
            border-right: 3px solid #f97316;
            animation: typing 3s steps(30) forwards, blink 0.75s step-end infinite;
        }

        /* Interactive cards */
        .feature-card {
            transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        }

        .feature-card:hover {
            transform: translateY(-8px) scale(1.02);
        }

        /* Glass morphism */
        .glass {
            background: rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.2);
        }

        .dark .glass {
            background: rgba(15, 23, 42, 0.7);
            border: 1px solid rgba(255, 255, 255, 0.1);
        }

        /* Accordion */
        .accordion-content {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .accordion-content.open {
            max-height: 1000px;
        }

        /* Timeline */
        .timeline-item::before {
            content: '';
            position: absolute;
            left: -30px;
            top: 0;
            width: 16px;
            height: 16px;
            background: linear-gradient(135deg, #f97316, #fb923c);
            border-radius: 50%;
            box-shadow: 0 0 0 4px rgba(249, 115, 22, 0.2);
        }

        .timeline-item::after {
            content: '';
            position: absolute;
            left: -23px;
            top: 20px;
            width: 2px;
            height: calc(100% + 20px);
            background: linear-gradient(to bottom, #f97316, transparent);
        }

        .timeline-item:last-child::after {
            display: none;
        }

        /* Progress bar animation */
        .progress-bar {
            transition: width 1s ease-out;
        }

        /* Modal */
        .modal-overlay {
            transition: opacity 0.3s ease;
        }

        .modal-content {
            transition: transform 0.3s ease, opacity 0.3s ease;
        }

        /* Tabs */
        .tab-indicator {
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }

        /* Gradient text */
        .gradient-text {
            background: linear-gradient(135deg, #1e5f8f, #f97316);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        /* Hero pattern */
        .hero-pattern {
            background-image:
                radial-gradient(circle at 20% 50%, rgba(30, 95, 143, 0.1) 0%, transparent 50%),
                radial-gradient(circle at 80% 20%, rgba(249, 115, 22, 0.1) 0%, transparent 50%),
                radial-gradient(circle at 40% 80%, rgba(30, 95, 143, 0.05) 0%, transparent 50%);
        }

        .dark .hero-pattern {
            background-image:
                radial-gradient(circle at 20% 50%, rgba(30, 95, 143, 0.2) 0%, transparent 50%),
                radial-gradient(circle at 80% 20%, rgba(249, 115, 22, 0.15) 0%, transparent 50%),
                radial-gradient(circle at 40% 80%, rgba(30, 95, 143, 0.1) 0%, transparent 50%);
        }

        /* Counter animation */
        .counter {
            font-feature-settings: 'tnum';
        }

        /* Chat bubble */
        .chat-bubble {
            position: relative;
        }

        .chat-bubble::after {
            content: '';
            position: absolute;
            bottom: -8px;
            left: 20px;
            width: 0;
            height: 0;
            border-left: 10px solid transparent;
            border-right: 10px solid transparent;
            border-top: 10px solid currentColor;
        }

        /* Smooth scroll */
        html {
            scroll-behavior: smooth;
        }

        /* Focus styles */
        button:focus-visible,
        a:focus-visible {
            outline: 2px solid #f97316;
            outline-offset: 2px;
        }

        @keyframes marquee {
            from {
                transform: translateX(0);
            }

            to {
                transform: translateX(-50%);
            }
        }

        .animate-marquee {
            animation: marquee 35s linear infinite;
            will-change: transform;
        }

        .animate-marquee:hover {
            animation-play-state: paused;
        }

        .map-wrapper {
            position: relative;
            overflow: hidden;
            border-radius: 1rem;
        }

        .map-wrapper iframe {
            display: block;
        }

        /* 手機版調整地圖高度 */
        @media (max-width: 1023px) {
            .map-wrapper {
                height: 360px;
            }
        }
.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.accordion-content.open {
  max-height: 4000px; /* 足夠大以容納完整時間軸 */
}

.rotate-180 {
  transform: rotate(180deg);
}

.modal {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s ease;
}

.modal-content {
  transform: translateY(-5rem) scale(0.95);
  opacity: 0;
  transition: all 0.7s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.group:hover .fa-cog {
  animation: spin 1.2s linear infinite;
}
@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

