:root {
    --bg-color: #f8f9fc;
    --neon-blue: #0055ff;
    --neon-magenta: #ff0055;
    --neon-cyan: #00e5bc;
    --neon-green: #00e5bc; /* Added mapping for neon-green to fix eco toggle and metrics */
    --neon-violet: #7b2cbf;
    --glass-bg: rgba(255, 255, 255, 0.75);
    --glass-border: rgba(0, 0, 0, 0.06);
    --font-primary: 'Outfit', sans-serif;
    --font-mono: 'Space Grotesk', sans-serif;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* Lenis Smooth Scroll Styles */
html.lenis, html.lenis body {
    height: auto;
}
.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}
.lenis.lenis-stopped {
    overflow: hidden;
}
.lenis.lenis-scrolling iframe {
    pointer-events: none;
}

body {
    background-color: var(--bg-color);
    color: #0a0a0f;
    font-family: var(--font-primary);
    overflow-x: hidden;
    height: 100%;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 10px;
}
::-webkit-scrollbar-track {
    background: var(--bg-color);
}
::-webkit-scrollbar-thumb {
    background: #e2e2e9;
    border: 2px solid var(--bg-color);
    border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--neon-blue);
}

/* Grid Overlay & Stars (Light theme) */
.grid-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: 
        linear-gradient(rgba(0, 0, 0, 0.015) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 0, 0, 0.015) 1px, transparent 1px);
    background-size: 80px 80px;
    z-index: 1;
    pointer-events: none;
}

#nebulaCanvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    z-index: 0;
}

/* Background Glow Orbs */
.glow-orb {
    position: fixed;
    border-radius: 50%;
    filter: blur(40px); /* Reduced from 120px for 16x faster rendering */
    opacity: 0.45;
    z-index: 0;
    pointer-events: none;
    animation: floatOrb 20s infinite alternate ease-in-out;
    will-change: transform; /* Promote to GPU compositor layer */
}

.orb-1 {
    width: 450px;
    height: 450px;
    background: radial-gradient(circle, rgba(0, 85, 255, 0.25) 0%, rgba(0, 85, 255, 0.05) 50%, transparent 80%);
    top: 10%;
    left: -100px;
    animation-duration: 25s;
}

.orb-2 {
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, rgba(255, 0, 85, 0.18) 0%, rgba(255, 0, 85, 0.04) 50%, transparent 80%);
    bottom: 10%;
    right: -100px;
    animation-duration: 30s;
}

.orb-3 {
    width: 380px;
    height: 380px;
    background: radial-gradient(circle, rgba(0, 229, 188, 0.25) 0%, rgba(0, 229, 188, 0.05) 50%, transparent 80%);
    top: 40%;
    left: 60%;
    animation-duration: 20s;
}

@keyframes floatOrb {
    0% { transform: translate(0, 0) scale(1); }
    100% { transform: translate(60px, 40px) scale(1.1); }
}

/* Layout */
.scroll-layout {
    position: relative;
    z-index: 2;
}

/* Main Header */
.main-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 1.5rem 4rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 100;
    background: rgba(248, 249, 252, 0.75);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.logo {
    font-family: var(--font-mono);
    font-size: 1.8rem;
    font-weight: 800;
    color: #0a0a0f;
    letter-spacing: 0.1rem;
}

.logo span {
    color: var(--neon-blue);
}

.top-nav {
    display: flex;
    align-items: center;
    gap: 1.8rem;
}

.nav-link {
    text-decoration: none;
    color: #33333f;
    font-family: var(--font-mono);
    font-size: 1.05rem; /* Increased from 0.95rem for better readability */
    font-weight: 700;
    transition: color 0.3s ease, text-shadow 0.3s ease;
}

.nav-link:hover,
.nav-link.active {
    color: var(--neon-blue);
}

.nav-btn {
    background-color: var(--neon-blue);
    color: #ffffff;
    padding: 0.7rem 1.6rem;
    border-radius: 50px;
    box-shadow: 0 5px 15px rgba(0, 85, 255, 0.2);
    transition: 0.3s;
}

.nav-btn:hover {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(0, 85, 255, 0.35);
}

.menu-toggle {
    display: none;
}

/* Floating Dot Indicators Navigation */
.dot-nav {
    position: fixed;
    right: 3rem;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    z-index: 100;
}

.dot-link {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: rgba(10, 10, 15, 0.15);
    position: relative;
    transition: 0.3s;
}

.dot-link.active {
    background-color: var(--neon-blue);
    transform: scale(1.4);
    box-shadow: 0 0 10px rgba(0, 85, 255, 0.4);
}

.dot-link span {
    position: absolute;
    right: 25px;
    top: 50%;
    transform: translateY(-50%);
    background: #ffffff;
    color: #0a0a0f;
    padding: 0.3rem 0.8rem;
    border-radius: 6px;
    font-family: var(--font-mono);
    font-size: 0.8rem;
    font-weight: 700;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: 0.3s;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.05);
    border: 1px solid rgba(0, 0, 0, 0.04);
}

.dot-link:hover span {
    opacity: 1;
}

/* 1. HERO SECTION */
.hero-section {
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 0 2rem;
    position: relative;
}

.hero-content {
    max-width: 1100px;
}

.hero-title {
    font-family: var(--font-mono);
    font-size: 5.5rem;
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.12rem;
    color: #0a0a0f;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Blue brush stroke highlight */
.brush-highlight {
    position: relative;
    display: inline-block;
    color: #ffffff;
    z-index: 1;
    padding: 0 1.2rem;
}

.brush-highlight::before {
    content: '';
    position: absolute;
    bottom: 5px;
    left: 0;
    width: 100%;
    height: 80%;
    background: linear-gradient(90deg, #0055ff 0%, #00e5bc 100%);
    z-index: -1;
    transform: skewX(-12deg);
    border-radius: 4px;
    box-shadow: 0 5px 25px rgba(0, 85, 255, 0.3);
}

.scroll-down-hint {
    margin-top: 4rem;
    font-family: var(--font-mono);
    font-size: 0.9rem;
    letter-spacing: 0.3rem;
    color: #55555f; /* Darker grey for better readability in light mode */
    animation: bounce 2s infinite alternate;
}

/* 2. SCROLL SCENE (STICKY BACKDROP & NATURAL SCROLL TEXT OVERLAY) */
.scroll-scene {
    position: relative;
    min-height: 220vh; /* Scroll depth */
    width: 100%;
}

.sticky-wrapper {
    position: sticky;
    top: 0;
    height: 100vh;
    width: 100%;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1; /* Below scrolling text */
    visibility: hidden; /* Hide by default, toggle active via GSAP ScrollTrigger to save GPU */
}

/* Shattered Bust container */
.bust-container {
    position: absolute;
    width: 420px;
    height: 420px;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2;
    pointer-events: none;
}

.bust-part {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    will-change: transform;
}

.bust-part img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    /* Remove black background first with SVG luma matrix, then invert remaining head pixels to dark */
    filter: invert(0.95) contrast(1.3) brightness(0.95);
}

/* Rotating Neon Halo */
.bust-halo {
    position: absolute;
    width: 380px;
    height: 380px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0, 85, 255, 0.12) 0%, rgba(0, 229, 188, 0.08) 40%, transparent 70%);
    filter: blur(15px);
    z-index: 1;
    pointer-events: none;
    animation: rotateHalo 15s linear infinite;
}

@keyframes rotateHalo {
    0% { transform: rotate(0deg) scale(0.95); }
    50% { transform: rotate(180deg) scale(1.05); }
    100% { transform: rotate(360deg) scale(0.95); }
}

/* Floating Blocky Slabs (Glassmorphic & Neon) */
.floating-letter {
    position: absolute;
    font-family: var(--font-mono);
    font-size: 2.8rem;
    font-weight: 800;
    padding: 0.8rem 2rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 2px solid rgba(0, 0, 0, 0.04);
    z-index: 3;
    pointer-events: none;
    will-change: transform;
    transition: all 0.3s ease;
}

.letter-html {
    top: 15%;
    left: 15%;
    border-color: rgba(0, 85, 255, 0.25);
    color: var(--neon-blue);
    box-shadow: 0 15px 35px rgba(0, 85, 255, 0.08), 0 0 15px rgba(0, 85, 255, 0.05);
}

.letter-css {
    top: 20%;
    right: 15%;
    border-color: rgba(255, 0, 85, 0.25);
    color: var(--neon-magenta);
    box-shadow: 0 15px 35px rgba(255, 0, 85, 0.08), 0 0 15px rgba(255, 0, 85, 0.05);
}

.letter-js {
    bottom: 20%;
    left: 18%;
    border-color: rgba(0, 229, 188, 0.3);
    color: #00b395; /* slightly darker cyan for contrast */
    box-shadow: 0 15px 35px rgba(0, 229, 188, 0.08), 0 0 15px rgba(0, 229, 188, 0.05);
}

.letter-api {
    bottom: 15%;
    right: 18%;
    border-color: rgba(123, 44, 191, 0.25);
    color: var(--neon-violet);
    box-shadow: 0 15px 35px rgba(123, 44, 191, 0.08), 0 0 15px rgba(123, 44, 191, 0.05);
}

.bobbing-inner {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-sizing: border-box;
}

/* Futuristic UI Mockup Cards (Glowing borders) */
.ui-card {
    position: absolute;
    width: 320px;
    height: 220px;
    border-radius: 20px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid rgba(0, 85, 255, 0.15);
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.08), 
                0 0 25px rgba(0, 85, 255, 0.06);
    z-index: 4;
    pointer-events: none;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    will-change: transform, opacity;
}

.ui-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ui-card-glow {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(0, 85, 255, 0.08) 0%, transparent 100%);
    pointer-events: none;
}

.card-ui-1 {
    top: 22%;
    left: 10%;
}

.card-ui-2 {
    bottom: 22%;
    right: 12%;
    width: 200px;
    height: 350px; /* phone aspect ratio */
    border-radius: 24px;
}

/* Scrolling Content Wrapper (flows over sticky backdrop) */
.scroll-content-wrapper {
    position: relative;
    z-index: 10;
    width: 100%;
    height: 100vh;
    margin-top: -100vh; /* overlays on top of the 100vh sticky wrapper */
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: none;
}

/* ==========================================
   INTERACTIVE IDE DASHBOARD (SERVICES)
   ========================================== */
.ide-dashboard {
    pointer-events: auto;
    width: 880px;
    border-radius: 16px;
    background: #18181c;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 35px 80px rgba(0, 0, 0, 0.25);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    will-change: transform;
}

