    *, ::after, ::before {
  box-sizing: border-box;
  border-width: 0;
  border-style: solid;
  border-color: #e5e7eb;
        border:0;
        border:none;
    }   

    body { 
            font-family: 'Inter', 'Noto Sans TC', sans-serif; 
            background-color: #f8f9fa; 
            overflow-x: hidden;
            border:0;
           
        }
        .material-symbols-outlined { 
            font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24; 
        }
        
        .reveal { opacity: 0; transform: translateY(40px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
        .reveal-left { opacity: 0; transform: translateX(-40px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
        .reveal-right { opacity: 0; transform: translateX(40px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
        .reveal.active, .reveal-left.active, .reveal-right.active { opacity: 1; transform: translate(0, 0); }
        .delay-100 { transition-delay: 100ms; }
        .delay-200 { transition-delay: 200ms; }
        .delay-300 { transition-delay: 300ms; }

        .tech-earth-wrapper {
            width: 140vw; height: 140vw; max-width: 1400px; max-height: 1400px;
            border-radius: 50%;
            background: radial-gradient(circle at 30% 30%, rgba(0, 106, 59, 0.2), rgba(0, 30, 64, 0.98) 75%);
            box-shadow: inset -80px -80px 150px rgba(0, 0, 0, 0.9), inset 30px 30px 80px rgba(255, 255, 255, 0.15), 0 0 150px rgba(0, 106, 59, 0.6);
            position: relative; overflow: hidden;
            transform: translateZ(0); will-change: transform;
        }
        
        .tech-earth-grid {
            position: absolute; width: 200%; height: 200%; top: -50%; left: -50%;
            background: repeating-linear-gradient(0deg, transparent, transparent 40px, rgba(0, 106, 59, 0.3) 40px, rgba(0, 106, 59, 0.3) 41px), repeating-linear-gradient(90deg, transparent, transparent 40px, rgba(0, 106, 59, 0.3) 40px, rgba(0, 106, 59, 0.3) 41px);
            background-size: 200px 200px;
            animation: globeSpin 90s linear infinite; will-change: transform;
        }

        @keyframes globeSpin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

        /* 熱點上下浮動動畫 */
        @keyframes floatY {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-8px); }
        }
        .animate-float-y { animation: floatY 3s ease-in-out infinite; }
        .float-delay-1 { animation-delay: 0s; }
        .float-delay-2 { animation-delay: 0.7s; }
        .float-delay-3 { animation-delay: 1.5s; }

        /* --- 動態導航欄樣式 (預設白色，滾動深色) --- */
        .nav-link { position: relative; }
        .nav-link::after {
            content: ''; position: absolute; bottom: -6px; left: 0; width: 0; height: 2px;
            transition: width 0.3s ease, background-color 0.3s ease;
        }
        .nav-link:hover::after, .nav-link.active::after { width: 100%; }

        /* 1. 預設狀態 (在頂部，透明背景，白色字體) */
        #navbar .nav-text, #navbar .nav-text-active { color: rgba(255, 255, 255, 0.9); }
        #navbar .nav-text:hover, #navbar .nav-text-active { color: #ffffff; }
        #navbar .nav-link::after { background-color: #ffffff; }

        #navbar .nav-btn { background-color: rgba(255, 255, 255, 0.15); color: #ffffff; backdrop-filter: blur(4px); }
        #navbar .nav-btn:hover { background-color: rgba(255, 255, 255, 0.25); }

        #navbar .nav-lang-bg { background-color: rgba(255, 255, 255, 0.15); backdrop-filter: blur(4px); }
        #navbar .nav-lang-main { color: #ffffff; }
        #navbar .nav-lang-sep { color: rgba(255, 255, 255, 0.6); }
        #navbar .nav-lang-sub { color: rgba(255, 255, 255, 0.8); }
        #navbar .nav-lang-sub:hover { color: #ffffff; }

        #navbar .nav-mobile-btn { background-color: rgba(255, 255, 255, 0.15); color: #ffffff; backdrop-filter: blur(4px); }
        #navbar .nav-mobile-btn:hover { background-color: rgba(255, 255, 255, 0.25); }

        /* 2. 滾動狀態 (加入 .scrolled 類，白底背景，深色字體) */
        #navbar.scrolled .nav-text { color: #334155; } /* slate-700 */
        #navbar.scrolled .nav-text:hover { color: #001e40; } /* primary */
        #navbar.scrolled .nav-text-active { color: #006A3B; } /* secondary-container */
        #navbar.scrolled .nav-link::after { background-color: #006A3B; }

        #navbar.scrolled .nav-btn { background-color: #f1f5f9; color: #475569; backdrop-filter: none; } /* slate-100, slate-600 */
        #navbar.scrolled .nav-btn:hover { background-color: #e2e8f0; color: #001e40; }

        #navbar.scrolled .nav-lang-bg { background-color: #f1f5f9; backdrop-filter: none; }
        #navbar.scrolled .nav-lang-main { color: #001e40; }
        #navbar.scrolled .nav-lang-sep { color: #cbd5e1; }
        #navbar.scrolled .nav-lang-sub { color: #475569; }
        #navbar.scrolled .nav-lang-sub:hover { color: #006A3B; }

        #navbar.scrolled .nav-mobile-btn { background-color: #f8fafc; color: #001e40; backdrop-filter: none; }
        #navbar.scrolled .nav-mobile-btn:hover { background-color: #e2e8f0; }
        
        .line-clamp-1 { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
        .line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
        .line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }


         
       .case-card { position: relative; overflow: hidden; }
        .case-card::after {
            content: ''; position: absolute; inset: 0;
            background: linear-gradient(to top, rgba(0,30,64,0.9) 0%, rgba(0,30,64,0.3) 50%, transparent 100%);
            opacity: 0; transition: opacity 0.3s ease;
        }
        .case-card:hover::after { opacity: 1; }
        .case-card .case-info {
            position: absolute; bottom: 0; left: 0; right: 0;
            padding: 1.5rem; z-index: 10;
            transform: translateY(20px); opacity: 0;
            transition: all 0.3s ease;
        }
        .case-card:hover .case-info {
            transform: translateY(0); opacity: 1;
        }

        .contact-card { transition: all 0.3s ease; }
        .contact-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(0,0,0,0.1); }

        .case-content img {
            
            max-width:  100%;
            margin: 5px auto;
        }
        .case-infomation {
            line-height: 2;
        }

        .mypage {
           
        }
        .mypage ul {
           display: flex;
           justify-content: center;
           align-items: center;
        }
        .mypage a,
        .mypage span {
            width: 35px;
            text-align: center;
            height: 35px;
            line-height: 35px;
            margin: 0 3px;
            display: block;
            border-radius: 5px;
            cursor: pointer;    
            transition: all 0.3s ease;
            background-color: #ffffff;
            color: #475569;
            backdrop-filter: blur(4px);
        }
        .mypage a:hover,
        .mypage span:hover {
            background-color: #006A3B;
            color: #ffffff;
        }
        .mypage li.active span,
        .mypage li.active a{
            background-color: #006A3B;
            color: #ffffff;
        }
