@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-border-style:solid}::backdrop{--tw-border-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-webkit-file-upload-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}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{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::-webkit-file-upload-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::-webkit-file-upload-button{margin-inline-end:4px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-year-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-month-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-day-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-hour-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-minute-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-second-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-millisecond-field{padding-block-start:0;padding-block-end:0}::-webkit-datetime-edit-meridiem-field{padding-block-start:0;padding-block-end:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::-webkit-file-upload-button{-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.border{border-style:var(--tw-border-style);border-width:1px}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:#f8fafc;--foreground:#0f172a;--accent:#1d4ed8;--border:#e2e8f0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{background:var(--background);color:var(--foreground);margin:0;font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.035em;line-height:1.18}h1{max-width:960px;font-size:clamp(36px,4.4vw,56px);font-weight:700}h2{margin-bottom:36px;font-size:clamp(30px,3vw,36px);font-weight:700}h3{margin-bottom:16px;font-size:22px;font-weight:650}p{color:#475569;margin-bottom:16px}a{color:var(--accent);overflow-wrap:anywhere;text-decoration:none}a:hover{text-decoration:underline}a,button{touch-action:manipulation}:is(a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible){outline-offset:5px;outline:3px solid #1d4ed8}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}ul{color:#475569;margin:16px 0;padding-left:22px}li{margin-bottom:10px;padding-left:4px}.container{width:min(1120px,100% - 48px);margin-inline-start:auto;margin-inline-end:auto}.section{padding-block-start:88px;padding-block-end:88px}.tinted{border-block:1px solid var(--border);background:#f1f5f9}.eyebrow{letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin-bottom:20px;font-size:12px;font-weight:700}.site-header{z-index:10;border-bottom:1px solid var(--border);background:#fff;position:sticky;top:0}.navigation{justify-content:space-between;align-items:center;gap:20px;min-height:80px;display:flex}.brand{letter-spacing:-.03em;color:#0f172a;font-size:18px;font-weight:700}.nav-links,.actions,.links{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.nav-links{gap:22px;font-size:14px}.nav-links>a:not(.button){color:#475569}.button{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;gap:16px;min-height:44px;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s;display:inline-flex}.button:hover{background:#dbeafe;text-decoration:none}.button.primary{color:#fff;background:#1d4ed8;border-color:#1d4ed8}.button.primary:hover{background:#1e40af}.menu-toggle,.mobile-resume{display:none}.hero{padding-block-start:84px;padding-block-end:64px}.hero-summary{max-width:720px;margin-top:26px;font-size:19px}.actions{margin-block-start:28px;margin-block-end:28px}.availability{max-width:740px;margin-top:28px;font-size:14px}.links a,.text-link{align-items:center;min-height:44px;font-size:14px;font-weight:600;display:inline-flex}.impact-wrap{border-block:1px solid var(--border);background:#fff;padding:28px 0 32px}.impact-wrap h2{margin-bottom:22px}.metrics{grid-template-columns:repeat(5,1fr);gap:24px;margin:0;display:grid}.metrics>div{border-left:1px solid var(--border);flex-direction:column-reverse;padding-left:24px;display:flex}.metrics>div:first-child{border:0;padding-left:0}.metrics dd{margin:0 0 8px;font-size:32px;font-weight:700;line-height:1.2}.metrics dt{color:#475569;font-size:13px;line-height:1.5}.experience{border-top:1px solid var(--border);grid-template-columns:250px 1fr;gap:40px;padding-block-start:30px;padding-block-end:30px;display:grid}.organization{color:#0f172a;font-weight:650}.date{color:#475569;font-size:14px}.supporting-role h3{font-size:20px}.card{border:1px solid var(--border);background:#fff;border-radius:10px;min-width:0;padding:30px}.featured-grid,.two-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.primary-project{border-top:3px solid #1d4ed8;grid-column:1/-1}.primary-project>p,.primary-project>ul{max-width:850px}.project h3{font-size:24px}.built{color:#0f172a;font-weight:500}.tags{flex-wrap:wrap;gap:7px;margin-block-start:22px;margin-block-end:12px;display:flex}.tag{color:#1e40af;background:#dbeafe;border-radius:4px;padding:4px 9px;font-size:12px}.additional-heading{margin-top:56px;font-size:28px}.additional-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.additional-grid h3{font-size:21px}.skills-grid{grid-template-columns:1fr 1fr;gap:36px 64px;display:grid}.skills-grid h3{font-size:19px}.skills-grid p{line-height:1.9}.about-grid{grid-template-columns:1fr 2fr;gap:64px;display:grid}.about-grid p{font-size:17px}.certifications{padding-top:32px}.certifications h3{font-size:18px}footer{color:#f8fafc;background:#0f172a;padding-top:64px}footer h2{margin-bottom:18px}footer p,footer a,footer .eyebrow{color:#f8fafc}footer .button{color:#0f172a}footer .resume-note{margin-top:14px;font-size:13px}.footer-bottom{border-top:1px solid #475569;justify-content:space-between;margin-top:48px;padding:24px 0;font-size:13px;display:flex}.skip-link{z-index:100;background:#fff;padding:12px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:12px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.admin{padding-block-start:48px;padding-block-end:48px}.admin-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px;display:flex}.admin h1{font-size:36px}.admin-form{max-width:900px}.admin details{border:1px solid var(--border);background:#fff;border-radius:8px;margin:16px 0;padding:20px}.admin summary{cursor:pointer;min-height:44px;font-weight:650}.admin label{margin-top:16px;font-weight:600;display:block}.admin input:not([type=checkbox]),.admin textarea{color:#0f172a;background:#fff;border:1px solid #94a3b8;border-radius:6px;width:100%;margin-top:6px;padding:10px;font-weight:400;display:block}.admin textarea{resize:vertical;min-height:110px}.editor-item{border-top:1px solid var(--border);margin-top:20px;padding-top:12px}.admin-toolbar{border-top:1px solid var(--border);z-index:5;background:#f8fafc;flex-wrap:wrap;gap:12px;padding:16px 0;display:flex;position:sticky;bottom:0}.notice{color:#0f172a;background:#dbeafe;border-radius:8px;padding:16px}.preview-banner{text-align:center;background:#dbeafe;padding:20px}.admin small{color:#475569;font-weight:400;display:block}.admin [role=status]{min-height:30px}@media (max-width:900px){.nav-links{border-bottom:1px solid var(--border);background:#fff;padding:24px;display:none;position:absolute;top:100%;left:0;right:0}.nav-links.is-open{display:flex}.menu-toggle{border:1px solid var(--border);background:#fff;border-radius:6px;min-height:44px;padding:10px;display:block}.mobile-resume{margin-left:auto;display:block}.nav-links .button{display:none}.experience{grid-template-columns:200px 1fr;gap:24px}}@media (max-width:600px){.container{width:calc(100% - 36px)}.navigation{gap:10px;min-height:76px}.brand{max-width:90px;font-size:15px;line-height:1.3}.mobile-resume .button{padding:8px 10px;font-size:12px}.hero{padding-block-start:54px;padding-block-end:44px}.hero-summary{font-size:17px}.section{padding-block-start:56px;padding-block-end:56px}.eyebrow{font-size:11px}.actions{gap:12px}.metrics{grid-template-columns:repeat(2,1fr);gap:24px}.metrics>div{border:0;padding:0}.experience,.featured-grid,.additional-grid,.skills-grid,.two-columns,.about-grid{grid-template-columns:1fr;gap:22px}.experience{gap:4px}.primary-project{grid-column:auto}.card{padding:24px}.about-grid{gap:0}.footer-bottom{flex-wrap:wrap;gap:16px}.links{gap:16px}.admin-toolbar .button{flex:1}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.hero{grid-template-columns:minmax(0,1fr) 320px;align-items:center;gap:64px;padding-block-start:76px;padding-block-end:76px;display:grid}.hero h1{letter-spacing:-.045em;font-size:clamp(36px,3.8vw,52px);line-height:1.1}.hero-copy{min-width:0}.hero .eyebrow{align-items:center;gap:12px;line-height:1.6;display:flex}.hero .eyebrow:before{content:"";background:var(--accent);flex-shrink:0;width:24px;height:2px}.hero-summary{font-size:17px;line-height:1.8}.hero .actions{gap:16px}.hero-portrait{margin:0;position:relative}.portrait-frame{border:1px solid var(--border);box-shadow:none;background:#fff;border-radius:12px;padding:0;overflow:hidden}.portrait-frame img{object-fit:cover;object-position:center;filter:saturate(.8);border-radius:5px;width:100%;height:350px;display:block}.impact-wrap{background:#0f172a;border:0;padding:32px 0 36px}.impact-wrap .eyebrow{color:#cbd5e1}.metrics dd{color:#f8fafc;letter-spacing:-.04em;font-size:36px}.metrics dt{color:#cbd5e1}.metrics>div{border-color:#334155}.section>.eyebrow,.section>.container>.eyebrow{align-items:center;gap:12px;display:flex}.section>.eyebrow:before,.section>.container>.eyebrow:before{content:"";background:#1d4ed8;width:22px;height:1px}.experience-list{border-left:1px solid #cbd5e1;padding-left:28px}.experience{position:relative}.experience:before{content:"";background:#1d4ed8;border:3px solid #f8fafc;border-radius:50%;width:11px;height:11px;position:absolute;top:35px;left:-34px;box-shadow:0 0 0 1px #cbd5e1}.experience:first-child{border-top:0}.experience li::marker{color:#1d4ed8}.project{transition:border-color .18s,box-shadow .18s;position:relative}.project:hover{border-color:#94a3b8;box-shadow:0 8px 24px #0f172a08}.featured-grid .project{padding:34px}.primary-project{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:0 48px;display:grid;box-shadow:inset 4px 0 #1d4ed8}.primary-project .eyebrow,.primary-project h3,.primary-project .links{grid-column:1/-1}.primary-project h3{font-size:30px}.primary-project .built{border-left:2px solid #dbeafe;padding-left:20px}.primary-project .tags{align-content:start;margin-top:16px}.project .tag{color:#334155;background:#f1f5f9;border:1px solid #e2e8f0}.project .links{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.additional-grid{gap:0 36px}.additional-grid .project{box-shadow:none;background:0 0;border:0;border-top:1px solid #cbd5e1;border-radius:0;padding:24px 0}.additional-grid .tags:empty,.additional-grid .links:empty{display:none}.additional-grid .links{border:0;margin:0;padding:0}.skills-grid article{border:1px solid var(--border);background:#fff;border-radius:10px;padding:28px}.skills-grid h3{border-bottom:1px solid var(--border);padding-bottom:16px;font-size:18px}.skills-grid p{margin-bottom:0;font-size:15px}.about-grid{border-left:3px solid #1d4ed8;padding-left:28px}footer{border-top:4px solid #1d4ed8}footer a:focus-visible{outline-color:#f8fafc}@media (max-width:1000px){.hero{grid-template-columns:minmax(0,1fr) 260px;gap:32px}.portrait-frame img{height:310px}}@media (max-width:760px){.hero{grid-template-columns:1fr;gap:36px;padding-block-start:48px;padding-block-end:48px}.hero-portrait{width:min(320px,90%);margin-inline-start:auto;margin-inline-end:auto}.portrait-frame img{height:290px}.hero h1{max-width:620px}.primary-project{display:block}.primary-project .built{padding-left:16px}.featured-grid .project{padding:24px}.primary-project h3{font-size:26px}.experience-list{padding-left:20px}.experience:before{left:-26px}}@media (prefers-reduced-motion:reduce){.project{transition:none}}.hero h1{letter-spacing:-.055em;max-width:650px;font-size:clamp(44px,5.4vw,76px);line-height:1.02}.hero-statement{letter-spacing:-.025em;color:#334155;max-width:620px;margin-top:24px;font-size:clamp(23px,2.4vw,30px);line-height:1.35}.hero-summary{margin-top:20px;font-size:16px}.eyebrow{letter-spacing:.09em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}.hero{grid-template-columns:minmax(0,1fr) 300px;gap:64px}.portrait-frame img{border-radius:0;height:370px}.skills-grid{gap:0 48px}.skills-grid article{background:0 0;border:0;border-top:1px solid #cbd5e1;border-radius:0;padding:24px 0}.skills-grid h3{border:0;padding:0}.personal-note{color:#334155;border-top:1px solid #cbd5e1;margin-top:24px;padding-top:24px;font-family:Georgia,serif;line-height:1.6;font-size:20px!important}.primary-project{min-height:530px;display:block;padding-right:calc(40% + 40px)!important}.primary-project .built{border:0;padding-left:0}.platform-visual{color:#f8fafc;background:#0f172a;border-radius:8px;margin:0 0 24px;padding:24px}.primary-project .platform-visual{flex-direction:column;justify-content:center;width:calc(40% - 24px);margin:0;display:flex;position:absolute;top:24px;bottom:24px;right:24px}.platform-visual figcaption{margin-bottom:24px;font-size:16px;font-weight:600}.platform-visual figcaption>span{text-transform:uppercase;letter-spacing:.08em;color:#cbd5e1;margin-top:6px;font-family:ui-monospace,monospace;font-size:10px;display:block}.platform-node{background:#1e293b;border:1px solid #475569;border-radius:6px;padding:14px 16px}.platform-node>span{color:#cbd5e1;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-family:ui-monospace,monospace;font-size:10px;display:block}.platform-node strong{font-size:14px;display:block}.platform-node p{color:#cbd5e1;margin:6px 0 0;font-size:12px}.flow-arrow{text-align:center;color:#cbd5e1;padding:4px;line-height:1.3;display:block}.environment-labels{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.environment-labels span{color:#dbeafe;border:1px solid #64748b;border-radius:4px;padding:3px 7px;font-size:11px}.project-screenshot{border:1px solid #e2e8f0;border-radius:6px;margin:0 0 24px;overflow:hidden}.project-screenshot img{filter:saturate(.35);width:100%;height:auto;display:block}.project-screenshot figcaption{color:#475569;background:#f8fafc;padding:8px 12px;font-size:11px}@media (max-width:1000px){.hero{grid-template-columns:minmax(0,1fr) 260px;gap:32px}.primary-project{min-height:0;padding-right:34px!important}.primary-project .platform-visual{width:100%;margin:20px 0 28px;position:static}}@media (max-width:760px){.hero{grid-template-columns:1fr}.hero h1{font-size:clamp(44px,9vw,62px)}.hero-portrait{width:min(300px,100%);margin-inline-start:0;margin-inline-end:0}.portrait-frame img{height:310px}.primary-project{padding-right:24px!important}}.light-portfolio .hero{gap:72px;padding-block-start:64px;padding-block-end:64px}.light-portfolio .hero h1{font-size:clamp(44px,5.2vw,72px)}.light-portfolio .hero-statement{color:#1d4ed8;text-wrap:balance;max-width:560px;margin-top:20px;font-size:clamp(26px,3vw,38px);line-height:1.25}.light-portfolio .hero .actions{margin:30px 0 0}.light-portfolio .portrait-frame{background:#fff;border-color:#dbe3ef;border-radius:12px 12px 56px;box-shadow:0 12px 32px #0f172a08}.light-portfolio .portrait-frame img{height:330px}.light-portfolio .impact-wrap{background:#edf3fc;border-block-start:1px solid #dbe3ef;border-block-end:1px solid #dbe3ef}.light-portfolio .impact-wrap .eyebrow{color:#1d4ed8}.light-portfolio .metrics dd{color:#0f172a}.light-portfolio .metrics dt{color:#475569}.light-portfolio .metrics>div{border-color:#cad7e8}@media (max-width:760px){.light-portfolio .hero{gap:28px;padding-block-start:36px;padding-block-end:36px}.light-portfolio .hero .eyebrow{margin-bottom:16px}.light-portfolio .hero-portrait{width:180px}.light-portfolio .portrait-frame img{height:185px}.light-portfolio .hero-statement{max-width:420px}.light-portfolio .hero .actions{gap:12px;margin-top:24px}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
