/* ==========================================================
   ==========      GLOBAL VARIABLES & RESET        ==========
   ========================================================== */
:root {
    /* Primary theme colours --------------------------------------------------- */
    --primary-color:#595b5e;            /* Main accent (deep red/pink) – used in nav links hover, etc. */
    --secondary-color:#737576;          /* Secondary grey tone for text and borders. */
    --text-color:#b6bcb9;               /* Light‑grey body text. */
    --dark-bg:#0e1010;                  /* Page background. */
    --card-bg:#1a1a1c;                  /* Card backgrounds. */
    --accent-glow:rgba(23,40,116,.4);   /* Glow effect for cards etc. */

    /* Layout / spacing -------------------------------------------------------- */
    --border-radius:8px;
    --transition-speed:.3s;

    /* Font families ----------------------------------------------------------- */
    --font-main:'Share Tech Mono', monospace;
    --font-headings:'Orbitron', sans-serif;

    /* Navigation colours ------------------------------------------------------- */
    --navbar-bg:rgba(27, 27, 27, 0.89);             /* Navbar background with transparency. */
    --nav-links-bg:#2c2e2d2d;                   /* Nav links container (yellow). */
    
    /* Navigation Button Theme --------------------------------------------------------- */
    --nav-btn-bg: #d4141437;                   /* Default button background */
    --nav-btn-hover-bg: rgb(22, 22, 22); /* Hover button background */
    --nav-btn-text: #cacaca;                   /* Default button text */
    --nav-btn-hover-text: #ffffff;             /* Hover button text */
    --nav-btn-border: rgb(239, 150, 7);                  /* Active/Hover button border */

    /* Banner colours ---------------------------------------------------------- */
    --banner-bg:rgb(47, 53, 59);
    --banner-before-bg:rgba(27, 89, 82, 0);

    /* Hero subtitle text colour ----------------------------------------------- */
    --hero-subtext:#828782;                    /* Subtitle overrides. */

    /* CTA button ----------------------------------------------------------------
       (primary colour used for default background,
        white for hover with primary text) */
    --cta-bg:var(--primary-color);
    --cta-hover-bg:#fff;
    --cta-hover-text:var(--primary-color);

    /* Footer colours ---------------------------------------------------------- */
    --footer-bg:#0a0a0b;
    --social-link-hover:var(--primary-color);

    /* Modal overlay ----------------------------------------------------------- */
    --modal-overlay-bg:rgba(0,0,0,.95);
    --modal-nav-btn-bg:rgba(0,0,0,.6);
    --modal-nav-btn-hover-bg:var(--primary-color);

    /* Desktop stats panel colours --------------------------------------------- */
    --desktop-stats-bg:rgba(15,18,16,.75);
    --stats-section-bg:rgba(20,24,22,.6);
    --stats-section-border:rgba(255,255,255,.1);
    --stats-section-hover-boxshadow:
        0 8px 25px rgba(51,64,65,.3), inset 0 1px 0 rgba(255,255,255,.05);

    /* Project card colours ----------------------------------------------------- */
    --project-card-bg:var(--card-bg);
    --project-card-border:rgba(255,255,255,.05);
    --project-card-hover-border:var(--primary-color);
}

/* ----------------- 1. Global Reset & Base ----------------- */
*, *::before, *::after {
    margin:0; padding:0; box-sizing:border-box;
}
html { scroll-behavior:smooth; }
body.custom-scroll{
    font-family:var(--font-main);
    background-color:var(--dark-bg);
    color:var(--text-color);
    line-height:1.6;
    overflow-x:hidden;
}

/* ----------------- 2. Typography ----------------- */
h1,h2,h3{
    font-family:var(--font-headings);
    text-transform:uppercase; color:#fff;
}
a{ text-decoration:none; color:inherit; }

/* ==========================================================
   ==========      DESKTOP‑ONLY STYLES (0 – 768px)        ==========
   ========================================================== */

/* ----------------- Navigation ----------------- */
.navbar{
    display:flex; justify-content:space-between; align-items:center;
    padding:1.5rem 5%; background:var(--navbar-bg);
    position:fixed; top:0; height:12svb; width:100%;
    z-index:999; border-bottom:10px solid rgba(3,29,29,.176);
}
.navbar.menu-open{ flex-direction:row; }
.logo{ font-size:1.8em; color:#949494; display:flex;
        align-items:center; gap:15px; }
.logo img{
    list-style:none; align-items:center;
    display:block; width:110px; height:110px;
}
#portfolio-logo{ cursor:pointer;
    transition:transform var(--transition-speed), opacity .3s ease-in-out;}
