@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;700&family=Syne:wght@400;800&family=JetBrains+Mono:wght@100;800&display=swap'); :root { --bg: #050505; --fg: #F4F0EA; --accent: #00FFCC; --blood: #FF0055; --grid: #1a1a1a; --font-display: 'Syne', sans-serif; --font-text: 'Space Grotesk', sans-serif; --font-code: 'JetBrains Mono', monospace; } html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: var(--bg); color: var(--fg); font-family: var(--font-text); font-size: 15px; cursor: crosshair; } ::selection { background: var(--accent); color: var(--bg); } /* --- THE GAME WORLD --- */ #cyber-game { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 1; } #game-map { position: absolute; width: 5000px; height: 5000px; background-image: linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px); background-size: 50px 50px; transform-origin: 0 0; will-change: transform; } #player { position: absolute; width: 20px; height: 20px; background: var(--accent); box-shadow: 0 0 20px var(--accent), 0 0 40px var(--accent); top: 0; left: 0; will-change: transform; border-radius: 2px; } .portal { position: absolute; width: 200px; height: 60px; border: 2px solid var(--blood); color: var(--blood); font-family: var(--font-code); text-transform: uppercase; background: rgba(255, 0, 85, 0.05); box-shadow: 0 0 15px rgba(255, 0, 85, 0.3), inset 0 0 10px rgba(255, 0, 85, 0.2); display: flex; align-items: center; justify-content: center; text-align: center; font-weight: bold; font-size: 14px; letter-spacing: 1px; transition: all 0.2s; backdrop-filter: blur(2px); } .portal::before { content: '[ SYS_NODE ]'; position: absolute; top: -10px; left: 10px; background: var(--bg); padding: 0 5px; font-size: 10px; } .portal.active { background: var(--blood); color: var(--bg); box-shadow: 0 0 30px var(--blood); transform: scale(1.1); } /* --- HUD & UI --- */ .layout { position: relative; z-index: 10; pointer-events: none; /* Let game capture clicks */ height: 100vh; display: flex; justify-content: flex-end; padding: 2vw; } /* Make only the HUD interactive */ .main { pointer-events: auto; width: 50vw; max-width: 800px; background: rgba(5, 5, 5, 0.85); border: 1px solid var(--accent); box-shadow: -10px 10px 0 rgba(0, 255, 204, 0.2); backdrop-filter: blur(10px); display: flex; flex-direction: column; height: 100%; } .hud-header { border-bottom: 1px solid var(--accent); padding: 15px 20px; display: flex; justify-content: space-between; align-items: center; background: rgba(0, 255, 204, 0.1); } .logo { font-family: var(--font-display); font-size: 24px; font-weight: 800; color: var(--accent); text-decoration: none; text-transform: uppercase; } .hud-status { font-family: var(--font-code); color: var(--blood); font-size: 12px; animation: blink 2s infinite; } @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .search-wrapper { position: relative; width: 200px; } .search-input { width: 100%; background: transparent; border: 1px dashed var(--accent); color: var(--accent); font-family: var(--font-code); padding: 5px 10px; outline: none; } .search-input:focus { border-style: solid; background: rgba(0, 255, 204, 0.1); } .search-input::placeholder { color: rgba(0, 255, 204, 0.5); } .content-scroll { flex: 1; overflow-y: auto; padding: 30px; } .content-scroll::-webkit-scrollbar { width: 8px; } .content-scroll::-webkit-scrollbar-track { background: var(--bg); border-left: 1px solid var(--accent); } .content-scroll::-webkit-scrollbar-thumb { background: var(--accent); } /* --- WIKI CONTENT STYLING --- */ h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); text-transform: uppercase; color: var(--fg); } h1 { font-size: 3rem; color: var(--accent); text-shadow: 2px 2px 0 var(--blood); margin-bottom: 2rem; border-bottom: 2px dashed var(--accent); padding-bottom: 10px; } h2 { font-size: 2rem; margin-top: 2rem; color: var(--fg); background: var(--blood); display: inline-block; padding: 5px 15px;} h3 { font-size: 1.5rem; color: var(--blood); border-top: 1px solid var(--blood); padding-top: 10px;} a { color: var(--accent); text-decoration: none; border-bottom: 1px dashed var(--accent); } a:hover { background: var(--accent); color: var(--bg); } .page-content p { line-height: 1.6; margin-bottom: 1.5rem; font-size: 1.1rem; } .page-content ul, .page-content ol { margin-left: 20px; margin-bottom: 1.5rem; font-size: 1.1rem;} .page-content li { margin-bottom: 5px; } pre { background: rgba(255,255,255,0.05); border: 1px solid var(--accent); border-left: 4px solid var(--blood); padding: 15px; font-family: var(--font-code); overflow-x: auto; margin: 1.5rem 0; } code { font-family: var(--font-code); color: var(--accent); background: rgba(0,255,204,0.1); padding: 2px 4px;} pre code { background: transparent; padding: 0; } blockquote { border-left: 4px solid var(--blood); padding-left: 15px; margin: 1.5rem 0; color: var(--blood); font-style: italic; font-size: 1.2rem; font-family: var(--font-display); } table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-family: var(--font-code);} th, td { border: 1px solid rgba(255,255,255,0.2); padding: 10px; text-align: left; } th { background: rgba(0, 255, 204, 0.1); color: var(--accent); } /* Command Palette (HUD Version) */ .cmd-overlay { background: rgba(0,0,0,0.8); z-index: 1000; } .cmd-palette { background: var(--bg); border: 2px solid var(--blood); box-shadow: 10px 10px 0 rgba(255, 0, 85, 0.2); z-index: 1001; top: 20%; left: 50%; transform: translateX(-50%); width: 600px; position: fixed; } .cmd-input { width: 100%; background: transparent; color: var(--blood); border: none; border-bottom: 1px solid var(--blood); font-family: var(--font-code); padding: 15px; font-size: 20px; outline: none; } .cmd-result { padding: 15px; font-family: var(--font-code); border-bottom: 1px solid rgba(255,0,85,0.2); display: flex; justify-content: space-between;} .cmd-result:hover, .cmd-result.active { background: var(--blood); color: var(--bg); cursor: pointer; } .cmd-result:hover *, .cmd-result.active * { color: var(--bg); } /* Misc */ .page-meta { display: none; } /* Hide meta in HUD to save space */ .breadcrumb { margin-bottom: 20px; font-family: var(--font-code); font-size: 12px; color: var(--blood); } .breadcrumb a { color: var(--blood); border-color: var(--blood); } /* Home page domains grid (in HUD) */ .domain-grid { display: grid; grid-template-columns: 1fr; gap: 15px; } .domain-card { border: 1px solid var(--accent); padding: 15px; background: rgba(0, 255, 204, 0.05); display: block; } .domain-card:hover { background: var(--accent); color: var(--bg); } .domain-card:hover * { color: var(--bg); } .domain-num { font-family: var(--font-code); color: var(--blood); font-size: 12px; } .domain-name { font-family: var(--font-display); font-size: 20px; margin: 5px 0; } button, .btn-search, .btn-save, .btn-edit, .btn-cancel { background: transparent; border: 1px solid var(--accent); color: var(--accent); font-family: var(--font-code); padding: 8px 15px; cursor: pointer; text-transform: uppercase; } button:hover, .btn-search:hover, .btn-save:hover, .btn-edit:hover { background: var(--accent); color: var(--bg); } .search-suggestions { background: var(--bg); border: 1px solid var(--accent); position: absolute; top: 100%; left: 0; right: 0; z-index: 50; display: none; } .suggestion { display: block; padding: 10px; font-family: var(--font-code); font-size: 12px; border-bottom: 1px solid rgba(0,255,204,0.2); } .suggestion:hover { background: var(--accent); color: var(--bg); } .suggestion:hover * { color: var(--bg); } .dash-stats { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 20px; } .dash-stat { border: 1px solid var(--accent); padding: 15px; flex: 1; text-align: center; } .dash-stat-num { font-family: var(--font-display); font-size: 2rem; color: var(--accent); } .dash-stat-label { font-family: var(--font-code); font-size: 0.8rem; color: var(--blood); } /* Form inputs */ .form-input, .edit-textarea { background: transparent; border: 1px dashed var(--accent); color: var(--fg); font-family: var(--font-code); padding: 10px; width: 100%; margin-bottom: 15px; } .form-input:focus, .edit-textarea:focus { border-style: solid; outline: none; box-shadow: inset 0 0 10px rgba(0,255,204,0.2); } @media (max-width: 900px) { .layout { padding: 0; justify-content: center; } .main { width: 100%; max-width: 100%; height: 50vh; margin-top: 50vh; border: none; border-top: 2px solid var(--accent); } }