.resume{--rail:160px;--gutter:var(--space-5)}.resume-doc{max-width:900px;margin-inline:auto}.resume-head{gap:var(--space-6);grid-template-columns:1fr auto;align-items:start;display:grid}.resume-kicker{font-family:var(--font-label);letter-spacing:.2em;text-transform:uppercase;color:var(--fg-muted);margin-bottom:var(--space-3);font-size:11px;font-weight:600;display:block}.resume .resume-name{font-family:var(--font-display);letter-spacing:var(--tracking-display);margin:0;font-size:clamp(2.5rem,5vw,3.5rem);line-height:1.05}.resume-title{font-family:var(--font-mono);letter-spacing:.06em;color:var(--accent);margin:var(--space-4) 0 0;font-size:13px}.resume-portrait{border-radius:var(--radius-pill);object-fit:cover;border:1px solid var(--border);width:104px;height:104px}.resume-summary{font-family:var(--font-bodyserif);font-size:var(--text-lg);color:var(--fg-secondary);margin:var(--space-6) 0 0;max-width:62ch;line-height:1.6}.resume-contact{margin:var(--space-5) 0 0;font-family:var(--font-mono);letter-spacing:.02em;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:0;font-size:12.5px;list-style:none;display:flex}.resume-contact a{color:var(--fg);border-bottom:1px solid var(--accent);padding-bottom:1px;text-decoration:none}.resume-contact a:hover{color:var(--accent)}.resume-actions{gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.resume-hint{font-family:var(--font-mono);letter-spacing:.06em;color:var(--fg-muted);margin:var(--space-3) 0 0;font-size:11px}.resume .resume-section-title{align-items:center;gap:var(--space-4);font-family:var(--font-label);letter-spacing:.2em;text-transform:uppercase;color:var(--fg-muted);margin:0 0 var(--space-5);font-size:11px;font-weight:600;line-height:1;display:flex}.resume .resume-section-title:after{content:"";background:var(--border);flex:1;height:1px}.resume-row{grid-template-columns:var(--rail) 1fr;gap:var(--gutter);padding-block:var(--space-5);border-top:1px solid var(--border-subtle);break-inside:avoid;display:grid}.resume-row:first-of-type{border-top-color:var(--border)}.resume-rail{flex-direction:column;gap:4px;padding-top:5px;display:flex}.resume-period{font-family:var(--font-mono);letter-spacing:.02em;color:var(--accent);font-size:12.5px}.resume-location{font-family:var(--font-mono);letter-spacing:.02em;color:var(--fg-muted);font-size:11.5px}.resume .resume-role-company{font-family:var(--font-headline);margin:0;font-size:21px;line-height:1.2}.resume-role-title{font-family:var(--font-bodyserif);color:var(--fg-secondary);margin:3px 0 0;font-size:16px;font-style:italic}.resume-bullets{margin:var(--space-4) 0 0;padding:0;list-style:none}.resume-bullets li{color:var(--fg-secondary);padding-left:20px;font-size:15px;line-height:1.65;position:relative}.resume-bullets li+li{margin-top:7px}.resume-bullets li:before{content:"";background:var(--accent);width:8px;height:1px;position:absolute;top:.72em;left:2px}.resume-case-link{margin-top:var(--space-4);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:11px;text-decoration:none;display:inline-block}.resume-case-link:hover{text-underline-offset:.25em;text-decoration:underline}.resume-row--compact{padding-block:var(--space-4)}.resume-row--compact .resume-role-company{font-size:17px;display:inline}.resume-row--compact .resume-role-title{margin:0;display:inline}.resume-row--compact .resume-role-title:before{content:" · ";color:var(--fg-muted);font-style:normal}.resume-note{color:var(--fg-secondary);margin:6px 0 0;font-size:14.5px;line-height:1.6}.resume-cols{gap:var(--space-5) var(--space-6);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.resume-product{break-inside:avoid;padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.resume .resume-product-name{font-family:var(--font-headline);margin:0 0 6px;font-size:18px}.resume .resume-product-name a{color:var(--fg);border-bottom:1px solid var(--accent);text-decoration:none}.resume .resume-product-name a:hover{color:var(--accent)}.resume-product-note{color:var(--fg-secondary);margin:0;font-size:14.5px;line-height:1.6}.resume-skills{grid-template-columns:var(--rail) 1fr;gap:var(--gutter);padding-block:var(--space-4);border-top:1px solid var(--border-subtle);break-inside:avoid;display:grid}.resume-skills:first-of-type{border-top-color:var(--border)}.resume-group-label{font-family:var(--font-mono);letter-spacing:.06em;color:var(--accent);margin:0;padding-top:2px;font-size:12px}.resume-group-items{color:var(--fg-secondary);margin:0;font-size:15px;line-height:1.65}@media (max-width:720px){.resume-head{gap:var(--space-4);grid-template-columns:1fr}.resume-portrait{width:72px;height:72px}.resume-row,.resume-skills{gap:var(--space-2);grid-template-columns:1fr}.resume-rail{flex-direction:row;gap:10px;padding-top:0}.resume-rail .resume-location:before{content:"· "}}@media print{@page{margin:13mm}:root,.system-doc,.resume{--fg:#14110f;--fg-secondary:#3a3531;--fg-muted:#6b625b;--border:#b9b2a8;--border-subtle:#ddd7cd}html,body,.system-doc,.resume,.resume section{background:#fff!important}.sysnav,.sysnav-topbar,.dt-shell,footer,.resume-hint,.resume-actions,.resume-case-link,.resume-noprint,[aria-label="Scroll to top"]{display:none!important}.resume{--rail:120px;padding:0!important}.resume-doc{max-width:none}.resume section{margin-bottom:16px;border:0!important;padding:0!important}.resume .resume-name{font-size:28px}.resume-portrait{display:none}.resume-summary{max-width:none;margin-top:10px;font-size:12.5px}.resume-contact{margin-top:10px;font-size:10.5px}.resume-contact a{border:0}.resume .resume-section-title{margin-bottom:10px}.resume-row{padding-block:10px}.resume .resume-role-company{font-size:15px}.resume-role-title{font-size:12.5px}.resume-bullets li,.resume-note,.resume-product-note,.resume-group-items{font-size:11px;line-height:1.45}.resume-bullets li+li{margin-top:3px}}