@import url('https://fonts.googleapis.com/css2?family=SF+Mono:wght@400;500;600&family=JetBrains+Mono:wght@300;400;500;600&display=swap');
        
        html {
            height: 100%;
        }

        * {
            box-sizing: border-box;
        }
        
        body {
            font-family: 'SF Mono', 'JetBrains Mono', 'Monaco', 'Menlo', 'Courier New', monospace;
            background: #1a1a1a;
            color: #a0a0a0;
            margin: 0;
            padding: 0;
            height: 100%;
            position: relative; 
            overflow: hidden; /* Absolutely prevent body from scrolling */
        }
        
        .terminal-window {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%; /* Fallback for older browsers */
            height: 100dvh; /* Dynamic viewport height */
            display: flex;
            flex-direction: column;
            overflow: hidden; /* Prevent this container from scrolling */
            background: #1e1e1e;
            border-radius: 8px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
            margin: 0; /* Use full viewport */
            /* --- Flexbox Layout --- */
            display: flex;
            flex-direction: column;
        }
        
        .terminal-header {
            background: linear-gradient(180deg, #3c3c3c 0%, #2a2a2a 100%);
            padding: 12px 16px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            border-bottom: 1px solid #333;
            min-height: 44px;
            /* --- Flexbox Child --- */
            flex-shrink: 0; /* Prevent header from shrinking */
            z-index: 10;
        }
        
        .traffic-lights {
            display: flex;
            align-items: center;
            gap: 8px;
        }
        
        .traffic-light {
            width: 12px;
            height: 12px;
            border-radius: 50%;
            border: 0.5px solid rgba(0, 0, 0, 0.2);
        }
        
        .traffic-light.red { background: #ff5f57; }
        .traffic-light.yellow { background: #ffbd2e; }
        .traffic-light.green { background: #28ca42; }
        
        .terminal-title {
            color: #fff;
            font-size: 13px;
            font-weight: 500;
            text-align: center;
            flex: 1;
            margin-left: -60px; /* Offset traffic lights width */
        }

        .terminal-version {
            color: #666;
            font-size: 11px;
            font-weight: 400;
            margin-right: 0;
            flex-shrink: 0;
        }
        
        .title-generating {
            opacity: 0.8;
        }
        
        .loading-dots {
            animation: loadingDots 1.5s infinite;
        }
        
        @keyframes loadingDots {
            0%, 20% { opacity: 0; }
            50% { opacity: 1; }
            80%, 100% { opacity: 0; }
        }
        
        
        .terminal-body {
            flex: 1 1 auto; /* Allow body to grow and shrink, and set auto basis */
            background: #1e1e1e;
            color: #a0a0a0;
            padding: 12px 16px;
            font-size: 13px;
            line-height: 1.4;
            min-height: 0; /* Critical for flexbox scrolling */
            overflow-y: auto; /* This is the single scrollable container */
            -webkit-overflow-scrolling: touch;
            overscroll-behavior-y: contain; /* Prevent bounce on the main scroll area */
        }
        
        .terminal-content {
            /* Content wrapper, no flex properties needed here */
            margin-bottom: 8px;
        }
        
        .terminal-action-bar {
            flex-shrink: 0; /* Prevent action bar from shrinking */
            padding: 10px 20px;
            border-top: 1px solid #333;
            background: #1e1e1e;
            display: flex;
            align-items: center;
            justify-content: flex-end; /* Align buttons to the right */
            gap: 16px;
            min-height: 36px;
        }
        
        .action-button {
            background: transparent;
            border: 1px solid #00ff41;
            color: #00ff41;
            font-family: inherit;
            font-size: 10px;
            font-weight: 500;
            padding: 4px 8px;
            border-radius: 2px;
            cursor: pointer;
            transition: all 0.2s ease;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            min-height: 24px;
            flex-shrink: 0;
        }
        
        .action-button:hover:not(:disabled) {
            background: rgba(0, 255, 65, 0.1);
            border-color: #00ff41;
        }
        
        .action-button:active:not(:disabled) {
            background: rgba(0, 255, 65, 0.2);
            transform: translateY(1px);
        }
        
        .action-button.active {
            background: rgba(0, 255, 65, 0.2);
            color: #00ff41;
            border-color: #00ff41;
        }

        .action-button:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            border-color: #666;
            color: #666;
        }
        
        .terminal-input-area {
            position: relative;
            padding: 8px 0px 4px 8px; /* Remove right padding for scrollbar alignment */
            background: #1e1e1e;
            border-top: 1px solid #00ff41;
            min-height: 40px;
            /* --- Flexbox Child --- */
            flex-shrink: 0; /* Prevent footer from shrinking */
            z-index: 10;
        }
        
        /* Safe area handling for mobile devices with notches */
        @supports (padding-bottom: env(safe-area-inset-bottom)) {
            .terminal-input-area {
                padding-bottom: calc(4px + env(safe-area-inset-bottom));
            }
        }
        
        /* Conversation Selection Modal Styles */
        .conversation-selection-modal {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: #1e1e1e;
            padding: 16px;
            z-index: 1000;
            display: flex;
            flex-direction: column;
        }
        
        .conversation-selection-header {
            color: #00ff41;
            font-weight: 500;
            padding: 0 0 12px 0;
            border-bottom: 1px solid #333;
            margin-bottom: 12px;
            flex-shrink: 0;
        }
        
        .conversation-list {
            flex: 1;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            margin-bottom: 12px;
        }
        
        .conversation-item {
            display: flex;
            align-items: center;
            padding: 8px 16px;
            cursor: pointer;
            transition: background-color 0.15s ease;
            min-height: 36px;
        }
        
        .conversation-item:hover {
            background: rgba(255, 255, 255, 0.05);
        }
        
        .conversation-item.selected {
            background: rgba(0, 255, 65, 0.1);
            color: #00ff41;
        }
        
        .conversation-indicator {
            width: 12px;
            flex-shrink: 0;
            font-weight: 500;
            color: #00ff41;
        }
        
        .conversation-title {
            flex: 1;
            margin-right: 8px;
            font-weight: 400;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        
        .conversation-meta {
            color: #666;
            font-size: 11px;
            white-space: nowrap;
            flex-shrink: 0;
        }
        
        .conversation-selection-footer {
            color: #666;
            font-size: 11px;
            padding: 12px 0 0 0;
            border-top: 1px solid #333;
            text-align: center;
            flex-shrink: 0;
        }
        
        .mobile-instructions {
            display: none;
        }
        
        .desktop-instructions {
            display: inline;
        }
        
        /* iOS-specific scrolling fix for all webkit browsers */
        @supports (-webkit-appearance: none) {
            @media (max-width: 768px) {
                .textarea-wrapper {
                    /* Only show scrollbar when needed on iOS webkit browsers */
                    overflow-y: auto !important;
                    -webkit-overflow-scrolling: touch !important;
                    /* Ensure minimum height for iOS scroll detection */
                    min-height: 20px;
                    /* Prevent scroll gesture propagation when no content to scroll */
                    overscroll-behavior-y: contain !important;
                }
            }
        }

        /* Consolidated Mobile Styles */
        @media (max-width: 768px) {
            /* Body and viewport adjustments */
            body {
                height: 100svh; /* Small viewport height for mobile browsers */
                height: 100dvh; /* Dynamic viewport height fallback */
                /* Prevent bounce scrolling on iOS */
                /* Enhanced iOS keyboard handling */
                overscroll-behavior: contain; /* Prevent scroll chaining during keyboard state */
            }
            
            /* Terminal window adjustments */
            .terminal-window {
                margin: 0;
                border-radius: 0;
                height: 100vh; /* Fallback for older browsers */
                height: 100dvh; /* Use dynamic viewport height */
                box-shadow: none; /* Remove shadow on mobile for cleaner look */
                /* iOS keyboard state management */
                position: fixed; /* Ensure consistent positioning during keyboard changes */
                overscroll-behavior: contain; /* Prevent scroll propagation */
            }
            
            /* Terminal header adjustments */
            .terminal-header {
                padding: 6px 12px;
                min-height: 32px; /* Reduced header height for more content space */
                flex-shrink: 0; /* Prevent header from shrinking */
            }
            
            .terminal-title {
                font-size: 11px;
            }

            .terminal-version {
                font-size: 9px;
            }
            
            .traffic-light {
                width: 8px;
                height: 8px;
            }
            
            /* Terminal body adjustments */
            .terminal-body {
                padding: 6px 12px;
                font-size: 12px;
                min-height: 0; /* Allow body to shrink if needed */
                /* Keep mobile scrolling capability like desktop */
                flex: 1;
            }
            
            .terminal-content {
                /* Enhanced iOS Safari scrolling support */
                -webkit-overflow-scrolling: touch;
                /* Prevent momentum scrolling interference */
                overscroll-behavior-y: contain;
                /* Ensure content can scroll on iOS */
                touch-action: pan-y;
                /* Added to ensure content scrolls correctly when keyboard is active */
                padding-bottom: 1px; /* Small padding to help with scroll boundary */
            }
            
            /* Action bar adjustments */
            .terminal-action-bar {
                padding: 8px 16px;
                min-height: 32px;
            }
            
            /* Input area adjustments - remove right padding for alignment */
            .terminal-input-area {
                padding: 8px 0px 4px 6px !important; /* Remove right padding for scrollbar alignment */
                /* iOS scrolling compatibility */
                position: relative; /* Ensure proper stacking context */
                isolation: isolate; /* Create new stacking context */
                /* Prevent unintended scroll propagation from input area */
                overscroll-behavior: contain; /* Contain scroll gestures within this area */
            }
            
            .action-button {
                font-size: 9px;
                padding: 3px 6px;
                min-height: 22px;
            }
            
            /* Command dropdown adjustments */
            .command-dropdown {
                max-height: 200px;
                margin-bottom: 4px;
            }
            
            .command-dropdown-header {
                font-size: 10px;
                padding: 6px 8px 3px 8px;
            }
            
            .command-dropdown-item {
                padding: 4px 8px;
            }
            
            .command-dropdown-name {
                font-size: 11px;
                min-width: 100px;
                margin-right: 8px;
            }
            
            .command-dropdown-description {
                font-size: 10px;
            }
            
            .input-prompt {
                font-size: 12px; /* Match mobile terminal input size */
                line-height: 1.4; /* Match mobile terminal-body line-height */
                padding: 2px 0; /* Match textarea padding */
            }
            
            .input-line {
                align-items: flex-start; /* Align to top baseline on mobile */
            }
            
            /* Mobile textarea - let it expand naturally within wrapper constraints */
            .terminal-input {
                font-size: 12px; /* Match mobile terminal-body font size */
                overflow: hidden; /* No scrolling on textarea itself - wrapper handles it */
                /* iOS-friendly properties */
                -webkit-appearance: none; /* Remove iOS default styling */
                border-radius: 0; /* Remove iOS default border radius */
                /* Ensure proper touch behavior only when needed */
                touch-action: auto; /* Allow normal touch interactions */
            }
            
            .terminal-input::-webkit-scrollbar {
                width: 4px;
            }
            
            .terminal-input::-webkit-scrollbar-track {
                background: #1a1a1a;
            }
            
            .terminal-input::-webkit-scrollbar-thumb {
                background: #00ff41;
                border-radius: 2px;
            }
            
            /* Mobile wrapper - wrapper handles height constraint and scrolling */
            .textarea-wrapper {
                max-height: 150px; /* Constrain wrapper height on mobile */
                overflow-y: auto; /* Wrapper handles scrolling */
                overflow-x: hidden; /* Prevent horizontal scroll */
                -webkit-overflow-scrolling: touch; /* Smooth iOS scrolling */
                /* Additional iOS scrolling fixes */
                transform: translateZ(0); /* Force hardware acceleration */
                will-change: scroll-position; /* Optimize for scrolling */
                /* Controlled scroll containment - prevent chaining but allow internal scrolling */
                overscroll-behavior-y: contain; /* Prevent scroll chaining on iOS */
                overscroll-behavior-x: none; /* Allow horizontal scroll if needed */
                /* Ensure touch events work properly */
                touch-action: pan-y; /* Allow vertical panning only */
                /* Force iOS to always recognize as scrollable container */
                min-height: 40px; /* Ensure minimum container size */
            }
            
            /* Force scrollable behavior even when empty */
            .textarea-wrapper:empty::after {
                content: " ";
                display: block;
                height: 1px;
                overflow: hidden;
                visibility: hidden;
            }
            
            .textarea-wrapper::-webkit-scrollbar {
                width: 4px; /* Thinner scrollbar on mobile */
            }
            
            .textarea-wrapper::-webkit-scrollbar-track {
                background: #1a1a1a;
            }
            
            .textarea-wrapper::-webkit-scrollbar-thumb {
                background: #00ff41;
                border-radius: 2px;
            }
            
            /* Terminal body scrollbar adjustments */
            .terminal-body::-webkit-scrollbar {
                width: 4px; /* Match textarea wrapper width */
            }
            
            .terminal-body::-webkit-scrollbar-track {
                background: #1a1a1a;
            }
            
            .terminal-body::-webkit-scrollbar-thumb {
                background: #00ff41;
                border-radius: 2px;
            }
            
            /* Hide scrollbar when not scrolling on mobile */
            .terminal-body {
                scrollbar-width: thin;
                scrollbar-color: #00ff41 #1a1a1a;
            }
            
            /* Conversation selection styles */
            .conversation-item {
                min-height: 44px; /* Better touch targets */
                padding: 10px 16px; /* Slightly more padding for mobile */
            }
            
            .conversation-selection-header {
                font-size: 14px; /* Larger header on mobile */
            }
            
            .conversation-title {
                font-size: 14px; /* Readable title size */
            }
            
            .conversation-meta {
                font-size: 12px; /* Increase from 10px to 12px for better readability */
            }
            
            .conversation-selection-footer {
                font-size: 12px; /* Increase from 10px to 12px */
            }
            
            .mobile-instructions {
                display: inline;
            }
            
            .desktop-instructions {
                display: none;
            }
            
            /* Splash screen mobile adjustments */
            .ascii-character {
                font-size: 11px;
            }
            
            .ascii-title {
                font-size: 14px;
            }
            
            .splash-message {
                font-size: 12px;
                padding: 0 20px;
            }
            
            .skip-hint {
                font-size: 10px;
                bottom: 20px;
            }
            
            .ascii-ground {
                font-size: 12px;
            }
            
            .password-prompt {
                font-size: 12px;
                padding: 0 20px;
            }
            
            .password-input {
                font-size: 12px;
                min-width: 180px;
                padding: 6px 10px;
            }
        }
        
        /* Small mobile devices - all styles */
        @media (max-width: 480px) {
            /* Splash screen adjustments */
            .ascii-character {
                font-size: 10px;
            }
            
            .ascii-title {
                font-size: 12px;
            }
            
            .splash-message {
                font-size: 11px;
            }
            
            .ascii-ground {
                font-size: 10px;
            }
            
            .password-prompt {
                font-size: 11px;
                padding: 0 15px;
            }
            
            .password-input {
                font-size: 11px;
                min-width: 160px;
                padding: 5px 8px;
            }
        }
        
        .terminal-line {
            margin-bottom: 2px;
            white-space: pre-wrap;
            word-break: break-word;
            line-height: 1.4; /* Compact but readable */
        }
        
        .command-line {
            color: #a0a0a0;
            margin: 18px 0 12px 0; /* Larger top margin for conversation separation */
        }
        
        /* First command line should be closer to header */
        .command-line:first-of-type {
            margin-top: 8px; /* Smaller top margin for first message */
        }
        
        .command-prompt {
            color: #00ff41;
            margin-right: 4px;
        }
        
        .command-text {
            color: #fff;
        }
        
        .output-line {
            color: #a0a0a0;
            margin-left: 0;
            margin-bottom: 3px; /* Tighter paragraph spacing */
        }
        
        /* Enhanced formatting for different content types */
        .output-header {
            color: #00ff60;
            font-weight: 600;
            margin-top: 16px;
            margin-bottom: 8px;
            border-bottom: 1px solid #333;
            padding-bottom: 2px;
        }
        
        .output-bold {
            color: #00ff60; /* Brighter green for better visibility */
            font-weight: 700; /* Bolder weight */
            text-shadow: 0 0 2px rgba(0, 255, 96, 0.3); /* Subtle glow effect */
        }
        
        .output-list-item {
            margin-left: 16px;
            margin-bottom: 6px;
            position: relative;
        }
        
        .output-list-item::before {
            content: "•";
            color: #00ff41;
            position: absolute;
            left: -12px;
        }
        
        .output-numbered-item {
            margin-left: 20px;
            margin-bottom: 6px;
        }
        
        .output-section {
            margin-bottom: 16px;
        }
        
        /* Improve readability for long content */
        .output-line:empty {
            margin-bottom: 12px; /* Space for paragraph breaks */
        }
        
        /* Better visual hierarchy for nested content */
        .output-list-item .output-bold,
        .output-numbered-item .output-bold {
            color: #00ff60; /* Slightly different color for bold in lists */
        }
        
        /* Subtle styling for better content separation */
        .output-header + .output-line,
        .output-header + .output-list-item,
        .output-header + .output-numbered-item {
            margin-top: 4px; /* Reduce space immediately after headers */
        }
        
        /* JSON Display Styling */
        .json-display {
            height: 100%;
            overflow-y: auto;
        }
        
        .json-content {
            font-family: 'SF Mono', 'JetBrains Mono', 'Monaco', monospace;
            font-size: 12px;
            line-height: 1.4;
            color: #a0a0a0;
            white-space: pre-wrap; /* Preserves formatting but allows wrapping */
            word-break: break-word; /* Breaks long strings to prevent overflow */
            padding: 8px 0;
        }
        
        .json-key {
            color: #00ff60; /* Bright green for keys */
            font-weight: 500;
        }
        
        .json-string {
            color: #ffffff; /* White for string values */
        }
        
        .json-number {
            color: #ffab00; /* Orange for numbers */
        }
        
        .json-boolean {
            color: #ff6b6b; /* Red for booleans */
        }
        
        .status-line {
            color: #00ff41;
            opacity: 0.8;
        }
        
        .error-line {
            color: #ff6b6b;
        }
        
        .system-line {
            color: #ffab00;
            font-family: inherit;
            margin-bottom: 8px;
            padding: 8px 12px;
            background: rgba(255, 171, 0, 0.05);
            border-left: 2px solid #ffab00;
            border-radius: 2px;
            white-space: pre-line;
            line-height: 1.4;
        }
        
        /* Command Dropdown Styling */
        .command-dropdown {
            position: absolute;
            bottom: 100%;
            left: 0;
            right: 0;
            margin-bottom: 8px;
            background: #2a2a2a;
            border: 1px solid #444;
            border-radius: 4px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
            z-index: 1001;
            max-height: 300px;
            overflow: hidden;
            font-family: inherit;
            display: block; /* Ensure it's displayed */
        }
        
        .command-dropdown-header {
            color: #00ff60;
            font-weight: 600;
            font-size: 11px;
            padding: 8px 12px 4px 12px;
            border-bottom: 1px solid #444;
            background: #333;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        
        .command-dropdown-content {
            padding: 4px 0;
        }
        
        .command-dropdown-item {
            padding: 6px 12px;
            cursor: pointer;
            transition: background-color 0.15s ease;
            border-bottom: 1px solid transparent;
            display: flex;
            align-items: center;
        }
        
        .command-dropdown-item:hover,
        .command-dropdown-item-selected {
            background: rgba(0, 255, 65, 0.08);
            border-bottom-color: rgba(0, 255, 65, 0.2);
        }
        
        .command-dropdown-item-selected {
            background: rgba(0, 255, 65, 0.12);
            border-left: 2px solid #00ff60;
        }
        
        .command-dropdown-item:last-child {
            border-bottom: none;
        }
        
        .command-dropdown-name {
            color: #00ff60;
            font-weight: 500;
            font-size: 12px;
            min-width: 140px;
            margin-right: 12px;
            font-family: inherit;
        }
        
        .command-dropdown-description {
            color: #a0a0a0;
            font-size: 11px;
            line-height: 1.3;
            font-family: inherit;
        }
        
        .command-dropdown-empty .command-dropdown-name {
            color: #ffab00;
        }
        
        .command-dropdown-empty .command-dropdown-description {
            color: #ffab00;
            opacity: 0.8;
        }
        
        .reasoning-output {
            color: #ffab00;
            opacity: 0.9;
            margin-left: 16px;
            margin-bottom: 12px;
            padding: 8px 12px;
            background: rgba(255, 171, 0, 0.05);
            border-left: 2px solid #ffab00;
            font-size: 12px;
            line-height: 1.4;
        }
        
        .input-line {
            display: flex;
            align-items: flex-start;
            color: #a0a0a0;
            margin-top: 4px;
            min-height: 24px; /* Ensure minimum touch target size */
        }
        
        .input-prompt {
            color: #00ff41;
            margin-right: 8px;
            flex-shrink: 0;
            font-size: 13px; /* Match terminal-body font size */
            line-height: 1.4; /* Match terminal-body line-height */
        }
        
        .textarea-wrapper {
            flex: 1;
            max-height: 200px; /* Wrapper controls the height limit */
            overflow-y: auto; /* Wrapper handles scrolling */
            overflow-x: hidden; /* Prevent horizontal scroll */
            border: none;
            background: transparent;
            border-radius: 0;
            /* Ensure smooth expansion */
            min-height: 0; /* Allow shrinking in flex layout */
            /* Custom scrollbar styling */
            scrollbar-width: thin;
            scrollbar-color: #00ff41 #1a1a1a;
        }
        
        .textarea-wrapper::-webkit-scrollbar {
            width: 6px;
        }
        
        .textarea-wrapper::-webkit-scrollbar-track {
            background: #1a1a1a;
        }
        
        .textarea-wrapper::-webkit-scrollbar-thumb {
            background: #00ff41;
            border-radius: 3px;
        }
        
        .textarea-wrapper::-webkit-scrollbar-thumb:hover {
            background: #00cc35;
        }
        
        
        .terminal-input {
            width: 100%; /* Full width within wrapper */
            background: transparent;
            border: none;
            outline: none;
            color: #fff;
            font-family: inherit;
            font-size: 13px; /* Match terminal-body font size */
            line-height: 1.4; /* Match terminal-body line-height */
            min-height: 20px; /* Minimal starting height */
            padding: 2px 0; /* Small padding for better touch targets */
            resize: none; /* Disable textarea resize handle */
            overflow: hidden; /* No scrolling - wrapper handles it */
            white-space: pre-wrap; /* Preserve whitespace and wrap text */
            word-break: break-word; /* Break long words */
            height: auto;
            /* Ensure smooth flex expansion */
            flex-shrink: 0; /* Prevent textarea from shrinking unexpectedly */
        }
        
        /* Let textarea expand naturally within wrapper */
        textarea.terminal-input {
            min-height: 40px; /* Comfortable starting height */
            max-height: none; /* Remove all height constraints */
            height: auto; /* Let content determine height */
        }
        
        .terminal-input::placeholder {
            color: #666;
        }
        
        
        .cursor-blink {
            animation: blink 1s infinite;
        }
        
        @keyframes blink {
            0%, 50% { opacity: 1; }
            51%, 100% { opacity: 0; }
        }
        
        .status-indicator {
            animation: pulse 2s infinite;
        }
        
        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.6; }
        }
        
        
        
        
        /* iOS devices will use standard font sizes for consistency */
        
        
        /* Terminal Theme Scrollbars - Note: Safari doesn't support custom scrollbar colors */
        .terminal-body::-webkit-scrollbar {
            width: 6px;
        }
        
        .terminal-body::-webkit-scrollbar-track {
            background: #1a1a1a;
        }
        
        .terminal-body::-webkit-scrollbar-thumb {
            background: #00ff41;
            border-radius: 3px;
        }
        
        .terminal-body::-webkit-scrollbar-thumb:hover {
            background: #00cc35;
        }
        
        
        
        /* Desktop layout adjustments */
        @media (min-width: 769px) {
            .terminal-window {
                margin: 4px;
                border-radius: 8px;
                box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
                height: 100vh;
            }
        }
        
        /* Specific iOS Safari fixes */
        
        /* Splash Screen Styles */
        .splash-screen {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            background: #1a1a1a;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            z-index: 9999;
            font-family: 'SF Mono', 'JetBrains Mono', 'Monaco', 'Menlo', 'Courier New', monospace;
            color: #a0a0a0;
            cursor: pointer;
        }
        
        .splash-screen.fade-out {
            animation: fadeOut 0.5s ease-out forwards;
        }
        
        @keyframes fadeOut {
            from { opacity: 1; }
            to { opacity: 0; }
        }
        
        .splash-animation-container {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin-bottom: 40px;
        }
        
        .ascii-character {
            font-size: 14px;
            line-height: 1.2;
            white-space: pre;
            color: #00ff41;
            text-align: center;
            position: relative;
            transition: transform 0.5s ease-in-out;
        }
        
        .ascii-character.walking1 {
            animation: walk1 0.5s ease-in-out;
            background: linear-gradient(135deg, #00ff41, #00cc35);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-shadow: 0 0 10px rgba(0, 255, 65, 0.3);
        }
        
        .ascii-character.walking2 {
            animation: walk2 0.5s ease-in-out;
            background: linear-gradient(135deg, #00ff41, #00cc35);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-shadow: 0 0 10px rgba(0, 255, 65, 0.3);
        }
        
        .ascii-character.walking3 {
            animation: walk3 0.5s ease-in-out;
            background: linear-gradient(135deg, #00ff41, #00cc35);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-shadow: 0 0 10px rgba(0, 255, 65, 0.3);
        }
        
        .ascii-character.stumbling {
            animation: stumble 0.5s ease-in-out;
            background: linear-gradient(135deg, #ffab00, #ff8800);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-shadow: 0 0 15px rgba(255, 171, 0, 0.4);
        }
        
        .ascii-character.falling {
            animation: fall 0.5s ease-in-out;
            background: linear-gradient(135deg, #ffab00, #ff6600);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-shadow: 0 0 15px rgba(255, 171, 0, 0.4);
        }
        
        .ascii-character.crashed {
            animation: crash 1s ease-in-out;
            background: linear-gradient(135deg, #ff6b6b, #ff3333);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-shadow: 0 0 20px rgba(255, 107, 107, 0.5);
        }
        
        .ascii-character.bouncing {
            animation: bounce 0.6s ease-in-out;
            background: linear-gradient(135deg, #ffab00, #ffcc44);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-shadow: 0 0 15px rgba(255, 171, 0, 0.4);
        }
        
        .ascii-character.interactive {
            background: linear-gradient(135deg, #00ff41, #44ff77);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-shadow: 0 0 15px rgba(0, 255, 65, 0.5);
            transition: all 0.3s ease;
            cursor: pointer;
        }
        
        .ascii-character.interactive:hover {
            transform: scale(1.05);
            text-shadow: 0 0 25px rgba(0, 255, 65, 0.7);
        }
        
        .ascii-character:not(.walking1):not(.walking2):not(.walking3):not(.stumbling):not(.falling):not(.crashed):not(.bouncing) {
            animation: breathe 3s ease-in-out infinite;
        }
        
        @keyframes breathe {
            0%, 100% { transform: translateY(0px) scale(1); }
            50% { transform: translateY(-2px) scale(1.01); }
        }
        
        .ascii-ground {
            font-size: 14px;
            line-height: 1.2;
            white-space: pre;
            color: #444;
            text-align: center;
            margin-top: 5px;
            position: relative;
            z-index: 1;
        }
        
        @keyframes walk1 {
            0% { transform: translateX(-50px); }
            100% { transform: translateX(-25px); }
        }
        
        @keyframes walk2 {
            0% { transform: translateX(-25px); }
            100% { transform: translateX(0px); }
        }
        
        @keyframes walk3 {
            0% { transform: translateX(0px); }
            100% { transform: translateX(25px); }
        }
        
        @keyframes stumble {
            0% { transform: translateX(25px) rotate(0deg); }
            50% { transform: translateX(35px) rotate(-5deg); }
            100% { transform: translateX(45px) rotate(-10deg); }
        }
        
        @keyframes fall {
            0% { transform: translateX(45px) rotate(-10deg); }
            50% { transform: translateX(55px) rotate(-20deg) translateY(5px); }
            100% { transform: translateX(65px) rotate(-25deg) translateY(10px); }
        }
        
        @keyframes crash {
            0% { 
                transform: translateX(65px) rotate(-25deg) translateY(10px);
                opacity: 1;
            }
            20% { 
                transform: translateX(70px) rotate(-30deg) translateY(15px);
                opacity: 0.8;
                filter: blur(1px);
            }
            40% { 
                transform: translateX(70px) rotate(-30deg) translateY(15px);
                opacity: 1;
                filter: blur(0px);
            }
            60% { 
                transform: translateX(70px) rotate(-30deg) translateY(15px);
                opacity: 0.8;
                filter: blur(1px);
            }
            100% { 
                transform: translateX(70px) rotate(-30deg) translateY(15px);
                opacity: 1;
                filter: blur(0px);
            }
        }
        
        @keyframes bounce {
            0% { 
                transform: translateX(70px) rotate(-30deg) translateY(15px);
                opacity: 0.8;
            }
            30% { 
                transform: translateX(70px) rotate(-10deg) translateY(5px);
                opacity: 1;
            }
            60% { 
                transform: translateX(70px) rotate(0deg) translateY(10px);
                opacity: 1;
            }
            100% { 
                transform: translateX(70px) rotate(0deg) translateY(10px);
                opacity: 1;
            }
        }
        
        .ascii-title {
            font-size: 16px;
            line-height: 1.2;
            white-space: pre;
            color: #00ff41;
            text-align: center;
            margin-top: 30px;
            opacity: 0;
        }
        
        .ascii-title.show {
            animation: typewriter 2s ease-in-out forwards;
        }
        
        @keyframes typewriter {
            0% { 
                opacity: 1;
                width: 0;
                overflow: hidden;
            }
            100% { 
                opacity: 1;
                width: 100%;
            }
        }
        
        .splash-message {
            color: #a0a0a0;
            font-size: 13px;
            margin-top: 20px;
            text-align: center;
            opacity: 0;
        }
        
        .splash-message.show {
            animation: fadeIn 1s ease-in-out forwards;
        }
        
        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }
        
        .password-container {
            margin-top: 30px;
            text-align: center;
            opacity: 0;
        }
        
        .password-container.show {
            animation: fadeIn 1s ease-in-out forwards;
        }
        
        .password-prompt {
            color: #00ff41;
            font-size: 13px;
            margin-bottom: 15px;
            font-family: 'SF Mono', 'JetBrains Mono', 'Monaco', 'Menlo', 'Courier New', monospace;
        }
        
        .password-input {
            background: rgba(0, 0, 0, 0.8);
            border: 1px solid #00ff41;
            color: #00ff41;
            font-family: 'SF Mono', 'JetBrains Mono', 'Monaco', 'Menlo', 'Courier New', monospace;
            font-size: 13px;
            padding: 8px 12px;
            border-radius: 4px;
            outline: none;
            text-align: center;
            min-width: 200px;
        }
        
        .password-input:focus {
            border-color: #00ff60;
            box-shadow: 0 0 10px rgba(0, 255, 65, 0.3);
        }
        
        .password-input::placeholder {
            color: #666;
        }
        
        
