:root{--navy:#002050;--ink:#242424;--muted:#5f6368;--line:#e3e7ed;--line-strong:#c8d2df;--blue:#0f6cbd;--blue-dark:#0f548c;--tint:#f5f8fc;--tag:#ebf3fc;--ok:#107c10;--danger:#c50f1f;--font:"Segoe UI", "Segoe UI Web (West European)", Inter, system-ui, -apple-system, sans-serif;--fast:.16s;--ease:cubic-bezier(.2, .7, .3, 1);--section:72px;--header:68px}*{box-sizing:border-box}html{scroll-padding-top:calc(var(--header) + 24px)}body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;background:#fff;margin:0;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%}h1,h2,h3{color:var(--ink);margin:0;font-weight:600;line-height:1.2}h2{letter-spacing:-.3px;font-size:30px}main:focus{outline:none}:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--blue);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:30;background:var(--navy);color:#fff;border-radius:4px;padding:12px 20px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:12px}.wrap{max-width:1160px;margin:0 auto;padding:0 24px}.narrow{max-width:820px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.grow{flex:1}section{padding:var(--section) 0}.tinted{background:var(--tint)}.head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.head .more{flex-shrink:0}.grid2,.grid3,.grid4{gap:20px;display:grid}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:28px}.eyebrow{color:var(--blue);margin:0 0 8px;font-size:14px;font-weight:600}.kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin:0 0 6px;font-size:11.5px;font-weight:600}.meta{color:var(--muted);font-size:13px}.lead{color:var(--muted);max-width:620px;margin:0 0 24px;font-size:18px}.lead a,.crumb a,.byline a{color:var(--blue);text-underline-offset:3px;text-decoration:underline}.crumb{color:var(--muted);margin:0 0 12px;font-size:14px}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{background:var(--tag);color:var(--blue-dark);border-radius:4px;padding:3px 10px;font-size:12.5px}.btn{background:var(--blue);color:#fff;min-height:44px;font:600 15px/1.2 var(--font);cursor:pointer;transition:background-color var(--fast) var(--ease), border-color var(--fast) var(--ease), color var(--fast) var(--ease);border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;display:inline-flex}.btn:hover{background:var(--blue-dark)}.btn.ghost{color:var(--ink);border-color:var(--line-strong);background:#fff}.btn.ghost:hover{border-color:var(--blue);color:var(--blue)}.btn-lg{min-height:50px;padding:12px 26px;font-size:16px}.more{color:var(--blue);align-items:center;gap:6px;font-size:15px;font-weight:600;display:inline-flex}.more:hover,footer a:hover,.crumb a:hover{text-underline-offset:4px;text-decoration:underline}.arrow{transition:transform var(--fast) var(--ease);display:inline-block}.btn:hover .arrow,.more:hover .arrow,.case:hover .arrow,.case:focus-visible .arrow{transform:translate(4px)}.wm{font-family:Inter, var(--font);color:#0e2240;white-space:nowrap;font-size:22px}.wm b{font-weight:700}.wm .dot{vertical-align:-.03em;width:.64em;height:.64em;margin:0 .03em;display:inline-block}header{z-index:10;-webkit-backdrop-filter:saturate(1.4)blur(8px);backdrop-filter:saturate(1.4)blur(8px);border-bottom:1px solid var(--line);background:#fffffff5;position:sticky;top:0}header .wrap{height:var(--header);align-items:center;gap:40px;display:flex}header nav{gap:32px;height:100%;display:flex}header nav a{color:#424242;transition:color var(--fast) var(--ease);align-items:center;font-size:15px;display:flex;position:relative}header nav a:after{content:"";background:var(--blue);height:3px;transition:transform var(--fast) var(--ease);border-radius:2px 2px 0 0;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}header nav a:hover{color:var(--blue)}header nav a.active{color:var(--navy);font-weight:600}header nav a.active:after{transform:scaleX(1)}.header-cv{padding:8px 14px;font-size:14px}.cv-short{display:none}.menu-toggle{border:1px solid var(--line-strong);min-height:44px;font:14px var(--font);color:var(--ink);cursor:pointer;background:#fff;border-radius:4px;align-items:center;gap:8px;padding:8px 12px;display:none}.mobile-nav{display:none}footer{border-top:1px solid var(--line);color:#6b6b6b;background:#fafafa;font-size:13px}footer .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}footer .row{gap:8px 20px}.cta{background:var(--navy);color:#fff;padding:56px 0}.cta .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.cta h2{color:#fff;font-size:28px}.cta p{color:#b8c7de;margin:6px 0 0}.cta .btn{color:var(--navy);background:#fff}.cta .btn:hover{background:#e6eef8}.cta .btn.ghost{color:#fff;background:0 0;border-color:#6f86aa}.cta .btn.ghost:hover{background:#14365f;border-color:#fff}.card{border:1px solid var(--line);transition:border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);background:#fff;border-radius:8px;padding:24px}.card h3{margin:0 0 6px;font-size:17px;line-height:1.35}.card p{color:var(--muted);margin:0;font-size:14.5px}.ic{background:var(--tag);width:40px;height:40px;color:var(--blue);border-radius:8px;justify-content:center;align-items:center;margin-bottom:14px;display:flex}.expertise-card p{line-height:1.7}.case{flex-direction:column;gap:12px;height:100%;padding:0 24px 22px;display:flex;overflow:hidden}.case:hover,.case:focus-visible{border-color:var(--blue);box-shadow:0 6px 20px #00205012}.case .project-visual{border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0 -24px 6px}.case .kicker{margin:0}.case h3{color:var(--navy);margin:0;font-size:20px}.case-role,.case-outcome{font-size:14.5px;line-height:1.6}.case-role span,.case-outcome span{color:var(--ink);margin-bottom:2px;font-size:12px;font-weight:600;display:block}.case .case-outcome{flex:1}.case-link{border-top:1px solid var(--line);color:var(--blue);justify-content:space-between;margin-top:4px;padding-top:14px;font-size:14px;font-weight:600;display:flex}.guide{flex-direction:column;gap:12px;display:flex}.guide-link{align-items:center;gap:20px;display:flex}.guide-link img{aspect-ratio:8.5/11;object-fit:cover;width:112px;height:auto;transition:transform var(--fast) var(--ease);border:1px solid #dce4ee;border-radius:4px;flex:0 0 112px;box-shadow:0 6px 16px #00205024}.guide-link h3{color:var(--navy);transition:color var(--fast) var(--ease);font-size:21px}.guide-link:hover img{transform:translateY(-3px)}.guide-link:hover h3{color:var(--blue)}.guide:hover{border-color:var(--line-strong)}.guide>p{color:var(--ink)}.guide>.meta{color:var(--muted)}.guide .acts{margin-top:auto;padding-top:8px}.guide .btn{padding:8px 16px;font-size:14px}.hero{padding:0}.hero .wrap{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:72px;padding-top:80px;padding-bottom:80px;display:grid}.hero h1{letter-spacing:-1.5px;margin:0 0 20px;font-size:clamp(40px,4.6vw,58px);line-height:1.08}.hero h1 span{color:var(--navy)}.hero .lead{max-width:540px;margin-bottom:32px;font-size:19px}.hero-actions{gap:24px}.profile{background:var(--tint);border:1px solid #e1e9f4;border-radius:8px;overflow:hidden}.portrait{background:#e8edf3;height:220px;overflow:hidden}.portrait img{object-fit:cover;object-position:center 30%;width:100%;height:100%;display:block}.profile-info{padding:24px}.profile-info h2{font-size:23px}.profile-location{color:var(--muted);margin:6px 0 16px;font-size:14px}.profile-availability{color:var(--muted);border-top:1px solid #dce4ee;margin:18px 0 0;padding-top:14px;font-size:13px}.open{color:var(--ok);align-items:center;gap:6px;margin:0 0 12px;font-size:13px;display:flex}.open i{background:var(--ok);border-radius:50%;width:8px;height:8px}.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fafafa}.stats .wrap{grid-template-columns:repeat(4,1fr);display:grid}.stat{border-left:1px solid var(--line);padding:24px}.stat:first-child{border-left:0;padding-left:0}.stat b{color:var(--navy);font-size:30px;font-weight:700;line-height:1.2;display:block}.stat span{color:var(--muted);font-size:14px}.about-preview{grid-template-columns:1fr 1fr;align-items:center;gap:64px;display:grid}.about-preview p:not(.eyebrow){color:var(--muted);margin-top:0}.company-section{padding:36px 0}.company-strip{align-items:center;gap:40px;display:flex}.company-strip .eyebrow{color:var(--muted);flex-shrink:0;margin:0;font-weight:500}.company-list{flex:1;justify-content:space-between;align-items:center;gap:32px;margin:0;padding:0;list-style:none;display:flex}.company-list a,.company-list li>span{align-items:center;height:44px;display:flex}.company-list img{object-fit:contain;filter:grayscale();opacity:.7;width:auto;max-width:150px;height:34px;transition:filter var(--fast) var(--ease), opacity var(--fast) var(--ease)}.company-wordmark{color:#6b7280;white-space:nowrap;transition:color var(--fast) var(--ease);font-size:22px;font-weight:700}.company-list a:hover img{filter:none;opacity:1}.company-list a:hover .company-wordmark{color:var(--navy)}.pagehead{border-bottom:1px solid var(--line);padding:64px 0 48px}.pagehead h1{letter-spacing:-.5px;margin:0 0 14px;font-size:42px}.pagehead .lead{margin-bottom:0}.filter-row{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.filter{border:1px solid var(--line-strong);min-height:40px;color:var(--muted);font:14px var(--font);cursor:pointer;transition:background-color var(--fast) var(--ease), border-color var(--fast) var(--ease), color var(--fast) var(--ease);background:#fff;border-radius:999px;padding:8px 16px}.filter:hover{border-color:var(--blue);color:var(--blue)}.filter[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}.results-toolbar{justify-content:space-between;align-items:center;gap:16px;display:flex}.results-count{color:var(--muted);margin:18px 0;font-size:14px}.clear-filters{color:var(--blue);font:14px var(--font);cursor:pointer;text-underline-offset:4px;background:0 0;border:0;flex-shrink:0;min-height:44px;padding:8px;text-decoration:underline}.customization-section{border-top:1px solid var(--line)}.customization-section .grid3{margin-top:28px}.project-visual{background:#f3f7fc;border:1px solid #e1e9f2;border-radius:6px;margin:0;overflow:hidden}.project-visual svg{width:100%;height:auto;display:block}.project-visual figcaption{color:var(--muted);background:#fff;border-top:1px solid #e1e9f2;padding:12px 20px;font-size:13px}.project-summary{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:24px;padding:28px 0;display:grid}.project-summary span,.project-summary strong{display:block}.project-summary span{color:var(--muted);margin-bottom:4px;font-size:13px}.project-summary strong{color:var(--navy);font-size:15px;font-weight:600}.story>div{border-bottom:1px solid var(--line);gap:20px;padding:28px 0;display:flex}.story>div:last-child{border-bottom:0}.num{background:var(--navy);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-weight:600;display:flex}.story h2{margin-bottom:8px;font-size:21px}.story p{margin:0;font-size:16.5px;line-height:1.8}.project-next{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding-top:32px;display:flex}.library-controls{grid-template-columns:minmax(0,2fr) minmax(180px,1fr);gap:20px;display:grid}.search-field,.topic-field{color:var(--ink);gap:8px;font-size:14px;font-weight:600;display:grid}.library-controls input,.library-controls select{width:100%;min-height:48px;color:var(--ink);font:400 15px var(--font);background:#fff;border:1px solid #aab6c3;border-radius:4px;padding:10px 14px}.article-results{margin-top:24px}.post-row{border-bottom:1px solid var(--line);padding:24px 0;display:block}.post-row h3{transition:color var(--fast) var(--ease);margin:4px 0 6px;font-size:21px}.post-row:hover h3{color:var(--blue)}.post-row p{color:var(--muted);margin:0 0 10px}.empty{text-align:center;padding:48px 24px}.empty h2{font-size:24px}.empty p{margin:8px 0 20px}.guide-head{grid-template-columns:220px 1fr;align-items:center;gap:48px;display:grid}.guide-head img{border:1px solid #dce4ee;border-radius:4px;box-shadow:0 10px 28px #0020502e}.guide-head h1{color:var(--navy)}.guide-head .lead{margin-bottom:8px}.guide-head .meta{margin:0 0 12px}.acts{margin-top:18px}.guide-body{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:40px;display:grid}.guide-side{top:calc(var(--header) + 24px);font-size:14.5px;position:sticky}.steps{margin:0;padding-left:22px}.steps li{padding:3px 0}.guide-reader{min-width:0}.reader-help{background:var(--tint);border:1px solid var(--line);border-radius:6px;margin-bottom:20px;padding:22px 24px}.reader-help h2{font-size:20px}.reader-help p{color:var(--muted)}.pdf{border:1px solid var(--line);border-radius:8px;width:100%;height:85vh}.guide-return{padding-bottom:40px}.article{max-width:760px;padding:64px 24px 72px}.article h1{letter-spacing:-.5px;margin:0 0 16px;font-size:clamp(32px,4vw,42px)}.article .lead{margin-bottom:16px}.article-body{margin-top:36px;font-size:17px;line-height:1.8}.article-body p,.article-body ul{margin:0 0 20px}.article-body h2{color:var(--navy);margin:40px 0 12px;font-size:23px}.article-body ul{padding-left:22px}.article-body li+li{margin-top:8px}.code{background:#0e1b2e;border-radius:6px;margin:0 0 24px;overflow:hidden}.code figcaption{letter-spacing:.1em;color:#9fb4d3;border-bottom:1px solid #1e2f48;padding:8px 16px;font-size:11.5px}.code pre{color:#e6eef8;margin:0;padding:16px;font:14px/1.6 ui-monospace,Cascadia Code,Menlo,Consolas,monospace;overflow-x:auto}.note{border-left:3px solid var(--blue);background:var(--tint);border-radius:0;padding:14px 18px;font-size:15.5px}.guide-cta{align-items:center;gap:20px;margin-top:40px;display:flex}.guide-cta:hover{border-color:var(--blue)}.guide-cta img{border:1px solid #dce4ee;border-radius:3px;flex-shrink:0}.guide-cta strong{color:var(--navy);margin-bottom:6px;font-size:19px;display:block}.byline{color:var(--muted);margin-top:28px;font-size:14px}.home-articles{margin-top:40px}.home-articles h3{margin-bottom:4px;font-size:18px}.post-row .meta{display:block}.about-head{grid-template-columns:220px 1fr;align-items:center;gap:48px;display:grid}.about-head img{object-fit:cover;border:5px solid var(--tint);border-radius:50%;width:220px;height:220px}.about-wm .wm{font-size:44px}.role{color:var(--navy);margin:6px 0 16px;font-size:19px;font-weight:600}.experience-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);align-items:start;gap:64px;display:grid}.experience-intro{top:calc(var(--header) + 36px);position:sticky}.experience-intro p:not(.eyebrow){color:var(--muted);line-height:1.75}.timeline{border-left:2px solid var(--line);margin:0;padding:0;list-style:none}.timeline>li{padding:0 0 32px 28px;position:relative}.timeline>li:before{content:"";background:var(--blue);border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;top:26px;left:-7px}.experience-card{border:1px solid var(--line);border-radius:6px;padding:24px}.experience-card .meta{color:var(--blue-dark);margin-bottom:6px;font-weight:600;display:inline-block}.experience-card h3{font-size:18px}.company{color:var(--blue-dark);margin:4px 0 8px;font-weight:600}.experience-card ul{color:var(--muted);margin:0;padding-left:18px;font-size:15px;line-height:1.75}.experience-card ul li+li{margin-top:6px}.skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:28px;display:grid}.skill-group h3{color:var(--navy);margin-bottom:14px;font-size:18px}.contact{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:start;gap:24px;display:grid}.contact-side{gap:20px;display:grid}.email-card{background:var(--tint);border-color:#c9dcf2}.email-big{color:var(--navy);overflow-wrap:anywhere;margin:2px 0 18px;font-size:21px;font-weight:600;display:block}.email-big:hover{color:var(--blue)}.details dl{grid-template-columns:120px minmax(0,1fr);row-gap:14px;margin:0 0 20px;font-size:15px;display:grid}.details dt{color:var(--muted)}.details dd{overflow-wrap:anywhere;margin:0}.details a{color:var(--blue)}.form{grid-template-columns:1fr 1fr;gap:18px 16px;padding:28px;display:grid}.form h2{font-size:22px}.form-intro{color:var(--muted);margin:6px 0 0;font-size:14px}.form .full{grid-column:1/-1}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink);font-size:14px;font-weight:600}.req,.opt{color:var(--muted);font-size:13px;font-weight:400}.hint{color:var(--muted);margin:-2px 0 2px;font-size:13px}.field input,.field select,.field textarea{font:15px var(--font);color:var(--ink);min-height:44px;transition:border-color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);background:#fff;border:1px solid #a9b4c2;border-radius:4px;padding:10px 12px}.field input:hover,.field select:hover,.field textarea:hover{border-color:#6f7b8a}.field :is(input,select,textarea):focus-visible{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #0f6cbd2e}.field textarea{resize:vertical}.has-error :is(input,textarea){border-color:var(--danger)}.field-error{color:var(--danger);margin:0;font-size:13px}.ok{color:var(--ok);font-size:14px}.hp{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.btn:disabled{opacity:.7;cursor:progress}.err{color:var(--danger);font-size:14px}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes drop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.fade-in{animation:fade .18s var(--ease)}.reveal.is-pending{opacity:0}.reveal.is-visible{animation:rise .42s var(--ease) both}@media (width<=900px){:root{--section:56px}header nav{display:none}.menu-toggle{display:inline-flex}header .wrap{gap:12px}header .mobile-nav.is-open{border-top:1px solid var(--line);height:auto;animation:drop .2s var(--ease);flex-direction:column;padding:8px 24px 16px;display:flex}.mobile-nav a{border-radius:4px;align-items:center;min-height:44px;padding:10px 12px;font-size:15px;display:flex}.mobile-nav a:after{display:none}.mobile-nav a.active{background:var(--tag);color:var(--navy)}.hero .wrap{grid-template-columns:1fr;gap:40px;padding-top:48px;padding-bottom:56px}.profile{width:100%;max-width:460px}.pagehead h1{font-size:34px}.head{flex-direction:column;align-items:flex-start}.stats .wrap{grid-template-columns:repeat(2,1fr)}.stat{border-left:0;padding:18px 0}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid2,.grid3,.guide-body,.contact,.experience-layout{grid-template-columns:minmax(0,1fr)}.guide-side,.experience-intro{position:static}.guide-head,.about-head{grid-template-columns:1fr;gap:28px}.guide-head img{width:180px}.about-head img{width:160px;height:160px}.about-preview{grid-template-columns:1fr;gap:24px}.company-strip{flex-direction:column;align-items:flex-start;gap:16px}.company-list{flex-wrap:wrap;justify-content:flex-start;gap:20px 36px;width:100%}}@media (width<=640px){:root{--section:48px}h2{font-size:26px}.wm{font-size:20px}.cv-long{display:none}.cv-short{display:inline}.header-cv{padding:8px 12px}.hero h1{letter-spacing:-1px;font-size:clamp(34px,9vw,42px)}.hero .lead{font-size:17px}.portrait{height:260px}.stat b{font-size:26px}.stat span{font-size:12.5px}.grid4,.form,.skills,.library-controls,.project-summary{grid-template-columns:minmax(0,1fr)}.project-summary{gap:14px}.pagehead{padding:40px 0 32px}.guide-link img{flex-basis:88px;width:88px}.guide-link h3{font-size:19px}.guide-reader .pdf{display:none}.experience-card{padding:18px}.timeline>li{padding-left:20px}.results-toolbar{align-items:flex-start}.details dl{grid-template-columns:1fr;row-gap:2px}.details dd{margin-bottom:10px}.form{padding:20px}footer a{align-items:center;min-height:44px;display:inline-flex}}@media (width<=360px){.wrap{padding-left:18px;padding-right:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reveal.is-pending{opacity:1}}
