/* Import JetBrains Mono from Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap');

/* Base styles */
body {
  background-color: #ffffff;
  color: #111111;
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  line-height: 1.4;
  padding: 40px;
  max-width: 600px;
  margin: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3 {
  font-weight: 600;
  margin-bottom: 0.5em;
  margin-top: 1.5em;
}

hr {
  border: 1px;
  height: 1px;
  background-color: black;
  width: 100;
  margin-top: 25px;
}

p {
  margin-bottom: 1.5em;
}

ul {
  list-style-type: square;
  padding-left: 20px;
}

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

img {
  max-width: 600px;
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

.no-underline {
  text-decoration: none;
}

/* Spacers */
.spacer { height: 0; }
.spacer-md { height: 50px; }
.spacer-lg { height: 100px; }

/* Footer and Logo */
.site-logo {
  font-size: 10px;
  color: #000;
  text-align: center;
  font-style: italic;
  display: block;
}

.site-footer {
  text-align: center;
  font-size: 10px;
  color: #000;
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid #000;
}

.line {
  border: none;
  border-top: 1px solid #000;
  max-width: 400px;
  margin: auto auto 40px auto;
}

/* Archive toggle button */
.archive-toggle {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  font-weight: 600;
  background: none;
  border: 1px solid #000;
  padding: 4px 8px;
  cursor: pointer;
  color: #000;
  transition: background 0.2s, color 0.2s;
}

.archive-toggle:hover {
  background-color: #000;
  color: #fff;
}

.archive-toggle:hover::after {
  content: "_";
  animation: blink 1s steps(2, start) infinite;
  margin-left: 4px;
  color: inherit;
  font-weight: 400;
}

/* Archive section layout */
.archive-section {
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}

.archive-menu {
  display: none;
}

.archive-menu.show {
  display: block;
}

.archive-links {
  display: inline-block;
  text-align: left;
  padding-left: 15px;
}

.archive-list {
  list-style: none;
  padding-left: 0;
  margin-top: 0.65em;
}

.archive-list li {
  margin-bottom: 0.5em;
}

/* Archive link style */
.archive-link {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  font-weight: 600;
  color: #000;
  text-decoration: none;
  transition: color 0.2s;
  position: relative;
  padding-right: 10px;
  padding-left: 24px;
}

.archive-link::after {
  content: "_";
  margin-left: 4px;
  visibility: hidden;
}

.archive-link:hover::after {
  visibility: visible;
  animation: blink 1s steps(2, start) infinite;
  color: inherit;
  font-weight: 400;
}

/* Caption system */
.image-caption-container {
  margin-bottom: 1em;
  text-align: left;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

.toggle-caption {
  display: none;
}

.caption-label {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  font-weight: 600;
  color: #000;
  cursor: pointer;
  margin-top: 0.5em;
  padding: 0;
  border: 0;
  text-align: left;
  width: 100%;
}

.caption {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  font-size: 12px;
  font-style: italic;
  color: #111;
  padding-top: 0.5em;
}

.toggle-caption:checked + .caption-label + .caption {
  max-height: 1000px;
}

/* Blinking cursor animation */
@keyframes blink {
  0%, 100% { opacity: 0; }
  50% { opacity: 1; }
}

.bottom-nav {
  margin-top: 30px;
}

.bottom-nav ul {
  list-style: none;
  margin: 0;
  padding: 40;
  display: flex;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;                     /* wrap on small screens */
}

.bottom-nav a {
  position: relative;                  /* needed for cursor */
  text-decoration: none;
  padding: 2px 6px;                    /* space for inverted hover */
  transition: background 0.2s, color 0.2s;
  font-weight: 600;
  color: #000;
}

/* blinking cursor that shows on hover */
.bottom-nav a::after {
  content: "_";
  margin-left: 2px;
  visibility: hidden;
}

.bottom-nav a:hover::after {
  visibility: visible;
  animation: blink 1s steps(2, start) infinite;
}

/* terminal-style inverted hover */
.bottom-nav a:hover {
  background: #000;
  color: #fff;
}

/* responsive tightening on smaller screens */
@media (max-width: 500px) {
  .bottom-nav ul {
    gap: 12px;
    padding: 20;
  }

  .bottom-nav a {
    padding: 2px 4px;
  }
}

/* essay style elements */

blockquote {
  border-left: 2px solid #000;
  padding-left: 15px;
  margin-left: 15px;
  margin-right: 0;
  font-style: italic;
  color: #111;
}

.essay-body {
max-width: 600px;
margin: 0 auto;
line-height: 1.5;
}


.essay-subnav ul {
list-style: none;
padding: 0;
margin: 20px 0;
display: flex;
gap: 20px;
justify-content: center;
}


.essay-link {
text-decoration: none;
color: #000;
font-weight: 600;
position: relative;
}


.essay-link::after {
content: "_";
visibility: hidden;
margin-left: 4px;
}


.essay-link:hover::after {
visibility: visible;
animation: blink 1s steps(2, start) infinite;
}

/* === Search Input (terminal style) === */
.search-input {
  width: 100%;
  max-width: 600px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  border: 1px solid #000;
  padding: 6px;
  margin: 20px 0;
  background: #fff;
  color: #000;
}

/* === Results List === */
.search-results {
  list-style: none;
  padding: 0;
  margin: 0;
}

.search-results li {
  margin-bottom: 14px;
  padding: 4px 6px;
  transition: background 0.15s, color 0.15s;
}

/* Hover + keyboard selection */
.search-results li:hover {
  background: #000;
  color: #fff;
}

/* === Result Links === */
.search-link {
  text-decoration: none;
  color: inherit;
  font-weight: 600;
  position: relative;
}

/* Blinking cursor (same system as your site) */
.search-link::after {
  content: "_";
  visibility: hidden;
  margin-left: 4px;
}

.search-link:hover::after {
  visibility: visible;
  animation: blink 1s steps(2, start) infinite;
}

/* === Preview Text === */
.search-preview {
  font-size: 12px;
  color: #111;
  margin-top: 2px;
}

/* Invert preview when hovered */
.search-results li:hover .search-preview {
  color: #fff;
}

/* === Tag Filters === */
.tag-filters {
  margin: 10px 0 20px 0;
}

/* Tag buttons (matches archive-toggle style) */
.tag-btn {
  display: inline-block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 13px;
  font-weight: 600;
  background: none;
  border: 1px solid #000;
  padding: 3px 6px;
  margin-right: 6px;
  margin-bottom: 6px;
  cursor: pointer;
  color: #000;
  transition: background 0.2s, color 0.2s;
}

/* Hover = inverted terminal */
.tag-btn:hover {
  background: #000;
  color: #fff;
}

/* Active tag stays inverted */
.tag-btn.active {
  background: #000;
  color: #fff;
}

/* === No Results === */
#noResults {
  font-size: 13px;
  margin-top: 10px;
  font-style: italic;
}

/* soften future / sparse years */
.archive-toggle.inactive {
  opacity: 0.5;
  font-weight: 400;
}

/* improve spacing rhythm */
.archive-section {
  margin-bottom: 20px;
}

/* subtle hover clarity */
.archive-toggle:hover {
  opacity: 1;
}
