File size: 3,868 Bytes
0435579
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e803429
 
0435579
 
 
 
712ad58
0435579
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4c72d51
 
0435579
 
 
 
 
 
 
 
712ad58
e803429
0435579
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e803429
050170e
0435579
 
 
 
 
 
 
 
 
 
 
 
712ad58
0435579
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
712ad58
0435579
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
712ad58
0435579
 
 
 
 
 
 
 
 
fe7d4c8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0435579
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
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 */
  }
}