/* --- Custom Styles --- */
body {
    background-color: #0a0a0a;
    color: #e0e0e0;
    font-family: 'Poppins', sans-serif;
    overflow-x: hidden;
    cursor: none;
    padding: 0;
    margin: 0;
}

/* --- Ambient Background Effects --- */
#bg-effects {
    position: fixed;
    inset: 0;
    z-index: 0; /* behind header (z-10) and tools */
    pointer-events: none;
    overflow: hidden;
}
#bg-stars {
    width: 100%;
    height: 100%;
    display: block;
    opacity: 0.5; /* subtle */
}
.bg-blob {
    position: absolute;
    width: 46vmax;
    height: 46vmax;
    filter: blur(80px) saturate(140%);
    opacity: 0.28;
    mix-blend-mode: screen;
    border-radius: 50%;
    animation: blobFloat 22s ease-in-out infinite;
}
.blob-a {
    top: -10vmax; left: -10vmax;
    background: radial-gradient(closest-side, rgba(200,136,248,0.6), rgba(200,136,248,0.0) 70%);
}
.blob-b {
    bottom: -12vmax; right: -8vmax;
    background: radial-gradient(closest-side, rgba(139,92,246,0.55), rgba(139,92,246,0.0) 70%);
    animation-duration: 28s;
    animation-delay: -6s;
}
.blob-c {
    top: 20vh; right: 30vw;
    background: radial-gradient(closest-side, rgba(168,85,247,0.45), rgba(168,85,247,0.0) 70%);
    animation-duration: 26s;
    animation-delay: -12s;
}
@keyframes blobFloat {
    0% { transform: translate3d(0,0,0) scale(1) rotate(0deg); }
    25% { transform: translate3d(2vw, -1vh, 0) scale(1.04) rotate(6deg); }
    50% { transform: translate3d(0vw, -2vh, 0) scale(1.08) rotate(0deg); }
    75% { transform: translate3d(-2vw, 1vh, 0) scale(1.03) rotate(-6deg); }
    100% { transform: translate3d(0,0,0) scale(1) rotate(0deg); }
}

/* subtle animated gradient overlay to add movement */
.bg-gradient-move {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at 10% 20%, rgba(200,136,248,0.04), transparent 10%), radial-gradient(circle at 80% 70%, rgba(139,92,246,0.03), transparent 12%);
    mix-blend-mode: screen;
    animation: gradientShift 18s linear infinite;
    z-index: 0;
}

@keyframes gradientShift {
    0% { background-position: 0% 0%, 100% 100%; }
    50% { background-position: 30% 10%, 70% 90%; }
    100% { background-position: 0% 0%, 100% 100%; }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
    #bg-stars { display: none; }
    .bg-blob { animation: none; }
}

/* Spacing variables for consistent offsets */
:root {
    --content-max: 1200px;
    --page-pad: 2rem;
    --edge-space: var(--page-pad); /* aligns with page side padding */
    --header-height: 3.5rem; /* fallback ~56px; updated via JS for exact match */
}

/* --- Hero positioning for in-hero tools --- */
#home { position: relative; }

/* Add padding to main content */
main { padding: 0 var(--page-pad); }

/* Ensure proper spacing for all sections */
section {
    padding: 4rem var(--page-pad);
    max-width: var(--content-max);
    margin: 0 auto;
}

/* Offset anchors for fixed header */
section { 
    scroll-margin-top: var(--header-height, 5rem);
}

/* Reduce extra space below fixed navbar on hero */
#home {
    padding-top: 2rem; /* override section's default top padding */
}

/* Header padding (rely on inner container spacing) */
header {
    padding: 0;
}

/* Themed navbar container (rounded, inset) */
.nav-surface {
    position: relative;
    margin: 0 auto 0; /* no space at the top */
    padding-left: var(--page-pad);
    padding-right: var(--page-pad);
    background: rgba(16,16,24, 0.6);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(200, 136, 248, 0.22);
    border-radius: 12px;
}
/* Gradient underline inside rounded bar */
.nav-surface::after {
    content: "";
    position: absolute;
    left: var(--page-pad);
    right: var(--page-pad);
    bottom: 0;
    height: 2px;
    background: linear-gradient(90deg, #c888f8, rgba(200,136,248,0.0) 50%, #8b5cf6);
    opacity: 0.4;
    pointer-events: none;
}

/* Ensure hero respects exact navbar height spacing */
#main-content {
    padding-top: var(--header-height, 3.5rem) !important;
}

