@import url("https://fonts.googleapis.com/css2?family=Roboto+Mono&display=swap");@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap");html{height:100%}body{font-family:"Inter", -apple-system, "avenir next", avenir, roboto, noto, ubuntu, "helvetica neue", helvetica, sans-serif;font-size:1.0rem;line-height:1.6;margin:0;min-height:100%}pre,code{font-family:"Roboto Mono", "Courier New", monospace;font-size:0.9rem}h2,h3,h4,h5{margin-top:1.5em}hr{margin:1em 0}hr.page-break{text-align:center;border:0}hr.page-break:before{content:"-----"}hr.page-break:after{content:attr(data-content) "-----"}p{margin:1em 0}li{margin:0.4em 0}.w{max-width:904px;margin:0 auto;padding:4em 2em}.nav-wrapper{display:flex;justify-content:center;margin:0 0 1.5rem;width:100%}.nav-pill{list-style:none;display:flex;align-items:center;box-sizing:border-box;width:100% !important;max-width:100% !important;flex-wrap:nowrap;gap:0.35rem;padding:0.5rem 0.35rem;margin:0;border-radius:0.5em;background:var(--bg-secondary);border:1px solid var(--text);justify-content:flex-start}.nav-toggle{display:flex;align-items:center;margin-left:auto !important;flex-shrink:0;padding:0}.nav-wrapper{width:100%;display:flex;justify-content:center}.nav-pill li{margin:0;position:relative}.nav-pill a{display:block;padding:0.5rem 1.1rem;border-radius:0.5em;color:var(--links);text-decoration:none;font-weight:600;letter-spacing:0.02em;white-space:nowrap;transition:color 150ms ease, background-color 150ms ease, transform 150ms ease}.nav-pill a:hover,.nav-pill a:focus-visible{color:var(--headings);background-color:rgba(255,255,255,0.08);transform:translateY(-1px);outline:none}.intro-block{background:var(--bg-secondary);border:1px solid var(--text);border-radius:0.6em;padding:1.2rem 1.4rem;margin:1rem 0 1.8rem;color:var(--text);text-align:center;font-style:normal}.intro-tagline{color:var(--headings);margin-bottom:0.6rem}.intro-summary{color:var(--text);margin:0;text-align:justify;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}table,th,td{width:100%;border:thin solid black;border-collapse:collapse;padding:0.4em}div.highlighter-rouge pre code,pre code.highlighter-rouge{display:block;overflow-x:auto;padding:1em}blockquote{font-style:italic;border:thin solid black;padding:1em}blockquote p{margin:0}img{max-width:100%;display:block;margin:0 auto}html[data-theme="dark"] html,html[data-theme="dark"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd;--text-secondary: #9CA3AF;--code-text: #91A7FF;--share-text: #C4C4C4}html[data-theme="light"] html,html[data-theme="light"] body{--bg: #ffffff;--bg-secondary: #f1f5f9;--headings: #0f172a;--text: #334155;--text-secondary: #64748b;--links: #1e5b98;--highlight: #FFECB2;--code-text: #9D174D;--share-text: #94a3b8}@media (prefers-color-scheme: dark){body[data-theme="auto"] html,body[data-theme="auto"] body{--headings: #74c0fc;--links: #91A7FF;--highlight: #41C7C7;--bg: #1f242A;--bg-secondary: #323945;--text: #adb5bd;--text-secondary: #9CA3AF;--code-text: #91A7FF;--share-text: #C4C4C4}}@media (prefers-color-scheme: light){body[data-theme="auto"] html,body[data-theme="auto"] body{--bg: #ffffff;--bg-secondary: #f1f5f9;--headings: #0f172a;--text: #334155;--text-secondary: #64748b;--links: #1e5b98;--highlight: #FFECB2;--code-text: #9D174D;--share-text: #94a3b8}}html,body{background-color:var(--bg);color:var(--text)}h1,h2,h3,h4,h5,h6{color:var(--headings)}p,strong,b,em,small,li,hr,table,figcaption{color:var(--text)}.highlight,pre code,blockquote{border-radius:0.5em}blockquote{background-color:var(--bg-secondary);border:1px var(--border) solid}a{color:var(--links)}*:target{background-color:var(--bg-secondary)}html.transition,html.transition *,html.transition *:before,html.transition *:after{transition:all 250ms !important;transition-delay:0 !important}.theme-toggle{color:var(--text);background-color:transparent;padding:0.35rem 0.65rem;cursor:pointer;margin:0;border:none;outline:none;border-radius:0.4em;display:inline-flex;align-items:center;justify-content:center;gap:0.35rem}.theme-toggle:hover{color:var(--links);background-color:rgba(255,255,255,0.08);outline:none}.theme-toggle:focus{outline:none}.dashed{border-top:1px var(--text) dashed;margin:0.5em 0}mark{padding:0.4em;background-color:var(--highlight);font-size:0.6em;letter-spacing:1px}.post-date{color:var(--text-secondary);margin-top:1rem;font-size:0.7em;font-family:"Roboto Mono", "Courier New", monospace}.home-date{font-family:"Roboto Mono", "Courier New", monospace}.post-list-item a{text-decoration:none}.text-bold{font-weight:bold}.text-upcase{text-transform:uppercase;letter-spacing:1px}p code,li code{background-color:var(--bg-secondary);padding:0.2rem;color:var(--code-text);font-weight:bold}.post-title{margin-bottom:-1.0rem}.project-title{margin-bottom:0.8rem}.credits{font-size:0.8em;color:var(--text);margin:8em auto -4em auto;text-align:center}.credits a{color:var(--text);text-decoration:none;font-weight:bold}.credits a:hover{color:var(--links)}.tag{font-family:"Roboto Mono", "Courier New", monospace;color:var(--text-secondary);padding:0.4em 1em;margin-right:0.5em;border-radius:1em;background-color:var(--bg-secondary);font-size:0.7em;font-weight:bold;text-transform:lowercase}.nav-spacer{width:15rem}ul.horizontal-list{display:flex;margin-top:0em;margin-left:-40px;flex-wrap:wrap}ul.horizontal-list li{display:inline;margin-right:1em}ul.horizontal-list li a{text-decoration:none;font-weight:normal}.card{padding:1em;border:1px var(--text) solid;width:11em;height:auto;text-align:center;font-size:1em;align-items:center;background-color:var(--bg-secondary);margin-bottom:0.8em;border-radius:0.5em}.card a{display:block;text-decoration:none;color:inherit;border-radius:0.35em;outline:none;box-shadow:none}.card a:focus-visible{outline:2px solid var(--links);outline-offset:4px;box-shadow:0 0 0 2px var(--bg-secondary)}.card .header{color:var(--links)}.card .body{font-size:0.8em}.card hr{margin:0.5em 0;border:0;height:1px;background-color:var(--text)}@media screen and (max-width: 600px){ul.horizontal-list li.card{width:100%;display:block;margin-bottom:1em;margin-left:1em}ul.horizontal-list li.card a,ul.horizontal-list li.card .header{font-size:1em}}.highlight .hll{background-color:#515151}.highlight{background:#1A1F35;color:#f2f0ec}.highlight .c{color:#747369}.highlight .err{color:#f2777a}.highlight .k{color:#c9c}.highlight .l{color:#f99157}.highlight .n{color:#f2f0ec}.highlight .o{color:#6cc}.highlight .p{color:#f2f0ec}.highlight .ch{color:#747369}.highlight .cm{color:#747369}.highlight .cp{color:#747369}.highlight .cpf{color:#747369}.highlight .c1{color:#747369}.highlight .cs{color:#747369}.highlight .gd{color:#f2777a}.highlight .ge{font-style:italic}.highlight .gh{color:#f2f0ec;font-weight:bold}.highlight .gi{color:#9c9}.highlight .gp{color:#747369;font-weight:bold}.highlight .gs{font-weight:bold}.highlight .gu{color:#66cccc;font-weight:bold}.highlight .kc{color:#c9c}.highlight .kd{color:#c9c}.highlight .kn{color:#6cc}.highlight .kp{color:#c9c}.highlight .kr{color:#c9c}.highlight .kt{color:#fc6}.highlight .ld{color:#9c9}.highlight .m{color:#f99157}.highlight .s{color:#9c9}.highlight .na{color:#69c}.highlight .nb{color:#f2f0ec}.highlight .nc{color:#fc6}.highlight .no{color:#f2777a}.highlight .nd{color:#6cc}.highlight .ni{color:#f2f0ec}.highlight .ne{color:#f2777a}.highlight .nf{color:#69c}.highlight .nl{color:#f2f0ec}.highlight .nn{color:#fc6}.highlight .nx{color:#69c}.highlight .py{color:#f2f0ec}.highlight .nt{color:#6cc}.highlight .nv{color:#f2777a}.highlight .ow{color:#6cc}.highlight .w{color:#f2f0ec}.highlight .mb{color:#f99157}.highlight .mf{color:#f99157}.highlight .mh{color:#f99157}.highlight .mi{color:#f99157}.highlight .mo{color:#f99157}.highlight .sa{color:#9c9}.highlight .sb{color:#9c9}.highlight .sc{color:#f2f0ec}.highlight .dl{color:#9c9}.highlight .sd{color:#747369}.highlight .s2{color:#9c9}.highlight .se{color:#f99157}.highlight .sh{color:#9c9}.highlight .si{color:#f99157}.highlight .sx{color:#9c9}.highlight .sr{color:#9c9}.highlight .s1{color:#9c9}.highlight .ss{color:#9c9}.highlight .bp{color:#f2f0ec}.highlight .fm{color:#69c}.highlight .vc{color:#f2777a}.highlight .vg{color:#f2777a}.highlight .vi{color:#f2777a}.highlight .vm{color:#f2777a}.highlight .il{color:#f99157}*{box-sizing:border-box;--cv-item-spacing: 15px;--cv-bullet-spacing: 6px}:root{--sidebar-width: 165px}.info-grid{display:grid;grid-template-columns:var(--sidebar-width) 1fr;row-gap:var(--cv-item-spacing);column-gap:0;margin-bottom:20px;font-family:inherit;align-items:baseline}.content{color:var(--text)}.label{color:var(--links);font-weight:bold;padding-right:20px}hr.cv-divider{border:0;height:1px;background-color:var(--text);margin:25px 0}.job-entry,.info-grid,.job-content{box-sizing:border-box}.job-entry{display:flex;margin-bottom:var(--cv-item-spacing)}.job-date{width:var(--sidebar-width);flex-shrink:0;font-weight:bold;color:var(--links);padding-right:20px;padding-top:0}.job-details{flex-grow:1}@media (max-width: 600px){.info-grid,.job-entry{display:block}.job-date,.label{margin-bottom:5px}}.job-header{cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:2px 0;transition:background-color 0.2s;color:var(--links)}.job-header:hover{background-color:var(--bg-secondary);border-radius:4px}.toggle-icon{font-size:0.8em;color:var(--headings);transition:transform 0.3s ease;margin-left:10px}.job-entry.active .toggle-icon{transform:rotate(180deg)}.job-content{display:none;margin-top:10px;animation:fadeIn 0.3s ease-in-out;color:var(--text)}.job-content li{margin-bottom:var(--cv-bullet-spacing)}.job-entry.active .job-content{display:block}@keyframes fadeIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.global-toggle-btn{background:none;border:1px solid var(--headings);color:var(--headings);padding:4px 12px;border-radius:20px;cursor:pointer;font-size:0.75em;margin-left:5px;transition:all 0.2s}.global-toggle-btn:hover{background-color:var(--headings);color:var(--bg)}@media print{@page{margin:0;size:A4}body{margin:0 !important;padding:2cm 2cm !important;background-color:white !important}.nav-wrapper,.credits,.global-toggle-btn{display:none !important}:root,html,body,html[data-theme="dark"]{font-size:10pt !important;--bg: #FFFFFF !important;--bg-secondary: #f3f4f6 !important;--headings: #1e293b !important;--text: #374151 !important;--text-secondary: #6b7280 !important}.job-entry .job-content{display:block !important;opacity:1 !important;visibility:visible !important;height:auto !important;animation:none !important;transition:none !important}.fa-stack .fa-circle{color:#1e5b98 !important;-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}.fa-stack .fa-inverse,.fa-stack .fab{color:#ffffff !important;-webkit-print-color-adjust:exact !important;print-color-adjust:exact !important}}
