 :root[data-theme="light"] {
     --bg-primary: #fcfcfd;
     --bg-secondary: #f3f4f6;
     --text-primary: #111827;
     --text-secondary: #4b5563;
     --accent-1: #6d28d9;
     --accent-2: #ea580c;
     --accent-3: #0891b2;
     --card-bg: #ffffff;
     --border-color: rgba(0, 0, 0, 0.08);
     --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
     --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
     --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
     --glow-color: rgba(109, 40, 217, 0.1);
 }

 :root[data-theme="dark"] {
     --bg-primary: #050508;
     --bg-secondary: #0f172a;
     --text-primary: #f8fafc;
     --text-secondary: #94a3b8;
     --accent-1: #a78bfa;
     --accent-2: #fb923c;
     --accent-3: #22d3ee;
     --card-bg: rgba(255, 255, 255, 0.03);
     --border-color: rgba(255, 255, 255, 0.1);
     --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.5);
     --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.7);
     --shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.8);
     --glow-color: rgba(0, 243, 255, 0.15);
 }

 :root {
     --accent-vishnu: #00f3ff;
     --accent-kiran: #ff003c;
     --accent-rohith: #0aff0a;
     --accent-prasanna: #ffd700;
     --accent-gokul: #ff00ff;
     --accent-senthil: #ff5722;
     --accent-dharani: #ffd700;
     --accent-nithish: #8fd222;
     --accent-gc: #44efab;
     --accent-akshaya: #f472b6;
 }

 * {
     box-sizing: border-box;
 }

 body,
 html {
     margin: 0;
     padding: 0;
     width: 100%;
     height: 100vh;
     background-color: var(--bg-primary);
     font-family: 'Rajdhani', sans-serif;
     overflow: hidden;
     color: var(--text-primary);
     cursor: none;
     transition: background-color 0.3s ease, color 0.3s ease;
 }

 /* ===== THEME TOGGLE (Floating) ===== */
 .theme-toggle {
     position: fixed;
     top: 30px;
     right: 180px;
     /* To the left of Menu trigger */
     z-index: 1600;
     background: rgba(255, 255, 255, 0.05);
     border: 1px solid rgba(255, 255, 255, 0.1);
     color: #fff;
     width: 45px;
     height: 45px;
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     cursor: pointer;
     backdrop-filter: blur(10px);
     transition: 0.3s;
 }

 .theme-toggle:hover {
     background: #fff;
     color: #000;
     transform: rotate(15deg);
 }

 [data-theme="dark"] .sun-icon {
     display: block;
 }

 [data-theme="dark"] .moon-icon {
     display: none;
 }

 [data-theme="light"] .sun-icon {
     display: none;
 }

 [data-theme="light"] .moon-icon {
     display: block;
 }

 [data-theme="light"] .back-btn,
 [data-theme="light"] .cat-menu-trigger,
 [data-theme="light"] .theme-toggle {
     background: rgba(0, 0, 0, 0.05);
     border-color: rgba(0, 0, 0, 0.1);
     color: #000;
 }

 [data-theme="light"] .back-btn:hover,
 [data-theme="light"] .cat-menu-trigger:hover,
 [data-theme="light"] .theme-toggle:hover {
     background: #000;
     color: #fff;
 }

 [data-theme="light"] .hero-img {
     filter: contrast(1.1) brightness(1);
     mix-blend-mode: normal;
 }

 [data-theme="light"] .info-panel {
     background: linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(240, 240, 240, 0.98) 100%);
     border-left-color: rgba(0, 0, 0, 0.1);
 }

 [data-theme="light"] .desc-text {
     color: rgba(0, 0, 0, 0.7);
 }

 [data-theme="light"] .bg-type {
     -webkit-text-stroke: 2px rgba(0, 0, 0, 0.08);
 }

 [data-theme="light"] .slide.active .bg-type {
     color: rgba(0, 0, 0, 0.03);
 }

 /* CURSOR SPOTLIGHT */
 .cursor-glow {
     position: fixed;
     top: 0;
     left: 0;
     width: 400px;
     height: 400px;
     background: radial-gradient(circle, var(--glow-color) 0%, transparent 70%);
     border-radius: 50%;
     pointer-events: none;
     z-index: 999;
     transform: translate(-50%, -50%);
     mix-blend-mode: screen;
     transition: background 0.5s ease;
     opacity: 0.6;
 }

 .cursor-dot {
     position: fixed;
     width: 10px;
     height: 10px;
     background: #fff;
     border-radius: 50%;
     pointer-events: none;
     z-index: 1000;
     transform: translate(-50%, -50%);
     box-shadow: 0 0 20px #fff;
 }

 /* CONTAINER */
 .titan-container {
     width: 100%;
     height: 100%;
     position: relative;
     overflow: hidden;
 }

 /* SLIDE WRAPPER */
 .slide {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     display: flex;
     align-items: center;
     justify-content: center;
     opacity: 0;
     pointer-events: none;
     z-index: 1;
 }

 .slide.active {
     opacity: 1;
     pointer-events: auto;
     z-index: 2;
 }

 /* BACKGROUND TYPOGRAPHY (Visible through image) */
 .bg-type {
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     font-family: 'Anton', sans-serif;
     font-size: 28vw;
     color: rgba(255, 255, 255, 0.03);
     white-space: nowrap;
     z-index: 5;
     user-select: none;
     -webkit-text-stroke: 2px rgba(255, 255, 255, 0.15);
     transition: color 0.5s ease;
 }

 .slide.active .bg-type {
     color: rgba(255, 255, 255, 0.08);
 }

 /* IMAGE CUTOUT with TRANSPARENCY/BLENDING */
 .hero-img-wrap {
     position: absolute;
     bottom: 0;
     left: 5%;
     height: 95%;
     width: 50%;
     z-index: 10;
     pointer-events: none;
 }

 .hero-img {
     width: 100%;
     height: 100%;
     object-fit: contain;
     object-position: bottom center;
     /* mix-blend-mode and opacity make text visible behind */
     mix-blend-mode: screen;
     opacity: 0.7;
     filter: contrast(1.2) brightness(0.9);
     mask-image: linear-gradient(to top, rgba(0, 0, 0, 1) 70%, rgba(0, 0, 0, 0) 100%);
     transform: scale(0.95);
 }

 .slide.active .hero-img {
     animation: image-reveal 2s cubic-bezier(0.19, 1, 0.22, 1) forwards;
 }

 @keyframes image-reveal {
     0% {
         clip-path: inset(100% 0 0 0);
         transform: scale(1.1);
         opacity: 0;
     }

     40% {
         opacity: 0.7;
     }

     100% {
         clip-path: inset(0 0 0 0);
         transform: scale(1);
     }
 }

 /* GLASSMORPHISM INFO PANEL */
 .info-panel {
     position: absolute;
     right: 0;
     top: 0;
     width: 45%;
     height: 100%;
     background: linear-gradient(135deg, rgba(255, 255, 255, 0.02) 0%, rgba(0, 0, 0, 0.85) 100%);
     backdrop-filter: blur(20px);
     padding: 5vw;
     display: flex;
     flex-direction: column;
     justify-content: center;
     border-left: 1px solid rgba(255, 255, 255, 0.1);
     z-index: 20;
     clip-path: polygon(15% 0, 100% 0, 100% 100%, 0 100%);
     box-shadow: -30px 0 60px rgba(0, 0, 0, 0.8);
 }

 .role-badge {
     display: inline-block;
     padding: 6px 18px;
     background: #fff;
     color: #000;
     font-weight: 700;
     text-transform: uppercase;
     font-family: 'Orbitron';
     letter-spacing: 2px;
     margin-bottom: 25px;
     width: fit-content;
 }

 .name-title {
     font-family: 'Anton';
     font-size: 5.5rem;
     text-transform: uppercase;
     line-height: 0.85;
     margin: 0 0 25px 0;
 }

 /* GLITCH TEXT */
 .glitch-text {
     position: relative;
 }

 .glitch-text::before,
 .glitch-text::after {
     content: attr(data-text);
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     opacity: 0.8;
 }

 .glitch-text::before {
     color: var(--accent-vishnu);
     z-index: -1;
     animation: glitch-anim 3s infinite linear alternate-reverse;
 }

 .glitch-text::after {
     color: #ff003c;
     z-index: -2;
     animation: glitch-anim 2s infinite linear alternate;
 }

 @keyframes glitch-anim {
     0% {
         clip: rect(44px, 9999px, 56px, 0);
         transform: skew(0.3deg);
     }

     50% {
         clip: rect(12px, 9999px, 88px, 0);
         transform: skew(-0.3deg);
     }

     100% {
         clip: rect(67px, 9999px, 22px, 0);
         transform: skew(0.1deg);
     }
 }

 .desc-text {
     font-size: 1.15rem;
     line-height: 1.6;
     color: rgba(255, 255, 255, 0.7);
     margin-bottom: 35px;
     max-width: 520px;
 }

 .stats-grid {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 25px;
     margin-bottom: 45px;
 }

 .stat-item h4 {
     margin: 0;
     font-size: 2.2rem;
     font-family: 'Orbitron';
 }

 .stat-item p {
     margin: 0;
     color: #666;
     font-size: 0.85rem;
     text-transform: uppercase;
     letter-spacing: 1px;
 }

 .cta-btn {
     display: inline-flex;
     align-items: center;
     gap: 12px;
     padding: 18px 35px;
     color: #fff;
     text-decoration: none;
     font-family: 'Orbitron';
     border: 1px solid rgba(255, 255, 255, 0.2);
     width: fit-content;
     transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1);
     text-transform: uppercase;
     letter-spacing: 1px;
 }

 .cta-btn:hover {
     background: #fff;
     color: #000;
     transform: translateX(10px);
 }

 /* NAV CONTROLS */
 .nav-controls {
     position: fixed;
     top: 50%;
     left: 0;
     width: 100%;
     transform: translateY(-50%);
     display: flex;
     justify-content: space-between;
     padding: 0 30px;
     pointer-events: none;
     z-index: 100;
 }

 .nav-btn {
     width: 70px;
     height: 70px;
     background: rgba(10, 10, 10, 0.4);
     backdrop-filter: blur(10px);
     border: 1px solid rgba(255, 255, 255, 0.1);
     color: rgba(255, 255, 255, 0.7);
     font-size: 1.5rem;
     cursor: pointer;
     transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
     display: flex;
     align-items: center;
     justify-content: center;
     border-radius: 50%;
     pointer-events: auto;
 }

 .nav-btn:hover {
     background: #fff;
     color: #000;
     border-color: #fff;
     transform: scale(1.1);
 }

 /* INDICATORS */
 .slide-indicators {
     position: fixed;
     bottom: 40px;
     right: 140px;
     display: flex;
     gap: 12px;
     z-index: 50;
 }

 .bar {
     width: 45px;
     height: 3px;
     background: rgba(255, 255, 255, 0.1);
     transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1);
     cursor: pointer;
 }

 .bar.active {
     background: #fff;
     width: 70px;
 }

 /* Dynamic Colors */
 .active[data-color="vishnu"] .name-title {
     color: var(--accent-vishnu);
 }

 .active[data-color="kiran"] .name-title {
     color: var(--accent-kiran);
 }

 .active[data-color="rohith"] .name-title {
     color: var(--accent-rohith);
 }

 .active[data-color="prasanna"] .name-title {
     color: var(--accent-prasanna);
 }

 .active[data-color="gokul"] .name-title {
     color: var();
 }

 .active[data-color="senthil"] .name-title {
     color: var(--accent-senthil);
 }

 .active[data-color="dharani"] .name-title {
     color: var(--accent-dharani);
 }


 .active[data-color="nithish"] .name-title {
     color: var(--accent-nithish);
 }

 .active[data-color="gk"] .name-title {
     color: var(--accent-gk);
 }

 .active[data-color="gc"] .name-title {
     color: var(--accent-gc);
 }

 .active[data-color="vishnu"] .role-badge {
     background: var(--accent-vishnu);
 }

 .active[data-color="kiran"] .role-badge {
     background: var(--accent-kiran);
 }

 .active[data-color="rohith"] .role-badge {
     background: var(--accent-rohith);
 }

 .active[data-color="prasanna"] .role-badge {
     background: var(--accent-prasanna);
 }

 .active[data-color="gokul"] .role-badge {
     background: var(--accent-gokul);
 }

 .active[data-color="senthil"] .role-badge {
     background: var(--accent-senthil);
 }

 .active[data-color="dharani"] .role-badge {
     background: var(--accent-dharani);
 }


 .active[data-color="nithish"] .role-badge {
     background: var(--accent-nithish);
 }

 .active[data-color="gk"] .role-badge {
     background: var(--accent-gk);
 }

 .active[data-color="gc"] .role-badge {
     background: var(--accent-gc);
 }

 .active[data-color="akshaya"] .role-badge {
     background: var(--accent-akshaya);
 }

 .active[data-color="akshaya"] .name-title {
     color: var(--accent-akshaya);
 }

 /* CATEGORY OVERLAY */
 .category-overlay {
     position: fixed;
     top: 0;
     right: -400px;
     width: 400px;
     height: 100vh;
     background: rgba(10, 10, 15, 0.95);
     backdrop-filter: blur(30px);
     z-index: 1500;
     padding: 80px 40px;
     border-left: 1px solid rgba(255, 255, 255, 0.05);
     transition: right 0.6s cubic-bezier(0.23, 1, 0.32, 1);
 }

 .category-overlay.active {
     right: 0;
 }

 .cat-menu-trigger {
     position: fixed;
     top: 30px;
     right: 30px;
     z-index: 1600;
     background: rgba(255, 255, 255, 0.05);
     border: 1px solid rgba(255, 255, 255, 0.1);
     color: #fff;
     padding: 12px 25px;
     font-family: 'Orbitron';
     font-size: 0.8rem;
     cursor: pointer;
     backdrop-filter: blur(10px);
     transition: 0.3s;
 }

 .back-btn {
     position: fixed;
     top: 30px;
     left: 30px;
     z-index: 1600;
     background: rgba(255, 255, 255, 0.05);
     border: 1px solid rgba(255, 255, 255, 0.1);
     color: #fff;
     padding: 12px 25px;
     font-family: 'Orbitron';
     font-size: 0.8rem;
     cursor: pointer;
     backdrop-filter: blur(10px);
     transition: 0.3s;
     text-decoration: none;
     display: flex;
     align-items: center;
     gap: 10px;
 }

 .back-btn:hover {
     background: #fff;
     color: #000;
 }

 .cat-menu-trigger:hover {
     background: #fff;
     color: #000;
 }

 .cat-item {
     display: block;
     margin-bottom: 25px;
     color: rgba(255, 255, 255, 0.4);
     text-decoration: none;
     font-size: 1.1rem;
     font-family: 'Orbitron';
     transition: 0.3s;
     cursor: pointer;
 }

 .cat-item:hover {
     color: #fff;
     transform: translateX(10px);
 }

 .cat-item span {
     display: block;
     font-size: 0.7rem;
     color: var(--accent-vishnu);
     margin-bottom: 5px;
     letter-spacing: 2px;
 }

 @media (max-width: 1024px) {
     .name-title {
         font-size: 4rem;
     }

     .info-panel {
         width: 50%;
     }
 }

 @media (max-width: 768px) {
     .bg-type {
         font-size: 35vw;
         top: 25%;
     }

     .hero-img-wrap {
         width: 90%;
         left: 0%;
         bottom: 25%;
         height: 60%;
     }

     .info-panel {
         width: 100%;
         height: 45%;
         top: auto;
         bottom: 0;
         clip-path: none;
         padding: 25px;
         border-left: none;
         border-top: 1px solid rgba(255, 255, 255, 0.1);
     }

     .name-title {
         font-size: 3.2rem;
     }

     .nav-controls {
         display: none;
     }

     .slide-indicators {
         right: 20px;
         bottom: 20px;
     }

     .cursor-glow,
     .cursor-dot {
         display: none;
     }

     body {
         cursor: auto;
     }
 }

 /* RADIAL CONTACT MENU */
 .contact-menu-wrap {
     position: absolute;
     left: 40px;
     bottom: 40px;
     width: 60px;
     height: 60px;
     z-index: 100;
 }

 .contact-trigger {
     width: 60px;
     height: 60px;
     border-radius: 50%;
     background: rgba(255, 255, 255, 0.05);
     border: 1px solid rgba(255, 255, 255, 0.2);
     cursor: pointer;
     position: relative;
     z-index: 110;
     transition: all 0.4s ease;
     display: flex;
     align-items: center;
     justify-content: center;
 }

 .contact-trigger::before {
     content: '';
     width: 30px;
     height: 30px;
     border-radius: 50%;
     border: 2px solid var(--member-accent);
     box-shadow: 0 0 15px var(--member-accent);
 }

 .contact-trigger:hover {
     background: rgba(255, 255, 255, 0.1);
     /* Removed transform: scale(1.05) as per user request */
 }

 .social-branches {
     position: absolute;
     top: 30px;
     /* Center of 60px trigger */
     left: 30px;
     width: 0;
     height: 0;
     pointer-events: none;
     opacity: 0;
     z-index: 105;
 }

 .social-branches.active {
     pointer-events: auto;
     opacity: 1;
 }

 .branch {
     position: absolute;
     width: 45px;
     height: 45px;
     border-radius: 50%;
     background: #fff;
     color: #000;
     display: flex;
     align-items: center;
     justify-content: center;
     text-decoration: none;
     font-size: 1.2rem;
     transition: transform 0.3s, background 0.3s, color 0.3s;
     box-shadow: 0 0 15px rgba(255, 255, 255, 0.2);
     transform: translate(-50%, -50%) scale(0);
 }

 .branch:hover {
     /* Removed scale(1.2) as per user request */
     background: var(--member-accent, #fff);
     color: #000;
 }

 .branch-line {
     position: absolute;
     bottom: 30px;
     left: 30px;
     width: 2px;
     transform-origin: bottom center;
     z-index: 5;
 }