/* Footer padding */
footer {
    padding: 4rem 2rem 2rem;
}

/* Shared container width (matches sections) */
.site-container {
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--page-pad);
    padding-right: var(--page-pad);
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Orbitron', sans-serif;
}

/* --- Enable text selection but disable right-click --- */
* {
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
    -webkit-touch-callout: none;
    -webkit-tap-highlight-color: transparent;
}

/* Custom text selection color */
::selection {
    background: rgba(200, 136, 248, 0.5);
    color: #fff;
}

/* Ensure all text elements are selectable */
p, h1, h2, h3, h4, h5, h6, span, div, li, a {
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
}

/* Allow text selection for form elements */
input, textarea, [contenteditable] {
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
}

/* Spline Viewer Styling */
spline-viewer {
    width: 100%;
    height: 400px;
    border-radius: 8px;
    overflow: hidden;
    display: block;
}
/* Hide "Built with Spline" text */
spline-viewer::after {
    display: none !important;
}
/* Hide Spline branding and controls */
spline-viewer [data-spline-branding],
spline-viewer [data-spline-controls],
spline-viewer .spline-branding,
spline-viewer .spline-controls {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

/* Ensure Spline viewer is visible */
spline-viewer canvas {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
}

/* Hero roles subtle fade */
#hero-roles { transition: opacity .35s ease; }
.fade-out { opacity: 0; }

/* --- Highlights/Glass Cards and Badges --- */
.about-cards { position: relative; z-index: 1; }
.glass-card {
    position: relative;
    background: rgba(12,12,20,0.55);
    border: 1px solid rgba(200,136,248,0.18);
    border-radius: 16px;
    padding: 1.25rem;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.35), inset 0 0 0 1px rgba(139,92,246,0.06);
    overflow: hidden;
}
.glass-card .grid-overlay {
    content: "";
    position: absolute; inset: 0; pointer-events: none; opacity: 0.18;
    background-image: linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
    background-size: 40px 40px, 40px 40px;
    mask-image: radial-gradient(200px 200px at 20% 10%, rgba(255,255,255,0.8), transparent 70%);
}
.kicker { color: #8b5cf6; text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; margin-bottom: .25rem; }
.card-title { font-size: 1.1rem; font-weight: 700; margin-bottom: .5rem; }
.card-body { color: #a1a1aa; line-height: 1.6; }
.badge-row { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .75rem; }
.badge { background: rgba(139,92,246,0.15); color: #d6bcff; border: 1px solid rgba(200,136,248,0.25); padding: .35rem .6rem; border-radius: 9999px; font-size: .8rem; }

.gradient-cta { position: relative; border-radius: 16px; padding: 1.25rem; overflow: hidden; background: radial-gradient(120% 120% at 0% 0%, #c888f8 0%, #8b5cf6 35%, #181826 65%); box-shadow: 0 12px 42px rgba(139,92,246,0.35); }
.gradient-cta::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .18; background: radial-gradient(200px 120px at 20% 30%, rgba(255,255,255,0.35), transparent 60%); }
.cta-content { position: relative; z-index: 1; display: grid; gap: .75rem; }
.cta-title { font-size: 1.2rem; font-weight: 700; color: #fff; }
.copy-btn { justify-self: start; border-radius: 9999px; padding: .55rem .9rem; font-weight: 600; background: rgba(16,16,24,0.6); color: #fff; border: 1px solid rgba(255,255,255,0.25); box-shadow: 0 6px 16px rgba(0,0,0,0.4); }
.copy-btn:hover { background: rgba(16,16,24,0.8); border-color: rgba(255,255,255,0.35); }
.hover\:card-lift { transition: transform .25s ease, box-shadow .25s ease; }
.hover\:card-lift:hover { transform: translateY(-6px); box-shadow: 0 14px 50px rgba(139,92,246,0.25); }

/* --- About Link Boxes --- */
.link-grid { display: grid; gap: 1rem; grid-template-columns: repeat(1, minmax(0, 1fr)); margin-top: 2rem; }
@media (min-width: 768px) { .link-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.link-card { position: relative; display: block; padding: 1rem; border-radius: 14px; background: rgba(12,12,20,0.55); border: 1px solid rgba(200,136,248,0.18); text-decoration: none; color: #e0e0e0; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); overflow: hidden; }
.link-card:hover { border-color: rgba(200,136,248,0.35); box-shadow: 0 12px 36px rgba(139,92,246,0.25); transform: translateY(-4px); transition: all .25s ease; }
.link-card .grid-overlay { content: ""; position: absolute; inset: 0; opacity: .14; pointer-events: none; background-image: linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px); background-size: 34px 34px, 34px 34px; }
.link-title { font-weight: 700; font-size: 1.05rem; margin-bottom: .35rem; }
.link-desc { color: #a1a1aa; font-size: .9rem; }
.link-arrow { position: absolute; right: .9rem; bottom: .9rem; color: #c888f8; opacity: .8; }

/* --- Stats grid tweaks --- */
.stats-grid .glass-card { padding: 0.75rem; }
.stats-grid img { display: block; max-width: 100%; height: auto; }
/* --- Custom cursor --- */
.cursor-dot,
.cursor-dot-outline {
    pointer-events: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    will-change: transform;
    z-index: 9999;
}
.cursor-dot {
    width: 8px;
    height: 8px;
    background-color: #c888f8;
}

.cursor-dot-outline {
    width: 40px;
    height: 40px;
    background-color: rgba(200, 136, 248, 0.2);
    transition: transform 0.2s ease-out, width 0.2s ease-out, height 0.2s ease-out;
}

/* Keep the custom cursor active for interactive elements (prevent default pointer cursor)
   so the custom cursor doesn't get replaced by the browser hand cursor on links/buttons. */
a, button, input, textarea, [role="button"] {
    cursor: none;
}

/* --- Themed Scrollbar (matches cursor/theme) --- */
/* WebKit-based browsers (Chrome, Edge, Safari) */
*::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}
*::-webkit-scrollbar-track {
    background: #111;
}
*::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, #c888f8, #8b5cf6);
    border-radius: 8px;
    border: 2px solid #111;
}
*::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #d7a6ff, #a58dfc);
}

/* Firefox */
html, body {
    scrollbar-color: #8b5cf6 #111; /* thumb track */
    scrollbar-width: thin;
}

/* Optional: refine inner scroll areas */
#cli-output, #chat-messages, #chatbot-window {
    scrollbar-color: #8b5cf6 #1a1a1a;
    scrollbar-width: thin;
}

/* --- Terminal Loader --- */
#loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #0a0a0a 0%, #1a0a1a 30%, #0f0f23 70%, #0a0a0a 100%);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 10000;
    transition: opacity 1s ease-out;
    overflow: hidden;
}

.loader-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
}

/* Terminal Loader Styles */
@keyframes blinkCursor {
    50% {
        border-right-color: transparent;
    }
}

@keyframes typeAndDelete {
    0%,
    10% {
        width: 0;
    }
    45%,
    55% {
        width: 6.2em;
    }
    90%,
    100% {
        width: 0;
    }
}

.terminal-loader {
    border: 0.1em solid #c888f8;
    background-color: #0a0a0a;
    color: #c888f8;
    font-family: "Courier New", Courier, monospace;
    font-size: 1.2em;
    padding: 1.5em 1em;
    width: 16em;
    box-shadow: 0 8px 32px rgba(200, 136, 248, 0.3);
    border-radius: 8px;
    position: relative;
    overflow: hidden;
    box-sizing: border-box;
    animation: terminalGlow 2s ease-in-out infinite alternate;
}

.terminal-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1.5em;
    background: linear-gradient(90deg, #c888f8, #8b5cf6);
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    padding: 0 0.4em;
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.terminal-controls {
    display: flex;
    gap: 0.4em;
}

.control {
    display: inline-block;
    width: 0.6em;
    height: 0.6em;
    border-radius: 50%;
    background-color: #777;
    transition: all 0.3s ease;
}

.control.close {
    background-color: #ff4444;
}

.control.minimize {
    background-color: #ffaa00;
}

.control.maximize {
    background-color: #00ff44;
}

.control:hover {
    transform: scale(1.2);
}

.terminal-title {
    color: #ffffff;
    font-weight: bold;
    font-size: 0.9em;
}

.text {
    display: inline-block;
    white-space: nowrap;
    overflow: hidden;
    border-right: 0.2em solid #c888f8;
    animation:
        typeAndDelete 4s steps(11) infinite,
        blinkCursor 0.5s step-end infinite alternate;
    margin-top: 1.5em;
    font-weight: bold;
}

/* Additional Loader Info */
.loader-info {
    text-align: center;
    color: #c888f8;
    font-family: 'Poppins', sans-serif;
}

.loader-subtitle {
    font-size: 1.1rem;
    margin: 0 0 1rem 0;
    color: #8b5cf6;
    font-weight: 300;
    letter-spacing: 0.05em;
}

.loader-status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.status-dot {
    width: 8px;
    height: 8px;
    background: #c888f8;
    border-radius: 50%;
    animation: statusPulse 1.5s ease-in-out infinite;
}

.status-text {
    font-family: 'Orbitron', sans-serif;
    font-size: 0.9rem;
    color: #8b5cf6;
    letter-spacing: 0.1em;
}

/* Terminal Animations */
@keyframes terminalGlow {
    0% { 
        box-shadow: 0 8px 32px rgba(200, 136, 248, 0.3);
        border-color: #c888f8;
    }
    100% { 
        box-shadow: 0 8px 40px rgba(200, 136, 248, 0.5);
        border-color: #8b5cf6;
    }
}

@keyframes statusPulse {
    0%, 100% { 
        transform: scale(1); 
        opacity: 0.7; 
    }
    50% { 
        transform: scale(1.3); 
        opacity: 1; 
    }
}

/* --- Command Line Interface (centered modal with backdrop blur) --- */
#cli {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: none; /* shown via JS as flex */
    align-items: center;
    justify-content: center;
    padding: var(--edge-space);
    background: rgba(0, 0, 0, 0.45);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
}

/* Lock scroll when modal is open */
body.modal-open { overflow: hidden; }

.terminal-card {
    position: relative;
    background: radial-gradient(1200px 400px at 10% 0%, rgba(139,92,246,0.08), transparent 60%), #0a0a0a;
    border: 1.5px solid #c888f8;
    width: min(720px, 92vw);
    height: 460px;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 12px 48px rgba(200, 136, 248, 0.25);
    animation: terminalGlow 2.4s ease-in-out infinite alternate;
    overflow: hidden;
}
.terminal-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: repeating-linear-gradient(
        to bottom,
        rgba(255,255,255,0.03),
        rgba(255,255,255,0.03) 2px,
        rgba(0,0,0,0.03) 2px,
        rgba(0,0,0,0.03) 4px
    );
    opacity: 0.4;
    mix-blend-mode: soft-light;
}

.cli-header {
    height: 2.2rem;
    background: linear-gradient(90deg, #c888f8, #8b5cf6);
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    padding: 0 0.6rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.cli-title { color: #fff; font-weight: 700; font-family: 'Orbitron', sans-serif; font-size: 0.95rem; }
.cli-controls { display: flex; gap: 0.4rem; }
.cli-close { width: 14px; height: 14px; border-radius: 50%; background:#ff5f57; border:none; cursor:pointer; box-shadow: 0 0 6px rgba(255,95,87,.6); }
.cli-close:hover { transform: scale(1.1); }

#cli-output {
    flex: 1 1 auto;
    padding: 1rem;
    overflow-y: auto;
    font-family: 'Courier New', Courier, monospace;
    color: #0f0;
    overflow-x: hidden;
    word-break: break-word;
    overflow-wrap: anywhere;
}

#cli-input-container {
    display: flex;
    border-top: 1px solid #333;
}

/* Wrap preformatted lines inside terminal output */
#cli-output pre {
    white-space: pre-wrap; /* preserve newlines, allow wrapping */
    word-break: break-word;
    overflow-wrap: anywhere;
    margin: 0 0 0.25rem 0;
    line-height: 1.5;
}

#cli-input {
    flex-grow: 1;
    background: transparent;
    border: none;
    outline: none;
    color: #0f0;
    padding: 0.5rem 1rem;
    font-family: 'Courier New', Courier, monospace;
}

/* --- Chatbot (fixed to page) --- */
#chatbot-container {
    position: fixed;
    bottom: var(--edge-space);
    /* Keep inside centered content area on wide screens */
    right: max(var(--edge-space), calc((100vw - var(--content-max)) / 2 + var(--edge-space)));
    z-index: 90;
}
#chatbot-icon {
    width: 60px;
    height: 60px;
    background: #800080;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    box-shadow: 0 0 15px rgba(128, 0, 128, 0.8);
}
#chatbot-window {
    position: absolute;
    bottom: 80px;
    right: 0;
    width: 300px;
    height: 400px;
    background: #1a1a1a;
    border: 1px solid #333;
    border-radius: 10px;
    display: none;
    flex-direction: column;
}

