 /* ===== VARIABLES (DEFAULT DARK MODE) ===== */
 :root {
     --bg-primary: #0a0f1c;
     --bg-secondary: #131a2c;
     --text-primary: #e0e0e0;
     --text-secondary: #b0b0b0;
     --accent-cyan: #00eeff;
     --accent-green: #419d78;
     --accent-yellow: #e0a458;
     --accent-red: #d9594c;
     --accent-blue: #53a2be;
     --header-bg: rgba(10, 15, 28, 0.95);
     --card-bg: rgba(19, 26, 44, 0.8);
     --border-glow: rgba(0, 238, 255, 0.3);
     --shadow-cyan: 0 0 10px rgba(0, 238, 255, 0.5);
     --toggle-sun: #ffd966;
     --toggle-moon: #b0b0b0;
     --btn-text: #00eeff;
     --footer-bg: #0a0f1c;
     --progress-bg: #0a0f1c;
 }

 /* ===== LIGHT MODE VARIABLES (toggle via .light-mode class on body) ===== */
 body.light-mode {
     --bg-primary: #f0f5fa;
     --bg-secondary: #ffffff;
     --text-primary: #1e2a3a;
     --text-secondary: #3a4a5c;
     --accent-cyan: #0077be;
     --accent-green: #2d6a4f;
     --accent-yellow: #b9770e;
     --accent-red: #b13e3e;
     --accent-blue: #1e6f9f;
     --header-bg: rgba(255, 255, 255, 0.9);
     --card-bg: rgba(255, 255, 255, 0.7);
     --border-glow: rgba(0, 119, 190, 0.3);
     --shadow-cyan: 0 0 15px rgba(0, 119, 190, 0.4);
     --toggle-sun: #f39c12;
     --toggle-moon: #34495e;
     --btn-text: #0077be;
     --footer-bg: #ffffff;
     --progress-bg: #d0d9e0;
 }

 /* ===== RESET & BASE ===== */
 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
     font-family: 'Montserrat', sans-serif;
 }

 html {
     scroll-behavior: smooth;
 }

 body {
     background: var(--bg-primary);
     color: var(--text-primary);
     line-height: 1.6;
     overflow-x: hidden;
     position: relative;
     min-height: 100vh;
     transition: background-color 0.4s ease, color 0.3s ease;
 }

 /* ===== LOADER (unchanged) ===== */
 .loader-wrapper {
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     background: linear-gradient(135deg, #0a0f1c 0%, #1a1f2e 100%);
     display: flex;
     justify-content: center;
     align-items: center;
     z-index: 99999;
     transition: opacity 0.8s ease, visibility 0.8s ease;
 }

 .loader-content {
     text-align: center;
     max-width: 500px;
     padding: 30px;
 }

 .loader-animation {
     display: flex;
     justify-content: center;
     gap: 15px;
     margin-bottom: 30px;
 }

 .loader-circle {
     width: 20px;
     height: 20px;
     border-radius: 50%;
     animation: loaderBounce 1.4s ease-in-out infinite;
 }

 .loader-circle:nth-child(1) {
     background: var(--accent-green);
     animation-delay: -0.32s;
 }

 .loader-circle:nth-child(2) {
     background: var(--accent-yellow);
     animation-delay: -0.16s;
 }

 .loader-circle:nth-child(3) {
     background: var(--accent-red);
 }

 .loader-circle:nth-child(4) {
     background: var(--accent-blue);
     animation-delay: 0.16s;
 }

 .loader-circle:nth-child(5) {
     background: #00eeff;
     animation-delay: 0.32s;
 }

 @keyframes loaderBounce {

     0%,
     100% {
         transform: scale(0);
         opacity: 0.5;
     }

     50% {
         transform: scale(1);
         opacity: 1;
         box-shadow: 0 0 20px currentColor;
     }
 }

 .loader-text h2 {
     font-size: 32px;
     margin-bottom: 10px;
     color: #00eeff;
     text-shadow: 0 0 10px #00eeff;
     animation: textGlow 2s ease-in-out infinite;
 }

 @keyframes textGlow {

     0%,
     100% {
         text-shadow: 0 0 10px #00eeff;
     }

     50% {
         text-shadow: 0 0 30px #00eeff, 0 0 50px #00eeff;
     }
 }

 .loader-text p {
     font-size: 16px;
     color: #b0b0b0;
 }

 .progress-container {
     width: 100%;
     height: 4px;
     background: rgba(255, 255, 255, 0.1);
     border-radius: 10px;
     overflow: hidden;
     margin-bottom: 15px;
 }

 .progress-bar-loader {
     width: 0%;
     height: 100%;
     background: linear-gradient(90deg, #419d78, #e0a458, #d9594c, #53a2be, #00eeff);
     border-radius: 10px;
     animation: progressLoader 6s linear forwards;
 }

 @keyframes progressLoader {
     0% {
         width: 0%;
     }

     100% {
         width: 100%;
     }
 }

 .loader-status {
     display: flex;
     justify-content: space-between;
     color: #b0b0b0;
     font-size: 14px;
 }

 .loader-percentage {
     color: #00eeff;
     font-weight: 600;
 }

 .loader-wrapper.fade-out {
     opacity: 0;
     visibility: hidden;
 }

 /* Main content */
 .main-content {
     opacity: 0;
     transition: opacity 1s ease;
 }

 .main-content.visible {
     opacity: 1;
 }

 /* ===== THEME TOGGLE BUTTON ===== */
 .theme-toggle {
     position: fixed;
     bottom: 90px;
     right: 30px;
     width: 50px;
     height: 50px;
     background: var(--accent-cyan);
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     color: var(--bg-primary);
     font-size: 26px;
     cursor: pointer;
     box-shadow: 0 0 15px var(--accent-cyan);
     z-index: 1001;
     border: 2px solid transparent;
     transition: all 0.3s ease;
 }

 .theme-toggle:hover {
     transform: scale(1.1) rotate(15deg);
     box-shadow: 0 0 25px var(--accent-cyan);
 }

 body.light-mode .theme-toggle i {
     content: "\f185";
     /* sun */
 }

 /* Particles */
 #particles-js {
     position: fixed;
     width: 100%;
     height: 100%;
     top: 0;
     left: 0;
     z-index: -1;
 }

 canvas {
     display: block;
     position: fixed;
     top: 0;
     left: 0;
     z-index: -1;
 }

 /* Header & Nav */
 .header {
     position: fixed;
     top: 0;
     left: 0;
     width: 100%;
     padding: 20px 10%;
     background: var(--header-bg);
     backdrop-filter: blur(10px);
     display: flex;
     justify-content: space-between;
     align-items: center;
     z-index: 1000;
     box-shadow: 0 2px 20px var(--border-glow);
     border-bottom: 1px solid var(--border-glow);
 }

 .logo {
     font-size: 32px;
     font-weight: 700;
     color: var(--accent-cyan);
     font-style: italic;
     text-decoration: none;
     text-shadow: 0 0 10px var(--accent-cyan);
     animation: slideRight 1s ease forwards;
 }

 .navbar {
     display: flex;
     gap: 30px;
 }

 .navbar a {
     color: var(--text-primary);
     text-decoration: none;
     font-size: 18px;
     font-weight: 500;
     transition: all 0.3s ease;
     position: relative;
     padding: 5px 0;
 }

 .navbar a::after {
     content: '';
     position: absolute;
     bottom: 0;
     left: 0;
     width: 0;
     height: 2px;
     background: var(--accent-cyan);
     transition: width 0.3s ease;
     box-shadow: 0 0 10px var(--accent-cyan);
 }

 .navbar a:hover::after,
 .navbar a.active::after {
     width: 100%;
 }

 .navbar a:hover,
 .navbar a.active {
     color: var(--accent-cyan);
 }

 .menu-btn {
     display: none;
     font-size: 28px;
     color: var(--accent-cyan);
     cursor: pointer;
 }

 /* Animations */
 @keyframes slideRight {
     0% {
         transform: translateX(-100px);
         opacity: 0;
     }

     100% {
         transform: translateX(0);
         opacity: 1;
     }
 }

 @keyframes slideLeft {
     0% {
         transform: translateX(100px);
         opacity: 0;
     }

     100% {
         transform: translateX(0);
         opacity: 1;
     }
 }

 @keyframes slideBottom {
     0% {
         transform: translateY(100px);
         opacity: 0;
     }

     100% {
         transform: translateY(0);
         opacity: 1;
     }
 }

 @keyframes float {

     0%,
     100% {
         transform: translateY(0);
     }

     50% {
         transform: translateY(-20px);
     }
 }

 @keyframes rotate {
     from {
         transform: rotate(0deg);
     }

     to {
         transform: rotate(360deg);
     }
 }

 /* Sections */
 section {
     padding: 100px 10%;
     min-height: 100vh;
     display: flex;
     flex-direction: column;
     position: relative;
 }

 .section-header {
     text-align: center;
     margin-bottom: 50px;
     width: 100%;
 }

 .section-title {
     font-size: 48px;
     font-weight: 700;
     font-family: 'Roboto Slab', serif;
 }

 .section-title span {
     color: var(--accent-cyan);
     text-shadow: 0 0 10px var(--accent-cyan);
 }

 .section-subtitle {
     font-size: 18px;
     color: var(--text-secondary);
     margin-top: 10px;
 }

 /* Home */
 .home {
     flex-direction: row;
     align-items: center;
     justify-content: space-between;
     gap: 50px;
 }

 .home-content {
     flex: 1;
 }

 .home-content h3 {
     font-size: 32px;
     font-weight: 500;
     margin-bottom: 10px;
     animation: slideBottom 1s ease forwards;
 }

 .home-content h1 {
     font-size: 56px;
     font-weight: 700;
     margin-bottom: 10px;
     color: var(--accent-cyan);
     animation: slideRight 1s ease forwards;
 }

 .home-content h3 span {
     color: var(--accent-yellow);
     border-right: 2px solid var(--accent-cyan);
 }

 .home-content p {
     font-size: 18px;
     margin: 20px 0;
     animation: slideLeft 1s ease forwards;
 }

 .home-image {
     flex: 1;
     display: flex;
     justify-content: center;
     animation: float 6s ease-in-out infinite;
 }

 .profile-box {
     position: relative;
     width: 350px;
     height: 350px;
     border-radius: 50%;
     overflow: hidden;
     box-shadow: 0 0 30px var(--accent-cyan);
 }

 .profile-box::before {
     content: '';
     position: absolute;
     inset: -10px 50px;
     background: linear-gradient(315deg, var(--accent-cyan), var(--accent-blue));
     transition: 0.5s;
     animation: rotate 4s linear infinite;
 }

 .profile-box:hover::before {
     inset: -20px 0px;
 }

 .profile-box::after {
     content: '';
     position: absolute;
     inset: 6px;
     background: var(--bg-secondary);
     border-radius: 50%;
 }

 .profile-img {
     position: absolute;
     inset: 15px;
     border: 4px solid var(--accent-cyan);
     z-index: 3;
     border-radius: 50%;
     overflow: hidden;
     display: flex;
     justify-content: center;
     align-items: center;
 }

 .profile-img img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     transition: 0.5s;
 }

 .profile-box:hover .profile-img img {
     opacity: 0.3;
 }

 .profile-img a,
 .profile-img h2 {
     position: absolute;
     font-size: 20px;
     text-align: center;
     color: #fff;
     background: rgba(0, 0, 0, 0.5);
     padding: 5px 10px;
     border-radius: 20px;
     opacity: 0;
     transition: 0.5s;
     text-decoration: none;
 }

 .profile-box:hover .profile-img a,
 .profile-box:hover .profile-img h2 {
     opacity: 1;
 }

 .social-links {
     display: flex;
     gap: 20px;
     margin: 30px 0;
 }

 .social-links a {
     display: flex;
     justify-content: center;
     align-items: center;
     width: 50px;
     height: 50px;
     border: 2px solid var(--accent-cyan);
     border-radius: 50%;
     color: var(--accent-cyan);
     font-size: 24px;
     transition: all 0.3s ease;
     text-decoration: none;
 }

 .social-links a:hover {
     background: var(--accent-cyan);
     color: var(--bg-primary);
     transform: translateY(-5px);
     box-shadow: var(--shadow-cyan);
 }

 .btn {
     display: inline-block;
     padding: 12px 28px;
     background: transparent;
     border: 2px solid var(--accent-cyan);
     border-radius: 40px;
     color: var(--btn-text);
     font-size: 16px;
     font-weight: 600;
     text-decoration: none;
     transition: all 0.3s ease;
     box-shadow: 0 0 10px var(--accent-cyan);
 }

 .btn:hover {
     background: var(--accent-cyan);
     color: var(--bg-primary);
     box-shadow: 0 0 30px var(--accent-cyan);
     transform: scale(1.05);
 }

 /* About */
 .about {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 50px;
     align-items: center;
 }

 .about-image .profile-box {
     width: 300px;
     height: 300px;
 }

 .about-text h2 {
     font-size: 48px;
     margin-bottom: 20px;
 }

 .about-text h2 span {
     color: var(--accent-cyan);
 }

 .about-text h4 {
     font-size: 24px;
     margin-bottom: 15px;
     color: var(--accent-yellow);
 }

 .about-text p {
     font-size: 18px;
     margin-bottom: 20px;
     color: var(--text-secondary);
 }

 .about-text b {
     color: var(--accent-cyan);
 }

 /* Services */
 .services-container {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
     gap: 30px;
     width: 100%;
 }

 .service-card {
     background: var(--card-bg);
     backdrop-filter: blur(10px);
     padding: 40px 30px;
     border-radius: 20px;
     border: 1px solid var(--border-glow);
     transition: all 0.3s ease;
     text-align: center;
 }

 .service-card:hover {
     transform: translateY(-10px);
     box-shadow: var(--shadow-cyan);
     border-color: var(--accent-cyan);
 }

 .service-card i {
     font-size: 60px;
     color: var(--accent-cyan);
     margin-bottom: 20px;
 }

 .service-card h2 {
     font-size: 28px;
     margin-bottom: 15px;
 }

 .service-card p {
     color: var(--text-secondary);
     margin-bottom: 15px;
 }

 .service-card b {
     color: var(--accent-cyan);
 }

 .service-card .btn {
     margin-top: 20px;
     padding: 10px 24px;
     font-size: 14px;
 }

 /* Skills */
 .skills-container {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 50px;
     width: 100%;
 }

 .skill-box {
     background: var(--card-bg);
     backdrop-filter: blur(10px);
     padding: 30px;
     border-radius: 20px;
     border: 1px solid var(--border-glow);
 }

 .skill-box h3 {
     font-size: 28px;
     margin-bottom: 30px;
     text-align: center;
     color: var(--accent-cyan);
 }

 .skill-item {
     margin-bottom: 25px;
 }

 .skill-info {
     display: flex;
     justify-content: space-between;
     margin-bottom: 10px;
 }

 .skill-info span {
     font-size: 18px;
     font-weight: 500;
 }

 .skill-info i {
     color: var(--accent-cyan);
     margin-right: 10px;
 }

 .progress-bar {
     width: 100%;
     height: 8px;
     background: var(--progress-bg);
     border-radius: 10px;
     overflow: hidden;
 }

 .progress {
     height: 100%;
     background: linear-gradient(90deg, var(--accent-cyan), var(--accent-blue));
     border-radius: 10px;
     position: relative;
     transform-origin: left;
 }

 .progress::after {
     content: attr(data-progress);
     position: absolute;
     right: 0;
     top: -25px;
     background: var(--accent-cyan);
     color: var(--bg-primary);
     padding: 2px 8px;
     border-radius: 10px;
     font-size: 12px;
     font-weight: 600;
 }

 .radial-skills {
     display: grid;
     grid-template-columns: repeat(2, 1fr);
     gap: 30px;
     margin-top: 30px;
 }

 .radial-skill {
     text-align: center;
 }

 .radial-progress {
     position: relative;
     width: 150px;
     height: 150px;
     margin: 0 auto 15px;
 }

 .radial-progress svg {
     width: 150px;
     height: 150px;
     transform: rotate(-90deg);
 }

 .radial-progress circle {
     fill: none;
     stroke-width: 10;
     stroke-linecap: round;
 }

 .radial-progress circle:nth-child(1) {
     stroke: var(--progress-bg);
 }

 .radial-progress circle:nth-child(2) {
     stroke: var(--accent-cyan);
     stroke-dasharray: 440;
     stroke-dashoffset: 440;
 }

 .percentage {
     position: absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     font-size: 24px;
     font-weight: 700;
     color: var(--accent-cyan);
 }

 .radial-skill p {
     font-size: 18px;
     font-weight: 500;
 }

 /* Projects */
 .projects-container {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
     gap: 30px;
     width: 100%;
 }

 .project-card {
     position: relative;
     border-radius: 20px;
     overflow: hidden;
     height: 300px;
 }

 .project-card img {
     width: 100%;
     height: 100%;
     object-fit: cover;
     transition: transform 0.5s ease;
 }

 .project-card:hover img {
     transform: scale(1.1);
 }

 .project-overlay {
     position: absolute;
     bottom: 0;
     left: 0;
     right: 0;
     background: linear-gradient(to top, rgba(0, 238, 255, 0.9), transparent);
     padding: 30px;
     transform: translateY(100%);
     transition: transform 0.5s ease;
     display: flex;
     flex-direction: column;
     justify-content: flex-end;
 }

 .project-card:hover .project-overlay {
     transform: translateY(0);
 }

 .project-overlay h5 {
     font-size: 24px;
     margin-bottom: 10px;
     color: black;
 }

 .project-overlay p {
     color: var(--bg-primary);
     margin-bottom: 15px;
     font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif;
     font-size: large;
 }

 .project-overlay a {
     display: inline-block;
     width: 50px;
     height: 50px;
     background: var(--bg-primary);
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     color: var(--accent-cyan);
     font-size: 24px;
     text-decoration: none;
     transition: 0.3s;
 }

 .project-overlay a:hover {
     transform: scale(1.1);
     box-shadow: 0 0 20px var(--bg-primary);
 }

 /* Contact */
 .contact-container {
     display: grid;
     grid-template-columns: 1fr 1fr;
     gap: 50px;
     width: 100%;
 }

 .contact-info h4 {
     font-size: 24px;
     margin-bottom: 15px;
     color: var(--accent-yellow);
 }

 .contact-info p {
     font-size: 18px;
     margin-bottom: 30px;
     color: var(--text-secondary);
 }

 .contact-details li {
     list-style: none;
     margin-bottom: 15px;
     font-size: 18px;
 }

 .contact-details li i {
     color: var(--accent-cyan);
     margin-right: 15px;
     font-size: 24px;
 }

 .contact-form {
     background: var(--card-bg);
     backdrop-filter: blur(10px);
     padding: 40px;
     border-radius: 20px;
     border: 1px solid var(--border-glow);
 }

 .form-group {
     margin-bottom: 20px;
 }

 .form-group input,
 .form-group textarea {
     width: 100%;
     padding: 15px;
     background: var(--bg-primary);
     border: 1px solid var(--border-glow);
     border-radius: 10px;
     color: var(--text-primary);
     font-size: 16px;
     transition: 0.3s;
 }

 .form-group input:focus,
 .form-group textarea:focus {
     outline: none;
     border-color: var(--accent-cyan);
     box-shadow: 0 0 10px var(--accent-cyan);
 }

 .form-group textarea {
     height: 150px;
     resize: vertical;
 }

 .submit-btn {
     width: 100%;
     padding: 15px;
     background: transparent;
     border: 2px solid var(--accent-cyan);
     border-radius: 40px;
     color: var(--btn-text);
     font-size: 18px;
     font-weight: 600;
     cursor: pointer;
     transition: 0.3s;
     box-shadow: 0 0 10px var(--accent-cyan);
 }

 .submit-btn:hover {
     background: var(--accent-cyan);
     color: var(--bg-primary);
     box-shadow: 0 0 30px var(--accent-cyan);
 }

 /* Footer */
 .footer {
     background: var(--footer-bg);
     padding: 30px 10%;
     text-align: center;
     border-top: 1px solid var(--border-glow);
 }

 .footer p {
     font-size: 16px;
     color: var(--text-secondary);
 }

 .footer p i {
     color: var(--accent-red);
 }

 /* Back to top */
 .back-to-top {
     position: fixed;
     bottom: 30px;
     right: 30px;
     width: 50px;
     height: 50px;
     background: var(--accent-cyan);
     border-radius: 50%;
     display: flex;
     align-items: center;
     justify-content: center;
     color: var(--bg-primary);
     font-size: 24px;
     text-decoration: none;
     box-shadow: 0 0 20px var(--accent-cyan);
     transition: 0.3s;
     opacity: 0;
     visibility: hidden;
     z-index: 999;
 }

 .back-to-top.show {
     opacity: 1;
     visibility: visible;
 }

 .back-to-top:hover {
     transform: translateY(-5px);
     box-shadow: 0 0 30px var(--accent-cyan);
 }

 /* Responsive */
 @media (max-width: 992px) {
     .home {
         flex-direction: column-reverse;
         text-align: center;
     }

     .social-links {
         justify-content: center;
     }

     .about {
         grid-template-columns: 1fr;
         text-align: center;
     }

     .skills-container {
         grid-template-columns: 1fr;
     }

     .contact-container {
         grid-template-columns: 1fr;
     }
 }

 @media (max-width: 768px) {
     .menu-btn {
         display: block;
     }

     .navbar {
         position: fixed;
         top: 80px;
         left: -100%;
         width: 100%;
         height: calc(100vh - 80px);
         background: var(--header-bg);
         backdrop-filter: blur(10px);
         flex-direction: column;
         align-items: center;
         justify-content: center;
         transition: 0.5s ease;
         z-index: 999;
     }

     .navbar.active {
         left: 0;
     }

     .navbar a {
         font-size: 24px;
     }

     .section-title {
         font-size: 36px;
     }

     .profile-box {
         width: 280px;
         height: 280px;
     }

     .radial-skills {
         grid-template-columns: 1fr;
     }
 }

 @media (max-width: 480px) {
     .home-content h1 {
         font-size: 28px;
     }

     .btn {
         padding: 10px 20px;
         font-size: 14px;
     }

     .profile-box {
         width: 240px;
         height: 240px;
     }
 }

 .typed-cursor {
     color: var(--accent-yellow);
 }
