diff --git a/assets/favicon.ico b/assets/favicon.ico
new file mode 100644
index 0000000..2bdb33e
Binary files /dev/null and b/assets/favicon.ico differ
diff --git a/assets/reset.mp3 b/assets/reset.mp3
new file mode 100644
index 0000000..30795aa
Binary files /dev/null and b/assets/reset.mp3 differ
diff --git a/assets/siren.mp3 b/assets/siren.mp3
new file mode 100644
index 0000000..b9dfee1
Binary files /dev/null and b/assets/siren.mp3 differ
diff --git a/assets/swan.png b/assets/swan.png
new file mode 100644
index 0000000..07b359c
Binary files /dev/null and b/assets/swan.png differ
diff --git a/assets/tick.mp3 b/assets/tick.mp3
new file mode 100644
index 0000000..f4871f8
Binary files /dev/null and b/assets/tick.mp3 differ
diff --git a/assets/typing_sounds/button1.mp3 b/assets/typing_sounds/button1.mp3
new file mode 100644
index 0000000..c6e50f1
Binary files /dev/null and b/assets/typing_sounds/button1.mp3 differ
diff --git a/assets/typing_sounds/button2.mp3 b/assets/typing_sounds/button2.mp3
new file mode 100644
index 0000000..a5eaf01
Binary files /dev/null and b/assets/typing_sounds/button2.mp3 differ
diff --git a/assets/typing_sounds/button3.mp3 b/assets/typing_sounds/button3.mp3
new file mode 100644
index 0000000..891e488
Binary files /dev/null and b/assets/typing_sounds/button3.mp3 differ
diff --git a/assets/typing_sounds/button4.mp3 b/assets/typing_sounds/button4.mp3
new file mode 100644
index 0000000..5f1f35d
Binary files /dev/null and b/assets/typing_sounds/button4.mp3 differ
diff --git a/assets/typing_sounds/button5.mp3 b/assets/typing_sounds/button5.mp3
new file mode 100644
index 0000000..67b78a8
Binary files /dev/null and b/assets/typing_sounds/button5.mp3 differ
diff --git a/assets/typing_sounds/button6.mp3 b/assets/typing_sounds/button6.mp3
new file mode 100644
index 0000000..0ab73aa
Binary files /dev/null and b/assets/typing_sounds/button6.mp3 differ
diff --git a/assets/typing_sounds/button7.mp3 b/assets/typing_sounds/button7.mp3
new file mode 100644
index 0000000..7303f25
Binary files /dev/null and b/assets/typing_sounds/button7.mp3 differ
diff --git a/assets/typing_sounds/button8.mp3 b/assets/typing_sounds/button8.mp3
new file mode 100644
index 0000000..c138c0a
Binary files /dev/null and b/assets/typing_sounds/button8.mp3 differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..5fdf347
--- /dev/null
+++ b/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
>:
+
+
+
+
+
diff --git a/src/script.js b/src/script.js
new file mode 100644
index 0000000..39ff4d9
--- /dev/null
+++ b/src/script.js
@@ -0,0 +1,68 @@
+document.title = 108
+const input = document.querySelector('input')
+
+const siren = new Audio('assets/siren.mp3')
+const type = new Audio('assets/type.mp3')
+const reset = new Audio('assets/reset.mp3')
+const tick = new Audio('assets/tick.mp3')
+
+const typeSound = () => {
+ let randomNumber = Math.floor(Math.random() * 7)
+ switch (randomNumber) {
+ case 0:
+ new Audio('assets/typing_sounds/button1.mp3').play()
+ break
+ case 1:
+ new Audio('assets/typing_sounds/button2.mp3').play()
+ break
+ case 2:
+ new Audio('assets/typing_sounds/button3.mp3').play()
+ break
+ case 3:
+ new Audio('assets/typing_sounds/button4.mp3').play()
+ break
+ case 4:
+ new Audio('assets/typing_sounds/button5.mp3').play()
+ break
+ case 5:
+ new Audio('assets/typing_sounds/button6.mp3').play()
+ break
+ case 6:
+ new Audio('assets/typing_sounds/button7.mp3').play()
+ break
+ case 7:
+ new Audio('assets/typing_sounds/button8.mp3').play()
+ }
+}
+
+input.onkeydown = (event) => {
+ typeSound()
+ if (event.key == 'Enter') {
+ input.value.trim()
+ if (input.value == '4 8 15 16 23 42') {
+ document.title = 108
+ input.value = ''
+ siren.pause()
+ siren.currentTime = 0
+ reset.play()
+ } else if (input.value == 'terminate') {
+ document.title = 4
+ input.value = ''
+ siren.play()
+ } else {
+ input.value = ''
+ }
+ }
+}
+
+setInterval(() => {
+ document.title--
+ if (document.title <= 4) {
+ siren.play()
+ }
+ tick.play()
+}, 60000)
+
+setInterval(() => {
+ input.focus()
+}, 1)
diff --git a/src/style.css b/src/style.css
new file mode 100644
index 0000000..74aedc4
--- /dev/null
+++ b/src/style.css
@@ -0,0 +1,45 @@
+* {
+ padding: 0;
+ margin: 0;
+ box-sizing: border-box;
+}
+
+body {
+ background-color: rgb(0, 0, 0);
+ color: rgba(0, 247, 0, 0.75);
+ font: 1rem Courier New, monospace;
+ height: 100vh;
+ overflow: hidden;
+ text-shadow: 0 0 5px rgba(56, 255, 56, 0.75);
+}
+
+.container {
+ align-items: center;
+ display: flex;
+ justify-content: flex-start;
+ margin: 0.3rem 0 0 0.8rem;
+ padding: 40px;
+}
+
+.input {
+ background-color: rgb(0, 0, 0);
+ border: none;
+ color: rgba(0, 247, 0, 0.75);
+ font-family: Courier New, monospace;
+ font-size: 3.2rem;
+ font-weight: bold;
+ margin-left: 0.5rem;
+ margin-top: 0.5rem;
+ outline: none;
+ text-shadow: 0 0 5px rgba(56, 255, 56, 0.75);
+}
+
+h1 {
+ display: inline-block;
+ font-size: 3.8rem;
+ letter-spacing: -4px;
+}
+
+span {
+ font-size: 3rem;
+}