/* --- Preloader --- */
.preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #0A0A0F; /* Match body background */
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 9999;
    transition: opacity 0.8s ease, visibility 0.8s ease;
}
.preloader.loaded {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.preloader .logo-preload {
    font-family: 'Clash Display', sans-serif; /* Explicitly set font */
    font-size: 2.5rem;
    font-weight: 600; /* Semibold */
    letter-spacing: 2px;
    animation: pulse 1.5s infinite ease-in-out;
}
.preloader .logo-preload span:first-child { color: white; }
.preloader .logo-preload span:last-child { color: #818cf8; } /* text-indigo-400 */

@keyframes pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.7; transform: scale(0.95); }
}

/* --- Base Styles --- */
html { scroll-behavior: smooth; }
body {
    font-family: 'Satoshi', sans-serif; /* Base font */
    cursor: none; /* Hide default cursor */
    /* Tailwind classes handle bg/text color in HTML */
    background-image: url('data:image/svg+xml,%3Csvg viewBox=%270 0 200 200%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cfilter id=%27noiseFilter%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.65%27 numOctaves=%273%27 stitchTiles=%27stitch%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url(%23noiseFilter)%27 opacity=%270.03%27/%3E%3C/svg%3E'); /* Subtle noise */
}
h1, h2, h3, h4, h5, h6, .logo-font {
    font-family: 'Clash Display', sans-serif; /* Heading font */
}

/* --- Custom Cursor --- */
.cursor-dot, .cursor-outline {
    position: fixed;
    top: 0;
    left: 0;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    z-index: 9998;
    pointer-events: none;
    transition: all 0.1s ease-out;
}
.cursor-dot {
    width: 8px;
    height: 8px;
    background-color: #818cf8; /* text-indigo-400 */
}
.cursor-outline {
    width: 30px;
    height: 30px;
    border: 2px solid #818cf8; /* text-indigo-400 */
    opacity: 0.5;
    transition: all 0.15s ease-out;
}
.cursor-hovered .cursor-dot {
    opacity: 0;
}
.cursor-hovered .cursor-outline {
    transform: translate(-50%, -50%) scale(1.5);
    opacity: 0.8;
    background-color: rgba(129, 140, 248, 0.2);
}
/* Apply custom cursor behavior */
a, button, input[type="submit"], input[type="checkbox"], select, .menu-toggle, .close-modal, .close-banner, .read-more-btn, .gallery-item, .swiper-slide, .close-blog-modal, .back-to-top, .flatpickr-input, .option-btn, .menu-tab, #mobile-menu-btn {
    cursor: none !important;
}

/* --- Glass Effect (Helper) --- */
.glass-effect {
    background: rgba(18, 18, 24, 0.5); /* Slightly darker card bg */
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.08); /* More subtle border */
}

/* --- Animated Blobs --- */
.blobs-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -10; overflow: hidden; /* Ensure behind content */ }
.blob { position: absolute; border-radius: 50%; filter: blur(100px); opacity: 0.25; animation: blob-pulse 12s infinite ease-in-out alternate; }
.blob1 { width: 450px; height: 450px; top: -20%; left: -20%; background: #4f46e5; animation-delay: 0s; }
.blob2 { width: 350px; height: 350px; bottom: -15%; right: -15%; background: #9333ea; animation-delay: -5s; }
@keyframes blob-pulse {
    0%, 100% { transform: scale(1) rotate(0deg); opacity: 0.2; }
    50% { transform: scale(1.15) rotate(15deg); opacity: 0.3; }
}

/* --- Animated Gradient Text --- */
.animated-gradient {
    background-size: 200% auto;
    animation: gradient-flow 6s ease infinite;
    /* Apply gradient via Tailwind classes */
}
@keyframes gradient-flow {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* --- Scroll Reveal --- */
.reveal { opacity: 0; transform: translateY(50px) scale(0.98); transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.reveal.visible { opacity: 1; transform: translateY(0) scale(1); }

/* --- Header & Mobile Menu --- */
/* Mobile Menu Panel Transition */
#mobile-menu {
    transition: transform 0.4s ease-out;
}
#mobile-menu.hidden {
    transform: translateY(-100%);
}
/* Animated Hamburger */
.menu-toggle .bar { transition: all 0.3s ease; transform-origin: center; }
.menu-toggle.active .bar:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.menu-toggle.active .bar:nth-child(2) { opacity: 0; transform: scale(0); }
.menu-toggle.active .bar:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* --- Ticker Animation --- */
.ticker-wrap { width: 100%; overflow: hidden; }
.ticker-track { display: flex; width: fit-content; }
.ticker-rtl { animation: ticker-rtl 50s linear infinite; } /* Slower */
.ticker-ltr { animation: ticker-ltr 50s linear infinite; } /* Slower */
.ticker-wrap:hover .ticker-track { animation-play-state: paused; }
@keyframes ticker-rtl { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes ticker-ltr { 0% { transform: translateX(-50%); } 100% { transform: translateX(0); } }
.ticker-track > * { flex-shrink: 0; }

/* --- About Page Specific --- */
.skill-bar-bg { background-color: rgba(255, 255, 255, 0.1); }
.skill-bar-fill { width: 0; transition: width 1.5s cubic-bezier(0.165, 0.84, 0.44, 1) 0.3s; /* Added delay */ }
.timeline { position: relative; padding-left: 2.5rem; }
.timeline::before { content: ''; position: absolute; left: calc(1rem - 1px); top: 0; bottom: 0; width: 2px; background-color: rgba(255, 255, 255, 0.1); }
.timeline-item { position: relative; }
.timeline-item::before { content: ''; position: absolute; left: calc(1rem - 0.75rem); top: 0.5rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; background-color: #0A0A0F; border: 3px solid #7c3aed; z-index: 1; } /* Adjusted left, increased size */

/* --- Contact Page Specific --- */
.question-slide { display: none; }
.question-slide.active { display: block; animation: fadeIn 0.5s ease-in-out; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

/* --- Blog Post Specific --- */
.prose { color: #D1D5DB; } /* Tailwind text-gray-300 */
.prose h1, .prose h2, .prose h3 { color: #FFF; }
.prose a { color: #818CF8; } /* Tailwind indigo-400 */
.prose strong { color: #FFF; }
.styled-table { border-collapse: separate; border-spacing: 0; width: 100%; }
.styled-table th { padding: 1rem; text-align: left; border-bottom: 1px solid rgba(255, 255, 255, 0.15); color: white; font-weight: 600; }
.styled-table td { padding: 1rem; border-top: 1px solid rgba(255, 255, 255, 0.08); }

/* --- Responsive Cursor Hide --- */
@media (hover: none) and (pointer: coarse) {
    .cursor-dot, .cursor-outline { display: none; }
    * { cursor: auto !important; }
}

/* Add any other essential custom styles here */