:root { color-scheme: light; --bg: #fafafa; --surface: rgba(255, 255, 255, .86); --text: #18181b; --muted: #52525b; --line: rgba(113, 113, 122, .28); --accent: #0891b2; --focus: #0e7490; }
:root.dark { color-scheme: dark; --bg: #09090b; --surface: rgba(255, 255, 255, .05); --text: #f4f4f5; --muted: #a1a1aa; --line: rgba(255, 255, 255, .1); --accent: #22d3ee; --focus: #67d5dc; }
* { box-sizing: border-box; }
html { scroll-padding-top: 24px; scrollbar-gutter: stable; }
body { margin: 0; isolation: isolate; background: var(--bg); color: var(--text); font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif; font-size: 15px; line-height: 1.7; letter-spacing: 0; }
body::before { content: ""; position: fixed; inset: -6rem 0 auto; height: 18rem; background: linear-gradient(90deg, rgba(6, 182, 212, .35), rgba(217, 70, 239, .2), rgba(99, 102, 241, .35)) center / min(42rem, 100%) 100% no-repeat; filter: blur(56px); opacity: .6; pointer-events: none; z-index: -1; }
a { color: var(--accent); text-underline-offset: 4px; }
a:hover { text-decoration: underline; }
button { font: inherit; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.skip-link { position: absolute; left: 16px; top: -80px; padding: 10px; background: var(--bg); z-index: 2; }
.skip-link:focus { top: 10px; }
.document-shell { max-width: 980px; margin: auto; padding: 24px; }
.resume-nav { padding: 14px 16px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); backdrop-filter: blur(10px); }
.resume-nav .brand { font-size: 16px; font-weight: 700; }
.resume-nav nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.header-button { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 8px 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--text); font-size: .86rem; font-weight: 600; line-height: 1.5; text-decoration: none; cursor: pointer; transition: transform .2s ease; }
.header-button:hover { transform: translateY(-1px); text-decoration: none; }
.icon-button { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--text); cursor: pointer; transition: transform .2s ease, border-color .2s ease; }
.icon-button:hover { border-color: var(--accent); transform: translateY(-1px); }
.download-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 8px 13px; border: 1px solid transparent; border-radius: 12px; background: linear-gradient(90deg, #22d3ee, #6366f1); color: #09090b; text-decoration: none; font-size: 13px; font-weight: 600; transition: transform .2s ease; }
.download-button:hover { transform: translateY(-1px); text-decoration: none; }
.resume-shell { margin: 16px 0 0; padding: 24px 22px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); }
.resume-identity { padding-bottom: 28px; }
h1 { font-size: 36px; line-height: 1.2; margin: 0 0 12px; font-weight: 700; }
.professional-title { font-size: 18px; font-weight: 550; margin: 0; }
.contact-links { display: flex; flex-wrap: wrap; gap: 6px 20px; list-style: none; padding: 0; margin: 14px 0 20px; color: var(--muted); font-size: 13px; }
.contact-links a { color: inherit; text-decoration: none; }
.contact-links a:hover { text-decoration: underline; }
.profile-summary { max-width: 760px; margin: 0; font-size: 16px; }
.outcome-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.outcome-strip strong { display: block; font-size: 22px; font-weight: 650; }
.outcome-strip span { display: block; font-size: 12px; color: var(--muted); margin-top: 3px; }
.resume-section { padding: 28px 0; border-bottom: 1px solid var(--line); }
.resume-section h2 { font-size: 19px; font-weight: 650; margin: 0 0 20px; line-height: 1.3; }
.experience-entry + .experience-entry { margin-top: 28px; }
.entry-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 24px; flex-wrap: wrap; }
h3 { font-size: 16px; font-weight: 650; line-height: 1.4; margin: 0; }
.dates { color: var(--muted); font-size: 13px; }
.role-title { margin: 4px 0 10px; font-size: 14px; font-weight: 550; }
.role-history { font-size: 13px; margin: 10px 0; }
.role-history div { display: flex; justify-content: space-between; gap: 8px 24px; flex-wrap: wrap; }
.role-history dt { font-weight: 550; }
.role-history dd { margin: 0; color: var(--muted); }
.tenure-note, .section-note { color: var(--muted); font-size: 12px; margin: 12px 0; }
.resume-section ul { list-style: disc; padding-left: 20px; margin: 10px 0 0; }
.resume-section li { padding-left: 3px; margin: 8px 0; }
.section-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.section-heading h2 { margin-bottom: 0; }
.section-heading > a { font-size: 13px; }
.project-entry { margin-top: 20px; }
.project-entry p { margin: 6px 0 0; }
.skill-list { margin: 0; }
.skill-list > div { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 16px; margin: 12px 0; }
.skill-list dt { font-weight: 600; font-size: 13px; }
.skill-list dd { margin: 0; font-size: 14px; }
.resume-section .education-list { margin-top: 0; }
.resume-footer { padding: 16px 0 0; display: flex; align-items: center; justify-content: center; gap: 8px 16px; flex-wrap: wrap; color: var(--muted); font-size: 12px; text-align: center; }
.resume-footer a { color: inherit; }
.cover-letter-body { border-top: 1px solid var(--line); padding-top: 24px; font-size: 16px; }
.cover-letter-body p { margin: 12px 0; }
.cover-letter-body ul { padding-left: 20px; margin: 12px 0; }
.cover-letter-body li { margin: 8px 0; padding-left: 3px; }
.cover-letter-body .signature { margin-top: 24px; font-weight: 600; }
.research-heading h1 { margin-top: 16px; }
.research-heading > p { max-width: 760px; font-size: 16px; }
.back-link { font-size: 13px; }
.project-nav { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 13px; padding: 16px 0 24px; }
.research-focus { margin: 0 0 8px; color: var(--muted); font-size: 12px; }
.research-status { color: var(--muted); font-size: 13px; }
.research-section > p:not(.research-focus):not(.claim-boundary) { margin: 12px 0; }
.research-section > h3 { margin-top: 24px; }
.claim-boundary { border-left: 2px solid var(--line); padding-left: 16px; margin: 20px 0 0; color: var(--muted); font-size: 13px; }
.benchmark-list { margin-top: 16px; }
.benchmark-list article { padding: 16px 0; border-bottom: 1px solid var(--line); }
.benchmark-list article:last-child { border-bottom: 0; }
h4 { font-size: 14px; margin: 0; }
.benchmark-result { font-size: 18px; font-weight: 600; margin: 4px 0; }
.benchmark-list p:last-child { margin: 4px 0; font-size: 13px; color: var(--muted); }
.print-document .print-page + .print-page { margin-top: 24px; }
@media (max-width: 640px) {
  .document-shell { padding: 16px; }
  .resume-nav { padding: 14px 16px; align-items: flex-start; flex-direction: column; }
  .resume-nav nav { width: 100%; gap: 10px; }
  .resume-shell { padding: 24px 18px; }
  h1 { font-size: 29px; }
  .professional-title { font-size: 16px; }
  .outcome-strip { gap: 16px; }
  .outcome-strip strong { font-size: 18px; }
  .outcome-strip span { font-size: 11px; }
  .skill-list > div { grid-template-columns: 1fr; gap: 3px; }
  .resume-footer { padding: 16px 0 0; }
}
@media (max-width: 380px) {
  .outcome-strip { grid-template-columns: 1fr; gap: 12px; }
  .outcome-strip > div { display: grid; grid-template-columns: 132px 1fr; gap: 8px; align-items: center; }
}
@page { size: Letter; margin: 0.45in 0.55in; }
@media print {
  html { scrollbar-gutter: auto; }
  :root, :root.dark { color-scheme: light; --bg: #fff; --text: #111; --muted: #444; --line: #bbb; --accent: #111; }
  body { background-image: none; font-family: Arial, Helvetica, sans-serif; font-size: 9.5pt; line-height: 1.28; }
  body::before { display: none; }
  .resume-nav, .resume-footer, .skip-link, .outcome-strip, .section-heading > a, .research-heading .back-link, .project-nav { display: none !important; }
  .document-shell { max-width: none; padding: 0; }
  .resume-shell { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
  h1 { font-size: 23pt; margin: 0 0 4pt; }
  .professional-title { font-size: 11pt; }
  .resume-identity { padding-bottom: 8pt; }
  .contact-links { font-size: 8.5pt; gap: 4pt 10pt; margin: 6pt 0; }
  .profile-summary { font-size: 9.5pt; max-width: none; }
  .resume-section { padding: 6pt 0; }
  .resume-section h2 { font-size: 11pt; margin-bottom: 6pt; }
  h3 { font-size: 10pt; }
  .dates, .role-history { font-size: 8.5pt; }
  .role-history { margin: 5pt 0; }
  .role-title { font-size: 9pt; margin: 3pt 0; }
  .tenure-note, .section-note { font-size: 8pt; margin: 5pt 0; }
  .resume-section ul { padding-left: 13pt; margin-top: 4pt; }
  .cover-letter-body { padding-top: 8pt; font-size: 9.5pt; }
  .cover-letter-body p, .cover-letter-body ul { margin: 6pt 0; }
  .cover-letter-body li { margin: 4pt 0; }
  .research-heading h1 { margin-top: 0; }
  .research-heading > p { font-size: 9.5pt; margin: 6pt 0 8pt; }
  .research-focus { font-size: 8pt; margin: 0 0 4pt; }
  .research-section > p:not(.research-focus):not(.claim-boundary) { margin: 5pt 0; }
  .research-section > h3 { margin-top: 6pt; }
  .claim-boundary { font-size: 8pt; margin: 8pt 0; padding-left: 8pt; }
  .benchmark-list { margin-top: 6pt; }
  .benchmark-list article { padding: 6pt 0; break-inside: avoid; }
  .benchmark-result { font-size: 11pt; margin: 3pt 0; }
  .benchmark-list p:last-child { font-size: 8pt; margin-top: 3pt; }
  .resume-section li { margin: 4pt 0; padding-left: 1pt; }
  .experience-entry + .experience-entry { margin-top: 8pt; }
  .experience-entry, .project-entry { break-inside: avoid; }
  .project-entry { margin-top: 7pt; }
  .project-entry p { margin-top: 3pt; }
  .skill-list > div { grid-template-columns: 85pt 1fr; gap: 8pt; margin: 5pt 0; }
  .skill-list dt, .skill-list dd { font-size: 9pt; }
  a { color: #111; text-decoration: none; }
  .print-document .print-page + .print-page { break-before: page; margin-top: 0; }
  h2, h3, h4 { break-after: avoid; }
}
