*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
/* ! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.static{position:static}.block{display:block}.grid{display:grid}.hidden{display:none}.resize{resize:both}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,monospace}:root{--page:#fff;--surface:#f7f8fa;--panel:#fff;--input:#fff;--ink:#16181d;--muted:#4c5666;--subtle:#606b7b;--line:#e2e5ea;--accent:#2751d0;--accent-hover:#1d3da1;--accent-soft:#edf2ff;--positive:#23724b;--button-ink:#fff;--nav:#fffffff5;--focus:#2455e5;--field-line:#858f9f;--error:#a32635;--error-bg:#fff0f1;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--content-width:1200px;--page-gutter:32px;--gutter-start:max(var(--page-gutter),env(safe-area-inset-left,0px));--gutter-end:max(var(--page-gutter),env(safe-area-inset-right,0px));--nav-height:76px;--nav-offset:calc(var(--nav-height) + env(safe-area-inset-top, 0px));--radius-control:4px;--radius-media:6px;--radius-dialog:8px;--shadow-rest:0 1px 2px #16181d08,0 2px 4px #16181d08;--shadow-hover:0 2px 4px #16181d0a,0 12px 24px -12px #16181d29;--shadow-overlay:0 4px 8px #16181d0f,0 20px 48px -16px #16181d33;color-scheme:light}html[data-theme=dark]{--page:#161719;--surface:#1e2023;--panel:#26282c;--input:#191b1e;--ink:#f7f8fa;--muted:#b9bfca;--subtle:#a3acbb;--line:#363c47;--accent:#8aafff;--accent-hover:#b4cbff;--accent-soft:#202d49;--positive:#a0d6b3;--button-ink:#111b31;--nav:#161719f7;--focus:#8aafff;--field-line:#747e8e;--error:#ffbdc4;--error-bg:#40282d;--shadow-rest:0 1px 2px #0000001f,0 2px 4px #00000014;--shadow-hover:0 2px 4px #00000029,0 12px 24px -12px #0006;--shadow-overlay:0 4px 8px #0003,0 20px 48px -16px #00000080;color-scheme:dark}html{scroll-behavior:smooth;scroll-padding-top:calc(96px + env(safe-area-inset-top, 0px));scroll-padding-top:calc(var(--nav-offset) + 20px);scrollbar-gutter:stable}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;background:var(--page);color:#16181d;color:var(--ink);font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.65;margin:0}*{box-sizing:border-box;letter-spacing:0}::selection{background:#edf2ff;background:var(--accent-soft);color:#16181d;color:var(--ink)}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance;font-family:Space Grotesk,Manrope,sans-serif}p{text-wrap:pretty}h2{font-size:36px;line-height:1.2}h2,h3{font-weight:600}h3{font-size:24px;line-height:1.3}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}button{cursor:pointer}button:disabled{cursor:wait;opacity:.72}svg{flex:none}img{display:block;max-width:100%}:where(a,button,input,textarea,summary,[tabindex]):focus-visible{outline:3px solid #2455e5;outline:3px solid var(--focus);outline-offset:4px}#main-content:focus{outline:none}.page-width{margin-inline:auto;max-width:calc(1200px + max(32px, env(safe-area-inset-left, 0px)) + max(32px, env(safe-area-inset-right, 0px)));max-width:calc(var(--content-width) + var(--gutter-start) + var(--gutter-end));padding-inline:max(32px,env(safe-area-inset-left,0px)) max(32px,env(safe-area-inset-right,0px));padding-inline:var(--gutter-start) var(--gutter-end);width:100%}.section{border-top:1px solid #e2e5ea;border-top:1px solid var(--line);padding-block:80px 88px}.section-tinted{background:#f7f8fa;background:var(--surface)}.eyebrow{color:#2751d0;color:var(--accent);font-family:Space Grotesk,Manrope,sans-serif;font-size:14px;font-weight:500;line-height:1.5}.section-heading{align-items:flex-end;display:flex;gap:24px;justify-content:space-between;margin-bottom:36px}.about-intro>.eyebrow,.contact-intro>.eyebrow,.section-heading .eyebrow{margin-bottom:10px}.work-heading{align-items:center}.work-heading h2{align-items:flex-start;display:flex;gap:12px}.work-count{font-feature-settings:"tnum";color:#606b7b;color:var(--subtle);font-size:14px;font-variant-numeric:tabular-nums;line-height:1.6}.skip-link{background:#fff;background:var(--panel);border:1px solid #e2e5ea;border:1px solid var(--line);border-radius:4px;color:#16181d;color:var(--ink);left:16px;padding:12px 20px;position:fixed;top:12px;transform:translateY(-160%);z-index:100}.skip-link:focus{transform:none}.site-nav{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;background:var(--nav);border-bottom:1px solid #e2e5ea;border-bottom:1px solid var(--line);inset:0 0 auto;padding-top:env(safe-area-inset-top,0);position:fixed;z-index:30}.nav-inner{gap:24px;gap:var(--space-6);height:76px;height:var(--nav-height);justify-content:space-between}.brand,.nav-inner{align-items:center;display:flex}.brand{font-family:Space Grotesk,sans-serif;font-size:16px;font-weight:700;gap:12px;gap:var(--space-3);min-height:44px;white-space:nowrap}.brand img{background:#111318;border-radius:4px;flex:none;height:44px;object-fit:contain;width:44px}.desktop-links{display:flex;gap:24px}.desktop-links a{align-items:center;color:#4c5666;color:var(--muted);display:flex;font-size:14px;min-height:44px;position:relative}.desktop-links a:hover,.desktop-links a[aria-current],.mobile-navigation a[aria-current]{color:#2751d0;color:var(--accent)}.desktop-links a[aria-current]:after{background:#2751d0;background:var(--accent);bottom:0;content:"";height:2px;left:0;position:absolute;right:0}.nav-actions{align-items:center;display:flex;gap:8px}.icon-button{align-items:center;background:#0000;border:1px solid #0000;border-radius:4px;color:#4c5666;color:var(--muted);display:inline-flex;flex:none;height:44px;justify-content:center;padding:0;position:relative;width:44px}.icon-button svg{height:20px;width:20px}.icon-button:hover{background:#edf2ff;background:var(--accent-soft);color:#2751d0;color:var(--accent)}[data-tooltip]:after{background:#16181d;background:var(--ink);border-radius:4px;color:#fff;color:var(--page);content:attr(data-tooltip);font-size:12px;opacity:0;padding:5px 9px;pointer-events:none;position:absolute;right:0;top:calc(100% + 8px);transition:opacity .12s ease;white-space:nowrap;z-index:40}[data-tooltip]:focus-visible:after,[data-tooltip]:hover:after{opacity:1;transition-delay:.35s}.menu-toggle,.mobile-navigation{display:none}#home{background:#fff;background:var(--page);color:#16181d;color:var(--ink)}.intro{padding-bottom:48px;padding-bottom:var(--space-12);padding-top:calc(120px + env(safe-area-inset-top, 0px))}.intro-topline{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.intro-role{color:#4c5666;color:var(--muted)}.availability{align-items:center;color:#23724b;color:var(--positive);display:inline-flex;font-size:13px;gap:8px}.availability>span{background:currentColor;border-radius:50%;flex:none;height:7px;width:7px}.intro h1{text-wrap:initial;font-size:68px;font-weight:600;line-height:1.12}.name-accent{color:#2751d0;color:var(--accent)}.intro-description{color:#4c5666;color:var(--muted);font-size:18px;line-height:1.65;margin-top:20px;max-width:580px}.intro-bottom{margin-top:26px}.button-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px;gap:var(--space-4)}.resume-link{color:#16181d;color:var(--ink)}.button:active:not(:disabled),.icon-button:active{transform:translateY(1px)}.button svg,.text-link svg{transition:transform .18s ease}.button:hover svg,.text-link:hover svg{transform:translateY(-2px)}.button{align-items:center;border:1px solid #0000;border-radius:6px;display:inline-flex;font-size:14px;font-weight:600;gap:10px;justify-content:center;line-height:1.5;min-height:48px;padding:11px 20px}.button svg{height:18px;width:18px}.button-primary{background:#2751d0;background:var(--accent);color:#fff;color:var(--button-ink)}.button-primary:hover:not(:disabled){background:#1d3da1;background:var(--accent-hover)}.button-secondary{background:#fff;background:var(--panel);border-color:#e2e5ea;border-color:var(--line);box-shadow:0 1px 2px #16181d08,0 2px 4px #16181d08;box-shadow:var(--shadow-rest);color:#16181d;color:var(--ink)}.button-secondary:hover{background:#f7f8fa;background:var(--surface);border-color:#4c5666;border-color:var(--muted)}.work-section{padding-top:36px}.project-grid{grid-gap:56px 40px;display:grid;gap:56px 40px;grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{display:flex;flex-direction:column;min-width:0}.project-preview{aspect-ratio:16/9;background:#f7f8fa;background:var(--surface);border:1px solid #e2e5ea;border:1px solid var(--line);border-radius:6px;border-radius:var(--radius-media);box-shadow:0 1px 2px #16181d08,0 2px 4px #16181d08;box-shadow:var(--shadow-rest);display:block;position:relative;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.project-preview:hover{border-color:#2751d0;border-color:var(--accent);box-shadow:0 2px 4px #16181d0a,0 12px 24px -12px #16181d29;box-shadow:var(--shadow-hover);transform:translateY(-2px)}.project-preview img{border-radius:inherit;height:100%;inset:0;object-fit:contain;position:absolute;width:100%}.preview-fallback{align-items:center;color:#4c5666;color:var(--muted);display:flex;flex-direction:column;gap:12px;inset:0;justify-content:center;position:absolute}.preview-fallback svg{height:28px;width:28px}.project-content{display:flex;flex:1 1;flex-direction:column;padding:22px 0 0}.project-content h3{font-size:28px}.project-content h3 a{align-items:center;display:inline-flex;max-width:100%;min-height:44px}.project-meta{color:#606b7b;color:var(--subtle);display:flex;flex-wrap:wrap;font-size:12px;gap:6px 12px;justify-content:space-between;margin-bottom:10px}.project-meta>span:first-child{font-weight:500}.project-content h3 a:hover,.project-meta>span:first-child{color:#2751d0;color:var(--accent)}.project-description{color:#4c5666;color:var(--muted);font-size:16px;line-height:1.7;margin-top:8px;margin-top:var(--space-2);max-width:510px}.project-contribution{color:#4c5666;color:var(--muted);font-size:14px;line-height:1.65;margin-top:16px}.project-contribution>span{color:#16181d;color:var(--ink);display:block;font-size:13px;font-weight:600;margin-bottom:4px;margin-bottom:var(--space-1)}.technology-list{align-items:center;color:#606b7b;color:var(--subtle);display:flex;flex-wrap:wrap;font-size:13px;gap:6px 0;list-style:none;margin:18px 0 20px;padding:0}.technology-list li:not(:last-child):after{color:#606b7b;color:var(--subtle);content:"/";margin-inline:10px}.project-links{align-items:center;border-top:1px solid #e2e5ea;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:auto;padding-top:10px}.text-link{align-items:center;color:#2751d0;color:var(--accent);display:inline-flex;font-size:14px;font-weight:600;gap:8px;min-height:44px;text-underline-offset:5px}.text-link:hover{text-decoration:underline}.text-link svg{height:17px;width:17px}.about-layout{grid-gap:100px;display:grid;gap:100px;grid-template-columns:minmax(0,.9fr) minmax(0,1fr)}.about-intro>p:not(.eyebrow){color:#4c5666;color:var(--muted);margin-top:20px}.about-intro>.text-link{margin-top:20px}.profile-facts{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr));margin:28px 0 0}.profile-facts dt{color:#606b7b;color:var(--subtle);font-size:13px}.profile-facts dd{font-family:Space Grotesk,sans-serif;font-size:22px;font-weight:500;margin:6px 0 0}.entry-heading{align-items:center;display:flex;gap:12px;margin-bottom:20px}.entry-icon{color:#2751d0;color:var(--accent);display:flex}.entry-icon svg{height:20px;width:20px}.job-heading{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.current-marker{border-left:2px solid #23724b;border-left:2px solid var(--positive);color:#23724b;color:var(--positive);font-size:12px;padding-left:12px}.job-company{color:#16181d;color:var(--ink);font-size:15px;font-weight:500;margin-top:8px}.job-company span{color:#4c5666;color:var(--muted);font-size:13px;font-weight:400;margin-left:10px}.entry-date{color:#606b7b;color:var(--subtle);font-size:13px}.experience-entry>.entry-date{margin:4px 0 18px}.experience-entry>p:not(.job-company):not(.entry-date){color:#4c5666;color:var(--muted);font-size:15px}.experience-entry strong{color:#16181d;color:var(--ink);font-weight:600}.experience-points{color:#4c5666;color:var(--muted);font-size:14px;list-style:disc;margin:16px 0 12px;padding-left:18px}.experience-points li{margin-top:7px;padding-left:3px}.experience-points li::marker{color:#2751d0;color:var(--accent)}.education-block{border-top:1px solid #e2e5ea;border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.education-block h3{font-size:18px;margin-block:8px}.education-block>p:not(.eyebrow){color:#4c5666;color:var(--muted);display:flex;flex-wrap:wrap;font-size:14px;gap:8px;justify-content:space-between}.education-details{color:#4c5666;color:var(--muted);font-size:13px;margin-top:12px}.education-details summary{cursor:pointer;min-height:44px;padding-block:11px;width:fit-content}.education-details>div{margin:8px 0 16px}.skills-grid{display:grid}.skill-group{grid-gap:32px;border-top:1px solid #e2e5ea;border-top:1px solid var(--line);display:grid;gap:32px;grid-template-columns:240px minmax(0,1fr);min-width:0;padding-block:26px}.skill-heading{padding-top:8px}.skill-heading h3{font-size:20px}.skill-group ul{grid-column-gap:20px;column-gap:20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0}.skill-group li{align-items:center;color:#4c5666;color:var(--muted);display:flex;font-size:14px;gap:10px;min-height:44px}.skill-group li svg{color:#16181d;color:var(--ink);height:18px;width:18px}.contact-layout{grid-gap:100px;align-items:start;display:grid;gap:100px;grid-template-columns:minmax(0,.9fr) minmax(0,1fr)}.contact-intro>p:not(.eyebrow){color:#4c5666;color:var(--muted);margin-top:18px;max-width:390px}.contact-details{margin-top:28px}.contact-detail{align-items:center;border-bottom:1px solid #e2e5ea;border-bottom:1px solid var(--line);display:flex;gap:14px;padding-block:16px}.contact-detail>svg{color:#2751d0;color:var(--accent);height:20px;width:20px}.contact-detail>span{flex:1 1;min-width:0}.detail-label{color:#606b7b;color:var(--subtle);display:block;font-size:12px;margin-bottom:3px}.detail-value{display:block;font-size:15px;overflow-wrap:anywhere}.contact-detail:hover .detail-value{color:#2751d0;color:var(--accent)}.detail-arrow{height:16px!important;width:16px!important}.social-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.social-links .icon-button{border-color:#e2e5ea;border-color:var(--line)}.contact-form{border-left:1px solid #e2e5ea;border-left:1px solid var(--line);min-width:0;padding-left:36px}.contact-form h3{font-size:20px;margin-bottom:24px}.form-fields{grid-gap:18px;display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:20px}.contact-form label{display:block;font-size:13px;font-weight:500;margin-bottom:8px}.contact-form input,.contact-form textarea{background:#fff;background:var(--input);border:1px solid #858f9f;border:1px solid var(--field-line);border-radius:4px;color:#16181d;color:var(--ink);font-size:16px;line-height:1.5;min-width:0;padding:12px;transition:border-color .16s ease;width:100%}.contact-form textarea{display:block;min-height:148px;resize:vertical}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#606b7b;color:var(--subtle);opacity:1}.contact-form input:hover,.contact-form textarea:hover{border-color:#606b7b;border-color:var(--subtle)}.contact-form input[aria-invalid=true],.contact-form textarea[aria-invalid=true]{border-color:#a32635;border-color:var(--error)}.contact-form input:read-only,.contact-form textarea:read-only{background:#f7f8fa;background:var(--surface);color:#4c5666;color:var(--muted)}.field-error{color:#a32635;color:var(--error);font-size:13px;line-height:1.5;margin-top:6px;min-height:20px}.submission-status{color:#4c5666;color:var(--muted);display:block;font-size:13px;margin-top:8px;min-height:20px}.form-bottom{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-top:24px}.form-note{color:#606b7b;color:var(--subtle);font-size:13px}.form-note a{align-items:center;color:#2751d0;color:var(--accent);display:inline-flex;min-height:44px;text-decoration:underline;text-underline-offset:3px}.form-error{background:#fff0f1;background:var(--error-bg);border-radius:4px;color:#a32635;color:var(--error);font-size:14px;margin-top:20px;padding:12px 14px}.form-error a{text-decoration:underline;text-underline-offset:3px}.loading-icon{animation:loading-spin 1s linear infinite}@keyframes loading-spin{to{transform:rotate(1turn)}}.success-dialog{background:#fff;background:var(--panel);border:1px solid #e2e5ea;border:1px solid var(--line);border-radius:8px;border-radius:var(--radius-dialog);box-shadow:0 4px 8px #16181d0f,0 20px 48px -16px #16181d33;box-shadow:var(--shadow-overlay);color:#16181d;color:var(--ink);inset:0;margin:auto;max-height:calc(100dvh - 40px);overflow-y:auto;overscroll-behavior:contain;padding:40px 28px 28px;position:fixed;text-align:center;width:min(440px,calc(100% - 40px))}.success-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009}.dialog-close{position:absolute;right:8px;top:8px}.success-icon{color:#2751d0;color:var(--accent);height:40px;margin:8px auto 20px;width:40px}.success-dialog p{color:#4c5666;color:var(--muted);margin-block:16px 24px}.site-footer{align-items:center;display:flex;font-size:13px;gap:20px;justify-content:space-between;padding-block:24px max(24px,env(safe-area-inset-bottom,0px))}.site-footer p{font-weight:500}.site-footer p span{color:#4c5666;color:var(--muted);font-weight:400;margin-left:16px}.static-portfolio .contact-layout{grid-template-columns:minmax(0,1fr)}.static-portfolio .contact-intro{max-width:680px}.static-portfolio .contact-details{grid-gap:0 24px;display:grid;gap:0 24px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:1100px){.about-layout,.contact-layout{gap:56px}.skill-group{gap:24px;grid-template-columns:200px minmax(0,1fr)}}@media (max-width:1023px){.desktop-links,.nav-github{display:none}.menu-toggle{display:inline-flex}.mobile-navigation{border-top:1px solid #e2e5ea;border-top:1px solid var(--line);box-shadow:0 4px 8px #16181d0f,0 20px 48px -16px #16181d33;box-shadow:var(--shadow-overlay);display:flex;flex-direction:column;max-height:calc(100dvh - 76px - env(safe-area-inset-top, 0px));max-height:calc(100dvh - var(--nav-offset));overflow-y:auto;overscroll-behavior:contain;padding-block:12px max(20px,env(safe-area-inset-bottom,0px))}.mobile-navigation a{align-items:center;color:#4c5666;color:var(--muted);display:flex;font-size:15px;justify-content:space-between;min-height:48px;padding:12px 4px}.mobile-navigation a svg{height:18px;width:18px}.intro h1{font-size:58px}.skill-group ul{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-layout{gap:36px;grid-template-columns:minmax(0,.8fr) minmax(0,1fr)}.contact-form{padding-left:24px}.form-fields{gap:18px;grid-template-columns:1fr}.about-layout{gap:40px}}@media (max-width:767px){:root{--page-gutter:20px;--nav-height:68px}.brand,.nav-inner{gap:8px}.brand{font-size:14px}.brand img{height:36px;width:36px}.nav-actions{gap:2px}.intro{padding-bottom:32px;padding-top:calc(96px + env(safe-area-inset-top, 0px))}.intro-topline{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:20px}.intro h1{font-size:42px;line-height:1.12;max-width:540px}.intro-description{font-size:16px;line-height:1.7}.intro-bottom{gap:20px;margin-top:24px}.button-row{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,350px)}.button-row .button{font-size:13px;gap:8px;min-width:0;padding-inline:12px}.button-row .resume-link{font-size:13px;justify-content:center}.section{padding-block:48px}.work-section{padding-top:30px}h2{font-size:28px;line-height:1.3}.section-heading{margin-bottom:24px}.project-grid{gap:36px;grid-template-columns:minmax(0,1fr)}.project-content{padding:20px 0 0}.project-content h3{font-size:24px}.project-description{font-size:15px}.project-meta{font-size:12px}.about-layout,.contact-layout{gap:36px;grid-template-columns:minmax(0,1fr)}.experience-column{border-top:1px solid #e2e5ea;border-top:1px solid var(--line);padding-top:28px}.about-intro>p:not(.eyebrow){font-size:15px}.skill-group{gap:12px;grid-template-columns:minmax(0,1fr);padding-block:24px}.skill-group ul{column-gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.contact-form{border-left:0;border-top:1px solid #e2e5ea;border-top:1px solid var(--line);padding:28px 0 0}.contact-intro>p:not(.eyebrow){font-size:15px;max-width:none}.site-footer{align-items:flex-start}.site-footer p span{display:block;font-size:12px;margin-left:0}.site-footer .text-link{font-size:12px;white-space:nowrap}}@media (max-width:380px){:root{--page-gutter:16px}.brand{font-size:12px;gap:6px}.brand img{height:32px;width:32px}.intro h1{font-size:36px}.button-row{gap:8px;width:100%}.button-row .button{flex:1 1;font-size:13px;gap:7px;padding-inline:10px}.profile-facts{gap:16px}.profile-facts dd{font-size:19px}.form-bottom .button{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.button:active:not(:disabled),.button:hover svg,.icon-button:active,.project-preview:hover,.text-link:hover svg{transform:none}}@media (prefers-reduced-transparency:reduce){.site-nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;background:var(--page)}}@media (max-width:1023px){.static-site-nav .static-nav-links{display:flex}}@media (max-width:767px){.static-site-nav .nav-inner{align-content:center;flex-wrap:wrap;gap:8px;height:116px}.static-site-nav .brand{width:100%}.static-site-nav .static-nav-links{gap:12px;justify-content:space-between;width:100%}.static-portfolio .intro{padding-top:calc(144px + env(safe-area-inset-top, 0px))}.static-portfolio main>section{scroll-margin-top:32px}.static-portfolio .contact-details{grid-template-columns:minmax(0,1fr)}}
/*# sourceMappingURL=main.b3e21233.css.map*/