.ide-title-bar {
    background: #1e1e24;
    padding: 0.8rem 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.ide-dots {
    display: flex;
    gap: 8px;
}

.ide-dots span {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: inline-block;
}

.ide-dots .red { background-color: #ff5f56; }
.ide-dots .yellow { background-color: #ffbd2e; }
.ide-dots .green { background-color: #27c93f; }

.ide-title {
    font-family: var(--font-mono);
    font-size: 0.85rem;
    color: #8c8c96;
}

.ide-status {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--neon-cyan);
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 6px;
}

.status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: var(--neon-cyan);
    box-shadow: 0 0 8px var(--neon-cyan);
}

.ide-body {
    display: flex;
    height: 380px;
}

/* Sidebar Explorer */
.ide-sidebar {
    width: 200px;
    background: #121215;
    border-right: 1px solid rgba(255, 255, 255, 0.04);
    padding: 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ide-sidebar-title {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: #5b5b63;
    font-weight: 700;
    letter-spacing: 0.05rem;
}

.ide-tree {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.tree-folder {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: #b0b0b8;
    cursor: default;
    font-weight: 600;
}

.tree-item {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: #6c6c75;
    cursor: pointer;
    padding: 0.3rem 0.5rem 0.3rem 0.8rem;
    border-radius: 4px;
    transition: 0.2s ease;
    white-space: pre;
}

.tree-item:hover {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.03);
}

.tree-item.active {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.06);
    font-weight: 600;
}

/* Editor Area */
.ide-editor-area {
    flex: 1;
    display: flex;
    flex-direction: column;
    background: #0f0f12;
}

.ide-editor {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.ide-tab-bar {
    display: flex;
    background: #121215;
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.ide-tab {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: #6c6c75;
    padding: 0.6rem 1.2rem;
    border-right: 1px solid rgba(255, 255, 255, 0.03);
    cursor: pointer;
    transition: 0.2s ease;
}

.ide-tab:hover {
    color: #ffffff;
}

.ide-tab.active {
    color: #ffffff;
    background: #0f0f12;
    border-bottom: 2px solid var(--neon-blue);
}

.code-area {
    padding: 1.5rem;
    overflow-y: auto;
    font-family: monospace;
    font-size: 0.85rem;
    line-height: 1.6;
    color: #abb2bf;
    flex: 1;
}

.code-block {
    display: block;
}

.code-block.hidden {
    display: none;
}

.ln {
    color: #4b5263;
    margin-right: 1rem;
    user-select: none;
}

.kw { color: #c678dd; }
.fn { color: #61afef; }
.str { color: #98c379; }
.cmt { color: #5c6370; font-style: italic; }
.num { color: #d19a66; }

/* Live Output Panel */
.ide-output {
    height: 125px;
    background: #121215;
    border-top: 1px solid rgba(255, 255, 255, 0.04);
    padding: 0.8rem 1.5rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.output-title {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: #5b5b63;
    font-weight: 700;
}

.output-body {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    margin: 0.4rem 0;
}

.output-body.hidden {
    display: none;
}

.output-metric {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.75rem;
    font-family: var(--font-mono);
}

.metric-label {
    width: 90px;
    color: #8c8c96;
}

.metric-bar {
    flex: 1;
    height: 6px;
    background: #202025;
    margin: 0 1rem;
    border-radius: 3px;
    overflow: hidden;
}

.metric-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--neon-blue), var(--neon-cyan));
    border-radius: 3px;
    transition: width 0.5s ease-in-out;
}

.metric-val {
    color: #ffffff;
    width: 50px;
    text-align: right;
    font-weight: 600;
}

.output-status {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: #6c6c75;
    display: flex;
    gap: 15px;
}

.output-status .ok {
    color: var(--neon-cyan);
    margin-right: 3px;
}

/* ==========================================
   ROADMAP TIMELINE PANEL (VISION)
   ========================================== */
.roadmap-panel {
    pointer-events: auto;
    width: 880px;
    padding: 4rem;
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid var(--glass-border);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.07);
    text-align: left;
    will-change: transform;
}

.roadmap-header {
    text-align: center;
    margin-bottom: 3.5rem;
}

.roadmap-badge {
    font-family: var(--font-mono);
    font-size: 0.85rem;
    color: var(--neon-magenta);
    font-weight: 700;
    letter-spacing: 0.15rem;
    margin-bottom: 0.5rem;
}

.roadmap-header h2 {
    font-family: var(--font-mono);
    font-size: 2.2rem;
    font-weight: 800;
    background: linear-gradient(90deg, #0a0a0f, #666);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.roadmap-steps {
    display: flex;
    flex-direction: column;
    gap: 1.8rem;
}

.roadmap-step {
    display: flex;
    gap: 2rem;
    padding: 1.8rem 2.2rem;
    background: #ffffff;
    border-radius: 20px;
    border: 1px solid rgba(0, 0, 0, 0.03);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
    transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.roadmap-step:hover {
    border-color: rgba(255, 0, 85, 0.15);
    transform: translateY(-4px);
    box-shadow: 0 15px 35px rgba(255, 0, 85, 0.06);
}

.step-number {
    font-family: var(--font-mono);
    font-size: 2.5rem;
    font-weight: 800;
    color: #e5e5eb;
    line-height: 1;
}

.step-body {
    flex: 1;
}

.step-phase {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--neon-magenta);
    font-weight: 700;
    margin-bottom: 0.2rem;
}

.step-body h3 {
    font-family: var(--font-mono);
    font-size: 1.25rem;
    font-weight: 700;
    color: #0a0a0f;
    margin-bottom: 0.4rem;
}

.step-body p {
    color: #55555f;
    font-size: 0.95rem;
    line-height: 1.5;
    margin-bottom: 0.8rem;
}

.step-tags {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.8rem;
}

.step-tags span {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: #5b5b63;
    background: #f0f1f5;
    padding: 0.2rem 0.5rem;
    border-radius: 4px;
}

.step-bar {
    height: 4px;
    background: #f0f1f5;
    border-radius: 2px;
    overflow: hidden;
    margin-bottom: 0.6rem;
}

.step-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--neon-magenta), var(--neon-violet));
    border-radius: 2px;
}

.step-meta {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: #8c8c96;
}

.ok-txt {
    color: var(--neon-cyan);
    font-weight: 700;
}

/* ==========================================
   FINISHED PROJECTS SECTION (PORTFOLIO)
   ========================================== */
.portfolio-section {
    padding: 8rem 4rem;
    background: #f8f9fc;
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 10;
}

.portfolio-header {
    text-align: center;
    margin-bottom: 4rem;
    max-width: 700px;
}

.portfolio-badge {
    font-family: var(--font-mono);
    font-size: 0.85rem;
    color: var(--neon-blue);
    font-weight: 700;
    letter-spacing: 0.15rem;
    margin-bottom: 0.5rem;
    display: block;
}

.portfolio-header h2 {
    font-family: var(--font-mono);
    font-size: 3rem;
    font-weight: 800;
    margin-bottom: 1rem;
    color: #0a0a0f;
}

.portfolio-header p {
    color: #55555f;
    font-size: 1.1rem;
    line-height: 1.6;
}

.portfolio-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    max-width: 1200px;
    width: 100%;
}

.portfolio-card {
    background: #ffffff;
    border: 1px solid rgba(0, 0, 0, 0.05);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.03);
    border-radius: 24px;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    overflow: hidden;
}

.portfolio-card:hover {
    border-color: rgba(0, 85, 255, 0.15);
    transform: translateY(-8px);
    box-shadow: 0 25px 55px rgba(0, 85, 255, 0.08);
}

.p-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 700;
}

.p-category {
    color: var(--neon-blue);
    font-family: var(--font-mono);
}

.p-status {
    color: var(--neon-cyan);
    background: rgba(0, 229, 188, 0.08);
    padding: 0.2rem 0.6rem;
    border-radius: 50px;
}

.portfolio-card h3 {
    margin: 1.2rem 0 0.5rem 0;
    font-family: var(--font-mono);
    font-size: 1.4rem;
    font-weight: 800;
    color: #0a0a0f;
}

.portfolio-card p {
    color: #55555f;
    font-size: 0.9rem;
    line-height: 1.5;
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.p-card-img-wrapper {
    background: #f0f1f5;
    height: 160px;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.04);
}

.p-card-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.portfolio-card:hover .p-card-img-wrapper img {
    transform: scale(1.06) translateZ(0);
}

.p-card-stats {
    display: flex;
    justify-content: space-between;
    margin-top: 1.5rem;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    padding-top: 1rem;
}

.p-stat {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.p-stat span {
    font-size: 0.7rem;
    color: #888;
    font-family: var(--font-mono);
}

.p-stat strong {
    font-size: 1.1rem;
    color: #0a0a0f;
    font-weight: 700;
}

/* Portfolio Extra Cards & Show More Button */
.portfolio-card.portfolio-extra.is-hidden {
    display: none !important;
}

.portfolio-card.portfolio-extra {
    animation: portfolioFadeIn 0.45s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes portfolioFadeIn {
    from {
        opacity: 0;
        transform: translateY(24px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.portfolio-load-more {
    display: flex;
    justify-content: center;
    margin-top: 45px;
    width: 100%;
}

.btn-portfolio-more {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 0.95rem 2.4rem;
    font-family: var(--font-mono);
    font-size: 0.88rem;
    font-weight: 700;
    letter-spacing: 1px;
    color: #ffffff;
    background: rgba(14, 14, 22, 0.8);
    border: 1px solid rgba(0, 229, 188, 0.3);
    border-radius: 50px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4), 0 0 15px rgba(0, 229, 188, 0.1);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
    cursor: none !important;
}

.btn-portfolio-more:hover {
    background: rgba(0, 229, 188, 0.12);
    border-color: var(--neon-cyan, #00f0ff);
    color: var(--neon-cyan, #00f0ff);
    box-shadow: 0 8px 30px rgba(0, 229, 188, 0.25), 0 0 25px rgba(0, 229, 188, 0.2);
    transform: translateY(-3px);
}

.btn-more-icon {
    display: inline-block;
    transition: transform 0.35s ease;
    font-size: 1.1rem;
    color: var(--neon-cyan, #00f0ff);
}

.btn-portfolio-more.is-expanded .btn-more-icon {
    transform: rotate(180deg);
}

body:not(.dark-theme) .btn-portfolio-more {
    background: #ffffff;
    color: #121217;
    border-color: rgba(0, 85, 255, 0.3);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
}

body:not(.dark-theme) .btn-portfolio-more:hover {
    background: rgba(0, 85, 255, 0.05);
    border-color: var(--neon-blue);
    color: var(--neon-blue);
    box-shadow: 0 8px 25px rgba(0, 85, 255, 0.15);
}

body:not(.dark-theme) .btn-more-icon {
    color: var(--neon-blue);
}

/* Button & Nav Styling */
.button-group {
    display: flex;
    gap: 15px;
    justify-content: center;
}

/* Buttons */
.btn {
    font-family: var(--font-mono);
    font-size: 0.95rem;
    font-weight: 700;
    padding: 0.9rem 1.8rem;
    border-radius: 50px;
    cursor: pointer;
    transition: 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    border: none;
}

.btn-primary {
    background-color: var(--neon-blue);
    color: #ffffff;
    box-shadow: 0 5px 15px rgba(0, 85, 255, 0.2);
}

.btn-primary:hover {
    transform: scale(1.05);
    box-shadow: 0 8px 25px rgba(0, 85, 255, 0.4);
}

.btn-secondary {
    background: #ffffff;
    color: #0a0a0f;
    border: 1px solid rgba(0, 0, 0, 0.1);
}

.btn-secondary:hover {
    border-color: #0a0a0f;
    transform: scale(1.05);
}

.btn-cta {
    background-color: var(--neon-magenta);
    color: #ffffff;
    font-size: 1.15rem;
    padding: 1.1rem 3rem;
    box-shadow: 0 5px 20px rgba(255, 0, 85, 0.25);
}

.btn-cta:hover {
    transform: scale(1.06);
    box-shadow: 0 10px 30px rgba(255, 0, 85, 0.45);
}

/* 3. SCENE PORTAL */
.portal-container {
    position: absolute;
    width: 600px;
    height: 600px;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1;
    pointer-events: none;
}

.portal-ring {
    width: 520px;
    height: 520px;
    border-radius: 50%;
    border: 4px dashed var(--neon-magenta);
    box-shadow: 0 0 30px rgba(255, 0, 85, 0.2), inset 0 0 30px rgba(255, 0, 85, 0.2);
    animation: rotatePortal 25s linear infinite;
    will-change: transform;
}

.portal-glow {
    position: absolute;
    width: 480px;
    height: 480px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 0, 85, 0.08) 0%, transparent 70%);
}

.portal-snake {
    position: absolute;
    width: 320px;
    height: 320px;
    z-index: 3;
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: none;
}

/* Flying objects */
.flying-obj {
    position: absolute;
    font-family: var(--font-mono);
    font-size: 4rem;
    color: var(--neon-blue);
    text-shadow: 0 0 15px rgba(0, 85, 255, 0.2);
    z-index: 4;
    pointer-events: none;
    will-change: transform;
}

.obj-code {
    top: 20%;
    left: 20%;
}

.obj-device {
    top: 25%;
    right: 22%;
}

.mini-phone {
    width: 65px;
    height: 120px;
    border: 2px solid var(--neon-blue);
    border-radius: 12px;
    position: relative;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: 0 10px 25px rgba(0, 85, 255, 0.1);
}

.mini-phone .notch {
    width: 25px;
    height: 6px;
    background: var(--neon-blue);
    border-radius: 0 0 4px 4px;
    margin: 0 auto;
}

.mini-phone .screen-content {
    position: absolute;
    top: 15px;
    left: 6px;
    right: 6px;
    bottom: 6px;
    border: 1px dashed rgba(0, 85, 255, 0.2);
    border-radius: 6px;
}

.obj-db {
    bottom: 22%;
    left: 23%;
}

.db-cylinder {
    width: 60px;
    height: 80px;
    border: 2px solid var(--neon-blue);
    border-radius: 8px;
    position: relative;
    background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(0,85,255,0.05) 100%);
    box-shadow: 0 10px 25px rgba(0, 85, 255, 0.1);
}

.db-cylinder::before, .db-cylinder::after {
    content: '';
    position: absolute;
    left: -1px;
    width: 100%;
    height: 15px;
    border: 2px solid var(--neon-blue);
    border-radius: 50%;
    background: #fff;
}

.db-cylinder::before { top: 20px; }
.db-cylinder::after { top: 40px; }

.obj-gear {
    bottom: 20%;
    right: 25%;
    font-size: 4.5rem;
    animation: rotateGear 10s linear infinite;
}

/* 4. STATS & TEAM SECTION */
.team-section {
    min-height: 100vh;
    padding: 8rem 4rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
}

.team-container {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 80px;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
}

/* Stats list */
.stats-left {
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.stat-item {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

.stat-num {
    font-family: var(--font-mono);
    font-size: 3rem;
    font-weight: 800;
    color: var(--neon-blue);
    line-height: 1;
}

.stat-text h3 {
    font-family: var(--font-mono);
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.stat-text p {
    color: #44444f;
    font-size: 1.05rem;
    line-height: 1.5;
}

/* Polaroid stack */
.polaroid-right {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 450px;
    position: relative;
}

.polaroid-stack {
    position: relative;
    width: 300px;
    height: 380px;
}

.polaroid-card {
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #ffffff;
    color: #111116;
    padding: 1.2rem;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(0, 0, 0, 0.02);
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    transform-origin: center bottom;
    transition: transform 0.5s ease;
    will-change: transform;
}

.card-img {
    flex-grow: 1;
    background-color: #f1f2f6;
    border-radius: 2px;
    margin-bottom: 1.2rem;
    overflow: hidden;
    position: relative;
}

.card-caption {
    font-family: var(--font-mono);
    font-size: 1rem;
    font-weight: 700;
    text-align: center;
    letter-spacing: -0.02rem;
}

/* Custom polaroid contents (light theme) */
.mock-code {
    padding: 1rem 0.9rem;
    font-family: var(--font-mono, monospace);
    font-size: 0.72rem;
    line-height: 1.5;
    background: #09090f;
    color: #e2e2e9;
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    border-radius: 4px;
}
.mock-code pre {
    margin: 0;
    white-space: pre;
    font-family: inherit;
}
.mock-code code {
    font-family: inherit;
}
.mock-code .c-comment { color: #6b6b7f; font-style: italic; display: block; margin-bottom: 3px; }
.mock-code .c-kw { color: #ff007f; font-weight: bold; }
.mock-code .c-key { color: var(--neon-cyan, #00f0ff); }
.mock-code .c-val { color: #00e5bc; }
.mock-code .c-num { color: #ffaa00; }

.mock-ui {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 0.9rem;
    background: #0a0a10;
    gap: 12px;
}
.mock-browser-bar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.m-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}
.m-dot.red { background: #ff5f56; }
.m-dot.yellow { background: #ffbd2e; }
.m-dot.green { background: #27c93f; }
.m-url {
    margin-left: auto;
    font-family: var(--font-mono);
    font-size: 0.65rem;
    color: #6b6b7f;
}
.mock-dash-preview {
    display: flex;
    gap: 10px;
    flex-grow: 1;
    align-items: center;
}
.dash-sidebar {
    width: 32px;
    height: 100%;
    min-height: 75px;
    background: rgba(0, 85, 255, 0.15);
    border-radius: 4px;
    border: 1px solid rgba(0, 85, 255, 0.25);
}
.dash-content {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex-grow: 1;
}
.dash-block {
    height: 24px;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 4px;
    border-left: 3px solid var(--neon-cyan, #00f0ff);
}
.dash-block.short {
    width: 70%;
    height: 18px;
    border-left-color: #00e5bc;
}

.mock-deploy {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #090910;
    padding: 1rem;
}
.score-badge-mock {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}
.score-circle {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    border: 4px solid #00e5bc;
    box-shadow: 0 0 20px rgba(0, 229, 188, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-mono);
    font-size: 1.5rem;
    font-weight: 800;
    color: #00e5bc;
}
.score-label {
    font-family: var(--font-mono);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 1px;
    color: #8c8c96;
}

/* Fan arrangement */
.card-1 { transform: rotate(-8deg); z-index: 3; }
.card-2 { transform: rotate(0deg); z-index: 2; }
.card-3 { transform: rotate(8deg); z-index: 1; }

.team-footer {
    width: 100%;
    margin-top: 6rem;
    text-align: center;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    padding-top: 2rem;
}

.role-list {
    font-family: var(--font-mono);
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: 0.15rem;
    color: #666;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}

.role-list .dot {
    color: var(--neon-blue);
}

/* 5. METEORS & CTA SECTION */
.meteors-section {
    height: 120vh;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.meteor-container {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    z-index: 1;
    pointer-events: none;
    will-change: transform;
}

.meteor-img {
    width: 140px;
    height: 140px;
    object-fit: contain;
    /* Remove black square background from asteroid images using SVG filter matrix */
    filter: drop-shadow(0 15px 30px rgba(0, 85, 255, 0.15));
}

.meteor-label {
    margin-top: 1rem;
    font-family: var(--font-mono);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.15rem;
    border: 1px solid rgba(0, 0, 0, 0.08);
    padding: 0.5rem 1.2rem;
    border-radius: 50px;
    background: rgba(255, 255, 255, 0.9);
    color: #0a0a0f; /* Fix: explicit dark text color for light mode */
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.04);
}

/* Technology Meteor Positions (6 elements balanced) */
.mc-react { top: 10%; left: 8%; }
.mc-node { top: 12%; right: 8%; }
.mc-gsap { bottom: 12%; left: 10%; }
.mc-webgl { bottom: 10%; right: 10%; }
.mc-ts { top: 45%; left: 12%; }
.mc-next { top: 48%; right: 12%; }

/* CTA Box */
.cta-center {
    max-width: 750px;
    text-align: center;
    z-index: 10;
    padding: 3rem;
}

.cta-center h2 {
    font-family: var(--font-mono);
    font-size: 4rem;
    font-weight: 800;
    letter-spacing: -0.1rem;
    margin-bottom: 1.5rem;
    color: #0a0a0f;
}

.cta-center p {
    color: #44444f;
    font-size: 1.25rem;
    line-height: 1.6;
    margin-bottom: 3.5rem;
}

/* 6. MARQUEE FOOTER */
.marquee-footer {
    overflow: hidden;
    white-space: nowrap;
    background: #ffffff;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    padding: 3rem 0;
    width: 100%;
    position: relative;
    z-index: 10;
    box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.015);
}

.marquee-content {
    display: inline-block;
    animation: marqueeAnimation 45s linear infinite; /* Slowed down from 25s for a more premium, relaxed scroll */
    font-family: var(--font-mono);
    font-size: 2.8rem;
    font-weight: 800;
    letter-spacing: 0.05rem;
    color: #0a0a0f;
}

.crossed-out {
    text-decoration: line-through;
    color: var(--neon-magenta);
}

/* ==========================================
   PROJECT WIZARD MODAL STYLING
   ========================================== */
.project-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.project-modal.active {
    display: flex;
}

.modal-overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(10, 10, 15, 0.5);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.modal-content {
    position: relative;
    background: #0f1015;
    color: #ffffff;
    border-radius: 24px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    width: 580px;
    max-width: 92vw;
    max-height: 90vh;
    overflow-y: auto;
    padding: 2.5rem;
    z-index: 1010;
    box-shadow: 0 35px 90px rgba(0, 0, 0, 0.5);
    text-align: left;
    will-change: transform, opacity;
}

.modal-close {
    position: absolute;
    top: 25px;
    right: 25px;
    font-size: 2rem;
    background: none;
    border: none;
    color: #5b5b63;
    cursor: pointer;
    transition: 0.2s;
    line-height: 1;
}

.modal-close:hover {
    color: #ffffff;
}

.modal-header {
    text-align: center;
    margin-bottom: 2rem;
}

.modal-header h2 {
    font-family: var(--font-mono);
    font-size: 1.8rem;
    color: #ffffff;
    font-weight: 700;
}

.modal-header p {
    font-size: 0.9rem;
    color: #8c8c96;
    margin-top: 0.5rem;
}

.modal-type-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-top: 0.5rem;
}

.modal-type-option {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 0.8rem 1rem;
    background: #18181c;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 12px;
    cursor: pointer;
    font-size: 0.9rem;
    font-weight: 500;
    color: #b0b0bb;
    transition: all 0.2s ease;
    user-select: none;
}

.modal-type-option:hover {
    background: #202025;
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.15);
}

.modal-type-option input[type="radio"] {
    display: none;
}

.modal-type-option.checked-active {
    border-color: var(--neon-cyan);
    background: rgba(0, 229, 188, 0.06);
    color: #ffffff;
    box-shadow: 0 0 12px rgba(0, 229, 188, 0.15);
}

.form-group {
    margin-bottom: 1.5rem;
}

.group-label {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.85rem;
    color: #8c8c96;
    margin-bottom: 0.8rem;
}

.form-group label:not(.group-label):not(.radio-option) {
    display: block;
    font-family: var(--font-mono);
    font-size: 0.85rem;
    color: #8c8c96;
    margin-bottom: 0.5rem;
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group input[type="tel"],
.modal-project-form textarea {
    width: 100%;
    padding: 0.9rem 1.2rem;
    background: #18181c;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    color: #ffffff;
    font-size: 0.95rem;
    font-family: var(--font-primary);
    transition: 0.3s;
    outline: none;
}

.modal-project-form textarea {
    resize: vertical;
}

.form-group input:focus,
.modal-project-form textarea:focus {
    border-color: var(--neon-cyan);
    outline: none;
    box-shadow: 0 0 12px rgba(0, 229, 188, 0.15);
}

.modal-project-form input::placeholder,
.modal-project-form textarea::placeholder {
    color: rgba(255, 255, 255, 0.35);
}

.radio-options {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.radio-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 1rem 1.2rem;
    background: #18181c;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 12px;
    cursor: pointer;
    font-size: 0.95rem;
    color: #e5e5eb;
    transition: 0.2s ease;
}

.radio-option:hover {
    background: #202025;
    border-color: rgba(255, 255, 255, 0.15);
}

.radio-option input[type="radio"] {
    display: none;
}

.custom-radio {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid #5b5b63;
    display: inline-block;
    position: relative;
    flex-shrink: 0;
}

.radio-option input:checked + .custom-radio {
    border-color: var(--neon-cyan);
}

.radio-option input:checked + .custom-radio::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--neon-cyan);
    box-shadow: 0 0 6px var(--neon-cyan);
}

.radio-option.checked-active {
    border-color: var(--neon-cyan);
    background: rgba(0, 229, 188, 0.03);
}

.success-icon {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: rgba(0, 229, 188, 0.08);
    border: 2px solid var(--neon-cyan);
    color: var(--neon-cyan);
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 2rem;
    margin: 0 auto 1.5rem auto;
    box-shadow: 0 0 20px rgba(0, 229, 188, 0.2);
}

.summary-box {
    background: #18181c;
    border: 1px solid rgba(255, 255, 255, 0.05);
    padding: 1.2rem;
    border-radius: 12px;
    text-align: left;
    font-size: 0.85rem;
    color: #8c8c96;
    margin-top: 1.5rem;
    line-height: 1.6;
}

.summary-box strong {
    color: #ffffff;
}

.modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 15px;
    margin-top: 2.5rem;
}

.btn-back {
    background: #18181c;
    color: #ffffff;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.btn-back:hover {
    background: #202025;
}

.btn-next {
    background-color: #ffffff;
    color: #000000;
}

.btn-next:hover {
    background-color: #f0f0f5;
}

.hidden {
    display: none !important;
}

.mt-3 {
    margin-top: 1rem;
}

/* Keyframes */
@keyframes bounce {
    from { transform: translateY(0); }
    to { transform: translateY(12px); }
}

@keyframes rotatePortal {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes rotateGear {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes marqueeAnimation {
    0% { transform: translate3d(0, 0, 0); }
    100% { transform: translate3d(-50%, 0, 0); }
}

/* Responsive adjustments */
@media (max-width: 1024px) {
    .main-header { padding: 1.5rem 2rem; }
    .hero-title { font-size: 3.5rem; }
    .team-container { grid-template-columns: 1fr; gap: 60px; }
    .polaroid-right { height: 350px; }
    .floating-letter { font-size: 4rem; padding: 0.6rem 1.8rem; }
    .meteor-img { width: 100px; height: 100px; }
    .cta-center h2 { font-size: 2.8rem; }
    .marquee-content { font-size: 2rem; }
    .role-list { font-size: 0.9rem; letter-spacing: 0.08rem; }
    .ide-dashboard { width: 92%; }
    .roadmap-panel { width: 92%; padding: 2.5rem; }
    .portfolio-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .card-ui-1 { left: 4%; width: 280px; }
    .card-ui-2 { right: 4%; }
}

@media (max-width: 768px) {
    .top-nav { display: none; }
    .menu-toggle { display: flex; }
    .hero-title { font-size: 2.5rem; }
    .ide-dashboard { width: 95%; }
    .ide-body { flex-direction: column; height: auto; }
    .ide-sidebar { width: 100%; border-right: none; border-bottom: 1px solid rgba(255, 255, 255, 0.04); }
    .roadmap-panel { width: 95%; padding: 1.8rem; }
    .roadmap-header h2 { font-size: 1.8rem; }
    .roadmap-step { flex-direction: column; gap: 1rem; padding: 1.5rem; }
    .portfolio-grid { grid-template-columns: 1fr; gap: 20px; }
    .portfolio-section { padding: 6rem 2rem; }
    .portal-ring { width: 340px; height: 340px; }
    .portal-glow { width: 300px; height: 300px; }
    .flying-obj { font-size: 2.5rem; }
    .obj-gear { font-size: 3rem; }
    .mini-phone { width: 50px; height: 90px; }
    .db-cylinder { width: 45px; height: 60px; }
    .stat-num { font-size: 2.2rem; }
    .stat-text h3 { font-size: 1.3rem; }
    .stat-text p { font-size: 0.95rem; }
    .dot-nav { display: none; }
    .ui-card { display: none; } /* Hide flying UI cards on mobile to prevent clutter */
    .modal-content { width: 92%; padding: 2rem 1.5rem; }
}

/* ==========================================
   SCROLL READING PROGRESS BAR (NEW)
   ========================================== */
.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    width: 0%;
    height: 4px;
    background: linear-gradient(90deg, var(--neon-blue), var(--neon-cyan), var(--neon-magenta));
    z-index: 10000;
    box-shadow: 0 0 12px rgba(0, 85, 255, 0.4);
    pointer-events: none;
    transition: width 0.08s linear;
}

/* ==========================================
   CUSTOM NEON CURSOR & LAG DOT (NEW)
   ========================================== */
.custom-cursor {
    position: fixed;
    width: 32px;
    height: 32px;
    border: 1.5px solid var(--neon-blue);
    border-radius: 50%;
    pointer-events: none;
    z-index: 99999;
    transform: translate(-50%, -50%);
    transition: transform 0.08s cubic-bezier(0.25, 1, 0.5, 1);
    box-shadow: 0 0 12px rgba(0, 85, 255, 0.15);
    mix-blend-mode: difference;
}
.custom-cursor-dot {
    position: fixed;
    width: 6px;
    height: 6px;
    background-color: var(--neon-cyan);
    border-radius: 50%;
    pointer-events: none;
    z-index: 99999;
    transform: translate(-50%, -50%);
    box-shadow: 0 0 8px var(--neon-cyan);
    mix-blend-mode: difference;
}
/* Hide default cursor on desktop width */
@media (min-width: 1025px) {
    body, a, button, select, input, label, .tree-item, .ide-tab, .faq-question {
        cursor: none !important;
    }
}

/* ==========================================
   FAQ ACCORDION SECTION (NEW)
   ========================================== */
.faq-section {
    background: #ffffff;
    padding: 8rem 2rem;
    position: relative;
    border-top: 1px solid rgba(0, 0, 0, 0.04);
}
.faq-container {
    max-width: 900px;
    margin: 0 auto;
    width: 100%;
    text-align: left;
}
.faq-header {
    text-align: center;
    margin-bottom: 4rem;
}
.faq-badge {
    font-family: var(--font-mono);
    font-size: 0.85rem;
    color: var(--neon-blue);
    font-weight: 700;
    letter-spacing: 0.15rem;
    margin-bottom: 0.5rem;
}
.faq-header h2 {
    font-family: var(--font-mono);
    font-size: 2.2rem;
    font-weight: 800;
    color: #0a0a0f;
}
.faq-list {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
}
.faq-item {
    background: rgba(255, 255, 255, 0.8);
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.02);
    transition: 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.faq-item:hover {
    border-color: rgba(0, 85, 255, 0.15);
    box-shadow: 0 12px 35px rgba(0, 85, 255, 0.04);
}
.faq-question {
    padding: 1.8rem 2rem;
    font-family: var(--font-mono);
    font-size: 1.15rem;
    font-weight: 700;
    color: #0a0a0f;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    user-select: none;
}
.faq-icon {
    font-size: 1.4rem;
    font-weight: 400;
    color: var(--neon-blue);
    transition: transform 0.3s ease;
}
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.faq-answer-content {
    padding: 0 2rem 1.8rem 2rem;
    color: #55555f;
    font-size: 1rem;
    line-height: 1.6;
}
.faq-item.active .faq-icon {
    transform: rotate(45deg);
    color: var(--neon-magenta);
}
.faq-item.active {
    border-color: rgba(0, 85, 255, 0.2);
    background: #ffffff;
}

/* ==========================================
   IDE TREE HOVER EFFECTS & ICONS (NEW)
   ========================================== */
.tree-item {
    transition: all 0.25s ease;
    position: relative;
    padding-left: 1.6rem !important;
    border-left: 2px solid transparent;
}
.tree-item:hover {
    background: rgba(255, 255, 255, 0.03);
    color: #ffffff;
    border-left-color: rgba(255, 255, 255, 0.15);
}
.tree-item.active {
    border-left-color: var(--neon-blue) !important;
}
.tree-item[data-service="design"]::before {
    content: '🎨';
    position: absolute;
    left: 4px;
    font-size: 0.8rem;
}
.tree-item[data-service="dev"]::before {
    content: '💻';
    position: absolute;
    left: 4px;
    font-size: 0.8rem;
}
.tree-item[data-service="api"]::before {
    content: '🔌';
    position: absolute;
    left: 4px;
    font-size: 0.8rem;
}

/* ==========================================
   PRICING ESTIMATE BAR IN WIZARD (NEW)
   ========================================== */
.pricing-calculator-bar {
    background: rgba(0, 85, 255, 0.04);
    border: 1px solid rgba(0, 85, 255, 0.08);
    border-radius: 12px;
    padding: 0.8rem 1.2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
    font-family: var(--font-mono);
}
.pricing-calculator-bar span {
    font-size: 0.75rem;
    color: #8c8c96;
    font-weight: 700;
    letter-spacing: 0.08rem;
}
.pricing-calculator-bar strong {
    font-size: 1.15rem;
    color: var(--neon-blue);
    font-weight: 800;
    text-shadow: 0 0 10px rgba(0, 85, 255, 0.15);
}

/* ==========================================
   SCROLL REVEAL UTILITIES (NEW)
   ========================================== */
.reveal-title {
    opacity: 0;
    transform: translateY(30px);
    will-change: transform, opacity;
}

/* ==========================================
   CYBERPUNK PRELOADER SCREEN (NEW)
   ========================================== */
.preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #050508;
    z-index: 100000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.6s ease, visibility 0.6s ease;
}
.preloader-content {
    width: 320px;
    text-align: center;
}
.preloader-logo {
    font-family: var(--font-mono);
    font-size: 2.2rem;
    font-weight: 800;
    color: #ffffff;
    letter-spacing: -0.05rem;
    margin-bottom: 2rem;
}
.preloader-logo span {
    color: var(--neon-blue);
    text-shadow: 0 0 12px rgba(0, 85, 255, 0.4);
}
.preloader-bar {
    width: 100%;
    height: 3px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 2px;
    overflow: hidden;
    margin-bottom: 1rem;
}
.preloader-fill {
    width: 0%;
    height: 100%;
    background: linear-gradient(90deg, var(--neon-blue), var(--neon-cyan));
    box-shadow: 0 0 10px var(--neon-blue);
    transition: width 0.15s ease-out;
}
.preloader-status {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: #55555f;
    letter-spacing: 0.05rem;
}

/* ==========================================
   INTERACTIVE PORTFOLIO TERMINAL MODAL (NEW)
   ========================================== */
.terminal-modal-content {
    max-width: 900px !important;
    width: 95% !important;
    background: #08080c !important;
    border: 1px solid rgba(0, 229, 188, 0.25) !important;
    box-shadow: 0 25px 70px rgba(0, 0, 0, 0.8), 0 0 40px rgba(0, 229, 188, 0.15) !important;
    padding: 0 !important;
    overflow: hidden;
    border-radius: 16px !important;
}
.terminal-titlebar {
    background: #0e0e15;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    padding: 0.9rem 1.4rem;
    display: flex;
    align-items: center;
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: #8c8c96;
}
.terminal-title {
    margin-left: 1rem;
    letter-spacing: 1px;
}
.terminal-body {
    padding: 0;
    min-height: auto;
    max-height: 85vh;
    overflow-y: auto;
    text-align: left;
    background: #050508;
}

/* Lightbox preview */
.project-lightbox-preview {
    display: flex;
    flex-direction: column;
    width: 100%;
}
.lightbox-img-wrapper {
    width: 100%;
    max-height: 65vh;
    overflow: hidden;
    background: #000000;
    display: flex;
    justify-content: center;
    align-items: center;
}
.lightbox-img {
    width: 100%;
    height: auto;
    max-height: 65vh;
    object-fit: contain;
    display: block;
    transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 0.3s ease;
}
.lightbox-img-link {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    text-decoration: none;
    position: relative;
}
.lightbox-img-link:hover .lightbox-img {
    opacity: 0.94;
    transform: scale(1.015);
}
.lightbox-img-link::after {
    content: "OTEVŘÍT WEB ↗";
    position: absolute;
    bottom: 20px;
    right: 20px;
    background: rgba(10, 10, 15, 0.88);
    color: var(--neon-cyan, #00f0ff);
    font-family: var(--font-mono);
    font-size: 0.78rem;
    font-weight: 700;
    padding: 7px 15px;
    border-radius: 20px;
    border: 1px solid rgba(0, 240, 255, 0.4);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
    opacity: 0;
    transform: translateY(6px);
    transition: all 0.25s ease;
    pointer-events: none;
}
.lightbox-img-link:hover::after {
    opacity: 1;
    transform: translateY(0);
}
.lightbox-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.2rem 1.6rem;
    background: #0d0d14;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    flex-wrap: wrap;
    gap: 12px;
}
.lightbox-title-group h4 {
    color: #ffffff;
    font-family: var(--font-sans);
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: 4px;
}
.lightbox-meta {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--neon-cyan);
    letter-spacing: 0.5px;
}
.lightbox-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}
.lightbox-actions .btn-visit {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    padding: 0.5rem 1.1rem;
    border-radius: 8px;
    font-weight: 700;
    text-decoration: none;
    transition: 0.2s;
}
.lightbox-actions .btn-visit:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 15px rgba(0, 229, 188, 0.45);
}

/* Make portfolio cards look clickable like buttons */
.portfolio-card {
    cursor: none !important; /* Managed by custom cursor dot */
}

/* ==========================================
   PORTAL SNAKE ENHANCEMENTS (NEW)
   ========================================== */
.portal-snake {
    opacity: 0;
    transform: scale(0.05);
    will-change: transform, opacity;
}
.snake-slices {
    width: 320px;
    height: 320px;
    position: relative;
    overflow: visible;
}
.snake-slice {
    position: absolute;
    width: 100%;
    background-image: url('cyber_snake_aggressive.png');
    background-size: 320px 320px;
    background-repeat: no-repeat;
    will-change: transform, opacity;
}
.slice-1 { top: 0; height: 66px; background-position-y: 0px; }
.slice-2 { top: 64px; height: 66px; background-position-y: -64px; }
.slice-3 { top: 128px; height: 66px; background-position-y: -128px; }
.slice-4 { top: 192px; height: 66px; background-position-y: -192px; }
.slice-5 { top: 256px; height: 66px; background-position-y: -256px; }

/* ==========================================
   SCROLL NEON WIRE STYLES (NEW)
   ========================================== */
.scroll-wire-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}
.scroll-wire-svg {
    width: 100%;
    height: 100%;
}
.scroll-wire-path {
    fill: none;
    stroke: var(--neon-magenta);
    stroke-width: 2.5px;
    stroke-linecap: round;
    filter: drop-shadow(0 0 10px rgba(255, 0, 85, 0.8)) drop-shadow(0 0 4px rgba(255, 0, 85, 0.5));
    opacity: 0.65;
    will-change: stroke-dashoffset;
}

/* ==========================================
   INTERACTIVE CALCULATOR STYLES (NEW)
   ========================================== */
.calculator-section {
    position: relative;
    padding: 100px 5% 120px;
    background: #ffffff;
    z-index: 2;
    border-top: 1px solid rgba(0, 0, 0, 0.04);
}
.calculator-container {
    max-width: 1100px;
    margin: 0 auto;
}
.calculator-header {
    text-align: center;
    margin-bottom: 60px;
}
.calculator-badge {
    font-family: var(--font-mono);
    font-size: 0.9rem;
    color: var(--neon-magenta);
    letter-spacing: 2px;
    margin-bottom: 15px;
}
.calculator-header h2 {
    font-size: 2.8rem;
    font-weight: 800;
    margin-bottom: 20px;
    letter-spacing: -1px;
    color: #0a0a0f;
    text-shadow: none;
}
.calculator-header p {
    color: #55555f;
    max-width: 600px;
    margin: 0 auto;
    font-size: 1.1rem;
}
.calculator-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: start;
}
.calc-panel {
    background: rgba(240, 241, 245, 0.6);
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 16px;
    padding: 40px;
    backdrop-filter: blur(10px);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.03);
}
.results-panel {
    border-color: rgba(0, 229, 188, 0.15);
    box-shadow: 0 20px 50px rgba(0, 229, 188, 0.03);
}
.input-group label {
    font-family: var(--font-mono);
    font-size: 0.95rem;
    color: #0a0a0f;
    display: block;
    margin-bottom: 12px;
}
.calc-range {
    -webkit-appearance: none;
    width: 100%;
    height: 6px;
    background: #e2e2e9;
    border-radius: 3px;
    outline: none;
    margin-bottom: 10px;
}
.calc-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--neon-blue);
    cursor: pointer;
    box-shadow: 0 0 10px var(--neon-blue);
    transition: transform 0.2s;
}
.calc-range::-webkit-slider-thumb:hover {
    transform: scale(1.2);
}
#project-pages::-webkit-slider-thumb {
    background: var(--neon-magenta);
    box-shadow: 0 0 10px var(--neon-magenta);
}
.range-labels {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
    font-family: var(--font-mono);
    color: #55555f;
    padding-top: 5px;
}
.calc-checkboxes {
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.calc-cb-label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 0.95rem;
    color: #55555f;
    position: relative;
    user-select: none;
}
.calc-cb {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}
.cb-custom {
    height: 18px;
    width: 18px;
    background-color: #e2e2e9;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 4px;
    margin-right: 12px;
    display: inline-block;
    position: relative;
    transition: all 0.2s;
}
.calc-cb-label:hover .cb-custom {
    border-color: var(--neon-blue);
}
.calc-cb:checked ~ .cb-custom {
    background-color: var(--neon-blue);
    border-color: var(--neon-blue);
    box-shadow: 0 0 8px rgba(0, 229, 188, 0.4);
}
.cb-custom:after {
    content: "";
    position: absolute;
    display: none;
    left: 5px;
    top: 2px;
    width: 5px;
    height: 9px;
    border: solid black;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.calc-cb:checked ~ .cb-custom:after {
    display: block;
}
.result-box {
    text-align: center;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    padding-bottom: 25px;
    margin-bottom: 30px;
}
.result-label {
    font-family: var(--font-mono);
    font-size: 0.85rem;
    color: #55555f;
    letter-spacing: 1px;
    margin-bottom: 10px;
}
.result-value {
    font-size: 3.2rem;
    font-weight: 800;
    color: var(--neon-green);
    text-shadow: none; /* removed shadow for better light readability */
    font-family: var(--font-display);
}
.roi-metrics {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.roi-metric-header {
    display: flex;
    justify-content: space-between;
    font-size: 0.85rem;
    font-family: var(--font-mono);
    color: #0a0a0f;
}
.roi-bar {
    width: 100%;
    height: 6px;
    background: #e2e2e9;
    border-radius: 3px;
    overflow: hidden;
}
.roi-fill {
    height: 100%;
    background: var(--neon-green);
    border-radius: 3px;
    transition: width 0.4s ease-out;
}
#fill-roi { background: var(--neon-green); }
#fill-speed { background: var(--neon-blue); }
#fill-conversions { background: var(--neon-magenta); }

@media (max-width: 900px) {
    .calculator-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
}

/* ==========================================
   CASE STUDY OVERLAY STYLES (NEW)
   ========================================== */
.case-study-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(8, 8, 10, 0.95);
    backdrop-filter: blur(20px);
    z-index: 10000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease;
    padding: 20px;
}
.case-study-overlay.active {
    opacity: 1;
    pointer-events: auto;
}
.case-study-content {
    background: rgba(18, 18, 22, 0.85);
    border: 1px solid rgba(255, 0, 85, 0.2);
    box-shadow: 0 0 50px rgba(255, 0, 85, 0.15);
    border-radius: 20px;
    max-width: 1000px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    padding: 50px;
    position: relative;
}
.case-study-close {
    position: absolute;
    top: 25px;
    right: 30px;
    font-size: 2.2rem;
    color: #8c8c96;
    background: none;
    border: none;
    cursor: pointer;
    transition: color 0.2s;
}
.case-study-close:hover {
    color: var(--neon-magenta);
}
.case-study-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 50px;
}
.case-badge {
    font-family: var(--font-mono);
    font-size: 0.9rem;
    color: var(--neon-magenta);
    letter-spacing: 2px;
    margin-bottom: 15px;
}
.case-left h2 {
    font-size: 2.6rem;
    font-weight: 800;
    margin-bottom: 15px;
}
.case-meta {
    display: flex;
    gap: 20px;
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: #8c8c96;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    padding-bottom: 20px;
    margin-bottom: 30px;
}
.case-section {
    margin-bottom: 30px;
}
.case-section h3 {
    font-family: var(--font-mono);
    font-size: 1rem;
    letter-spacing: 1px;
    margin-bottom: 12px;
}
.case-section p {
    color: #c8c8d2;
    line-height: 1.6;
}
.performance-meters {
    display: flex;
    flex-direction: column;
    gap: 30px;
    align-items: center;
    margin-top: 20px;
}
.meter-box {
    position: relative;
    width: 100px;
    height: 100px;
    text-align: center;
}
.meter-svg {
    transform: rotate(-90deg);
    width: 100%;
    height: 100%;
}
.meter-bg {
    fill: none;
    stroke: #1e1e24;
    stroke-width: 8px;
}
.meter-fill {
    fill: none;
    stroke: var(--neon-green);
    stroke-width: 8px;
    stroke-linecap: round;
    transition: stroke-dashoffset 1s ease-out;
}
#meter-performance-fill { stroke: var(--neon-green); }
#meter-accessibility-fill { stroke: var(--neon-blue); }
#meter-seo-fill { stroke: var(--neon-magenta); }

.meter-number {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1.5rem;
    font-weight: 800;
    color: #fff;
    font-family: var(--font-display);
}
.meter-label {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    color: #8c8c96;
    margin-top: 8px;
    letter-spacing: 1px;
}
.case-cta-box {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.case-live-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, #00e5bc 0%, #0055ff 100%);
    color: #0a0a0f !important;
    font-family: var(--font-mono);
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.5px;
    text-decoration: none;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 229, 188, 0.35);
    transition: all 0.3s ease;
    text-transform: uppercase;
}
.case-live-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 28px rgba(0, 229, 188, 0.6);
    color: #000000 !important;
}

@media (max-width: 850px) {
    .case-study-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .case-study-content {
        padding: 30px;
    }
    .performance-meters {
        flex-direction: row;
        justify-content: space-around;
    }
}

/* ==========================================
   BACK TO TOP BUTTON STYLES (NEW)
   ========================================== */
.back-to-top {
    position: fixed;
    bottom: 30px;
    right: 30px;
    width: 50px;
    height: 50px;
    background: rgba(18, 18, 22, 0.75);
    border: 1px solid rgba(255, 0, 85, 0.3);
    box-shadow: 0 0 15px rgba(255, 0, 85, 0.15);
    border-radius: 50%;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: none !important;
    z-index: 999;
    opacity: 0;
    pointer-events: none;
    transform: translateY(20px);
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.back-to-top.visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
}
.back-to-top:hover {
    border-color: var(--neon-blue);
    box-shadow: 0 0 20px rgba(0, 229, 188, 0.3);
    color: var(--neon-blue);
}
.back-to-top svg {
    transition: transform 0.3s;
}
.back-to-top:hover svg {
    transform: translateY(-2px);
}

/* ==========================================
   ECO MODE TOGGLE STYLES
   ========================================== */
.eco-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: none !important;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: #8c8c96;
    margin-right: 15px;
    user-select: none;
}
.eco-toggle input {
    display: none;
}
.eco-slider {
    position: relative;
    width: 32px;
    height: 18px;
    background: rgba(10, 10, 15, 0.08);
    border: 1px solid rgba(10, 10, 15, 0.25); /* Darker border for light mode */
    border-radius: 9px;
    transition: all 0.3s;
    display: inline-block;
}
.eco-slider::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 12px;
    height: 12px;
    background: rgba(10, 10, 15, 0.3);
    border-radius: 50%;
    transition: all 0.3s;
}
.eco-label,
.theme-label {
    font-family: var(--font-mono);
    font-size: 0.85rem;
    font-weight: 700;
    color: #0a0a0f; /* Black text for light mode */
    transition: color 0.3s;
}
.eco-toggle input:checked + .eco-slider {
    background: rgba(0, 229, 188, 0.1);
    border-color: var(--neon-green);
}
.eco-toggle input:checked + .eco-slider::after {
    left: 16px;
    background: var(--neon-green);
    box-shadow: 0 0 8px var(--neon-green);
}
.eco-toggle input:checked ~ .eco-label {
    color: var(--neon-green);
    text-shadow: 0 0 8px rgba(0, 229, 188, 0.4);
}

