@import url("https://fonts.googleapis.com/css2?family=VT323&display=swap");

:root {
  --bg: #000;
  --text: #888;
  --text-strong: #aaa;
  --accent: #00bcd4;
  --border: #262626;
  --input-bg: #080808;
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  background: var(--bg);
  color: var(--text);
  font-family: "VT323", monospace;
  font-size: 20px;
  line-height: 1.15;
  overflow-wrap: break-word;
}
.w { width: min(100% - 2rem, 460px); margin: 0 auto; padding: 4rem 0 2rem; }
.site-header { text-align: center; }
h1 { margin: 0 0 1rem; color: var(--text-strong); font-size: 2rem; line-height: 1.1; }
h2, h3, h4, h5, h6 { margin-top: 2.5rem; color: var(--text-strong); line-height: 1.15; }
p { margin: 1rem 0; }
a { color: var(--accent); text-decoration: none; }
a:hover, a:focus-visible { text-decoration: underline; }
.site-title { color: var(--text-strong); }
img { display: block; max-width: 100%; height: auto; margin: 1.5rem auto; border-radius: 4px; }
.ad-banner { display: block; width: 100%; margin: .75rem 0 1rem; }
.ad-banner img { width: 460px; max-width: 100%; height: auto; margin: 0 auto; border-radius: 0; }
blockquote { margin: 1rem 0; padding: 1rem; border: 1px solid var(--border); font-style: italic; }
code { padding: 0 .2rem; background: #111; color: #ddd; }
pre { overflow-x: auto; padding: 1rem; border: 1px solid var(--border); background: #050505; }
pre code { padding: 0; }
.post-meta { margin-bottom: .5rem; color: var(--accent); text-align: right; }
.post-list, .archive-list { width: fit-content; max-width: 100%; margin: 2rem auto 0; padding: 0; list-style: none; }
.post-list li, .archive-list li { display: flex; gap: 16px; margin: .45rem 0; }
.post-list time, .archive-list time { width: 82px; flex: 0 0 82px; text-align: right; }
.top-link, .post-navigation, .pagination { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 2rem; }
.top-link { justify-content: flex-start; }
.post-navigation { margin: 2rem 0 0; padding-top: 1rem; border-top: 1px solid var(--border); }
.post-navigation a:last-child, .post-navigation span:last-child { text-align: right; }
.post-navigation span { opacity: .35; }
.pagination { margin-top: 2rem; justify-content: center; }
.pagination .current { color: var(--text-strong); }
audio { width: 100%; margin: 1rem 0; }
.archive-group, .tag-group { margin-top: 2rem; }
.archive-group h2, .tag-group h2 { margin-bottom: .5rem; }
.site-footer { margin-top: 3rem; padding-top: 1rem; }
.newsletter { margin: 1.25rem 0; padding: .75rem; border: 1px solid var(--border); }
.newsletter h2 { margin: 0 0 .3rem; font-size: 1.25rem; }
.newsletter p { margin: .3rem 0 .65rem; }
.newsletter-form { display: grid; gap: .35rem; }
.newsletter-form input, .newsletter-form button { width: 100%; min-height: 34px; border: 1px solid var(--border); border-radius: 4px; font: inherit; }
.newsletter-form input { padding: .35rem .55rem; background: var(--input-bg); color: var(--text-strong); outline: none; }
.newsletter-form input:focus { border-color: var(--accent); }
.newsletter-form button { padding: .3rem .6rem; background: transparent; color: var(--accent); cursor: pointer; }
.newsletter-form button:hover, .newsletter-form button:focus-visible { border-color: var(--accent); }
.footer-links, .footer-copy { text-align: center; }
.footer-links { margin-top: 1.25rem; }
.footer-copy { font-size: .9em; }
@media (max-width: 520px) {
  body { font-size: 19px; }
  .w { width: min(100% - 1.5rem, 460px); padding-top: 2.5rem; }
  .post-list li, .archive-list li { gap: 10px; }
  .post-list time, .archive-list time { width: 72px; flex-basis: 72px; }
}
