@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/82ef96de0e8f4d8c-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/a6ecd16fa044d500-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/bd82c78e5b7b3fe9-s.woff2) format("woff2");unicode-range:u+0900-097f,u+1cd0-1cf4,u+1cf7-1cf9,u+200c-200d,u+20a8,u+20b9,u+20f0,u+25cc,u+a830-a839,u+a8e0-a8ff,u+11b00-11b0a}@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/c32c8052c071fc42-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/6f22fce21a7c433c-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1d8a05b60287ae6c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/77c207b095007c34-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Noto Sans;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(/_next/static/media/1755441e3a2fa970-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Noto Sans Fallback;src:local("Arial");ascent-override:100.54%;descent-override:27.56%;line-gap-override:0.00%;size-adjust:106.33%}.__className_06a98c{font-family:Noto Sans,Noto Sans Fallback;font-style:normal}.__variable_06a98c{--font-noto-sans:"Noto Sans","Noto Sans Fallback"}body,html{min-height:100%;margin:0}:root{--chakra-fonts-body:var(--font-noto-sans),sans-serif;--chakra-fonts-heading:var(--font-noto-sans),sans-serif;--font-size-base:16px;--font-size-subheading:14px;--font-size-caption:12px;--icon-size:2rem;--brown-900:#2d251d;--brown-700:#51483d;--brown-500:#6b6256;--cream-100:#f2eedf;--cream-200:#e9e5d5;--cream-400:#cdae77;--maroon-900:#59222c;--maroon-700:#702c38;--maroon-200:#f0e1df;--color-orange:#8a5633;--color-light-orange:#eadfc9;--color-light-green:#c6ddc4;--color-green:#3f7054;--color-gmail:#d14836;--color-linkedin:#0077b5;--color-github:#333333;--color-stack-overflow:#f48024;--color-codepen:#000000;--color-react:#169ec0;--color-typescript:#276db3;--color-nextjs:#24211d;--color-nodejs:#4c8a38;--color-redux:#7045ad;--color-git:#d24b35;--case-desk-color:#38271d;--color-gray:#5f5748;--color-light-gray:#b0a99c;--color-white:#ffffff;--border-color-light:#f4efc9;--portrait-outline-shadow:#777158;--portrait-shadow-rgb:48 40 27;--desk-grain-shadow-rgb:20 10 5;--desk-grain-highlight-rgb:218 158 91;--desk-grain-deep-shadow-rgb:12 8 5;--desk-grain-speckle-rgb:255 231 192;--desk-gradient-start:#70452b;--desk-gradient-middle:#49301f;--desk-gradient-end:#805233;--spread-spine-shadow-rgb:51 38 25;--book-cover-shading-rgb:60 40 20;--book-cover-highlight-rgb:255 240 210;--book-cover-inset-shadow-rgb:70 45 20;--book-cover-shadow-rgb:16 10 6;--book-sheet-border-rgb:88 77 56;--book-sheet-inset-shadow-rgb:0 0 0;--book-sheet-shadow-rgb:16 10 6}*{box-sizing:border-box}body{color:var(--brown-900);font-family:var(--font-noto-sans),sans-serif;font-size:var(--font-size-base)}.case-desk{display:flex;flex-direction:column;isolation:isolate;min-height:100dvh;overflow:hidden;padding:2rem;position:relative;background-color:var(--case-desk-color);background-image:repeating-linear-gradient(2deg,transparent 0 13px,rgb(var(--desk-grain-shadow-rgb)/14%) 14px,transparent 17px 28px),repeating-linear-gradient(178deg,rgb(var(--desk-grain-highlight-rgb)/10%) 0 2px,transparent 3px 20px,rgb(var(--desk-grain-deep-shadow-rgb)/13%) 21px 23px,transparent 24px 43px),linear-gradient(112deg,var(--desk-gradient-start) 0,var(--desk-gradient-middle) 43%,var(--desk-gradient-end) 100%)}.desk-grain{background-image:radial-gradient(rgb(var(--desk-grain-speckle-rgb)/23%) .6px,transparent .8px);background-size:4px 4px;inset:0;opacity:.22;pointer-events:none;position:absolute;z-index:-1}.dossier-wrap{margin:auto;max-width:1400px;padding:0 1.5rem;position:relative;width:100%}.dossier-button{background-color:var(--maroon-700);color:var(--color-white);border:none;padding:.5rem 1rem;cursor:pointer;text-transform:uppercase;transition:background-color .2s ease}.dossier-button:focus-visible,.dossier-button:hover{background-color:var(--maroon-900)}.dossier-button:active{box-shadow:none;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.dossier-button{transition:none}}.dossier-spread{display:flex;justify-content:center;position:relative;height:fit-content}.dossier-spread:after{background:linear-gradient(90deg,transparent,rgb(var(--spread-spine-shadow-rgb)/20%),transparent);bottom:0;content:"";left:calc(50% - 1.5px);pointer-events:none;position:absolute;top:0;width:3px;z-index:2}.file-page{background-color:var(--cream-200);background-size:4px 4px,auto,auto;display:flex;border-bottom:1px solid var(--color-gray);flex:0 0 50%;flex-direction:column;min-height:100%;min-width:0;padding:1.5rem 1rem;position:relative}.profile-page{border-bottom-width:1px;border-bottom-color:var(--color-light-gray)}.skills-page{border-top-width:1px;border-top-color:var(--color-light-gray)}.page-kicker{border-bottom:1px solid var(--color-gray);margin-bottom:1.2rem;padding-bottom:.5rem}.about-notice{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.about-identity{display:grid;gap:1.5rem;grid-template-columns:minmax(110px,.82fr) minmax(0,1.18fr)}.about-portrait-frame{min-height:0;min-width:0;position:relative}.about-portrait{border:4px solid var(--border-color-light);box-shadow:0 0 0 1px var(--portrait-outline-shadow),2px 4px 8px rgb(var(--portrait-shadow-rgb)/25%);min-width:0;transform:rotate(-.4deg);filter:grayscale(1) sepia(.18) contrast(1.12);height:100%;inset:0;object-fit:cover;object-position:center;width:100%}.about-portrait-clip{color:var(--color-gray);filter:drop-shadow(1px 2px 1px rgb(var(--portrait-shadow-rgb)/35%));top:-12px;transform:rotate(20deg)}.about-portrait-clip,.about-portrait-stamp{pointer-events:none;position:absolute;right:-10px;z-index:1}.about-portrait-stamp{bottom:-20px;color:var(--maroon-700);height:80px;mix-blend-mode:multiply;stroke:currentColor;transform:rotate(-14deg);width:80px}.about-portrait-stamp-center,.about-portrait-stamp-text{fill:currentColor;font-weight:800;stroke:none;text-transform:uppercase}.about-portrait-stamp-text{font-size:13px}.about-portrait-stamp-center{font-size:24px}.about-heading{display:flex;flex-direction:column;gap:.65rem;margin:1rem 0}.quality-list{display:flex;flex-wrap:wrap;gap:6px}.quality-tag{border:1px solid var(--maroon-900);border-radius:4px;color:var(--maroon-900);background-color:var(--maroon-200);font-size:var(--font-size-caption);margin:0;padding:.25rem .5rem}.section-label{color:var(--brown-700);font-size:var(--font-size-subheading);font-weight:700;letter-spacing:.1em;line-height:1.4;text-transform:uppercase;margin-bottom:.5rem}.profile-name{color:var(--brown-900);font-weight:700;letter-spacing:0;font-size:24px;line-height:1.05}.profile-role{color:var(--brown-700);font-size:var(--font-size-subheading);font-weight:500;letter-spacing:.05em}.deployed-row{align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap}.deployed-at{font-style:italic;color:var(--brown-700)}.section-heading-row{align-items:center;display:flex;justify-content:space-between}.career-drawer-content[data-scope=dialog]{background-color:var(--cream-200);color:var(--brown-900);max-width:min(100vw,540px)}.career-drawer-header{align-items:flex-start;border-bottom:1px solid var(--color-gray);display:flex;gap:1rem;justify-content:space-between}.career-drawer-header .section-label{margin-bottom:.5rem}.career-drawer-title{color:var(--brown-900);font-size:1.5rem;margin:0}.career-drawer-intro{color:var(--brown-700);margin-top:.5rem}.career-drawer-close{align-items:center;background:transparent;color:var(--brown-700);cursor:pointer;display:inline-flex;flex:0 0 auto;height:2rem;justify-content:center;width:2rem}.career-drawer-close:focus-visible{outline:3px solid var(--maroon-700);outline-offset:2px}.career-drawer-body{overflow-y:auto;padding:1.5rem;scrollbar-color:var(--maroon-700) var(--cream-400);scrollbar-width:thin}.career-drawer-body::-webkit-scrollbar{width:8px}.career-drawer-body::-webkit-scrollbar-track{background-color:var(--cream-400)}.career-drawer-body::-webkit-scrollbar-thumb{background-color:var(--maroon-700);border:2px solid var(--cream-200);border-radius:999px}.career-drawer-body::-webkit-scrollbar-thumb:hover{background-color:var(--maroon-900)}.career-timeline{--timeline-indicator-size:1rem}.career-timeline-period{color:var(--brown-500);font-size:var(--font-size-subheading);font-weight:700;text-transform:uppercase}.career-timeline-role{color:var(--brown-900);font-size:1.1rem;margin:0}.career-timeline-organization{color:var(--maroon-700);font-weight:600}.career-timeline-description{color:var(--brown-900);font-size:.9rem;line-height:1.5}.career-timeline-award{margin-top:.5rem}.career-timeline-award-heading{align-items:center;display:flex;gap:.35rem}.career-timeline-award-icon{color:var(--maroon-700);flex:0 0 auto}.career-timeline-award-title{color:var(--maroon-700);font-size:var(--font-size-subheading);font-weight:700}.career-timeline-award-details{color:var(--brown-900);font-size:var(--font-size-caption)}.biography-copy{font-style:italic;color:var(--brown-700);font-size:var(--font-size-base)}.page-footer{border-top:1px solid var(--color-gray);margin-top:auto}.contribution-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,8rem),1fr));gap:8px}.contribution-card{align-items:center;color:var(--brown-700);display:flex;flex-direction:column;text-align:center;text-decoration:none;transition:border-color .16s ease,transform .16s ease}.contribution-card:hover{transform:translateY(-2px)}.contribution-card:focus-visible{outline:3px solid var(--brown-700);outline-offset:3px}.contribution-visual{align-items:center;padding:.8rem;border:1px solid var(--color-gray);border-radius:50%;width:48px;height:48px;display:flex;justify-content:center}.contribution-visual-blog{background:var(--color-light-orange);color:var(--color-orange)}.contribution-visual-git{background:var(--color-light-green);color:var(--color-green)}.contribution-card-content{align-items:center;display:flex;flex-direction:column;gap:3px;justify-content:center;padding-top:8px;width:100%}.contribution-card-title{color:var(--maroon-700);font-size:.9rem;font-weight:600;margin:0;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:3px}.contribution-card-project{color:var(--brown-700);font-size:var(--font-size-subheading);overflow-wrap:anywhere}.skill-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0}.skill-row{align-items:center;display:grid;gap:.25rem;padding:.5rem}.skill-icon{grid-row:1/span 2;height:var(--icon-size);width:var(--icon-size)}.contact-notice{display:flex;flex-direction:column;margin-bottom:1rem}.contact-list,.outposts-list{display:flex;gap:.5rem}.contact-item,.outposts-item{align-items:center;display:flex;flex-direction:column;font-size:var(--font-size-caption);gap:.25rem;min-width:0;text-align:center}.contact-item a,.outposts-item a{display:inline-flex;transition:transform .16s ease}.contact-item a:hover,.outposts-item a:hover{transform:translateY(-2px)}.contact-item a:focus-visible,.outposts-item a:focus-visible{outline:3px solid var(--brown-700);outline-offset:3px}.contact-item svg,.outposts-item svg{height:var(--icon-size);width:var(--icon-size)}.dossier-spread.has-pending-intro-animation .file-page{opacity:0;pointer-events:none}.dossier-spread.has-pending-intro-animation .book-flip{transform:translateX(-50%)}.dossier-spread.has-intro-animation .profile-page,.dossier-spread.has-intro-animation .skills-page{animation:dossier-page-reveal .65s ease-out 1.3s both}.book-flip{bottom:0;left:50%;perspective:2600px;perspective-origin:0 50%;pointer-events:none;position:absolute;top:0;width:50%;z-index:4}.dossier-spread.has-intro-animation .book-flip{animation:book-flip-enter 1s ease-in .6s both,book-flip-done 0s linear 3.3s forwards}@media (min-width:901px){.file-page{flex:0 1 500px;max-width:500px}.book-flip{width:min(500px,50%)}}.book-cover,.book-sheet{animation-delay:var(--turn-delay);position:absolute;transform-origin:0 50%}.dossier-spread.has-intro-animation .book-cover,.dossier-spread.has-intro-animation .book-sheet{animation:book-page-turn .6s cubic-bezier(.45,.05,.25,1) both;animation-delay:var(--turn-delay)}.book-cover{--turn-delay:900ms;--flip-z:10;background-color:#c9a66b;background-image:linear-gradient(90deg,rgb(var(--book-cover-shading-rgb)/28%),transparent 6%,rgb(var(--book-cover-highlight-rgb)/12%) 50%,rgb(var(--book-cover-shading-rgb)/12%));border:1px solid #8e6f3e;box-shadow:inset 0 0 30px rgb(var(--book-cover-inset-shadow-rgb)/25%),0 0 15px rgb(var(--book-cover-shadow-rgb)/25%);inset:0}.book-cover-content{align-items:center;display:flex;flex-direction:column;inset:0;justify-content:center;position:absolute;text-align:center;text-transform:uppercase}.dossier-spread.has-intro-animation .book-cover-content{animation:book-cover-content-hide .4s ease var(--turn-delay) forwards}.book-cover-mark{align-items:center;border:1px solid var(--maroon-700);border-radius:50%;color:var(--maroon-700);display:flex;font-size:2.5rem;font-weight:700;height:5rem;justify-content:center;margin-bottom:1rem;width:5rem}.book-cover-label{font-size:2rem;margin-bottom:0}.book-cover-label,.book-cover-title{color:var(--maroon-700);font-weight:600}.book-cover-title{font-size:2.5rem;margin:0}.book-sheet{background-color:var(--cream-200);border:1px solid rgb(var(--book-sheet-border-rgb)/42%);box-shadow:inset -3px 0 20px rgb(var(--book-sheet-inset-shadow-rgb)/12%),0 0 12px rgb(var(--book-sheet-shadow-rgb)/12%);inset:0;padding:3rem 1.5rem}.book-sheet-ink{height:90%;left:5%;pointer-events:none;position:absolute;top:5%;width:90%}.book-sheet:first-child{--turn-delay:1.1s;--flip-z:11}.book-sheet:nth-child(2){--turn-delay:1.3s;--flip-z:12}@keyframes book-page-turn{0%{transform:rotateY(0deg)}30%{z-index:var(--flip-z)}to{transform:rotateY(-180deg);z-index:var(--flip-z)}}@keyframes book-flip-enter{0%{transform:translateX(-50%)}to{transform:translateX(0)}}@keyframes book-cover-content-hide{to{opacity:0}}@keyframes book-flip-done{to{opacity:0;visibility:hidden}}@keyframes dossier-page-reveal{0%{opacity:0;pointer-events:none}to{opacity:1;pointer-events:auto;z-index:999}}@media (max-width:900px),(prefers-reduced-motion:reduce){.book-flip{display:none}.page-kicker{padding-bottom:0}.dossier-spread.has-intro-animation .file-page{animation:none}}.profile-page{border-right-width:1px;border-right-color:var(--color-light-gray)}.skills-page{border-left-width:1px;border-left-color:var(--color-light-gray)}@media (max-width:900px){.dossier-wrap{padding:0}.dossier-spread{align-items:center;flex-direction:column}.dossier-spread:after{display:none}.file-page{flex:0 0 auto;max-width:500px;min-height:0;padding:24px 26px 18px;width:100%}}@media (max-width:540px){.case-desk{padding:1rem}.page-kicker{padding-bottom:0}.file-page{padding:1rem}.about-identity{gap:.5rem;grid-template-columns:1fr}.about-portrait{border-width:4px}.about-portrait-stamp{height:160px;width:160px}.profile-name{font-size:1.5rem}.detail-row{gap:4px;grid-template-columns:minmax(48px,.68fr) minmax(0,1.32fr);padding:.5rem}.detail-row dt{font-size:var(--font-size-caption)}.biography-copy,.detail-row dd,.notes-copy{font-size:var(--font-size-base)}.page-title{font-size:1.5rem}.inventory-table{padding:0 .5rem}.skill-row{gap:4px;min-height:calc(var(--icon-size) + 12px);padding:6px}.skill-name{font-size:var(--font-size-subheading)}.skill-category{font-size:var(--font-size-caption)}.contact-list{grid-template-columns:repeat(3,minmax(0,1fr))}.contribution-grid{grid-template-columns:1fr}}