      :root {
            --primary-dark: #1e2b58;
            --primary-light: #334fb4;
            --accent-gold: #c5a572;
            --sub-red: #cf8a8a;
            --sub-green: #78b68a;
            --text-main: #1e293b;
            --text-sub: #64748b;
            --bg-gradient: linear-gradient(135deg, #f8faff 0%, #f0f4ff 100%);
            --glass-bg: rgba(255, 255, 255, 0.85);
            --glass-border: rgba(255, 255, 255, 0.9);
            --glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.07);
        }

        body {
            font-family: 'Pretendard', sans-serif;
            background: var(--bg-gradient);
            color: var(--text-main);
            overflow-x: hidden;
            min-height: 100vh;
        }

        /* 기존 배경 애니메이션 */
        .bg-shape { position: absolute; opacity: 0.1; z-index: -1; animation: float-bg 20s infinite linear; }
        .bg-shape2 { position: absolute; opacity: 0.3; z-index: -1; animation: float-bg 20s infinite linear; }
        @keyframes float-bg {
            0% { transform: translate(0, 0) rotate(0deg); }
            50% { transform: translate(20px, 40px) rotate(180deg); }
            100% { transform: translate(0, 0) rotate(360deg); }
        }

        @keyframes drawLine { to { stroke-dashoffset: 0; } }
        @keyframes pulse-ring-enhanced {
            0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(30, 43, 88, 0.3); opacity: 0.8; }
            70% { transform: scale(1.2); box-shadow: 0 0 0 20px rgba(30, 43, 88, 0); opacity: 0; }
            100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(30, 43, 88, 0); opacity: 0; }
        }
        @keyframes fade-in-up {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }

        .chart-container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 80px 20px;
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        /* 노드 공통 스타일 */
        .main-node {
            width: 160px; height: 160px;
            border-radius: 50%;
            background: white;
            display: flex; flex-direction: column; align-items: center; justify-content: center;
            box-shadow: 0 15px 40px rgba(30, 43, 88, 0.15);
            border: 4px solid white;
            position: relative;
            z-index: 5;
            transition: transform 0.3s ease;
        }
        .main-node:hover { transform: scale(1.05); }

        .cfo-node {
            width: 130px; height: 130px;
            border-radius: 50%;
            background: white;
            display: flex; flex-direction: column; align-items: center; justify-content: center;
            box-shadow: 0 10px 30px rgba(30, 43, 88, 0.1);
            border: 3px solid white;
            z-index: 5;
            transition: transform 0.3s ease;
        }
        .cfo-node:hover { transform: scale(1.05); }

        .node-icon { font-size: 40px; color: var(--primary-dark); margin-bottom: 8px; }
        .node-title { font-size: 24px; font-weight: 800; color: var(--primary-dark); }
        .node-subtitle { font-size: 14px; color: var(--text-sub); font-weight: 500; }

        /* CFO 위치 레이아웃 */
        .ceo-wrapper { margin-bottom: 40px; position: relative; z-index: 10; }
        
        /* 박스를 아래로 내리기 위해 margin-bottom 증가 */
        .staff-area { position: relative; width: 100%; height: 80px; margin-bottom: 120px; }
        
        .cfo-node-container {
            position: absolute;
            left: calc(50% + 140px);
            top: 50%;
            transform: translateY(-50%);
            z-index: 10;
        }

        /* 카드 디자인 및 호버 효과 */
        .card {
            background: var(--glass-bg);
            backdrop-filter: blur(10px);
            border: 1px solid var(--glass-border);
            border-radius: 24px;
            padding: 32px;
            box-shadow: var(--glass-shadow);
            transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
            animation: fade-in-up 0.8s ease-out forwards;
            opacity: 0;
            position: relative;
            overflow: hidden;
            z-index: 10;
        }
        .card::before {
            content: '';
            position: absolute; top: 0; left: 0; width: 100%; height: 4px;
            background: linear-gradient(90deg, var(--primary-dark), var(--primary-light));
            opacity: 0; transition: opacity 0.3s;
        }
        .card:hover {
            transform: translateY(-10px);
            box-shadow: 0 20px 40px rgba(30, 43, 88, 0.12);
        }
        .card:hover::before { opacity: 1; }

        .card-red::before { background: linear-gradient(90deg, var(--sub-red), #e5a5a5); }
        .card-green::before { background: linear-gradient(90deg, var(--sub-green), #9ed4ad); }

        .hex-icon {
            width: 60px; height: 60px;
            background: var(--bg-gradient);
            clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
            display: flex; align-items: center; justify-content: center;
            margin-bottom: 1rem;
            box-shadow: 0 4px 10px rgba(0,0,0,0.1);
        }
        .card-navy .hex-icon { color: var(--primary-dark); background: #eef2ff; }
        .card-red .hex-icon { color: var(--sub-red); background: #fff5f5; }
        .card-green .hex-icon { color: var(--sub-green); background: #f0fdf4; }

        .detail-list li {
            display: flex; align-items: center;
            font-size: 0.95rem; color: var(--text-main);
            padding: 6px 0;
            border-bottom: 1px dashed rgba(0,0,0,0.05);
        }
        .detail-list li:last-child { border-bottom: none; }
        .detail-list li iconify-icon { margin-right: 10px; font-size: 1.1em; opacity: 0.6; color: var(--text-sub); }

        /* 선 스타일 */
        .svg-connector {
            position: absolute;
            top: 0; left: 0;
            width: 100%; height: 100%;
            pointer-events: none;
            z-index: 1;
        }
        .connector-path {
            fill: none !important;
            stroke: var(--primary-dark);
            stroke-width: 1.5;
            stroke-dasharray: 2000;
            stroke-dashoffset: 2000;
            opacity: 0.25;
            animation: drawLine 1.5s ease-out forwards;
            stroke-linecap: round;
            stroke-linejoin: round;
        }