/* Floating tools fixed to viewport */
.hero-tool { position: fixed; z-index: 91; }
#cli-icon {
    bottom: var(--edge-space);
    /* Keep inside centered content area on wide screens */
    left: max(var(--edge-space), calc((100vw - var(--content-max)) / 2 + var(--edge-space)));
    background: #1f1f1f; padding: 0.6rem; border-radius: 9999px; cursor: pointer; box-shadow: 0 0 10px rgba(139,92,246,0.5); transition: background .2s ease;
}
#cli-icon:hover { background: #8b5cf6; }

/* Drawing canvas removed */

/* --- Typing Indicator for Chatbot --- */
.lds-ellipsis {
    display: inline-block;
    position: relative;
    width: 40px;
    height: 20px;
}
.lds-ellipsis div {
    position: absolute;
    top: 5px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #fff;
    animation-timing-function: cubic-bezier(0, 1, 1, 0);
}
.lds-ellipsis div:nth-child(1) {
    left: 4px;
    animation: lds-ellipsis1 0.6s infinite;
}
.lds-ellipsis div:nth-child(2) {
    left: 4px;
    animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(3) {
    left: 16px;
    animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(4) {
    left: 28px;
    animation: lds-ellipsis3 0.6s infinite;
}
@keyframes lds-ellipsis1 {
    0% {
        transform: scale(0);
    }
    100% {
        transform: scale(1);
    }
}
@keyframes lds-ellipsis3 {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(0);
    }
}
@keyframes lds-ellipsis2 {
    0% {
        transform: translate(0, 0);
    }
    100% {
        transform: translate(12px, 0);
    }
}

/* --- Footer Contact Section --- */
.contact-section {
    padding: 80px 0;
    background-color: #000000;
}

.contact-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
    position: relative; /* needed for decorative accent */
    /* match nav-surface visual: rounded, blurred, subtle border */
    background: rgba(16,16,24, 0.6);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(200, 136, 248, 0.12);
    border-radius: 12px;
    padding: 1.25rem 2rem;
}

