body {
            font-family: 'Noto Sans TC', sans-serif;
            color: #e2e8f0;
            overflow-x: hidden; /* 防止水平捲動 */
        }

        /* 動態漸層背景 */
        body::before {
            content: '';
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(315deg, #2c003e, #ff1493, #00ced1, #b8860b);
            background-size: 400% 400%;
            animation: gradientFlow 20s ease infinite;
            z-index: -1;
        }

        @keyframes gradientFlow {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        /* 主要容器 - 琉璃效果 */
        .main-container {
            background: rgba(15, 23, 42, 0.8);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(255, 105, 180, 0.3);
        }

        /* 選擇卡片 */
        .card {
            background-color: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 105, 180, 0.2);
            transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            position: relative; /* 為了定位指示器 */
        }
        .card .selection-indicator {
            display: none;
            position: absolute;
            top: 8px;
            left: 8px;
            background-color: rgba(255, 105, 180, 0.8);
            color: white;
            padding: 4px 10px;
            border-radius: 999px;
            font-size: 12px;
            font-weight: bold;
            border: 1px solid rgba(255, 255, 255, 0.6);
            box-shadow: 0 0 10px rgba(255, 105, 180, 0.8);
            z-index: 10;
            pointer-events: none;
            animation: fadeInIndicator 0.5s ease-out;
        }

        @keyframes fadeInIndicator {
            from { opacity: 0; transform: scale(0.8); }
            to { opacity: 1; transform: scale(1); }
        }

        .card.selected {
            border-color: #ff69b4; /* HotPink */
            transform: scale(1.07);
            box-shadow: 0 0 25px rgba(255, 105, 180, 0.6);
            animation: pulseGlow 2s infinite alternate;
        }

        /* 光暈動畫 */
        @keyframes pulseGlow {
            from {
                box-shadow: 0 0 15px rgba(255, 105, 180, 0.4);
            }
            to {
                box-shadow: 0 0 30px rgba(255, 105, 180, 0.8), 0 0 10px rgba(255, 105, 180, 0.6) inset;
            }
        }

        /* 按鈕 */
        .btn-primary {
            background: linear-gradient(45deg, #ff69b4, #c71585); /* HotPink to MediumVioletRed */
            transition: all 0.3s ease-out;
        }
        .btn-primary:hover {
            transform: translateY(-3px) scale(1.05);
            box-shadow: 0 7px 25px rgba(255, 105, 180, 0.5);
        }
        .btn-secondary {
            background-color: rgba(255, 255, 255, 0.1);
            border: 1px solid #ff69b4;
            transition: all 0.3s ease-out;
        }
         .btn-secondary:hover {
            background-color: rgba(255, 105, 180, 0.2);
            box-shadow: 0 0 15px rgba(255, 105, 180, 0.3);
        }

        /* 結果卡片 */
        .result-card {
            background: linear-gradient(160deg, rgba(40, 50, 70, 0.85), rgba(20, 30, 50, 0.9));
            border: 1px solid #ff69b4;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.6);
            backdrop-filter: blur(8px);
             -webkit-backdrop-filter: blur(8px);
        }

        /* 畫面切換動畫 */
        .fade-in {
            animation: fadeIn 0.8s ease-in-out;
        }
        .fade-out {
            animation: fadeOut 0.8s ease-in-out forwards;
        }
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(20px) scale(0.98); }
            to { opacity: 1; transform: translateY(0) scale(1); }
        }
        @keyframes fadeOut {
            from { opacity: 1; transform: translateY(0) scale(1); }
            to { opacity: 0; transform: translateY(-20px) scale(0.98); display: none; }
        }

        /* 美化捲軸 */
        ::-webkit-scrollbar {
            width: 8px;
        }
        ::-webkit-scrollbar-track {
            background: #2d3748;
        }
        ::-webkit-scrollbar-thumb {
            background: #ff69b4;
            border-radius: 10px;
        }
        ::-webkit-scrollbar-thumb:hover {
            background: #c71585;
        }

        /* Tooltip 樣式 */
        .tooltip {
            position: relative;
            cursor: help;
        }

        .tooltip .tooltiptext {
            visibility: hidden;
            width: 280px;
            background-color: rgba(15, 23, 42, 0.95);
            color: #e2e8f0;
            text-align: left;
            border-radius: 8px;
            padding: 12px;
            border: 1px solid rgba(255, 105, 180, 0.3);
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            
            /* 定位 */
            position: absolute;
            z-index: 1000;
            top: 125%; /* 向下顯示 */
            left: 50%;
            transform: translateX(-50%);
            
            /* 箭頭 */
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        .tooltip .tooltiptext::after {
            content: "";
            position: absolute;
            bottom: 100%; /* 箭頭在上方 */
            left: 50%;
            margin-left: -5px;
            border-width: 5px;
            border-style: solid;
            border-color: transparent transparent rgba(255, 105, 180, 0.3) transparent;
        }

        /* 用於濃度顯示的標籤 */
        .dimension-tag {
            transition: background-color 0.8s ease-out, box-shadow 0.8s ease-out;
        }

        /* 手機版屬性標籤換行控制 */
        @media (max-width: 768px) {
            .dimension-tag {
                word-break: keep-all;
                white-space: pre-wrap;
                line-height: 1.4;
                min-height: 2.8em;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                text-align: center;
            }
            
            /* 手機版屬性標籤容器 - 保持單行排列 */
            .dimension-tags-container {
                display: flex !important;
                flex-wrap: wrap !important;
                justify-content: center !important;
                gap: 0.5rem !important;
                margin: 0 auto 1.5rem auto !important;
            }
        }

        .tooltip:hover .tooltiptext,
        .tooltip:focus .tooltiptext {
            visibility: visible;
            opacity: 1;
        }

        /* 手機觸控支援 */
        @media (hover: none) {
            .tooltip .tooltiptext {
                /* 移除 display: none，改為使用 visibility 和 opacity */
                visibility: hidden;
                opacity: 0;
                /* 確保 tooltip 在手機上可以正常顯示 */
                display: block;
            }
            .tooltip.tooltip-active .tooltiptext {
                visibility: visible !important;
                opacity: 1 !important;
                display: block !important;
            }
            /* 確保手機版有適當的觸控反饋 */
            .tooltip {
                cursor: pointer;
                -webkit-tap-highlight-color: rgba(255, 105, 180, 0.3);
                /* 添加觸控反饋 */
                transition: transform 0.1s ease;
            }
            .tooltip:active {
                transform: scale(0.95);
            }
            /* 改善手機版 tooltip 的定位 */
            .tooltip .tooltiptext {
                width: 260px; /* 稍微縮小寬度 */
                max-width: 90vw; /* 確保不會超出螢幕 */
                left: 50%;
                transform: translateX(-50%);
                /* 確保在手機上有足夠的間距 */
                margin-top: 8px;
            }
        } 

/* 跑馬燈效果 */
.marquee-container {
    position: relative;
    white-space: nowrap;
}

.marquee-content {
    display: inline-block;
    animation: marquee linear infinite; /* 移除固定時間，由JavaScript控制 */
    white-space: nowrap;
    transform: translateX(calc(100vw - 100px)); /* 讓第一則公告顯示在框框右邊 */
    
}

.marquee-content span {
    display: inline-block;
    padding-right: 50px; /* 確保文字間有足夠間距 */
}

@keyframes marquee {
    0% {
        transform: translateX(0%); /* 從容器左邊開始，讓第一則公告顯示在右邊 */
    }
    100% {
        transform: translateX(-100%); /* 移動到完全離開視窗 */
    }
}

/* 暫停動畫（當用戶懸停時） */
.marquee-container:hover .marquee-content {
    animation-play-state: paused;
}

/* 手機版適配 */
@media (max-width: 768px) {
    .marquee-content {
        /* 動畫時間由JavaScript動態控制 */
    }
    
    .marquee-content span {
        font-size: 0.9rem; /* 手機版字體稍小 */
    }
}

/* 公告項目間距 */
.announcement-item {
    display: inline-block;
    margin-right: 150px; /* 公告項目之間的間距 */
}

/* 公告連結樣式 */
.announcement-link {
    color: #fbbf24; /* amber-400 */
    text-decoration: underline;
    font-weight: 600;
    transition: color 0.2s ease-in-out;
}

.announcement-link:hover {
    color: #f59e0b; /* amber-500 */
    text-decoration: none;
}

.announcement-link:active {
    color: #d97706; /* amber-600 */
}

/* 手機版連結樣式調整 */
@media (max-width: 768px) {
    .announcement-link {
        font-size: 0.85rem;
        padding: 2px 4px;
        border-radius: 4px;
        background-color: rgba(251, 191, 36, 0.1);
    }
} 