:root { --bg:#f8f8f5; --ink:#101820; --muted:#58616e; --blue:#1452d6; --line:#dce0e3; --surface:#eef1f6; font:16px/1.65 "Helvetica Neue",Arial,sans-serif; color:var(--ink); background:var(--bg); scroll-behavior:smooth; scroll-padding-top:120px; scrollbar-gutter:stable; }
* { box-sizing:border-box; }
body { margin:0; }
[hidden] { display:none !important; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
a,button { -webkit-tap-highlight-color:transparent; }
:is(a,button):focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
::selection { background:#dce7ff; }
p,h1,h2,h3,figure { margin:0; }
.resume-wrap { width:min(1280px,calc(100% - 96px)); margin-inline:auto; }
.skip-link { position:fixed; z-index:100; left:16px; top:12px; padding:12px 20px; background:var(--blue); color:white; transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.resume-toolbar { position:sticky; top:0; z-index:10; background:var(--bg); border-bottom:1px solid var(--line); }
@supports (backdrop-filter:blur(16px)) { .resume-toolbar { background:#f8f8f5ed; backdrop-filter:blur(16px); } }
.resume-toolbar nav { min-height:96px; display:flex; align-items:center; gap:28px; }
.wordmark { font-size:2.2rem; font-weight:700; letter-spacing:-.09em; line-height:1; }
.wordmark span { color:var(--blue); }
.back-link { padding:10px 0; color:var(--muted); }
.back-link:hover { color:var(--blue); }
.resume-tools { display:flex; flex-wrap:wrap; gap:16px; align-items:center; margin-left:auto; }
.language-switch { display:flex; padding:3px; border:1px solid var(--line); border-radius:30px; }
.language-switch a { min-width:44px; min-height:44px; display:grid; place-items:center; font-size:.875rem; font-weight:600; border-radius:28px; }
.language-switch a[aria-current="page"] { background:#dce7ff; color:var(--blue); }
.print-button { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:52px; padding:12px 22px; color:white; background:var(--blue); border:0; border-radius:32px; }
.print-button:hover { background:#103fa5; }
.resume-hero { display:grid; grid-template-columns:minmax(0,1fr) 260px; gap:64px; align-items:center; padding-block:64px 56px; border-bottom:1px solid var(--line); }
.eyebrow { font:400 .8rem/1.5 "SFMono-Regular",Consolas,monospace; color:var(--blue); text-transform:uppercase; letter-spacing:.09em; }
.resume-name { font-size:clamp(3rem,6vw,6rem); font-weight:600; letter-spacing:-.065em; line-height:1.05; margin-block:20px; }
.resume-name > span { color:var(--blue); }
.subtitle { font-size:clamp(1.15rem,2vw,1.7rem); line-height:1.3; letter-spacing:-.025em; }
.location { color:var(--muted); margin-top:12px; }
.contact { display:flex; flex-wrap:wrap; gap:10px 24px; margin-top:24px; font-size:.9rem; }
.contact a { min-height:44px; display:inline-flex; align-items:center; text-decoration:underline; text-underline-offset:6px; text-decoration-color:#a9b8d8; overflow-wrap:anywhere; }
.contact a:hover { color:var(--blue); }
.resume-portrait { margin:0; width:100%; mix-blend-mode:multiply; }
.resume-portrait img { display:block; width:100%; height:auto; }
.resume-layout { display:grid; grid-template-columns:220px minmax(0,1fr); gap:clamp(40px,7vw,112px); padding-block:48px 80px; }
.resume-sidebar { align-self:start; position:sticky; top:128px; }
.resume-index { display:grid; gap:6px; margin-top:18px; }
.resume-index a { display:flex; gap:16px; align-items:baseline; min-height:44px; padding:10px 12px; border-radius:8px; color:var(--muted); font-size:.9rem; line-height:1.4; }
.resume-index a span { font-size:.75rem; font-family:monospace; }
.resume-index a:hover { color:var(--blue); background:var(--surface); }
.resume-index a[aria-current="location"] { color:var(--blue); background:#e2eaff; }
.resume-progress { height:2px; background:var(--line); margin-block:28px 20px; }
.resume-progress span { display:block; height:100%; background:var(--blue); transform:scaleX(0); transform-origin:left; }
.print-note { color:var(--muted); font-size:.8rem; max-width:24ch; }
.resume-motion { display:block; min-height:44px; margin-top:18px; padding:8px 14px; border:1px solid var(--line); background:transparent; border-radius:24px; color:var(--muted); font-size:.8rem; }
.resume-motion[aria-pressed="true"] { background:#dce7ff; color:var(--blue); }
.resume-document { min-width:0; container-type:inline-size; }
.resume-summary { font-size:1.2rem; line-height:1.65; letter-spacing:-.015em; max-width:70ch; padding-bottom:40px; }
.resume-section { padding-block:36px; border-top:1px solid var(--line); }
.resume-section-heading { display:flex; align-items:baseline; gap:18px; margin-bottom:28px; }
.resume-section-heading > span { color:var(--blue); font:.8rem/1.5 monospace; }
h2 { font-size:clamp(1.8rem,3vw,2.6rem); line-height:1.15; font-weight:500; letter-spacing:-.045em; text-wrap:balance; }
h3 { font-size:1.25rem; line-height:1.35; letter-spacing:-.025em; font-weight:600; }
.resume-entry { padding:0 0 28px 24px; border-left:1px solid #b4c5eb; position:relative; }
.resume-entry::before { content:""; position:absolute; width:9px; height:9px; border-radius:50%; background:var(--blue); left:-5px; top:8px; }
.resume-entry:last-child { padding-bottom:0; }
.current-badge { display:inline-block; color:var(--blue); background:#e2eaff; padding:4px 10px; border-radius:20px; font-size:.75rem; margin-bottom:12px; }
.meta { color:var(--muted); font-size:.875rem; margin-top:10px; }
ul { margin:20px 0 0; padding-left:20px; color:#3f4a59; }
li { padding-left:4px; margin-top:10px; }
li::marker { color:var(--blue); }
#work .resume-entry { border:1px solid var(--line); padding:24px; border-radius:16px; background:var(--surface); }
#work .resume-entry + .resume-entry { margin-top:16px; }
#work .resume-entry::before { display:none; }
#work .resume-entry p { margin-top:16px; color:var(--muted); }
.resume-project-link + .resume-project-link { margin-left:18px; }
.resume-project-link { display:inline-block; padding-block:10px; margin-top:16px; color:var(--blue); text-decoration:underline; text-underline-offset:6px; }
.resume-skill-group { border-bottom:1px solid var(--line); padding:20px 0; color:var(--muted); }
.resume-skill-group strong { display:block; color:var(--ink); margin-bottom:6px; font-weight:500; }
.skills-context { margin-top:20px; padding:18px 20px; border-left:3px solid var(--blue); background:var(--surface); color:var(--muted); font-size:.85rem; }
#leadership .resume-entry > p:not(.meta) { margin-top:16px; color:var(--muted); }
#education > p { padding-block:16px; color:var(--muted); }
#education strong { display:block; color:var(--ink); font-size:1.1rem; font-weight:500; }
#languages > p { color:var(--muted); }
.resume-footer { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; padding-block:28px; border-top:1px solid var(--line); color:var(--muted); font-size:.85rem; }
.resume-footer a { padding-block:10px; color:var(--blue); }
@container (min-width:720px) { #work { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; } #work .resume-section-heading { grid-column:1 / -1; margin-bottom:8px; } #work .resume-entry + .resume-entry { margin-top:0; } }
@media (prefers-reduced-motion:no-preference) {
  .resume-hero .subtitle,.resume-hero .contact { animation:resume-arrive .8s .15s cubic-bezier(.22,1,.36,1) both; }
  @supports (animation-timeline:scroll()) { .resume-progress span { animation:resume-reading linear both; animation-timeline:scroll(root block); } }
  @supports (animation-timeline:view()) { .resume-section-heading { animation:resume-arrive linear both; animation-timeline:view(); animation-range:entry 0% entry 100%; } }
}
@keyframes resume-arrive { from { opacity:.35; transform:translateY(32px); } to { opacity:1; transform:translateY(0); } }
@keyframes resume-reading { to { transform:scaleX(1); } }
@media (max-width:1000px) { .resume-wrap { width:calc(100% - 64px); } .resume-hero { grid-template-columns:minmax(0,1fr) 180px; gap:32px; } .resume-layout { grid-template-columns:180px minmax(0,1fr); gap:32px; } }
@media (max-width:760px) {
  :root { scroll-padding-top:100px; }
  .resume-wrap { width:calc(100% - 40px); }
  .resume-toolbar nav { min-height:80px; gap:16px; flex-wrap:wrap; padding-block:12px; }
  .back-link { font-size:.85rem; }
  .resume-tools { gap:8px; }
  .print-button { min-height:44px; padding:10px 14px; font-size:.85rem; gap:12px; }
  .resume-hero { grid-template-columns:1fr; padding-block:40px 32px; gap:24px; }
  .resume-name { font-size:clamp(2.7rem,11vw,4.6rem); }
  .resume-portrait { width:140px; grid-row:1; }
  .contact { gap:4px 20px; margin-top:16px; }
  .resume-layout { grid-template-columns:1fr; gap:28px; padding-block:28px 48px; }
  .resume-sidebar { position:static; }
  .resume-index { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
  .resume-index a { border:1px solid var(--line); border-radius:24px; font-size:.85rem; gap:8px; padding-inline:14px; }
  .resume-progress { margin-block:20px; }
  .print-note { max-width:none; }
  .resume-summary { font-size:1.1rem; padding-bottom:28px; }
  .resume-section { padding-block:28px; }
  .resume-section-heading { margin-bottom:24px; gap:12px; }
  .resume-entry { padding-left:18px; }
  #work .resume-entry { padding:20px; }
}
@media (max-width:400px) { .resume-tools { flex-basis:100%; justify-content:space-between; } .resume-toolbar nav { gap:4px 20px; } :root { scroll-padding-top:150px; } }
@media (prefers-reduced-motion:reduce) { :root { scroll-behavior:auto; } *,*::before,*::after { animation:none !important; transition:none !important; } }
html[data-motion="off"] { scroll-behavior:auto; }
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after { animation:none !important; transition:none !important; }
@media print {
  @page { size:A4; margin:16mm; }
  :root { font-size:10pt; background:white; color:#111; }
  body { background:white; }
  *,*::before,*::after { animation:none !important; transition:none !important; transform:none !important; }
  .resume-wrap { width:100%; max-width:none; }
  .resume-toolbar,.skip-link,.resume-sidebar,.resume-footer,.resume-portrait,.resume-project-link,.current-badge { display:none !important; }
  .resume-hero { display:block; padding:0 0 14pt; }
  .resume-hero .eyebrow { display:none; }
  .resume-name { font-size:26pt; margin:0 0 8pt; }
  .subtitle { font-size:13pt; }
  .location { margin-top:4pt; }
  .contact { margin-top:8pt; gap:4pt 16pt; font-size:9pt; }
  .contact a { min-height:0; }
  .resume-layout { display:block; padding:14pt 0 0; }
  .resume-document { container-type:normal; }
  .resume-summary { font-size:10pt; padding-bottom:12pt; }
  .resume-section { padding-block:12pt; }
  .resume-section-heading { margin-bottom:10pt; gap:10pt; break-after:avoid; }
  h2 { font-size:14pt; }
  h3 { font-size:11pt; break-after:avoid; }
  .meta { font-size:9pt; margin-top:5pt; }
  .resume-entry { break-inside:avoid; padding:0 0 12pt; border:0; }
  .resume-entry::before { display:none; }
  ul { margin-top:7pt; } li { margin-top:4pt; }
  #work { display:block; }
  #work .resume-entry { padding:0; border:0; background:white; }
  #work .resume-entry + .resume-entry { margin-top:10pt; }
  #work .resume-entry p { margin-top:6pt; }
  .resume-skill-group,#education > p { padding-block:6pt; }
  .skills-context { font-size:9pt; padding:8pt 10pt; }
  a { color:inherit; text-decoration:none; }
  p,ul { orphans:3; widows:3; }
}