.footer-gif {
    position: absolute;
    right: 7rem; /* moved further left toward center */
    top: 6rem; /* moved further down */
    width: 280px; /* doubled size per request */
    height: auto;
    opacity: 0.95;
    pointer-events: none; /* decorative only */
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.5);
    mix-blend-mode: screen;
}

@media (max-width: 768px) {
    .footer-gif { display: none; } /* hide on small screens to save space */
    .contact-container { padding: 0.75rem 1rem; }
}

@media (prefers-reduced-motion: reduce) {
    .footer-gif { display: none; }
}

.contact-content {
    display: flex;
    gap: 2rem;
}

.contact-box {
    flex: 0 0 50%;
    max-width: 50%;
    padding: 15px;
}

/* Form Styling */
.form-box input,
.form-box textarea {
    height: 45px;
    width: 100%;
    padding: 6px 12px;
    margin-bottom: 25px;
    background-color: transparent;
    border: 1px solid #c888f8;
    font-family: 'Poppins', sans-serif;
    color: #ffffff;
    transition: border-color 0.3s ease;
}

.form-box input:focus,
.form-box textarea:focus {
    outline: none;
    border-color: #8b5cf6;
    box-shadow: 0 0 0 2px rgba(139, 92, 246, 0.2);
}

.form-box input::placeholder,
.form-box textarea::placeholder {
    color: #a0a0a0;
}

