@font-face{font-family:CMU Typewriter Text;font-style:roman;font-weight:200;src:url(/assets/cmu-typewriter-text-200-roman-etxVkntb.woff2)format("woff2"),url(/assets/cmu-typewriter-text-200-roman-CX7e6nwd.ttf)format("truetype")}@font-face{font-family:CMU Typewriter Text;font-style:italic;font-weight:200;src:url(/assets/cmu-typewriter-text-200-italic-BQgX5Y0r.woff2)format("woff2"),url(/assets/cmu-typewriter-text-200-italic-VAx14CjM.ttf)format("truetype")}@font-face{font-family:CMU Typewriter Text;font-style:roman;font-weight:500;src:url(/assets/cmu-typewriter-text-500-roman-BYU-dLRm.woff2)format("woff2"),url(/assets/cmu-typewriter-text-500-roman-d2M9EhVG.ttf)format("truetype")}@font-face{font-family:CMU Typewriter Text;font-style:italic;font-weight:500;src:url(/assets/cmu-typewriter-text-500-italic-C8uKIkXX.woff2)format("woff2"),url(/assets/cmu-typewriter-text-500-italic-DfPxkTUr.ttf)format("truetype")}@font-face{font-family:CMU Typewriter Text;font-style:italic;font-weight:500;src:url(/assets/cmu-typewriter-text-500-italic-C8uKIkXX.woff2)format("woff2"),url(/assets/cmu-typewriter-text-500-italic-DfPxkTUr.ttf)format("truetype")}@font-face{font-family:CMU Typewriter Text;font-style:roman;font-weight:700;src:url(/assets/cmu-typewriter-text-700-roman-ByWgaMV7.woff2)format("woff2"),url(/assets/cmu-typewriter-text-700-roman-SUDEujek.ttf)format("truetype")}@font-face{font-family:CMU Typewriter Text;font-style:italic;font-weight:700;src:url(/assets/cmu-typewriter-text-700-italic-C2BdS7_a.woff2)format("woff2"),url(/assets/cmu-typewriter-text-700-italic-BfCUScvS.ttf)format("truetype")}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--accent:#0070f3;--accent-dark:#0057c2;--text-primary:#0a0a0a;--text-secondary:#1a1a1a;--text-muted:#444;--border:#888;--border-light:#ccc;--bg-page:#eee;--bg-doc:#fff;--page-width:820px;--font-document:Georgia, "Times New Roman", Times, serif;--font-typewriter:"CMU Typewriter Text", "Latin Modern Mono", "Courier New", Courier, monospace}html{scroll-behavior:smooth;font-size:16px}body{background:var(--bg-page);color:var(--text-primary);font-family:var(--font-document);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;line-height:1.58}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-dark);text-decoration:underline}.document{width:100%;max-width:var(--page-width);background:var(--bg-doc);border:1px solid var(--border);box-sizing:border-box;margin:2.5rem auto;padding:clamp(2.2rem,5vw,3.8rem);box-shadow:0 1px 3px #0000000d}.resume-header{text-align:center;border-bottom:1.5px solid var(--text-primary);margin-bottom:1.6rem;padding-bottom:1rem}.resume-header h1{letter-spacing:.04em;text-transform:uppercase;color:var(--text-primary);margin-bottom:.25rem;font-size:clamp(1.7rem,4vw,2.2rem);font-weight:700;line-height:1.15}.resume-header .tagline{color:var(--text-secondary);letter-spacing:.01em;margin-bottom:.6rem;font-size:clamp(.95rem,2vw,1.05rem);font-style:italic;font-weight:500;line-height:1.35}.contact-line{color:var(--text-secondary);flex-wrap:wrap;justify-content:center;align-items:center;gap:.2rem 0;font-size:.9rem;line-height:1.7;display:flex}.contact-line a{color:var(--text-secondary)}.contact-line a:hover{color:var(--accent);text-decoration:underline}.contact-sep{color:var(--border);-webkit-user-select:none;user-select:none;margin:0 .55rem}.pdf-btn{font-family:var(--font-document);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;letter-spacing:.03em;background:0 0;margin-top:.85rem;padding:.35rem .9rem;font-size:.8rem;font-weight:500;transition:all .15s;display:inline-block}.pdf-btn:hover{background:var(--text-primary);color:#fff;border-color:var(--text-primary)}.resume-section{margin-bottom:1.6rem}.section-heading{letter-spacing:.15em;text-transform:uppercase;color:var(--text-primary);border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:.3rem;font-size:.82rem;font-weight:700}.summary-text{color:var(--text-secondary);text-align:left;font-size:.95rem;line-height:1.6}.entry{margin-bottom:1.35rem}.entry:last-child{margin-bottom:0}.entry-title{letter-spacing:.01em;color:var(--text-primary);font-size:1.08rem;font-weight:700}.entry-meta-row{color:var(--text-muted);margin-top:.1rem;margin-bottom:.25rem;font-size:.88rem;font-style:italic}.entry-meta-row a{color:var(--text-primary);border-bottom:1px solid var(--border-light);font-style:normal;font-weight:600}.entry-meta-row a:hover{color:var(--accent);border-bottom-color:var(--accent);text-decoration:none}.entry-stack-row{color:var(--text-muted);font-size:.82rem;font-family:var(--font-typewriter);margin-bottom:.45rem;line-height:1.45}.entry-stack-row .stack-label{color:var(--text-secondary);font-weight:700;font-family:var(--font-document)}.entry-bullets{margin:0;padding-left:1.35rem;list-style:outside}.entry-bullets li{color:var(--text-secondary);margin-bottom:.32rem;font-size:.94rem;line-height:1.58}.skills-list{padding:0;list-style:none}.skills-list li{color:var(--text-secondary);margin-bottom:.35rem;font-size:.94rem;line-height:1.55}.skill-category{color:var(--text-primary);font-weight:700}.project-entry{margin-bottom:1.3rem}.project-entry:last-child{margin-bottom:0}.project-title{letter-spacing:.01em;color:var(--text-primary);font-size:1.02rem;font-weight:700}.project-title a{color:var(--text-primary);border-bottom:1px solid var(--border-light)}.project-title a:hover{color:var(--accent);border-bottom-color:var(--accent);text-decoration:none}.project-desc{color:var(--text-secondary);margin-top:.25rem;font-size:.92rem;line-height:1.6}.project-tags{font-size:.8rem;font-family:var(--font-typewriter);color:var(--text-muted);margin-top:.35rem}.resume-footer{border-top:1px solid var(--border-light);color:var(--text-muted);text-align:center;margin-top:1.5rem;padding-top:.8rem;font-size:.72rem;font-style:italic}@media print{@page{margin:.5in .6in;size:letter}body{font-size:10pt;line-height:1.45;color:#000!important;background:#fff!important}.document{box-shadow:none!important;border:none!important;max-width:100%!important;margin:0!important;padding:0!important}.pdf-btn{display:none!important}.resume-header{border-bottom:1.5pt solid #000!important;margin-bottom:12pt!important;padding-bottom:8pt!important}.resume-section{margin-bottom:12pt!important}.section-heading{color:#000!important;border-bottom:.75pt solid #555!important;margin-bottom:8pt!important;padding-bottom:2pt!important}a,.contact-line a,.entry-meta-row a,.project-title a{color:#000!important;border-bottom:none!important;text-decoration:none!important}.entry-bullets li{margin-bottom:2pt;font-size:9.5pt;line-height:1.4}.summary-text,.project-desc,.skills-list li{font-size:9.5pt;line-height:1.4}.entry{page-break-inside:avoid;margin-bottom:10pt}.project-entry{page-break-inside:avoid;margin-bottom:8pt}.resume-footer{display:none}}@media screen and (width<=860px){body{background:var(--bg-doc)}.document{border:none;max-width:100%;margin:0 auto;padding:2.2rem 1.75rem}}@media screen and (width<=600px){html{font-size:16px}.document{padding:1.5rem 1.15rem}.resume-header{text-align:left;margin-bottom:1.25rem;padding-bottom:.9rem}.contact-line{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.25rem;margin-top:.5rem;line-height:1.5}.contact-sep{display:none}.pdf-btn{text-align:center;width:100%;margin-top:.8rem;padding:.6rem 1rem;font-size:.85rem}.entry-bullets{padding-left:1.15rem}.entry-bullets li{margin-bottom:.45rem;line-height:1.5}.entry-meta-row{font-size:.88rem;line-height:1.45}}@media screen and (width<=360px){html{font-size:15px}.document{padding:1.2rem .85rem}.resume-header h1{font-size:1.45rem}.entry-title{font-size:1.05rem}.project-title{font-size:.98rem}.entry-bullets{padding-left:1rem}}@media screen and (width>=1600px){.document{margin:3.5rem auto;box-shadow:0 4px 24px #0000000a}}