#portfolio-logo:hover{ transform:scale(1.1); }
.logo-swappable{ opacity:1; }
.navbar.menu-open .logo-swappable{ opacity:1.0; }

/* Desktop logo swap fix */
@media (min-width:769px){
    #portfolio-logo:not(:hover){ transform:none !important;}
    .logo-swappable{
        transition:opacity .3s ease-in-out, src .1s ease-in-out;
    }
}

/* Nav links */
.nav-links{
    list-style:none; display:flex; align-items:center; gap:30px;
    position:absolute; top:12svb; left:5%;
    background-color:var(--nav-links-bg); border-radius:25px;
    flex-direction:row; width:auto; padding:0;
    opacity:0; visibility:hidden;
    transform:translateX(-120%); transition:all var(--transition-speed) ease-in-out;
    backdrop-filter:blur(15px); -webkit-backdrop-filter:blur(15px);
}
.navbar.menu-open .nav-links{
    opacity:1; visibility:visible; transform:translateX(0);
}

/* Desktop info panel */
@media (min-width:769px){
    .desktop-info-panel{
        position:absolute; top:12svb; right:5%;
        background-color:var(--nav-links-bg); padding:15px 20px;
        border-radius:25px; opacity:0; visibility:hidden;
        transform:translateX(100%); transition:all var(--transition-speed) ease-in-out;
        backdrop-filter:blur(15px); -webkit-backdrop-filter:blur(15px);
    }
    .navbar.menu-open .desktop-info-panel{
        opacity:1; visibility:visible; transform:translateX(0);
    }
}
.last-update-text{
    font-family:var(--font-headings); color:var(--text-color);
    font-size:.9rem; letter-spacing:5px;
}
.nav-links a{
    color:var(--nav-btn-text); font-family:var(--font-headings);
    background:var(--nav-btn-bg); border-radius:25px;
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    font-size:1rem; transition:all var(--transition-speed);
    letter-spacing:10px; display:inline-block;
    padding:12px 25px; border-radius:15px; text-align:center;
}
.nav-links a:hover{
    color:var(--nav-btn-hover-text); background:var(--nav-btn-hover-bg);
    border:4px solid var(--nav-btn-border); text-shadow:none;
}
.nav-links a[href="index.html"]{
    border-bottom:2px solid var(--nav-link-active-border);
    padding-bottom:5px;
}

/* Banner & Hero */
.banner-container{
    width:100%; min-height:400px; overflow:hidden; position:relative;
    display:flex; justify-content:center; align-items:center;
    background:var(--banner-bg);
}
.banner-container::before{
    content:""; position:absolute; top:0; left:0;
    width:100%; height:100%;
    background:var(--banner-before-bg);
}
.gif-banner img{ width:100%; height:100%; object-fit:cover; display:block; }

.hero-section{
    display:flex; flex-direction:column; align-items:center;
    text-align:center; padding:20px 20px; margin:0 10px;
}
.profile-pic{
    width:160px; height:160px; border-radius:5%;
    object-fit:cover; margin-bottom:30px;
    border:3px solid var(--primary-color);
    box-shadow:0 0 25x var(--accent-glow);
}
.hero-content h1{
    font-size:4rem; margin-bottom:15px; letter-spacing:8px;
    color:#fff; text-transform:uppercase;
}
.hero-sub{ font-size:1.2rem; margin-top:-10px; margin-bottom:-0px;
    color:var(--hero-subtext); letter-spacing:2px; }

/* Navbar specific hero overrides */
.navbar .hero-section h1{ font-size:2.2rem;}
.navbar .hero-section h2{ font-size:1.1rem;}
.navbar .hero-section{ margin-top:1rem;}

.navbar-right-img{
    max-width: var(--logo-width);
    width: auto;
    height: var(--logo-height);
    object-fit: contain;
    margin-top: var(--logo-margin-top);
    transform: translateX(-20px);
    cursor:pointer;
}

.navbar-right-img:hover{
    transform:translateX(-20px) scale(1.05);
}