.form-box textarea {
    height: 100px;
    resize: vertical;
}

.refine-container {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 15px;
}

.refine-btn {
    background: none;
    border: none;
    color: #c888f8;
    font-size: 14px;
    cursor: pointer;
    transition: color 0.3s ease;
}

.refine-btn:hover {
    color: #8b5cf6;
}

.submit-btn {
    border: none;
    outline: none;
    box-shadow: none;
    height: 45px;
    padding: 0 50px;
    border: 1px solid transparent;
    background-color: #8b5cf6;
    color: #ffffff;
    font-size: 15px;
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
    transition: all 0.3s ease;
    cursor: pointer;
    border-radius: 4px;
}

.submit-btn:hover {
    background-color: transparent;
    color: #ffffff;
    border-color: #c888f8;
}

.form-status {
    margin-top: 15px;
    color: #4ade80;
    font-size: 14px;
}

.form-status.hidden {
    display: none;
}

/* Text/Info Column */
.text-box h2 {
    font-size: 30px;
    font-weight: 500;
    color: #c888f8;
    padding: 0 0 20px;
    font-family: 'Orbitron', sans-serif;
}

.text-box .title-p {
    font-size: 15px;
    line-height: 24px;
    color: #e0e0e0;
    margin: 0;
    padding: 0 0 30px;
    font-family: 'Poppins', sans-serif;
}

