/* OS deck — local overrides on top of catppuccin-mocha */
.deck-back{position:fixed;top:24px;left:40px;font-family:var(--font-mono);font-size:12px;color:var(--text-3);text-decoration:none;letter-spacing:.06em;z-index:30}
.deck-back:hover{color:var(--accent)}

.viz{font-family:var(--font-mono);font-size:13px;line-height:1.7;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:18px;color:var(--text-1);white-space:pre;overflow:auto}
.code-block{font-family:var(--font-mono);font-size:14px;line-height:1.65;background:#11111b;border:1px solid var(--border);border-radius:12px;padding:18px 22px;color:#cdd6f4;overflow:auto;max-height:420px}
.code-block .k{color:#cba6f7}
.code-block .s{color:#a6e3a1}
.code-block .c{color:#7f849c;font-style:italic}
.code-block .n{color:#89dceb}
.code-block .f{color:#f9e2af}

table.cmp-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
table.cmp-table th, table.cmp-table td{padding:10px 14px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
table.cmp-table th{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);font-weight:600;background:var(--surface-2)}
table.cmp-table tr:hover td{background:rgba(255,255,255,.02)}
table.cmp-table td.mono{font-family:var(--font-mono);color:var(--accent)}

/* state machine boxes */
.state{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:8px;background:var(--surface);border:2px solid var(--accent);font-weight:600;font-family:var(--font-mono);font-size:13px;color:var(--text-1)}
.arrow-label{font-family:var(--font-mono);font-size:11px;color:var(--text-3);font-style:italic}

/* problem cards */
.qcard{padding:18px 20px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,var(--surface),var(--surface-2))}
.qcard h4{margin:0 0 6px;font-size:17px}
.qcard .qlabel{font-family:var(--font-mono);font-size:11px;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}

.steps{counter-reset:s;list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;padding:12px 14px 12px 50px;background:var(--surface);border:1px solid var(--border);border-radius:10px;margin-bottom:8px;position:relative;font-size:14.5px}
.steps li::before{content:counter(s);position:absolute;left:12px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--bg);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:13px}

.h1.huge{font-size:96px;line-height:.98}
.label-strip{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}

.gantt{display:grid;grid-template-columns:60px repeat(20,1fr);gap:2px;font-family:var(--font-mono);font-size:11px}
.gantt .lbl{padding:4px 6px;color:var(--text-3);align-self:center}
.gantt .cell{height:22px;border-radius:3px;background:var(--surface-2)}
.gantt .a{background:#cba6f7}
.gantt .b{background:#89b4fa}
.gantt .c{background:#a6e3a1}
.gantt .d{background:#f9e2af}
.gantt .e{background:#f38ba8}
