@font-face{font-family:Open Sans Local;font-style:normal;font-weight:400;src:url(/assets/OpenSans-Regular-BwBYGrgP.ttf)format("truetype")}@font-face{font-family:Open Sans Local;font-style:normal;font-weight:700;src:url(/assets/OpenSans-Bold-DqBIp9kU.ttf)format("truetype")}:root{--page-width:210mm;--page-height:297mm;--paper:#fbfaf6;--ink:#17202a;--muted:#637080;--line:#d8dde3;--terminal:#111827;--terminal-soft:#1f2937;--cyan:#00a7a7;--coral:#f05d5e;--amber:#d99412;--green:#2fa866}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-font-smoothing:antialiased;background-color:#ccd2d8;background-image:linear-gradient(90deg,#ffffff0f 1px,#0000 1px),linear-gradient(#ffffff0f 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;font-family:Open Sans Local,Segoe UI,Arial,sans-serif;font-size:8.2pt;line-height:1.34}a{color:inherit;text-decoration:none}p,h1,h2,h3,ul,dl,dd,pre{margin:0}ul{padding:0;list-style:none}.resume{padding:18px 0}.sheet{width:var(--page-width);min-height:var(--page-height);background:var(--paper);break-after:page;margin:0 auto 18px;padding:10mm 11mm;overflow:hidden;box-shadow:0 18px 50px #141c2638}.sheet:last-child{break-after:auto;margin-bottom:0}.terminal{border:.45mm solid var(--terminal);background:#fff;overflow:hidden}.terminal-bar{background:var(--terminal);color:#d6dee8;align-items:center;gap:1.7mm;min-height:8mm;padding:0 3.2mm;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:6.8pt;display:flex}.dot{border-radius:50%;width:2.5mm;height:2.5mm}.dot-red{background:var(--coral)}.dot-yellow{background:#f6c343}.dot-green{background:var(--green)}.terminal-path{margin-left:1.8mm}.hero-layout{grid-template-columns:31mm minmax(0,1fr);gap:5.5mm;padding:4.8mm 5mm 5.5mm;display:grid}.portrait{object-fit:cover;border:.45mm solid var(--terminal);filter:grayscale(12%)contrast(1.05);width:31mm;height:36mm}.prompt{color:var(--cyan);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:7.1pt;font-weight:700}.prompt span{color:var(--coral)}h1{letter-spacing:0;margin-top:2mm;font-size:27pt;line-height:.98}.headline{color:var(--terminal);margin-top:2mm;font-size:12.2pt;font-weight:700}.summary{color:#344252;max-width:132mm;margin-top:2.7mm;font-size:8pt}.tag-list{flex-wrap:wrap;gap:1.5mm;margin-top:3mm;display:flex}.tag-list li,.skill-grid article:before{border:.25mm solid var(--terminal);box-shadow:1mm 1mm 0 var(--cyan)}.tag-list li{background:#fff;padding:.75mm 1.7mm;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:6.8pt;font-weight:700}.page-grid{grid-template-columns:48mm minmax(0,1fr);gap:7mm;margin-top:6mm;display:grid}.left-rail{flex-direction:column;gap:4mm;display:flex}.module,.skill-grid article{border:.3mm solid var(--line);background:#fff}.module{padding:3.4mm}.module h2,.section>h2{color:var(--terminal);text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:8pt;line-height:1.1}.module h2:before{color:var(--coral);content:"./"}.contact-module address{color:#324052;overflow-wrap:anywhere;flex-direction:column;gap:1.8mm;margin-top:3mm;font-style:normal;display:flex}.contact-module address>*{grid-template-columns:6.8mm minmax(0,1fr);align-items:start;gap:1.8mm;display:grid}.contact-icon{width:4.2mm;min-width:4.2mm;height:4.2mm;color:var(--terminal);place-items:center;display:inline-grid}.contact-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:100%;height:100%;display:block}.contact-icon.github-icon svg{fill:currentColor;stroke:none}.compact-list,.facts,.code-card pre{margin-top:3mm}.compact-list li,.check-list li,.skill-grid li{padding-left:4mm;position:relative}.compact-list li+li,.check-list li+li,.skill-grid li+li{margin-top:1.55mm}.compact-list li:before,.skill-grid li:before{border-top:.45mm solid var(--cyan);content:"";width:1.9mm;position:absolute;top:.45em;left:0}.code-card{background:var(--terminal);color:#e5edf6}.code-card h2{color:#fff}.code-card pre{white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:6.35pt;line-height:1.42;overflow:hidden}.facts{grid-template-columns:14mm minmax(0,1fr);gap:1.6mm 2mm;display:grid}.facts dt{color:var(--coral);font-weight:700}.facts dd{color:#3f4b59}.section+.section{margin-top:5mm}.section>h2{border-bottom:.35mm solid var(--terminal);align-items:center;gap:2.3mm;padding-bottom:2mm;font-size:9.1pt;display:flex}.section>h2 span{background:var(--terminal);color:#fff;place-items:center;width:7mm;height:7mm;font-size:6.8pt;display:inline-grid}.timeline-item{break-inside:avoid;margin-top:3.1mm;padding-left:5mm;position:relative}.timeline-item:before{border-left:.35mm solid var(--line);content:"";position:absolute;top:1.8mm;bottom:-3mm;left:1mm}.timeline-item:after{border:.45mm solid var(--terminal);background:var(--paper);content:"";width:2.3mm;height:2.3mm;position:absolute;top:1.15mm;left:0}.timeline-item:last-child:before{display:none}.item-head{justify-content:space-between;align-items:baseline;gap:3mm;display:flex}.item-head h3,.skill-grid h3,.education-list h3{color:var(--terminal);font-size:9.2pt;line-height:1.17}.item-head p{color:var(--muted);white-space:nowrap;flex:none;font-size:6.8pt;font-weight:700}.timeline-item>p,.timeline-item ul{color:#344252;margin-top:1.3mm}.timeline-item li{padding-left:3.5mm;position:relative}.timeline-item li+li{margin-top:1.1mm}.timeline-item li:before{background:var(--amber);clip-path:polygon(0 0,100% 50%,0 100%);content:"";width:1.7mm;height:1.7mm;position:absolute;top:.46em;left:0}.timeline-item strong{color:var(--terminal)}.compact{margin-top:2.5mm}.page-header{border-bottom:.55mm solid var(--terminal);justify-content:space-between;align-items:end;gap:8mm;padding:0 0 4mm;display:flex}.page-header h2{max-width:78mm;color:var(--terminal);text-align:right;font-size:17pt;line-height:1.05}.skill-section{margin-top:5mm}.skill-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:3.8mm;margin-top:3mm;display:grid}.skill-grid article{break-inside:avoid;min-height:38mm;padding:4.4mm 3.3mm 3.2mm;position:relative}.skill-grid article:before{background:var(--coral);content:"";width:5mm;height:3.2mm;position:absolute;top:-1.6mm;left:3.2mm}.skill-grid ul{color:#344252;margin-top:2.3mm}.two-columns{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:6mm;margin-top:5.5mm;display:grid}.check-list{margin-top:3mm}.check-list li:before{color:var(--green);content:"✓";font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700;position:absolute;top:.15em;left:0}.education-list{gap:3.2mm;margin-top:3mm;display:grid}.education-list article{break-inside:avoid;grid-template-columns:11mm minmax(0,1fr);gap:2.5mm;display:grid}.education-list time{color:var(--coral);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:7.2pt;font-weight:700}.education-list p{color:var(--muted);grid-column:2;margin-top:.8mm;font-size:7.2pt}.final-card{border-color:var(--terminal);box-shadow:1.5mm 1.5mm 0 var(--amber);margin-top:5mm}.final-card p{color:#344252;margin-top:2.5mm}@page{size:A4;margin:0}@media print{html,body{width:var(--page-width);background:#fff}.resume{padding:0}.sheet{width:var(--page-width);min-height:var(--page-height);box-shadow:none;margin:0}}@media screen and (width<=820px){body{background:var(--paper);font-size:10pt}.resume{padding:0}.sheet{width:100%;min-height:auto;box-shadow:none;break-after:auto;margin:0;padding:22px}.hero-layout,.page-grid,.two-columns{grid-template-columns:1fr}.portrait{width:120px;height:138px}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header{display:block}.page-header h2{text-align:left;max-width:none;margin-top:16px}}@media screen and (width<=560px){.skill-grid{grid-template-columns:1fr}.item-head{display:block}.item-head p{white-space:normal;margin-top:4px}h1{font-size:31px}}
