body { margin: 0; padding: 0; overflow: hidden; font-family: "Courier New", Courier, monospace; background: #000; color: #00ffcc; /* Multiple radial gradients create starfield dots */ background-image: radial-gradient(circle at 10% 20%, #fff 1px, transparent 0), radial-gradient(circle at 30% 40%, #fff 1px, transparent 0), radial-gradient(circle at 50% 80%, #fff 1px, transparent 0), radial-gradient(circle at 70% 30%, #fff 2px, transparent 0), radial-gradient(circle at 90% 60%, #fff 1px, transparent 0); background-size: 100px 100px; animation: starfield 60s linear infinite; } @keyframes starfield { from { background-position: 0 0; } to { background-position: -200px 200px; } } /* Header styling */ .header { position: fixed; top: 0; width: 100%; padding: 1rem 0; background: rgba(0, 0, 0, 0.7); box-shadow: 0 0 10px #00ffcc; text-align: center; z-index: 100; } .header h1 { margin: 0; font-size: 2rem; letter-spacing: 0.3rem; color: #00ffcc; } /* Interface layout */ .interface { display: flex; flex-direction: column; justify-content: space-between; height: calc(100vh - 4rem); padding: 6rem 2rem 2rem; box-sizing: border-box; } /* Avatar styling */ #avatar { width: 150px; height: 150px; border: 2px solid #00ffcc; border-radius: 50%; overflow: hidden; margin: 0 auto 1rem; } #avatar img { width: 100%; height: 100%; object-fit: cover; } #avatar.speaking, #avatar.speaking img { animation: pulse 2s infinite; } @keyframes pulse { 0% { box-shadow: 0 0 5px #00ffcc; transform: scale(1); } 50% { box-shadow: 0 0 25px #00ffccaa; transform: scale(1.05); } 100% { box-shadow: 0 0 5px #00ffcc; transform: scale(1); } } /* Chatbox styling */ #chatbox { flex: 1; overflow-y: auto; border: 1px solid #00ffcc; padding: 1rem; background-color: #020202; box-shadow: 0 0 10px #00ffcc33; margin-bottom: 1rem; font-size: 1rem; line-height: 1.6; } /* Message bubbles */ .bubble { padding: 0.75rem; margin: 0.5rem 0; border-radius: 0.5rem; max-width: 80%; animation: typeIn 0.5s ease-out; white-space: pre-wrap; } .bubble.user { align-self: flex-end; background-color: #003333; color: #00ffff; } .bubble.ai { align-self: flex-start; background-color: #111; border: 1px solid #00ffcc; color: #00ffcc; } @keyframes typeIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } } /* Input form styling */ form { display: flex; gap: 1rem; } input[type="text"] { flex: 1; padding: 0.75rem; font-size: 1rem; background: #001111; color: #00ffcc; border: 1px solid #00ffcc; outline: none; } button { padding: 0.75rem 1.25rem; background-color: #00ffcc; border: none; color: black; font-weight: bold; cursor: pointer; transition: background 0.2s; } button:hover { background-color: #00ffaa; } /* Overlay glitch */ #overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255,0,0,0.7); pointer-events: none; opacity: 0; transition: opacity 0.1s; z-index: 9999; } /* === Mobile Responsive Overrides === */ @media (max-width: 600px) { /* allow vertical scrolling on small screens */ body { overflow: auto; } /* tighten up padding */ .interface { padding: 5rem 1rem 1rem !important; height: auto !important; } /* smaller, centered avatar */ #avatar { width: 100px !important; height: 100px !important; margin-bottom: 0.75rem !important; } /* adjust chatbox sizing & font */ #chatbox { font-size: 0.9rem; max-height: 50vh; } /* stack form vertically */ form { flex-direction: column; gap: 0.5rem; } input[type="text"], button { width: 100%; box-sizing: border-box; } button { margin: 0; /* remove side margin */ } }