@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@200;400;600&family=IBM+Plex+Sans:wght@300;400;500;600&display=swap";.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.sidebar .mobile-menu-toggle{display:none}.sidebar{overflow:visible}.sidebar .nav-content{position:relative}.sidebar .ctrl-nav{display:flex!important;position:static!important;float:none!important;align-items:center;justify-content:flex-end;gap:5px;width:auto;transform:none!important;opacity:1!important;background:transparent!important}.sidebar .ctrl-dropdown{display:block;position:relative;flex:0 0 auto}.sidebar .ctrl-nav-trigger{display:inline-flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;padding:10px 13px;border:1px solid transparent;border-radius:9px;text-decoration:none;background:transparent;color:#c4c4c4;font:500 13px/1.5 IBM Plex Sans,sans-serif;white-space:nowrap;cursor:pointer;list-style:none}.sidebar summary.ctrl-nav-trigger::-webkit-details-marker{display:none}.sidebar summary.ctrl-nav-trigger::marker{content:""}.sidebar .ctrl-nav-trigger:hover,.sidebar .ctrl-nav-trigger:focus-visible,.sidebar .ctrl-nav-trigger.is-active,.sidebar .ctrl-dropdown[open]>.ctrl-nav-trigger{background:#2b2b2b;color:#fff;border-color:#373737}.sidebar .ctrl-dropdown[open]>.ctrl-nav-trigger svg{transform:rotate(180deg)}.sidebar .ctrl-mega{display:none;position:absolute;z-index:100;top:calc(100% + 7px);left:0;width:285px;box-sizing:border-box;padding:10px;background:#252525;border:1px solid #424242;border-radius:14px;box-shadow:0 16px 42px #0009}.sidebar .ctrl-dropdown[open]>.ctrl-mega{display:flex;flex-direction:column;gap:3px}.sidebar .ctrl-mega a{display:flex;flex-direction:column;gap:5px;box-sizing:border-box;padding:13px 14px;border-radius:9px;color:#eee;text-decoration:none;background:transparent}.sidebar .ctrl-mega a:hover,.sidebar .ctrl-mega a:focus-visible{background:#343434}.sidebar .ctrl-mega-heading{border-bottom:1px solid #414141;border-radius:0!important;margin-bottom:3px}.sidebar .ctrl-mega-heading span{font-size:15px;font-weight:600}.sidebar .ctrl-mega-link strong{font-size:14px;font-weight:500;color:#fff}.sidebar .ctrl-mega small{font-size:11px;line-height:1.5;color:#ababab}@media(min-width:761px){.sidebar .ctrl-dropdown:hover>.ctrl-mega,.sidebar .ctrl-dropdown:focus-within>.ctrl-mega{display:flex;flex-direction:column;gap:3px}.sidebar .ctrl-dropdown:hover>.ctrl-nav-trigger{background:#2b2b2b;color:#fff}}@media(max-width:760px){.sidebar{padding:12px 16px!important;position:relative;z-index:1000}.sidebar .nav-content{display:flex!important;flex-wrap:nowrap!important;justify-content:space-between!important;gap:12px!important;min-height:48px}.sidebar .mobile-menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:46px;height:44px;flex:0 0 46px;border:1px solid #424242;border-radius:11px;background:#282828;cursor:pointer}.sidebar .mobile-menu-toggle span{display:block;width:20px;height:2px;background:#eee;border-radius:2px;transition:transform .2s,opacity .2s}.sidebar .mobile-menu-toggle[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.sidebar .mobile-menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.sidebar .mobile-menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.sidebar .ctrl-nav{display:none!important;position:absolute!important;top:calc(100% + 1px);left:0;right:0;width:100%!important;max-height:calc(100dvh - 75px);overflow-y:auto;flex-direction:column;align-items:stretch!important;justify-content:flex-start!important;gap:5px!important;flex-wrap:nowrap!important;padding:12px 16px 22px;background:#1c1c1c!important;border-bottom:1px solid #414141;box-shadow:0 24px 40px #0009}.sidebar .ctrl-nav.mobile-open{display:flex!important;visibility:visible!important}.sidebar .ctrl-dropdown{width:100%}.sidebar .ctrl-nav-trigger{width:100%;justify-content:space-between;text-align:left;min-height:48px;padding:13px 15px!important;font-size:15px!important}.sidebar .ctrl-mega{position:static;transform:none;width:100%;margin:5px 0 10px;box-shadow:none;border-radius:10px}.sidebar .ctrl-mega a{min-height:48px}.sidebar .ctrl-mega small{font-size:12px}.sidebar .site-identity .label-gray{display:block}}@media(max-width:390px){.sidebar .ctrl-nav-trigger{font-size:15px!important}}@media(min-width:761px){.sidebar .mobile-menu-toggle{display:none!important}}@media(max-width:0px){.sidebar .ctrl-nav{width:100%!important;justify-content:center;gap:3px;flex-wrap:wrap}.sidebar .ctrl-nav-trigger{padding:9px 10px;font-size:12px}.sidebar .ctrl-mega{left:50%;transform:translate(-50%);width:min(290px,calc(100vw - 36px));top:calc(100% + 7px)}}@media(max-width:390px){.sidebar .ctrl-nav-trigger{font-size:11px;padding:8px}}.sidebar .mobile-menu-heading{display:none}@media(max-width:760px){body.nav-is-open{overflow:hidden}.sidebar .ctrl-nav.mobile-open{display:flex!important;position:fixed!important;inset:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;min-width:0!important;margin:0!important;padding:env(safe-area-inset-top,20px) 20px max(28px,env(safe-area-inset-bottom,20px))!important;box-sizing:border-box!important;overflow-x:hidden!important;overflow-y:auto!important;z-index:99999!important;background:#181818!important;align-items:stretch!important;justify-content:flex-start!important;gap:8px!important;transform:none!important;float:none!important}.sidebar .mobile-menu-heading{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 2px 22px;margin-bottom:8px;border-bottom:1px solid #353535;color:#b8a3e8;font:600 12px IBM Plex Mono,monospace;letter-spacing:.18em}.sidebar .mobile-menu-close{width:44px;height:44px;display:grid;place-items:center;background:#292929;border:1px solid #444;border-radius:12px;color:#fff;font-size:21px;cursor:pointer}.sidebar .ctrl-nav.mobile-open>.ctrl-dropdown,.sidebar .ctrl-nav.mobile-open>a{display:block!important;position:relative!important;float:none!important;width:100%!important;max-width:none!important;min-width:0!important;margin:0!important}.sidebar .ctrl-nav.mobile-open .ctrl-nav-trigger{display:flex!important;width:100%!important;min-width:0!important;max-width:none!important;box-sizing:border-box!important;justify-content:space-between!important;min-height:58px!important;padding:16px!important;font-size:17px!important;border-radius:12px!important;white-space:normal!important}.sidebar .ctrl-nav.mobile-open .ctrl-mega{position:static!important;display:none!important;width:100%!important;max-width:none!important;min-width:0!important;left:auto!important;top:auto!important;transform:none!important;box-shadow:none!important;padding:6px!important;margin:4px 0 12px!important;border-radius:12px!important;box-sizing:border-box!important}.sidebar .ctrl-nav.mobile-open .ctrl-dropdown[open]>.ctrl-mega{display:flex!important}.sidebar .ctrl-nav.mobile-open .ctrl-mega a{width:100%!important;min-width:0!important;padding:13px 16px!important}.sidebar .ctrl-nav.mobile-open .ctrl-mega small{line-height:1.45!important;font-size:12px!important;overflow-wrap:anywhere}.sidebar .ctrl-nav.mobile-open .ctrl-mega-heading span{font-size:15px}}@media(max-width:760px){.sidebar .ctrl-nav:not(.mobile-open){display:none!important;visibility:hidden!important}.sidebar .ctrl-nav.mobile-open{display:flex!important}.sidebar .mobile-menu-toggle{display:flex!important;pointer-events:auto!important;position:relative!important;z-index:100001!important}}@media screen and (max-width:760px){html body .sidebar nav#personal-site-menu.ctrl-nav:not(.mobile-open){display:none!important;visibility:hidden!important;pointer-events:none!important}html body .sidebar nav#personal-site-menu.ctrl-nav.mobile-open{display:flex!important;visibility:visible!important;pointer-events:auto!important}}@media(max-width:760px){.sidebar .mobile-menu-close{appearance:none!important;-webkit-appearance:none!important;box-shadow:none!important;outline:none!important;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;width:44px!important;height:44px!important;display:flex!important;align-items:center!important;justify-content:center!important;color:#ddd!important;line-height:1!important}.sidebar .mobile-menu-close:before,.sidebar .mobile-menu-close:after{content:none!important;display:none!important}.sidebar .mobile-menu-close svg{display:block;flex-shrink:0}.sidebar .mobile-menu-close:hover{color:#fff!important}}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-family:sans-serif}body{margin:0}aside,main,nav,section{display:block}a{background-color:#0000}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}img{border:0}@font-face{font-family:webflow-icons;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format("truetype");font-weight:400;font-style:normal}*{box-sizing:border-box}html{height:100%}body{min-height:100%;color:#333;background-color:#fff;margin:0;font-family:Arial,sans-serif;font-size:14px;line-height:20px}img{max-width:100%;vertical-align:middle;display:inline-block}.w-inline-block{max-width:100%;display:inline-block}.w-button{color:#fff;line-height:inherit;cursor:pointer;background-color:#3898ec;border:0;border-radius:0;padding:9px 15px;text-decoration:none;display:inline-block}h1,h3,h4{margin-bottom:10px;font-weight:700}h1{margin-top:20px;font-size:38px;line-height:44px}h3{margin-top:20px;font-size:24px;line-height:30px}h4{margin-top:10px;font-size:18px;line-height:24px}p{margin-top:0;margin-bottom:10px}ul{margin-top:0;margin-bottom:10px;padding-left:40px}.w-richtext:before,.w-richtext:after{content:" ";grid-area:1 / 1 / 2 / 2;display:table}.w-richtext:after{clear:both}.w-richtext ul{overflow:hidden}.w-nav{z-index:1000;background:#ddd;position:relative}.w-nav:before,.w-nav:after{content:" ";grid-area:1 / 1 / 2 / 2;display:table}.w-nav:after{clear:both}.w-nav-brand{float:left;color:#333;text-decoration:none;position:relative}.w-nav-menu{float:right;position:relative}.w-nav-menu.is-open{display:block!important;position:fixed;left:0;right:0;top:92px}.w-nav-button{float:right;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-ms-user-select:none;user-select:none;padding:18px;font-size:24px;display:none;position:relative}.w-nav-button:focus{outline:0}@media screen and (max-width:991px){.w-nav[data-collapse=medium] .w-nav-menu{display:none}.w-nav[data-collapse=medium] .w-nav-menu.is-visible{display:block;position:fixed;left:0;right:0;top:92px;background:#fff;transform:translateY(-50%);opacity:0;transition:transform .25s ease,opacity .25s ease;will-change:transform,opacity}.w-nav[data-collapse=medium] .w-nav-menu.is-visible.is-open{transform:translateY(0);opacity:1}.w-nav[data-collapse=medium] .w-nav-button{display:block}}@media screen and (max-width:767px){.w-nav-brand{padding-left:10px}}body{color:#333;background-color:#161616;font-family:IBM Plex Sans,sans-serif;font-size:14px;line-height:20px}h1{color:#fff;letter-spacing:-.5px;margin-top:0;margin-bottom:18px;font-size:58px;font-weight:300;line-height:72px}h3{color:#fff;margin-top:0;margin-bottom:12px;font-size:32px;font-weight:400;line-height:42px}h4{color:#fff;margin-top:0;margin-bottom:0;font-size:18px;font-weight:400;line-height:24px}p{color:#a8a8a8;margin-bottom:10px;font-size:16px;line-height:26px}.content{width:100vw;height:100vh;display:flex}.sidebar{width:100%;height:100%;max-width:280px;background-color:#1c1c1c;border-right:1px solid #353535;padding:32px}.nav-content{width:100%;height:100%;grid-column-gap:36px;grid-row-gap:36px;flex-direction:column;display:flex}.label-white{color:#fff;margin-bottom:2px;font-size:16px;line-height:24px}.label-gray{color:#a8a8a8;font-size:14px;line-height:22px}.niv-data{align-items:center;display:flex}.niv-image{width:48px;height:48px;border:1px solid #353535;border-radius:100px;margin-right:12px}.main{width:100%;height:100%;background-image:linear-gradient(#1c1c1ca3,#1c1c1ca3),url(./grid-top-right.svg),linear-gradient(#1c1c1c3d,#1c1c1c3d);background-position:0 0,0 0,0 0;background-size:auto,auto 1130px,auto;flex-direction:column;align-items:center;padding:46px 48px 82px;display:flex;overflow:auto}.container{width:100%;max-width:680px;grid-column-gap:68px;grid-row-gap:68px;flex-direction:column;display:flex}.lead{max-width:580px;color:#fff;margin-bottom:0;line-height:26px}.button{color:#fff;background-color:#1c1c1c;border:1px solid #363636;border-right-color:#353535;border-radius:8px;padding:12px 20px;font-size:14px;font-weight:500;line-height:26px;transition:all 40ms}.button:hover{background-color:#202020;box-shadow:0 2px 4px #080808d1}.fold-content{margin-bottom:48px}.mini-label-white{color:#fff;letter-spacing:.75px;text-transform:uppercase;margin-top:24px;font-family:IBM Plex Mono,sans-serif;font-size:10px;font-weight:400;line-height:24px}.mini-label-white.gray-color{color:#a8a8a8}.chips-container{grid-column-gap:12px;grid-row-gap:12px;flex-wrap:wrap;align-items:flex-start;margin-top:8px;display:flex}.chips-container.chips-container-small-width{max-width:380px}.single-chip{color:#fff;background-color:#353535;border-radius:8px;padding:8px 12px;font-family:IBM Plex Mono,sans-serif}.single-chip.small-chip{padding:4px 8px;font-size:12px}.single-item{font-size:16px}.resouce-items{grid-column-gap:64px;grid-row-gap:64px;flex-direction:column;display:flex}.items-container{flex-direction:column}.nav-link-image{width:24px;opacity:.48}.nav-link-container{grid-column-gap:12px;grid-row-gap:12px;color:#a8a8a8;text-transform:capitalize;border:1px solid rgba(0,0,0,0);border-radius:8px;justify-content:flex-start;align-items:center;padding:12px;text-decoration:none;display:flex}.nav-link-container.w--current{color:#fff;background-color:#2b2b2b;border-color:#353535}.projects-container{grid-column-gap:24px;grid-row-gap:24px;align-items:stretch;text-decoration:none;display:flex}.single-projects-category{display:flex}.projects-category-image-container{min-height:180px;min-width:180px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#3535351f;border:1px #000;border-radius:12px;justify-content:center;align-items:center;display:flex;box-shadow:0 1px 1px #ffffff3d,0 -1px 1px #ffffff3d}.projects-category-image-container.devops-img{background-image:none;background-position:0 0}.single-projects-content{flex-direction:column;justify-content:center;display:flex}.projects-section{grid-column-gap:32px;grid-row-gap:32px;flex-direction:column;display:flex}.tech-tools-container{flex-direction:column;justify-content:flex-end;display:flex}.back-nav-container{color:#fff;letter-spacing:2px;text-transform:uppercase;align-items:center;padding-bottom:0;font-weight:500;display:flex}.back-nav-img{width:18px}.back-nav-button{color:#fff;background-color:#0000;border-radius:8px;margin-top:-12px;padding:12px 16px;text-decoration:none;transition:all .12s;display:flex}.back-nav-button:hover{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0808083d}.project-desc{color:#a8a8a8;line-height:24px}.project-desc.project-desc-list{margin-left:-24px}.content-container{grid-column-gap:32px;grid-row-gap:32px;flex-direction:column;display:flex}.projects-category-image{width:82px;height:82px}@media screen and (max-width:991px){.content{flex-direction:column}.sidebar{height:auto;max-width:100%;padding-top:18px;padding-bottom:18px;padding-right:28px}.nav-content{height:auto;grid-column-gap:0px;grid-row-gap:0px;flex-direction:row;justify-content:space-between;align-items:center}.fold-content{margin-bottom:32px}.nav-link-container{background-color:#1c1c1c;border-radius:0;padding:18px 28px 18px 32px}.nav-link-container:active{color:#fff;background-color:#2b2b2b}.navbar-icon{width:32px;height:32px;color:#fff;font-size:32px}.navbar-icon-button{padding:12px;transition:all .24s}}@media screen and (max-width:767px){h1{font-size:54px;line-height:64px}h4{font-size:32px;font-weight:300;line-height:48px}.sidebar{padding-left:24px;padding-right:18px}.main{padding-left:28px;padding-right:28px}.container{grid-column-gap:68px;grid-row-gap:68px}.fold-content{margin-bottom:24px}.nav-link-container{padding-left:24px;padding-right:18px}.projects-container{flex-direction:column}.projects-category-image-container{min-height:124px;min-width:124px;margin-bottom:-42px;position:relative}.single-projects-content{position:relative;top:1.75rem}.projects-section{grid-column-gap:68px;grid-row-gap:68px}.projects-category-image{width:64px;height:64px}}html,body{min-height:100%}.content{width:100%;min-height:100vh;height:auto;display:flex;flex-direction:column}.sidebar{width:100%;max-width:none;height:auto;padding:14px clamp(18px,5vw,64px);background:#1c1c1c;border-right:0;border-bottom:1px solid #353535;position:relative;z-index:10}.nav-content{width:100%;max-width:1160px;margin:0 auto;min-height:54px;height:auto;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:24px}.sidebar .w-nav-brand{float:none;flex:0 0 auto;display:inline-flex;align-items:center;gap:12px;padding:0}.site-monogram{width:42px;height:42px;border:1px solid #464646;background:#292929;border-radius:12px;color:#fff;font:600 23px/40px IBM Plex Mono,monospace;text-align:center}.site-monogram-dot{color:#a8a8a8}.site-identity{display:flex;flex-direction:column}.sidebar .label-white{display:block}.sidebar .label-gray{display:block;font-size:12px;line-height:18px}.sidebar .w-nav-menu,.sidebar .w-nav[data-collapse=medium] .w-nav-menu{display:flex!important;float:none;position:static!important;background:transparent;align-items:center;gap:4px;transform:none!important;opacity:1!important;width:auto}.sidebar .nav-link-container{border-radius:9px;text-transform:none;white-space:nowrap;padding:10px 14px;font-size:13px;line-height:22px;background:transparent}.sidebar .nav-link-container:hover{color:#fff;background:#272727}.sidebar .nav-link-container.w--current{background:#303030}.sidebar .navbar-icon-button{display:none!important}.main{height:auto;min-height:calc(100vh - 84px);overflow:visible;padding:64px clamp(18px,5vw,64px) 90px}@media(max-width:760px){.sidebar{padding:12px 16px 10px}.nav-content{flex-wrap:wrap;justify-content:center;gap:12px}.site-identity .label-gray{display:none}.sidebar .w-nav-menu{width:100%;justify-content:center;gap:4px;flex-wrap:wrap}.sidebar .nav-link-container{padding:9px 10px;font-size:12px;line-height:18px}.main{min-height:calc(100vh - 134px);padding:38px 24px 70px}}@media(max-width:400px){.sidebar .nav-link-container{padding:8px 7px;font-size:11px}h1{font-size:clamp(36px,10vw,50px);line-height:1.14}}.personal-page{max-width:950px;gap:44px;padding-bottom:50px}.personal-page .eyebrow{color:#b7a1f6;font:600 11px/1.5 IBM Plex Mono,monospace;letter-spacing:.16em;text-transform:uppercase;margin:0 0 20px}.personal-page h1{font-size:clamp(38px,5.7vw,68px);line-height:1.12;letter-spacing:-.045em;font-weight:500;margin:0 0 24px}.personal-page h2{font-size:clamp(23px,3vw,32px);line-height:1.18;letter-spacing:-.025em;margin:0 0 18px}.personal-page .muted-headline{color:#a9a9a9}.personal-page .lead{font-size:clamp(17px,2.2vw,20px);line-height:1.7;max-width:780px;font-weight:400}.personal-page p{line-height:1.78}.personal-page .intro{padding:20px 0 32px}.personal-page .intro>p:not(.eyebrow){max-width:760px}.personal-page .actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.personal-page .button{text-decoration:none;display:inline-flex;align-items:center;background:#f2f2f2;color:#151515;border-color:#f2f2f2;padding:12px 19px}.personal-page .button.ghost{background:transparent;color:#f5f5f5;border-color:#414141}.personal-page .button:hover{filter:brightness(.9)}.tile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.story-tile,.writing-panel{border:1px solid #353535;background:#202020e0;border-radius:16px;padding:clamp(22px,3vw,33px)}.story-tile{text-decoration:none;color:#fff;display:flex;flex-direction:column;gap:10px;transition:border-color .2s,transform .2s}a.story-tile:hover{border-color:#a78bfa;transform:translateY(-3px)}.story-tile h2{margin:4px 0 0}.story-tile p{margin:0;color:#b9b9b9}.tile-index,.timeline-date{font:500 11px/1.5 IBM Plex Mono,monospace;letter-spacing:.11em;text-transform:uppercase;color:#b7a1f6}.tile-arrow{margin-top:auto;align-self:end;font-size:24px}.writing-panel{margin:0 0 18px}.writing-panel p:last-child{margin-bottom:0}.small-copy,.quiet-note{font:400 12px/1.7 IBM Plex Mono,monospace;color:#8e8e8e}.quiet-note{padding:25px 0;text-align:center}.timeline{border-left:1px solid #454545;margin-left:10px;padding-left:28px}.timeline-item{position:relative;margin:0 0 43px}.timeline-item:before{content:"";position:absolute;width:9px;height:9px;border-radius:50%;background:#ad8df1;left:-33px;top:4px}.timeline-item h2{margin:10px 0}.timeline-item p{max-width:800px}.location-tags{display:flex;gap:10px;flex-wrap:wrap}.location-tags span{border:1px solid #3a3a3a;border-radius:999px;padding:10px 14px;color:#eee;font:12px IBM Plex Mono,monospace}.state-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:25px 0 22px}.state-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:67px;border:1px solid #3c3c3c;background:#252525;border-radius:9px;cursor:pointer;text-align:center;padding:8px 3px}.state-tile input{position:absolute;opacity:0;width:1px;height:1px}.state-tile:has(input:checked){background:#41345d;border-color:#b7a1f6}.state-tile:has(input:focus-visible){outline:2px solid #c4adff;outline-offset:2px}.state-tile span{font:600 15px IBM Plex Mono,monospace;color:#fafafa}.state-tile small{color:#a1a1a1;font-size:9px}.tracker-total{font:600 14px IBM Plex Mono,monospace;color:#cdbbff;margin-top:22px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.photo-placeholder{border:1px dashed #494949;border-radius:13px;min-height:220px;padding:20px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(140deg,#27272c,#161616);color:#888}.photo-placeholder strong{font-size:21px;color:#e7e7e7;font-weight:400}.photo-placeholder>span:last-child{font:11px IBM Plex Mono,monospace}@media(max-width:750px){.tile-grid{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.state-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.personal-page{gap:28px}.personal-page .intro{padding-top:0}}@media(max-width:430px){.photo-grid{grid-template-columns:1fr}.state-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.map-scroll{width:100%;overflow-x:auto;padding-bottom:12px}.map-scroll .state-grid{display:grid;grid-template-columns:repeat(13,minmax(43px,1fr));grid-template-rows:repeat(7,64px);min-width:700px;gap:5px}.map-scroll .state-tile{min-height:0;padding:4px 2px}.map-scroll .state-tile small{font-size:8px;line-height:1.1}.content{min-height:100vh;display:flex;flex-direction:column}.main{flex:1;width:100%;min-height:0}.site-footer{border-top:1px solid #343434;background:#1b1b1b;padding:40px clamp(18px,5vw,64px) 24px;color:#bbb}.footer-inner{max-width:1160px;margin:0 auto}.footer-main,.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px}.footer-brand{display:inline-flex;align-items:center;gap:13px;text-decoration:none;color:#f1f1f1;font-size:15px;font-weight:600}.footer-brand-mark{width:38px;height:38px;border-radius:10px;background:#292929;border:1px solid #505050;display:inline-flex;align-items:center;justify-content:center;font:600 20px IBM Plex Mono,monospace}.footer-brand-mark span{color:#a8a8a8}.footer-email{color:#f1f1f1;text-decoration:none;font:400 14px IBM Plex Mono,monospace}.footer-email:hover{color:#c9b3ff}.footer-bottom{border-top:1px solid #303030;margin-top:28px;padding-top:20px;color:#888;font:11px IBM Plex Mono,monospace}.map-scroll .state-tile{cursor:default}.map-scroll .state-tile.is-visited{background:#41345d;border-color:#b7a1f6}.map-legend{display:flex;gap:20px;align-items:center;flex-wrap:wrap;font:12px IBM Plex Mono,monospace;color:#c2c2c2}.map-legend span{display:inline-flex;align-items:center;gap:8px}.map-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid #505050;background:#252525}.map-legend i.visited-key{background:#41345d;border-color:#b7a1f6}@media(max-width:600px){.site-footer{padding:32px 20px 22px}.footer-main{align-items:flex-start}.footer-bottom{gap:7px;flex-direction:column;align-items:flex-start}}.contractor-tools{margin:32px 0 36px}.contractor-tools .tools-intro{max-width:690px;margin:0 0 30px}.contractor-tools .tools-intro h2{font-size:clamp(30px,4.2vw,44px);line-height:1.15;letter-spacing:-.035em;color:#f4f4f4;margin:0 0 12px}.contractor-tools .tools-intro h2 span{color:#a6a6a6}.contractor-tools .tools-intro p:last-child{max-width:650px}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.tool-card{border:1px solid #383838;border-radius:16px;background:#202020;padding:26px;min-width:0}.tool-top{margin-bottom:24px}.tool-top .tool-number{font:600 10px/1.6 IBM Plex Mono,monospace;letter-spacing:.12em;color:#b7a1f6}.tool-top h3{font-size:25px;font-weight:500;letter-spacing:-.025em;margin:10px 0 8px;line-height:1.2}.tool-top p{font-size:14px;line-height:1.65;margin:0}.tool-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tool-fields label,.construction-inputs label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:500;color:#eee}.tool-fields label span,.construction-inputs label span{color:#888;font-size:11px;font-weight:400}.tool-fields input,.tool-fields select,.construction-inputs input,.construction-inputs select{appearance:none;border:1px solid #454545;background:#171717;color:#fff;outline:0;border-radius:8px;padding:11px 12px;width:100%;min-width:0;font:14px IBM Plex Mono,monospace;line-height:1.35}.tool-fields input:focus,.tool-fields select:focus,.construction-inputs input:focus,.construction-inputs select:focus{border-color:#b7a1f6;box-shadow:0 0 0 2px #b7a1f633}.tool-answer{border-top:1px solid #3b3b3b;padding-top:18px;margin-top:24px;display:flex;flex-direction:column;gap:7px}.tool-answer>span{color:#a9a9a9;font:11px IBM Plex Mono,monospace;text-transform:uppercase;letter-spacing:.07em}.tool-answer strong{color:#e7dfff;font:600 clamp(22px,2.8vw,30px)/1.2 "IBM Plex Mono",monospace;word-break:break-word}.tool-answer small{font-size:12px;color:#b5b5b5;line-height:1.6}.tool-error .tool-answer strong{color:#ffc2b3;font-size:21px}.tool-note,.tools-disclaimer{margin:16px 0 0;color:#888;font-size:11px;line-height:1.65}.construction-card{margin-top:17px}.construction-inputs{display:grid;grid-template-columns:1fr .75fr 1fr;gap:16px}.tools-disclaimer{margin:18px 0 0}@media(max-width:760px){.tool-grid{grid-template-columns:1fr}.tool-card{padding:21px}.construction-inputs{grid-template-columns:1fr}.tool-top h3{font-size:23px}}@media(max-width:385px){.tool-fields{grid-template-columns:1fr}}.tech-fields{display:flex;flex-direction:column;gap:13px}.tech-fields label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:500;color:#eee}.tech-fields label>span{font-size:11px;color:#929292}.tech-fields input:not([type=range]):not([type=color]),.tech-fields select,.tech-fields textarea{width:100%;min-width:0;background:#171717;border:1px solid #454545;color:#f6f6f6;padding:11px 12px;border-radius:9px;font:13px/1.5 IBM Plex Mono,monospace}.tech-fields input[type=file]{padding:11px;border:1px dashed #505050;border-radius:8px;color:#ccc;max-width:100%}.tech-fields input[type=range]{accent-color:#b7a1f6}.tech-fields input[type=color]{height:44px;width:100%;padding:3px;border:1px solid #444;border-radius:8px;background:#171717;cursor:pointer}.tech-fields input:focus-visible,.tech-fields textarea:focus-visible,.tech-fields select:focus-visible{outline:2px solid #b7a1f6;outline-offset:1px}.tech-fields textarea{resize:vertical}.tech-fields .button,.tech-document-grid .button{align-self:flex-start;cursor:pointer;font:500 13px IBM Plex Sans,sans-serif;line-height:1.5}.tech-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.tech-output{background:#171717;border:1px solid #393939;border-radius:10px;padding:14px;white-space:pre-wrap;overflow-wrap:anywhere;color:#dedede;font:12px/1.6 IBM Plex Mono,monospace;min-height:65px;margin:0}.tech-document-grid{margin-top:17px}.tech-guide{margin:0 0 22px}.tech-guide .tool-guide-label{color:#c7b5fa;font:600 10px/1.5 IBM Plex Mono,monospace;letter-spacing:.1em;margin:18px 0 10px}.tech-guide ol{margin:0;padding-left:22px;display:grid;gap:11px;color:#bcbcbc;font-size:13px;line-height:1.65}.tech-guide li::marker{color:#b7a1f6;font-family:IBM Plex Mono,monospace}.tech-guide strong{color:#eee;font-weight:600}.sidebar .nav-group{position:relative;display:flex;align-items:center}.sidebar .nav-submenu{position:absolute;z-index:30;left:0;top:calc(100% + 4px);min-width:190px;display:flex;flex-direction:column;gap:2px;padding:8px;background:#222;border:1px solid #414141;border-radius:11px;box-shadow:0 14px 30px #0006;opacity:0;visibility:hidden;transform:translateY(-5px);transition:opacity .15s,transform .15s,visibility .15s}.sidebar .nav-group:hover .nav-submenu,.sidebar .nav-group:focus-within .nav-submenu{opacity:1;visibility:visible;transform:translateY(0)}.sidebar .nav-submenu a{color:#c9c9c9;text-decoration:none;border-radius:7px;padding:10px 12px;font-size:13px;white-space:nowrap}.sidebar .nav-submenu a:hover,.sidebar .nav-submenu a:focus-visible{color:#fff;background:#353535}.journal-tabs{display:flex;flex-wrap:wrap;gap:9px}.journal-tabs a{color:#dedede;text-decoration:none;font:12px IBM Plex Mono,monospace;border:1px solid #464646;padding:9px 13px;border-radius:30px}.journal-tabs a:hover{background:#303030}.journal-feed{display:grid;gap:18px}.journal-post{padding:clamp(24px,4vw,42px);background:#202020;border:1px solid #373737;border-radius:16px}.journal-post h2{margin:15px 0;font-size:clamp(24px,3.3vw,34px)}.journal-post p{max-width:700px;color:#c2c2c2}.journal-meta,.journal-post-footer{font:11px IBM Plex Mono,monospace;letter-spacing:.08em;color:#bdaafa}.journal-post-footer{padding-top:18px;margin-top:24px;border-top:1px solid #383838;color:#999;letter-spacing:0}@media(max-width:760px){.sidebar .nav-group{flex-direction:column}.sidebar .nav-submenu{position:static;display:flex;opacity:1;visibility:visible;transform:none;min-width:0;padding:0;border:0;box-shadow:none;background:transparent;flex-direction:row;gap:2px}.sidebar .nav-submenu a{font-size:10px;padding:3px 5px;color:#aaa}.sidebar .w-nav-menu{row-gap:8px}}.resume-hero{padding:20px 0 46px;border-bottom:1px solid #3a3a3a}.resume-hero-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:42px}.resume-hero-top .eyebrow{margin:0}.resume-edition{font:11px IBM Plex Mono,monospace;color:#999;letter-spacing:.08em}.resume-hero h1{font-size:clamp(43px,7vw,80px);line-height:1.08;font-weight:500;letter-spacing:-.055em;max-width:850px}.resume-hero .lead{max-width:680px;color:#c4c4c4}.resume-stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:46px}.resume-stat-row>div{border-top:1px solid #464646;padding-top:16px;display:flex;flex-direction:column;gap:9px}.resume-stat-row strong{font:500 clamp(28px,4vw,42px)/1 "IBM Plex Mono",monospace;color:#f2f2f2}.resume-stat-row span{font-size:12px;color:#969696;line-height:1.5}.resume-section-intro{display:flex;align-items:end;justify-content:space-between;gap:30px;margin:15px 0 8px}.resume-section-intro h2{font-size:clamp(29px,4vw,42px);margin:0}.resume-section-intro .eyebrow{margin-bottom:12px}.resume-section-intro>p{max-width:275px;font-size:13px;color:#999;margin:0}.resume-timeline{display:flex;flex-direction:column}.resume-chapter{display:grid;grid-template-columns:62px minmax(0,1fr);gap:23px}.resume-rail{position:relative;display:flex;flex-direction:column;align-items:center;color:#cab6ff;font:600 15px IBM Plex Mono,monospace}.resume-rail>span{height:48px;width:48px;background:#2e273d;border:1px solid #604b83;border-radius:13px;display:flex;align-items:center;justify-content:center;z-index:1}.resume-rail i{flex:1;width:1px;background:linear-gradient(#6a5294,#3c3c3c);min-height:18px}.resume-chapter:last-child .resume-rail i{background:transparent}.resume-chapter-body{border:1px solid #383838;background:#202020;border-radius:15px;padding:clamp(22px,3vw,34px);margin-bottom:20px}.resume-period{font:600 10px/1.5 IBM Plex Mono,monospace!important;color:#baa6f7!important;letter-spacing:.12em;margin:0 0 15px!important}.resume-chapter-body h3{color:#f4f4f4;font-size:clamp(23px,3vw,32px);font-weight:500;letter-spacing:-.03em;line-height:1.22;margin:0 0 18px}.resume-chapter-body p{max-width:700px;color:#bdbdbd;font-size:15px;line-height:1.8}.resume-tag{display:inline-flex;border:1px solid #464646;border-radius:99px;color:#a4a4a4;font:10px IBM Plex Mono,monospace;letter-spacing:.06em;padding:7px 11px;margin-top:12px}.resume-inline-link{display:block;color:#d0bbff;font:500 13px IBM Plex Sans,sans-serif;text-decoration:none;margin:15px 0}.resume-inline-link:hover{text-decoration:underline}.resume-progress{max-width:490px;margin:24px 0}.resume-progress-label{display:flex;justify-content:space-between;font:11px IBM Plex Mono,monospace;color:#ccc;margin-bottom:10px}.resume-progress-track{height:6px;background:#414141;border-radius:20px;overflow:hidden}.resume-progress-track span{display:block;height:100%;border-radius:20px;background:#b79bfa}.resume-beyond{margin:35px 0 20px;padding:clamp(25px,4vw,45px);border:1px solid #444;background:linear-gradient(130deg,#292535,#202020 70%);border-radius:18px}.resume-beyond h2{font-size:clamp(27px,4vw,40px);max-width:540px}.resume-interests{display:flex;flex-wrap:wrap;gap:9px;margin:27px 0}.resume-interests span{border:1px solid #524a61;background:#ffffff06;border-radius:8px;padding:10px 12px;color:#e0d8ee;font-size:12px}.resume-beyond>p:not(.eyebrow){max-width:670px}@media(max-width:650px){.resume-section-intro{display:block}.resume-section-intro>p{max-width:100%;margin-top:14px}.resume-chapter{grid-template-columns:39px minmax(0,1fr);gap:11px}.resume-rail>span{height:36px;width:36px;font-size:12px;border-radius:9px}.resume-chapter-body{padding:20px}.resume-stat-row{gap:12px}.resume-stat-row span{font-size:11px}.resume-hero-top{margin-bottom:25px}}
