.resume-shell{--resume-ink:#121318;--resume-muted:#545965;--resume-blue:#2947cf;--resume-blue-bright:#3658ff;--resume-paper:#fbfaf7;--resume-rule:#d9dbe2;min-height:100vh;color:var(--resume-ink);background:#d9d7d1;padding:40px 20px 80px}.resume-toolbar{width:min(210mm,100%);font:650 12px var(--font-geist-sans), sans-serif;justify-content:space-between;margin:0 auto 18px;display:flex}.resume-toolbar a,.resume-toolbar button{background:var(--resume-ink);color:#fff;cursor:pointer;border:0;border-radius:2px;align-items:center;min-height:42px;padding:0 17px;display:inline-flex}.resume-page{background:linear-gradient(90deg, var(--resume-blue-bright) 0 2.2mm, transparent 2.2mm), var(--resume-paper);width:210mm;min-height:297mm;margin:auto;padding:13mm 14mm 9mm;position:relative;overflow:hidden;box-shadow:0 20px 80px #1213182e}.resume-page:after{content:"";pointer-events:none;border:1px solid #3658ff1f;border-radius:50%;width:90mm;height:90mm;position:absolute;bottom:-48mm;right:-35mm;box-shadow:0 0 0 12mm #3658ff06,0 0 0 28mm #3658ff05}.resume-header{border-bottom:1.5px solid var(--resume-ink);grid-template-columns:minmax(0,1fr) 50mm;gap:5mm 12mm;padding-bottom:5mm;display:grid}.resume-kicker{color:var(--resume-blue);font:750 7.5px var(--font-geist-mono), monospace;letter-spacing:.14em;text-transform:uppercase;margin:0 0 3.5mm}.resume-header h1{letter-spacing:-.06em;margin:0;font-size:34px;font-weight:690;line-height:.94}.resume-header h1 span{color:var(--resume-blue)}.resume-header .summary{max-width:125mm;color:var(--resume-muted);margin:4mm 0 0;font-size:9.2px;line-height:1.58}.resume-header address{font:normal 7.5px/1.4 var(--font-geist-mono), monospace;text-align:right;flex-direction:column;align-self:end;gap:2.1mm;display:flex}.resume-header address a{color:var(--resume-blue);text-decoration:none}.resume-signals{border:1px solid var(--resume-rule);grid-column:1/-1;grid-template-columns:repeat(4,1fr);margin-top:1mm;display:grid}.resume-signals div{border-right:1px solid var(--resume-rule);align-items:center;gap:2.5mm;min-height:9.5mm;padding:1.5mm 3mm;display:flex}.resume-signals div:last-child{border-right:0}.resume-signals strong{color:var(--resume-blue);letter-spacing:-.04em;font-size:14px}.resume-signals span{color:var(--resume-muted);font:6.3px/1.25 var(--font-geist-mono), monospace;text-transform:uppercase}.resume-grid{grid-template-columns:49mm minmax(0,1fr);gap:9mm;padding-top:6.5mm;display:grid}.resume-page section{margin-bottom:6.4mm}.resume-page h2{color:var(--resume-blue);font:750 7.7px var(--font-geist-mono), monospace;letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:2mm;margin:0 0 3.8mm;display:flex}.resume-page h2>span{background:var(--resume-blue);color:#fff;letter-spacing:0;place-items:center;width:5mm;height:5mm;font-size:5.5px;display:inline-grid}.resume-page h3,.resume-page p{margin:0}.resume-sidebar{border-right:1px solid var(--resume-rule);padding-right:7mm}.skill-list{gap:3.7mm;display:grid}.skill-group h3{margin-bottom:1mm;font-size:8.8px}.skill-group p,.language-section p{color:var(--resume-muted);font-size:8px;line-height:1.55}.compact-item{gap:1mm;margin-bottom:3.6mm;display:grid}.compact-item b{font-size:8.2px;line-height:1.32}.compact-item span,.compact-item small{color:var(--resume-muted);font-size:7.2px;line-height:1.35}.compact-item small{font-family:var(--font-geist-mono), monospace}.language-section p+p{margin-top:1.6mm}.language-section b{color:var(--resume-ink)}.role-heading{justify-content:space-between;gap:7mm;margin-bottom:3mm;display:flex}.role-heading h3{letter-spacing:-.025em;font-size:12.5px}.role-heading p{color:var(--resume-muted);margin-top:1mm;font-size:8.2px}.role-heading>span{color:var(--resume-muted);font:6.8px/1.5 var(--font-geist-mono), monospace;text-align:right;flex:0 0 30mm}.resume-role ul{color:#424650;margin:0;padding-left:3.6mm;font-size:7.9px;line-height:1.48}.resume-role li{margin-bottom:1.5mm;padding-left:.5mm}.resume-role li::marker{color:var(--resume-blue)}.section-heading{justify-content:space-between;align-items:center;gap:4mm;display:flex}.section-heading>a{color:var(--resume-blue);font:6.4px var(--font-geist-mono), monospace;margin-bottom:3.2mm}.project-list{border-top:1px solid var(--resume-rule)}.resume-project{border-bottom:1px solid var(--resume-rule);break-inside:avoid;padding:3.3mm 0 3.1mm}.resume-project-heading,.resume-project-heading>div,.project-links{align-items:baseline;display:flex}.resume-project-heading{justify-content:space-between;gap:4mm}.resume-project-heading>div:first-child{gap:2mm;min-width:0}.resume-project-heading h3{flex:none;font-size:9.5px}.resume-project-heading span{color:var(--resume-muted);font:6.5px var(--font-geist-mono), monospace;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-links{flex:none;gap:2.5mm}.project-links a{color:var(--resume-blue);font:6.5px var(--font-geist-mono), monospace}.resume-project p{color:#484c56;margin:1.5mm 0;font-size:7.5px;line-height:1.45}.resume-project small{color:#656a75;font:6.1px/1.4 var(--font-geist-mono), monospace;display:block}.resume-footer{z-index:1;border-top:1px solid var(--resume-rule);color:#6a6e77;font:5.8px var(--font-geist-mono), monospace;text-transform:uppercase;background:0 0;justify-content:space-between;gap:5mm;padding:2mm 0 0;display:flex;position:absolute;bottom:5mm;left:14mm;right:14mm}@media screen and (max-width:840px){.resume-shell{padding:14px 10px 48px}.resume-toolbar{margin-bottom:12px}.resume-page{background:var(--resume-paper);width:100%;min-height:0;padding:32px 24px 26px}.resume-page:after{display:none}.resume-header{grid-template-columns:1fr;gap:22px}.resume-header h1{font-size:clamp(32px,10vw,44px)}.resume-header address{text-align:left;align-self:start;gap:0}.resume-header address a,.resume-header address span{align-items:center;min-height:28px;display:flex}.resume-signals{grid-template-columns:repeat(2,1fr)}.resume-signals div:nth-child(2){border-right:0}.resume-signals div:nth-child(-n+2){border-bottom:1px solid var(--resume-rule)}.resume-grid{grid-template-columns:1fr;gap:10px}.resume-sidebar{border-right:0;border-bottom:1px solid var(--resume-rule);padding:0}.resume-page section{margin-bottom:28px}.skill-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.skill-group p,.language-section p,.resume-role ul,.resume-project p{font-size:9px}.resume-footer{margin-top:12px;position:static}}@media screen and (max-width:520px){.resume-page{padding:28px 18px 24px}.resume-signals{grid-template-columns:1fr}.resume-signals div{border-right:0;border-bottom:1px solid var(--resume-rule)}.resume-signals div:last-child{border-bottom:0}.skill-list{grid-template-columns:1fr}.role-heading{gap:8px;display:grid}.role-heading>span{text-align:left}.resume-project-heading{align-items:flex-start}.resume-project-heading>div:first-child{gap:4px;display:grid}.resume-project-heading span{white-space:normal}.resume-footer{display:grid}}@media print{@page{size:A4;margin:0}html,body{background:#fff!important}.resume-shell{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;min-height:0;padding:0}.resume-toolbar{display:none}.resume-page{width:210mm;min-height:297mm;box-shadow:none;break-after:page;margin:0}}
