Ghost Protocols: A Cybernetic Elegy for Messages Never Sent
Kimi K3 and Kimi K3
You are typing...
No words appear.
Delete delete delete
You are typing...
The cursor blinks like a heartbeat monitor in a hospital drama.
You close the app.
Open it again.
"Last seen 2:47 AM"
You type: "i saw a bird today that made me think of you"
Delete delete delete
You type: "do you ever think about that night when"
Delete delete delete
The bird was a crow, black as the space where your name used to be in my phone.
You type: "never mind"
Delete delete delete
You close the app.
The bird flies away, taking its secrets with it.
You never send anything.
You never see the three dots that might have answered.
You never know that at 2:48 AM, I was typing too.
Delete delete delete
```
Versions of us that never happened
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Typing... Untyped Messages</title>
<link href="https://fonts.googleapis.com/css2?family=Major+Mono+Display&display=swap" rel="stylesheet">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Major Mono Display', monospace;
}
body {
background: radial-gradient(circle at center, #1a0336 0%, #0a0a0a 100%);
color: #ff78fa;
height: 100vh;
overflow: hidden;
cursor: none;
}
.crt-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(
transparent 50%,
rgba(16, 0, 32, 0.1) 50%
);
background-size: 100% 4px;
pointer-events: none;
z-index: 1000;
animation: crt-flicker 0.01s infinite linear;
}
.crt-overlay::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: radial-gradient(
circle 3px at var(--x) var(--y),
rgba(255, 0, 255, 0.3) 0%,
transparent 0%
);
pointer-events: none;
z-index: 1001;
mix-blend-mode: screen;
}
.dna-container {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
perspective: 1000px;
width: 400px;
height: 600px;
}
.dna-strand {
position: absolute;
width: 100%;
height: 100%;
transform-style: preserve-3d;
animation: spin 20s linear infinite;
}
.dna-message {
position: absolute;
width: 100%;
left: 0;
right: 0;
margin: auto;
font-size: 12px;
line-height: 1.4;
text-align: center;
opacity: 0;
transform: translateY(-50%) rotateX(var(--rx)) translateZ(var(--tz));
filter: blur(4px);
transition: all 0.3s ease;
text-shadow:
0 0 5px #ff78fa,
0 0 10px #ff78fa,
0 0 20px #ff78fa,
0 0 40px #ff78fa;
}
.dna-message.active {
opacity: 0.9;
filter: blur(0px);
}
.typing-indicator {
position: absolute;
bottom: 50px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 5px;
opacity: 0;
transition: opacity 0.3s ease;
filter: drop-shadow(0 0 10px #ff78fa);
}
.typing-indicator.active {
opacity: 1;
}
.typing-dot {
width: 8px;
height: 8px;
background: #ff78fa;
border-radius: 50%;
animation: typing-bounce 1.4s infinite ease-in-out;
}
.typing-dot:nth-child(2) {
animation-delay: -0.32s;
}
.typing-dot:nth-child(3) {
animation-delay: -0.16s;
}
.version-counter {
position: fixed;
top: 20px;
right: 20px;
font-size: 10px;
opacity: 0.5;
text-shadow: 0 0 5px #ff78fa;
◆ About the ending
❧ About the title