:root {
    --space-bg: #050505;
    --primary: #0066FF;
    --font-main: 'Pretendard', sans-serif;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: var(--font-main);
    cursor: none !important; /* Force custom cursor on desktop */
}

@media (max-width: 768px) {
    * { cursor: auto !important; }
}

body {
    background-color: var(--space-bg);
    color: white;
}

/* Custom Scrollbar */
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--space-bg); }
::-webkit-scrollbar-thumb { background: #1a1a1a; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--primary); }

/* Custom Cursor */
.custom-cursor {
    position: fixed;
    width: 8px;
    height: 8px;
    background: white;
    border-radius: 50%;
    pointer-events: none;
    z-index: 9999;
    transform: translate(-50%, -50%);
    mix-blend-mode: difference;
    transition: width 0.3s, height 0.3s;
}

.custom-cursor-follower {
    position: fixed;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    pointer-events: none;
    z-index: 9998;
    transform: translate(-50%, -50%);
    transition: width 0.3s, height 0.3s, background 0.3s;
}

.custom-cursor.active {
    width: 20px;
    height: 20px;
}

.custom-cursor-follower.active {
    width: 60px;
    height: 60px;
    background: rgba(255,255,255,0.1);
    border-color: transparent;
}

/* Background Visuals */
.bg-deep-space {
    background-color: var(--space-bg);
}

.noise-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99;
    pointer-events: none;
    opacity: 0.05;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}

.fluid-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: -1;
    filter: blur(120px);
}

.blob {
    position: absolute;
    border-radius: 50%;
    opacity: 0.12;
}

.blob-1 { width: 800px; height: 800px; top: -10%; left: -10%; background: #0066FF; }
.blob-2 { width: 600px; height: 600px; bottom: -5%; right: -5%; background: #7000FF; }
.blob-3 { width: 500px; height: 500px; top: 40%; left: 60%; background: #00CCFF; }

/* Typography */
.glow-text { text-shadow: 0 0 15px rgba(0, 102, 255, 0.6); }
.text-stroke { -webkit-text-stroke: 1px rgba(255, 255, 255, 0.2); }

/* Animation Utils */
.reveal-text { overflow: hidden; }

/* Bento Spacing Fixes */
section { position: relative; }
#services { 
    margin-top: 0;
    padding-bottom: 80px; /* Reduced bottom gap as requested */
}

.service-bento-card {
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.4s ease;
    border: 1px solid rgba(255,255,255,0.05);
}

.service-bento-card:hover {
    border-color: rgba(0, 102, 255, 0.4);
    background: rgba(255,255,255,0.08);
}

.hover-lift:hover {
    transform: translateY(-10px);
}

/* Process Section Tweaks */
.process-card {
    transition: border-color 0.4s ease, transform 0.4s ease;
}

@media (max-width: 768px) {
    .hero-title { font-size: 3.5rem; }
}
