| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Beru.BA - Secure Encrypted Chat</title> |
| <script src="https://cdn.tailwindcss.com"></script> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
| <link href="https://unpkg.com/@chatscope/chat-ui-kit-styles/dist/default/styles.min.css" rel="stylesheet"> |
| <script> |
| tailwind.config = { |
| theme: { |
| extend: { |
| colors: { |
| beruGreen: { |
| 100: '#d1fae5', |
| 200: '#a7f3d0', |
| 300: '#6ee7b7', |
| 400: '#10b981', |
| 500: '#059669', |
| 600: '#047857', |
| 700: '#065f46', |
| }, |
| beruDark: { |
| 100: '#1a202c', |
| 200: '#171923', |
| 300: '#12171f', |
| 400: '#0d1219', |
| 500: '#090c11', |
| } |
| } |
| } |
| } |
| } |
| </script> |
| <script src="https://unpkg.com/@chatscope/chat-ui-kit-core/dist/chat-ui-kit-core.umd.js"></script> |
| <style> |
| ::-webkit-scrollbar { |
| width: 8px; |
| height: 8px; |
| } |
| |
| ::-webkit-scrollbar-track { |
| background: #090c11; |
| } |
| |
| ::-webkit-scrollbar-thumb { |
| background: #065f46; |
| border-radius: 4px; |
| } |
| |
| ::-webkit-scrollbar-thumb:hover { |
| background: #047857; |
| } |
| |
| .custom-backdrop { |
| background: radial-gradient( |
| circle at center, |
| rgba(15, 25, 40, 0.9) 0%, |
| rgba(9, 15, 27, 0.95) 100% |
| ); |
| } |
| |
| .status-indicator { |
| position: absolute; |
| width: 12px; |
| height: 12px; |
| border-radius: 50%; |
| bottom: 0; |
| right: 0; |
| border: 2px solid #090c11; |
| } |
| |
| .presence-online { |
| background-color: #10b981; |
| } |
| |
| .presence-offline { |
| background-color: #6b7280; |
| } |
| |
| .presence-away { |
| background-color: #f59e0b; |
| } |
| |
| .presence-dnd { |
| background-color: #ef4444; |
| } |
| |
| .chat-bubble-sent { |
| background-color: #065f46; |
| border-top-right-radius: 0; |
| border-bottom-left-radius: 12px; |
| } |
| |
| .chat-bubble-received { |
| background-color: #12171f; |
| border-top-left-radius: 0; |
| border-bottom-right-radius: 12px; |
| } |
| |
| .encrypted-indicator { |
| position: absolute; |
| bottom: 8px; |
| right: 10px; |
| font-size: 10px; |
| color: #a7f3d0; |
| opacity: 0.7; |
| } |
| |
| .gradient-bottom { |
| position: absolute; |
| bottom: 0; |
| left: 0; |
| right: 0; |
| height: 50px; |
| background: linear-gradient(transparent 0%, rgba(9,12,17,0.8) 40%, #090c11 100%); |
| } |
| |
| .connection-status::after { |
| content: ''; |
| display: inline-block; |
| width: 8px; |
| height: 8px; |
| border-radius: 50%; |
| margin-left: 8px; |
| } |
| |
| .status-connected::after { |
| background-color: #10b981; |
| } |
| |
| .status-encrypting::after { |
| background-color: #f59e0b; |
| animation: pulse 1.5s infinite; |
| } |
| |
| .status-disconnected::after { |
| background-color: #ef4444; |
| } |
| |
| @keyframes pulse { |
| 0% { opacity: 1; } |
| 50% { opacity: 0.5; } |
| 100% { opacity: 1; } |
| } |
| |
| @keyframes connectionPulse { |
| 0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); } |
| 70% { box-shadow: 0 0 0 10px rgba(16, 185, 129, 0); } |
| 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); } |
| } |
| </style> |
| </head> |
| <body class="bg-beruDark-500 text-beruGreen-400 min-h-screen font-mono overflow-hidden"> |
| |
| <div class="flex flex-col h-screen max-w-7xl mx-auto custom-backdrop"> |
| |
| <header class="bg-beruGreen-700/10 backdrop-blur border-b border-beruDark-300"> |
| <div class="flex justify-between items-center px-4 py-3 sm:px-6"> |
| <div class="flex items-center"> |
| <div class="bg-beruGreen-500 text-beruDark-500 h-10 w-10 rounded-full flex items-center justify-center mr-3 relative"> |
| <i class="fas fa-lock text-lg"></i> |
| <div class="status-indicator presence-online"></div> |
| </div> |
| <div> |
| <h1 class="text-xl sm:text-2xl font-bold tracking-wider">BERU<span class="text-beruGreen-300">.BA</span></h1> |
| <div class="flex items-center"> |
| <div id="connectionStatus" class="connection-status status-connected text-xs text-beruGreen-500 flex items-center"> |
| <span>Secure Connection: Established</span> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div class="flex space-x-3"> |
| <button class="bg-beruDark-400 rounded-full h-10 w-10 flex items-center justify-center hover:bg-beruGreen-500 hover:text-beruDark-500 transition"> |
| <i class="fas fa-sliders-h"></i> |
| </button> |
| <button class="flex items-center justify-center bg-beruGreen-500 text-beruDark-500 py-2 px-4 rounded-full hover:bg-beruGreen-400 transition text-sm font-medium"> |
| <i class="fas fa-sign-out-alt mr-1 transform rotate-180"></i> |
| Logout |
| </button> |
| </div> |
| </div> |
| </header> |
| |
| |
| <div class="flex flex-1 overflow-hidden"> |
| |
| <div class="w-full sm:w-72 lg:w-80 bg-beruDark-400/30 flex flex-col border-r border-beruDark-300"> |
| |
| <div class="p-3"> |
| <div class="relative"> |
| <div class="absolute inset-y-0 left-0 flex items-center pl-3"> |
| <i class="fas fa-search text-beruGreen-600"></i> |
| </div> |
| <input |
| type="text" |
| placeholder="Search contacts..." |
| class="w-full bg-beruDark-300 border border-beruDark-200 rounded-lg py-2 pl-10 pr-4 text-sm focus:outline-none focus:ring-1 focus:ring-beruGreen-500 placeholder-beruGreen-600" |
| > |
| </div> |
| </div> |
| |
| |
| <div class="px-3"> |
| <button class="w-full bg-beruGreen-600/20 hover:bg-beruGreen-500/30 border border-beruGreen-500/30 py-2 px-4 rounded-lg text-sm transition duration-150"> |
| <i class="fas fa-user-plus mr-2"></i> |
| Start New Conversation |
| </button> |
| </div> |
| |
| |
| <div class="px-3 py-2 mt-4 flex justify-between items-center"> |
| <h2 class="text-xs uppercase tracking-widest text-beruGreen-600">Contacts</h2> |
| <span class="text-xs bg-beruDark-300 px-2 py-0.5 rounded">32</span> |
| </div> |
| |
| |
| <div class="flex-1 overflow-y-auto py-1"> |
| <div class="contact-item hover:bg-beruDark-400/50 px-3 py-2 cursor-pointer border-l border-transparent hover:border-beruGreen-600 transition"> |
| <div class="flex items-center"> |
| <div class="relative mr-3"> |
| <div class="bg-beruDark-200 h-10 w-10 rounded-full flex items-center justify-center"> |
| <i class="fas fa-user text-beruGreen-500"></i> |
| </div> |
| <div class="status-indicator presence-online"></div> |
| </div> |
| <div class="flex-1"> |
| <div class="flex justify-between"> |
| <span class="font-medium text-sm">Alex Johnson</span> |
| <span class="text-xs text-beruGreen-600">12:45 PM</span> |
| </div> |
| <p class="text-xs text-beruGreen-600 truncate">Sent you the secure file...</p> |
| </div> |
| </div> |
| </div> |
| |
| <div class="contact-item hover:bg-beruDark-400/50 px-3 py-2 cursor-pointer border-l border-transparent hover:border-beruGreen-600 transition"> |
| <div class="flex items-center"> |
| <div class="relative mr-3"> |
| <div class="bg-beruDark-200 h-10 w-10 rounded-full flex items-center justify-center"> |
| <span class="text-beruGreen-500 font-bold">SI</span> |
| </div> |
| <div class="status-indicator presence-away"></div> |
| </div> |
| <div class="flex-1"> |
| <div class="flex justify-between"> |
| <span class="font-medium text-sm">Project Sigma</span> |
| <span class="text-xs text-beruGreen-600">11:22 AM</span> |
| </div> |
| <p class="text-xs text-beruGreen-600 truncate">Latest data has been encrypted...</p> |
| </div> |
| </div> |
| </div> |
| |
| <div class="contact-item hover:bg-beruDark-400/50 px-3 py-2 cursor-pointer border-l border-transparent hover:border-beruGreen-600 transition"> |
| <div class="flex items-center"> |
| <div class="relative mr-3"> |
| <div class="bg-beruDark-200 h-10 w-10 rounded-full flex items-center justify-center"> |
| <i class="fas fa-user-shield text-beruGreen-500"></i> |
| </div> |
| <div class="status-indicator presence-dnd"></div> |
| </div> |
| <div class="flex-1"> |
| <div class="flex justify-between"> |
| <span class="font-medium text-sm">Maya Rodriguez</span> |
| <span class="text-xs text-beruGreen-600">10:15 AM</span> |
| </div> |
| <p class="text-xs text-beruGreen-600 truncate">Are we still meeting at 2 PM?</p> |
| </div> |
| </div> |
| </div> |
| |
| <div class="contact-item hover:bg-beruDark-400/50 px-3 py-2 cursor-pointer border-l border-transparent hover:border-beruGreen-600 transition"> |
| <div class="flex items-center"> |
| <div class="relative mr-3"> |
| <div class="bg-beruDark-200 h-10 w-10 rounded-full flex items-center justify-center"> |
| <i class="fas fa-user-secret text-beruGreen-500"></i> |
| </div> |
| <div class="status-indicator presence-online"></div> |
| </div> |
| <div class="flex-1"> |
| <div class="flex justify-between"> |
| <span class="font-medium text-sm">Security Team</span> |
| <span class="text-xs text-beruGreen-600">09:47 AM</span> |
| </div> |
| <p class="text-xs text-beruGreen-600 truncate">Security audit requested...</p> |
| </div> |
| </div> |
| </div> |
| |
| <div class="contact-item hover:bg-beruDark-400/50 px-3 py-2 cursor-pointer border-l border-transparent hover:border-beruGreen-600 transition"> |
| <div class="flex items-center"> |
| <div class="relative mr-3"> |
| <div class="bg-beruDark-200 h-10 w-10 rounded-full flex items-center justify-center"> |
| <i class="fas fa-user-astronaut text-beruGreen-500"></i> |
| </div> |
| <div class="status-indicator presence-offline"></div> |
| </div> |
| <div class="flex-1"> |
| <div class="flex justify-between"> |
| <span class="font-medium text-sm">Robert Chen</span> |
| <span class="text-xs text-beruGreen-600">Yesterday</span> |
| </div> |
| <p class="text-xs text-beruGreen-600 truncate">Will send the documents tomorrow</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="flex-1 flex flex-col justify-between hidden sm:flex"> |
| |
| <div class="bg-beruDark-400/10 backdrop-blur border-b border-beruDark-300 py-3 px-6 flex items-center"> |
| <div class="relative"> |
| <div class="bg-beruDark-200 h-12 w-12 rounded-full flex items-center justify-center mr-3"> |
| <i class="fas fa-user-shield text-xl text-beruGreen-500"></i> |
| </div> |
| <div class="status-indicator presence-online"></div> |
| </div> |
| <div> |
| <h3 class="font-bold text-lg">Maya Rodriguez</h3> |
| <div class="flex items-center"> |
| <span class="text-xs text-beruGreen-500">Online</span> |
| <span class="text-xs px-2 text-beruGreen-400"> |
| <i class="fas fa-shield-alt mr-1"></i> |
| XMPP over HTTPS |
| </span> |
| <span class="text-xs px-2 bg-beruDark-300 rounded-full"> |
| <i class="fas fa-key mr-1"></i> |
| End-to-end encryption |
| </span> |
| </div> |
| </div> |
| <div class="ml-auto flex items-center space-x-3"> |
| <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition"> |
| <i class="fas fa-phone-alt"></i> |
| </button> |
| <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition"> |
| <i class="fas fa-video"></i> |
| </button> |
| <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition"> |
| <i class="fas fa-ellipsis-v"></i> |
| </button> |
| </div> |
| </div> |
| |
| |
| <div class="flex-1 overflow-y-auto py-4 px-6"> |
| <div class="text-center"> |
| <span class="text-xs bg-beruDark-300 px-3 py-1 rounded-full"> |
| <i class="fas fa-lock"></i> |
| Today |
| </span> |
| </div> |
| |
| |
| <div class="mt-5 flex items-start"> |
| <div class="bg-beruDark-300 rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center mr-3"> |
| <i class="fas fa-user-shield text-sm"></i> |
| </div> |
| <div class="mr-10 max-w-2xl"> |
| <div class="chat-bubble-received rounded-xl py-3 px-4 relative"> |
| <p class="text-sm">All communications on this channel are encrypted using AES-256. I have sent the protocol documentation for the operation.</p> |
| <div class="encrypted-indicator"> |
| <i class="fas fa-shield-alt mr-1"></i> |
| Encrypted |
| </div> |
| </div> |
| <div class="mt-2 pl-1"> |
| <span class="text-xs text-beruGreen-600">12:45 PM</span> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="mt-5 flex flex-row-reverse items-start"> |
| <div class="bg-beruGreen-600 rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center ml-3"> |
| <i class="fas fa-user text-sm text-beruDark-500"></i> |
| </div> |
| <div class="ml-10 max-w-2xl"> |
| <div class="chat-bubble-sent rounded-xl py-3 px-4 relative"> |
| <p class="text-sm">Received. I've set up OTR encryption for additional security. Please confirm the identity verification code: <code class="bg-beruGreen-700/30 px-1 py-0.5 rounded">172937AB5B</code></p> |
| <div class="encrypted-indicator"> |
| <i class="fas fa-shield-alt mr-1"></i> |
| Encrypted |
| </div> |
| </div> |
| <div class="mt-2 pr-1 text-right"> |
| <span class="text-xs text-beruGreen-600">12:47 PM</span> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="mt-5 flex items-start"> |
| <div class="bg-beruDark-300 rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center mr-3"> |
| <i class="fas fa-user-shield text-sm"></i> |
| </div> |
| <div class="mr-10 max-w-2xl"> |
| <div class="chat-bubble-received rounded-xl py-3 px-4 relative"> |
| <p class="text-sm">Code verified. Identity confirmed. This session is now protected with perfect forward secrecy. Can we discuss Phase 3 deployment?</p> |
| <div class="encrypted-indicator"> |
| <i class="fas fa-shield-alt mr-1"></i> |
| Encrypted |
| </div> |
| </div> |
| <div class="mt-2 pl-1"> |
| <span class="text-xs text-beruGreen-600">12:48 PM</span> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="mt-5 flex items-start"> |
| <div class="bg-beruDark-300 rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center mr-3"> |
| <i class="fas fa-user-shield text-sm"></i> |
| </div> |
| <div class="mr-10 max-w-2xl"> |
| <div class="bg-beruDark-300 border border-beruDark-200 rounded-xl py-2 px-3"> |
| <div class="flex items-center"> |
| <div class="bg-beruGreen-900/20 p-3 rounded-lg"> |
| <i class="fas fa-file-pdf text-beruGreen-500 text-2xl"></i> |
| </div> |
| <div class="ml-3 flex-1 min-w-0"> |
| <div class="flex justify-between"> |
| <span class="font-medium truncate">Phase3-Deployment-Protocol.pdf</span> |
| </div> |
| <div class="flex items-center justify-between mt-1"> |
| <span class="text-xs text-beruGreen-600">2.3 MB • PDF</span> |
| <div class="flex space-x-2"> |
| <button class="text-beruGreen-400 hover:text-beruGreen-300"> |
| <i class="fas fa-download"></i> |
| </button> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="text-xs py-1 pl-1 text-beruGreen-600"> |
| <i class="fas fa-lock mr-1"></i> |
| File encrypted with AES-256-CBC |
| </div> |
| <div class="mt-1 pl-1"> |
| <span class="text-xs text-beruGreen-600">12:49 PM</span> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="mt-5 flex flex-row-reverse items-start"> |
| <div class="bg-beruGreen-600 rounded-full h-8 w-8 flex-shrink-0 flex items-center justify-center ml-3"> |
| <i class="fas fa-user text-sm text-beruDark-500"></i> |
| </div> |
| <div class="ml-10 max-w-2xl"> |
| <div class="chat-bubble-sent rounded-xl py-3 px-4 relative"> |
| <p class="text-sm">I've reviewed the protocol document. The encryption settings are fully compliant with our security standards. We can proceed with the deployment as planned.</p> |
| <div class="encrypted-indicator"> |
| <i class="fas fa-shield-alt mr-1"></i> |
| Encrypted |
| </div> |
| </div> |
| <div class="mt-2 pr-1 text-right"> |
| <span class="text-xs text-beruGreen-600">12:53 PM</span> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="bg-beruDark-400/10 backdrop-blur border-t border-beruDark-300 pt-3 px-6 pb-5"> |
| |
| <div class="mb-2 text-xs"> |
| <div class="flex items-center justify-between mb-1"> |
| <div class="text-beruGreen-400"> |
| <i class="fas fa-lock mr-1"></i> |
| Encrypting file... (3.2 MB) |
| </div> |
| <div>32%</div> |
| </div> |
| <div class="w-full bg-beruDark-300 rounded-full h-2"> |
| <div class="bg-beruGreen-600 h-2 rounded-full" style="width: 32%"></div> |
| </div> |
| </div> |
| |
| <div class="flex items-center"> |
| <div class="flex space-x-2 mr-3"> |
| <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition"> |
| <i class="fas fa-paperclip"></i> |
| </button> |
| <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition"> |
| <i class="fas fa-image"></i> |
| </button> |
| <button class="bg-beruDark-300 hover:bg-beruGreen-500 hover:text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition"> |
| <i class="fas fa-lock"></i> |
| </button> |
| </div> |
| |
| <div class="flex-1"> |
| <div class="relative"> |
| <textarea |
| id="messageInput" |
| placeholder="Type a secure message..." |
| class="w-full bg-beruDark-300 border border-beruDark-200 rounded-xl py-3 pl-4 pr-12 focus:outline-none focus:border-beruGreen-500 resize-none placeholder-beruGreen-700" |
| rows="1" |
| ></textarea> |
| |
| <div class="absolute right-3 bottom-3"> |
| <button class="bg-beruGreen-500 hover:bg-beruGreen-400 text-beruDark-500 rounded-full h-10 w-10 flex items-center justify-center transition"> |
| <i class="fas fa-paper-plane"></i> |
| </button> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div class="pt-2 flex items-center"> |
| <div class="text-xs flex space-x-2"> |
| <div class="flex items-center"> |
| <span class="block h-2 w-2 rounded-full bg-beruGreen-500 mr-1"></span> |
| <span>Connection Secure</span> |
| </div> |
| <div class="flex items-center"> |
| <i class="fas fa-shield-alt mr-1 text-beruGreen-500"></i> |
| <span>End-to-end encrypted</span> |
| </div> |
| </div> |
| <div class="ml-auto"> |
| <div class="flex items-center text-xs"> |
| <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23059E5A' d='M10 17l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8m0-5H5c-1.11 0-2 .89-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5a2 2 0 0 0-2-2z'/%3E%3C/svg%3E" |
| alt="XMPP" |
| class="h-4 w-4 mr-1" |
| > |
| <span>XMPP</span> |
| <div class="w-1 h-1 rounded-full bg-beruGreen-500 mx-2"></div> |
| <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23059E5A' d='M18 9h-2V7c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-2h2c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm-4 10H8V7h6v12zm4-5v-1h-4v-1h4v-1h-4V9h4V8l3 3-3 3z'/%3E%3C/svg%3E" |
| alt="HTTPS" |
| class="h-4 w-4 mr-1 ml-2" |
| > |
| <span>HTTPS</span> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| |
| <div class="hidden flex-1 items-center justify-center sm:hidden"> |
| <div class="text-center px-4"> |
| <div class="bg-beruDark-300 h-20 w-20 rounded-full flex items-center justify-center mx-auto mb-4"> |
| <i class="fas fa-lock text-3xl"></i> |
| </div> |
| <h3 class="text-xl font-medium mb-2">Secure Encrypted Chats</h3> |
| <p class="text-beruGreen-600 mb-6">Select a conversation to start messaging securely</p> |
| <button class="bg-beruGreen-600 hover:bg-beruGreen-500 text-beruDark-500 py-2 px-6 rounded-full font-medium"> |
| Start New Conversation |
| </button> |
| </div> |
| </div> |
| </div> |
| </div> |
|
|
| <script> |
| |
| const textarea = document.getElementById('messageInput'); |
| textarea.addEventListener('input', function() { |
| this.style.height = 'auto'; |
| this.style.height = (this.scrollHeight) + 'px'; |
| }); |
| |
| |
| const statusEl = document.getElementById('connectionStatus'); |
| let animationTimeout; |
| |
| function simulateConnection() { |
| |
| statusEl.className = 'connection-status status-encrypting text-beruGreen-400 flex items-center'; |
| statusEl.innerHTML = '<span>Encrypting Channel: Connecting...</span>'; |
| |
| |
| animationTimeout = setTimeout(() => { |
| statusEl.className = 'connection-status status-connected text-beruGreen-500 flex items-center'; |
| statusEl.innerHTML = '<span>Secure Connection: Established</span>'; |
| |
| statusEl.classList.add('animate-pulse'); |
| |
| |
| setTimeout(() => { |
| statusEl.classList.remove('animate-pulse'); |
| }, 3000); |
| }, 2000); |
| } |
| |
| |
| simulateConnection(); |
| |
| |
| setInterval(() => { |
| |
| const statuses = ['connected', 'encrypting']; |
| const status = statuses[Math.floor(Math.random() * statuses.length)]; |
| |
| if (status === 'connected') { |
| clearTimeout(animationTimeout); |
| statusEl.className = 'connection-status status-connected text-beruGreen-500 flex items-center'; |
| statusEl.innerHTML = '<span>Secure Connection: Established</span>'; |
| statusEl.classList.add('animate-pulse'); |
| |
| |
| setTimeout(() => { |
| statusEl.classList.remove('animate-pulse'); |
| }, 3000); |
| } else if (status === 'encrypting') { |
| statusEl.className = 'connection-status status-encrypting text-beruGreen-400 flex items-center'; |
| statusEl.innerHTML = '<span>Re-negotiating: Encrypting...</span>'; |
| } |
| }, 10000); |
| </script> |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=D110/beru-ba" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
| </html> |