/* Synthwave Terminal */ /* Color variables */ :root { /* Background layers */ --bg-top: #1a0f2e; --bg-mid: #090012; --bg-bottom: #050008; --bg-panel: rgba(10, 0, 25, 0.6); --bg-lightbox: rgba(5, 0, 8, 0.95); /* Accent — magenta */ --magenta: #ff00ff; --magenta-rgb: 255, 0, 255; --magenta-hover: #ff66ff; --magenta-hover-rgb: 255, 102, 255; /* Accent — cyan */ --cyan: #00ffff; --cyan-rgb: 0, 255, 255; /* Text */ --text-primary: #e0d6ff; --text-subtitle: #c9b6ff; --text-muted: #888; --text-black: #000; } /* Fonts */ @font-face { font-family: 'Hacked'; src: url('./fonts/Hacked/Hacked-KerX.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Argon Glow'; src: url('./fonts/argonGlow/ArgonGlow-Thin.woff2') format('woff2'), url('./fonts/argonGlow/ArgonGlow-Thin.ttf') format('truetype'); font-weight: 100; font-style: normal; } @font-face { font-family: 'Argon Glow'; src: url('./fonts/argonGlow/ArgonGlow-ExtraLight.woff2') format('woff2'), url('./fonts/argonGlow/ArgonGlow-ExtraLight.ttf') format('truetype'); font-weight: 200; font-style: normal; } @font-face { font-family: 'Argon Glow'; src: url('./fonts/argonGlow/ArgonGlow-Light.woff2') format('woff2'), url('./fonts/argonGlow/ArgonGlow-Light.ttf') format('truetype'); font-weight: 300; font-style: normal; } @font-face { font-family: 'Argon Glow'; src: url('./fonts/argonGlow/ArgonGlow-Regular.woff2') format('woff2'), url('./fonts/argonGlow/ArgonGlow-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; } @font-face { font-family: 'Argon Glow'; src: url('./fonts/argonGlow/ArgonGlow-Medium.woff2') format('woff2'), url('./fonts/argonGlow/ArgonGlow-Medium.ttf') format('truetype'); font-weight: 500; font-style: normal; } @font-face { font-family: 'Argon Glow'; src: url('./fonts/argonGlow/ArgonGlow-SemiBold.woff2') format('woff2'), url('./fonts/argonGlow/ArgonGlow-SemiBold.ttf') format('truetype'); font-weight: 600; font-style: normal; } @font-face { font-family: 'Argon Glow'; src: url('./fonts/argonGlow/ArgonGlow-Bold.woff2') format('woff2'), url('./fonts/argonGlow/ArgonGlow-Bold.ttf') format('truetype'); font-weight: 700; font-style: normal; } /* Make canvas sit behind everything */ canvas { position: fixed; top: 0; left: 0; z-index: -1; } html, body { height: 100%; margin: 0; } /* Hide scrollbar for Chrome, Safari and Opera */ html::-webkit-scrollbar, body::-webkit-scrollbar { display: none; } html { -ms-overflow-style: none; /* IE and Edge */ scrollbar-width: none; /* Firefox */ } body { background: radial-gradient(ellipse at bottom, var(--bg-top) 0%, var(--bg-mid) 60%, var(--bg-bottom) 100%); color: var(--text-primary); font-family: "Courier New", monospace; margin: 0; padding: 0; } /* Floating terminal panel */ .container { /* visibility: hidden; */ position: relative; top: 35%; z-index: 1; max-width: 800px; margin: 80px auto; padding: 30px; background: var(--bg-panel); border: 1px solid rgba(var(--magenta-rgb), 0.4); box-shadow: 0 0 15px rgba(var(--magenta-rgb), 0.2), 0 0 40px rgba(var(--cyan-rgb), 0.1); backdrop-filter: blur(6px); } /* Title glow */ h1 { font-size: 42px; text-align: center; font-family: 'Argon Glow'; color: var(--magenta); text-shadow: 0 0 5px var(--magenta), 0 0 15px rgba(var(--magenta-rgb), 0.6); } /* Subtitle */ .subtitle { text-align: center; font-size: 18px; margin-bottom: 40px; color: var(--text-subtitle); } /* Section headers */ h2 { font-size: 22px; margin-top: 30px; color: var(--cyan); text-shadow: 0 0 8px rgba(var(--cyan-rgb), 0.6); } /* Terminal-style list */ ul { list-style: none; padding-left: 20px; } li::before { content: "> "; color: var(--magenta); } /* Links */ a { color: var(--cyan); text-decoration: none; } a:hover { text-shadow: 0 0 8px var(--cyan); } /* Exclude h1 links */ h1 a { color: inherit; /* take h1 color */ text-decoration: none; /* remove underline if any */ text-shadow: none; /* remove link glow */ } /* Terminal-style form elements */ input[type="text"], textarea, button { font-family: 'Hacked', monospace; font-size: 16px; background: var(--bg-panel); color: var(--text-primary); border: 1px solid var(--magenta); border-radius: 4px; padding: 10px; outline: none; box-shadow: 0 0 5px var(--magenta), 0 0 15px rgba(var(--magenta-rgb), 0.2); backdrop-filter: blur(4px); transition: all 0.2s ease-in-out; width: 100%; margin-bottom: 15px; box-sizing: border-box; } input[type="text"], textarea { font-family: "Courier New", monospace; } /* Textarea bigger height */ textarea { min-height: 100px; resize: vertical; } /* Hover/focus effects */ input[type="text"]:focus, textarea:focus { border-color: var(--cyan); box-shadow: 0 0 5px var(--cyan), 0 0 15px rgba(var(--cyan-rgb), 0.2); } /* Button */ button { cursor: pointer; background: var(--magenta); color: var(--text-black); font-weight: bold; border: none; box-shadow: 0 0 10px var(--magenta), 0 0 20px rgba(var(--magenta-rgb), 0.2); } button:hover { background: var(--magenta-hover); box-shadow: 0 0 15px var(--magenta-hover), 0 0 30px rgba(var(--magenta-hover-rgb), 0.3); } /* Footer */ footer { text-align: center; margin-top: 60px; font-size: 14px; color: var(--text-muted); } /* Gallery grid */ .gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 15px; margin: 30px 0; } .gallery-item { aspect-ratio: 1; overflow: hidden; border: 1px solid rgba(var(--magenta-rgb), 0.4); transition: all 0.2s ease-in-out; } .gallery-item:hover { border-color: var(--cyan); box-shadow: 0 0 15px rgba(var(--cyan-rgb), 0.4); } .gallery-item img { width: 100%; height: 100%; object-fit: cover; } /* Lightbox */ .lightbox { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--bg-lightbox); z-index: 100; align-items: center; justify-content: center; } .lightbox.active { display: flex; } .lightbox-img { max-width: 90%; max-height: 90%; border: 1px solid rgba(var(--magenta-rgb), 0.4); box-shadow: 0 0 30px rgba(var(--magenta-rgb), 0.3); } .lightbox-close { position: absolute; top: 20px; right: 30px; font-size: 40px; color: var(--magenta); cursor: pointer; transition: all 0.2s ease-in-out; } .lightbox-close:hover { color: var(--cyan); text-shadow: 0 0 10px var(--cyan); }