:root{color-scheme:light dark;--paper:light-dark(#f8f8f5,#191b1a);--ink:light-dark(#262c28,#e5e9e3);--secondary:light-dark(#535e55,#aab6aa);--line:light-dark(#d0d6cc,#3d473c);--accent:light-dark(#596c4b,#a7ba97);--invert:invert(0);--theme-light-display:inline-flex;--theme-dark-display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--invert:invert(1);--theme-light-display:none;--theme-dark-display:inline-flex}}:root[data-theme=dark]{color-scheme:dark;--invert:invert(1);--theme-light-display:none;--theme-dark-display:inline-flex}:root[data-theme=light]{color-scheme:light;--invert:invert(0);--theme-light-display:inline-flex;--theme-dark-display:none}*{box-sizing:border-box}html{scroll-padding-top:24px}body{background:var(--paper);color:var(--ink);margin:0;font:400 16px/1.6 IBM Plex Sans,sans-serif}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-underline-offset:4px}button{cursor:pointer}h1,h2,h3,p{font:inherit;margin:0}h3{margin-bottom:10px;font-weight:500}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,textarea{max-width:100%}.page{min-height:100svh;padding:64px 64px 27px}.content{max-width:820px;margin:0 auto}.intro{padding-bottom:40px}.location{color:var(--secondary);flex-wrap:wrap;gap:5px 25px;display:flex}h1{letter-spacing:-.045em;margin:23px 0;font-size:44px;font-weight:500;line-height:1.15}.name-period{color:var(--accent)}.intro p{max-width:590px;margin-bottom:10px}.intro .summary{color:var(--secondary);margin-bottom:0}.section{border-top:1px solid var(--line);grid-template-columns:105px minmax(0,1fr);gap:30px;padding:28px 0;display:grid}.section-label{color:var(--secondary)}.section-body p{color:var(--secondary);margin-bottom:10px}.section-body p:last-child{margin-bottom:0}.employer{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:5px 18px;margin-bottom:4px;display:flex}.employer h3{margin:0}.employer a{text-decoration:none}.employer a:hover{text-decoration:underline}.date{color:var(--secondary)}.section-body .role{color:var(--ink);margin-bottom:13px}.toolkit{container:toolkit/inline-size}.technology-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;margin:0;padding:0;list-style:none;display:grid}.technology-grid li{min-width:0}.technology-grid .technology{white-space:normal}.technology-name{min-width:0}.technology{white-space:nowrap;color:var(--secondary);align-items:center;gap:7px;display:inline-flex}img[data-tech]{object-fit:contain;width:20px;height:20px;filter:brightness(0) var(--invert);opacity:.9;flex:none}img[data-tech=aws]{width:24px;height:22px}img:is([data-tech=react],[data-tech=aws]){filter:brightness(0) drop-shadow(.22px 0 0 #000) drop-shadow(-.22px 0 0 #000) var(--invert)}img[data-tech=postgresql]{width:22px;height:22px}img[data-tech=qlik]{width:26px;height:26px;filter:brightness(0) drop-shadow(.26px 0 0 #000) drop-shadow(-.26px 0 0 #000) drop-shadow(0 .18px 0 #000) drop-shadow(0 -.18px 0 #000) var(--invert);margin:-3px}img[data-tech=nodejs]{filter:brightness(0) drop-shadow(.24px 0 0 #000) drop-shadow(-.24px 0 0 #000) drop-shadow(0 .15px 0 #000) drop-shadow(0 -.15px 0 #000) var(--invert)}img[data-tech=trpc]{width:24px;height:24px;filter:var(--invert)}.inline-technology{gap:5px}.inline-technology img{width:16px;height:16px}.contact-links{flex-wrap:wrap;align-items:baseline;gap:10px 25px;margin-top:17px;display:flex;position:relative}.social-links{flex-wrap:wrap;align-items:baseline;gap:10px 25px;display:flex}.social-links>a,.contact-disclosure>summary{color:var(--ink);border:0;border-bottom:1px solid var(--line);cursor:pointer;background:0 0;border-radius:0;align-items:center;gap:7px;padding:2px 0;text-decoration:none;display:inline-flex}.social-links>a:hover,.contact-disclosure>summary:hover{color:var(--accent);border-bottom-color:var(--accent)}.contact-disclosure{min-width:0;scroll-margin-block:24px;display:block}.contact-disclosure[open]{flex-basis:100%}.contact-disclosure>summary{list-style:none}.contact-disclosure>summary::-webkit-details-marker{display:none}.contact-disclosure[open]>summary{border-bottom-color:var(--accent)}@supports (grid-template-rows:subgrid) and selector(details::details-content){.contact-links{grid-template-rows:auto auto;grid-template-columns:max-content minmax(0,1fr);align-items:start;display:grid}.contact-disclosure{grid-area:1/1/span 2/-1;grid-template-columns:subgrid;grid-template-rows:subgrid;display:grid}.contact-disclosure>summary{grid-area:1/1;justify-self:start}.contact-disclosure::details-content{grid-area:2/1/auto/-1}.contact-disclosure:not([open])::details-content{display:none}.social-links{grid-area:1/2;position:relative}@media (width<=450px){.contact-links{grid-template-rows:auto auto auto;grid-template-columns:1fr}.contact-disclosure{grid-row:1/span 3}.contact-disclosure::details-content{grid-row:3}.social-links{grid-area:2/1}}}.contact-form{grid-template-columns:1fr 1fr;gap:16px;margin-top:8px;padding:15px 0;display:grid}.contact-form label{color:var(--secondary);min-width:0}.contact-form input,.contact-form textarea{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:2px;width:100%;margin-top:6px;padding:8px;display:block}.contact-form textarea{resize:vertical}.contact-form input[aria-invalid=true],.contact-form textarea[aria-invalid=true]{border-color:var(--ink)}.message-field,.prefill-review,.privacy-note,.form-actions{grid-column:1/-1}.section-body .privacy-note{margin:0}.form-actions{flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}.form-actions button{background:var(--ink);color:var(--paper);border:0;border-radius:2px;align-items:center;gap:7px;padding:8px 14px;display:inline-flex}.form-actions button:disabled{opacity:.6;cursor:wait}.form-status{color:var(--secondary)}.field-error{color:var(--ink);margin-top:5px;display:block}.footer{border-top:1px solid var(--line);color:var(--secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:17px;display:flex}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}.ui-icon{flex:none;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.ui-icon svg{width:100%;height:100%}.email-link{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.footer-right{white-space:nowrap;align-items:center;gap:24px;display:flex}.theme-toggle{color:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:2px 0;display:inline-flex}.theme-light,.theme-dark{align-items:center;gap:7px}.theme-light{display:var(--theme-light-display)}.theme-dark{display:var(--theme-dark-display)}.document{padding:0 0 36px}.document h1{margin-top:0}.document h2{margin:28px 0 10px;font-weight:500}.document p,.document ul{color:var(--secondary);margin:0 0 14px}.document pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;color:var(--ink);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}.document code{font:inherit;overflow-wrap:anywhere}.document .back{margin-bottom:25px}.document .back a{color:var(--secondary)}[hidden]{display:none!important}canvas[data-syntax-canvas]{pointer-events:none;z-index:10;width:100%;height:100%;position:fixed;inset:0}@container toolkit (width<=600px){.technology-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}}@media (width<=650px){.page{padding:43px 24px 24px}h1{font-size:35px}.intro{padding-bottom:32px}.section{grid-template-columns:1fr;gap:13px;padding:24px 0}.employer{align-items:start}.footer-right{gap:18px}.theme-toggle{justify-content:center;min-width:44px;min-height:44px}.social-links>a,.contact-disclosure>summary{min-height:44px}.contact-form{grid-template-columns:1fr}.footer-right>a{padding:10px 0}.document{padding-bottom:24px}}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-sans-latin-500-normal.6ng42L7E.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-500-normal.BgVn5rGT.woff)format("woff")}
