@font-face { font-family: "Quicksand"; src: local("Quicksand"); font-display: swap; } @font-face { font-family: "TerminalGrotesque"; src: url("/static/terminal-grotesque_open.otf") format("opentype"); font-style: normal; font-display: swap; } :root { --bg-main: #101820; --bg-content: #18222d; --accent: #00ff99; --accent-soft: #33ffbb; --text-main: #e0ffe0; --text-link: #00e6e6; --text-link-hover: #fff; --border: #222c38; --header-bg: #16202a; --footer-bg: #16202a; --shadow: 0 2px 16px rgba(0,0,0,0.15); --radius: 10px; --font-main: 'Quicksand', 'Segoe UI', Arial, sans-serif; --font-mono: 'Fira Mono', 'Consolas', monospace; } html, body { height: 100%; margin: 0; padding: 0; background: var(--bg-main); color: var(--text-main); font-family: var(--font-main); font-size: 18px; line-height: 1.6; min-height: 100vh; box-sizing: border-box; scroll-behavior: smooth; } body { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; min-height: 100vh; background-size: 20px 20px; cursor: crosshair; } a { color: var(--text-link); text-decoration: underline; transition: color 0.2s; font-weight: 500; } a:hover, a:focus { color: var(--text-link-hover); background: var(--accent); text-decoration: none; border-radius: var(--radius); padding: 0 2px; } canvas { display: block; z-index: -3; } #topbar { width: 100%; text-align: center; border-bottom: 1px solid var(--border); position: sticky; top: 0; background: var(--header-bg); color: var(--accent); font-family: var(--font-mono); font-size: 1.2em; letter-spacing: 0.05em; box-shadow: var(--shadow); animation: slideDown 1.2s cubic-bezier(.68,-0.55,.27,1.55) backwards; } @keyframes slideDown { 0% { transform: translateY(-50px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } .button, .btn { display: inline-block; padding: 10px 18px; margin: 0 4px; border: none; border-radius: var(--radius); background: var(--accent); color: #101820; font-size: 1em; font-family: var(--font-main); font-weight: 600; cursor: pointer; transition: background 0.2s, color 0.2s, box-shadow 0.2s; box-shadow: 0 1px 4px rgba(0,0,0,0.08); } .button:hover, .btn:hover { background: var(--accent-soft); color: #000; } .content { background: var(--bg-content); color: var(--text-main); border-radius: var(--radius); box-shadow: var(--shadow); padding: 32px 6vw; margin: 32px 0; width: 90vw; max-width: 900px; text-align: left; font-size: 1.1em; overflow-x: auto; } .content img { max-width: 100%; border-radius: 6px; box-shadow: 0 1px 8px rgba(0,0,0,0.12); margin: 16px 0; display: block; } h1, h2, h3, h4 { color: var(--accent); font-family: var(--font-mono); font-weight: 700; margin-top: 1.5em; margin-bottom: 0.5em; text-align: center; letter-spacing: 0.03em; } h1 { font-size: 2.2em; } h2 { font-size: 1.5em; } h3 { font-size: 1.2em; } #footer { color: var(--text-main); width: 100vw; font-size: 0.95em; background: var(--footer-bg); text-align: center; padding: 18px 10px 10px 10px; position: relative; border-top: 1px solid var(--border); border-radius: 0 0 var(--radius) var(--radius); box-shadow: 0 -1px 8px rgba(0,0,0,0.08); margin-top: auto; } #footer a { color: var(--accent); font-size: inherit; text-decoration: underline; } #footer a:hover { color: var(--text-link-hover); background: var(--accent-soft); } header, footer, div.page { width: 100%; max-width: 760px; margin: 0 auto; background: var(--header-bg); padding: 20px 30px; border-radius: var(--radius); box-shadow: var(--shadow); } header h1 { color: var(--accent); margin: 0; font-weight: 700; font-size: 2.5em; letter-spacing: 0.04em; } header nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 18px; justify-content: center; } header nav ul li { display: inline; margin: 0; padding: 0; } div.page { background: var(--bg-content); } #grid-canvas, #particle-canvas { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; pointer-events: none; } #grid-canvas { z-index: -20; } #particle-canvas { background-color: transparent; z-index: 10002; } #coords { position: fixed; bottom: 16px; right: 16px; background: rgba(16, 24, 32, 0.85); color: var(--accent); padding: 8px 14px; border-radius: 6px; font-family: var(--font-mono); font-size: 1em; z-index: 1001; box-shadow: 0 1px 8px rgba(0,0,0,0.18); transition: all 0.2s ease; cursor: crosshair; user-select: none; opacity: 0.95; } #coords.decrypted { background: rgba(16, 24, 32, 0.98); color: #fff; }