* { margin: 0; padding: 0; font: inherit; color: inherit; box-sizing: border-box; }
:root { --lh: 1.5em; }
::selection { background: #ddd; color: #000; }
html { height: 100%; }
body {
  font: 1em/var(--lh) monospace;
  background: #f2f2f2;
  padding: 16vh 2em 0;
  display: grid;
  grid: 1fr / minmax(auto, 64ch);
  justify-content: center;
  height: 100%;
}
a { display: inline-block; padding: .16666em; margin-left: -.16666em; text-decoration: none; }
i { font-style: italic; }
a i { border-bottom: 1px dotted; }
a:active i { border: none; }
h1, p, nav { margin-bottom: var(--lh); }
h2 { margin-bottom: var(--lh); }
hr { border: none; border-top: 1px solid #ccc; margin-bottom: var(--lh); }
blockquote { margin-bottom: var(--lh); padding-left: 1.5em; border-left: 2px solid #ccc; }
ol, ul { padding-left: 1.5em; margin-bottom: var(--lh); }
body.poem hr ~ p { text-align: center; }
sup { font-size: 0.7em; vertical-align: super; }
sup a { display: inline; padding: 0; margin: 0; }
img { max-width: 100%; height: auto; margin-bottom: var(--lh); }
.gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1em; margin-bottom: var(--lh); }
.gallery figure { margin: 0; text-align: center; }
.gallery img { margin-bottom: 0; width: 100%; aspect-ratio: 1; object-fit: contain; cursor: pointer; background: #f2f2f2; }
.gallery figcaption { font-size: 0.75em; color: #666; margin-top: 0.3em; }
.lightbox { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.9); z-index: 100; justify-content: center; align-items: center; cursor: pointer; }
.lightbox.active { display: flex; }
.lightbox img { max-width: 90vw; max-height: 90vh; object-fit: contain; margin: 0; cursor: default; }
.refs { font-size: 0.85em; color: #666; margin-top: var(--lh); }
.refs p { margin-bottom: 0; }
footer { padding: calc(var(--lh) * 2) 0 8vh; }
footer p { margin: 0; }
@media (max-device-width: 600px) {
  body { padding-top: 2em; justify-content: start; }
  footer { padding-bottom: 2em; }
  a i { border-color: #888; }
}
