*{margin:0;padding:0;box-sizing:border-box}body{font-family:EB Garamond,Palatino Linotype,Palatino,Georgia,serif;color:#2a2a2a;background:#cfcfcc;font-size:12pt;line-height:1.35;font-optical-sizing:none;font-kerning:normal;font-variant-ligatures:common-ligatures;font-variant-numeric:oldstyle-nums;text-wrap:pretty;-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:auto}.page{width:210mm;height:297mm;background:#fff;box-shadow:0 6px 24px #00000040;margin:32px auto;padding:20mm 18mm;position:relative;box-sizing:border-box;overflow:hidden}#document-source{display:none}.header{text-align:center;margin-bottom:24px}.header h1{font-size:22pt;font-weight:600;color:#1a3050;letter-spacing:.06em;text-transform:uppercase;line-height:1.1;text-rendering:optimizeLegibility}.header-subtitle{font-size:11pt;font-weight:400;color:#555;letter-spacing:.04em;margin-top:2px}.header-rule{width:100%;height:1.5px;background:linear-gradient(90deg,transparent,#1a3050,transparent);margin:10px 0}.contact-row{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;font-size:10pt;color:#555;gap:4px 0}.contact-row a{color:#1a3050;text-decoration:none}.contact-row a:hover{text-decoration:underline}.contact-sep{margin:0 10px;color:silver;font-weight:300}.section{display:grid;grid-template-columns:90px 1fr;gap:0 16px;margin-bottom:18px;padding-top:14px;border-top:1px solid #e4e4e0}.section-label{font-family:EB Garamond,Georgia,serif;font-size:7pt;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#1a3050;padding-top:2px;text-align:right;border-right:2px solid #1a3050;padding-right:10px;break-after:avoid;page-break-after:avoid}.section-body{padding-top:0}.entry{margin-bottom:14px;break-inside:avoid;page-break-inside:avoid}.entry:last-child{margin-bottom:0}.entry-row{display:flex;justify-content:space-between;align-items:first baseline;gap:12px}.entry-title{font-weight:600;font-size:11.5pt;color:#1a1a1a}.entry-org{font-style:italic;color:#555;font-weight:400}.entry-sep{color:#bbb;font-weight:300;margin:0 1px}.entry-dates{font-size:9.5pt;color:#777;white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums;letter-spacing:.02em}.entry-desc{font-size:10.5pt;color:#444;margin-top:3px;line-height:1.35}.entry-desc+.entry-desc{margin-top:6px}.about-text{font-size:11pt;color:#333;line-height:1.35}.skills-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:4px 20px;font-size:10.5pt;color:#333}.skills-list li:before{content:"•";color:#1a3050;margin-right:6px;font-size:8pt;vertical-align:1px}.cert-item{margin-bottom:5px;font-size:11pt;break-inside:avoid;page-break-inside:avoid}.cert-item:last-child{margin-bottom:0}.cert-name{font-weight:600;color:#1a1a1a}.cert-meta{color:#777;font-size:9.5pt}.entry-highlights{list-style:none;margin-top:5px;padding-left:0}.entry-highlights li{font-size:10.5pt;color:#444;line-height:1.3;margin-bottom:3px;display:flex;align-items:first baseline;gap:6px}.entry-highlights li:before{content:"•";color:#1a3050;flex-shrink:0}.project-item{margin-bottom:12px;break-inside:avoid;page-break-inside:avoid}.project-item:last-child{margin-bottom:0}.project-title{font-weight:600;font-size:11pt;color:#1a1a1a}.project-tags{font-size:9pt;color:#777;margin-left:6px}.project-desc{font-size:10.5pt;color:#444;margin-top:2px;line-height:1.55}.hack-item{margin-bottom:6px;font-size:11pt;break-inside:avoid;page-break-inside:avoid}.hack-item:last-child{margin-bottom:0}.hack-title{font-weight:600;color:#1a1a1a}.hack-org{color:#555;font-style:italic}.hack-result{font-size:10pt;color:#1a3050;font-weight:600}.cert-desc{font-size:10pt;color:#555;margin-top:2px;line-height:1.5}.floating-controls{position:fixed;top:12px;right:12px;display:flex;gap:8px;z-index:1000}.floating-button{width:36px;height:36px;background:#fff;color:#1a3050;border:1px solid #ddd;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s,box-shadow .2s;text-decoration:none}.floating-button:hover{border-color:#999;box-shadow:0 2px 8px #00000014}.floating-button img,.floating-button svg{width:16px;height:16px}@media print{@page{size:A4;margin:0}.floating-controls{display:none}body{background:#fff;overflow-x:visible}p,li{orphans:3;widows:3}.page{width:210mm;height:297mm;margin:0;box-shadow:none;break-after:page;page-break-after:always}.page:last-child{break-after:auto;page-break-after:auto}.page-break-after{break-after:page;page-break-after:always}.header-rule{background:#1a3050!important}}@media (max-width: 640px){body{background:#fff;overflow-x:hidden}.page{width:100%;height:auto;min-height:100vh;margin:0;padding:28px 20px;box-shadow:none}.section{grid-template-columns:1fr;gap:6px 0}.section-label{text-align:left;border-right:none;padding-right:0;border-bottom:2px solid #1a3050;padding-bottom:2px;margin-bottom:4px}.header h1{font-size:18pt}.contact-sep{margin:0 6px}.entry-row{flex-wrap:wrap;gap:2px}.entry-dates{font-size:9pt}.skills-list{grid-template-columns:1fr 1fr}.floating-controls{top:6px;right:6px;gap:6px}.floating-button{width:32px;height:32px}.floating-button img,.floating-button svg{width:14px;height:14px}}
