:root { --bg-color: #050b08; --term-green: #33ff66; --term-dim: #116633; --term-cyan: #00ffff; --term-warn: #ff3333; --term-amber: #ffb000; --font-stack: 'Courier New', Courier, monospace; } * { box-sizing: border-box; margin: 0; padding: 0; } body { background-color: var(--bg-color); color: var(--term-green); font-family: var(--font-stack); height: 100vh; display: flex; flex-direction: column; overflow: hidden; text-shadow: 0 0 4px rgba(51, 255, 102, 0.6); } body::before { content: " "; display: block; position: absolute; top: 0; left: 0; bottom: 0; right: 0; background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06)); z-index: 10; background-size: 100% 3px, 3px 100%; pointer-events: none; } header { background: #111; border-bottom: 2px solid var(--term-green); padding: 8px 16px; display: flex; justify-content: space-between; align-items: center; font-size: 0.9rem; } .sys-title { color: var(--term-cyan); font-weight: bold; letter-spacing: 1px; } .hud-stats { display: flex; gap: 15px; font-size: 0.85rem; flex-wrap: wrap; } .stat-item { border: 1px solid var(--term-dim); padding: 2px 8px; background: rgba(0, 20, 10, 0.5); } main { flex: 1; display: flex; flex-direction: column; padding: 20px; max-width: 900px; margin: 0 auto; width: 100%; overflow-y: auto; position: relative; z-index: 1; } .node-card { border: 1px solid var(--term-dim); background: rgba(5, 15, 10, 0.85); padding: 20px; margin-bottom: 20px; box-shadow: 0 0 15px rgba(0, 255, 102, 0.1); } .node-title { font-size: 1.3rem; color: var(--term-cyan); border-bottom: 1px dashed var(--term-dim); padding-bottom: 8px; margin-bottom: 15px; text-transform: uppercase; } /* ASCIIDOCTOR HTML STYLING */ .node-body { line-height: 1.6; font-size: 1rem; margin-bottom: 20px; } .node-body p { margin-bottom: 15px; } .node-body strong, .node-body b { color: var(--term-cyan); font-weight: normal; text-shadow: 0 0 5px rgba(0, 255, 255, 0.4); } .node-body em, .node-body i { color: var(--term-amber); font-style: italic; } .node-body ul, .node-body ol { margin-left: 25px; margin-bottom: 15px; list-style-type: square; } .node-body li { margin-bottom: 5px; } .node-body h1, .node-body h2, .node-body h3, .node-body h4 { color: var(--term-cyan); margin: 20px 0 10px 0; border-bottom: 1px solid var(--term-dim); padding-bottom: 5px; } .node-body code { background: rgba(0, 255, 102, 0.1); padding: 2px 5px; border-radius: 3px; font-family: var(--font-stack); } .node-body pre { background: rgba(0, 20, 10, 0.8); border-left: 3px solid var(--term-dim); padding: 10px; overflow-x: auto; margin-bottom: 15px; } .node-body table { width: 100%; border-collapse: collapse; margin-bottom: 15px; } .node-body th, .node-body td { border: 1px solid var(--term-dim); padding: 8px; text-align: left; } .node-body th { background: rgba(0, 255, 102, 0.1); color: var(--term-cyan); } .choices-container { display: flex; flex-direction: column; gap: 10px; margin-top: 15px; } .choice-btn { background: rgba(0, 30, 15, 0.6); border: 1px solid var(--term-green); color: var(--term-green); padding: 12px 16px; font-family: var(--font-stack); font-size: 0.95rem; text-align: left; cursor: pointer; transition: all 0.15s ease; display: flex; align-items: center; gap: 10px; } .choice-btn:hover:not(:disabled) { background: var(--term-green); color: var(--bg-color); box-shadow: 0 0 10px var(--term-green); outline: none; } .choice-btn:disabled { border-color: var(--term-warn); color: var(--term-warn); cursor: not-allowed; opacity: 0.6; } .choice-key { background: var(--term-dim); color: var(--term-green); padding: 2px 6px; font-size: 0.8rem; border-radius: 2px; } .choice-btn:hover:not(:disabled) .choice-key { background: var(--bg-color); color: var(--term-green); } .choice-btn:disabled .choice-key { background: rgba(255, 51, 51, 0.2); color: var(--term-warn); } footer { border-top: 1px solid var(--term-dim); padding: 10px 20px; display: flex; justify-content: space-between; background: #080f0c; font-size: 0.8rem; z-index: 2; } .btn-small { background: transparent; border: 1px solid var(--term-dim); color: var(--term-green); padding: 4px 10px; cursor: pointer; font-family: var(--font-stack); } .btn-small:hover { border-color: var(--term-cyan); color: var(--term-cyan); } #graph-modal { display: none; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(5, 11, 8, 0.95); z-index: 20; padding: 20px; flex-direction: column; } #graph-canvas { flex: 1; border: 1px solid var(--term-green); background: #000; }