@font-face {
  font-family: Inter; src: url("/assets/Inter-Variable.ttf") format("truetype");
  font-style: normal; font-weight: 100 900; font-display: block;
}
@font-face {
  font-family: Inter; src: url("/assets/Inter-Italic-Variable.ttf") format("truetype");
  font-style: italic; font-weight: 100 900; font-display: block;
}
:root {
  --ground: #fcfcf9; --ink: #404040; --quiet: #7e7e7e; --rule: #dfdfdf;
  --soft: #f3f3ee; --green: #2e8c5c; --purple: #8554b8; --blue: #2885d1;
  --red: #d4473d; --amber: #e69e14; color-scheme: light dark;
  font-family: Inter; font-size: 18px; line-height: 1.62;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--ground); color: var(--ink); }
body { min-height: 100vh; padding: 0 1.5rem; }
.shell { display: flex; flex-direction: column; width: min(100%, 70ch); min-height: 100vh; margin: 0 auto; }
nav { display: flex; gap: 1.35rem; padding: 2rem 0 2.6rem; font-size: .92rem; }
a { color: var(--green); text-decoration: underline; text-decoration-thickness: .06em; text-underline-offset: .14em; }
nav a { color: var(--ink); text-decoration-color: transparent; }
nav a:hover, nav a:focus-visible, nav a[aria-current="page"] { color: var(--green); text-decoration-color: currentColor; }
a:hover, a:focus-visible { color: var(--purple); }
a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
main { flex: 1; }
h1, h2, h3 { line-height: 1.2; font-weight: 600; }
h1 { margin: 0; font-size: 1.7rem; }
h2 { margin: 2.7rem 0 .7rem; font-size: 1.2rem; }
h3 { margin: 2rem 0 .6rem; font-size: 1rem; }
p { margin: 0 0 1.1rem; }
.tagline { min-height: 1.62em; margin: .25rem 0 1.7rem; }
.stream { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--rule); }
.stream li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.4rem; padding: 1.25rem 0 1.35rem; border-bottom: 1px solid var(--rule); }
.stream h2 { margin: 0 0 .3rem; font-size: 1.05rem; }
.stream p { margin: 0; color: var(--quiet); font-size: .94rem; }
time, figcaption { color: var(--quiet); font-size: .82rem; }
.stream time { white-space: nowrap; padding-top: .1rem; }
article header { margin-bottom: 2.25rem; }
article header time { display: block; margin-top: .5rem; }
.project-link { display: inline-block; margin-top: .35rem; font-size: .82rem; }
.prose ul, .prose ol { margin: 0 0 1.1rem; padding-left: 1.4rem; }
.prose li { margin: .3rem 0; }
code { font-size: .9em; }
pre { margin: 1.5rem 0; padding: .9rem 1rem; overflow-x: auto; background: var(--soft); line-height: 1.5; white-space: pre; }
.highlight .k, .highlight .ow, .highlight .kn { color: var(--red); }
.highlight .s, .highlight .s1, .highlight .s2 { color: var(--amber); }
.highlight .nf, .highlight .nb, .highlight .bp { color: var(--blue); }
.highlight .c, .highlight .c1 { color: var(--quiet); }
figure { margin: 1.8rem 0; }
.chart { display: block; width: 100%; height: auto; color: var(--quiet); }
.grid { stroke: var(--rule); stroke-width: 1; }
.even-line { stroke: var(--quiet); stroke-width: 1; stroke-dasharray: 4 4; }
.axis-label, .axis-title { fill: currentColor; font: 11px Inter; }
.series { fill: none; stroke-width: 2.3; stroke-linejoin: round; stroke-linecap: round; }
.point { stroke: var(--ground); stroke-width: 1; }
.series-queen { stroke: var(--green); } .point-queen { stroke: var(--green); fill: var(--green); }
.series-rook { stroke: var(--purple); } .point-rook { stroke: var(--purple); fill: var(--purple); }
.series-bishop { stroke: var(--blue); } .point-bishop { stroke: var(--blue); fill: var(--blue); }
.series-king { stroke: var(--red); } .point-king { stroke: var(--red); fill: var(--red); }
.series-knight { stroke: var(--amber); } .point-knight { stroke: var(--amber); fill: var(--amber); }
.series-knight { stroke-dasharray: 7 5; }
figcaption { margin-top: .45rem; }
.repo { margin-top: 2.7rem; }
footer { padding: 3.5rem 0 1.6rem; color: var(--quiet); font-size: .82rem; }
footer a { color: inherit; }
.resume-actions { margin: 0 0 .8rem; text-align: right; font-size: .82rem; }
.resume-sheet { font-size: .81rem; line-height: 1.34; }
.resume-header { text-align: center; margin-bottom: 1.4rem; }
.resume-header h1 { font-size: 1.28rem; }
.resume-contact { display: flex; justify-content: center; gap: .85rem; margin: .35rem 0 0; white-space: nowrap; }
.resume-contact a, .resume-row a { color: var(--ink); text-decoration: none; }
.resume-section { margin-top: 1.15rem; }
.resume-section h2 { margin: 0 0 .65rem; padding-bottom: .24rem; border-bottom: 1px solid var(--ink); font-size: .9rem; }
.resume-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; }
.resume-gap { margin-top: .85rem; }
.resume-sheet ul { margin: .38rem 0 0; padding-left: 1.55rem; }
.resume-sheet li { margin: .12rem 0; padding-left: .08rem; }
.resume-project { margin-top: .75rem; }
.resume-skills p { margin: 0; }
@media (prefers-color-scheme: dark) {
  :root { --ground: #181816; --ink: #e7e4dc; --quiet: #aaa59a; --rule: #393834; --soft: #23231f; }
}
@media (max-width: 38rem) {
  body { padding: 0 1rem; }
  nav { gap: 1.1rem; padding: 1.35rem 0 2rem; }
  .stream li { gap: .8rem; }
  .resume-contact { gap: .55rem; }
}
@media print {
  :root { background: #fff; color: #000; font-size: 11pt; }
  html, body { background: #fff; color: #000; }
  body { padding: 0; }
  .shell { width: 100%; max-width: none; }
  nav, footer { display: none; }
  a { color: #000; }
  .resume-page { min-height: 0; }
  .resume-actions { display: none; }
  .resume-sheet { font-size: 10.5pt; line-height: 1.3; }
  .resume-section { break-inside: avoid; }
  h1, h2, h3 { break-after: avoid; }
  p, li { orphans: 3; widows: 3; }
}
