:root {
  --bg: #000000;
  --surface: #0a0a0a;
  --foreground: #ffffff;
  --foreground-muted: rgba(255, 255, 255, 0.65);
  --accent: #33d17a;
  --border: rgba(255, 255, 255, 0.1);
  --font: "Fira Code", Monaco, Consolas, "Ubuntu Mono", monospace;
  --font-size: 1rem;
  --line-height: 1.54em;
  --radius: 0;
  --max-width: 864px;
}

html {
  color-scheme: dark;
}

html {
  font-size: 16px !important;
}

body {
  margin: 0;
  padding: 0;
  font-family: var(--font);
  font-size: var(--font-size);
  line-height: var(--line-height);
  background-color: var(--bg);
  color: var(--foreground);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* Layout */
.wrapper {
  max-width: var(--max-width);
  padding: 0 40px;
}

.page-content {
  padding-top: 30px;
}

/* Header */
.site-header {
  border-top: 0;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
  padding: 20px 0;
}

.site-title,
.site-title:visited {
  color: var(--accent) !important;
  font-family: var(--font);
  font-weight: 700;
  font-size: calc(var(--font-size) * 1.5);
  letter-spacing: 0;
}

.site-nav .page-link,
.site-nav .page-link:visited,
.site-nav .page-link:link,
.site-header .site-nav .page-link,
header .site-nav .page-link {
  color: var(--accent) !important;
  font-family: var(--font) !important;
  font-size: calc(var(--font-size) * 1.3) !important;
}

.site-nav .page-link:hover,
.site-header .site-nav .page-link:hover {
  color: var(--accent) !important;
  text-decoration: underline;
}

/* Footer */
.site-footer {
  border-top: 1px solid var(--border);
  background: var(--bg);
  color: var(--foreground-muted);
  font-size: calc(var(--font-size) * 0.85);
}

.footer-heading {
  color: var(--foreground);
}

/* Links */
a,
a:visited {
  color: var(--accent);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font);
  color: var(--foreground);
  letter-spacing: 0;
}

h1 {
  font-size: calc(var(--font-size) * 1.45);
}

h2 {
  font-size: calc(var(--font-size) * 1.35);
}

h3 {
  font-size: calc(var(--font-size) * 1.15);
}

h4, h5, h6 {
  font-size: var(--font-size);
}

h1, h2, h3, h4, h5, h6, p, ul, ol, img, figure, video, table {
  margin: 25px 0;
}

/* Post list on home */
.post-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.post-list > li {
  padding: 30px 0;
  border-bottom: 1px solid var(--border);
}

.post-list > li:first-child {
  padding-top: 0;
}

.post-list h3 {
  margin: 0 0 10px;
  font-size: calc(var(--font-size) * 1.35);
}

.post-link {
  color: var(--accent);
  text-decoration: none;
}

.post-link:hover {
  text-decoration: underline;
}

.post-meta {
  font-family: var(--font);
  font-size: calc(var(--font-size) * 0.85);
  color: var(--foreground-muted);
}

.post-list .post-excerpt,
.post-list p {
  color: var(--foreground);
  margin: 10px 0 0;
}

/* Single post */
.post-header {
  margin-bottom: 25px;
}

.post-title {
  color: var(--accent);
  font-size: calc(var(--font-size) * 1.45);
  margin-bottom: 15px;
  padding-bottom: 15px;
  border-bottom: 3px dotted var(--accent);
}

.post-content {
  color: var(--foreground);
  font-family: var(--font) !important;
  font-size: 16px !important;
  line-height: 1.54em !important;
}

.post-content p,
.post-content li,
.post-content td,
.post-content th,
.post-content blockquote {
  font-size: 16px !important;
  line-height: 1.54em !important;
}

.post-content h2 {
  margin-top: 40px;
}

.post-content h3 {
  margin-top: 30px;
}

/* Code */
code, kbd {
  font-family: var(--font) !important;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: var(--radius);
  padding: 0 6px;
  margin: 0 2px;
  font-size: calc(var(--font-size) * 0.95);
}

pre {
  background: rgba(255, 255, 255, 0.05) !important;
  color: var(--foreground);
  padding: 20px 10px;
  font-size: calc(var(--font-size) * 0.95) !important;
  overflow: auto;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  tab-size: 4;
}

pre code {
  background: transparent !important;
  border: none;
  margin: 0;
  padding: 0;
}

/* Blockquote */
blockquote {
  position: relative;
  border-left: 0;
  border-top: 1px solid var(--accent);
  border-bottom: 1px solid var(--accent);
  margin: 25px 0;
  padding: 25px;
  color: var(--foreground);
  font-style: normal;
  font-size: var(--font-size);
}

blockquote > :first-child {
  margin-top: 0;
}

blockquote > :last-child {
  margin-bottom: 0;
}

/* Tables */
table {
  table-layout: auto;
  border-collapse: collapse;
  width: 100%;
  overflow-x: auto;
  display: block;
}

table, th, td {
  border: 2px solid var(--foreground-muted);
  padding: 10px;
}

th {
  color: var(--foreground);
  text-align: left;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: calc(var(--font-size) * 0.85);
}

/* Images */
img {
  display: block;
  max-width: 100%;
  border: 4px solid var(--accent);
  border-radius: var(--radius);
  padding: 4px;
}

/* HR */
hr {
  border: none;
  background: var(--accent);
  height: 2px;
  margin: 25px 0;
}

/* Lists */
ul, ol {
  margin-left: 4ch;
  padding: 0;
}

li {
  margin: 8px 0;
}

li::marker {
  color: var(--accent);
}

/* Minima overrides - remove rounded corners, shadows */
.site-header,
.site-footer,
.page-content,
.post,
.post-list > li {
  border-radius: var(--radius);
  box-shadow: none;
}

/* Social links */
.social-links .svg-icon {
  fill: var(--foreground-muted);
}

.social-links .svg-icon:hover {
  fill: var(--accent);
}

/* Responsive */
@media (max-width: 684px) {
  :root {
    --font-size: 0.95rem;
  }

  .wrapper {
    padding: 0 20px;
  }

  .post-list > li {
    padding: 20px 0;
  }
}
