        :root {
            --desk-color: #2c3e50;
            --plastic-color: #d4d0c8;
            --plastic-dark: #b0aca3;
            --screen-bg: #0a0800;
            --amber: #ffb000;
            --amber-dim: #8a5f00;
            --key-color: #e8e6df;
            --key-shadow: #a09d96;
        }

        body {
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 100vh;
            margin: 0;
            background-color: #1a1a1a; /* Background behind the desk */
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
            -webkit-touch-callout: none;
            font-family: Helvetica, Arial, sans-serif;
            padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px);
            overflow: hidden;
        }

        .app-container {
            width: min(100vw, 500px);
            height: 100vh;
            display: flex;
            flex-direction: column;
            background: var(--desk-color);
            box-shadow: 0 0 30px rgba(0,0,0,0.8);
            position: relative;
        }

        /* --- TOP HALF: COMPUTER --- */
        .computer-section {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: flex-end;
            padding: 20px;
            padding-bottom: 10px;
            box-sizing: border-box;
            background: linear-gradient(to bottom, #34495e, #2c3e50);
            border-bottom: 4px solid #1a252f;
        }

        /* Monitor */
        .monitor-bezel {
            background: var(--plastic-color);
            padding: clamp(10px, 3vw, 20px);
            padding-bottom: clamp(25px, 6vw, 40px);
            border-radius: 15px 15px 20px 20px;
            box-shadow: 
                inset -2px -2px 10px rgba(0,0,0,0.1), 
                inset 2px 2px 5px rgba(255,255,255,0.5),
                0 15px 25px rgba(0,0,0,0.5);
            width: 90%;
            max-width: 400px;
            position: relative;
            margin-bottom: 15px;
        }

        .screen-container {
            aspect-ratio: 4 / 3;
            background: var(--screen-bg);
            border-radius: 20px; /* Slightly rounded rectangle */
            border: clamp(3px, 1vw, 6px) solid var(--plastic-dark);
            position: relative;
            overflow: hidden;
            box-shadow: inset 0 0 30px rgba(0,0,0,1);
        }

        /* CRT Screen Curve Effect */
        .screen-container::before {
            content: " ";
            display: block;
            position: absolute;
            top: 0; left: 0; bottom: 0; right: 0;
            background: radial-gradient(circle, rgba(255,255,255,0.05) 0%, rgba(0,0,0,0.4) 100%);
            pointer-events: none;
            z-index: 2;
        }

        .screen-content {
            position: absolute;
            top: 0; left: 0; right: 0; bottom: 0;
            padding: clamp(8px, 2vw, 15px);
            font-family: 'Courier New', Courier, monospace;
            color: var(--amber);
            text-shadow: 0 0 4px var(--amber);
            font-size: clamp(10px, 3vw, 14px);
            line-height: 1.2;
            white-space: pre-wrap;
            word-wrap: break-word;
            opacity: 0;
            transition: opacity 0.1s;
            z-index: 1;
            overflow: hidden;
        }

        .screen-content.on {
            opacity: 1;
        }

        /* Scanlines */
        .scanlines {
            position: absolute;
            top: 0; left: 0; right: 0; bottom: 0;
            background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%);
            background-size: 100% 4px;
            pointer-events: none;
            z-index: 3;
            opacity: 0.6;
        }

        .monitor-label {
            position: absolute;
            bottom: clamp(6px, 1.8vw, 14px);
            left: 50%;
            transform: translateX(-50%);
            
            font-family: "Sofia", cursive;
            font-size: clamp(6px, 1.5vw, 10px);
            letter-spacing: 0.5px;
            
            color: #b8b4ab; /* slightly darker than plastic */
            
            /* Embossed effect */
            
            text-shadow:
             1px 1px 0 rgba(255,255,255,0.35),   /* highlight */
            -1px -1px 0 rgba(0,0,0,0.25);        /* shadow */
            
            opacity: 0.6;
            pointer-events: none;
            user-select: none;
        }

        /* Power Button */
        .power-btn {
            position: absolute;
            bottom: clamp(5px, 1.5vw, 12px);
            right: clamp(10px, 3vw, 20px);
            width: clamp(15px, 4vw, 24px);
            height: clamp(15px, 4vw, 24px);
            border: 1px solid #888;
            border-radius: 35%; /* Squircle */
            background: var(--plastic-color);
            box-shadow: 
                inset 1px 1px 2px rgba(255,255,255,0.8),
                inset -1px -1px 2px rgba(0,0,0,0.3),
                1px 1px 3px rgba(0,0,0,0.4);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .power-btn:active {
            box-shadow: 
                inset 2px 2px 4px rgba(0,0,0,0.4),
                inset -1px -1px 2px rgba(255,255,255,0.4);
            background: #c8c4bc;
        }

        /* Keyboard */
        .keyboard {
            background: var(--plastic-color);
            width: 95%;
            max-width: 420px;
            height: clamp(60px, 15vh, 100px);
            border-radius: 4px 4px 8px 8px;
            box-shadow: 
                0 10px 20px rgba(0,0,0,0.6),
                inset 0 2px 5px rgba(255,255,255,0.5);
            display: flex;
            padding: clamp(4px, 1vw, 8px);
            gap: clamp(4px, 1vw, 8px);
            transform: perspective(600px) rotateX(25deg);
            transform-origin: top;
            box-sizing: border-box;
            border-bottom: 3px solid var(--plastic-dark);
        }

        .key-group {
            background: #c4c0b7;
            border-radius: 3px;
            box-shadow: inset 0 0 5px rgba(0,0,0,0.1);
            display: grid;
            gap: 2px;
            padding: 2px;
        }

        .key {
            background: var(--key-color);
            border-radius: 2px;
            box-shadow: 
                0 2px 0 var(--key-shadow),
                0 3px 2px rgba(0,0,0,0.2);
        }

        /* F-Keys: 2 cols, 5 rows */
        .f-keys {
            grid-template-columns: repeat(2, 1fr);
            grid-template-rows: repeat(5, 1fr);
            width: 15%;
        }

        /* Main Keys: Block */
        .main-keys {
            flex: 1;
            display: flex;
            flex-direction: column;
            gap: 2px;
        }
        .main-row {
            display: flex;
            gap: 2px;
            flex: 1;
        }
        .main-row .key { flex: 1; }
        .spacebar-row { flex: 1.5; display: flex; justify-content: center; padding: 0 10%; }
        .spacebar { width: 100%; background: var(--key-color); border-radius: 2px; box-shadow: 0 2px 0 var(--key-shadow); }

        /* Navigation/Arrows */
        .nav-keys {
            width: 15%;
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            gap: 2px;
        }
        .arrows {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            grid-template-rows: repeat(2, 1fr);
            gap: 2px;
            height: 40%;
        }
        .arrows .key:nth-child(1) { grid-column: 2; grid-row: 1; } /* Up */
        .arrows .key:nth-child(2) { grid-column: 1; grid-row: 2; } /* Left */
        .arrows .key:nth-child(3) { grid-column: 2; grid-row: 2; } /* Down */
        .arrows .key:nth-child(4) { grid-column: 3; grid-row: 2; } /* Right */

        /* Numpad */
        .numpad {
            grid-template-columns: repeat(4, 1fr);
            grid-template-rows: repeat(5, 1fr);
            width: 22%;
        }
        .numpad .key.tall { grid-row: span 2; }
        .numpad .key.wide { grid-column: span 2; }


        /* --- BOTTOM HALF: INTERFACE --- */
        .interface-section {
            flex: 1;
            display: flex;
            align-items: center;
            justify-content: center;
            background: repeating-linear-gradient(
                45deg,
                #2c3e50,
                #2c3e50 10px,
                #2a3b4c 10px,
                #2a3b4c 20px
            );
            position: relative;
        }

        /* Wires hinting at future connection */
        .wire {
            position: absolute;
            top: 0;
            width: 4px;
            background: #111;
            box-shadow: 1px 0 2px rgba(255,255,255,0.1);
        }
        .wire-1 { left: 30%; height: 40px; border-radius: 0 0 5px 5px; }
        .wire-2 { right: 35%; height: 60px; border-radius: 0 0 5px 5px; }

        .interface-plate {
            background: linear-gradient(135deg, #e0e0e0, #b0b0b0);
            padding: clamp(15px, 4vw, 25px) clamp(30px, 8vw, 50px);
            border-radius: 4px;
            box-shadow: 
                inset 0 0 10px rgba(0,0,0,0.1), 
                0 5px 15px rgba(0,0,0,0.6),
                0 0 0 2px #888;
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 10px;
        }

        /* Screws on plate */
        .screw {
            position: absolute;
            width: 8px;
            height: 8px;
            background: #999;
            border-radius: 50%;
            box-shadow: inset 1px 1px 2px rgba(0,0,0,0.5), 1px 1px 1px rgba(255,255,255,0.8);
        }
        .screw::after {
            content: '';
            position: absolute;
            top: 50%; left: 10%; right: 10%;
            height: 1px;
            background: #444;
            transform: translateY(-50%) rotate(45deg);
        }
        .screw.tl { top: 8px; left: 8px; }
        .screw.tr { top: 8px; right: 8px; transform: rotate(30deg); }
        .screw.bl { bottom: 8px; left: 8px; transform: rotate(70deg); }
        .screw.br { bottom: 8px; right: 8px; transform: rotate(-20deg); }

        .interface-label {
            font-family: 'Courier New', Courier, monospace;
            font-weight: bold;
            color: #222;
            font-size: clamp(16px, 4vw, 24px);
            text-transform: uppercase;
            letter-spacing: 4px;
            text-shadow: 1px 1px 0px rgba(255,255,255,0.5);
            border: 1px solid #999;
            padding: 5px 15px;
            background: #d0d0d0;
            box-shadow: inset 1px 1px 3px rgba(0,0,0,0.2);
        }

        /* Utilities */
        .cursor {
            animation: blink 1s step-end infinite;
            display: inline-block;
            width: 0.6em;
            height: 1em;
            background-color: var(--amber);
            vertical-align: bottom;
        }

        @keyframes blink {
            0%, 100% { opacity: 1; }
            50% { opacity: 0; }
        }

        .hidden { display: none; }
