/* 321-bloggen — ett stilark, ingen klasser, ingen bygg.
   Relies on Baseline-2024 CSS: light-dark(), nesting, text-wrap, clamp(). */

/* Colours are 321.no's own design tokens (gray-white, gray-400, brand-blue, brand-green). */
:root {
  color-scheme: light dark;             /* browser picks light/dark from OS setting */
  --bakgrunn: light-dark(#f6f4ef, #0f0f0f);
  --tekst:    light-dark(#0f0f0f, #f6f4ef);
  --dempet:   light-dark(#434549, #7a7e86);
  --aksent:   light-dark(#3e0ff3, #2ff58f);  /* blue in light mode, green in dark, like 321.no */
  --linje:    light-dark(#c4c7ce, #434549);
  --kodebakgrunn: light-dark(#ebe8e1, #1c1c1c);
}

::selection { background: var(--aksent); color: var(--bakgrunn); }

html {
  font-family: system-ui, sans-serif;
  font-size: clamp(1rem, 0.9rem + 0.4vw, 1.2rem);   /* fluid type, no media queries */
  line-height: 1.6;
  background: var(--bakgrunn);
  color: var(--tekst);
}

body {
  max-inline-size: 68ch;                /* comfortable reading measure */
  margin-inline: auto;
  padding: 1.5rem 1rem 4rem;
}

/* --- Header / footer (identical in every file) --- */
body > header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  padding-block-end: 1rem;
  border-block-end: 1px solid var(--linje);
  margin-block-end: 2.5rem;

  & a { text-decoration: none; }
  & strong { font-size: 1.4rem; letter-spacing: 0.05em; }
  & nav { display: flex; gap: 1.2rem; color: var(--dempet); }
}

body > footer {
  margin-block-start: 4rem;
  padding-block-start: 1rem;
  border-block-start: 1px solid var(--linje);
  color: var(--dempet);
  font-size: 0.9em;
}

/* --- Typography --- */
/* 321.no sets headings in IBM Plex Mono. System monospace gives the same feel with no webfont. */
h1, h2, h3 { font-family: ui-monospace, "IBM Plex Mono", monospace; line-height: 1.2; text-wrap: balance; }
h1 { font-size: 2.2em; margin-block: 0 0.3em; }
h2 { font-size: 1.5em; margin-block: 2em 0.5em; }
p  { text-wrap: pretty; }

a { color: var(--aksent); }
a:hover { text-decoration-thickness: 2px; }

hgroup p { color: var(--dempet); margin-block-start: 0; }   /* byline under the title */

/* Cross-document view transitions: smooth fade between pages, zero JS.
   Progressive enhancement — browsers without support just navigate normally. */
@view-transition { navigation: auto; }

/* --- Media --- */
figure { margin-inline: 0; }
img { max-inline-size: 100%; block-size: auto; border-radius: 4px; }
figcaption { color: var(--dempet); font-size: 0.85em; text-align: center; }

/* --- Code --- */
pre, code { font-family: ui-monospace, monospace; font-size: 0.9em; }
pre {
  background: var(--kodebakgrunn);
  padding: 1rem;
  overflow-x: auto;
  border-radius: 4px;
}
:not(pre) > code {
  background: var(--kodebakgrunn);
  padding: 0.1em 0.3em;
  border-radius: 3px;
}

/* --- Post list on the front page --- */
main > ul {
  list-style: none;
  padding: 0;

  & li {
    display: grid;
    grid-template-columns: 7.5rem 1fr;
    gap: 0.5rem 1rem;
    padding-block: 0.8rem;
    border-block-end: 1px solid var(--linje);
  }
  & time { color: var(--dempet); font-variant-numeric: tabular-nums; }
  & small { display: block; color: var(--dempet); }
}
