:root { --bg:#fbfbf9; --fg:#1d1d1b; --muted:#5f5f5a; --rule:#e6e5e0; --link:#2a3a9c; --code:#f0efea; }
@media (prefers-color-scheme: dark) { :root { --bg:#161615; --fg:#ecebe6; --muted:#a3a29b; --rule:#2c2c2a; --link:#9aa8ff; --code:#222221; } }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--fg); font:16px/1.65 Inter, system-ui, sans-serif; }
.wrap { max-width:680px; margin:0 auto; padding:0 20px; }
h1, h2, h3, .brand { font-family: Newsreader, Georgia, serif; font-weight:400; line-height:1.2; }
a { color:var(--link); }
header { display:flex; justify-content:space-between; align-items:baseline; padding:28px 0 20px; border-bottom:1px solid var(--rule); }
.brand { font-size:20px; color:var(--fg); text-decoration:none; }
nav { display:flex; gap:20px; font-size:14px; }
nav a { color:var(--muted); text-decoration:none; }
nav a[aria-current] { color:var(--fg); text-decoration:underline; text-underline-offset:4px; }
main { padding:48px 0 64px; min-height:60vh; }
h1 { font-size:44px; margin:0 0 24px; }
footer { border-top:1px solid var(--rule); padding:24px 0 40px; font-size:13px; color:var(--muted); }
.prose h2, .label { font:500 12px/1 Inter, sans-serif; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin:40px 0 20px; }
.prose h3 { font-size:19px; margin:0; }
.prose img { max-width:100%; }
.prose pre { background:var(--code); padding:14px 16px; overflow-x:auto; border-radius:6px; font-size:14px; }
.prose code { background:var(--code); padding:1px 5px; border-radius:4px; font-size:.9em; }
.prose pre code { background:none; padding:0; }
.prose blockquote { margin:0; padding-left:16px; border-left:3px solid var(--rule); color:var(--muted); }
.about > p:first-child { font:400 22px/1.4 Newsreader, Georgia, serif; }
.links { display:flex; gap:20px; margin:0; }
.label { margin:32px 0 12px; }
.title-row { display:flex; justify-content:space-between; align-items:baseline; gap:16px; }
.download { font:inherit; font-size:15px; background:none; border:0; padding:0; color:var(--link); text-decoration:underline; cursor:pointer; }
.entry-head { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-top:20px; }
.dates { font-size:14px; color:var(--muted); white-space:nowrap; }
.resume h2 { border-top:1px solid var(--rule); padding-top:32px; }
.resume h2:first-child { border:0; padding:0; }
.resume p { margin:4px 0 0; }
.posts { list-style:none; margin:0; padding:0; border-top:1px solid var(--rule); }
.posts li { padding:20px 0; border-bottom:1px solid var(--rule); }
.posts h2 { font-size:24px; margin:2px 0 6px; }
.posts h2 a { color:var(--fg); text-decoration:none; }
.posts h2 a:hover { text-decoration:underline; }
.posts p { margin:0; }
.date { color:var(--muted); font-size:14px; margin:0 0 4px; }
.back { margin-top:48px; font-size:14px; }
@media (max-width:560px) { h1 { font-size:34px; } .entry-head { flex-direction:column; gap:0; } }
@media print {
  :root { --bg:#fff; --fg:#1a1a1a; --muted:#555; --rule:#ccc; --link:#1a1a1a; --code:#eee; --slate:#343f50; }
  * { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  body { font-size:9.5pt; line-height:1.4; }
  @page { margin:12mm 0; }
  .wrap { max-width:none; padding:0 14mm; }
  body > .wrap > header, footer, .title-row { display:none; }
  main { padding:0; min-height:0; }
  a { text-decoration:none; }

  /* banner: name, title, location and professional summary */
  .cv-head, .cv-professional-summary { background:var(--slate); color:#fff; margin:0 -14mm; padding:0 14mm; }
  .cv-head { padding-top:8mm; }
  .cv-head h1 { font-size:28pt; margin:0; color:#fff; }
  .cv-head p { margin:0; }
  .cv-head p:first-of-type { font-size:12pt; padding-bottom:2px; }
  .cv-head p:nth-of-type(2) { font-size:9pt; opacity:.85; margin-top:2px; }
  .cv-professional-summary { padding-bottom:6mm; }
  .cv-professional-summary h2 { display:none; }
  .cv-professional-summary p { margin:6px 0 0; font-size:9.5pt; }
  .cv-sec { margin-top:6mm; }
  .cv-professional-summary { margin-top:-2px; padding-top:2px; }

  /* section headings */
  .prose h2 { font:700 14pt/1.2 Inter, sans-serif; letter-spacing:0; text-transform:uppercase; color:var(--slate); border-bottom:1px solid var(--slate); padding-bottom:2px; margin:0 0 8px; break-after:avoid; }
  .prose h3 { font:700 11.5pt/1.3 Inter, sans-serif; color:var(--slate); margin:12px 0 0; break-after:avoid; }
  .prose h3 + p em { font-size:8.5pt; color:var(--muted); }
  .prose p { margin:2px 0; }
  .prose ul { list-style:square; padding-left:16px; margin:4px 0; }
  .prose li { margin:2px 0; break-inside:avoid; }
  .prose li::marker { font-size:.7em; }

  /* skills as two columns */
  .cv-technical-skills ul { margin:2px 0 8px; }
  .cv-technical-skills { column-count:2; column-gap:12mm; }
  .cv-technical-skills h2 { column-span:all; }
  .cv-technical-skills p { break-after:avoid; margin-top:6px; color:var(--slate); }
  .cv-technical-skills ul { break-inside:avoid; }
}
