Spaces:
Running
Running
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 ; | |
height: auto ; | |
} | |
/* smaller, centered avatar */ | |
#avatar { | |
width: 100px ; | |
height: 100px ; | |
margin-bottom: 0.75rem ; | |
} | |
/* 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 */ | |
} | |
} |