/* ==========================================
   CLIENT LOGOS RIBBON STYLES
   ========================================== */
.logo-ribbon {
    margin-top: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    width: 100%;
}
.logo-ribbon-title {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: rgba(10, 10, 15, 0.45);
    letter-spacing: 1px;
}
.logo-ribbon-track {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
    max-width: 800px;
}
.ribbon-item {
    font-family: var(--font-display);
    font-size: 0.95rem;
    font-weight: 700;
    color: rgba(10, 10, 15, 0.65);
    background: rgba(10, 10, 15, 0.02);
    border: 1px solid rgba(10, 10, 15, 0.08);
    padding: 6px 16px;
    border-radius: 6px;
    letter-spacing: 1px;
    transition: all 0.3s;
}
.ribbon-item:hover {
    color: var(--neon-magenta);
    border-color: rgba(255, 0, 85, 0.3);
    box-shadow: 0 0 12px rgba(255, 0, 85, 0.15);
    transform: translateY(-2px);
}

/* ==========================================
   CALCULATOR MODULE EXPLANATIONS STYLES
   ========================================== */
.calc-info-box {
    margin-top: 30px;
    border-top: 1px dashed rgba(255, 255, 255, 0.1);
    padding-top: 25px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.info-item {
    font-size: 0.8rem;
    line-height: 1.5;
    color: #8c8c96;
}
.info-item strong {
    color: #e2e2e9;
    font-family: var(--font-mono);
    display: inline-block;
    margin-right: 5px;
}

/* ==========================================
   FAQ CONTROLS & FILTERING STYLES
   ========================================== */
.faq-controls {
    margin-top: 35px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
}
.faq-search-wrapper {
    position: relative;
    max-width: 450px;
    width: 100%;
}
.faq-search-input {
    width: 100%;
    padding: 12px 20px 12px 45px;
    background: rgba(10, 10, 15, 0.05);
    border: 1px solid rgba(10, 10, 15, 0.08);
    border-radius: 30px;
    color: #0a0a0f;
    font-family: var(--font-mono);
    font-size: 0.9rem;
    transition: all 0.3s;
    outline: none;
}
.faq-search-input::placeholder {
    color: rgba(10, 10, 15, 0.45);
}
.faq-search-input:focus {
    border-color: var(--neon-blue);
    box-shadow: 0 0 15px rgba(0, 229, 188, 0.15);
}
.faq-search-icon {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1rem;
    color: #8c8c96;
}
.faq-tabs {
    display: flex;
    gap: 10px;
}
.faq-tab-btn {
    background: transparent;
    border: 1px solid rgba(10, 10, 15, 0.1);
    color: #55555f;
    padding: 8px 20px;
    border-radius: 20px;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    transition: all 0.3s;
}
.faq-tab-btn.active, .faq-tab-btn:hover {
    background: rgba(0, 229, 188, 0.1);
    border-color: var(--neon-blue);
    color: var(--neon-blue);
    text-shadow: 0 0 8px rgba(0, 229, 188, 0.4);
}
.faq-item {
    transition: all 0.4s ease;
}
.faq-item.hidden {
    display: none;
    opacity: 0;
    transform: scale(0.95);
}

/* ==========================================
   DETAILED BUSINESS FOOTER STYLES
   ========================================== */
.detailed-footer {
    background: #f8f9fc;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    padding: 70px 5% 0px; /* modified padding-bottom to 0 for giant text cutoff */
    z-index: 5;
    position: relative;
    overflow: hidden; /* hide bottom half of giant logo */
}
.footer-container {
    max-width: 1100px;
    margin: 0 auto;
}
.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 50px;
    margin-bottom: 50px;
}
.footer-col h4 {
    font-family: var(--font-mono);
    font-size: 0.9rem;
    color: #0a0a0f;
    margin-bottom: 20px;
    letter-spacing: 1.5px;
}
.brand-col p {
    color: #55555f;
    margin-top: 15px;
    margin-bottom: 25px;
    font-size: 0.95rem;
}
.footer-socials {
    display: flex;
    gap: 15px;
}
.social-link {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: #8c8c96;
    text-decoration: none;
    transition: color 0.2s;
}
.social-link:hover {
    color: var(--neon-magenta);
}
.contact-col p {
    margin-bottom: 12px;
}
.footer-mail {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--neon-blue);
    text-decoration: none;
}
.footer-mail:hover {
    text-shadow: 0 0 10px rgba(0, 229, 188, 0.3);
}
.footer-time {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: rgba(0, 0, 0, 0.45);
}
.legal-col p {
    color: #55555f;
    font-size: 0.85rem;
    line-height: 1.6;
}
.legal-link {
    color: #55555f;
    text-decoration: none;
    transition: color 0.2s;
}
.legal-link:hover {
    color: var(--neon-blue);
}
.footer-bottom {
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    padding-top: 25px;
    text-align: center;
    font-size: 0.8rem;
    color: rgba(0, 0, 0, 0.4);
}

