:root {
  --cha-green: #33ff33;
  --cha-bright: #00ff00;
  --cha-dim: #8cff8c;
  --cha-panel: rgba(0, 0, 0, 0.92);
  --cha-title: #1e1e1e;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  background:
    linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.5)),
    url('aW1hZ2VzCg==/background.png') no-repeat center center fixed;
  background-size: cover;
  color: var(--cha-green);
  font-family: 'Courier New', Courier, monospace;
  padding: 32px;
}

body.static-page {
  display: flex;
  align-items: center;
  justify-content: center;
}

body.meetings-page {
  align-items: flex-start;
}

.meetings-page .static-window {
  margin: 20px auto;
}

body.blog-page { padding: 20px; }

body::after {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  background: repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.15) 0, rgba(0, 0, 0, 0.15) 1px, transparent 1px, transparent 3px);
}

.static-window,
.terminal-container {
  width: min(880px, 100%);
  background: var(--cha-panel);
  border: 1px solid #222;
  box-shadow: 0 0 30px rgba(0, 255, 0, 0.75);
  backdrop-filter: blur(2px);
}

.terminal-container {
  max-width: 900px;
  margin: 0 auto;
}

.conduct-page .static-window {
  max-height: calc(100vh - 40px);
  display: flex;
  flex-direction: column;
}

.title-bar {
  min-height: 32px;
  background: var(--cha-title);
  color: #cfcfcf;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 12px;
  border-bottom: 1px solid #333;
  font-size: 0.9rem;
}

.window-controls { display: flex; gap: 6px; }
.window-controls span { width: 12px; height: 12px; border-radius: 50%; display: inline-block; }
.window-controls span:nth-child(1) { background: #ff5f57; }
.window-controls span:nth-child(2) { background: #ffbd30; }
.window-controls span:nth-child(3) { background: #28c940; }

.window-title {
  margin-left: auto;
  margin-right: auto;
  color: #d8ffd8;
}

.content { padding: 26px; line-height: 1.65; }
.conduct-page .content { overflow-y: auto; }

h1, h2 {
  color: var(--cha-bright);
  text-shadow: 0 0 12px rgba(0, 255, 0, 0.75);
}

h2 {
  margin: 28px 0 10px;
  font-size: clamp(1.1rem, 3vw, 1.45rem);
}

h1 {
  margin: 0 0 18px;
  font-size: clamp(1.5rem, 4vw, 2.2rem);
}

h1::before {
  content: "root@cha:~# ";
  color: var(--cha-dim);
  font-size: 0.75em;
}

p { margin: 0 0 12px; }
strong { color: #fff; }
ul { margin-top: 0; padding-left: 22px; list-style: square; }

.lede {
  max-width: 72ch;
  color: #d8ffd8;
  font-size: 1.02rem;
}

.meeting-facts {
  margin: 16px 0 24px;
  border: 1px solid rgba(51, 255, 51, 0.35);
  background: rgba(0, 40, 0, 0.3);
}

.meeting-facts > div {
  display: grid;
  grid-template-columns: minmax(100px, 0.28fr) 1fr;
  gap: 14px;
  padding: 8px 10px;
  border-bottom: 1px dashed rgba(51, 255, 51, 0.25);
}

.meeting-facts > div:last-child { border-bottom: 0; }
.meeting-facts dt { color: #fff; font-weight: bold; }
.meeting-facts dd { margin: 0; }

.topic-grid {
  columns: 2 280px;
  column-gap: 36px;
}

.topic-grid li {
  break-inside: avoid;
  margin-bottom: 5px;
}

a {
  color: var(--cha-green);
  text-decoration: none;
  border-bottom: 1px dashed rgba(51, 255, 51, 0.55);
}

a:hover { color: #fff; text-shadow: 0 0 8px rgba(51, 255, 51, 0.8); }
a:focus-visible, summary:focus-visible { outline: 2px solid #ffff00; outline-offset: 4px; }

.nav-line,
.back {
  margin-top: 22px;
  padding-top: 14px;
  border-top: 1px dashed rgba(51, 255, 51, 0.4);
}

.back { display: block; }
.hidden-egg { display: none; }
.important { color: #ffff66; font-weight: bold; }

.post {
  margin-bottom: 60px;
  border-bottom: 1px solid #0f0;
  padding-bottom: 20px;
}

.post-title { font-size: 1.4rem; font-weight: bold; color: var(--cha-bright); }
.post-meta { font-size: 0.9rem; color: #aaa; margin-bottom: 1em; }
.post-content p { white-space: pre-wrap; margin: 0 0 1em; }

.post-image { margin: 1.25em auto; text-align: center; }
.post-image img { max-width: 100%; height: auto; }
.post-image figcaption { margin-top: 0.5em; color: #aaa; font-size: 0.85rem; }

details summary { cursor: pointer; color: var(--cha-green); font-weight: bold; margin-top: 2em; }
.meeting-local-time { color: #aaffaa; font-size: 0.9rem; }
.meeting-local-time:empty { display: none; }

@media (max-width: 600px) {
  body,
  body.blog-page { padding: 12px; }
  .content { padding: 20px; }
  .meeting-facts > div { grid-template-columns: 1fr; gap: 2px; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}