/* ===================== BUTTONS ==================== */
.cta-button{
    display:block; background:var(--cta-bg); color:#fff;
    padding:18px 45px; font-weight:bold;
    border-radius:var(--border-radius);
    text-decoration:none; transition:all var(--transition-speed);
    margin-bottom:30px; box-shadow:0 4px 15px rgba(0,0,0,.3);
}
.cta-button:hover{
    background:var(--cta-hover-bg); color:var(--cta-hover-text);
    transform:translateY(-3px);
    box-shadow:0 10px 25px rgba(145,57,57,.6);
}
/* Desktop CTA button width */
@media (min-width:769px){
    .cta-button{ display:inline-block; margin-bottom:20px;}
}
/* Mobile CTA button full width */
@media (max-width:768px){
    .cta-button{ width:100%; text-align:center; margin-bottom:25px;}
}

/* ===================== GENERAL LAYOUT & SKILLS ==================== */
.container{
    max-width:1400px; margin:auto;
    padding:0 40px;
}
footer#contact{
    max-width:100% !important; padding-left:0 !important; padding-right:0 !important;
}
.section-title{
    font-size:1.2rem; margin-bottom:30px; text-align:center;
    border-bottom:2px solid var(--primary-color); display:flow-root;
    padding-bottom:40px;
}
#about{ padding-bottom:80px;}
.skill-grid{
    display:flex; flex-wrap:wrap; gap:15px;
    justify-content:center; margin-top:20px;
}
.skill-badge{
    background:var(--card-bg); border:1px solid var(--primary-color);
    padding:15px 30px; font-size:.85rem; text-transform:uppercase;
    border-radius:var(--border-radius); transition:var(--transition-speed);
}
.skill-badge:hover{ background:var(--primary-color); color:#fff;
    transform:scale(1.05); }

