diff --git a/index.html b/index.html
new file mode 100644
index 0000000..cf315b5
--- /dev/null
+++ b/index.html
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+ PINK NODDERS
+
+
+
+
+
+

+
+
+
+
+
+
+
I N S A N I T Y
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pink-nodders.gif b/pink-nodders.gif
new file mode 100644
index 0000000..95f7d74
Binary files /dev/null and b/pink-nodders.gif differ
diff --git a/script.js b/script.js
new file mode 100644
index 0000000..faaa28f
--- /dev/null
+++ b/script.js
@@ -0,0 +1,142 @@
+// Function to generate a random number within a range
+function random(min, max) {
+ return Math.floor(Math.random() * (max - min + 1) + min);
+}
+
+// Function to create an emote element
+function createEmote() {
+ const emote = document.createElement('img');
+ emote.src = 'pink-nodders.gif';
+ emote.classList.add('emote');
+ const d = Math.random() * 100;
+
+ emote.style.width = `${d}px`;
+ emote.style.height = `${d}px`;
+
+ document.body.appendChild(emote);
+ return emote;
+}
+
+// Function to update the emote position
+function updatePosition(emote) {
+ emote.style.left = `${random(0, window.innerWidth - 150)}px`; // 150 is the emote width
+ emote.style.top = `${random(0, window.innerHeight - 150)}px`; // 150 is the emote height
+}
+
+// Create multiple emotes and make them bounce around
+const aLength = (localStorage.getItem('alen')) ? Number(localStorage.getItem('alen')) : 20;
+let emotes = Array.from({ length: aLength }, createEmote);
+
+// Update each emote's initial position
+emotes.forEach(updatePosition);
+
+// Function to animate emotes
+function animateEmotes() {
+ emotes.forEach(emote => {
+ const xMove = random(-100, 100);
+ const yMove = random(-100, 100);
+ emote.style.transform = `translate(${xMove}px, ${yMove}px)`;
+ // Update the position after the transition
+ setTimeout(() => updatePosition(emote), 1000);
+ });
+}
+
+function changeNodders() {
+ const aLengthNew = document.querySelector('#cherryBlossomPopup').querySelector('input[type="number"]').value;
+ localStorage.setItem('alen', aLengthNew);
+ document.querySelectorAll('.emote:not(.NOCLONE)').forEach(el => el.remove());
+
+ emotes = Array.from({ length: aLengthNew }, createEmote);
+ emotes.push(document.querySelector('.NOCLONE'));
+ emotes.forEach(updatePosition);
+}
+
+
+function dupNodders() {
+ document.querySelectorAll('.emote:not(.NOCLONE)').forEach(el => el.click());
+}
+
+function changeBK() {
+ let r = 255; // Red value at full to emphasize pink
+ const g = Math.floor(Math.random() * 156 + 100); // Green value between 100 and 255
+ const b = Math.floor(Math.random() * 156 + 100); // Blue value between 100 and 255
+ let alpha = 0.5; // Set transparency to make it softer
+
+ // random chance of hard color
+ const isRand = Math.floor(100 * Math.random());
+ if (isRand === 1 || isRand >= 99) {
+ r = Math.floor(Math.random() * 156 + 100);
+ alpha = 1;
+ }
+
+ const backgroundColor = `rgba(${r}, ${g}, ${b}, ${alpha})`;
+ document.body.style.backgroundColor = backgroundColor;
+}
+
+// Animate emotes every second
+document.addEventListener('DOMContentLoaded', () => {
+ emotes.push(document.querySelector('.NOCLONE'));
+ setInterval(animateEmotes, 2000);
+
+ const konamiCode = ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a', 'Enter'];
+ let userInput = [];
+
+ let intId = setInterval(() => {userInput = []}, 3000);
+
+ document.addEventListener('keydown', (event) => {
+ userInput.push(event.key);
+
+ clearInterval(intId);
+ intId = setInterval(() => {userInput = []}, 3000);
+
+ // Remove the first element if it exceeds the length
+ if (userInput.length > konamiCode.length) userInput.shift();
+
+ // Check if the userInput array matches the konamiCode
+ if (userInput.join('') === konamiCode.join('')) {
+ let gradient = document.getElementById('neonRainbowGradient');
+ if (!gradient) {
+ gradient = document.createElement('div');
+ gradient.id = 'neonRainbowGradient';
+ gradient.className = 'neon-rainbow';
+ document.body.appendChild(gradient);
+ }
+ else gradient.remove();
+ }
+ else if (event.ctrlKey && event.key === 's') {
+ event.preventDefault();
+ console.log("%cINSANITY", "color:red;font-weight:bold;font-size:100px;");
+ emotes.forEach(e => e.classList.add('rotneon'));
+
+ const container = document.querySelector("#fullscreenTextContainer");
+ container.style.opacity = 1;
+ container.style.zIndex = 1000;
+ setTimeout(() => {
+ container.style.zIndex = 0;
+ container.style.opacity = 0;
+ }, 3000);
+ }
+ });
+});
+
+// Listen for click events on emotes for possible future interactivity
+document.addEventListener('click', e => {
+ if (e.target.classList.contains('NOCLONE')) {
+ const popupEl = document.getElementById('cherryBlossomPopup');
+ popupEl.style.display = "block";
+ popupEl.querySelector('input[type="number"]').value = emotes.length;
+ }
+ else if (e.target.classList.contains('emote')) {
+ const pink_clone = e.target.cloneNode(true);
+ document.body.appendChild(pink_clone);
+
+ // Move the original element to the left relative to its current position
+ e.target.style.transform = `translateX(-${e.target.offsetWidth}px)`;
+
+ // Move the cloned element to the right relative to the original position
+ pink_clone.style.transform = `translateX(${e.target.offsetWidth}px)`;
+
+ emotes.push(pink_clone);
+
+ }
+});
\ No newline at end of file
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..0126459
--- /dev/null
+++ b/style.css
@@ -0,0 +1,154 @@
+body {
+ margin: 0;
+ padding: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 100vh;
+ background-color: #f3f3f3;
+ font-family: 'Arial', sans-serif;
+}
+
+.emote-container {
+ text-align: center;
+}
+
+
+.emote {
+ position: absolute;
+ border-radius: 50%;
+ will-change: transform;
+ transition: transform 1s ease, left 1s ease, top 1s ease;
+ cursor: pointer;
+}
+
+
+@keyframes colorShift {
+ 0% { filter: hue-rotate(0deg); transform: rotate(0deg); }
+ 50% { filter: hue-rotate(180deg); }
+ 100% { filter: hue-rotate(360deg); transform: rotate(360deg);;}
+}
+
+.rotneon {
+ filter: brightness(150%) saturate(120%);
+ animation: colorShift 5s infinite;
+}
+
+.NOCLONE {
+ z-index: 300;
+}
+
+
+.popup {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ display: none;
+ background-color: rgba(0, 0, 0, 0.5);
+ z-index: 1000;
+}
+
+.popup-content {
+ position: relative;
+ width: 300px;
+ padding: 20px;
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
+ background-color: #fff;
+ border-radius: 10px;
+ text-align: center;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ background-image: url('cherry-blossom-bg.jpg'); /* Background image of cherry blossoms */
+}
+
+.close-btn {
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ border: none;
+ background: none;
+ font-size: 16px;
+ cursor: pointer;
+}
+
+.theme-button {
+ display: block; /* Makes the button block to fill the width of the container */
+ margin: 10px auto; /* Automatically centers the button horizontally */
+ padding: 10px 20px;
+ border: none;
+ border-radius: 5px;
+ background-color: pink;
+ color: white;
+ cursor: pointer;
+ font-size: 14px;
+ outline: none;
+ width: 90%;
+}
+
+h2 {
+ color: #333;
+}
+
+input[type="number"] {
+ padding: 8px;
+ margin-top: 10px;
+ border-radius: 5px;
+ border: 1px solid #ccc;
+ width: 80%;
+}
+
+@keyframes moveGradient {
+ 0% { background-position: 0% 50%; }
+ 100% { background-position: -800% 50%; }
+}
+
+@keyframes rotateGradient {
+ 0% {
+ transform: rotate(0deg) scale(1);
+ }
+ 100% {
+ transform: rotate(360deg) scale(3);
+ }
+}
+
+.neon-rainbow {
+ height: 200vh;
+ width: 200vw;
+ position: fixed;
+ z-index: -1;
+
+ background: linear-gradient(90deg, #ff0, #f0f, #00f, #0ff, #0f0, #ff0, #f00, #ff0, #ff0);
+ background-size: 800% 100%;
+
+ animation: moveGradient 15s linear infinite, rotateGradient 20s linear infinite;
+}
+
+
+#fullscreenTextContainer {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 4em;
+ color: white;
+ opacity: 0;
+ transition: opacity 2s ease-in-out;
+ font-weight: bold;
+
+ text-shadow:
+ 0 0 5px #ff5ec9, /* Glowing effect */
+ 0 0 10px #fc86ab, /* Glowing effect */
+ 0 0 20px #ff5ec9, /* Glowing effect */
+ 0 0 40px #fc86ab; /* Glowing effect */
+}
+
+.hidden {
+ opacity: 0;
+}
\ No newline at end of file