.portfolio{--background:48 21% 95%;--foreground:225 36% 13%;--card:48 21% 98%;--card-foreground:225 36% 13%;--popover:48 21% 98%;--popover-foreground:225 36% 13%;--primary:234 100% 57%;--primary-foreground:0 0% 100%;--secondary:226 40% 92%;--secondary-foreground:225 36% 13%;--muted:226 30% 93%;--muted-foreground:224 12% 38%;--accent:226 60% 94%;--accent-foreground:225 36% 13%;--border:225 18% 82%;--input:225 18% 82%;--ring:234 100% 57%;--blue:#243bff;--ink:#151b2d;--paper:#f4f3ee;--ease-out:cubic-bezier(0.23,1,0.32,1);--ease-drawer:cubic-bezier(0.32,0.72,0,1);background:var(--paper);color:var(--ink);font-family:var(--font-body),sans-serif;line-height:1.6}html{scroll-behavior:smooth;scroll-padding-top:100px}.portfolio h1,.portfolio h2,.portfolio h3{font-family:var(--font-display),sans-serif;letter-spacing:-.045em;line-height:1.15}.portfolio :focus-visible{outline:3px solid var(--blue);outline-offset:5px}.portfolio a,.portfolio button{touch-action:manipulation}.portfolio button:disabled{opacity:.5;cursor:not-allowed}.home-wrap{max-width:1328px;margin:auto;padding:0 24px 80px}.masthead{display:flex;align-items:center;justify-content:space-between;height:95px;font-size:13px}.wordmark{font-family:var(--font-display);font-size:32px;font-weight:800;letter-spacing:-2px}.wordmark span{color:var(--blue)}.masthead>a:last-child{display:flex;align-items:center;gap:10px}.masthead>span{color:#606573}.bento-rack{position:relative;z-index:2;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;padding:12px;border-radius:30px;background:var(--ink);box-shadow:0 12px 0 #c8cbd4,0 20px 40px #151b2d12}.tile{min-width:0;background:#faf9f5;border-radius:18px;padding:30px;position:relative;display:flex;flex-direction:column}.tile h2{font-size:21px;font-weight:700}.tile p{font-size:14px;color:#555e70}.tile-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.paper-label,.small-label{font-size:10px;letter-spacing:.07em;white-space:nowrap}.identity-tile{container:identity/inline-size;grid-column:1/9;grid-row:1;min-height:395px;padding:36px 40px;display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.3fr);grid-template-rows:auto 1fr;column-gap:28px}.identity-top{grid-column:1/-1;display:flex;gap:15px;align-items:center;font-weight:650;font-size:16px}.identity-top small{font-size:12px;font-weight:400;color:#5b6270}.portrait-button{width:52px;height:52px;border-radius:50%;overflow:hidden;background:#e4e6ed;transition:transform .16s var(--ease-out)}.portrait-button img{height:100%;width:100%;object-fit:cover}.identity-tile h1{font-size:clamp(40px,8.8cqw,72px);font-weight:750;line-height:1.02;margin:24px 0 18px;letter-spacing:-.06em}.contact-tile em,.identity-tile em{font-style:normal;color:var(--blue)}.identity-content{align-self:center;min-width:0}.identity-content>p{font-size:15px;line-height:1.6}.identity-roles{align-self:end;border-left:1px solid #d9dee8;padding:8px 0 8px 24px}.identity-roles-kicker{color:#68738a;font-size:10px;letter-spacing:.07em;text-transform:uppercase}.identity-roles ul{list-style:none;padding:0;margin:8px 0 0}.identity-roles li{padding:13px 0;font-size:15px;font-weight:650;letter-spacing:-.02em}.identity-roles li+li{border-top:1px solid #e3e6ec}.identity-roles li:last-child{padding-bottom:0}.identity-actions{display:flex;flex-wrap:wrap;align-items:center;gap:25px;margin-top:26px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 17px;border-radius:9px;font-size:13px;font-weight:600;transition:transform .16s var(--ease-out),background .16s ease}.button-blue{background:var(--blue);color:white}.button:active,.portrait-button:active{transform:scale(.97)}.text-link{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;width:fit-content}.project-arrow,.text-link svg{transition:transform .16s var(--ease-out)}.experience-tile{grid-column:9/13;grid-row:1/3;background:#e6eef9;padding:29px}.career-entry{padding:25px 0 22px}.career-entry+.career-entry{border-top:1px solid #bdc6e0}.career-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.career-date{font-size:10px;color:#525f80;letter-spacing:.05em}.career-type{border:1px solid #b6c1d9;border-radius:4px;padding:3px 6px;color:#526080;font-size:9px;letter-spacing:.04em;line-height:1;white-space:nowrap}.career-entry h3{margin:11px 0 2px;font-weight:650}.career-company{color:#526080!important;font-size:11px!important;font-weight:600;margin-bottom:9px}.career-entry p{font-size:13px;line-height:1.7}.career-deliverable{border-top:1px solid #c4cde0;color:#25314d!important;font-size:12px!important;line-height:1.5!important;margin-top:14px;padding-top:11px}.career-deliverable span{color:var(--blue);display:block;font-size:9px;font-weight:700;letter-spacing:.08em;margin-bottom:4px;text-transform:uppercase}.experience-tile>.text-link{margin-top:auto}.impact-tile{grid-column:1/9;grid-row:2;background:var(--blue);color:white;padding:24px 36px}.impact-tile h2{font-size:14px;font-weight:500;letter-spacing:0;color:#dce1ff}.impact-context{color:#dce1ff!important;font-size:11px!important;line-height:1.45!important;margin:5px 0 0;max-width:58ch}.impact-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:26px;margin-top:13px}.impact-grid>a+a{border-left:1px solid #ffffff40;padding-left:30px}.impact-grid strong{font-family:var(--font-display);font-size:43px;line-height:1.1;letter-spacing:-.06em;font-weight:700;white-space:nowrap}.impact-grid strong span{font-size:22px}.impact-grid p{color:white;font-size:12px;margin-top:10px}.impact-grid small{font-size:10px;color:#dce1ff}.tools-tile{grid-column:1/6}.projects-tile{grid-column:6/13;padding-bottom:16px}.tile-intro{margin:9px 0 18px}.tool-group{margin:17px 0}.tool-group h3{font-family:var(--font-body);font-size:11px;letter-spacing:0;font-weight:500;color:#5b6270;margin-bottom:8px}.tool-group>div{display:flex;flex-wrap:wrap;gap:8px 15px}.tool-group a{font-size:15px;font-weight:600}.tools-tile>.text-link{margin-top:24px}.selected-project{display:flex;gap:20px;align-items:center;padding:29px 0}.selected-project+.selected-project{border-top:1px solid #dcdedc}.selected-project h3{font-size:25px;font-weight:700}.selected-project p{font-size:13px;margin:6px 0}.selected-project small{font-size:10px;color:#687083}.project-mark{width:68px;height:76px;flex-shrink:0;display:grid;place-items:center;font-size:34px;font-weight:700;border-radius:12px;letter-spacing:-3px}.mark-0{background:var(--blue);color:white}.mark-1{background:#e1e8f5;color:#253962}.mark-2{background:#e8e6dd;color:#45453e}.project-arrow{margin-left:auto;flex-shrink:0}.certificates-tile{grid-column:1/5;grid-row:4/6;background:#e6eef9}.certificate-preview{margin:25px 0 20px;display:block}.certificate-preview img{width:100%;height:auto;aspect-ratio:1.42;object-fit:contain;filter:drop-shadow(0 8px 7px #151b2d18);transition:transform .2s var(--ease-out)}.certificate-preview span{font-size:10px;display:block;margin-top:14px;color:#596480}.certificate-count{display:flex;gap:15px;align-items:center;margin:auto 0 20px}.certificate-count strong{font-size:52px;letter-spacing:-3px}.certificate-count span{font-size:12px;max-width:100px}.research-tile{grid-column:5/13;background:#dce8f9;padding:30px 34px}.research-tile h3{font-size:35px;font-weight:650;margin:25px 0 15px}.research-tile>p{max-width:520px}.research-bottom{display:flex;justify-content:space-between;align-items:end;margin-top:24px;font-size:11px}.research-bottom strong{font-size:13px}.education-tile{grid-column:5/9}.education-tile>p{margin:20px 0;font-size:13px}.gpa{margin-top:auto}.gpa>strong{font-family:var(--font-display);font-size:40px;font-weight:700;letter-spacing:-2px;display:block}.gpa strong span{font-size:15px;letter-spacing:0;color:#647087}.gpa>span{font-size:11px;color:#647087}.contact-tile{grid-column:9/13;background:#faf9f5}.contact-tile h2{font-size:29px;line-height:1.12}.contact-links{display:grid;gap:0;margin:22px 0 18px}.contact-link{align-items:center;border-top:1px solid #dcdedc;display:flex;gap:12px;justify-content:space-between;padding:12px 0;transition:color .16s ease,transform .16s var(--ease-out)}.contact-link:last-child{border-bottom:1px solid #dcdedc}.contact-link-name,.contact-link-value{align-items:center;display:inline-flex;gap:8px}.contact-link-name{color:#586176;font-size:11px;font-weight:600}.contact-mark{align-items:center;border:1px solid;border-radius:4px;display:inline-flex;font-size:8px;font-weight:700;height:18px;justify-content:center;letter-spacing:-.04em;width:18px}.contact-link-value{color:var(--ink);font-size:11px;text-align:right}.contact-link-value svg{flex-shrink:0;transition:transform .16s var(--ease-out)}.contact-location{color:#697185!important;font-size:10px!important;margin-top:auto}.contact-email{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:12px;margin:24px 0}.contact-socials{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-top:auto}.contact-socials>span{width:100%;font-size:10px;color:#697185;margin-top:10px}.site-footer{display:flex;justify-content:space-between;padding:35px 10px 20px;font-size:11px;color:#6b7180}.serving-sentence{position:fixed;inset:0;display:grid;align-content:center;text-align:center;font-size:clamp(22px,3vw,36px);font-family:var(--font-display);line-height:1.5;z-index:1}.serving-stage[data-phase=waiting] .bento-rack{background:transparent;box-shadow:none}.serving-stage[data-phase=waiting] .tile{visibility:hidden}.serving-stage[data-phase=serving] .tile{animation:serve .85s var(--ease-out) both}.serving-stage[data-phase=serving] .tile:nth-child(2){animation-delay:50ms}.serving-stage[data-phase=serving] .tile:nth-child(3){animation-delay:.1s}.serving-stage[data-phase=serving] .tile:nth-child(4){animation-delay:.15s}.serving-stage[data-phase=serving] .tile:nth-child(5){animation-delay:.2s}.serving-stage[data-phase=serving] .tile:nth-child(n+6){animation-delay:.25s}@keyframes serve{0%{transform:translateY(100vh)}to{transform:translateY(0)}}.island-anchor{position:sticky;top:18px;z-index:30;height:0}.island-spacer{height:96px}.island{width:fit-content;max-width:calc(100% - 30px);margin:0 auto;display:flex;gap:4px;align-items:center;background:var(--ink);color:#fff;border-radius:30px;padding:6px;box-shadow:0 5px 15px #151b2d18;transition:transform .25s cubic-bezier(.23,1,.32,1),opacity .25s cubic-bezier(.23,1,.32,1),visibility .25s}.island[data-visible=false]{transform:translateY(calc(-100% - 24px));opacity:0;visibility:hidden;pointer-events:none}.island a,.island button{padding:9px 15px;font-size:12px;border-radius:22px}.island .wordmark{font-size:19px;padding:2px 15px}.mobile-menu{display:none}.detail-wrap{max-width:1100px;margin:0 auto;padding:45px 24px 110px}.page-heading{margin-bottom:40px}.page-heading h1{font-size:clamp(36px,6vw,62px);font-weight:700;margin:10px 0 18px}.page-heading p{max-width:660px;color:#596273}.page-kicker{font-size:12px;color:#647087}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.story-card{padding:28px;background:#fff;border-radius:18px;border:1px solid #e0e2e9;display:flex;flex-direction:column}.story-card h2{font-size:27px;font-weight:650;margin-bottom:25px}.story-card dl{display:grid;grid-template-columns:70px 1fr;gap:15px 10px;font-size:13px}.story-card dt{color:#66718a}.story-card dd{margin:0}.story-card .text-link{margin-top:28px;color:var(--blue)}.search-input{border:1px solid #bdc5d6;background:#fff;border-radius:10px;padding:12px 16px;max-width:480px;width:100%;margin-bottom:24px;font-size:14px}.project-controls{display:flex;align-items:stretch;gap:10px;margin-bottom:24px}.project-controls .search-input{flex:1 1 320px;margin-bottom:0}.project-category-filter{min-width:210px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #bdc5d6;background:#fff;border-radius:10px;padding:12px 14px;color:var(--ink);font-size:14px;text-align:left;transition:border-color .16s ease,box-shadow .16s ease}.project-category-filter:hover{border-color:#929eb5}.project-category-filter[data-state=open]{border-color:var(--blue);box-shadow:0 0 0 2px #243bff1c}.project-category-filter svg{flex-shrink:0;transition:transform .18s var(--ease-out)}.project-category-filter[data-state=open] svg{transform:rotate(180deg)}.project-filter-menu-content{z-index:60;min-width:var(--radix-dropdown-menu-trigger-width);padding:7px;overflow:hidden;background:#fff;border:1px solid #d5d9e3;border-radius:14px;box-shadow:0 12px 35px #151b2d20;transform-origin:var(--radix-dropdown-menu-content-transform-origin);animation:project-menu-in .16s var(--ease-out)}.project-filter-menu-item{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px;padding:9px 10px 9px 12px;border-radius:8px;color:var(--ink);font-size:13px;outline:none;cursor:pointer}.project-filter-menu-item[data-highlighted]{background:var(--accent);color:var(--blue)}.project-filter-menu-item[data-state=checked]{font-weight:650}.project-filter-check{color:var(--blue)}@keyframes project-menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.project-category{display:block;width:fit-content;margin-bottom:10px;color:#43506a;font-family:var(--font-mono,monospace);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.case-section{display:grid;grid-template-columns:210px 1fr;gap:35px;padding:38px 0;border-top:1px solid #d5d9e3}.case-section h2{font-size:24px;font-weight:650}.case-section p{max-width:700px;color:#505b70}.case-section ul{padding-left:20px;list-style:disc;color:#505b70;margin-top:20px}.case-links{display:flex;gap:25px;flex-wrap:wrap;margin:25px 0}.certificate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.certificate-card{background:#fff;border-radius:16px;padding:18px}.certificate-card img{width:100%;aspect-ratio:1.4;object-fit:contain}.certificate-card h2{font-size:18px}.certificate-card p{font-size:12px;color:#647087}.certificate-card a{font-size:12px;color:var(--blue)}.blog-list article{padding:30px 0;border-top:1px solid #ccd2df}.blog-list h2{font-size:29px;font-weight:600;margin:10px 0}.blog-list p{max-width:700px;color:#596273}.blog-list small{color:#687185}.contact-dock{position:fixed;bottom:max(20px,env(safe-area-inset-bottom));right:24px;display:flex;gap:9px;z-index:40}.social-pill{display:flex;align-items:center;gap:3px;background:#fff;border:1px solid #d5d9e3;padding:5px;border-radius:40px;box-shadow:0 4px 15px #151b2d10}.social-pill a{padding:10px;border-radius:50%;display:grid;place-items:center}.ask-dio{display:flex;align-items:center;gap:10px;background:var(--ink);color:white;border-radius:40px;padding:7px 20px 7px 8px;font-size:14px;font-weight:600}.dio-face{width:40px;height:40px;flex-shrink:0}.dio-invitation{position:fixed;bottom:90px;right:24px;z-index:39;background:#fff;border:1px solid #d5d9e3;box-shadow:0 8px 25px #151b2d15;border-radius:16px;padding:18px;width:280px;font-size:13px}.dio-invitation>button{position:absolute;right:8px;top:6px;padding:5px}.dio-invitation p{margin:0 18px 13px 0}.chat-overlay{position:fixed;inset:0;background:#151b2d38;z-index:49}.chat-panel{position:fixed;right:18px;bottom:18px;top:18px;width:min(480px,calc(100vw - 36px));background:#faf9f5;z-index:50;border-radius:22px;display:flex;flex-direction:column;box-shadow:0 20px 80px #151b2d30;overflow:hidden;animation:panel-in .25s var(--ease-drawer)}@keyframes panel-in{0%{transform:translateX(60px);opacity:0}to{transform:translateX(0);opacity:1}}.chat-header{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid #dce0e8}.chat-header h2{font-size:19px;font-weight:700}.chat-header p{font-size:11px;color:#657087}.chat-header-actions{margin-left:auto;display:flex;align-items:center;gap:3px}.chat-header-actions button{display:grid;place-items:center;width:38px;height:38px;padding:8px;border-radius:10px;color:#4d5c78}.chat-header-actions button:hover:not(:disabled){background:#e9ecf2;color:var(--ink)}.chat-scroll{overflow:auto;flex:1;padding:24px;overscroll-behavior:contain}.chat-welcome h3{font-size:31px;font-weight:650;margin:20px 0 12px}.chat-welcome>p{font-size:14px;color:#596273;margin-bottom:24px}.starter{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 0;text-align:left;border-bottom:1px solid #d7dce7;font-size:13px}.chat-message{margin:20px 0;font-size:14px;line-height:1.7;overflow-wrap:anywhere}.chat-message.user{background:#e6eef9;padding:12px 16px;border-radius:14px;margin-left:32px}.chat-message p{margin:8px 0}.chat-message ol,.chat-message ul{padding-left:20px;list-style:revert}.related-results,.source-carousel{margin:18px 0 4px;padding-top:12px;border-top:1px solid #dce0e8}.related-results>p{margin:0 0 9px;color:#40516d;font-size:12px;font-weight:650}.related-results-list{display:grid;gap:8px}.related-results-list .source-card{width:100%}.source-carousel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.source-carousel-label{color:#5c6c86;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.source-carousel-controls{display:flex;gap:4px}.source-carousel-controls button{display:grid;place-items:center;width:25px;height:25px;border:1px solid #cbd3e2;border-radius:6px;color:#40516d;background:#fff}.source-carousel-controls button:hover{border-color:#9eacc5;background:#f4f6fa}.source-carousel-viewport{display:grid;align-items:start;grid-auto-flow:column;grid-auto-columns:minmax(240px,86%);gap:10px;overflow-x:auto;padding:1px 2px 8px;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.source-carousel-viewport::-webkit-scrollbar{display:none}.source-card{display:block;align-self:start;min-width:0;height:auto;box-sizing:border-box;padding:12px;margin:0;border:1px solid #d1d8e7;border-radius:10px;background:#fff;scroll-snap-align:start}.source-card:focus-visible,.source-card:hover{border-color:#a8b5cc}.source-card strong{display:block;font-size:13px}.source-card span{font-size:11px;color:#68748b}.chat-status{font-size:11px;color:#5c6c86;margin:12px 0}.chat-composer{padding:15px 20px max(15px,env(safe-area-inset-bottom));border-top:1px solid #dce0e8}.chat-composer form{display:flex;gap:8px;align-items:center}.chat-composer form>.button{width:46px;height:46px;flex:0 0 46px;padding:0;border-radius:12px}.chat-composer textarea{background:#fff;resize:none;min-height:46px;max-height:130px;flex:1;min-width:0;border:1px solid #c8d0df;border-radius:10px;padding:10px;font-size:14px}.chat-composer small{display:block;font-size:10px;color:#69758b;margin-top:10px}.chat-actions{display:flex;gap:16px;font-size:11px;color:#4d5c78;margin-top:10px}.contact-form{display:grid;gap:12px;font-size:12px;margin:20px 0}.contact-form label{display:grid;gap:5px}.contact-form input:read-only,.contact-form textarea:read-only{background:#e6eef9;border-color:#aab9d3;color:var(--ink)}.form-review-actions{display:flex;align-items:center;gap:16px}.form-review-actions>button{min-height:44px}.contact-form input,.contact-form textarea{background:white;border:1px solid #c8d0df;border-radius:8px;padding:10px;width:100%}.inspector{font-size:11px;color:#5c6c86;overflow-wrap:anywhere}.inspector pre{white-space:pre-wrap}.legacy-content .text-white,.legacy-content .text-zinc-100{color:var(--ink)}.legacy-content .text-zinc-300,.legacy-content .text-zinc-400{color:#526077}.legacy-content .prose{--tw-prose-body:#505b70;--tw-prose-headings:#151b2d;--tw-prose-links:#243bff;color:#505b70}.legacy-content [class*=backdrop-blur]{backdrop-filter:none!important}.legacy-content [class*=bg-zinc-900]{background:#e6eef9}.skip-link{position:fixed;top:10px;left:10px;z-index:100;background:white;padding:10px;transform:translateY(-200%)}.skip-link:focus{transform:none}@media (hover:hover) and (pointer:fine){.selected-project:hover .project-arrow,.text-link:hover svg{transform:translate(3px,-3px)}.certificate-preview:hover img{transform:rotate(-2deg) translateY(-3px)}.contact-email:hover,.contact-link:hover,.tool-group a:hover{color:var(--blue)}.contact-link:hover{transform:translateX(2px)}.contact-link:hover .contact-link-value svg{transform:translate(2px,-2px)}.social-pill a:hover{background:#e6eef9}.button:hover{transform:translateY(-1px)}}@media (max-width:1023px){.tile{padding:24px}.identity-tile{padding:30px;grid-template-columns:minmax(0,1fr)}.identity-roles{border-left:0;border-top:1px solid #d9dee8;margin-top:24px;padding:18px 0 0}.identity-roles ul{display:flex;flex-wrap:wrap;gap:8px 20px}.identity-roles li{padding:0;font-size:12px}.identity-roles li+li{border-top:0}.identity-tile h1{font-size:45px}.impact-grid strong{font-size:33px}.experience-tile{padding:24px}.career-entry{padding:24px 0}.contact-tile{grid-column:9/13}.contact-tile h2{font-size:23px}.contact-email{font-size:10px}.selected-project{gap:14px}.project-mark{width:49px;height:62px}.tile-heading{flex-wrap:wrap}.island a{padding:8px 11px}}@media (max-width:767px){.home-wrap{padding:0 12px 85px}.masthead{height:75px;padding:0 8px}.masthead>span{display:none}.bento-rack{grid-template-columns:1fr;gap:8px;padding:8px;border-radius:24px}.tile{grid-column:1!important;grid-row:auto!important;padding:26px 22px}.identity-tile{min-height:0;padding:26px 22px 30px;grid-template-columns:1fr;grid-template-rows:auto auto;column-gap:0}.identity-content,.identity-top{grid-column:1}.identity-tile h1{font-size:clamp(34px,9.6vw,54px);margin:24px 0 18px}.identity-top{font-size:14px}.identity-content>p{font-size:13px}.identity-actions{gap:16px;flex-wrap:wrap;margin-top:23px}.identity-actions .text-link{font-size:11px}.experience-tile{order:3}.impact-tile{order:2}.identity-tile{order:1}.tools-tile{order:4}.projects-tile{order:5}.certificates-tile{order:6}.research-tile{order:7}.education-tile{order:8}.contact-tile{order:9}.impact-grid{gap:16px;grid-template-columns:1fr 1.3fr}.impact-grid>a+a{padding-left:15px}.impact-grid strong{font-size:32px}.impact-grid strong span{font-size:15px}.impact-grid p{font-size:10px}.impact-grid small{font-size:9px}.career-entry{padding:22px 0}.career-type{font-size:8px}.tile h2{font-size:21px}.selected-project{gap:13px}.selected-project h3{font-size:23px}.selected-project p{font-size:12px}.project-mark{width:45px;height:60px;font-size:28px}.selected-project small{font-size:9px}.certificate-preview{max-width:340px;align-self:center}.certificate-count{margin-top:10px}.research-tile h3{font-size:29px}.research-bottom{gap:15px}.contact-tile h2{font-size:36px}.contact-links{margin-top:25px}.contact-link-name,.contact-link-value{font-size:12px}.contact-link-value{max-width:68%;overflow-wrap:anywhere}.site-footer{font-size:9px;gap:20px}.island-anchor{position:fixed;top:auto;bottom:max(12px,env(safe-area-inset-bottom));left:12px;right:146px;height:52px;z-index:40}.island{height:52px;max-width:100%;margin:0 0 0 auto;padding:4px;gap:0}.island .wordmark{font-size:19px;padding:8px 10px}.island .mobile-menu{width:44px;height:44px;padding:12px}.island-spacer,.island>.desktop-nav{display:none}.mobile-menu{display:block}.mobile-menu-content{z-index:45;background:#fff;border:1px solid #d5d9e3;border-radius:14px;padding:8px;min-width:200px;box-shadow:0 10px 30px #151b2d20}.mobile-menu-content a{display:block;padding:12px;font-size:14px}.detail-wrap{padding:25px 20px 110px}.case-section,.certificate-grid,.project-grid{grid-template-columns:1fr}.case-section{gap:18px}.story-card{padding:24px}.project-controls{align-items:stretch;flex-direction:column}.project-category-filter,.project-controls .search-input{flex-basis:auto;max-width:none;width:100%}.social-pill a{padding:9px}.contact-dock{bottom:max(12px,env(safe-area-inset-bottom));right:12px;gap:6px;align-items:center}.ask-dio,.contact-dock{width:126px;height:52px}.ask-dio{padding:6px 10px 6px 6px;gap:8px;flex-shrink:0;font-size:13px}.chat-panel{inset:0;width:100%;height:100dvh;border-radius:0}.chat-scroll{padding:20px}.chat-header{padding-top:max(15px,env(safe-area-inset-top))}.dio-invitation{right:12px;bottom:82px}.contact-socials>span{font-size:11px}}.portfolio{--font-display:"Manrope Variable";--font-body:"Geist Variable"}.source-image{width:100%;max-height:180px;object-fit:contain;margin-bottom:12px}.source-card.certificate-source .source-image{max-height:0;margin-bottom:0;opacity:0;transform:scale(.96);transition:max-height .22s var(--ease-out),margin-bottom .22s var(--ease-out),opacity .16s ease,transform .22s var(--ease-out)}.source-card.certificate-source:focus-visible .source-image,.source-card.certificate-source:focus-within .source-image,.source-card.certificate-source:hover .source-image{max-height:150px;margin-bottom:12px;opacity:1;transform:scale(1)}@media (hover:none),(pointer:coarse){.source-card.certificate-source .source-image{max-height:150px;margin-bottom:12px;opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.source-carousel-viewport{scroll-behavior:auto}.source-card.certificate-source .source-image{transition:none}}.chat-message table{display:block;overflow-x:auto;font-size:12px;border-collapse:collapse}.chat-message td,.chat-message th{border:1px solid #cbd3e2;padding:8px;text-align:left;min-width:110px}.evaluation-table>div{padding:18px 0;border-bottom:1px solid #d5d9e3;font-size:12px;overflow-wrap:anywhere}.evaluation-table p{font-size:11px}.mobile-contacts{display:none}.contact-popover{z-index:45;background:white;border:1px solid #d5d9e3;border-radius:14px;padding:10px;min-width:180px;box-shadow:0 8px 30px #151b2d18;transform-origin:var(--radix-popover-content-transform-origin)}.contact-popover a{display:block;padding:10px;font-size:13px}@media (max-width:767px){.desktop-contacts{display:none}.mobile-contacts{position:absolute;right:0;bottom:60px;display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;background:#fff;border:1px solid #d5d9e3;border-radius:30px;padding:0;font-size:13px}.mobile-contacts[data-state=open] svg{transform:rotate(180deg)}}.dio-invitation>button:first-child{position:absolute;right:8px;top:6px}.dio-invitation>button:last-child{position:static;padding:0}.desktop-nav{display:flex;position:relative}.nav-active-copy{position:absolute;inset:0;display:flex;pointer-events:none;background:#fff;color:var(--ink);transition:clip-path .25s cubic-bezier(.77,0,.175,1)}.nav-active-copy span{padding:9px 15px;font-size:12px;white-space:nowrap}@media (max-width:1023px){.nav-active-copy span{padding:8px 11px}}@media (prefers-reduced-motion:reduce){.island[data-visible=false]{transform:none}}.blog-content li,.blog-content p{text-align:left!important}.legacy-content .prose strong{color:var(--ink)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.portfolio *,.portfolio :after,.portfolio :before{animation:none!important;transition:none!important}.serving-sentence{display:none}.serving-stage[data-phase=waiting] .tile{visibility:visible}}.experience-tile .tile-heading{display:grid;gap:10px;align-items:start}.experience-tile .small-label{white-space:normal;font-size:9px;color:#526080}.experience-tile .tile-heading h2{font-size:clamp(22px,2.1vw,29px);text-wrap:balance}.career-entry{padding:22px 0}.career-type{border:0;padding:0;font-size:10px}.career-meta{flex-wrap:wrap;gap:5px 12px}.career-entry h3{font-size:21px;margin-bottom:10px}.career-entry p{line-height:1.6}.career-deliverable{border:0;padding-top:0;margin-top:13px}.career-deliverable span{font-size:10px;letter-spacing:0;text-transform:none}.tool-group span{font-size:14px;font-weight:600}.tools-tile .tool-group{margin-top:32px}.tools-tile>.text-link{margin-top:auto;padding-top:30px}.selected-project{grid-template-columns:minmax(0,1fr) 20px;gap:18px;padding:25px 0}.selected-project .project-mark{width:48px;height:54px;font-size:28px}.selected-project p{max-width:53ch;margin:8px 0;line-height:1.6}.project-metrics{display:flex;gap:18px 32px;flex-wrap:wrap;margin:22px 0}.project-metrics>div{display:flex;flex-direction:column-reverse;gap:3px}.project-metrics dt{font-size:11px;line-height:1.4;color:#566277}.project-metrics dd{font-family:var(--font-display),sans-serif;font-size:29px;font-weight:750;color:var(--blue);line-height:1.2;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.selected-project .project-metrics{margin:12px 0}.selected-project .project-metrics>div{flex-direction:row-reverse;align-items:baseline;gap:9px}.selected-project .project-metrics dd{font-size:21px}.story-card>dl:not(.project-metrics){margin-top:20px}.story-card>.project-metrics{display:flex;grid-template-columns:none}.evidence-note{margin-top:20px;font-size:13px;color:#5b6577;line-height:1.7}.certificate-carousel{margin:26px 0 20px;min-width:0}.certificate-window{overflow:hidden}.certificate-track{display:flex;touch-action:pan-y pinch-zoom}.certificate-slide{flex:0 0 100%;min-width:0;padding:0 2px}.certificate-slide>a{display:block}.certificate-art{aspect-ratio:1.4;margin-bottom:24px;display:grid;place-items:center;background:#f9fafc;border-radius:8px;overflow:hidden}.certificate-art img{width:100%;height:100%;object-fit:contain}.certificate-slide h3{font-size:clamp(22px,2vw,27px);font-weight:700;line-height:1.2;margin:10px 0;text-wrap:balance}.certificate-provider{font-size:11px;color:#53627a}.certificate-slide p{min-height:65px;font-size:13px}.certificate-slide .text-link{margin-top:16px}.certificate-controls{display:flex;justify-content:space-between;align-items:center;margin-top:25px;border-top:1px solid #c8d3e4;padding-top:18px}.certificate-controls button{display:grid;place-items:center;width:44px;height:44px;border:1px solid #bdc9df;border-radius:50%;background:#f9fafc}.certificate-controls button:not(:disabled):active{transform:scale(.97)}.certificate-controls span{font-size:12px;font-variant-numeric:tabular-nums}.certificates-tile>.text-link{margin-top:auto}.certificate-card h2{font-size:24px;font-weight:700;line-height:1.25;margin:18px 0 10px}.credential-text{width:100%;min-height:200px;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:25px;color:#1b355c;background:#f1f5fa}.credential-text strong{font-size:27px}.credential-text span{font-size:12px}.research-tile h3{text-wrap:balance}.publication-citation,.research-tile .research-citation{margin-top:16px;font-size:12px;color:#52627d}@media (max-width:767px){.selected-project{grid-template-columns:minmax(0,1fr) 20px;gap:10px}.selected-project .project-mark{display:none}.selected-project .project-metrics>div{flex-direction:column-reverse;align-items:start;gap:3px}.certificate-art{max-height:250px}.certificate-slide p{min-height:45px}.tools-tile .tool-group{margin-top:25px}.experience-tile .tile-heading h2{font-size:28px}}@media (prefers-reduced-motion:reduce){.certificate-controls button:active{transform:none}}.selected-project{display:grid}.project-tools{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;margin:14px 0}.project-tools span{font-size:11px;color:#59677c;line-height:1.4}.project-tools .main-tool{font-weight:650;color:#183c88;background:#e6eef9;padding:4px 7px;border-radius:4px}.featured-label{font-size:11px;font-weight:600;color:var(--blue);margin-bottom:10px}.development-note{font-size:12px;color:#58657b;margin:12px 0 18px;max-width:68ch}.story-card h2{margin-bottom:10px}.story-card .project-metrics{margin-top:12px}.selected-project .project-tools{margin-bottom:0}.certificate-art img{transition:transform .2s var(--ease-out)}.certificate-art{overflow:visible;background:transparent}.certificate-window{padding:0;margin:0}.certificate-slide{box-sizing:border-box;padding:8px}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.certificate-slide>a:hover .certificate-art img{transform:rotate(-2deg) translateY(-3px) scale(.98)}.resource-row:hover .resource-arrow{transform:translate(3px,-3px)}}.research-tile .home-metric-note,.selected-project .home-metric-note{font-size:11px;line-height:1.5;color:#536078;margin:8px 0 12px}.research-bottom{flex-wrap:wrap;gap:16px}.paper-table-wrap{overflow-x:auto;margin-top:25px}.paper-results{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}.paper-results caption{text-align:left;color:#526077;margin-bottom:12px}.paper-results td,.paper-results th{padding:14px 10px;text-align:left;border-bottom:1px solid #cbd3e2}.paper-results thead{background:#e6eef9}.publication-resources{max-width:1000px}.publication-resources .page-kicker{margin-top:30px}.publication-resources .page-heading h1{font-size:clamp(36px,5vw,58px)}.resource-list{border-top:1px solid #bdc8dc}.resource-row{display:grid;grid-template-columns:54px 1fr 25px;gap:22px;align-items:center;padding:28px 0;border-bottom:1px solid #bdc8dc}.resource-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:12px;color:#243bff;background:#e6eef9}.resource-row h2{font-size:24px;font-weight:650;margin-bottom:8px}.resource-row p{font-size:14px;color:#526077}.resource-arrow{transition:transform .16s var(--ease-out)}.resource-credit{font-size:12px;color:#526077;line-height:1.8;margin-top:32px}@media (max-width:600px){.resource-row{grid-template-columns:40px 1fr 20px;gap:12px}.resource-icon{width:40px;height:44px}.resource-row h2{font-size:21px}}.contact-popover,.mobile-menu-content,.project-filter-menu-content{transform-origin:var(--radix-dropdown-menu-content-transform-origin,var(--radix-popover-content-transform-origin));opacity:1;transform:scale(1);animation:none;transition:opacity .2s var(--ease-out),transform .2s var(--ease-out)}.contact-popover[data-state=closed],.mobile-menu-content[data-state=closed],.project-filter-menu-content[data-state=closed]{opacity:0;transform:scale(.95);pointer-events:none;animation:menu-exit-presence .2s}@starting-style{.contact-popover[data-state=open],.mobile-menu-content[data-state=open],.project-filter-menu-content[data-state=open]{opacity:0;transform:scale(.95)}}@keyframes menu-exit-presence{0%{visibility:visible}to{visibility:visible}}.contact-form fieldset{display:grid;gap:12px;min-width:0;border:0;margin:0;padding:0}.contact-form fieldset:disabled{color:#626b7b}.contact-form fieldset:disabled input,.contact-form fieldset:disabled textarea{background:#e5e7eb;color:#626b7b;border-color:#c8cdd5;opacity:1;-webkit-text-fill-color:#626b7b}.contact-form fieldset:disabled button{color:#626b7b;background:#e5e7eb;opacity:1;cursor:not-allowed;transform:none;transition:none}.delivery-message{font-size:14px;line-height:1.7;color:var(--ink)}@media (prefers-reduced-motion:reduce){.contact-popover,.mobile-menu-content,.project-filter-menu-content{transform:none;animation:none;transition:none}}.cache-badge{margin:2px 0 5px;color:#7a8496;font-size:9px;font-weight:500;line-height:1.3;letter-spacing:.01em}@media (max-width:1023px) and (max-height:600px){.portfolio main{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.desktop-contacts{display:none}.contact-dock{right:12px;bottom:max(8px,env(safe-area-inset-bottom));width:auto;height:52px;align-items:center;gap:6px}.mobile-contacts{position:static;display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;padding:0;background:#fff;border:1px solid #d5d9e3;border-radius:30px}.mobile-contacts[data-state=open] svg{transform:rotate(180deg)}.ask-dio{width:52px;height:52px;justify-content:center;gap:0;padding:6px;flex-shrink:0;font-size:0}.dio-invitation{right:12px;bottom:calc(68px + env(safe-area-inset-bottom));max-height:calc(100dvh - 84px);overflow-y:auto}}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-cyrillic-ext-wght-normal.d1990364.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-cyrillic-wght-normal.2ffcac4f.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-greek-wght-normal.6b69666c.woff2) format("woff2-variations");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-vietnamese-wght-normal.383b32a0.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-latin-ext-wght-normal.f5cc7610.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_next/static/media/manrope-latin-wght-normal.fedf4c92.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/geist-cyrillic-ext-wght-normal.8bbfa6e0.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/geist-cyrillic-wght-normal.12b57c6b.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/geist-vietnamese-wght-normal.c6a3f4e5.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/geist-latin-ext-wght-normal.b921df26.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_next/static/media/geist-latin-wght-normal.9ff55a8a.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}