Created
December 24, 2025 08:29
-
-
Save neko-neko-nyan/208945e38ba7292ba7422af080ac37fa to your computer and use it in GitHub Desktop.
Filian ARG website contents with curl headers
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| * Host www.blackfile-index.org:443 was resolved. | |
| * IPv6: (none) | |
| * IPv4: 216.150.1.129, 216.150.16.129 | |
| * Trying 216.150.1.129:443... | |
| * ALPN: curl offers h2,http/1.1 | |
| * TLSv1.3 (OUT), TLS handshake, Client hello (1): | |
| * CAfile: /etc/ssl/certs/ca-certificates.crt | |
| * CApath: none | |
| * TLSv1.3 (IN), TLS handshake, Server hello (2): | |
| * TLSv1.3 (IN), TLS change cipher, Change cipher spec (1): | |
| * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): | |
| * TLSv1.3 (IN), TLS handshake, Certificate (11): | |
| * TLSv1.3 (IN), TLS handshake, CERT verify (15): | |
| * TLSv1.3 (IN), TLS handshake, Finished (20): | |
| * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): | |
| * TLSv1.3 (OUT), TLS handshake, Finished (20): | |
| * SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519MLKEM768 / RSASSA-PSS | |
| * ALPN: server accepted h2 | |
| * Server certificate: | |
| * subject: CN=www.blackfile-index.org | |
| * start date: Dec 17 10:51:39 2025 GMT | |
| * expire date: Mar 17 10:51:38 2026 GMT | |
| * subjectAltName: host "www.blackfile-index.org" matched cert's "www.blackfile-index.org" | |
| * issuer: C=US; O=Let's Encrypt; CN=R13 | |
| * SSL certificate verify ok. | |
| * Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption | |
| * Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption | |
| * Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption | |
| * Established connection to www.blackfile-index.org (216.150.1.129 port 443) from #local IP hidden# port 51860 | |
| * using HTTP/2 | |
| * [HTTP/2] [1] OPENED stream for https://www.blackfile-index.org/ | |
| * [HTTP/2] [1] [:method: GET] | |
| * [HTTP/2] [1] [:scheme: https] | |
| * [HTTP/2] [1] [:authority: www.blackfile-index.org] | |
| * [HTTP/2] [1] [:path: /] | |
| * [HTTP/2] [1] [user-agent: curl/8.16.0] | |
| * [HTTP/2] [1] [accept: */*] | |
| > GET / HTTP/2 | |
| > Host: www.blackfile-index.org | |
| > User-Agent: curl/8.16.0 | |
| > Accept: */* | |
| > | |
| * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): | |
| * Request completely sent off | |
| < HTTP/2 200 | |
| < accept-ranges: bytes | |
| < access-control-allow-origin: * | |
| < age: 512793 | |
| < cache-control: public, max-age=0, must-revalidate | |
| < content-disposition: inline | |
| < content-type: text/html; charset=utf-8 | |
| < date: Wed, 24 Dec 2025 08:26:10 GMT | |
| < etag: "34a35538d94d74f49f2485d9f3f5f0ed" | |
| < last-modified: Thu, 18 Dec 2025 09:59:36 GMT | |
| < server: Vercel | |
| < strict-transport-security: max-age=63072000 | |
| < x-vercel-cache: HIT | |
| < x-vercel-id: arn1::4b956-1766564770094-4025c9128c4a | |
| < content-length: 1103 | |
| < | |
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>TERMINAL_ACCESS</title> | |
| <link rel="stylesheet" href="style.css"> | |
| <link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 64 64%22><rect width=%2264%22 height=%2264%22 fill=%22%23000%22/><path d=%22M2 32 C 20 10, 44 10, 62 32 C 44 54, 20 54, 2 32 Z%22 fill=%22none%22 stroke=%22%2333ff00%22 stroke-width=%224%22/><circle cx=%2232%22 cy=%2232%22 r=%2210%22 fill=%22%2333ff00%22/></svg>"> | |
| </head> | |
| <body> | |
| <!-- BACKGROUND LAYERS --> | |
| <canvas id="noise-canvas"></canvas> | |
| <div class="crt-overlay"></div> | |
| <div class="container"> | |
| <div id="output">SYSTEM READY...</div> | |
| <form id="terminal-form" autocomplete="off"> | |
| <span class="prompt">></span> | |
| <input type="text" id="password-input" autofocus spellcheck="false"> | |
| <button type="submit" id="mobile-submit">ENTER</button> | |
| </form> | |
| </div> | |
| <script src="script.js"></script> | |
| </body> | |
| </html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| * Host www.blackfile-index.org:443 was resolved. | |
| * IPv6: (none) | |
| * IPv4: 216.150.1.129, 216.150.16.129 | |
| * Trying 216.150.1.129:443... | |
| * ALPN: curl offers h2,http/1.1 | |
| * TLSv1.3 (OUT), TLS handshake, Client hello (1): | |
| * CAfile: /etc/ssl/certs/ca-certificates.crt | |
| * CApath: none | |
| * TLSv1.3 (IN), TLS handshake, Server hello (2): | |
| * TLSv1.3 (IN), TLS change cipher, Change cipher spec (1): | |
| * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): | |
| * TLSv1.3 (IN), TLS handshake, Certificate (11): | |
| * TLSv1.3 (IN), TLS handshake, CERT verify (15): | |
| * TLSv1.3 (IN), TLS handshake, Finished (20): | |
| * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): | |
| * TLSv1.3 (OUT), TLS handshake, Finished (20): | |
| * SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519MLKEM768 / RSASSA-PSS | |
| * ALPN: server accepted h2 | |
| * Server certificate: | |
| * subject: CN=www.blackfile-index.org | |
| * start date: Dec 17 10:51:39 2025 GMT | |
| * expire date: Mar 17 10:51:38 2026 GMT | |
| * subjectAltName: host "www.blackfile-index.org" matched cert's "www.blackfile-index.org" | |
| * issuer: C=US; O=Let's Encrypt; CN=R13 | |
| * SSL certificate verify ok. | |
| * Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption | |
| * Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption | |
| * Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption | |
| * Established connection to www.blackfile-index.org (216.150.1.129 port 443) from #local IP hidden# port 50758 | |
| * using HTTP/2 | |
| * [HTTP/2] [1] OPENED stream for https://www.blackfile-index.org/script.js | |
| * [HTTP/2] [1] [:method: GET] | |
| * [HTTP/2] [1] [:scheme: https] | |
| * [HTTP/2] [1] [:authority: www.blackfile-index.org] | |
| * [HTTP/2] [1] [:path: /script.js] | |
| * [HTTP/2] [1] [user-agent: curl/8.16.0] | |
| * [HTTP/2] [1] [accept: */*] | |
| > GET /script.js HTTP/2 | |
| > Host: www.blackfile-index.org | |
| > User-Agent: curl/8.16.0 | |
| > Accept: */* | |
| > | |
| * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): | |
| * Request completely sent off | |
| < HTTP/2 200 | |
| < accept-ranges: bytes | |
| < access-control-allow-origin: * | |
| < age: 19733 | |
| < cache-control: public, max-age=0, must-revalidate | |
| < content-disposition: inline; filename="script.js" | |
| < content-type: application/javascript; charset=utf-8 | |
| < date: Wed, 24 Dec 2025 08:28:23 GMT | |
| < etag: "3d1242c70e2b161dde35e87070b902b7" | |
| < last-modified: Wed, 24 Dec 2025 02:59:30 GMT | |
| < server: Vercel | |
| < strict-transport-security: max-age=63072000 | |
| < x-vercel-cache: HIT | |
| < x-vercel-id: fra1::vw2dh-1766564903782-93fb5677ccad | |
| < content-length: 6081 | |
| < | |
| const form = document.getElementById('terminal-form'); | |
| const input = document.getElementById('password-input'); | |
| const output = document.getElementById('output'); | |
| // 1. SETUP AUDIO CONTEXT & MASTER GAIN | |
| const AudioContext = window.AudioContext || window.webkitAudioContext; | |
| const audioCtx = new AudioContext(); | |
| // Create a master gain node to control overall volume | |
| const masterGain = audioCtx.createGain(); | |
| masterGain.gain.value = 0.5; // Set volume to 50% | |
| masterGain.connect(audioCtx.destination); | |
| // 2. GENERATE WHITE NOISE BUFFER (Do this once to save CPU) | |
| // We create 1 second of static noise to use as our raw material | |
| const bufferSize = audioCtx.sampleRate; // 1 second buffer | |
| const buffer = audioCtx.createBuffer(1, bufferSize, audioCtx.sampleRate); | |
| const data = buffer.getChannelData(0); | |
| for (let i = 0; i < bufferSize; i++) { | |
| // Fill with random noise between -1 and 1 | |
| data[i] = Math.random() * 2 - 1; | |
| } | |
| function ensureAudioContext() { | |
| if (audioCtx.state === 'suspended') { | |
| audioCtx.resume(); | |
| } | |
| } | |
| // 3. THE MECHANICAL KEY SWITCH SOUND | |
| function playMechanicalClick() { | |
| ensureAudioContext(); | |
| const t = audioCtx.currentTime; | |
| // --- PART A: The "Click" (High frequency snap) --- | |
| // We filter the noise to only hear the high crispy parts | |
| const clickSrc = audioCtx.createBufferSource(); | |
| clickSrc.buffer = buffer; | |
| const clickFilter = audioCtx.createBiquadFilter(); | |
| clickFilter.type = 'highpass'; | |
| clickFilter.frequency.value = 2000; // Only frequencies above 2kHz | |
| const clickGain = audioCtx.createGain(); | |
| clickGain.gain.setValueAtTime(0, t); | |
| clickGain.gain.linearRampToValueAtTime(1, t + 0.001); // Instant attack | |
| clickGain.gain.exponentialRampToValueAtTime(0.01, t + 0.03); // Super fast decay | |
| clickSrc.connect(clickFilter); | |
| clickFilter.connect(clickGain); | |
| clickGain.connect(masterGain); | |
| // Play a random slice of the noise buffer so every click sounds slightly unique | |
| const randomOffset = Math.random() * 0.5; | |
| clickSrc.start(t, randomOffset); | |
| clickSrc.stop(t + 0.03); | |
| // --- PART B: The "Clack" (Low frequency thud) --- | |
| // We filter the noise to only hear the low thud parts | |
| const clackSrc = audioCtx.createBufferSource(); | |
| clackSrc.buffer = buffer; | |
| const clackFilter = audioCtx.createBiquadFilter(); | |
| clackFilter.type = 'lowpass'; | |
| clackFilter.frequency.value = 600; // Only frequencies below 600Hz | |
| const clackGain = audioCtx.createGain(); | |
| clackGain.gain.setValueAtTime(0, t); | |
| clackGain.gain.linearRampToValueAtTime(0.6, t + 0.001); | |
| clackGain.gain.exponentialRampToValueAtTime(0.01, t + 0.08); // Slightly longer decay | |
| clackSrc.connect(clackFilter); | |
| clackFilter.connect(clackGain); | |
| clackGain.connect(masterGain); | |
| clackSrc.start(t, randomOffset); | |
| clackSrc.stop(t + 0.08); | |
| } | |
| // 4. THE ERROR BUZZER (Retained from previous version) | |
| function playErrorSound() { | |
| ensureAudioContext(); | |
| const t = audioCtx.currentTime; | |
| const oscillator = audioCtx.createOscillator(); | |
| const gainNode = audioCtx.createGain(); | |
| oscillator.connect(gainNode); | |
| gainNode.connect(masterGain); | |
| oscillator.type = 'sawtooth'; // Sawtooth sounds more "alert-like" than square | |
| oscillator.frequency.setValueAtTime(110, t); | |
| oscillator.frequency.linearRampToValueAtTime(50, t + 0.3); | |
| gainNode.gain.setValueAtTime(0.5, t); | |
| gainNode.gain.exponentialRampToValueAtTime(0.01, t + 0.3); | |
| oscillator.start(t); | |
| oscillator.stop(t + 0.3); | |
| } | |
| // 5. EVENT LISTENERS | |
| input.addEventListener('keydown', (e) => { | |
| if (e.key === 'Enter') return; | |
| playMechanicalClick(); | |
| }); | |
| // Variable to track the reset timer so we can clear it if needed | |
| let resetTimeout; | |
| form.addEventListener('submit', (e) => { | |
| e.preventDefault(); | |
| const password = input.value.trim().toUpperCase(); | |
| // 1. CLEAR EXISTING TIMEOUT | |
| // If a user types wrong twice fast, we don't want the text resetting | |
| // comfortably in the middle of their second attempt. | |
| if (resetTimeout) clearTimeout(resetTimeout); | |
| // LOGIC FOR FUTURE PASSWORDS | |
| if (password === "THE_TRUTH") { | |
| output.innerText = "ACCESS GRANTED. LOADING..."; | |
| output.style.color = "cyan"; | |
| // Success sound logic... | |
| } else { | |
| // WRONG PASSWORD LOGIC | |
| playErrorSound(); | |
| output.innerText = `ACCESS DENIED: '${password}'`; | |
| output.style.color = "red"; | |
| // Shake effect | |
| document.body.classList.add('shake'); | |
| setTimeout(() => document.body.classList.remove('shake'), 500); | |
| input.value = ''; | |
| // 2. SET TIMER TO RESET MESSAGE | |
| resetTimeout = setTimeout(() => { | |
| output.innerText = "SYSTEM READY..."; | |
| output.style.color = "#33ff00"; // Reset color to green | |
| }, 2000); | |
| } | |
| }); | |
| // Focus helper | |
| document.addEventListener('click', () => { | |
| input.focus(); | |
| ensureAudioContext(); | |
| }); | |
| /* =========================== | |
| BACKGROUND NOISE ANIMATION | |
| =========================== */ | |
| const canvas = document.getElementById('noise-canvas'); | |
| const ctx = canvas.getContext('2d'); | |
| const resizeCanvas = () => { | |
| // We render at low resolution for that "chunky" retro look | |
| // and for better performance. | |
| canvas.width = window.innerWidth / 4; | |
| canvas.height = window.innerHeight / 4; | |
| }; | |
| resizeCanvas(); | |
| window.addEventListener('resize', resizeCanvas); | |
| function drawNoise() { | |
| const w = canvas.width; | |
| const h = canvas.height; | |
| const idata = ctx.createImageData(w, h); | |
| const buffer32 = new Uint32Array(idata.data.buffer); | |
| const len = buffer32.length; | |
| for (let i = 0; i < len; i++) { | |
| // Random chance to be a white pixel | |
| if (Math.random() < 0.1) { | |
| // 0xffffffff is white (ABGR format) | |
| // You can change color here to make green static: 0xff00ff00 | |
| buffer32[i] = 0xffffffff; | |
| } | |
| } | |
| ctx.putImageData(idata, 0, 0); | |
| // Loop the animation | |
| requestAnimationFrame(drawNoise); | |
| } | |
| // Start the static | |
| drawNoise(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| * Host www.blackfile-index.org:443 was resolved. | |
| * IPv6: (none) | |
| * IPv4: 216.150.1.129, 216.150.16.129 | |
| * Trying 216.150.1.129:443... | |
| * ALPN: curl offers h2,http/1.1 | |
| * TLSv1.3 (OUT), TLS handshake, Client hello (1): | |
| * CAfile: /etc/ssl/certs/ca-certificates.crt | |
| * CApath: none | |
| * TLSv1.3 (IN), TLS handshake, Server hello (2): | |
| * TLSv1.3 (IN), TLS change cipher, Change cipher spec (1): | |
| * TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): | |
| * TLSv1.3 (IN), TLS handshake, Certificate (11): | |
| * TLSv1.3 (IN), TLS handshake, CERT verify (15): | |
| * TLSv1.3 (IN), TLS handshake, Finished (20): | |
| * TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): | |
| * TLSv1.3 (OUT), TLS handshake, Finished (20): | |
| * SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519MLKEM768 / RSASSA-PSS | |
| * ALPN: server accepted h2 | |
| * Server certificate: | |
| * subject: CN=www.blackfile-index.org | |
| * start date: Dec 17 10:51:39 2025 GMT | |
| * expire date: Mar 17 10:51:38 2026 GMT | |
| * subjectAltName: host "www.blackfile-index.org" matched cert's "www.blackfile-index.org" | |
| * issuer: C=US; O=Let's Encrypt; CN=R13 | |
| * SSL certificate verify ok. | |
| * Certificate level 0: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption | |
| * Certificate level 1: Public key type RSA (2048/112 Bits/secBits), signed using sha256WithRSAEncryption | |
| * Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption | |
| * Established connection to www.blackfile-index.org (216.150.1.129 port 443) from #local IP hidden# port 44232 | |
| * using HTTP/2 | |
| * [HTTP/2] [1] OPENED stream for https://www.blackfile-index.org/style.css | |
| * [HTTP/2] [1] [:method: GET] | |
| * [HTTP/2] [1] [:scheme: https] | |
| * [HTTP/2] [1] [:authority: www.blackfile-index.org] | |
| * [HTTP/2] [1] [:path: /style.css] | |
| * [HTTP/2] [1] [user-agent: curl/8.16.0] | |
| * [HTTP/2] [1] [accept: */*] | |
| > GET /style.css HTTP/2 | |
| > Host: www.blackfile-index.org | |
| > User-Agent: curl/8.16.0 | |
| > Accept: */* | |
| > | |
| * TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): | |
| * Request completely sent off | |
| < HTTP/2 200 | |
| < accept-ranges: bytes | |
| < access-control-allow-origin: * | |
| < age: 19665 | |
| < cache-control: public, max-age=0, must-revalidate | |
| < content-disposition: inline; filename="style.css" | |
| < content-type: text/css; charset=utf-8 | |
| < date: Wed, 24 Dec 2025 08:27:15 GMT | |
| < etag: "ecd98eaae0204d422aa983788016d2b6" | |
| < last-modified: Wed, 24 Dec 2025 02:59:30 GMT | |
| < server: Vercel | |
| < strict-transport-security: max-age=63072000 | |
| < x-vercel-cache: HIT | |
| < x-vercel-id: fra1::6tn2p-1766564835408-07cd35159445 | |
| < content-length: 4116 | |
| < | |
| /* --- RESET & BASICS --- */ | |
| * { | |
| box-sizing: border-box; | |
| } | |
| body { | |
| background-color: #050505; /* Deep black-grey */ | |
| color: #33ff00; /* Terminal Green */ | |
| font-family: 'Courier New', Courier, monospace; | |
| /* Use dvh (Dynamic Viewport Height) for better mobile support */ | |
| min-height: 100vh; | |
| min-height: 100dvh; | |
| margin: 0; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| overflow: hidden; /* Keeps the static background contained */ | |
| /* Prevent text selection to feel more like an interface */ | |
| user-select: none; | |
| -webkit-user-select: none; | |
| } | |
| /* --- LAYOUT CONTAINER --- */ | |
| .container { | |
| width: 90%; /* 90% width on mobile */ | |
| max-width: 650px; /* Max width on desktop */ | |
| padding: 20px; | |
| /* Slight adjustment up visually looks better */ | |
| transform: translateY(-5%); | |
| } | |
| /* --- OUTPUT TEXT --- */ | |
| #output { | |
| margin-bottom: 30px; | |
| white-space: pre-wrap; | |
| min-height: 1.5em; | |
| font-size: 1.1rem; | |
| line-height: 1.4; | |
| text-shadow: 0 0 5px rgba(51, 255, 0, 0.5); /* Glowing text effect */ | |
| } | |
| /* --- THE FORM ROW --- */ | |
| form { | |
| display: flex; | |
| align-items: center; | |
| border-bottom: 2px solid #33ff00; | |
| padding-bottom: 5px; | |
| position: relative; | |
| transition: border-color 0.2s; | |
| } | |
| /* Glow effect on the bottom border when focused */ | |
| form:focus-within { | |
| border-bottom-color: #33ff00; | |
| /* Offset-Y (10px) pushes it down, Negative Spread (-10px) hides it from sides/top */ | |
| /* This makes it look like just the line is glowing, not the box */ | |
| box-shadow: 0 10px 20px -10px rgba(51, 255, 0, 0.8); | |
| } | |
| .prompt { | |
| margin-right: 15px; | |
| font-weight: bold; | |
| font-size: 1.2rem; | |
| } | |
| /* --- INPUT FIELD --- */ | |
| input { | |
| background: transparent; | |
| border: none; | |
| color: #33ff00; | |
| font-family: inherit; | |
| /* 16px minimum prevents iOS from zooming in when you tap it */ | |
| font-size: 16px; | |
| flex-grow: 1; | |
| outline: none; | |
| text-transform: uppercase; | |
| caret-color: #33ff00; /* Cursor color */ | |
| border-radius: 0; /* Remove rounded corners on iOS */ | |
| } | |
| /* Larger font on desktop */ | |
| @media (min-width: 768px) { | |
| input { | |
| font-size: 1.5rem; | |
| } | |
| #output { | |
| font-size: 1.3rem; | |
| } | |
| } | |
| /* --- BACKGROUND LAYERS --- */ | |
| #noise-canvas { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| z-index: -2; | |
| opacity: 0.12; | |
| } | |
| .crt-overlay { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| z-index: -1; | |
| pointer-events: none; | |
| background: linear-gradient( | |
| rgba(18, 16, 16, 0) 50%, | |
| rgba(0, 0, 0, 0.25) 50% | |
| ), linear-gradient( | |
| 90deg, | |
| rgba(255, 0, 0, 0.06), | |
| rgba(0, 255, 0, 0.02), | |
| rgba(0, 0, 255, 0.06) | |
| ); | |
| background-size: 100% 4px, 6px 100%; | |
| box-shadow: inset 0 0 100px rgba(0,0,0,0.9); | |
| } | |
| /* --- MOBILE SUBMIT BUTTON --- */ | |
| #mobile-submit { | |
| display: none; /* Hidden on Desktop */ | |
| } | |
| @media (max-width: 768px) { | |
| #mobile-submit { | |
| display: block; | |
| background: rgba(51, 255, 0, 0.1); | |
| border: 1px solid #33ff00; | |
| color: #33ff00; | |
| font-family: inherit; | |
| font-size: 0.9rem; | |
| font-weight: bold; | |
| letter-spacing: 1px; | |
| /* Nice spacing */ | |
| padding: 10px 15px; | |
| margin-left: 10px; | |
| text-transform: uppercase; | |
| cursor: pointer; | |
| border-radius: 0; | |
| -webkit-appearance: none; | |
| transition: all 0.1s ease; | |
| } | |
| #mobile-submit:active { | |
| background: #33ff00; | |
| color: #000; | |
| transform: scale(0.98); | |
| } | |
| /* Ensure input doesn't get squashed too small */ | |
| input { | |
| width: 100%; | |
| min-width: 0; /* Flexbox fix */ | |
| } | |
| } | |
| /* --- ANIMATIONS --- */ | |
| .shake { | |
| animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both; | |
| } | |
| @keyframes shake { | |
| 10%, 90% { transform: translate3d(-1px, 0, 0); } | |
| 20%, 80% { transform: translate3d(2px, 0, 0); } | |
| 30%, 50%, 70% { transform: translate3d(-4px, 0, 0); } | |
| 40%, 60% { transform: translate3d(4px, 0, 0); } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment