/* Solarized Color Variables */
:root {
  /* Light theme colors */
  --base03: #002b36;
  --base02: #073642;
  --base01: #586e75;
  --base00: #657b83;
  --base0: #839496;
  --base1: #93a1a1;
  --base2: #eee8d5;
  --base3: #fdf6e3;
  --yellow: #b58900;
  --orange: #cb4b16;
  --red: #dc322f;
  --magenta: #d33682;
  --violet: #6c71c4;
  --blue: #268bd2;
  --cyan: #2aa198;
  --green: #859900;
  
  /* Semantic mappings for light mode */
  --bg-primary: var(--base3);
  --bg-secondary: var(--base2);
  --bg-tertiary: var(--base02);
  --fg-primary: var(--base00);
  --fg-secondary: var(--base0);
  --fg-emphasis: var(--base01);
  --fg-deemphasis: var(--base1);
  --accent-primary: var(--blue);
  --accent-secondary: var(--cyan);
}

/* Dark mode color remapping */
@media (prefers-color-scheme: dark) {
  :root {
    --bg-primary: var(--base03);
    --bg-secondary: var(--base02);
    --bg-tertiary: var(--base2);
    --fg-primary: var(--base0);
    --fg-secondary: var(--base00);
    --fg-emphasis: var(--base1);
    --fg-deemphasis: var(--base01);
    --accent-primary: var(--blue);
    --accent-secondary: var(--cyan);
  }
}

/* Fonts */
@font-face {
    font-family: 'Brygada 1918';
    src: url('fonts/Brygada1918-VariableFont_wght.ttf') format('truetype');
    font-weight: 400 700;
    font-style: normal;
}

@font-face {
    font-family: 'Brygada 1918';
    src: url('fonts/Brygada1918-Italic-VariableFont_wght.ttf') format('truetype');
    font-weight: 400 700;
    font-style: italic;
}

body {
    font-family: 'Brygada 1918', serif;
    font-weight: 400;
    color: var(--fg-primary);
    background-color: var(--bg-primary);
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Brygada 1918', serif;
  font-weight: 550;
}

code, pre, kbd, samp, tt {
    font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace;
}

/* Base elements */
hr {
  border-color: var(--blue);
}

a {
  color: var(--blue);
}
a:visited {
  color: var(--violet);
}
a:hover {
  color: var(--cyan);
  border-bottom: 2px solid var(--fg-primary);
}

blockquote {
  border-left: 5px solid var(--blue);
  background-color: var(--bg-secondary);
}

pre {
  background-color: var(--bg-secondary);
}

code, kbd, samp {
  background-color: var(--bg-secondary);
}

input, textarea, select {
  color: var(--fg-primary);
  background-color: var(--bg-secondary);
  border: 1px solid var(--fg-deemphasis);
}

input:focus, textarea:focus {
  border: 1px solid var(--blue);
}

.button, button,
input[type=submit],
input[type=reset],
input[type=button] {
  background-color: var(--blue);
  border: 1px solid var(--blue);
}

.button:hover, button:hover,
input[type=submit]:hover,
input[type=reset]:hover,
input[type=button]:hover {
  background-color: var(--cyan);
}

td, th {
  border-bottom: 1px solid var(--bg-secondary);
}

/* Header */
.header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 2rem;
}

.header-left,
.header-right {
  display: flex;
  gap: 0;
}

.header a {
  padding: 0 1em;
  border-bottom: 2px solid transparent;
}

.header-left a:first-child {
  padding-left: 0;
}

/* Links */
a.broken-link,
a.broken-link:visited,
a.broken-link:hover,
a.broken-link:active,
a.broken-link:link {
  color: #cc0000 !important;
  font-style: italic;
}

/* Syntax highlighting */
.org-keyword { color: var(--green); }
.org-type { color: var(--yellow); }
.org-function-name { color: var(--blue); }
.org-variable-name { color: var(--blue); }
.org-constant { color: var(--cyan); }
.org-string { color: var(--cyan); }
.org-comment { color: var(--fg-deemphasis); font-style: italic; }
.org-comment-delimiter { color: var(--fg-deemphasis); }
.org-doc { color: var(--fg-deemphasis); font-style: italic; }
.org-builtin { color: var(--green); }
.org-preprocessor { color: var(--orange); }
.org-warning { color: var(--red); font-weight: bold; }

/* Python-specific */
.org-py-object-reference { color: var(--blue); }
.org-py-XXX-tag { color: var(--red); font-weight: bold; }

/* TikZJax diagram styling */
.tikzjax {
  display: block;
  margin: 2em auto;
  transform: scale(1.5);
  transform-origin: center;
}

