:root { --heading-ink: #17324d; --heading-fill: #eaf0f5; --icon-gap: 35.25pt; }
* { box-sizing: border-box; }
body { margin: 0; background: #e5e5e5; color: #000; font-family: Calibri, Arial, sans-serif; font-size: 10.2pt; line-height: 1.16; }
.sheet { width: 8.5in; height: 14in; margin: 20px auto; padding: .38in .24in .25in .32in; background: #fff; }
a { color: #0000ee; text-decoration: underline; }
h1,h2,h3,h4 { font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif; }
h1 { font-size: 14pt; margin: 0 0 3pt; }
h2 { font-size: 10.5pt; line-height: 1.08; margin: 0; font-weight: bold; color: var(--heading-ink); }
h3 { font-size: 12pt; line-height: 1.1; margin: 8pt 0 3pt; }
h4 { font-size: 10.5pt; line-height: 1.12; margin: 5pt 0 2pt; }
p { margin: 0 0 5pt; }
ul { margin: 1pt 0 5pt; padding-left: 13pt; }
li { padding-left: 1pt; margin: 0 0 2pt; }
.portrait { float: left; position: relative; width: .83in; height: .90in; overflow: hidden; margin: 0 8pt 1pt 0; }
.portrait img { position: absolute; width: 100%; max-width: none; height: auto; left: 0; top: 0; }
.headline { font-size: 10.4pt; font-weight: bold; margin-bottom: 4pt; }
.contacts { display: flex; flex-wrap: wrap; gap: 4pt 10pt; font-size: 8.8pt; font-weight: bold; margin-bottom: 6pt; align-items: center; }
.contacts > span { display: inline-flex; align-items: center; gap: 3pt; white-space: nowrap; }
.contact-glyph { display: inline-block; width: 10pt; height: 10pt; flex: none; text-align: center; white-space: nowrap; font: 400 10pt/1 "Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif; }
.profile-link { display: inline-flex; align-items: center; justify-content: center; width: 14pt; height: 12pt; flex: none; text-decoration: none; }
.profile-link svg { display: block; width: 12pt; height: 12pt; fill: currentColor; }
.profile-link.github { color: #24292f; }
.profile-link.linkedin { color: #0a66c2; }
.profile-link:focus-visible { outline: 1pt solid var(--heading-ink); outline-offset: 2pt; }
.bar { background: var(--heading-fill); padding: 1pt 2pt; margin: 4pt 0 2pt; }
.intro .bar { display: flow-root; }
.summary { font-size: 11pt; line-height: 1.18; }
.intro::after,.skills-area::after { content: ""; display: block; clear: both; }
.skills-area { margin-top: 9pt; }
.expertise { float: right; width: 1.66in; margin: 0 0 7pt 9pt; text-align: center; }
.expertise h2 { margin-bottom: 2pt; padding: 1pt 2pt; font-size: 11pt; background: var(--heading-fill); }

.label { display: block; width: calc(100% - 1.66in - 9pt); padding: 0 2pt; background: var(--heading-fill); }
.competencies { display: grid; grid-template-columns: 1.05fr 1fr 1fr; margin: 2pt 0 9pt; padding: 0; list-style: none; gap: 2pt 6pt; font-size: 10.3pt; }
.competencies li::before { content: "\2022"; padding-right: 6pt; }
.technical { margin-top: 2pt; font-size: 10.05pt; }
.technical p { margin: 0 calc(1.33in + 9pt) 1pt 0; }
.technical b { display: inline-block; min-width: 86pt; }
.experience { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 1.33in; gap: 9pt; margin-top: 12pt; }
.experience .bar { margin-top: 0; }
.experience main, .continuation main { font-size: 10.5pt; line-height: 1.2; }
.experience main li, .continuation li { margin-bottom: 3pt; }
.date { font-size: 8.9pt; font-family: Calibri, Arial, sans-serif; font-weight: bold; white-space: nowrap; }
.client { font-size: 9pt; font-weight: normal; }

.icon-lane { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: var(--icon-gap); }
.icon-lane > * { flex: none; }

.brands { position: absolute; top: -3.05in; right: 0; bottom: 0; width: 1.33in; margin: 0; break-inside: avoid; }
.boxed { width: 100%; border: .8pt solid var(--heading-fill); padding: 3pt 1pt; background: var(--heading-fill); color: var(--heading-ink); font-family: "Franklin Gothic Medium",Arial,sans-serif; font-size: 10.4pt; font-weight: bold; text-transform: uppercase; text-align: center; line-height: 1.15; }
.brands .boxed { text-wrap: balance; }

.artwork-frame { display: block; position: relative; width: var(--art-width); height: var(--art-height); margin: 0; overflow: visible; }
.artwork-frame img { display: block; position: absolute; top: calc(-1 * var(--trim-top)); left: 0; width: 100%; height: var(--image-height); max-height: none; object-fit: contain; }

.mct-flat img { clip-path: ellipse(33% 36% at 51% 48%); }
.continuation { display: grid; grid-template-columns: minmax(0,1fr) 1.25in; gap: 11pt; line-height: 1.2; min-height: 13.35in; }
.continuation h3:first-child { margin-top: 0; }
.side2 { break-inside: avoid; }
.mct-date { display: block; margin-top: 3pt; font-family: Calibri,Arial,sans-serif; font-size: 8.1pt; font-weight: bold; text-transform: none; }
.small-block { margin-top: 5pt; font-size: 9.5pt; }
.small-block .bar { font-size: 10pt; margin-bottom: 3pt; }
.small-block h2 { font-size: 10pt; }
.languages { font-size: 9.5pt; margin: 3pt 0 0; }
.foot { font-size: 8pt; color: #555; text-align: right; margin-top: 7pt; }
@page { size: 8.5in 14in; margin: 0; }
@media print {
  body { background: white; }
  .sheet { margin: 0; break-after: page; }
  .sheet:last-child { break-after: auto; }
  * { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

.sheet, .continuation { position: relative; }
.contacts { font-weight: 400; }
.contacts a { color: #17324d; }
.skill-group-start { box-shadow: 0 -.5pt 0 #dce4ea; }
.topic-anchor { font-weight: 700; color: #17324d; }
.experience main h3, .continuation main h3 { display: flex; align-items: baseline; gap: 5pt; color: #17324d; }
.date { margin-left: auto; flex: none; color: #526170; font-weight: 400; }
.experience::after, .continuation::after { content: ""; position: absolute; width: .5pt; background: #dce4ea; bottom: 0; pointer-events: none; }
.experience::after { top: -3.05in; right: calc(1.33in + 4.5pt); }
.continuation::after { top: 0; right: calc(1.25in + 5.5pt); }

img[alt="Allscripts"] { clip-path: inset(0 3.3% 0 0); }
/* Web packaging: reuse the approved vector artwork with the original frames. */
.expertise { container-type: inline-size; }
.expertise-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(2,minmax(0,1fr)); width: 87.368421%; aspect-ratio: 1; gap: 4.819277%; margin: 0 auto; padding: 0; list-style: none; font-size: 7.526316cqi; font-weight: 700; line-height: 1.12; color: #111; }
.expertise-grid li { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2cqi; min-width: 0; margin: 0; padding: 1px; border: 1px solid #808080; border-radius: 3cqi; background: #fafafa; }
.expertise-glyph { display: grid; place-items: center; flex: none; width: 1.25em; height: 1em; font: 400 15cqi/1 "Segoe UI Symbol","DejaVu Sans",sans-serif; }
.expertise-cloud { color: #0078d4; }
.expertise-ai { color: #765aa6; }
.expertise-terminal { color: #2d5da8; font-family: Consolas,"Liberation Mono",monospace; font-size: 12.5cqi; font-weight: 700; letter-spacing: -.1em; }
.expertise-security { color: #008575; font-family: "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif; }
.artwork-frame .brand-svg { display: block; position: absolute; top: calc(var(--image-height) / 2 - var(--trim-top)); left: 50%; width: min(calc(100% * var(--canvas-width)),calc(var(--image-height) * var(--canvas-limit))); height: auto; max-height: none; aspect-ratio: var(--canvas-ratio); transform: translate(-50%,-50%); pointer-events: none; }
.canvas-square { --canvas-ratio: 1; }
.canvas-portrait { --canvas-ratio: .8; }
.canvas-wide { --canvas-ratio: 4; }
.mct-flat .brand-svg { clip-path: ellipse(33% 36% at 51% 48%); }
.contacts .social-links { display: contents; }
.intro { position: relative; }
.download-links { position: absolute; top: -4px; right: 0; display: flex; gap: 6px; }
.download-links a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 5px; text-decoration: none; }
.download-links svg { display: block; width: 38px; height: 38px; }
.download-links a:hover { background: #eaf0f5; }
a:focus-visible { outline: 2px solid #0078d4; outline-offset: 3px; }
@media screen and (max-width: 860px) {
  body { font-size: 15px; line-height: 1.4; }
  .download-links { position: static; float: right; margin: 0 0 8px 8px; }
  .sheet { width: calc(100% - 24px); height: auto; margin: 12px auto; padding: 20px; }
  h1 { font-size: 22px; }
  h2, .expertise h2 { font-size: 15px; }
  .headline { font-size: 15px; line-height: 1.35; }
  .summary { font-size: 16px; line-height: 1.45; }
  .contacts { display: grid; grid-template-columns: 1fr; clear: both; font-size: 14px; gap: 6px; padding-top: 8px; }
  .contacts .social-links { display: flex; gap: 8px; }
  .contacts > span { white-space: normal; overflow-wrap: anywhere; }
  .profile-link { width: 44px; height: 44px; }
  .profile-link svg { width: 21px; height: 21px; }
  .expertise { float: none; width: min(100%, 320px); margin: 20px auto; }
  .label { width: 100%; padding: 3px; }
  .competencies { grid-template-columns: 1fr 1fr; font-size: 14px; gap: 6px 10px; margin-bottom: 18px; }
  .technical { font-size: 15px; line-height: 1.45; }
  .technical p { margin: 0 0 9px; }
  .technical b { display: block; min-width: 0; }
  .skill-group-start { padding-top: 8px; }
  .experience, .continuation { display: block; min-height: 0; }
  .experience main, .continuation main { font-size: 15px; line-height: 1.45; }
  .experience main h3, .continuation main h3 { flex-wrap: wrap; font-size: 17px; line-height: 1.3; margin-top: 22px; }
  .date { width: 100%; margin-left: 0; font-size: 14px; }
  .experience main li, .continuation li { margin-bottom: 7px; }
  .experience::after, .continuation::after { display: none; }
  .brands, .side2 { position: static; width: 100%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); justify-items: center; align-items: center; gap: 28px 12px; margin: 28px 0 8px; }
  .icon-lane .boxed { grid-column: 1 / -1; }
  .icon-lane .artwork-frame { max-width: 100%; }
  .small-block, .languages { font-size: 14px; }
  .small-block { margin-top: 20px; }
  .small-block h2 { font-size: 14px; }
}
@media print {
  .download-links { display: none; }
  .sheet.last-page { break-after: auto; }
}