.text-box .info ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.text-box .info li {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
    color: #e0e0e0;
    font-size: 15px;
    letter-spacing: 0.5px;
    font-family: 'Poppins', sans-serif;
}

.text-box .info li .icon-wrapper {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    margin-right: 16px;
    color: #c888f8;
}

/* Social Links */
.text-box .social {
    padding-top: 30px;
    display: flex;
    gap: 10px;
}

.text-box .social a {
    height: 40px;
    width: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #8b5cf6;
    text-decoration: none;
    transition: all 0.3s ease;
    border: 1px solid transparent;
    border-radius: 4px;
}

.text-box .social a:hover {
    background-color: transparent;
    border-color: #c888f8;
    transform: translateY(-2px);
}

.text-box .social a svg {
    color: #ffffff;
}

/* Copyright */
.text-box .copy {
    border-top: 1px solid #333333;
    margin-top: 30px;
    padding-top: 20px;
    color: #a0a0a0;
    font-size: 14px;
    font-family: 'Poppins', sans-serif;
}

/* decorative accent on the right of the footer content */
/* gradient underline like nav-surface */
.contact-container::after {
    content: "";
    position: absolute;
    left: var(--page-pad);
    right: var(--page-pad);
    bottom: 0.5rem;
    height: 2px;
    background: linear-gradient(90deg, #c888f8, rgba(200,136,248,0.0) 50%, #8b5cf6);
    opacity: 0.45;
    pointer-events: none;
    border-radius: 4px;
}
@media (max-width: 768px) {
    .contact-container::after { display: none; }
}

/* Responsive padding for mobile devices */
@media (max-width: 768px) {
    :root { --page-pad: 1rem; --edge-space: var(--page-pad); }
    main { padding: 0 var(--page-pad); }
    section { padding: 3rem var(--page-pad); }
    header { padding: 0; }
    .contact-section { padding: 60px 0; }
    .contact-container { padding: 0 var(--page-pad); }
    .contact-content { flex-direction: column; }
    .contact-box { flex: 0 0 100%; max-width: 100%; padding: 10px 0; }
    .container { padding: 0 var(--page-pad); }
    /* Full-screen CLI remains full size on mobile */
    .terminal-card { width: 100vw; height: 100vh; }
}

@media (max-width: 480px) {
    :root { --page-pad: 0.5rem; --edge-space: var(--page-pad); }
    main { padding: 0 var(--page-pad); }
    section { padding: 2rem var(--page-pad); }
    header { padding: 0; }
    .contact-section { padding: 40px 0; }
    .contact-container { padding: 0 var(--page-pad); }
    .text-box h2 { font-size: 24px; }
    .submit-btn { width: 100%; }
}

/* --- Skills cards and pills (restored) --- */
.skills-grid { display: grid; }
.skill-card {
    background: linear-gradient(180deg, rgba(12,12,20,0.65), rgba(18,18,24,0.6));
    border: 1px solid rgba(200,136,248,0.08);
    padding: 1rem 1.1rem;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.5);
    transition: transform 220ms ease, box-shadow 220ms ease;
}
.skill-card:hover { transform: translateY(-6px); box-shadow: 0 18px 44px rgba(0,0,0,0.6); }
.skill-card-title { color: #c888f8; font-weight: 600; margin-bottom: 0.6rem; }
.skill-pills { display:flex; flex-wrap:wrap; gap:0.45rem; }
.skill-pill { display:inline-block; padding:6px 10px; border-radius:999px; background: linear-gradient(90deg,#2b0a45,#4b166f); color:#fff; font-size:0.9rem; }
.skill-levels { margin-top:0.8rem; }
.skill-row { display:flex; align-items:center; gap:0.6rem; margin-bottom:0.5rem; font-size:0.9rem; color:#dcd4ff; }
.skill-row .bar { flex:1; height:8px; background:rgba(255,255,255,0.06); border-radius:999px; overflow:hidden; }
/* start empty; JS will set width from data-width when animated */
.skill-row .bar-fill { width: 0; height:100%; background:linear-gradient(90deg,#c888f8,#8b5cf6); border-radius:999px; transition: width 900ms cubic-bezier(.2,.9,.2,1); }

@media (max-width: 768px) {
    .skill-card { padding: 0.85rem; }
    .skill-pill { font-size:0.85rem; padding:5px 8px; }
}
