/* Hand-written stylesheet for raymondmaung.com — the preamble.tex
 * analog.  Austere on purpose: text, one column, nothing else.
 *
 * THEME KNOBS — the whole look lives in this :root block (the CSS
 * analog of \paperfontsize/\paperspacing in shared/preamble.tex).
 * Everything below only consumes these variables: re-theming is an
 * edit here (plus, for a new typeface, woff2 files in shared/fonts/
 * and the @font-face rules beneath), then `publish site`.
 * Current values approximate the WordPress Ueno look — a starting
 * point, not a commitment. */
:root {
  --font-body: "Ibarra Real Nova", Georgia, serif;
  --font-accent: "IBM Plex Mono", ui-monospace, monospace; /* nav */
  --size-body: 1.125rem;
  --measure: 46rem;          /* column width — wide enough for the nav
                                to sit on one row */
  --leading: 1.6;
  --color-fg: #111;
  --color-bg: #fff;
  --color-link: #111;
}

/* Self-hosted fonts (both SIL OFL) — no third-party requests. */
@font-face {
  font-family: "Ibarra Real Nova";
  src: url("fonts/ibarra-real-nova-regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Ibarra Real Nova";
  src: url("fonts/ibarra-real-nova-italic.woff2") format("woff2");
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: "Ibarra Real Nova";
  src: url("fonts/ibarra-real-nova-700.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/ibm-plex-mono-regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}

/* Normalization — three lines, no reset framework. */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
h1, h2, h3, p, ul { margin: 0 0 1rem; }

body {
  font-family: var(--font-body);
  font-size: var(--size-body);
  line-height: var(--leading);
  color: var(--color-fg);
  background: var(--color-bg);
  max-width: var(--measure);
  margin: 0 auto;
  padding: 2.5rem 1.25rem 4rem;
}

header { margin-bottom: 3rem; }
nav {
  font-family: var(--font-accent);
  font-size: 0.85rem;
  padding-left: 2rem;   /* tabs sit right of the body's left edge */
}
nav a { margin-right: 1.25rem; text-decoration: none; }
nav a[aria-current] { text-decoration: underline; }

h2 { font-size: 1.25rem; margin-top: 2rem; }

a { color: var(--color-link); }

ul.papers { list-style: none; padding: 0; }
ul.papers li { margin-bottom: 0.75rem; }

/* CV page — layout for the body that org-site-export.el generates from
 * the CV's own source (the web analog of the \entry macros in
 * cv/preamble.tex; the class names mirror the macro names).  The .cv
 * wrapper steps the whole body down from prose size: a CV is dense
 * lines, not paragraphs, and reads oversized at body size. */
.cv { font-size: 1rem; }
.cv-sub { font-size: 0.9em; }
.cv-entry {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.35rem;
}
.cv-date { text-align: right; }
p.cv-entry.cv-sub { padding-left: 1.5rem; }
.cv-details { list-style: none; padding-left: 1.5rem; font-size: 0.9em; }
.cv-details li { display: flex; justify-content: space-between; gap: 1rem; }
.cv-subline { padding-left: 1.5rem; font-size: 0.9em; }
.cv-pres { margin-bottom: 1rem; }
.cv-pres .cv-entry { margin-bottom: 0.15rem; }
/* presentation dates are single "Month Year" tokens: never let a long
 * title squeeze one onto two lines */
.cv-pres .cv-date { white-space: nowrap; }
.cv-venue {
  padding-left: 1.5rem;
  font-size: 0.9em;
  font-style: italic;
  margin-bottom: 0;
}
