:root{
  --bg:        hsl(210,14%,9%);
  --text:      hsl(210,16%,84%);
  --text-minus:hsl(210,30%,55%);
  --text-plus: #fff;
  --border:    hsl(210,30%,24%);
  --code-bg:   hsl(210,14%,13%);
  --accent:    #efc178;
  --mono: 'Fira Code','Monaco','Consolas','Ubuntu Mono',monospace;
}

body{
  margin:0 auto; max-width:78ch; padding:3rem 1.5rem 4rem;
  background:var(--bg); color:var(--text);
  font-family:var(--mono);
  font-size:1.0625rem; line-height:1.55;
  text-wrap:pretty;
  /* font-variant-ligatures:none;  ← uncomment to disable -> => -- joins */
}

::selection{ background:var(--accent); color:#000; }

nav.topnav{ margin:0 0 2.5rem; font-size:.9rem; }
nav.topnav a{ color:var(--text-minus); }

footer.pagefooter{ margin-top:3.5rem; padding-top:1.2rem;
    border-top:1px solid var(--border);
    font-size:.8rem; color:var(--text-minus); }
footer.pagefooter p{ margin:0; }

h1,h3{ color:var(--text-plus); font-weight:700; }
h1{ font-size:1.5rem; line-height:1.25; margin:0 0 2.2rem; }
h3{ font-size:1rem; margin:3rem 0 1rem;
    border-top:1px solid var(--border); padding-top:1.4rem; }

p{ margin:0 0 1.2rem; }

pre{ position:relative; margin:1.6rem 0; padding:.8rem 1rem;
     background:var(--code-bg); border:1px solid var(--border);
     border-radius:4px; overflow-x:auto;
     font-size:.9rem; line-height:1.4; }
pre[data-lang]::before{ content:attr(data-lang); position:absolute;
     top:0; right:0; padding:.15rem .5rem;
     font-size:.75rem; color:var(--text-minus); }

a{ color:var(--text-plus); text-decoration:none; }
a:visited{ color:var(--text); }
a:hover{ color:var(--accent); }

p.link{ margin:.15rem 0; font-size:.95rem; }
/* Label-less links carry the bare URL; truncate it with an ellipsis
   rather than wrap mid-token or push the page wider. */
p.link a.bare{ white-space:nowrap; display:inline-block; max-width:100%;
               overflow:hidden; text-overflow:ellipsis; vertical-align:bottom; }

/* Link-type markers, Lagrange-style: gemini/internal links vs the web.
   The default covers relative and gemini:// links; http(s) gets a globe. */
p.link a::before{ content:"\264A\00A0"; color:var(--text-minus); }
p.link a[href^="http"]::before{ content:"\01F310\00A0"; }

strong{ font-weight:normal; }

blockquote{ margin:2.2rem 0; padding:.2rem 0 .2rem 1.4rem;
            border-left:1px solid var(--border); color:var(--text-minus); }
blockquote p{ margin:0; }

/* Generated-content helpers (heading permalinks and footnote anchors). */
a.headerlink{ visibility:hidden; text-decoration:none;
              padding-left:.3rem; color:var(--text-minus); }
:hover > a.headerlink{ visibility:visible; }
a.fnref, p.footnote a{ text-decoration:none; }