@media (max-width: 768px) {
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }
}

/* ==========================================
   AI CHATBOT ASSISTANT STYLES
   ========================================== */
.ai-chatbot {
    position: fixed;
    bottom: 30px;
    left: 30px;
    z-index: 9999;
}
.chat-bubble {
    width: 50px;
    height: 50px;
    background: rgba(18, 18, 22, 0.75);
    border: 1px solid rgba(0, 229, 188, 0.3);
    box-shadow: 0 0 15px rgba(0, 229, 188, 0.15);
    border-radius: 50%;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    position: relative;
    border-width: 1px !important;
}
.chat-bubble:hover {
    border-color: var(--neon-magenta);
    box-shadow: 0 0 20px rgba(255, 0, 85, 0.3);
    color: var(--neon-magenta);
}
.chat-notification-dot {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 10px;
    height: 10px;
    background: var(--neon-green);
    border-radius: 50%;
    box-shadow: 0 0 8px var(--neon-green);
}
.chat-window {
    position: absolute;
    bottom: 70px;
    left: 0;
    width: 320px;
    background: rgba(18, 18, 22, 0.95);
    border: 1px solid rgba(0, 229, 188, 0.2);
    box-shadow: 0 10px 40px rgba(0, 229, 188, 0.1);
    border-radius: 16px;
    backdrop-filter: blur(15px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translateY(20px) scale(0.95);
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.ai-chatbot.active .chat-window {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}
.chat-header {
    background: rgba(0, 229, 188, 0.05);
    border-bottom: 1px solid rgba(0, 229, 188, 0.15);
    padding: 15px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
}
.chat-avatar {
    font-size: 1.4rem;
}
.chat-header-info h4 {
    font-size: 0.95rem;
    font-weight: 700;
    color: #fff;
    margin: 0;
}
.chat-header-info span {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    color: var(--neon-blue);
    letter-spacing: 1px;
}
.chat-close-btn {
    margin-left: auto;
    font-size: 1.8rem;
    background: none;
    border: none;
    color: #8c8c96;
    cursor: pointer;
    line-height: 1;
    padding: 0;
}
.chat-close-btn:hover {
    color: var(--neon-magenta);
}
.chat-body {
    height: 250px;
    overflow-y: auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}
.chat-message {
    max-width: 85%;
    padding: 10px 14px;
    border-radius: 12px;
    font-size: 0.82rem;
    line-height: 1.4;
}
.bot-msg {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.05);
    color: #e2e2e9;
    align-self: flex-start;
    border-bottom-left-radius: 2px;
}
.user-msg {
    background: rgba(0, 229, 188, 0.08);
    border: 1px solid rgba(0, 229, 188, 0.2);
    color: #fff;
    align-self: flex-end;
    border-bottom-right-radius: 2px;
}
.chat-footer {
    border-top: 1px solid rgba(255, 255, 255, 0.05);
    padding: 15px 20px;
    background: rgba(10, 10, 12, 0.5);
}
.chat-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.chat-option-btn {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #c8c8d2;
    padding: 6px 12px;
    border-radius: 15px;
    font-family: var(--font-mono);
    font-size: 0.7rem;
    transition: all 0.2s;
}
.chat-option-btn:hover {
    border-color: var(--neon-blue);
    color: var(--neon-blue);
    background: rgba(0, 229, 188, 0.05);
}

/* ==========================================
   THEME TOGGLE STYLES
   ========================================== */
.theme-toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: none !important;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: #8c8c96;
    margin-right: 15px;
    user-select: none;
}
.theme-toggle input {
    display: none;
}
.theme-slider {
    position: relative;
    width: 32px;
    height: 18px;
    background: rgba(10, 10, 15, 0.08);
    border: 1px solid rgba(10, 10, 15, 0.25); /* Darker border for light mode */
    border-radius: 9px;
    transition: all 0.3s;
    display: inline-block;
}
.theme-slider::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 12px;
    height: 12px;
    background: rgba(10, 10, 15, 0.3);
    border-radius: 50%;
    transition: all 0.3s;
}
.theme-toggle input:checked + .theme-slider {
    background: rgba(0, 85, 255, 0.1);
    border-color: var(--neon-blue);
}
.theme-toggle input:checked + .theme-slider::after {
    left: 16px;
    background: var(--neon-blue);
    box-shadow: 0 0 8px var(--neon-blue);
}
.theme-toggle input:checked ~ .theme-label {
    color: var(--neon-blue);
    text-shadow: 0 0 8px rgba(0, 85, 255, 0.4);
}

