:root {
  color-scheme: light;
  font-family: "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
  color: #252a30;
  background: #f3f4f5;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 280px; }
.resume {
  width: min(900px, calc(100% - 48px));
  margin: 36px auto;
  padding: 46px 56px 50px;
  background: #fff;
  border: 1px solid #e0e3e6;
  font-size: 14px;
  line-height: 1.65;
}
.resume-header { margin-bottom: 28px; }
h1 { margin: 0 0 7px; color: #15191e; font-size: 32px; line-height: 1.25; font-weight: 650; letter-spacing: -.025em; }
.position { margin: 0 0 12px; font-size: 16px; line-height: 1.5; color: #3e4752; }
.contact { margin: 0; color: #515964; font-size: 13px; }
a { color: #33546d; text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
a:hover { color: #152c3d; }
a:focus-visible { outline: 2px solid #33546d; outline-offset: 3px; }
section { margin-top: 27px; }
h2 { margin: 0 0 13px; padding-bottom: 6px; border-bottom: 1px solid #dce0e4; font-size: 15px; line-height: 1.5; font-weight: 650; color: #20262d; }
p { margin: 0; overflow-wrap: anywhere; }
.experience-item + .experience-item { margin-top: 20px; }
.experience-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 3px 18px; }
h3 { margin: 0; font-size: 14px; line-height: 1.6; font-weight: 650; }
.period { color: #68727c; font-size: 12px; white-space: nowrap; }
ul { margin: 7px 0 0; padding-left: 19px; }
li { padding-left: 2px; overflow-wrap: anywhere; }
li + li { margin-top: 5px; }
.projects { margin: 0; padding: 0; list-style: none; }
.projects li { padding: 0; }
.projects li + li { margin-top: 10px; }
strong { font-weight: 650; }
.skills { margin: 0; }
.skill-row { display: grid; grid-template-columns: minmax(0, 145px) minmax(0, 1fr); gap: 14px; }
.skill-row + .skill-row { margin-top: 7px; }
dt { font-weight: 600; }
dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  :root { background: #fff; }
  .resume { width: 100%; margin: 0; padding: 28px 23px 36px; border: none; }
  h1 { font-size: 28px; }
  .position { font-size: 15px; }
  .experience-heading { display: block; }
  .period { margin-top: 2px; white-space: normal; }
  .skill-row { grid-template-columns: minmax(0, 1fr); gap: 1px; }
  .skill-row + .skill-row { margin-top: 10px; }
}
@media (max-width: 360px) {
  .resume { padding-inline: 18px; font-size: 13px; }
  h1 { font-size: 25px; }
}
@media print {
  @page { size: A4; margin: 16mm; }
  :root, body { background: #fff; color: #000; }
  .resume { width: 100%; max-width: none; border: none; margin: 0; padding: 0; font-size: 10pt; line-height: 1.45; }
  h1 { font-size: 24pt; }
  .position { font-size: 11pt; }
  h2 { break-after: avoid; }
  .experience-heading, .skill-row, .project-item { break-inside: avoid; }
  a { color: inherit; }
}
