        body {
            font-family: 'Noto Sans SC', sans-serif;
            background-color: #fafafa;
            color: #333333;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }
        h1, h2, h3, h4, h5, h6, .font-serif {
            font-family: 'Noto Serif SC', serif;
        }
        
        ::-webkit-scrollbar { width: 6px; }
        ::-webkit-scrollbar-track { background: #f4f6f8; }
        ::-webkit-scrollbar-thumb { background: #8ba0b5; border-radius: 3px; }
        ::-webkit-scrollbar-thumb:hover { background: #3c5a78; }

        .fade-in-up {
            opacity: 0; transform: translateY(40px);
            transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .fade-in-up.visible { opacity: 1; transform: translateY(0); }
        .delay-100 { transition-delay: 100ms; }
        .delay-200 { transition-delay: 200ms; }
        .delay-300 { transition-delay: 300ms; }

        .glass-nav {
            background: rgba(255, 255, 255, 0.9);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border-bottom: 1px solid rgba(0, 0, 0, 0.05);
        }
    
        .modal-overlay {
            position: fixed;
            top: 0; left: 0; right: 0; bottom: 0;
            background-color: rgba(15, 28, 46, 0.6);
            backdrop-filter: blur(4px);
            display: flex; align-items: center; justify-content: center;
            z-index: 100; opacity: 0; visibility: hidden; transition: all 0.3s ease;
        }
        .modal-overlay.active { opacity: 1; visibility: visible; }
        .modal-content {
            background: white; border-radius: 1rem; padding: 2rem; width: 90%; max-width: 500px;
            box-shadow: 0 20px 40px -10px rgba(15, 28, 46, 0.2);
            transform: scale(0.95); transition: all 0.3s ease;
        }
        .modal-overlay.active .modal-content { transform: scale(1); }

    /* Prevent touch action scaling */
    html, body {
      touch-action: pan-x pan-y;
      -webkit-text-size-adjust: 100%;
    }