@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');
:root {
--irc-bg: #edf0f5;
--irc-bg-alt: #e2e7f0;
--irc-sidebar-bg: #d8dfe9;
--irc-code-bg: #dce2ec;
--irc-panel-bg: #c8d0dc;
--irc-text: #1e2640;
--irc-text-dim: #4a5570;
--irc-text-light: #6b7590;
--irc-blue: #5b7ec0;
--irc-green: #2d8a4e;
--irc-red: #c03030;
--irc-brown: #7b5804;
--irc-purple: #6b44aa;
--irc-teal: #1a7a7a;
--irc-navy: #2c3553;
--irc-magenta: #aa3399;
--bevel-light: #ffffff;
--bevel-dark: #8090a8;
--bevel-shadow: #4a5570;
--border-mid: #a8b2c4;
--link-blue: #3a5eaa;
--link-visited: #6644aa;
}
.coal, .light, .ayu, .navy, .rust,
html:not(.js) {
--bg: var(--irc-bg);
--fg: var(--irc-text);
--sidebar-bg: var(--irc-sidebar-bg);
--sidebar-fg: var(--irc-text);
--sidebar-active: var(--irc-blue);
--sidebar-non-existant: var(--irc-text-light);
--sidebar-spacer: var(--border-mid);
--links: var(--link-blue);
--inline-code-color: var(--irc-teal);
--theme-popup-bg: var(--irc-bg);
--theme-popup-border: var(--border-mid);
--theme-hover: var(--irc-bg-alt);
--icons: var(--irc-text-dim);
--icons-hover: var(--irc-text);
--scrollbar: var(--border-mid);
--quote-bg: var(--irc-bg-alt);
--quote-border: var(--border-mid);
--table-border-color: var(--border-mid);
--table-header-bg: var(--irc-panel-bg);
--table-alternate-bg: #e4e8f0;
--searchbar-border-color: var(--border-mid);
--searchbar-bg: #ffffff;
--searchbar-fg: var(--irc-text);
--searchbar-shadow-color: var(--bevel-dark);
--searchresults-header-fg: var(--irc-text-dim);
--searchresults-border-color: var(--border-mid);
--searchresults-li-bg: var(--irc-bg-alt);
--search-mark-bg: #d4e0ff;
--warning-border: #e07030;
--color-scheme: light;
--sidebar-header-border-color: var(--irc-blue);
--copy-button-filter: invert(45.49%);
--copy-button-filter-hover: invert(30%) sepia(60%) saturate(1200%) hue-rotate(195deg) brightness(90%) contrast(95%);
--overlay-bg: rgba(180, 190, 210, 0.5);
}
#mdbook-theme-toggle,
#mdbook-theme-list {
display: none !important;
}
body,
.content,
.sidebar,
code,
pre,
pre > code,
input,
textarea {
font-family: 'IBM Plex Mono', 'Cascadia Code', 'Consolas', 'Courier New', monospace !important;
}
html {
background-color: var(--irc-bg) !important;
}
body {
color: var(--irc-text);
font-size: 14px;
line-height: 1.7;
}
#mdbook-menu-bar,
#mdbook-menu-bar.bordered {
background-color: var(--irc-panel-bg) !important;
border-bottom: 2px solid var(--bevel-dark) !important;
border-top: 1px solid var(--bevel-light) !important;
}
.menu-bar .icon-button {
color: var(--irc-text-dim);
}
.menu-bar .icon-button:hover {
color: var(--irc-text);
}
.menu-bar h1.menu-title {
font-size: 0;
color: transparent !important;
background: url('../src/siggy-icon.png') no-repeat left center;
background-size: 22px 22px;
height: var(--menu-bar-height);
min-width: 28px;
padding-left: 28px;
display: flex;
align-items: center;
}
.menu-bar h1.menu-title::after {
content: 'siggy';
font-size: 14px;
font-weight: 700;
color: var(--irc-navy);
letter-spacing: 0.02em;
line-height: 1;
}
.sidebar {
background-color: var(--irc-sidebar-bg) !important;
border-right: 2px solid var(--bevel-dark);
}
.sidebar .sidebar-scrollbox {
background-color: var(--irc-sidebar-bg) !important;
}
.sidebar .chapter li.part-title {
color: var(--irc-navy);
text-transform: uppercase;
font-size: 0.72em;
font-weight: 700;
letter-spacing: 0.1em;
padding: 0.9em 0 0.35em 10px;
margin-top: 0.3em;
border-top: 1px solid var(--border-mid);
border-bottom: 1px solid var(--border-mid);
background-color: var(--irc-panel-bg);
}
.sidebar .chapter a {
color: var(--irc-text);
border-left: 3px solid transparent;
padding: 0.25em 0.8em;
display: block;
transition: background-color 0.1s ease;
font-size: 0.9em;
}
.sidebar .chapter a:hover {
color: var(--irc-blue);
background-color: var(--irc-bg-alt);
border-left-color: var(--irc-blue);
}
.sidebar .chapter li.chapter-item.expanded > a,
.sidebar .chapter a.active {
color: #ffffff;
background-color: var(--irc-blue);
border-left-color: var(--irc-blue);
font-weight: 600;
}
.sidebar-resize-handle {
border-right-color: var(--border-mid) !important;
}
.content h1 {
color: var(--irc-navy);
font-size: 1.5em;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.04em;
border-bottom: 2px solid var(--irc-navy);
padding-bottom: 0.3em;
margin-bottom: 0.8em;
}
.content h2 {
color: var(--irc-green);
font-size: 1.2em;
font-weight: 700;
border-bottom: 1px solid var(--border-mid);
padding-bottom: 0.25em;
margin-top: 1.8em;
}
.content h3 {
color: var(--irc-brown);
font-size: 1.05em;
font-weight: 600;
}
.content h4 {
color: var(--irc-purple);
font-size: 0.95em;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.03em;
}
.content h5,
.content h6 {
color: var(--irc-text-dim);
font-weight: 600;
}
.content a {
color: var(--link-blue);
text-decoration: underline;
}
.content a:visited {
color: var(--link-visited);
}
.content a:hover {
color: var(--irc-red);
}
.content a.header {
text-decoration: none;
color: inherit;
}
.content a.header:hover {
color: inherit;
text-decoration: underline;
}
.content code {
color: var(--irc-teal);
background-color: var(--irc-code-bg);
border: 1px solid var(--border-mid);
border-radius: 2px;
padding: 0.1em 0.35em;
font-size: 0.9em;
}
.content pre {
background-color: #ffffff !important;
border: 2px solid;
border-color: var(--bevel-dark) var(--bevel-light) var(--bevel-light) var(--bevel-dark);
border-radius: 0;
padding: 0.8em 1em;
position: relative;
overflow-x: auto;
margin-top: 0;
}
.content pre::before {
content: ' Terminal';
display: block;
background: linear-gradient(90deg, var(--irc-navy), #3a4a6e);
color: #ffffff;
font-size: 0.75em;
font-weight: 700;
letter-spacing: 0.04em;
padding: 0.2em 0.6em;
margin: -0.8em -1em 0.6em -1em;
border-bottom: 1px solid var(--bevel-dark);
}
.content pre > code {
color: var(--irc-text);
background: none;
border: none;
padding: 0;
font-size: 0.92em;
}
.content blockquote {
border-left: 3px solid var(--irc-green);
background-color: var(--irc-bg-alt);
color: var(--irc-text-dim);
padding: 0.6em 1em;
margin: 1em 0;
}
.content table {
border-collapse: collapse;
width: 100%;
margin: 1em 0;
border: 2px solid;
border-color: var(--bevel-dark) var(--bevel-light) var(--bevel-light) var(--bevel-dark);
}
.content table th {
color: #ffffff;
background: linear-gradient(90deg, var(--irc-navy), #3a4a6e);
border: 1px solid var(--bevel-dark);
padding: 0.4em 0.8em;
text-align: left;
text-transform: uppercase;
font-size: 0.8em;
font-weight: 700;
letter-spacing: 0.06em;
}
.content table td {
border: 1px solid var(--border-mid);
padding: 0.4em 0.8em;
font-size: 0.93em;
}
.content table tr:nth-child(even) {
background-color: #e4e8f0;
}
.content table tr:hover {
background-color: #d0d8ee;
}
.content li {
margin-bottom: 0.15em;
}
.content li > input[type="checkbox"] {
accent-color: var(--irc-green);
}
.content hr {
border: none;
height: 2px;
border-top: 1px solid var(--bevel-dark);
border-bottom: 1px solid var(--bevel-light);
margin: 1.5em 0;
}
.content strong {
color: var(--irc-text);
font-weight: 700;
}
#searchbar {
background-color: #ffffff !important;
border: 2px solid !important;
border-color: var(--bevel-dark) var(--bevel-light) var(--bevel-light) var(--bevel-dark) !important;
color: var(--irc-text) !important;
font-family: 'IBM Plex Mono', monospace !important;
}
#searchbar:focus {
border-color: var(--irc-blue) !important;
box-shadow: none;
outline: 1px dotted var(--irc-navy);
outline-offset: 1px;
}
#searchresults a {
color: var(--link-blue);
}
#searchresults .teaser {
color: var(--irc-text-dim);
}
.nav-chapters {
color: var(--irc-text-dim);
transition: color 0.1s ease;
}
.nav-chapters:hover {
color: var(--irc-blue);
}
#mdbook-help-popup {
background-color: var(--irc-bg) !important;
border: 2px solid;
border-color: var(--bevel-light) var(--bevel-dark) var(--bevel-dark) var(--bevel-light) !important;
}
#mdbook-help-popup h2 {
color: var(--irc-navy);
}
#mdbook-help-popup kbd {
background-color: var(--irc-panel-bg);
border: 2px solid;
border-color: var(--bevel-light) var(--bevel-dark) var(--bevel-dark) var(--bevel-light);
color: var(--irc-text);
font-family: 'IBM Plex Mono', monospace;
border-radius: 2px;
padding: 0.1em 0.4em;
}
.content .warning {
border-left-color: var(--irc-red);
background-color: #f5e8e8;
}
::selection {
background-color: var(--irc-blue);
color: #ffffff;
}
::-webkit-scrollbar {
width: 16px;
height: 16px;
}
::-webkit-scrollbar-track {
background: var(--irc-bg-alt);
border: 1px solid var(--border-mid);
}
::-webkit-scrollbar-thumb {
background: var(--irc-panel-bg);
border: 2px solid;
border-color: var(--bevel-light) var(--bevel-dark) var(--bevel-dark) var(--bevel-light);
}
::-webkit-scrollbar-thumb:hover {
background: #b8b8b8;
}
::-webkit-scrollbar-button {
display: block;
height: 16px;
width: 16px;
background: var(--irc-panel-bg);
border: 2px solid;
border-color: var(--bevel-light) var(--bevel-dark) var(--bevel-dark) var(--bevel-light);
}
#mdbook-content.content main {
border-bottom: 2px solid;
border-bottom-color: var(--bevel-dark);
padding-bottom: 2em;
margin-bottom: 1em;
}
@media (max-width: 768px) {
body {
font-size: 13px;
}
.content h1 {
font-size: 1.3em;
}
.content h2 {
font-size: 1.05em;
}
.content pre::before {
font-size: 0.7em;
padding: 0.15em 0.5em;
}
}
.irc-dark-toggle {
cursor: pointer;
line-height: var(--menu-bar-height);
padding: 0 8px;
}
.irc-dark-toggle .toggle-icon {
font-size: 1.2em;
}
html[data-irc-mode="dark"] {
--irc-bg: #1e2640;
--irc-bg-alt: #252e4a;
--irc-sidebar-bg: #181f35;
--irc-code-bg: #151c30;
--irc-panel-bg: #2c3553;
--irc-text: #d8dde8;
--irc-text-dim: #8090a8;
--irc-text-light: #5a6a84;
--irc-blue: #6b8ed0;
--irc-green: #4dbb6a;
--irc-red: #e05555;
--irc-brown: #cc9944;
--irc-purple: #aa77dd;
--irc-teal: #44bbbb;
--irc-navy: #8ba5d5;
--irc-magenta: #dd66cc;
--bevel-light: #3a4a6a;
--bevel-dark: #0e1525;
--bevel-shadow: #000000;
--border-mid: #354060;
--link-blue: #7099dd;
--link-visited: #9988cc;
}
html[data-irc-mode="dark"] .coal,
html[data-irc-mode="dark"] .light,
html[data-irc-mode="dark"] .ayu,
html[data-irc-mode="dark"] .navy,
html[data-irc-mode="dark"] .rust,
html[data-irc-mode="dark"]:not(.js) {
--bg: var(--irc-bg);
--fg: var(--irc-text);
--sidebar-bg: var(--irc-sidebar-bg);
--sidebar-fg: var(--irc-text-dim);
--sidebar-active: var(--irc-blue);
--sidebar-non-existant: var(--irc-text-light);
--sidebar-spacer: var(--border-mid);
--links: var(--link-blue);
--inline-code-color: var(--irc-teal);
--theme-popup-bg: var(--irc-bg);
--theme-popup-border: var(--border-mid);
--theme-hover: var(--irc-bg-alt);
--icons: var(--irc-text-dim);
--icons-hover: var(--irc-text);
--scrollbar: var(--border-mid);
--quote-bg: var(--irc-bg-alt);
--quote-border: var(--border-mid);
--table-border-color: var(--border-mid);
--table-header-bg: var(--irc-panel-bg);
--table-alternate-bg: #222a44;
--searchbar-border-color: var(--border-mid);
--searchbar-bg: #151c30;
--searchbar-fg: var(--irc-text);
--searchbar-shadow-color: #0e1525;
--searchresults-header-fg: var(--irc-text-dim);
--searchresults-border-color: var(--border-mid);
--searchresults-li-bg: var(--irc-bg-alt);
--search-mark-bg: #3a4a70;
--warning-border: #ff8e00;
--color-scheme: dark;
--sidebar-header-border-color: var(--irc-blue);
--copy-button-filter: invert(55%);
--copy-button-filter-hover: invert(75%);
--overlay-bg: rgba(0, 0, 0, 0.5);
}
html[data-irc-mode="dark"] {
background-color: var(--irc-bg) !important;
}
html[data-irc-mode="dark"] body {
color: var(--irc-text);
}
html[data-irc-mode="dark"] #mdbook-menu-bar,
html[data-irc-mode="dark"] #mdbook-menu-bar.bordered {
background-color: var(--irc-panel-bg) !important;
border-bottom-color: var(--bevel-dark) !important;
border-top-color: var(--bevel-light) !important;
}
html[data-irc-mode="dark"] .menu-bar h1.menu-title::after {
color: var(--irc-navy);
}
html[data-irc-mode="dark"] .menu-bar .icon-button {
color: var(--irc-text-dim);
}
html[data-irc-mode="dark"] .menu-bar .icon-button:hover {
color: var(--irc-text);
}
html[data-irc-mode="dark"] .sidebar {
background-color: var(--irc-sidebar-bg) !important;
border-right-color: var(--bevel-dark);
}
html[data-irc-mode="dark"] .sidebar .sidebar-scrollbox {
background-color: var(--irc-sidebar-bg) !important;
}
html[data-irc-mode="dark"] .sidebar .chapter li.part-title {
color: var(--irc-navy);
background-color: var(--irc-panel-bg);
border-color: var(--border-mid);
}
html[data-irc-mode="dark"] .sidebar .chapter a {
color: var(--irc-text-dim);
}
html[data-irc-mode="dark"] .sidebar .chapter a:hover {
color: var(--irc-blue);
background-color: var(--irc-bg-alt);
}
html[data-irc-mode="dark"] .sidebar .chapter li.chapter-item.expanded > a,
html[data-irc-mode="dark"] .sidebar .chapter a.active {
color: #ffffff;
background-color: var(--irc-blue);
}
html[data-irc-mode="dark"] .content h1 {
color: var(--irc-navy);
border-bottom-color: var(--irc-navy);
}
html[data-irc-mode="dark"] .content h2 {
color: var(--irc-green);
border-bottom-color: var(--border-mid);
}
html[data-irc-mode="dark"] .content h3 {
color: var(--irc-brown);
}
html[data-irc-mode="dark"] .content h4 {
color: var(--irc-purple);
}
html[data-irc-mode="dark"] .content code {
color: var(--irc-teal);
background-color: var(--irc-code-bg);
border-color: var(--border-mid);
}
html[data-irc-mode="dark"] .content pre {
background-color: #121828 !important;
border-color: var(--bevel-dark) var(--bevel-light) var(--bevel-light) var(--bevel-dark);
}
html[data-irc-mode="dark"] .content pre::before {
background: linear-gradient(90deg, #252e4a, #354068);
}
html[data-irc-mode="dark"] .content pre > code {
color: var(--irc-text);
}
html[data-irc-mode="dark"] .content table {
border-color: var(--bevel-dark) var(--bevel-light) var(--bevel-light) var(--bevel-dark);
}
html[data-irc-mode="dark"] .content table th {
background: linear-gradient(90deg, #252e4a, #354068);
border-color: var(--bevel-dark);
}
html[data-irc-mode="dark"] .content table td {
border-color: var(--border-mid);
}
html[data-irc-mode="dark"] .content table tr:nth-child(even) {
background-color: #222a44;
}
html[data-irc-mode="dark"] .content table tr:hover {
background-color: #2a3558;
}
html[data-irc-mode="dark"] .content a {
color: var(--link-blue);
}
html[data-irc-mode="dark"] .content a:visited {
color: var(--link-visited);
}
html[data-irc-mode="dark"] .content a:hover {
color: var(--irc-red);
}
html[data-irc-mode="dark"] .content blockquote {
background-color: var(--irc-bg-alt);
border-left-color: var(--irc-green);
color: var(--irc-text-dim);
}
html[data-irc-mode="dark"] .content strong {
color: var(--irc-text);
}
html[data-irc-mode="dark"] #searchbar {
background-color: #151c30 !important;
border-color: var(--bevel-dark) var(--bevel-light) var(--bevel-light) var(--bevel-dark) !important;
color: var(--irc-text) !important;
}
html[data-irc-mode="dark"] .content hr {
border-top-color: var(--bevel-dark);
border-bottom-color: var(--bevel-light);
}
html[data-irc-mode="dark"] #mdbook-help-popup {
background-color: var(--irc-bg) !important;
border-color: var(--bevel-light) var(--bevel-dark) var(--bevel-dark) var(--bevel-light) !important;
}
html[data-irc-mode="dark"] #mdbook-help-popup h2 {
color: var(--irc-navy);
}
html[data-irc-mode="dark"] #mdbook-help-popup kbd {
background-color: var(--irc-panel-bg);
border-color: var(--bevel-light) var(--bevel-dark) var(--bevel-dark) var(--bevel-light);
color: var(--irc-text);
}
html[data-irc-mode="dark"] .content .warning {
background-color: #2a1e30;
}
html[data-irc-mode="dark"] ::selection {
background-color: var(--irc-blue);
color: #ffffff;
}
html[data-irc-mode="dark"] ::-webkit-scrollbar-track {
background: #151c30;
border-color: var(--border-mid);
}
html[data-irc-mode="dark"] ::-webkit-scrollbar-thumb {
background: var(--irc-panel-bg);
border-color: var(--bevel-light) var(--bevel-dark) var(--bevel-dark) var(--bevel-light);
}
html[data-irc-mode="dark"] ::-webkit-scrollbar-thumb:hover {
background: #3a4a6a;
}
html[data-irc-mode="dark"] ::-webkit-scrollbar-button {
background: var(--irc-panel-bg);
border-color: var(--bevel-light) var(--bevel-dark) var(--bevel-dark) var(--bevel-light);
}
html[data-irc-mode="dark"] #mdbook-content.content main {
border-bottom-color: var(--bevel-dark);
}
@media print {
.content pre::before {
display: none !important;
}
.irc-dark-toggle {
display: none !important;
}
}