
    /* --- RESET & BASIC SETUP --- */
    * { box-sizing: border-box; outline: none; }
    html, body { width: 100%; height: 100%; }
    
    :root {
        --primary-glow: 0 0 20px rgba(0, 255, 255, 0.5);
        --glass-bg: rgba(10, 10, 15, 0.6);
        --glass-border: rgba(255, 255, 255, 0.1);
        --font-main: 'Rajdhani', sans-serif;
    }

    body {
        margin: 0;
        overflow: hidden;
        background-color: #000;
        font-family: var(--font-main);
        color: white;
        transition: background-color 0.5s ease;
    }
    
    button { 
        background: none; 
        border: none; 
        cursor: pointer; 
        color: inherit; 
        font-family: inherit; 
        padding: 0; 
        font-size: 100%;
    }

    /* --- UTILITIES (Replacing Tailwind) --- */
    
    /* Layout */
    .hidden { display: none !important; }
    .block { display: block; }
    .flex { display: flex; }
    .flex-col { flex-direction: column; }
    .flex-row { flex-direction: row; }
    .justify-between { justify-content: space-between; }
    .justify-center { justify-content: center; }
    .justify-end { justify-content: flex-end; }
    .items-center { align-items: center; }
    .items-start { align-items: flex-start; }
    .items-end { align-items: flex-end; }
    .gap-2 { gap: 0.5rem; }
    
    /* Positioning */
    .absolute { position: absolute; }
    .fixed { position: fixed; }
    .relative { position: relative; }
    .inset-0 { top: 0; right: 0; bottom: 0; left: 0; }
    .top-0 { top: 0; }
    .left-0 { left: 0; }
    .top-1-2 { top: 50%; }
    .left-1-2 { left: 50%; }
    .transform-center { transform: translate(-50%, -50%); }
    .z-0 { z-index: 0; }
    .z-10 { z-index: 10; }
    .z-20 { z-index: 20; }
    .z-50 { z-index: 50; }
    .pointer-events-none { pointer-events: none; }
    .pointer-events-auto { pointer-events: auto; }

    /* Sizing */
    .w-full { width: 100%; }
    .h-full { height: 100%; }
    .w-64 { width: 16rem; }
    .w-12 { width: 3rem; }
    .h-12 { height: 3rem; }
    .w-8 { width: 2rem; }
    .h-8 { height: 2rem; }
    .w-4 { width: 1rem; }
    .h-4 { height: 1rem; }
    .w-2 { width: 0.5rem; }
    .h-2 { height: 0.5rem; }
    .w-16 { width: 4rem; }
    .max-w-md { max-width: 28rem; }

    /* Spacing */
    .p-2 { padding: 0.5rem; }
    .p-3 { padding: 0.75rem; }
    .p-4 { padding: 1rem; }
    .p-5 { padding: 1.25rem; }
    .p-6 { padding: 1.5rem; }
    .p-8 { padding: 2rem; }
    
    .m-0 { margin: 0; }
    .mt-2 { margin-top: 0.5rem; }
    .mt-4 { margin-top: 1rem; }
    .mt-8 { margin-top: 2rem; }
    .mb-1 { margin-bottom: 0.25rem; }
    .mb-2 { margin-bottom: 0.5rem; }
    .mb-4 { margin-bottom: 1rem; }

    /* Typography */
    .text-center { text-align: center; }
    .text-left { text-align: left; }
    .text-xs { font-size: 0.75rem; line-height: 1rem; }
    .text-sm { font-size: 0.875rem; line-height: 1.25rem; }
    .text-xl { font-size: 1.25rem; line-height: 1.75rem; }
    .text-2xl { font-size: 1.5rem; line-height: 2rem; }
    .text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
    
    .font-bold { font-weight: 700; }
    .font-normal { font-weight: 400; }
    
    .tracking-wider { letter-spacing: 0.05em; }
    .tracking-widest { letter-spacing: 0.1em; }
    .uppercase { text-transform: uppercase; }
    .whitespace-pre-line { white-space: pre-line; }
    .leading-tight { line-height: 1.25; }

    .text-white { color: #fff; }
    .text-black { color: #000; }
    .text-gray-300 { color: #d1d5db; }
    .text-gray-400 { color: #9ca3af; }
    .text-gray-500 { color: #6b7280; }
    .text-cyan-400 { color: #22d3ee; }

    /* Appearance & Effects */
    .opacity-0 { opacity: 0; }
    .border { border-width: 1px; border-style: solid; }
    .border-white { border-color: #fff; }
    .border-white-20 { border-color: rgba(255,255,255,0.2); }
    .border-white-30 { border-color: rgba(255,255,255,0.3); }
    .rounded { border-radius: 0.25rem; }
    .rounded-full { border-radius: 9999px; }

    .bg-transparent { background-color: transparent; }
    .bg-black { background-color: #000; }
    .bg-black-70 { background-color: rgba(0,0,0,0.7); }
    .bg-white-10 { background-color: rgba(255,255,255,0.1); }
    .bg-white-20 { background-color: rgba(255,255,255,0.2); }

    /* Specific Logic Colors */
    .bg-red-500 { background-color: #ef4444; }
    .bg-green-500 { background-color: #22c55e; }
    .bg-blue-500 { background-color: #3b82f6; }
    .bg-yellow-500 { background-color: #eab308; }
    .bg-purple-500 { background-color: #a855f7; }
    .bg-orange-500 { background-color: #f97316; }
    .bg-cyan-500 { background-color: #06b6d4; }
    .bg-white { background-color: #ffffff; }

    /* Grid System */
    .grid { display: grid; }
    .grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

    /* Transitions */
    .transition-opacity { transition: opacity 1s ease; }
    .transition-all { transition: all 0.3s ease; }
    .transition-colors { transition: background-color 0.2s, color 0.2s, border-color 0.2s; }
    .duration-300 { transition-duration: 300ms; }
    .duration-500 { transition-duration: 500ms; }
    .duration-1000 { transition-duration: 1000ms; }

    /* --- CUSTOM COMPONENTS & INTERACTIVITY --- */
    
    /* High Contrast Mode */
    body.high-contrast {
        background-color: #000 !important;
        color: #FFFF00 !important;
    }
    body.high-contrast .glass-panel {
        background: #000 !important;
        border: 2px solid #FFFF00 !important;
        box-shadow: none !important;
    }
    body.high-contrast button {
        background: #000 !important;
        border: 2px solid #fff !important;
        color: #fff !important;
    }
    body.high-contrast button.active {
        background: #FFFF00 !important;
        color: #000 !important;
    }

    /* Glassmorphism UI */
    .glass-panel {
        background: var(--glass-bg);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border: 1px solid var(--glass-border);
        border-radius: 16px;
        box-shadow: 0 4px 30px rgba(0, 0, 0, 0.5);
        transition: all 0.3s ease;
    }

    /* Hover States (Renamed for pure CSS compatibility) */
    .hover-bg-white:hover { background-color: #fff; }
    .hover-text-black:hover { color: #000; }
    .hover-bg-white-10:hover { background-color: rgba(255,255,255,0.1); }
    .hover-bg-white-20:hover { background-color: rgba(255,255,255,0.2); }

    canvas {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        z-index: 0;
    }
    /* Video element for MediaPipe (Hidden but active) */
    #input_video {
        display: none;
        transform: scaleX(-1);
    }
    /* Loading Screen */
    .loader-spinner {
        width: 50px;
        height: 50px;
        border: 3px solid rgba(255,255,255,0.3);
        border-radius: 50%;
        border-top-color: #fff;
        animation: spin 1s ease-in-out infinite;
    }
    @keyframes spin {
        to { transform: rotate(360deg); }
    }
    /* Custom Scrollbar */
    ::-webkit-scrollbar {
        width: 6px;
    }
    ::-webkit-scrollbar-track {
        background: transparent;
    }
    ::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.2);
        border-radius: 3px;
    }
    /* Mic Pulse Animation */
    .mic-listening {
        animation: pulse-red 1.5s infinite;
        background-color: rgba(239, 68, 68, 0.2);
        border-color: rgba(239, 68, 68, 1);
    }
    @keyframes pulse-red {
        0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
        70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
        100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
    }
    /* Color Preset Buttons */
    .color-preset {
        width: 24px;
        height: 24px;
        border-radius: 50%;
        border: 1px solid rgba(255,255,255,0.2);
        cursor: pointer;
        transition: transform 0.2s;
    }
    .color-preset:hover {
        transform: scale(1.2);
    }
    /* Hand Cursor Pinching */
    .pinching {
        background-color: yellow !important;
    }
    /* Inputs */
    input[type=range] {
        width: 100%;
        cursor: pointer;
    }
    
    /* Icons */
    .icon-sm { width: 1.25rem; height: 1.25rem; }

    /* -------------------------------------------------
    CANVAS FILTER WRAPPER (Colorblind Modes)
    ------------------------------------------------- */
    #canvas-filter-wrapper {
        position: fixed;
        inset: 0;
        width: 100%;
        height: 100%;
        pointer-events: none;
        z-index: 0;
        transition: filter 0.5s ease;
    }
    #canvas-filter-wrapper.colorblind-protan {
        filter: hue-rotate(180deg) saturate(1.5) !important;
    }
    #canvas-filter-wrapper.colorblind-deutan {
        filter: saturate(0.5) brightness(1.2) !important;
    }
    body.high-contrast #canvas-filter-wrapper {
        filter: contrast(1.5) brightness(1.2);
    }