/* ===================== PROJECT GRID & MEDIA ==================== */
.project-grid{
    display:grid; gap:20px;
    grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
}
.mobile-grid{ grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); }
.project-card{
    background:var(--project-card-bg); border:5px solid var(--project-card-border);
    padding:10px; border-radius:var(--border-radius);
    transition:all var(--transition-speed); height:100%;
    display:flex; flex-direction:column;
}
.project-card:hover{
    transform:translateY(-8px); border-color:var(--project-card-hover-border);
    box-shadow:0 20px 40px rgba(0,0,0,.6);
}
.project-title{ margin-bottom:20px; font-size:.9rem; color:#9da19d;}
.mobile-format .media-placeholder{ aspect-ratio:9/16; }
.media-placeholder{
    position:relative; width:100%; margin-bottom:3px;
    background:#365574; border-radius:15px; overflow:hidden;
    aspect-ratio:16/9; border:2px solid rgba(57,71,97,.938);
}
.media-placeholder img,
.media-placeholder iframe,
.media-placeholder video{
    width:100%; height:100%; object-fit:cover;
}
.play-overlay{
    position:absolute; top:0; left:0; width:100%; height:100%;
    background:rgba(0,0,0,.6); display:flex;
    justify-content:center; align-items:center;
    cursor:pointer; opacity:0;
    transition:opacity var(--transition-speed), transform var(--transition-speed);
    z-index:5;
}
.project-card:hover .play-overlay{ opacity:1; transform:scale(1);}
.project-card[data-type="gallery"] .play-overlay{ opacity:0;}
.project-description{
    font-size:.85rem; margin-bottom:25px; color:#888;
    flex-grow:1;
}
.project-links{ display:flex; flex-wrap:wrap; gap:15px;}
.link-button{
    padding:12px 20px; font-size:.75rem; font-weight:bold;
    border-radius:4px; text-decoration:none; cursor:pointer;
    border:none; transition:var(--transition-speed);
}
.view-video-trigger::after{
    content:"\25B6"; font-size:1em;
    margin-left:10px; transition:transform var(--transition-speed);
    display:inline-block;
}
.view-video-trigger:hover::after{ content:"\23F8";}
.cta-view{ background:var(--primary-color); color:#fff;}
.cta-view:hover{ background:#fff; color:var(--primary-color);}
.secondary{
    background:transparent; border:1px solid var(--primary-color);
    color:var(--primary-color);
}
.secondary:hover{ background:rgba(145,57,57,.1); }

/* ===================== CAROUSEL & FOOTER ==================== */
.carousel-prev,
.carousel-next{
    position:absolute; top:90%; transform:translateY(-50%);
    background:rgba(0,0,0,.6); border:none;
    color:#fff; padding:12px; cursor:pointer;
    border-radius:10%; z-index:10;
}
.carousel-prev:hover,
.carousel-next:hover{ background:var(--primary-color);}
.carousel-prev{ left:-5px;}
.carousel-next{ right:-5px;}

footer{
    text-align:center; padding:100px 20px;
    background:var(--footer-bg); border-top:1px solid var(--primary-color);
}
.social-links{
    margin-top:40px; display:flex; justify-content:center;
    gap:40px;
}
.social-links a{ color:#fff; text-decoration:none;
    font-weight:bold; font-family:var(--font-headings);}
.social-links a:hover{ color:var(--social-link-hover); }
.footer-legal{
    margin-top:50px; font-size:.7rem; opacity:.6;
    border-top:1px solid rgba(255,255,255,.1);
    padding-top:20px;
}

/* ===================== MODAL OVERLAY ==================== */
.modal-overlay{
    position:fixed; top:0; left:0; width:100%; height:100%;
    background:var(--modal-overlay-bg); display:flex;
    justify-content:center; align-items:center; z-index:9999; padding:20px;
}
.hidden{ display:none !important;}
.modal-content{
    position:relative; width:95%; max-width:1200px;
    max-height:90vh; background:#1a1a1a;
    border:2px solid var(--primary-color);
    display:flex; justify-content:center; align-items:center;
}
.modal-content img,
.modal-content video{
    max-width:100%; max-height:90vh; object-fit:contain; display:block;
}
.modal-nav-btn{
    position:absolute; top:50%; transform:translateY(-50%);
    padding:25px; background:var(--modal-nav-btn-bg);
    border:2px solid var(--primary-color); color:#fff;
    border-radius:50%; cursor:pointer; z-index:10001;
    transition:all var(--transition-speed); font-size:1.5rem;
}
.modal-nav-btn:hover{
    background:var(--modal-nav-btn-hover-bg);
    transform:translateY(-50%) scale(1.1);
}
.modal-nav-btn.prev{ left:25px;}
.modal-nav-btn.next{ right:25px;}
.close-btn{
    position:fixed; top:20px; right:20px;
    background:none; border:none; color:white;
    font-size:3rem; cursor:pointer; z-index:10002;
}

/* ===================== DESKTOP STATS OVERLAY (SLIDING PANEL) ==================== */
.desktop-stats-overlay{
    position:fixed; top:220px; right:30px; width:260px;
    max-height:calc(100vh-220px); background:var(--desktop-stats-bg);
    backdrop-filter:blur(25px) saturate(1.3);
    z-index:9998; box-shadow:-4px 0 25px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.05);
    transform:translateY(-110%); transition:transform 1.5s cubic-bezier(.4,0,.2,1);
    overflow: hidden; padding: 25px 20px;
    border-radius:12px; border:1px solid rgba(255,255,255,.08);
}
.desktop-stats-overlay.active{ transform:translateY(0); }
.stats-content{
    text-align:center; padding:30px 25px; max-width:none; width:auto;
    max-height: calc(100vh - 320px);
    overflow-y: auto;
}
.stats-section{
    display:flex; align-items:center; justify-content:center;
    gap:20px; margin-bottom:18px; padding:15px 20px;
    background:var(--stats-section-bg); border:1px solid var(--stats-section-border);
    border-radius:8px; transition:transform .3s ease, box-shadow .3s ease;
}
.stats-section:hover{
    transform:translateY(-3px) scale(1.01);
    box-shadow:var(--stats-section-hover-boxshadow);
}
.stats-icon{ font-size:1.8rem;
    filter:drop-shadow(0 2px 4px rgba(51,64,65,.2)); }
.stats-info{
    display:flex; flex-direction:column; justify-content:center;
    align-items:center; text-align:center;
}
.stats-label{
    font-size:.75rem; color:#8a959d; letter-spacing:1px;
    text-transform:uppercase; margin-bottom:4px;
}
.stats-value{
    font-size:1.8rem; color:#fff; font-weight:bold;
    letter-spacing:2px; text-shadow:0 0 15px rgba(51,64,65,.5);
}
.stats-footer{
    margin-top:30px; padding:12px 25px;
    background:rgba(26,26,28,.9); border-radius:8px;
    font-size:.7rem; color:#7a858d; letter-spacing:1px;
    text-transform:uppercase;
}
.stats-close-btn{
    position:absolute; top:18px; right:18px;
    background:rgba(26,26,28,.9); border:1px solid rgba(51,64,65,.5);
    color:#fff; width:36px; height:36px; border-radius:50%;
    font-size:1.2rem; cursor:pointer; display:flex;
    align-items:center; justify-content:center;
    transition:all .3s ease; z-index:10;
}
.stats-close-btn:hover{
    background:rgba(51,64,65,.8);
    transform:rotate(90deg) scale(1.1);
}
/* Hide overlay on mobile/tablet */
@media (max-width:768px){
    .desktop-stats-overlay{ display:none !important;}
}

/* ==========================================================
   ==========      MOBILE‑ONLY STYLES (<= 768px)          ==========
   ========================================================== */

/* ------- Navbar & Overlay Adjustments -------- */
@media (max-width:768px){
    .navbar{
        padding:1rem 5%; flex-direction:row;
    }
    .nav-links{
        position:fixed; top:0; left:0; right:0; bottom:0;
        height:100vh; background-color:rgba(14,16,16,.1);
        backdrop-filter:blur(35px); -webkit-backdrop-filter:blur(35px);
        display:flex; flex-direction:column; justify-content:center;
        align-items:center; width:100%; padding:40px 0; gap:40px;
        opacity:0; visibility:hidden; transform:translateX(100%);
        z-index:9999; border:none; overflow:hidden;
        border-radius:0 !important;
    }
    .nav-links li, .nav-links a, .nav-links img{
        background:transparent !important;
    }
    .navbar.menu-open .nav-links{
        opacity:1; visibility:visible; transform:translateX(0);
    }
    /* Mobile close button styling */
    .menu-close-btn{ position:absolute; top:20px; right:20px; z-index:10000;}
    .menu-close-btn a{ color:#fff; font-size:3rem; display:block;
        width:auto; padding:0; background:transparent !important;}
    /* Reduce logo size on mobile */
        /* Banner height override for phone size (50% of viewport height) */
    .banner-container{
        min-height:unset; padding:10; height:50vh;
    }
    /* Scale only the image for phone view */
    .gif-banner img{
        transform:scale(2.0); transform-origin:center center;
        transition:transform var(--transition-speed);
    }
    .profile-pic{ width:120px; height:120px; margin-bottom:25px;}
     .hero-content h1{ font-size:3rem; letter-spacing:4px; white-space: nowrap;}
    /* Removed the old .banner-container { height: 50vh; } rule here */
    .cta-button{
        width:100%; text-align:center; margin-bottom:25px;
    }
    .modal-content{
        width:98%; max-height:85vh; border-width:1px;
    }
    .modal-nav-btn{ padding:20px; font-size:1.2rem;}
    .modal-nav-btn.prev{ left:15px;}
    .modal-nav-btn.next{ right:15px;}
    /* Standardize container padding for all sections on mobile */
    .container{ padding:0 20px !important;}
    /* Mobile hero scaling */
    #hero.hero-section{
        transform:scale(0.5);
        transform-origin:center center;
    }
    /* ----- Mobile Navbar Logo & Hero Centering ----- */
    .logo{ margin-left:-5px; }
    .hero-section{ position:absolute; left:50%; transform:translateX(-50%) scale(0.5); transform-origin:center center; }

     .navbar-right-img{ transform:none; }
    /* Hide robot GIF and overlays on mobile */
    .navbar-right-img, .hero-sub, .play-overlay{ display:none !important; }
}@media (max-width:480px){
    .hero-content h1{ font-size:2.5rem; white-space:nowrap;}
     .project-grid, .mobile-grid{ grid-template-columns:1fr; }
    .hero-content{
        display:flex;
        flex-direction:column;
        justify-content:center;
        align-items:center;
    }
    .hero-sub{margin-top:0;margin-bottom:0;}
    .hero-section{
        left:50% !important;
        transform:translate(-50%, 0) scale(0.5) !important;
    }

}
@media (max-width:768px){
    :root{
        --logo-width: 96px;
        --logo-height: calc(8.4vh);
        --logo-margin-top: 0.4rem;
    }
}

/* ------- Root Variable Overrides (desktop only) -------- */
:root{
    /* Logo controls */
    --logo-width: 150px;
    --logo-height: calc(10vh);
    --logo-margin-top: 0.4rem;

    /* Tweak these values to adjust the section layout */
    --fv-width:45%;                 /* Overall width of the module */
    --fv-horizontal-pos:auto;       /* Use 'auto' for center, or a value like 20px / 10% */
    --fv-vertical-pos:100px;        /* Top margin/positioning */
    --fv-scale:1;                   /* Overall scaling (e.g., 0.9, 1.1) */
}
/* Override subtitle color (desktop & mobile share this rule) */
.hero-sub{ color:var(--hero-subtext) !important; }

/* Added mobile scaling for swapping logo */
@media (max-width:768px){
    /* Adjust swapping logo size on mobile */
    #portfolio-logo {
        max-width: var(--logo-width);
        width:auto;
        height: var(--logo-height);
    }
}

