* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    max-width: 800px;
    margin: 0 auto;
    padding: 40px 20px;
    background: #000;
    color: #ddd;
    font: 16px/1.6 'Courier New', monospace;
}

nav {
    margin-bottom: 40px;
    border-bottom: 1px solid #ddd;
    padding-bottom: 10px;
}

nav a {
    color: #ddd;
    text-decoration: underline;
    margin-right: 20px;
}

nav a:hover {
    font-weight: bold;
}

h1 {
    margin: 30px 0 20px;
    font-weight: bold;
    text-decoration: underline;
    text-transform: uppercase;
}

h2 {
    margin: 25px 0 15px;
    font-weight: bold;
    text-decoration: underline;
}

h3 {
    margin: 20px 0 10px;
    font-weight: bold;
}

a {
    color: #ddd;
    text-decoration: underline;
}

a:hover {
    font-weight: bold;
}

code {
    background: #111;
    padding: 2px 6px;
    border: 1px solid #444;
    font-size: 0.9rem;
}

pre {
    background: #111;
    padding: 16px;
    overflow-x: auto;
    border: 1px solid #444;
    margin: 20px 0;
}

pre code {
    background: none;
    padding: 0;
    border: none;
}

figure {
    text-align: center;
}

img {
    max-width: 100%;
}

ul,
ol {
    margin: 10px 0 10px 40px;
}

p {
    margin: 10px 0;
}

strong {
    font-weight: bold;
}

em {
    font-style: italic;
}

.hidden-print {
    display: block;
}

.hidden-noprint {
    display: none;
}

@media print {
    .hidden-print {
        display: none
    }
    .hidden-noprint {
        display: block
    }
}

/* Mermaid diagrams */
.mermaid {
    background: #1a1a1a;
    padding: 20px;
    margin: 20px 0;
    text-align: center;
}

/* Syntax highlighting (Pandoc-generated) */
pre code.sourceCode {
    background: none;
}

/* Keywords */
.kw { color: #569cd6; font-weight: bold; }

/* Data types */
.dt { color: #4ec9b0; }

/* Strings */
.st { color: #ce9178; }

/* Comments */
.co { color: #6a9955; font-style: italic; }

/* Functions */
.fu { color: #dcdcaa; }

/* Numbers */
.dv, .bn, .fl { color: #b5cea8; }

/* Operators */
.op { color: #ddd; }

/* Variables */
.va { color: #9cdcfe; }

/* Built-ins */
.bu { color: #4ec9b0; }

/* Imports */
.im { color: #c586c0; }

/* Attributes/Decorators */
.at { color: #c586c0; }

/* Error highlighting */
.er { color: #f44747; font-weight: bold; }
