@font-face { font-family: 'Resume Inter'; src: url('../fonts/inter-latin-v20.woff2') format('woff2'); font-style: normal; font-weight: 100 900; font-display: swap; }
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --ink: #111827; --ink-mid: #374151; --ink-soft: #6b7280;
  --rule: #e5e7eb; --tag-bg: #f9fafb; --tag-bd: #e5e7eb;
  --blue: #1d4ed8; --bar: #111827; --bar-w: 4px;
  --pg-w: 210mm; --pg-h: 297mm;
}
html {
  font-family: 'Resume Inter', system-ui, -apple-system, sans-serif;
  font-size: 9pt; color: var(--ink-mid); background: #d1d5db;
  -webkit-font-smoothing: antialiased;
}
body { display: flex; justify-content: center; align-items: flex-start; min-height: 100vh; padding: 28px 16px; }
.page {
  position: relative; width: var(--pg-w); height: var(--pg-h); background: #fff;
  box-shadow: 0 8px 48px rgba(0,0,0,.22), 0 2px 8px rgba(0,0,0,.10);
  padding: 11mm 13mm 11mm 13mm;
}
.content { border-left: var(--bar-w) solid var(--bar); padding-left: 10px; }
header {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding-bottom: 9px; margin-bottom: 10px; border-bottom: 1.5px solid var(--rule);
}
.hd-left h1 { font-size: 21pt; font-weight: 800; letter-spacing: -0.6px; color: var(--ink); line-height: 1; }
.hd-left .role { margin-top: 5px; font-size: 8pt; font-weight: 500; letter-spacing: 1.8px; text-transform: uppercase; color: var(--ink-soft); }
.hd-right { text-align: right; font-size: 7.5pt; line-height: 1.85; color: var(--ink-soft); }
.hd-right a { color: var(--ink-soft); text-decoration: none; }
.hd-sep { margin: 0 3px; opacity: .4; }
section { margin-bottom: 10px; }
section.spaced { margin-bottom: 14px; }
section:last-child { margin-bottom: 0; }
.sec-head { display: flex; align-items: center; gap: 7px; margin-bottom: 6px; }
.sec-head span { font-size: 6.5pt; font-weight: 700; letter-spacing: 1.8px; text-transform: uppercase; color: var(--ink); white-space: nowrap; }
.sec-head::after { content: ''; flex: 1; height: 1px; background: var(--rule); }
.summary-text { font-size: 8.5pt; line-height: 1.6; color: var(--ink-mid); }
.edu-row { display: flex; justify-content: space-between; align-items: baseline; }
.edu-degree { font-size: 9pt; font-weight: 600; color: var(--ink); }
.edu-meta { font-size: 8pt; color: var(--ink-soft); }
.proj { padding: 6px 9px; border: 1px solid var(--rule); border-radius: 4px; margin-bottom: 6px; position: relative; }
.proj:last-child { margin-bottom: 0; }
.proj::before { content: ''; position: absolute; left: 0; top: 5px; bottom: 5px; width: 2.5px; background: var(--bar); border-radius: 0 2px 2px 0; opacity: .15; }
.proj-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 1px; }
.proj-name { font-size: 9pt; font-weight: 700; color: var(--ink); }
.proj-links { display: flex; gap: 9px; font-size: 7pt; }
.proj-links a { color: var(--blue); text-decoration: none; font-weight: 500; }
.proj-sub { font-size: 7.5pt; font-style: italic; color: var(--ink-soft); margin-bottom: 4px; }
.proj-bullets { padding-left: 13px; margin-bottom: 5px; }
.proj-bullets li { font-size: 7.8pt; line-height: 1.52; color: var(--ink-mid); margin-bottom: 2px; }
.proj-bullets li:last-child { margin-bottom: 0; }
.tags { display: flex; flex-wrap: wrap; gap: 3px; }
.tag { background: var(--tag-bg); border: 1px solid var(--tag-bd); color: var(--ink-mid); font-size: 6.5pt; font-weight: 500; padding: 1.5px 6px; border-radius: 2px; }
.work-row { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 2px; }
.work-name { font-size: 9pt; font-weight: 700; color: var(--ink); }
.work-name a { color: var(--blue); text-decoration: none; font-size: 7.5pt; font-weight: 400; margin-left: 4px; }
.work-role { font-size: 7.8pt; color: var(--ink-soft); font-weight: 500; }
.work-desc { font-size: 8pt; line-height: 1.55; color: var(--ink-mid); }
.work-desc a { color: var(--blue); text-decoration: none; }
@media print {
  html, body { background: none; padding: 0; }
  * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  .page { box-shadow: none; width: 100%; min-height: 0; padding: 11mm 13mm 11mm 13mm; }
  .content { border-left: var(--bar-w) solid var(--bar) !important; }
  .proj { border: 1px solid var(--rule) !important; }
  .proj::before { background: var(--bar) !important; opacity: .15 !important; }
  .tag { background: var(--tag-bg) !important; border: 1px solid var(--tag-bd) !important; }
  .sec-head::after { background: var(--rule) !important; }
  header { border-bottom: 1.5px solid var(--rule) !important; }
  a { text-decoration: none !important; }
  .proj-links a, .work-desc a, .work-name a { color: var(--blue) !important; }
  .hd-right a { color: var(--ink-soft) !important; }
  @page { size: A4; margin: 0; }
}
@media screen and (max-width: 720px) {
  html { font-size: 10px; background: #fff; }
  body { display: block; padding: 0; }
  .page {
    width: 100%;
    height: auto;
    min-height: 0;
    padding: 28px 22px;
    box-shadow: none;
  }
  .content { padding-left: 9px; }
  header { gap: 18px; }
  .hd-left h1 { font-size: 18pt; }
  .hd-right { font-size: 7pt; line-height: 1.6; overflow-wrap: anywhere; }
  .edu-row, .work-row, .proj-top { display: block; }
  .edu-meta, .work-role { display: block; margin-top: 2px; }
  .proj-links { margin-top: 3px; }
}