/* ==========================================
   DARK THEME OVERRIDES
   ========================================== */
body.dark-theme {
    --bg-color: #050508;
    color: #e2e2e9;
}
body.dark-theme ::-webkit-scrollbar-track {
    background: #050508;
}
body.dark-theme ::-webkit-scrollbar-thumb {
    background: #1e1e24;
    border-color: #050508;
}
body.dark-theme .grid-overlay {
    background-image: 
        linear-gradient(rgba(255, 255, 255, 0.012) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.012) 1px, transparent 1px);
}
/* Title & Text adjustments */
body.dark-theme h1, 
body.dark-theme h2, 
body.dark-theme h3, 
body.dark-theme h4, 
body.dark-theme .logo {
    color: #ffffff;
}
body.dark-theme p, 
body.dark-theme .brand-slogan,
body.dark-theme .legal-col p,
body.dark-theme .info-item {
    color: #8c8c96;
}
body.dark-theme .faq-question span {
    color: #ffffff;
}
body.dark-theme .faq-question {
    color: #ffffff;
    border-bottom-color: rgba(255, 255, 255, 0.05);
}
body.dark-theme .faq-search-input {
    background: rgba(18, 18, 22, 0.7);
    border-color: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}
body.dark-theme .faq-search-input::placeholder {
    color: rgba(255, 255, 255, 0.45);
}
body.dark-theme .faq-tab-btn {
    border-color: rgba(255, 255, 255, 0.1);
    color: #8c8c96;
}
body.dark-theme .roadmap-panel {
    background: rgba(10, 10, 15, 0.75);
    border-color: rgba(255, 255, 255, 0.04);
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.4);
}
body.dark-theme .roadmap-header h2 {
    background: linear-gradient(90deg, #ffffff, #888);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
body.dark-theme .roadmap-step {
    background: rgba(18, 18, 22, 0.85);
    border-color: rgba(255, 255, 255, 0.05);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}
body.dark-theme .roadmap-step:hover {
    border-color: rgba(255, 0, 85, 0.3);
    box-shadow: 0 15px 35px rgba(255, 0, 85, 0.15);
}
body.dark-theme .step-number {
    color: rgba(255, 255, 255, 0.1);
}
body.dark-theme .step-body h3 {
    color: #ffffff;
}
body.dark-theme .step-meta {
    color: rgba(255, 255, 255, 0.3);
}
body.dark-theme .step-tags span {
    background: #181822;
    color: #a0a0ab;
    border-color: rgba(255, 255, 255, 0.05);
}
body.dark-theme .polaroid-card {
    background: rgba(18, 18, 22, 0.85);
    border-color: rgba(255, 255, 255, 0.05);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
body.dark-theme .card-caption {
    color: #e2e2e9;
}
body.dark-theme .card-img {
    background-color: #0c0c0f;
    border: 1px solid rgba(255, 255, 255, 0.03);
}
body.dark-theme .main-header {
    background: rgba(5, 5, 8, 0.8);
    border-bottom-color: rgba(255, 255, 255, 0.02);
}
body.dark-theme .nav-link {
    color: #8c8c96;
}
body.dark-theme .nav-link:hover,
body.dark-theme .nav-link.active {
    color: #ffffff;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.45), 0 0 18px rgba(0, 240, 255, 0.35);
}
body.dark-theme .top-nav .nav-btn {
    border-color: rgba(255, 255, 255, 0.15);
    color: #ffffff;
}
body.dark-theme .logo-ribbon-title {
    color: rgba(255, 255, 255, 0.25);
}
body.dark-theme .ribbon-item {
    color: rgba(255, 255, 255, 0.4);
    background: rgba(255, 255, 255, 0.01);
    border-color: rgba(255, 255, 255, 0.03);
}
body.dark-theme .scroll-down-hint {
    color: #8c8c96;
}
body.dark-theme .eco-slider,
body.dark-theme .theme-slider {
    background: #1e1e24;
    border-color: rgba(255, 255, 255, 0.15);
}
body.dark-theme .eco-slider::after,
body.dark-theme .theme-slider::after {
    background: #8c8c96;
}
body.dark-theme .eco-label,
body.dark-theme .theme-label {
    color: #8c8c96;
}

/* Dark theme overrides for finished projects (portfolio) section */
body.dark-theme .portfolio-section {
    background: #050508;
}
body.dark-theme .portfolio-card {
    background: rgba(18, 18, 22, 0.85);
    border-color: rgba(255, 255, 255, 0.05);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
}
body.dark-theme .portfolio-card:hover {
    border-color: rgba(0, 85, 255, 0.3);
    box-shadow: 0 25px 55px rgba(0, 85, 255, 0.18);
}
body.dark-theme .p-card-img-wrapper {
    background: #181822;
    border-color: rgba(255, 255, 255, 0.06);
}
body.dark-theme .p-card-stats {
    border-top-color: rgba(255, 255, 255, 0.06);
}
body.dark-theme .p-stat strong {
    color: #ffffff;
}

/* Dark theme overrides for right-side dot navigation */
body.dark-theme .dot-link {
    background-color: rgba(255, 255, 255, 0.25);
}
body.dark-theme .dot-link.active {
    background-color: var(--neon-blue);
    box-shadow: 0 0 10px rgba(0, 85, 255, 0.6);
}
body.dark-theme .dot-link span {
    background: rgba(18, 18, 22, 0.95);
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.06);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5);
}

/* Dark theme overrides for FAQ section */
body.dark-theme .faq-section {
    background: #050508;
    border-top-color: rgba(255, 255, 255, 0.03);
}
body.dark-theme .faq-item {
    background: rgba(18, 18, 22, 0.85);
    border-color: rgba(255, 255, 255, 0.05);
}
body.dark-theme .faq-item:hover {
    border-color: rgba(0, 85, 255, 0.15);
    box-shadow: 0 12px 35px rgba(0, 85, 255, 0.06);
}
body.dark-theme .faq-item.active {
    background: #0f0f13;
    border-color: rgba(0, 85, 255, 0.25);
}
body.dark-theme .faq-answer-content {
    color: #8c8c96;
}

/* Dark theme overrides for marquee footer */
body.dark-theme .marquee-footer {
    background: #0a0a0c;
    border-color: rgba(255, 255, 255, 0.04);
}
body.dark-theme .marquee-content {
    color: #ffffff;
}

/* Dark theme overrides for detailed footer */
body.dark-theme .detailed-footer {
    background: #060608;
    border-top-color: rgba(255, 255, 255, 0.03);
}
body.dark-theme .footer-col h4 {
    color: #ffffff;
}
body.dark-theme .brand-col p,
body.dark-theme .contact-col p,
body.dark-theme .legal-col p {
    color: #8c8c96;
}
body.dark-theme .footer-time {
    color: #8c8c96;
}
body.dark-theme .legal-link {
    color: #8c8c96;
}
body.dark-theme .footer-bottom {
    border-top-color: rgba(255, 255, 255, 0.03);
    color: rgba(255, 255, 255, 0.2);
}

/* Giant scrolling logo reveal footer styles (Antigravity-like style) */
.footer-giant-logo-wrapper {
    position: relative;
    width: 100vw;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    height: 10vw; /* Increased to 10vw to show more of the letters by default */
    overflow: hidden;
    margin-top: 40px;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    pointer-events: none;
    z-index: 1;
}

.footer-giant-logo {
    font-family: var(--font-mono); /* Space Grotesk */
    font-size: 14vw;
    font-weight: 800;
    line-height: 0.8; /* Reduced line-height to shift the letters up inside the bounding box */
    color: #0a0a0f;
    letter-spacing: -0.2vw;
    transform: translateY(0); /* Default to visible; GSAP will set yPercent: 100 and slide it up */
    transition: color 0.3s;
    white-space: nowrap;
    text-align: center;
}

body.dark-theme .footer-giant-logo {
    color: #ffffff;
}

/* Dark theme overrides for ROI calculator section */
body.dark-theme .calculator-section {
    background: #0a0a0c;
    border-top-color: rgba(255, 0, 85, 0.15);
}
body.dark-theme .calculator-header h2 {
    color: #ffffff;
    text-shadow: 0 0 15px rgba(255, 255, 255, 0.1);
}
body.dark-theme .calculator-header p {
    color: #a0a0aa;
}
body.dark-theme .calc-panel {
    background: rgba(18, 18, 22, 0.55);
    border-color: rgba(255, 255, 255, 0.05);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
}
body.dark-theme .input-group label {
    color: #e2e2e9;
}
body.dark-theme .calc-range {
    background: #1e1e24;
}
body.dark-theme .range-labels {
    color: #8c8c96;
}
body.dark-theme .calc-cb-label {
    color: #c8c8d2;
}
body.dark-theme .cb-custom {
    background-color: #1e1e24;
    border-color: rgba(255, 255, 255, 0.1);
}
body.dark-theme .result-box {
    border-bottom-color: rgba(255, 255, 255, 0.05);
}
body.dark-theme .result-label {
    color: #8c8c96;
}
body.dark-theme .result-value {
    text-shadow: 0 0 20px rgba(0, 229, 188, 0.25);
}
body.dark-theme .roi-metric-header {
    color: #e2e2e9;
}
body.dark-theme .roi-bar {
    background: #1e1e24;
}

/* Dark theme overrides for technology meteor tags */
body.dark-theme .meteor-label {
    background: rgba(18, 18, 22, 0.85);
    border-color: rgba(255, 255, 255, 0.05);
    color: #ffffff;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
}

/* ==========================================
   ECO MODE CURSOR OVERRIDE (FIX)
   ========================================== */
body.eco-active,
body.eco-active * {
    cursor: default !important;
}

/* ==========================================
   ECO MODE EXTENSIVE OPTIMIZATIONS (STATIC FALLBACKS)
   ========================================== */
.static-bust-img {
    display: none;
    position: absolute;
    width: 420px;
    height: 420px;
    object-fit: contain;
    z-index: 2;
    filter: invert(0.95) contrast(1.3) brightness(0.95);
}

.static-snake-img {
    display: none;
    position: absolute;
    width: 320px;
    height: 320px;
    object-fit: contain;
    z-index: 2;
}

/* Display static replacements in Eco Mode */
body.eco-active .static-bust-img,
body.eco-active .static-snake-img {
    display: block !important;
}

/* Completely shut down and hide all GPU-heavy animations & visual noise in Eco Mode */
body.eco-active .bust-container,
body.eco-active .bust-halo,
body.eco-active .portal-container,
body.eco-active .floating-letter,
body.eco-active .ui-card,
body.eco-active .flying-obj,
body.eco-active #nebulaCanvas,
body.eco-active .grid-overlay,
body.eco-active .scroll-wire-container {
    display: none !important;
}
/* ==========================================
   CONTACT FORM SECTION
   ========================================== */
.contact-section {
    padding: 8rem 2rem;
    background: #f8f9fc;
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 10;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}
.contact-container {
    max-width: 1200px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.contact-header {
    text-align: center;
    margin-bottom: 3.5rem;
}
.contact-badge {
    font-family: var(--font-mono);
    font-size: 0.85rem;
    color: var(--neon-magenta);
    font-weight: 700;
    letter-spacing: 0.15rem;
    margin-bottom: 0.5rem;
}
.contact-header h2 {
    font-family: var(--font-mono);
    font-size: 2.2rem;
    font-weight: 800;
    color: #0a0a0f;
    letter-spacing: -0.05rem;
    margin-bottom: 1rem;
}
.contact-header p {
    color: #55555f;
    font-size: 1.05rem;
    max-width: 600px;
    margin: 0 auto;
}

/* Split 2-Column Layout */
.contact-split-wrapper {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: 2.5rem;
    width: 100%;
    align-items: stretch;
}

.contact-info-panel {
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid var(--glass-border);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    padding: 3.5rem;
    border-radius: 24px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.04);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.info-card-heading {
    font-family: var(--font-mono);
    font-size: 1.15rem;
    font-weight: 700;
    color: #0a0a0f;
    margin-bottom: 1.5rem;
    letter-spacing: -0.02rem;
}

.contact-info-items {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.contact-info-item {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.info-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(0, 85, 255, 0.08);
    color: var(--neon-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: 0.3s;
}

.info-details {
    display: flex;
    flex-direction: column;
}

.info-label {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    letter-spacing: 0.08rem;
    color: #8c8c96;
    margin-bottom: 3px;
    font-weight: 700;
}

.info-value {
    font-family: var(--font-mono);
    font-size: 1.05rem;
    font-weight: 700;
    color: #0a0a0f;
    text-decoration: none;
    transition: color 0.2s;
}

.info-value:hover {
    color: var(--neon-blue);
}

.info-subtext {
    font-size: 0.85rem;
    color: #71717a;
    margin-top: 3px;
}

.info-card-divider {
    height: 1px;
    background: rgba(10, 10, 15, 0.08);
    margin: 2rem 0;
}

.billing-details-list {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.billing-row {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.billing-label {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: #8c8c96;
    letter-spacing: 0.05rem;
    text-transform: uppercase;
}

.billing-val {
    font-size: 0.95rem;
    color: #27272a;
    line-height: 1.4;
}

.billing-val strong {
    color: #09090b;
}

.response-guarantee {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px dashed rgba(10, 10, 15, 0.1);
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: #52525b;
}

.guarantee-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--neon-green);
    box-shadow: 0 0 8px var(--neon-green);
    display: inline-block;
}

.contact-form {
    width: 100%;
    max-width: 100%;
    background: rgba(255, 255, 255, 0.88);
    border: 1px solid var(--glass-border);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    padding: 3.5rem;
    border-radius: 24px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.04);
}
.form-row {
    width: 100%;
    margin-bottom: 20px;
}
.form-grid-two {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
    width: 100%;
}
.msg-group {
    margin-bottom: 25px;
}
.form-submit-wrapper {
    display: flex;
    justify-content: center;
}
.contact-form-status {
    margin-top: 15px;
    text-align: center;
    font-family: var(--font-mono);
    font-size: 0.9rem;
    font-weight: bold;
}
.contact-form-status.success {
    color: var(--neon-green);
}
.contact-form-status.error {
    color: var(--neon-magenta);
}

/* Light theme defaults for contact form inputs & labels */
.contact-form label {
    display: block;
    margin-bottom: 0.6rem;
    font-family: var(--font-mono);
    font-size: 0.85rem;
    color: #55555f;
    font-weight: 700;
}
.contact-form .form-group input[type="text"],
.contact-form .form-group input[type="email"],
.contact-form .form-group input[type="tel"],
.contact-form textarea {
    width: 100%;
    padding: 0.9rem 1.2rem;
    background: rgba(10, 10, 15, 0.04);
    border: 1px solid rgba(10, 10, 15, 0.08);
    border-radius: 12px;
    font-family: var(--font-primary);
    font-size: 0.95rem;
    color: #0a0a0f;
    outline: none;
    transition: all 0.3s;
}
.contact-form .form-group input:focus,
.contact-form textarea:focus {
    border-color: var(--neon-blue);
    box-shadow: 0 0 12px rgba(0, 85, 255, 0.15);
    background: #ffffff;
}
.contact-form .form-group input::placeholder,
.contact-form textarea::placeholder {
    color: rgba(10, 10, 15, 0.45);
    font-family: var(--font-primary);
}

/* Responsive grid for contact */
@media (max-width: 992px) {
    .contact-split-wrapper {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .contact-info-panel,
    .contact-form {
        padding: 2.5rem;
    }
}
@media (max-width: 768px) {
    .contact-info-panel,
    .contact-form {
        padding: 2rem;
    }
    .contact-header h2 {
        font-size: 1.8rem;
    }
}
@media (max-width: 600px) {
    .form-grid-two {
        grid-template-columns: 1fr;
        gap: 15px;
    }
}

/* Dark Mode overrides */
body.dark-theme .contact-section {
    background: #050508;
    border-top-color: rgba(255, 255, 255, 0.02);
}
body.dark-theme .contact-header h2 {
    color: #ffffff;
}
body.dark-theme .contact-header p {
    color: #8c8c96;
}
body.dark-theme .contact-info-panel,
body.dark-theme .contact-form {
    background: rgba(10, 10, 15, 0.75);
    border-color: rgba(255, 255, 255, 0.04);
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.4);
}
body.dark-theme .info-card-heading {
    color: #ffffff;
}
body.dark-theme .info-icon {
    background: rgba(0, 229, 188, 0.08);
    color: var(--neon-cyan);
}
body.dark-theme .info-value {
    color: #ffffff;
}
body.dark-theme .info-value:hover {
    color: var(--neon-cyan);
}
body.dark-theme .info-subtext {
    color: #8c8c96;
}
body.dark-theme .info-card-divider {
    background: rgba(255, 255, 255, 0.06);
}
body.dark-theme .billing-val {
    color: #d4d4d8;
}
body.dark-theme .billing-val strong {
    color: #ffffff;
}
body.dark-theme .response-guarantee {
    border-top-color: rgba(255, 255, 255, 0.06);
    color: #a1a1aa;
}
body.dark-theme .contact-form label {
    color: #8c8c96;
}
body.dark-theme .contact-form .form-group input[type="text"],
body.dark-theme .contact-form .form-group input[type="email"],
body.dark-theme .contact-form .form-group input[type="tel"],
body.dark-theme .contact-form input,
body.dark-theme .contact-form textarea {
    background: rgba(18, 18, 22, 0.55);
    border: 1px solid rgba(255, 255, 255, 0.06);
    color: #ffffff;
}
body.dark-theme .contact-form .form-group input:hover,
body.dark-theme .contact-form input:hover,
body.dark-theme .contact-form textarea:hover {
    border-color: rgba(255, 255, 255, 0.12);
}
body.dark-theme .contact-form .form-group input::placeholder,
body.dark-theme .contact-form input::placeholder,
body.dark-theme .contact-form textarea::placeholder {
    color: rgba(255, 255, 255, 0.45);
}
body.dark-theme .contact-form .form-group input:focus,
body.dark-theme .contact-form input:focus,
body.dark-theme .contact-form textarea:focus {
    border-color: var(--neon-blue);
    box-shadow: 0 0 10px rgba(0, 85, 255, 0.15);
    background: rgba(18, 18, 22, 0.75);
}
