body { font-family: 'Courier New', monospace; background: #1a1a1a; color: #00ff41; display: flex; flex-direction: column; align-items: center; padding: 20px; }
.container { background: #2a2a2a; padding: 20px; border-radius: 8px; border: 1px solid #00ff41; box-shadow: 0 0 15px rgba(0,255,65,0.2); max-width: 600px; width: 100%; }
h1 { text-align: center; font-size: 1.5rem; text-transform: uppercase; border-bottom: 1px solid #00ff41; padding-bottom: 10px; }
.interface { display: flex; flex-direction: column; gap: 20px; align-items: center; margin-top: 20px; }

#octograph-svg { width: 200px; height: 200px; cursor: pointer; filter: drop-shadow(0 0 5px #00ff41); }
.line { stroke: #333; stroke-width: 8; stroke-linecap: round; transition: stroke 0.2s, filter 0.2s; }
.line.active { stroke: #00ff41; filter: drop-shadow(0 0 3px #00ff41); }
.line:hover { stroke: #555; }
.line.active:hover { stroke: #80ffaa; }

.controls { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
input { background: #000; color: #00ff41; border: 1px solid #00ff41; padding: 10px; font-family: inherit; font-size: 1.1rem; }
label { font-size: 0.8rem; margin-bottom: 5px; display: block; }
.ascii-output { grid-column: span 2; margin-top: 10px; }
.info-panel { margin-top: 20px; font-size: 0.9rem; border-top: 1px dotted #00ff41; padding-top: 10px; width: 100%; }
span.val { color: #fff; font-weight: bold; }