summaryrefslogtreecommitdiffstats
path: root/static/style.css
diff options
context:
space:
mode:
authorGab Virebent <gabriel1@virebent.art>2026-06-20 01:07:45 +0000
committerGab Virebent <gabriel1@virebent.art>2026-06-20 01:07:45 +0000
commitaa459e3b84cc4c5d908f3781c9253848c18640c3 (patch)
tree8454b956cc0fa027034c8291f39d58ece469e10c /static/style.css
downloadnymdrop-aa459e3b84cc4c5d908f3781c9253848c18640c3.tar.gz
nymdrop-aa459e3b84cc4c5d908f3781c9253848c18640c3.tar.xz
nymdrop-aa459e3b84cc4c5d908f3781c9253848c18640c3.zip
Initial public release: Nym-native anonymous submission system
End-to-end verified pipeline (browser -> HTTP relay -> Nym mixnet -> reader). Client-side X25519+HKDF+AES-GCM-256, no-log blind relay, AGPL-3.0.
Diffstat (limited to 'static/style.css')
-rw-r--r--static/style.css179
1 files changed, 179 insertions, 0 deletions
diff --git a/static/style.css b/static/style.css
new file mode 100644
index 0000000..3b077d7
--- /dev/null
+++ b/static/style.css
@@ -0,0 +1,179 @@
+*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
+
+body {
+ background: #0d1117;
+ color: #c9d1d9;
+ font-family: 'Courier New', Courier, monospace;
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 2rem 1rem;
+}
+
+.card {
+ background: #161b22;
+ border: 1px solid #21262d;
+ border-radius: 8px;
+ padding: 2.5rem 2rem;
+ width: 100%;
+ max-width: 580px;
+ box-shadow: 0 0 40px rgba(0,255,160,0.04);
+}
+
+.logo {
+ display: flex;
+ align-items: center;
+ gap: 0.7rem;
+ margin-bottom: 0.5rem;
+}
+
+.logo-icon {
+ width: 32px;
+ height: 32px;
+ background: linear-gradient(135deg, #00ffa0, #0080ff);
+ border-radius: 6px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 1rem;
+ color: #0d1117;
+ font-weight: bold;
+}
+
+h1 {
+ font-size: 1.4rem;
+ font-weight: bold;
+ color: #e6edf3;
+ letter-spacing: 0.15em;
+}
+
+.tagline {
+ font-size: 0.72rem;
+ color: #484f58;
+ margin-bottom: 2rem;
+ letter-spacing: 0.03em;
+}
+
+.badges {
+ display: flex;
+ gap: 0.5rem;
+ margin-bottom: 2rem;
+ flex-wrap: wrap;
+}
+
+.badge {
+ font-size: 0.65rem;
+ padding: 0.2rem 0.6rem;
+ border-radius: 20px;
+ letter-spacing: 0.05em;
+ font-weight: bold;
+}
+
+.badge-green { background: rgba(0,255,160,0.08); color: #00ffa0; border: 1px solid rgba(0,255,160,0.2); }
+.badge-blue { background: rgba(0,128,255,0.08); color: #58a6ff; border: 1px solid rgba(0,128,255,0.2); }
+.badge-gray { background: rgba(255,255,255,0.04); color: #8b949e; border: 1px solid #30363d; }
+
+label {
+ display: block;
+ font-size: 0.72rem;
+ color: #8b949e;
+ margin-bottom: 0.4rem;
+ text-transform: uppercase;
+ letter-spacing: 0.08em;
+}
+
+textarea {
+ width: 100%;
+ height: 160px;
+ background: #0d1117;
+ border: 1px solid #30363d;
+ border-radius: 6px;
+ color: #c9d1d9;
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 0.88rem;
+ padding: 0.9rem;
+ resize: vertical;
+ margin-bottom: 1.4rem;
+ transition: border-color 0.2s;
+ outline: none;
+}
+
+textarea:focus { border-color: #00ffa0; box-shadow: 0 0 0 2px rgba(0,255,160,0.08); }
+
+.file-section { margin-bottom: 1.8rem; }
+
+.file-label {
+ display: inline-block;
+ background: #21262d;
+ border: 1px solid #30363d;
+ border-radius: 6px;
+ color: #8b949e;
+ font-size: 0.78rem;
+ padding: 0.5rem 1rem;
+ cursor: pointer;
+ transition: border-color 0.2s, color 0.2s;
+}
+
+.file-label:hover { border-color: #58a6ff; color: #58a6ff; }
+
+#file { display: none; }
+
+#filename {
+ font-size: 0.72rem;
+ color: #58a6ff;
+ margin-left: 0.6rem;
+ vertical-align: middle;
+}
+
+.submit-btn {
+ width: 100%;
+ background: linear-gradient(135deg, #00ffa0 0%, #0080ff 100%);
+ border: none;
+ border-radius: 6px;
+ color: #0d1117;
+ font-family: 'Courier New', Courier, monospace;
+ font-size: 0.9rem;
+ font-weight: bold;
+ letter-spacing: 0.1em;
+ padding: 0.85rem;
+ cursor: pointer;
+ transition: opacity 0.2s, transform 0.1s;
+ text-transform: uppercase;
+}
+
+.submit-btn:hover { opacity: 0.9; }
+.submit-btn:active { transform: scale(0.99); }
+
+#status {
+ margin-top: 1rem;
+ font-size: 0.78rem;
+ min-height: 1.2rem;
+ text-align: center;
+ color: #00ffa0;
+}
+
+#status.error { color: #f85149; }
+
+.divider {
+ border: none;
+ border-top: 1px solid #21262d;
+ margin: 2rem 0 1.2rem;
+}
+
+.notice {
+ font-size: 0.68rem;
+ color: #3d444d;
+ line-height: 1.7;
+}
+
+.notice span { color: #484f58; }
+
+.footer {
+ margin-top: 1.5rem;
+ font-size: 0.62rem;
+ color: #21262d;
+ text-align: center;
+ letter-spacing: 0.05em;
+}