@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,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@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,::backdrop{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%;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;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}::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}::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:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-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}.static{position:static}.isolate{isolation:isolate}.block{display:block}.contents{display:contents}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}}:root{color-scheme:light;--page-max:1200px;--ab-navy:#001e4f;--ab-navy-deep:#00163b;--ab-navy-soft:#102c5a;--ab-blue:#245da8;--ab-blue-soft:#e3edf9;--ab-ice:#f7faff;--bg:#eef4fb;--surface:#fff;--surface-muted:#dbe7f5;--ink:#061a39;--muted:#52637b;--quiet:#8492a8;--line:#cbd8e8;--line-strong:#93aac8;--accent:#245da8;--accent-ink:#001e4f}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);scroll-behavior:smooth;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}html:lang(ko){word-break:keep-all;font-family:Inter,Apple SD Gothic Neo,Malgun Gothic,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:var(--bg);min-width:320px;margin:0}a{color:inherit;text-underline-offset:.16em;text-decoration-color:#001e4f59}a:hover{color:var(--accent-ink)}button,a{-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,p{margin-top:0}.site-header{display:none}.resume-page,.page-shell{margin:0 auto}.resume-page{background:var(--bg);max-width:none;width:min(calc(100% - 64px),var(--page-max))}.resume-shell{grid-template-columns:248px minmax(0,1fr);column-gap:48px;min-height:100vh;display:grid}.resume-sidebar{background:var(--ab-navy);border-right:1px solid var(--ab-navy-deep);align-content:start;align-self:start;gap:18px;height:fit-content;margin-top:72px;padding:38px 24px 28px;display:grid;position:sticky;top:72px}.resume-toc{gap:34px;display:grid}.toc-nav,.toc-actions{display:grid}.toc-nav{gap:2px}.toc-nav a,.toc-actions>a{color:#d8e3f2;border-radius:6px;padding:9px 10px;font-size:.88rem;font-weight:650;text-decoration:none}.toc-nav a:hover,.toc-actions>a:hover{background:var(--ab-navy-soft);color:#fff}.toc-actions{border-top:1px solid #24416c;gap:4px;padding-top:16px}.toc-actions>a:first-child{color:#fff}.sidebar-language{border-top:1px solid #24416c;justify-items:start;padding-top:16px;display:grid}html:has(#expertise:target) .toc-nav a[href="#expertise"],html:has(#experience:target) .toc-nav a[href="#experience"],html:has(#projects:target) .toc-nav a[href="#projects"],html:has(#education:target) .toc-nav a[href="#education"]{background:var(--ab-blue);color:#fff}.resume-document{background:var(--ab-ice);border-left:1px solid #001e4f1a;padding:46px 72px 88px;display:grid}.resume-intro,.resume-section{border-bottom:1px solid var(--line);grid-template-columns:156px minmax(0,1fr);scroll-margin-top:28px;display:grid}.resume-intro{border-top:5px solid var(--ab-navy);grid-template-columns:minmax(0,1fr);padding-top:28px;padding-bottom:24px}.resume-section{padding:34px 0}.resume-section h2,.eyebrow{color:var(--ab-blue);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:800}.resume-intro h1{color:var(--ab-navy);letter-spacing:0;margin-bottom:10px;font-size:clamp(1.75rem,2.2vw,2.35rem);font-weight:730;line-height:1.08}.lede{color:var(--muted);max-width:660px;font-size:clamp(.94rem,1vw,1.02rem);line-height:1.5}.intro-contact{gap:11px;max-width:760px;margin-top:26px;display:grid}.intro-contact .eyebrow{color:var(--quiet)}.contact-list,.tight-list,.inline-list{margin:0;padding:0;list-style:none}.contact-list{flex-wrap:wrap;gap:10px 22px;display:flex}.contact-list a,.contact-list span{color:var(--ink);font-size:.98rem;font-weight:700}.contact-list a{text-decoration-thickness:1px}.inline-list{gap:12px;display:grid}.inline-list li{color:var(--ink);font-size:1.02rem;line-height:1.42}.inline-list li:before{color:var(--accent);content:"/";margin-right:10px;font-weight:800}.entry-card,.entry-card--static{border:0;border-bottom:1px solid var(--line);box-shadow:none;background:0 0;border-radius:0;scroll-margin-top:58px;overflow:visible}.entry-stack{display:grid}.entry-card__header-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.entry-card__trigger,.job-disclosure__trigger{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-left:3px solid #0000;grid-template-columns:minmax(0,1fr) 24px;align-items:start;gap:20px;width:100%;display:grid}.entry-card__trigger{min-height:auto;padding:22px 12px 22px 14px}.entry-card__trigger:hover,.job-disclosure__trigger:hover{background:var(--ab-blue-soft);border-left-color:var(--ab-blue);color:var(--ab-blue)}.entry-card--open .entry-card__trigger{border-left-color:var(--ab-navy);background:#e3edf994}.entry-card__actions{flex-wrap:wrap;align-items:center;gap:8px;padding:19px 12px 0 0;display:flex}.entry-card__action,.entry-card__static-actions a{border:1px solid var(--line-strong);color:var(--ab-navy);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;min-height:34px;padding:0 10px;font-size:.82rem;font-weight:760;text-decoration:none;display:inline-flex}.entry-card__action:hover,.entry-card__static-actions a:hover{background:var(--ab-blue-soft);color:var(--ab-navy)}.entry-card__action-icon{flex:none;width:15px;height:15px}.entry-card__title,.entry-card__subtitle,.job-disclosure__title,.job-disclosure__meta,.job-block__meta{display:block}.entry-card__title{font-size:clamp(1.24rem,2.1vw,1.72rem);font-weight:760;line-height:1.12}.entry-card__subtitle{color:var(--muted);margin-top:7px;font-size:.94rem}.entry-card__panel{gap:18px;padding:0 12px 24px 17px;display:grid}.entry-card__summary{color:var(--muted);max-width:760px;margin-bottom:0;font-size:1rem}.tight-list{gap:8px;display:grid}.tight-list li{color:var(--ink);padding-left:18px;line-height:1.45;position:relative}.tight-list li:before{background:var(--accent);content:"";border-radius:50%;width:4px;height:4px;position:absolute;top:.72em;left:2px}.chevron{background:var(--surface);border:1px solid var(--line-strong);color:var(--accent);border-radius:50%;width:24px;height:24px;margin-top:0;padding:3px;transition:transform .16s}.chevron--open{transform:rotate(180deg)}.hidden{display:none}.job-list{border-top:1px solid var(--line);display:grid}.job-disclosure{border:0;border-bottom:1px solid var(--line);border-radius:0;overflow:visible}.job-disclosure:last-child{border-bottom:0}.job-disclosure__trigger{min-height:auto;padding:15px 12px 15px 14px}.job-disclosure__title{font-size:.98rem;font-weight:760}.job-disclosure__meta{color:var(--muted);margin-top:3px;font-size:.9rem}.job-block__meta{color:var(--muted);margin:3px 0 0;font-size:.9rem}.job-disclosure__panel{border:0;padding:0 12px 16px 17px}.link-row{flex-wrap:wrap;gap:10px;display:flex}.link-row a{color:var(--ab-navy);font-size:.92rem;font-weight:760}.education-list{border-top:2px solid var(--ab-navy)}.education-item{border-bottom:1px solid var(--line);padding:20px 0}.education-item h3{margin-bottom:6px;font-size:1.14rem}.education-item p{color:var(--muted);margin-bottom:2px}.page-shell{max-width:none;width:min(calc(100% - 64px),var(--page-max));padding:64px 28px 88px}.portfolio-page{min-height:100vh}.portfolio-hero,.portfolio-section{border-bottom:1px solid var(--line);grid-template-columns:156px minmax(0,1fr);display:grid}.portfolio-hero{border-top:5px solid var(--ab-navy);padding-top:28px;padding-bottom:36px}.portfolio-hero h1{color:var(--ab-navy);margin-bottom:12px;font-size:clamp(2rem,3vw,3.1rem);font-weight:730;line-height:1.05}.portfolio-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.portfolio-section{padding:36px 0}.portfolio-section h2{color:var(--ab-blue);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:800}.portfolio-list{border-top:2px solid var(--ab-navy)}.portfolio-entry{border-bottom:1px solid var(--line);border-left:3px solid var(--ab-blue);gap:18px;padding:28px 0 28px 18px;display:grid}.portfolio-entry__header{justify-content:space-between;align-items:start;gap:24px;display:flex}.portfolio-entry__header .link-row{flex:none;justify-content:flex-end}.portfolio-entry__header .link-row a{white-space:nowrap}.portfolio-entry__meta{color:var(--ab-blue);text-transform:uppercase;margin-bottom:8px;font-size:.76rem;font-weight:800}.portfolio-entry h3{margin-bottom:0;font-size:clamp(1.45rem,2.4vw,2.05rem);line-height:1.12}.portfolio-entry__summary{color:var(--muted);max-width:780px;margin-bottom:0;font-size:1.02rem}.portfolio-diagram{background:linear-gradient(180deg,#fff 0%,var(--ab-blue-soft)100%);border:1px solid var(--line-strong);border-left:5px solid var(--ab-navy);gap:16px;margin:2px 0 4px;padding:18px;display:grid}.portfolio-diagram figcaption{gap:5px;min-width:0;display:grid}.portfolio-diagram h4{color:var(--ab-navy);letter-spacing:0;text-transform:uppercase;margin:0;font-size:.95rem;font-weight:800}.portfolio-diagram figcaption p{color:var(--muted);overflow-wrap:anywhere;min-width:0;max-width:100%;margin:0;font-size:.92rem}.portfolio-diagram__lanes{gap:14px;display:grid}.diagram-lane{grid-template-columns:128px minmax(0,1fr);gap:14px;display:grid}.diagram-lane__label{color:var(--ab-blue);letter-spacing:0;text-transform:uppercase;margin:0;padding-top:12px;font-size:.72rem;font-weight:800}.diagram-flow{counter-reset:diagram-step;gap:18px;margin:0;padding:0;list-style:none;display:flex}.diagram-flow li{background:var(--surface);overflow-wrap:anywhere;border:1px solid #b8c9df;border-radius:6px;flex:1 1 0;gap:5px;min-width:0;min-height:108px;padding:13px 12px 13px 36px;display:grid;position:relative}.diagram-flow li:before{background:var(--ab-navy);color:#fff;content:counter(diagram-step);counter-increment:diagram-step;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.72rem;font-weight:800;display:inline-flex;position:absolute;top:13px;left:10px}.diagram-flow li:not(:last-child):after{border-right:2px solid var(--ab-blue);border-top:2px solid var(--ab-blue);content:"";width:8px;height:8px;position:absolute;top:calc(50% - 5px);right:-15px;transform:rotate(45deg)}.diagram-flow strong{color:var(--ab-navy);min-width:0;font-size:.86rem;line-height:1.18}.diagram-flow span{color:var(--muted);min-width:0;font-size:.8rem;line-height:1.28}.portfolio-diagram--architecture{border-left:1px solid var(--line-strong);background:linear-gradient(90deg,#001e4f0d 1px,#0000 1px) 0 0/28px 28px,linear-gradient(#fff,#f4f8fe);border-radius:8px;gap:20px;padding:22px}.portfolio-diagram--architecture .portfolio-diagram__lanes{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:18px;display:grid;position:relative}.portfolio-diagram--architecture .portfolio-diagram__lanes:before{background:linear-gradient(90deg,var(--ab-blue),var(--ab-navy));content:"";opacity:.45;height:2px;position:absolute;top:31px;left:8%;right:8%}.portfolio-diagram--architecture .diagram-lane{background:#ffffffe0;border:1px solid #b8c9df;border-radius:8px;grid-template-columns:1fr;gap:12px;min-width:0;padding:14px;display:grid;position:relative;box-shadow:0 10px 28px #001e4f12}.portfolio-diagram--architecture .diagram-lane:not(:last-child):after{background:var(--surface);border-right:2px solid var(--ab-blue);border-top:2px solid var(--ab-blue);content:"";z-index:2;width:12px;height:12px;position:absolute;top:30px;right:-12px;transform:rotate(45deg)}.diagram-lane__heading{z-index:1;align-items:center;gap:9px;min-width:0;display:flex;position:relative}.diagram-lane__heading>span{background:var(--ab-navy);color:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;width:34px;height:26px;font-size:.68rem;font-weight:850;display:inline-flex}.portfolio-diagram--architecture .diagram-lane__label{color:var(--ab-navy);padding-top:0;font-size:.78rem}.portfolio-diagram--architecture .diagram-flow{gap:10px;display:grid}.portfolio-diagram--architecture .diagram-flow li{border-color:#c9d8eb;border-left:4px solid var(--ab-blue);box-shadow:none;border-radius:6px;min-height:0;padding:12px 12px 12px 42px}.portfolio-diagram--architecture .diagram-flow li:before{background:var(--ab-blue-soft);color:var(--ab-navy)}.portfolio-diagram--architecture .diagram-flow li:not(:last-child):after{border-color:var(--line-strong);width:7px;height:7px;inset:auto auto -11px 20px;transform:rotate(135deg)}.portfolio-diagram--architecture .diagram-flow strong{font-size:.88rem}.portfolio-diagram--architecture .diagram-flow span{font-size:.81rem;line-height:1.32}.portfolio-diagram--pipeline{border-left:1px solid var(--line-strong);background:radial-gradient(circle at 18% 28%,#245da814,#0000 26%),linear-gradient(#fff,#f6f9fd);border-radius:8px;gap:16px;padding:18px;overflow:hidden}.pipeline-map{width:100%;height:auto;margin-top:2px;display:block;overflow:visible}.pipeline-map marker path{fill:var(--ab-blue)}.pipeline-edge{fill:none;stroke-linecap:round;stroke-linejoin:round}.pipeline-edge--primary{stroke:var(--ab-navy);stroke-width:4px}.pipeline-edge--kafka{opacity:.78;stroke:var(--ab-blue);stroke-width:3px}.pipeline-edge--state{opacity:.85;stroke:#2c689e;stroke-width:3px}.pipeline-edge--read{opacity:.72;stroke:#6b819d;stroke-dasharray:6 6;stroke-width:3px}.pipeline-edge-label{fill:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:800}.pipeline-node rect{fill:#fffffff5;stroke:#aec3dd;stroke-width:1.5px}.pipeline-node text{fill:var(--ab-navy);letter-spacing:0;text-anchor:middle;text-transform:uppercase;font-size:13px;font-weight:850}.pipeline-node__small{fill:var(--muted)!important;text-transform:none!important;font-size:9px!important;font-weight:750!important}.pipeline-node--main rect{fill:var(--ab-navy);stroke:var(--ab-navy)}.pipeline-node--main text,.pipeline-node--main .pipeline-node__small{fill:#fff!important}.pipeline-node--processor-panel rect{fill:#fffffff0;stroke:#8dafd4}.pipeline-node--processor-panel>text{fill:var(--ab-navy);font-size:13px}.pipeline-processor-group rect{fill:#f5f9fd;stroke:#bfd0e4;stroke-width:1px}.pipeline-processor-group>.pipeline-group-title{fill:var(--ab-blue);letter-spacing:0;text-anchor:middle;text-transform:uppercase;font-size:9.4px;font-weight:850}.pipeline-processor-group>.pipeline-group-summary{fill:var(--ab-navy);letter-spacing:0;text-anchor:middle;text-transform:none;font-size:7.8px;font-weight:760}.pipeline-node--processor-panel>.pipeline-implementation-label{fill:var(--ab-blue);letter-spacing:0;text-anchor:middle;text-transform:uppercase;font-size:7.4px;font-weight:850}.pipeline-node--processor-panel>.pipeline-implementation-detail{fill:var(--muted);letter-spacing:0;text-anchor:middle;text-transform:none;font-size:8px;font-weight:760}.pipeline-node--bus rect{fill:#e8f1fb;stroke:#6f98c4}.pipeline-node--store rect{fill:#eef5fd;stroke:#8dafd4}.pipeline-node--sink rect{fill:#f3f7fb;stroke:#8dafd4}.portfolio-entry__body{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.portfolio-entry__body h4{color:var(--quiet);text-transform:uppercase;margin-bottom:8px;font-size:.72rem;font-weight:800}.portfolio-entry__body p{color:var(--muted);margin-bottom:0}.tag-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tag-list li{background:var(--ab-blue-soft);color:var(--ab-navy-soft);border:1px solid #c9d7ea;border-radius:6px;padding:4px 8px;font-size:.78rem;font-weight:700}.portfolio-empty{border-left:1px solid var(--line);gap:20px;min-height:60vh;padding:48px 0 0 48px;display:grid}.portfolio-empty h1{margin-bottom:0;font-size:clamp(4rem,10vw,8rem);font-weight:750;line-height:.92}.button{background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;justify-content:center;justify-self:start;align-items:center;min-height:40px;padding:0 14px;font-weight:760;text-decoration:none;display:inline-flex}.button:hover{background:var(--ab-blue-soft);color:var(--ab-navy)}.button--primary{background:var(--ab-navy);color:var(--surface)}.button--primary:hover{background:var(--ab-navy-deep);color:var(--surface)}.language-toggle{border:1px solid var(--line-strong);background:#001e4f0f;border-radius:6px;align-items:center;gap:4px;padding:4px;display:inline-flex}.language-toggle a{color:var(--muted);text-align:center;border-radius:4px;min-width:42px;min-height:28px;padding:8px 9px;font-size:.78rem;font-weight:800;line-height:1;text-decoration:none}.language-toggle a:hover{background:var(--ab-blue-soft);color:var(--ab-navy)}.language-toggle a.is-active{background:var(--ab-navy);color:#fff}.resume-sidebar .language-toggle{background:#ffffff14;border-color:#24416c;justify-self:start}.resume-sidebar .language-toggle a{color:#d8e3f2}.resume-sidebar .language-toggle a:hover,.resume-sidebar .language-toggle a.is-active{background:var(--ab-blue);color:#fff}@media(max-width:920px){.resume-page,.page-shell{width:100%}.resume-shell{display:block}.resume-sidebar{border-bottom:1px solid var(--line);border-right:0;gap:18px;min-height:auto;padding:28px 18px 18px;position:static}.toc-nav,.toc-actions{flex-wrap:wrap;display:flex}.toc-nav a,.toc-actions>a{padding:7px 8px}.resume-document{padding:24px 18px 64px}.resume-intro,.resume-section{grid-template-columns:1fr;display:grid}.resume-intro{padding-bottom:22px}.resume-section{gap:18px;padding:28px 0}.entry-card__header-row{grid-template-columns:1fr}.entry-card__actions{padding:0 12px 18px 17px}.resume-intro h1{font-size:clamp(1.85rem,8vw,2.35rem)}.lede{font-size:1rem}.portfolio-empty{padding-left:22px}.portfolio-hero,.portfolio-section{grid-template-columns:1fr;gap:18px;display:grid}.portfolio-entry__header,.portfolio-entry__body{grid-template-columns:1fr;display:grid}.portfolio-diagram{padding:15px}.diagram-lane,.diagram-flow{grid-template-columns:1fr;display:grid}.diagram-lane{gap:8px}.diagram-lane__label{padding-top:0}.diagram-flow li{min-height:auto}.diagram-flow li:not(:last-child):after{display:none}.portfolio-diagram--architecture .portfolio-diagram__lanes{grid-template-columns:1fr}.portfolio-diagram--architecture .portfolio-diagram__lanes:before,.portfolio-diagram--architecture .diagram-lane:not(:last-child):after,.portfolio-diagram--architecture .diagram-flow li:not(:last-child):after{display:none}.portfolio-diagram--pipeline{overflow-x:auto}.portfolio-diagram--pipeline .pipeline-map{min-width:760px}.portfolio-entry h3{font-size:1.55rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@page{margin:0;size:A4}.print-body{background:#fff}.print-mode{box-shadow:none;color:#061a39;background:#fff;width:210mm;max-width:none;min-height:297mm;padding:7mm}.print-mode .resume-shell{min-height:0;display:block}.print-mode .resume-document{background:#fff;border-left:0;padding:0;display:block}.print-mode .resume-intro,.print-mode .resume-section{grid-template-columns:42mm minmax(0,1fr);gap:4mm;display:grid}.print-mode .resume-intro{grid-template-columns:minmax(0,1fr);padding-bottom:3mm}.print-mode .intro-contact{gap:1.2mm;margin-top:2.8mm}.print-mode .resume-section{padding:2.8mm 0}.print-mode h1{margin-bottom:3pt;font-size:21pt;line-height:1}.print-mode .lede,.print-mode p,.print-mode li,.print-mode a{font-size:6.7pt;line-height:1.22}.print-mode h2,.print-mode .eyebrow{margin-bottom:0;font-size:6.6pt}.print-mode h3{margin-bottom:1pt;font-size:7.6pt}.print-mode h4{margin-bottom:1pt;font-size:6.9pt}.print-mode .education-list{border-top-color:#aebed4}.print-mode .entry-card{page-break-inside:avoid}.print-mode .entry-card--static{padding:1.6mm 0}.print-mode .entry-card__summary{margin-bottom:1mm}.print-mode .entry-card__static-header{justify-content:space-between;gap:4mm;display:flex}.print-mode .entry-card__static-header p{color:var(--muted);margin-bottom:0}.print-mode .entry-card--experience .entry-card__static-header h3{color:var(--ab-navy);font-size:8.8pt;font-weight:800}.print-mode .entry-card--experience .entry-card__static-header p{color:#36577f;font-weight:650}.entry-card__static-actions{flex-wrap:wrap;justify-content:flex-end;align-items:start;gap:6px;display:flex}.print-mode .entry-card__static-actions a{border:0;min-height:0;padding:0;text-decoration:underline}.print-mode .tight-list,.print-mode .inline-list{gap:1pt}.print-mode .inline-list li,.print-mode .tight-list li{padding-left:7pt}.print-mode .inline-list li:before{margin-right:4pt}.print-mode .tight-list li:before{width:3px;height:3px;top:.55em}.print-mode .job-list--static{gap:1mm;margin-top:1mm}.print-mode .job-block{border-top:1px solid var(--line);padding-top:1mm}.print-mode .job-block__meta{color:#36577f;margin:0 0 1pt;font-size:6.6pt;font-weight:650;line-height:1.2}.print-mode .job-block p,.print-mode .tag-list{display:none}.print-mode .contact-list{gap:3pt 8pt}.print-mode .education-item{padding:1.6mm 0}.print-mode .portfolio-hero,.print-mode .portfolio-section{grid-template-columns:38mm minmax(0,1fr);gap:4mm;display:grid}.print-mode .portfolio-hero{padding-bottom:4mm}.print-mode .portfolio-section{padding:3mm 0}.print-mode .portfolio-hero h1{font-size:18pt}.print-mode .portfolio-list{border-top-color:#aebed4}.print-mode .portfolio-entry{border-left:0;gap:2mm;padding:2mm 0}.print-mode .portfolio-entry__header{display:block}.print-mode .portfolio-entry h3{font-size:9pt}.print-mode .portfolio-entry__meta,.print-mode .portfolio-entry__body h4{margin-bottom:1pt;font-size:6.2pt}.print-mode .portfolio-entry__summary{font-size:6.7pt}.print-mode .portfolio-diagram{page-break-inside:avoid;border-left-width:0;gap:1.5mm;margin:0;padding:1.6mm}.print-mode .portfolio-diagram h4{margin-bottom:0;font-size:6.3pt}.print-mode .portfolio-diagram figcaption{gap:.5mm}.print-mode .portfolio-diagram figcaption p{font-size:5.7pt;line-height:1.15}.print-mode .portfolio-diagram__lanes{gap:1mm}.print-mode .diagram-lane{grid-template-columns:27mm minmax(0,1fr);gap:1.5mm}.print-mode .diagram-lane__label{padding-top:1.6mm;font-size:5.8pt;line-height:1.1}.print-mode .diagram-flow{grid-template-columns:none;gap:1.5mm;display:flex}.print-mode .diagram-flow li{border-radius:2px;flex:1 1 0;gap:.6mm;min-height:0;padding:1.5mm 1.2mm 1.3mm 4.8mm}.print-mode .diagram-flow li:before{width:3.4mm;height:3.4mm;font-size:5.2pt;top:1.3mm;left:.9mm}.print-mode .diagram-flow li:not(:last-child):after{display:none}.print-mode .diagram-flow strong{font-size:5.9pt}.print-mode .diagram-flow span{font-size:5.3pt;line-height:1.12}.print-mode .portfolio-diagram--architecture{background:#fff;border-radius:2px;gap:1.8mm;padding:2mm}.print-mode .portfolio-diagram--architecture .portfolio-diagram__lanes{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.8mm;display:grid}.print-mode .portfolio-diagram--architecture .portfolio-diagram__lanes:before,.print-mode .portfolio-diagram--architecture .diagram-lane:not(:last-child):after,.print-mode .portfolio-diagram--architecture .diagram-flow li:not(:last-child):after{display:none}.print-mode .portfolio-diagram--architecture .diagram-lane{border-radius:2px;grid-template-columns:1fr;gap:1mm;padding:1.4mm;display:grid}.print-mode .diagram-lane__heading{gap:1.2mm}.print-mode .diagram-lane__heading>span{width:6mm;height:4mm;font-size:5pt}.print-mode .portfolio-diagram--architecture .diagram-lane__label{font-size:5.6pt}.print-mode .portfolio-diagram--architecture .diagram-flow{gap:1mm;display:grid}.print-mode .portfolio-diagram--architecture .diagram-flow li{border-left-width:2px;padding:1.3mm 1.1mm 1.2mm 4.6mm}.print-mode .portfolio-diagram--architecture .diagram-flow li:before{width:3.1mm;height:3.1mm}.print-mode .portfolio-diagram--pipeline{background:#fff;border-radius:2px;gap:1.4mm;padding:1.6mm}.print-mode .portfolio-diagram--pipeline .pipeline-map{width:auto;max-width:100%;height:55mm}.print-mode .portfolio-diagram--pipeline .pipeline-edge--primary{stroke-width:3.5px}.print-mode .portfolio-diagram--pipeline .pipeline-edge-label{font-size:10px}.print-mode .portfolio-diagram--pipeline .pipeline-node text{font-size:11px}.print-mode .portfolio-diagram--pipeline .pipeline-node__small{font-size:8px!important}.print-mode .portfolio-entry__body{grid-template-columns:1fr;gap:2mm}.print-mode .portfolio-empty{border:0;padding:0}.print-mode .portfolio-empty h1{font-size:28pt}@media print{.site-header,.resume-sidebar,.resume-toc{display:none}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
