@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@600&display=swap'); /* Base styling */ body { font-family: 'Orbitron', sans-serif; background: linear-gradient(135deg, #0d001a, #1a0033); color: #f0f0f0; margin: 0; padding: 2rem; display: flex; flex-direction: column; align-items: center; } /* Title */ .title { font-size: 2.5rem; font-weight: bold; color: #ff00ff; text-shadow: 0 0 10px #ff00ff, 0 0 20px #ff00ff, 0 0 40px #ff0080; margin-bottom: 2rem; text-transform: uppercase; letter-spacing: 2px; } /* Form / Textarea */ .form { width: 100%; max-width: 700px; min-height: 160px; background: #1a0033; border: 2px solid #00ffff; border-radius: 12px; padding: 1rem; color: #fff; font-size: 1rem; resize: vertical; box-shadow: 0 0 10px #00ffff44; transition: border 0.3s, box-shadow 0.3s; } .form:focus { outline: none; border-color: #ff00ff; box-shadow: 0 0 16px #ff00ff99; } /* Button */ .button { background: linear-gradient(45deg, #ff00ff, #00ffff); color: #000; border: none; padding: 0.9rem 2rem; font-size: 1rem; font-weight: bold; border-radius: 10px; margin-top: 1rem; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.3s ease; text-transform: uppercase; letter-spacing: 1px; } .button:hover { transform: translateY(-3px); box-shadow: 0 0 15px #ff00ff, 0 0 25px #00ffff; } .button:disabled { background: #444; color: #999; cursor: not-allowed; } /* Status */ .status { margin-top: 1rem; font-size: 0.95rem; font-style: italic; color: #cccccc; } .status.loading { color: #ffc107; animation: pulse 1s infinite; } .status.generate { color: #00ffff; } .status.done { color: #7fff00; } /* Loading animation */ @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } } /* Response */ .response { width: 100%; max-width: 700px; background: #1a0033; border: 2px solid #ff00ff; border-radius: 12px; margin-top: 2rem; padding: 1rem; white-space: pre-wrap; color: #00ffea; font-family: 'Courier New', Courier, monospace; line-height: 1.6; box-shadow: 0 0 15px #ff00ff55; overflow-y: auto; max-height: 400px; } @keyframes glitch { 0% { text-shadow: 2px 0 magenta, -2px 0 cyan; } 20% { text-shadow: -2px 0 magenta, 2px 0 cyan; } 40% { text-shadow: 2px 2px magenta, -2px -2px cyan; } 60% { text-shadow: -2px -2px magenta, 2px 2px cyan; } 80% { text-shadow: 0 0 magenta, 0 0 cyan; } 100% { text-shadow: 2px 0 magenta, -2px 0 cyan; } } .title { animation: glitch 2s infinite; }