:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f0ebe0;--fg:#0a0a0a;--ink:#0a0a0a;--panel:#0a0a0a;--panel-fg:#f0ebe0;--panel-border:#222;--panel-border-2:#1e1e1e;--muted:#555;--muted-2:#6a6a6a;--muted-3:#9a9a9a;--grid:#ddd;--accent:#f5a623;--accent-2:#f5e642;--live:#1a6e2e;--ongoing:#8f5300;--green-dot:#3ecf5a;--panel-muted:#888;--panel-muted-2:#d8d3c8;--cs-strong:#2a2a2a;--on-accent:#0a0a0a;--grid-line:#0a0a0a0b}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#14120d;--fg:#ede8dc;--ink:#ede8dc;--panel:#1d1a13;--panel-fg:#f0ebe0;--panel-border:#3a352b;--panel-border-2:#2c281f;--muted:#b2ab9d;--muted-2:#948d7f;--muted-3:#8f887a;--grid:#2e2a21;--accent:#f5a623;--accent-2:#f5e642;--live:#4ade80;--ongoing:#f0a94c;--green-dot:#3ecf5a;--panel-muted:#9a9384;--panel-muted-2:#cfc9bc;--cs-strong:#d5cfc2;--on-accent:#0a0a0a;--grid-line:#f0ebe00d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.nb-nav a:focus-visible,.nb-nav button:focus-visible,.nb-skills a:focus-visible{outline-color:var(--accent-2)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}::view-transition-old(root){animation-duration:.26s;animation-timing-function:ease}::view-transition-new(root){animation-duration:.26s;animation-timing-function:ease}@media (prefers-reduced-motion:reduce){::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}}body{font-family:var(--font-dm-sans), sans-serif;background-color:var(--bg);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);color:var(--fg);background-size:46px 46px;transition:background-color .2s,color .2s}.nb-skip{z-index:200;background:var(--accent-2);color:var(--on-accent);font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1px;border:2px solid var(--ink);padding:10px 16px;font-size:11px;text-decoration:none;transition:top .15s;position:absolute;top:-50px;left:12px}.nb-skip:focus{top:12px}.js .reveal{opacity:0;transition:opacity .5s,transform .5s;transform:translateY(18px)}.js .reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transition:none;transform:none}}.nb-nav{background:var(--panel);z-index:100;justify-content:space-between;align-items:center;padding:16px 32px;display:flex;position:sticky;top:0}.nb-nav-logo{font-family:var(--font-space-mono), monospace;color:var(--panel-fg);letter-spacing:1px;font-size:14px;font-weight:700;text-decoration:none}.nb-nav-right{align-items:center;gap:22px;display:flex}.nb-nav-links{gap:28px;display:flex}.nb-nav-links a{font-family:var(--font-space-mono), monospace;color:var(--panel-fg);text-transform:uppercase;letter-spacing:1.5px;opacity:.9;font-size:11px;text-decoration:none;transition:opacity .15s}.nb-nav-links a:hover{opacity:1}.nb-nav-links a.nb-nav-active{opacity:1;color:var(--accent-2);border-bottom:2px solid var(--accent-2);padding-bottom:2px}.nb-theme-toggle{border:1.5px solid var(--panel-fg);color:var(--panel-fg);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;padding:0;line-height:1;transition:background .15s,color .15s;display:inline-flex}.nb-theme-toggle:hover{background:var(--panel-fg);color:var(--panel)}.nb-theme-toggle svg{width:15px;height:15px;display:block}.nb-nav-burger{border:1.5px solid var(--panel-fg);color:var(--panel-fg);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:background .15s,color .15s;display:none}.nb-nav-burger:hover{background:var(--panel-fg);color:var(--panel)}.nb-nav-burger svg{width:20px;height:20px;display:block}.nb-mobile-backdrop{z-index:90;background:#00000080;animation:.12s nb-cmdk-fade;position:fixed;inset:0}.nb-mobile-menu{z-index:95;background:var(--panel);border-top:2px solid var(--panel-border);border-bottom:2px solid var(--ink);box-shadow:0 8px 0 var(--ink);flex-direction:column;animation:.12s nb-cmdk-pop;display:flex;position:absolute;top:100%;left:0;right:0}.nb-mobile-link{min-height:52px;font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1.5px;color:var(--panel-fg);border-top:1px solid var(--panel-border-2);justify-content:space-between;align-items:center;padding:0 22px;font-size:13px;text-decoration:none;transition:background .12s,color .12s;display:flex}.nb-mobile-link:first-child{border-top:none}.nb-mobile-link:active{background:var(--accent-2);color:var(--on-accent)}.nb-mobile-link.nb-mobile-active{color:var(--accent-2)}.nb-mobile-arrow{opacity:.5;font-size:15px}.nb-cmdk-trigger{color:var(--muted-3);font-family:var(--font-space-mono), monospace;cursor:pointer;background:0 0;border:1.5px solid #3a3a3a;align-items:center;gap:7px;height:30px;padding:0 9px;transition:border-color .15s,color .15s;display:inline-flex}.nb-cmdk-trigger:hover{border-color:var(--panel-fg);color:var(--panel-fg)}.nb-cmdk-trigger-icon{font-size:15px;line-height:1}.nb-cmdk-trigger-key{letter-spacing:.5px;font-size:10px}.nb-cmdk-backdrop{z-index:300;background:#0000008c;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;animation:.12s nb-cmdk-fade;display:flex;position:fixed;inset:0}.nb-cmdk{background:var(--bg);border:2px solid var(--ink);width:100%;max-width:560px;box-shadow:8px 8px 0 var(--ink);flex-direction:column;max-height:70vh;animation:.12s nb-cmdk-pop;display:flex;overflow:hidden}.nb-cmdk-inputwrap{border-bottom:2px solid var(--ink);align-items:center;gap:10px;padding:14px 16px;display:flex}.nb-cmdk-search{color:var(--muted-2);font-size:18px;line-height:1}.nb-cmdk-input{font-family:var(--font-dm-sans), sans-serif;color:var(--fg);background:0 0;border:none;outline:none;flex:1;font-size:15px}.nb-cmdk-input::placeholder{color:var(--muted-2)}.nb-cmdk-feedback{font-family:var(--font-space-mono), monospace;color:var(--live);white-space:nowrap;font-size:11px}.nb-cmdk-list{margin:0;padding:6px;list-style:none;overflow-y:auto}.nb-cmdk-item{cursor:pointer;border:1.5px solid #0000;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;display:flex}.nb-cmdk-item.active{border-color:var(--ink);background:var(--accent-2)}.nb-cmdk-item.active .nb-cmdk-label{color:var(--on-accent)}.nb-cmdk-item.active .nb-cmdk-group{color:var(--on-accent);opacity:.7}.nb-cmdk-label{font-family:var(--font-dm-sans), sans-serif;color:var(--fg);font-size:14px}.nb-cmdk-group{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1px;color:var(--muted-2);flex-shrink:0;font-size:9px}.nb-cmdk-empty{font-family:var(--font-space-mono), monospace;color:var(--muted-2);text-align:center;padding:20px 12px;font-size:12px}.nb-cmdk-foot{border-top:2px solid var(--ink);gap:18px;padding:10px 16px;display:flex}.nb-cmdk-foot span{font-family:var(--font-space-mono), monospace;color:var(--muted-2);align-items:center;gap:5px;font-size:10px;display:flex}.nb-cmdk-foot kbd{font-family:var(--font-space-mono), monospace;border:1px solid var(--grid);color:var(--fg);padding:1px 5px;font-size:10px}@keyframes nb-cmdk-fade{0%{opacity:0}to{opacity:1}}@keyframes nb-cmdk-pop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.nb-cmdk-backdrop,.nb-cmdk{animation:none}}.nb-hero{border-bottom:2px solid var(--ink);grid-template-columns:1fr 280px;display:grid}.nb-hero-left{border-right:2px solid var(--ink);padding:44px 36px}.nb-avail{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);align-items:center;gap:8px;margin-bottom:18px;font-size:10px;display:flex}.nb-avail-dot{background:var(--green-dot);border-radius:50%;flex-shrink:0;width:8px;height:8px}.nb-headline{margin-bottom:22px;line-height:1}.nb-hl-name{font-family:var(--font-dm-sans), sans-serif;letter-spacing:-1.5px;color:var(--bg);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;cursor:default;font-size:52px;font-weight:700;transition:color .35s;display:block}.nb-hl-name:hover{color:var(--ink)}.nb-hl-accent{font-family:var(--font-space-mono), monospace;color:var(--accent);margin-top:4px;font-size:40px;font-weight:700;display:block}.nb-desc{color:var(--muted);max-width:400px;margin-bottom:28px;font-size:14px;line-height:1.7}.nb-hero-btns{flex-wrap:wrap;gap:12px;display:flex}.nb-btn{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1px;border:2px solid var(--ink);cursor:pointer;box-shadow:4px 4px 0 var(--ink);padding:11px 20px;font-size:10px;text-decoration:none;transition:transform .1s,box-shadow .1s;display:inline-block}.nb-btn:hover{box-shadow:6px 6px 0 var(--ink);transform:translate(-2px,-2px)}.nb-btn:active{box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.nb-btn.yellow{background:var(--accent-2);color:var(--on-accent)}.nb-btn.dark{background:var(--panel);color:var(--accent-2)}.nb-hero-right{background:var(--panel);flex-direction:column;display:flex}.nb-photo-wrap{aspect-ratio:1;border-bottom:2px solid var(--panel-border);flex-shrink:0;width:100%;position:relative;overflow:hidden}.nb-photo-wrap img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.nb-photo-wrap:hover img{transform:scale(1.04)}.nb-stats{margin-top:auto}.nb-stat-row{border-top:1px solid var(--panel-border-2);justify-content:space-between;align-items:center;padding:11px 18px;display:flex}.nb-stat-label{font-family:var(--font-space-mono), monospace;color:var(--muted-3);text-transform:uppercase;font-size:10px}.nb-stat-val{font-family:var(--font-space-mono), monospace;color:var(--accent);font-size:12px;font-weight:700}.nb-skills{background:var(--panel);border-bottom:2px solid var(--ink);flex-wrap:wrap;align-items:center;gap:8px;padding:14px 32px;display:flex}.nb-skills-label{font-family:var(--font-space-mono), monospace;color:var(--muted-3);text-transform:uppercase;letter-spacing:1px;margin-right:4px;font-size:10px}.nb-tag-hl{font-family:var(--font-space-mono), monospace;border:1.5px solid var(--accent-2);color:var(--accent-2);text-transform:uppercase;padding:4px 11px;font-size:10px}.nb-tag-sec{font-family:var(--font-space-mono), monospace;border:1.5px solid var(--accent);color:var(--accent);text-transform:uppercase;padding:4px 11px;font-size:10px}.nb-tag-lo{font-family:var(--font-space-mono), monospace;border:1.5px solid var(--muted);color:var(--muted-3);text-transform:uppercase;padding:4px 11px;font-size:10px}#work,#certs,#about,#contact{scroll-margin-top:80px}.nb-section{border-bottom:2px solid var(--ink);padding:32px}.nb-section-title{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:2px;align-items:center;gap:10px;margin-bottom:22px;font-size:11px;font-weight:700;display:flex}.nb-section-icon{background:var(--accent);flex-shrink:0;width:10px;height:10px}.nb-certs{border:2px solid var(--ink);grid-template-columns:1fr 1fr;display:grid}.nb-cert{border:1px solid var(--grid);background:var(--bg);color:inherit;align-items:center;gap:14px;padding:18px 20px;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;position:relative}.nb-cert:hover{box-shadow:4px 4px 0 var(--ink);border-color:var(--ink);z-index:2;transform:translate(-3px,-3px)}.nb-cert:active{box-shadow:1px 1px 0 var(--ink);transform:translate(0)}.nb-cert-verify{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1px;color:var(--ongoing);opacity:.6;white-space:nowrap;flex-shrink:0;margin-left:auto;font-size:9px;transition:opacity .15s}.nb-cert:hover .nb-cert-verify{opacity:1}.nb-cert-badge{background:var(--accent-2);border:2px solid var(--ink);width:42px;height:42px;color:var(--on-accent);font-family:var(--font-space-mono), monospace;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.nb-cert-name{margin-bottom:3px;font-size:13px;font-weight:600}.nb-cert-issuer{font-family:var(--font-space-mono), monospace;color:var(--muted-2);font-size:10px}.nb-projects{border:2px solid var(--ink);grid-template-columns:1fr 1fr;display:grid}.nb-project{border:1px solid var(--grid);background:var(--bg);flex-direction:column;align-items:flex-start;padding:24px;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;position:relative}.nb-project:hover{box-shadow:5px 5px 0 var(--ink);border-color:var(--ink);z-index:2;transform:translate(-3px,-3px)}.nb-project.featured{grid-column:1/-1}.nb-project-num{font-family:var(--font-space-mono), monospace;color:var(--muted-2);margin-bottom:6px;font-size:10px}.nb-badge{font-family:var(--font-space-mono), monospace;text-transform:uppercase;border:1.5px solid;padding:3px 8px;font-size:9px;position:absolute;top:18px;right:18px}.nb-badge.live{border-color:var(--live);color:var(--live)}.nb-badge.ongoing{border-color:var(--ongoing);color:var(--ongoing)}.nb-project h3{font-family:var(--font-space-mono), monospace;margin-bottom:8px;padding-right:76px;font-size:16px;font-weight:700}.nb-project-sub{font-family:var(--font-space-mono), monospace;color:var(--muted-2);white-space:nowrap;font-size:10px;font-weight:400}.nb-project p{color:var(--muted);max-width:640px;margin-bottom:14px;font-size:12px;line-height:1.6}.nb-project-stats{flex-wrap:wrap;gap:14px;margin-bottom:14px;display:flex}.nb-project-stat{font-family:var(--font-space-mono), monospace;color:var(--muted-2);letter-spacing:.5px;font-size:10px}.nb-project-tags{flex-wrap:wrap;gap:5px;display:flex}.nb-ptag{font-family:var(--font-space-mono), monospace;background:var(--panel);color:var(--panel-fg);padding:3px 7px;font-size:9px}.nb-project-media{grid-template-columns:1fr 1fr;gap:12px;width:100%;margin-bottom:16px;display:grid}.nb-project-media img{aspect-ratio:16/9;object-fit:cover;object-position:top left;background:var(--panel);border:2px solid var(--ink);width:100%;display:block}.nb-project-link{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1px;color:var(--fg);border-bottom:2px solid var(--ink);margin-top:auto;padding-top:16px;padding-bottom:2px;font-size:10px;text-decoration:none;transition:color .15s,border-color .15s;display:inline-block}.nb-project-link:hover{color:var(--ongoing);border-color:var(--ongoing)}.nb-sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.nb-project-links{flex-wrap:wrap;gap:20px;margin-top:auto;padding-top:16px;display:flex}.nb-project-link.secondary{color:var(--muted-2);border-color:var(--muted-2)}.nb-project-link.secondary:hover{color:var(--fg);border-color:var(--fg)}.nb-view-all{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1px;color:var(--fg);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);margin-top:20px;padding:11px 18px;font-size:11px;text-decoration:none;transition:transform .1s,box-shadow .1s;display:inline-block}.nb-view-all:hover{box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)}.nb-pagehead{border-bottom:2px solid var(--ink);padding:44px 32px 28px}.nb-crumb{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:2px;align-items:center;gap:10px;margin-bottom:18px;font-size:11px;font-weight:700;display:flex}.nb-page-title{font-family:var(--font-dm-sans), sans-serif;letter-spacing:-1.5px;color:var(--bg);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;margin-bottom:16px;font-size:44px;font-weight:700;line-height:1.02}.nb-page-lede{color:var(--muted);max-width:620px;font-size:14px;line-height:1.7}.nb-back{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1px;color:var(--muted-2);margin-bottom:20px;font-size:11px;text-decoration:none;transition:color .15s;display:inline-block}.nb-back:hover{color:var(--fg)}.nb-cs-titlerow{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.nb-badge.static{flex-shrink:0;margin-top:8px;position:static}.nb-cs-meta{flex-wrap:wrap;gap:28px;margin:24px 0 18px;display:flex}.nb-cs-metaitem{flex-direction:column;gap:4px;display:flex}.nb-cs-metalabel{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted-3);font-size:9px}.nb-cs-metaval{font-family:var(--font-space-mono), monospace;color:var(--fg);font-size:12px}.nb-cs-metaval.link{color:var(--ongoing);border-bottom:1.5px solid var(--ongoing);padding-bottom:1px;text-decoration:none}.nb-term{border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink);background:#0d1117;overflow:hidden}.nb-term-bar{background:#161b22;border-bottom:1px solid #30363d;align-items:center;gap:14px;padding:10px 14px;display:flex}.nb-term-dots{flex-shrink:0;gap:7px;display:flex}.nb-term-dots span{border-radius:50%;width:12px;height:12px;display:block}.nb-term-cmd{font-family:var(--font-space-mono), monospace;color:#8b949e;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.nb-term-tabs{background:#161b22;border-bottom:1px solid #30363d;align-items:center;gap:8px;padding:8px 12px;display:flex}.nb-term-tab{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.5px;color:#8b949e;cursor:pointer;background:0 0;border:1px solid #30363d;padding:5px 10px;font-size:10px;transition:color .15s,border-color .15s}.nb-term-tab:hover{color:#c9d1d9}.nb-term-tab.active{color:#0d1117;background:var(--accent);border-color:var(--accent)}.nb-term-replay{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:.5px;color:#c9d1d9;cursor:pointer;background:0 0;border:1px solid #30363d;margin-left:auto;padding:5px 10px;font-size:10px}.nb-term-replay:hover{border-color:#8b949e}.nb-term-body{font-family:"Fira Code", var(--font-space-mono), monospace;color:#c9d1d9;scroll-behavior:auto;max-height:380px;padding:14px;font-size:12px;line-height:1.5;overflow:auto}.nb-term-line{white-space:pre}.nb-term-c-green{color:#3fb950}.nb-term-c-red{color:#ff7b72}.nb-term-c-amber{color:#d29922}.nb-term-c-teal{color:#39c5cf}.nb-term-w{font-weight:700}.nb-term-cursor{background:var(--accent);vertical-align:text-bottom;width:8px;height:14px;animation:1s steps(2,end) infinite nb-term-blink;display:inline-block}.nb-term-cursor.idle{opacity:.5}@keyframes nb-term-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.nb-term-cursor{animation:none}}.nb-cs-media{grid-template-columns:1fr 1fr;gap:16px;display:grid}.nb-cs-media img{aspect-ratio:16/9;object-fit:cover;object-position:top left;background:var(--panel);border:2px solid var(--ink);width:100%;display:block}.nb-cs-body{grid-template-columns:1fr 280px;align-items:start;gap:40px;display:grid}.nb-cs-overview{color:var(--cs-strong);margin-bottom:28px;font-size:15px;font-weight:500;line-height:1.75}.nb-cs-block{margin-bottom:26px}.nb-cs-heading{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1.5px;color:var(--fg);margin-bottom:12px;font-size:13px;font-weight:700}.nb-cs-para{color:var(--muted);margin-bottom:12px;font-size:13.5px;line-height:1.75}.nb-cs-para:last-child{margin-bottom:0}.nb-cs-aside{border:2px solid var(--ink);background:var(--panel);padding:22px 20px;position:sticky;top:76px}.nb-cs-asidetitle{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);margin-bottom:14px;font-size:11px;font-weight:700}.nb-cs-highlights{flex-direction:column;gap:10px;margin-bottom:20px;list-style:none;display:flex}.nb-cs-highlights li{color:var(--panel-muted-2);padding-left:16px;font-size:12px;line-height:1.5;position:relative}.nb-cs-highlights li:before{content:"▹";color:var(--accent);position:absolute;left:0}.nb-cs-cta{text-align:center;width:100%}.nb-cs-nav{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.nb-exp-row{border-bottom:1px solid var(--grid);grid-template-columns:130px 1fr auto;align-items:start;gap:16px;padding:22px 0;display:grid}.nb-exp-row:last-child{border-bottom:none}.nb-exp-year{font-family:var(--font-space-mono), monospace;color:var(--muted-2);font-size:10px}.nb-exp-title{margin-bottom:4px;font-size:15px;font-weight:600}.nb-exp-sub{font-family:var(--font-space-mono), monospace;color:var(--ongoing);font-size:10px}.nb-exp-badge{font-family:var(--font-space-mono), monospace;text-transform:uppercase;border:1.5px solid var(--ink);white-space:nowrap;align-self:center;padding:4px 10px;font-size:9px}.nb-contact{border-top:2px solid var(--ink);grid-template-columns:1fr 1fr;display:grid}.nb-contact-left{background:var(--panel);flex-direction:column;justify-content:center;padding:48px 36px;display:flex}.nb-contact-heading{font-family:var(--font-dm-sans), sans-serif;-webkit-text-stroke:2px var(--panel-fg);color:var(--panel);paint-order:stroke fill;margin-bottom:16px;font-size:46px;font-weight:700;line-height:1.05}.nb-contact-desc{color:var(--panel-muted);margin-bottom:28px;font-size:13px;line-height:1.65}.nb-contact-right{flex-direction:column;justify-content:center;gap:12px;padding:32px;display:flex}.nb-contact-link{font-family:var(--font-space-mono), monospace;border:2px solid var(--ink);color:var(--fg);box-shadow:3px 3px 0 var(--ink);justify-content:space-between;align-items:center;padding:15px 18px;font-size:11px;text-decoration:none;transition:transform .1s,box-shadow .1s;display:flex}.nb-contact-link:hover{box-shadow:5px 5px 0 var(--ink);transform:translate(-2px,-2px)}.nb-contact-link .val{color:var(--muted-2);font-size:10px;font-family:var(--font-dm-sans), sans-serif;margin-right:8px}.nb-contact-link .arr{opacity:.55}.nb-email-row{justify-content:space-between;gap:12px}.nb-email-main{color:inherit;font-family:var(--font-space-mono), monospace;flex-direction:column;gap:3px;text-decoration:none;display:flex}.nb-email-main .val{color:var(--muted-2);font-size:10px;font-family:var(--font-dm-sans), sans-serif}.nb-email-copy{border:1.5px solid var(--ink);color:var(--fg);font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1px;cursor:pointer;background:0 0;flex-shrink:0;padding:6px 10px;font-size:9px;transition:background .15s,color .15s}.nb-email-copy:hover{background:var(--ink);color:var(--bg)}.nb-footer{background:var(--panel);justify-content:space-between;align-items:center;padding:14px 32px;display:flex}.nb-footer span{font-family:var(--font-space-mono), monospace;color:var(--muted-3);text-transform:uppercase;letter-spacing:1px;font-size:9px}.nb-form{flex-direction:column;gap:14px;display:flex}.nb-form-row{flex-direction:column;gap:6px;display:flex}.nb-form-label{font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted-3);font-size:10px}.nb-form-input{font-family:var(--font-dm-sans), sans-serif;color:var(--panel-fg);resize:vertical;background:0 0;border:1.5px solid #3a3a3a;outline:none;width:100%;padding:11px 13px;font-size:13px;transition:border-color .15s}.nb-form-input::placeholder{color:#6a6a6a}.nb-form-input:focus{border-color:var(--accent)}.nb-form-submit{border-width:2px;align-self:flex-start;margin-top:4px}.nb-form-error{font-family:var(--font-space-mono), monospace;color:#ff7a7a;font-size:11px;line-height:1.5}.nb-form-note{font-family:var(--font-space-mono), monospace;color:var(--accent);font-size:10px;line-height:1.5}.nb-form-success{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.nb-form-success-mark{background:var(--accent-2);width:40px;height:40px;color:var(--on-accent);font-family:var(--font-space-mono), monospace;border:2px solid var(--panel-fg);justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex}.nb-form-success p{color:var(--panel-fg);font-size:14px;line-height:1.6}.nb-form-reset{color:var(--accent);font-family:var(--font-space-mono), monospace;text-transform:uppercase;letter-spacing:1px;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;font-size:11px;text-decoration:underline}@media (max-width:768px){.nb-hero{grid-template-columns:1fr}.nb-hero-right{border-top:2px solid var(--ink)}.nb-photo-wrap{aspect-ratio:16/9;max-height:260px}.nb-hl-name{font-size:36px}.nb-hl-accent{font-size:28px}.nb-projects,.nb-project-media{grid-template-columns:1fr}.nb-project h3{padding-right:72px}.nb-project-sub{white-space:normal;display:block}.nb-certs,.nb-contact{grid-template-columns:1fr}.nb-exp-row{grid-template-columns:100px 1fr}.nb-exp-badge{display:none}.nb-nav{padding:12px 20px}.nb-nav-right{gap:12px}.nb-nav-links{display:none}.nb-nav-burger{display:inline-flex}.nb-theme-toggle{width:40px;height:40px}.nb-cmdk-trigger{display:none}.nb-cmdk-backdrop{padding-top:8vh}.nb-section{padding:24px 20px}.nb-hero-left{padding:28px 20px}.nb-pagehead{padding:28px 20px 22px}.nb-page-title{font-size:32px}.nb-cs-media{grid-template-columns:1fr}.nb-cs-body{grid-template-columns:1fr;gap:28px}.nb-cs-aside{position:static}.nb-cs-titlerow{flex-direction:column}.nb-badge.static{margin-top:0}.nb-404{padding:40px 20px 56px}.nb-404-code{font-size:88px}}.nb-404{flex-direction:column;align-items:flex-start;max-width:760px;padding:64px 32px 84px;display:flex}.nb-404-code{font-family:var(--font-dm-sans), sans-serif;letter-spacing:-5px;color:var(--bg);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;margin-bottom:26px;font-size:150px;font-weight:700;line-height:1}.nb-404-term{border:2px solid var(--ink);width:100%;max-width:580px;box-shadow:6px 6px 0 var(--ink);font-family:"Fira Code", var(--font-space-mono), monospace;background:#0d1117;margin-bottom:30px;padding:16px 18px;font-size:12.5px;line-height:1.75;overflow-x:auto}.nb-404-line{white-space:pre;color:#c9d1d9}.nb-404-prompt{color:#3fb950}.nb-404-path{color:#d29922}.nb-404-err{color:#ff7b72}.nb-404-dim{color:#8b949e}.nb-404-title{font-family:var(--font-dm-sans), sans-serif;letter-spacing:-1px;margin-bottom:12px;font-size:34px;font-weight:700}.nb-404-desc{color:var(--muted);max-width:460px;margin-bottom:28px;font-size:14px;line-height:1.7}.nb-404-btns{flex-wrap:wrap;gap:12px;display:flex}@media print{:root,:root[data-theme=dark]{--bg:#fff;--fg:#000;--ink:#000;--panel:#fff;--panel-fg:#000;--panel-border:#999;--panel-border-2:#ccc;--muted:#333;--muted-2:#555;--muted-3:#666;--grid:#bbb;--accent:#000;--accent-2:#fff;--live:#000;--ongoing:#000;--green-dot:#000;--panel-muted:#444;--panel-muted-2:#333;--cs-strong:#000;--on-accent:#000;--grid-line:transparent}@page{margin:14mm}body{background-image:none!important}*{box-shadow:none!important}.nb-nav,.nb-footer,.nb-skip,.nb-cmdk-trigger,.nb-theme-toggle,.nb-cmdk-backdrop,.nb-hero-btns,.nb-form,.nb-view-all,.nb-term,.nb-cs-nav,.nb-back,.nb-project-media,.nb-cs-media,.nb-404-term,.nb-404-btns{display:none!important}.js .reveal,.reveal{opacity:1!important;transform:none!important}.nb-hero{break-inside:avoid;border-bottom:1px solid #000!important;grid-template-columns:1fr!important}.nb-hero-left{border-right:none!important;padding:0 0 12px!important}.nb-hero-right{align-items:flex-start;gap:20px;border:none!important;flex-direction:row!important;padding:0 0 12px!important}.nb-stats{flex:1;margin-top:0!important}.nb-photo-wrap{break-inside:avoid;aspect-ratio:auto!important;border:none!important;width:150px!important;height:auto!important;max-height:none!important;overflow:visible!important}.nb-photo-wrap img{max-height:300px;object-fit:contain!important;width:100%!important;height:auto!important}.nb-hl-name{font-size:34px!important}.nb-hl-accent{font-size:22px!important}.nb-section{border-bottom:1px solid #000!important;padding:12px 0!important}.nb-skills{padding:10px 0!important}.nb-contact{border-top:1px solid #000!important}.nb-contact-left,.nb-contact-right{padding:12px 0!important}.nb-contact-heading{margin-bottom:8px!important;font-size:24px!important}.nb-project,.nb-cert{padding:12px 14px!important}.nb-tag-hl,.nb-tag-sec,.nb-tag-lo{color:#000!important;border-color:#000!important}.nb-ptag{border:1px solid #000!important}.nb-hl-name,.nb-page-title,.nb-contact-heading,.nb-404-code{-webkit-text-stroke:0!important;color:#000!important}.nb-contact-link{border:1px solid #000!important}.nb-contact-link .arr{display:none!important}.nb-contact-link[href^=http]:after{content:" " attr(href);font-family:var(--font-space-mono), monospace;color:#333;word-break:break-all;margin-top:3px;font-size:9px;display:block}a{text-decoration:underline;color:#000!important}.nb-hero,.nb-project,.nb-cert,.nb-exp-row,.nb-section{break-inside:avoid}}
@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/c3cb240f9c892514-s.163v2i5cux7-c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_5256f249-module__N4FS5a__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}
@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/4ba802ed8e67eac5-s.04ygcc0k6zvvf.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d7a0600e467cf0bd-s.18awt9904y5ei.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/dc0d9adbac686440-s.p.0~z396rbj0t4w.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b8f2b92a9960dd69-s.09-.4z_6a6fti.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/28e60ca39c9ae554-s.1841exvy3.1-g.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8d05cfa5faa8406c-s.p.0kbulo~7o8gic.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Mono Fallback;src:local(Arial);ascent-override:81.58%;descent-override:26.3%;line-gap-override:0.0%;size-adjust:137.28%}.space_mono_6a38abb9-module__x8sWla__className{font-family:Space Mono,Space Mono Fallback;font-style:normal}
