File: /home/internet/public_html/whois/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>WHOIS Terminal</title>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--green: #00ff41;
--green-dim:#00c030;
--green-lo: #005010;
--amber: #ffb000;
--red: #ff3333;
--bg: #000000;
--scanline: rgba(0,255,65,0.03);
}
html, body {
height: 100%;
background: var(--bg);
color: var(--green);
font-family: 'Courier New', Courier, monospace;
font-size: 15px;
line-height: 1.6;
overflow-x: hidden;
}
/* CRT scanline overlay */
body::after {
content: '';
pointer-events: none;
position: fixed;
inset: 0;
background: repeating-linear-gradient(
0deg,
transparent,
transparent 2px,
var(--scanline) 2px,
var(--scanline) 4px
);
z-index: 9999;
}
/* subtle phosphor glow on text */
body {
text-shadow: 0 0 6px rgba(0,255,65,0.55);
}
.terminal {
max-width: 860px;
margin: 0 auto;
padding: 32px 24px 80px;
min-height: 100vh;
}
/* ── Header ── */
.header {
margin-bottom: 28px;
border-bottom: 1px solid var(--green-lo);
padding-bottom: 16px;
}
.header .ascii {
white-space: pre;
font-size: 11px;
line-height: 1.2;
color: var(--green-dim);
text-shadow: 0 0 8px rgba(0,255,65,0.4);
margin-bottom: 6px;
}
.header .subtitle {
color: var(--green-dim);
font-size: 12px;
letter-spacing: 0.08em;
}
.header .subtitle span { color: var(--green); }
/* ── Prompt line ── */
.prompt-row {
display: flex;
align-items: center;
gap: 0;
margin-bottom: 24px;
}
.prompt-symbol {
color: var(--green);
padding-right: 8px;
flex-shrink: 0;
user-select: none;
}
#domain-input {
flex: 1;
background: transparent;
border: none;
outline: none;
color: var(--green);
font-family: inherit;
font-size: 15px;
caret-color: var(--green);
text-shadow: 0 0 6px rgba(0,255,65,0.55);
}
#domain-input::placeholder { color: var(--green-lo); }
#lookup-btn {
flex-shrink: 0;
margin-left: 12px;
background: transparent;
border: 1px solid var(--green-dim);
color: var(--green);
font-family: inherit;
font-size: 13px;
padding: 3px 14px;
cursor: pointer;
letter-spacing: 0.06em;
transition: background 0.12s, color 0.12s;
}
#lookup-btn:hover {
background: var(--green-lo);
}
#lookup-btn:active {
background: var(--green-dim);
color: #000;
}
/* blinking cursor after input */
.cursor-block {
display: inline-block;
width: 9px;
height: 15px;
background: var(--green);
margin-left: 1px;
vertical-align: middle;
animation: blink 1.1s step-end infinite;
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
/* ── Output area ── */
#output {
margin-top: 4px;
}
.cmd-echo {
color: var(--green-dim);
margin-bottom: 10px;
font-size: 13px;
}
.loading-line {
color: var(--green-dim);
font-size: 13px;
margin-bottom: 4px;
}
.dots::after {
content: '';
animation: dots 1.4s infinite;
}
@keyframes dots {
0% { content: '.'; }
33% { content: '..'; }
66% { content: '...'; }
100% { content: ''; }
}
.result-block {
border-left: 2px solid var(--green-lo);
padding-left: 16px;
margin-top: 8px;
animation: fadeIn 0.25s ease;
}
@keyframes fadeIn { from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:none} }
.result-row {
display: flex;
gap: 0;
margin-bottom: 2px;
flex-wrap: wrap;
}
.result-label {
color: var(--green-dim);
min-width: 180px;
flex-shrink: 0;
font-size: 14px;
}
.result-value {
color: var(--green);
font-size: 14px;
word-break: break-all;
}
.result-value.na { color: var(--green-lo); }
.error-block {
border-left: 2px solid var(--red);
padding-left: 16px;
margin-top: 8px;
animation: fadeIn 0.25s ease;
}
.error-main {
color: var(--red);
text-shadow: 0 0 6px rgba(255,50,50,0.6);
font-size: 14px;
margin-bottom: 2px;
}
.error-detail {
color: #aa2222;
font-size: 12px;
}
.divider {
border: none;
border-top: 1px solid var(--green-lo);
margin: 22px 0 18px;
}
.history-note {
color: var(--green-lo);
font-size: 12px;
margin-top: 28px;
}
</style>
</head>
<body>
<div class="terminal">
<div class="header">
<pre class="ascii">
██╗ ██╗██╗ ██╗ ██████╗ ██╗███████╗
██║ ██║██║ ██║██╔═══██╗██║██╔════╝
██║ █╗ ██║███████║██║ ██║██║███████╗
██║███╗██║██╔══██║██║ ██║██║╚════██║
╚███╔███╔╝██║ ██║╚██████╔╝██║███████║
╚══╝╚══╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝╚══════╝ TERMINAL v1.0</pre>
<div class="subtitle">Domain lookup via system WHOIS | <span>Enter domain or URL below</span></div>
</div>
<div class="prompt-row">
<span class="prompt-symbol">whois> </span>
<input
type="text"
id="domain-input"
placeholder="example.com or paste any URL..."
autocomplete="off"
autocorrect="off"
autocapitalize="off"
spellcheck="false"
/>
<button id="lookup-btn">[ LOOKUP ]</button>
</div>
<div id="output"></div>
<p class="history-note">Tip: paste any URL, comma-separated domains, or a raw domain. First valid domain is used.</p>
</div>
<script src="app.js"></script>
</body>
</html>