@font-face{font-family:pretendard;src:url(../media/PortfolioSans-s.p.3wwirw-fd18s2.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:pretendard Fallback;src:local(Arial);ascent-override:93.76%;descent-override:23.75%;line-gap-override:0.0%;size-adjust:101.55%}.pretendard_29b20148-module__VhTg8a__className{font-family:pretendard,pretendard Fallback}.pretendard_29b20148-module__VhTg8a__variable{--font-pretendard:"pretendard", "pretendard Fallback"}
:root{--paper:#f8f9f6;--white:#fff;--ink:#19221f;--muted:#636c68;--line:#dce1dc;--blue:#2859d5;--blue-light:#edf2fc;--accent:var(--blue);--text-body:1rem;--text-small:.875rem;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{background:var(--paper);color:var(--ink);font-family:var(--font-pretendard), "Apple SD Gothic Neo", sans-serif;font-size:var(--text-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.7}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}h1,h2,h3,p,figure,dl,dd{margin:0}h1,h2,h3{word-break:keep-all;line-height:1.3}p,li,dd{word-break:keep-all;overflow-wrap:anywhere}ul,ol{margin:0;padding:0;list-style:none}svg{flex-shrink:0}::selection{color:#153e9c;background:#d7e4ff}:focus-visible{outline:3px solid var(--blue);outline-offset:5px;border-radius:2px}.shell{width:min(1160px,100% - 96px);margin-inline:auto}.skip-link{background:var(--ink);color:#fff;z-index:100;padding:12px 20px;position:fixed;top:-70px;left:20px}.skip-link:focus{top:12px}.eyebrow{font-family:inherit;font-size:var(--text-small);letter-spacing:0;font-weight:500;line-height:1.6}.button{min-height:50px;font-size:var(--text-small);border-radius:4px;justify-content:center;align-items:center;gap:24px;padding:13px 20px;font-weight:600;transition:background .18s,transform .18s;display:inline-flex}.button-primary{background:var(--blue);color:#fff}.button-primary:hover{background:#1d43a3;transform:translateY(-2px)}.button-quiet{border:1px solid var(--line);background:0 0}.button-quiet:hover{background:#edf0eb}.button-row{flex-wrap:wrap;gap:10px;display:flex}.text-link{min-height:44px;font-size:var(--text-small);align-items:center;gap:16px;font-weight:600;display:inline-flex}.text-link svg{transition:transform .18s}.text-link:hover svg{transform:translate(4px)}.section-heading{justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:52px;display:flex}.section-heading .eyebrow{color:var(--blue);margin-bottom:20px}.section-heading h2,.about-heading h2,.approach-grid h2{letter-spacing:-.045em;font-size:clamp(32px,3.4vw,46px);font-weight:650}.section-heading>p{max-width:400px;font-size:var(--text-body);color:var(--muted);line-height:1.9}.site-header{z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);background:#f8f9f6f0;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:89px;display:flex}.brand{align-items:center;gap:14px;font-size:17px;font-weight:650;line-height:1.4;display:flex}.brand-mark{letter-spacing:-5px;padding-right:5px;font-family:Arial,sans-serif;font-size:42px;font-weight:700;line-height:1}.brand-mark>span{color:var(--blue)}.site-nav{font-size:var(--text-small);align-items:center;gap:34px;font-weight:550;display:flex}.site-nav>a{align-items:center;gap:13px;min-height:44px;display:flex}.site-nav>a:hover,.site-nav>a[aria-current]{color:var(--blue)}.nav-contact{border-bottom:1px solid var(--ink);margin-left:6px}.nav-contact svg{width:15px}.menu-toggle{display:none}.hero{padding-top:65px}.hero-kicker{justify-content:space-between;align-items:center;display:flex}.hero-kicker .eyebrow{color:var(--blue)}.hero-location{font-size:var(--text-small);color:var(--muted)}.hero-main{justify-content:space-between;align-items:center;gap:28px;margin:35px 0 40px;display:flex}.hero h1{letter-spacing:-.065em;font-size:clamp(48px,6.5vw,80px);font-weight:600;line-height:1.22}.hero h1>span{color:var(--blue)}.hero-bottom{grid-template-columns:1fr 1fr;align-items:start;gap:48px;margin:34px 0 64px;display:grid}.hero-person{align-items:center;gap:18px;margin-top:5px;display:flex}.avatar{background:#dae3e9;border-radius:50%;flex-shrink:0;width:80px;height:80px;position:relative;overflow:hidden}.avatar img{object-fit:cover;object-position:51% 48%;transform:scale(1.9)}.hero-person strong{font-size:17px;font-weight:650;display:block}.hero-person span{font-size:var(--text-small);color:var(--muted)}.hero-intro>p{color:#4a5550;margin-bottom:25px;font-size:17px;line-height:1.9}.career-strip{border-block:1px solid var(--line);grid-template-columns:1fr 1fr 1fr 1.25fr;padding:27px 0;display:grid}.career-strip>div{border-left:1px solid var(--line);padding-left:32px}.career-strip>div:first-child{border:0;padding-left:0}.career-strip dt{font-size:var(--text-small);color:var(--muted);margin-bottom:5px}.career-strip dd{letter-spacing:-.045em;font-size:32px;font-weight:550;line-height:1.4}.career-strip dd>span{font-size:var(--text-small);letter-spacing:0;margin-left:6px;font-weight:400}.career-strip .career-strip-note dd{font-size:var(--text-small);letter-spacing:0;font-weight:500;line-height:1.7}.work-section{padding-block:105px 112px}.project-list{gap:52px;display:grid}.project-row{grid-template-columns:1.16fr 1fr;align-items:stretch;gap:54px;display:grid}.project-row--violet{--accent:#765394}.project-row--green{--accent:#30755d}.project-art-link{border-radius:7px;display:block;position:relative;overflow:hidden}.project-art-link:focus-visible{outline-offset:7px}.art-link-arrow{width:36px;height:36px;color:var(--accent);opacity:0;background:#ffffffbf;border-radius:50%;justify-content:center;align-items:center;transition:opacity .2s,transform .2s;display:flex;position:absolute;bottom:65px;right:20px;transform:translate(-6px,6px)}.project-art-link:hover .art-link-arrow,.project-art-link:focus-visible .art-link-arrow{opacity:1;transform:translate(0)}.project-copy{flex-direction:column;padding-block:20px 15px;display:flex}.project-kicker{color:var(--muted);font-size:var(--text-small);letter-spacing:.015em;justify-content:space-between;gap:16px;display:flex}.project-kicker>span:last-child{white-space:nowrap;font-family:inherit}.project-copy h3{letter-spacing:-.045em;margin:26px 0 16px;font-size:30px;font-weight:650}.project-copy h3 a:hover{color:var(--accent)}.project-copy>p{color:var(--muted);font-size:var(--text-body);max-width:400px;line-height:1.9}.project-result{flex-direction:column;gap:3px;margin-block:28px;display:flex}.project-result strong{letter-spacing:-.05em;color:var(--accent);font-size:36px;font-weight:550;line-height:1.25}.project-result>span{font-size:var(--text-small);color:var(--muted)}.project-copy-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-top:auto;padding-top:10px;display:flex}.project-copy-bottom>span{font-family:inherit;font-size:var(--text-small);color:var(--muted)}.project-visual{color:#284e9c;background:#eaf0fa;flex-direction:column;justify-content:space-between;gap:24px;height:100%;min-height:373px;padding:28px;display:flex}.visual-models{color:#684582;background:#f0ecf5}.visual-delivery{color:#31664e;background:#e9f0eb}.visual-heading{font-size:var(--text-body);font-weight:600;line-height:1.6}.visual-caption{font-size:var(--text-small);line-height:1.7}.system-flow{text-align:center;width:100%;margin-block:auto}.flow-input{font-size:var(--text-body);margin-bottom:12px;font-weight:550}.flow-connector{padding-block:10px;font-size:20px;line-height:1}.flow-node{background:#ffffffa6;border:1px solid;border-radius:6px;gap:6px;padding:18px 16px;display:grid}.flow-node strong{font-size:18px;font-weight:650;line-height:1.5}.flow-node span{font-size:var(--text-small);line-height:1.7}.flow-node--primary{background:#fff}.flow-tools{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.flow-tools li{background:#ffffffb3;border-radius:5px;align-content:center;gap:6px;padding:14px 8px;display:grid}.flow-tools strong{font-size:var(--text-body);font-weight:600}.flow-tools span{font-size:var(--text-small)}.approach-section{border-block:1px solid var(--line);background:#edf1f0;padding:90px 0}.approach-grid{grid-template-columns:1fr 1.1fr;gap:90px;display:grid}.approach-grid .eyebrow{color:#4a6156;margin-bottom:24px}.section-description{font-size:var(--text-body);color:var(--muted);margin-top:26px}.approach-list article{border-top:1px solid #cbd5cd;grid-template-columns:1fr;gap:25px;padding:28px 0;display:grid}.approach-list article:first-child{border-top:0;padding-top:0}.approach-list article:last-child{padding-bottom:0}.approach-list h3{letter-spacing:-.03em;font-size:21px;font-weight:600}.approach-list p{font-size:var(--text-body);color:var(--muted);margin-top:13px;line-height:1.85}.approach-list a{min-height:44px;font-size:var(--text-small);align-items:center;gap:12px;margin-top:8px;font-weight:550;display:inline-flex}.approach-list a:hover{color:var(--blue)}.approach-list svg{width:16px}.about-section{padding-block:110px}.about-heading{margin-bottom:52px}.about-heading .eyebrow{color:var(--blue);margin-bottom:20px}.about-grid{grid-template-columns:1fr 1.1fr;gap:100px;display:grid}.about-bio>p{font-size:var(--text-body);color:#535f58;margin-bottom:20px;line-height:1.95}.about-bio>.text-link{color:var(--blue);margin-bottom:45px}.skills-list{border-top:1px solid var(--line)}.skills-list>div{border-bottom:1px solid var(--line);padding:18px 0}.skills-list h3{font-size:var(--text-small);margin-bottom:6px;font-weight:600}.skills-list p{font-size:var(--text-body);color:var(--muted);line-height:1.9}.timeline>li{border-left:1px solid var(--line);padding:0 0 30px 28px;position:relative}.timeline>li:before{content:"";background:#aebbb2;border-radius:50%;width:7px;height:7px;position:absolute;top:7px;left:-4px}.timeline>li:first-child:before{background:var(--blue);box-shadow:0 0 0 4px #e6edfc}.timeline>li:last-child{padding-bottom:0}.timeline-period{font-family:inherit;font-size:var(--text-small);color:var(--muted)}.timeline h3{letter-spacing:-.02em;margin:8px 0 2px;font-size:19px;font-weight:600}.timeline-role{font-size:var(--text-small);color:#526259}.timeline p{font-size:var(--text-body);color:var(--muted);margin-top:10px;line-height:1.8}.site-footer{color:#f2f6f1;background:#1b2924;padding-top:70px}.footer-top{grid-template-columns:1.1fr 1fr;align-items:end;gap:75px;padding-bottom:65px;display:grid}.footer-top h2{letter-spacing:-.045em;font-size:clamp(32px,3.6vw,48px);font-weight:500}.footer-actions>p{color:#b5c2b8;font-size:var(--text-body);line-height:1.9}.email-link{letter-spacing:-.02em;overflow-wrap:anywhere;border-bottom:1px solid #5b6c61;justify-content:space-between;align-items:center;gap:20px;margin-bottom:10px;padding-block:18px;font-size:22px;display:flex}.email-link:hover{color:#bdcfec}.footer-actions .text-link{font-size:var(--text-small);color:#c7d3c9}.footer-bottom{color:#b6c4bb;font-size:var(--text-small);border-top:1px solid #435449;justify-content:space-between;gap:20px;padding-block:22px;display:flex}.footer-bottom a{color:#eff4ed;min-height:30px}.project-publication{font-size:var(--text-small);color:#684582;border-bottom:1px solid #c8b7d5;align-items:center;gap:12px;margin-top:14px;padding-bottom:3px;display:inline-flex}.public-reference{background:#f0ecf5;border:1px solid #d7cfe2;border-radius:5px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px;padding:24px 28px;display:flex}.public-reference .eyebrow{font-size:var(--text-small);color:#684582}.public-reference h2{margin:8px 0;font-size:20px;font-weight:600}.public-reference p:last-child{font-size:var(--text-body);color:#61546c}.public-reference>a{color:#684582;flex-shrink:0}.theme-violet{--accent:#765394}.theme-green{--accent:#30755d}.case-hero{padding-block:45px 40px}.back-link{min-height:44px;font-size:var(--text-small);color:var(--muted);align-items:center;margin-bottom:38px;display:inline-flex}.back-link:hover{color:var(--blue)}.case-hero-grid{grid-template-columns:1fr 280px;align-items:end;gap:70px;display:grid}.case-hero .eyebrow{color:var(--accent);font-size:var(--text-small);margin-bottom:18px}.case-hero h1{letter-spacing:-.055em;font-size:clamp(36px,4.9vw,64px);font-weight:650}.case-lead{color:var(--muted);max-width:720px;margin-top:24px;font-size:17px;line-height:1.9}.tags{flex-wrap:wrap;gap:8px;margin-top:26px;display:flex}.tags li{font-size:var(--text-small);border:1px solid var(--line);color:#526158;border-radius:3px;padding:4px 9px}.case-facts>div{border-top:1px solid var(--line);grid-template-columns:44px minmax(0,1fr);gap:16px;padding-block:12px;display:grid}.case-facts dt{font-size:var(--text-small);color:var(--muted);padding-top:2px}.case-facts dd{font-size:var(--text-small);font-weight:500}.case-overview{grid-template-columns:1fr 1fr;gap:28px;display:grid}.case-overview .project-visual{border-radius:5px;min-height:360px}.case-metrics{background:var(--line);border:1px solid var(--line);border-radius:5px;grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.case-metrics>div{background:var(--paper);flex-direction:column;justify-content:center;padding:28px;display:flex}.case-metrics dd:first-child{color:var(--accent);letter-spacing:-.045em;font-size:36px;font-weight:550;line-height:1.3}.case-metrics dt{font-size:var(--text-small);margin-top:7px;font-weight:550}.case-metrics .metric-detail{font-size:var(--text-small);color:var(--muted);margin-top:5px}.case-toc{border-bottom:1px solid var(--line);font-size:var(--text-small);flex-wrap:wrap;gap:16px 28px;margin-top:38px;padding-block:16px;display:flex}.case-toc a{color:var(--muted);padding-block:8px}.case-toc a:hover{color:var(--accent)}.case-section{grid-template-columns:220px minmax(0,1fr);gap:48px;padding-block:74px;display:grid}.case-label h2{letter-spacing:-.04em;margin-top:16px;font-size:24px;font-weight:600}.case-content>.prose{color:#4f5b54;font-size:var(--text-body);margin-bottom:22px;line-height:1.95}.problem-list{gap:24px;margin-top:35px;display:grid}.problem-list article{border-left:2px solid var(--line);padding-left:20px}.problem-list h3{font-size:var(--text-body);margin-bottom:8px;font-weight:600}.problem-list p{font-size:var(--text-body);color:var(--muted);line-height:1.85}.case-system{border-block:1px solid var(--line);background:#edf1ef}.architecture-list>div{border-bottom:1px solid #d3dcd5;grid-template-columns:150px minmax(0,1fr);align-items:baseline;gap:18px;padding-block:15px;display:grid}.architecture-list>div:first-child{padding-top:0}.architecture-list h3{font-size:var(--text-small);font-weight:600}.architecture-list p{font-size:var(--text-body);color:var(--muted)}.execution-block{margin-top:46px}.execution-block>h3{letter-spacing:-.035em;font-size:22px;font-weight:600;line-height:1.5}.execution-block>p{font-size:var(--text-body);color:var(--muted);margin-top:16px;line-height:1.85}.execution-flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:28px;display:grid}.execution-flow li{border-top:2px solid #aabeb0;padding-top:12px}.execution-flow li>span{font-family:inherit;font-size:var(--text-small);color:#5b7164;margin-bottom:12px;display:block}.execution-flow strong{font-size:var(--text-small);font-weight:600;display:block}.execution-flow p{font-size:var(--text-body);color:var(--muted);margin-top:7px;line-height:1.8}.architecture-evidence{background:#fafcfb;border:1px solid #d3dcd5;border-radius:6px;margin-top:38px;padding:28px}.architecture-evidence .evidence-heading{letter-spacing:-.04em;margin-top:10px;font-size:21px;font-weight:600}.evidence-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:28px;margin-top:24px;display:grid}.architecture-evidence--wide .evidence-layout{grid-template-columns:1fr}.architecture-evidence--wide .evidence-points{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:22px}.case-product-evidence{margin-bottom:42px}.case-product-evidence .architecture-evidence{margin-top:0}.project-product-preview{background:#edf2f6;justify-content:space-between}.project-product-image{background:#fff;border:1px solid #d4dce3;border-radius:6px;margin-block:28px;overflow:hidden;box-shadow:0 8px 24px #213d5710}.project-product-image img{width:100%;height:auto;display:block}.evidence-preview{cursor:zoom-in;color:var(--ink);text-align:left;background:#fff;border:1px solid #d3dcd5;border-radius:4px;padding:0;display:block;overflow:hidden}.evidence-preview img{width:100%;height:auto;display:block}.evidence-preview>.evidence-open-label{font-size:var(--text-small);background:#edf3ef;border-top:1px solid #d3dcd5;justify-content:space-between;padding:13px;display:flex}.evidence-image-crop{background:#fff;width:100%;display:block;position:relative;overflow:hidden}.evidence-image-crop img{max-width:none;position:absolute}.flowchart-viewport>.evidence-image-crop{margin-inline:auto}.evidence-points{gap:24px;display:grid}.evidence-points li>span{color:var(--accent);font-family:inherit;font-size:var(--text-small)}.evidence-points .evidence-point-heading{font-size:var(--text-small);margin:7px 0;font-weight:600;line-height:1.6}.evidence-points p,.evidence-caption{font-size:var(--text-body);color:var(--muted);line-height:1.85}.evidence-caption{font-size:var(--text-small);border-top:1px solid #d3dcd5;margin-top:24px;padding-top:16px}.evidence-source{font-size:var(--text-small);color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:10px;display:flex}.evidence-source a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.flowchart-dialog{width:min(1280px,100vw - 32px);max-width:none;height:calc(100dvh - 40px);max-height:none;color:var(--ink);background:#fff;border:1px solid #c4d0c7;border-radius:8px;margin:auto;padding:0}.flowchart-dialog[open]{flex-direction:column;display:flex}.flowchart-dialog::backdrop{background:#111e19b3}body:has(.flowchart-dialog[open]){overflow:hidden}.flowchart-toolbar{background:var(--paper);border-bottom:1px solid #d3dcd5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.flowchart-toolbar h2{font-size:var(--text-body);font-weight:600}.flowchart-toolbar>div{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.flowchart-toolbar button,.flowchart-toolbar a{font:inherit;font-size:var(--text-small);color:var(--ink);cursor:pointer;background:#fff;border:1px solid #c4d0c7;border-radius:4px;padding:10px 12px}.flowchart-viewport{overscroll-behavior:contain;min-height:0;overflow:auto}.flowchart-viewport img{width:100%;max-width:none;height:auto;display:block}@media (max-width:700px){.public-reference{flex-direction:column;align-items:flex-start;gap:16px;padding:22px}.public-reference h2{font-size:18px}.architecture-evidence{padding:20px}.evidence-layout{grid-template-columns:1fr}.evidence-preview{justify-self:center;width:100%}.architecture-evidence--wide .evidence-preview{width:100%}.architecture-evidence--wide .evidence-points{grid-template-columns:1fr}.flowchart-toolbar{padding:14px}.flowchart-toolbar>div{gap:6px}.flowchart-toolbar button,.flowchart-toolbar a{font-size:var(--text-small);padding:10px 8px}.diagram-blackboard{flex-direction:column;gap:3px}}.benchmark{border:1px solid var(--line);background:#fff;border-radius:4px;margin-top:40px;padding:28px 30px}.benchmark figcaption{font-size:var(--text-small);margin-bottom:28px;font-weight:550}.benchmark-item{margin-top:21px}.benchmark-item>div:first-child{font-size:var(--text-small);color:var(--muted);justify-content:space-between;gap:16px;margin-bottom:9px;display:flex}.benchmark-item strong{color:var(--ink);white-space:nowrap;font-size:15px;font-weight:550}.benchmark-track{background:#f0f2ef;border-radius:2px;height:9px;overflow:hidden}.benchmark-track>span{background:#a4afaa;height:100%;display:block}.is-highlight .benchmark-track>span{background:var(--blue)}.is-highlight strong{color:var(--blue)}.benchmark>p{font-size:var(--text-small);margin-top:22px}.benchmark>p strong{color:var(--blue)}.proof-facts{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px;display:grid}.proof-facts>div{border-top:1px solid #cbd7ce;padding-top:18px}.proof-facts dt{font-size:var(--text-small);color:var(--muted)}.proof-facts dd{letter-spacing:-.03em;margin-top:5px;font-size:26px;font-weight:500}.decisions article{border-bottom:1px solid var(--line);margin-bottom:36px;padding-bottom:38px}.decisions article:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.decisions h3{letter-spacing:-.035em;margin:13px 0 22px;font-size:24px;font-weight:600;line-height:1.5}.decisions dl>div{grid-template-columns:85px minmax(0,1fr);gap:16px;margin-top:16px;display:grid}.decisions dt{font-size:var(--text-small);color:var(--accent);padding-top:3px;font-weight:550}.decisions dd{font-size:var(--text-body);color:var(--muted);line-height:1.85}.case-section+#contribution{border-top:1px solid var(--line)}.small-heading{font-size:var(--text-small);margin-bottom:17px;font-weight:600}.contribution-list li{font-size:var(--text-body);border-bottom:1px solid var(--line);padding:14px 0 10px 22px;line-height:1.85;position:relative}.contribution-list li:before{content:"·";color:var(--accent);position:absolute;left:0}.outcome-panel{background:#edf2fc;border-radius:4px;margin-top:35px;padding:30px}.theme-violet .outcome-panel{background:#f0ecf5}.theme-green .outcome-panel{background:#e9f0eb}.outcome-panel h3{margin-bottom:18px;font-size:18px;font-weight:600}.outcome-panel li{font-size:var(--text-body);margin-top:10px;padding-left:15px;position:relative}.outcome-panel li:before{content:"·";position:absolute;left:0}.outcome-note{font-size:var(--text-small);color:#5a6460;border-top:1px solid #c4cddc;margin-top:22px;padding-top:18px;line-height:1.9}.next-project{border-top:1px solid var(--line);justify-content:space-between;align-items:end;gap:36px;padding-block:38px 64px;display:flex}.next-project .eyebrow{font-size:var(--text-small);color:var(--muted);margin-bottom:12px}.next-project>div>a{letter-spacing:-.035em;align-items:center;gap:30px;font-size:28px;font-weight:550;display:flex}.next-project>div>a:hover{color:var(--accent)}.next-project>div>a svg{width:26px;height:26px}.next-project>.text-link{white-space:nowrap}.resume-page{padding-block:48px 90px}.resume-toolbar{justify-content:space-between;align-items:center;gap:24px;margin-bottom:35px;display:flex}.resume-toolbar h1{letter-spacing:-.04em;font-size:32px;font-weight:600}.resume-toolbar p{font-size:var(--text-small);color:var(--muted);margin-top:5px}.resume-document{max-width:850px;margin-inline:auto}.resume-sheet{border:1px solid var(--line);font-size:var(--text-small);background:#fff;margin-bottom:24px;padding:52px 55px;position:relative}.resume-name{letter-spacing:-.05em;font-size:38px;font-weight:650;line-height:1.3}.resume-title{font-size:var(--text-small);color:var(--blue);margin-top:8px;font-weight:550}.resume-contact{font-size:var(--text-small);color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:15px;display:flex}.resume-summary{font-size:var(--text-body);color:#48564d;margin-top:22px;line-height:1.85}.resume-section-title{letter-spacing:-.015em;border-bottom:1px solid #9baea2;justify-content:space-between;gap:20px;margin:30px 0 18px;padding-bottom:9px;font-size:15px;font-weight:650;display:flex}.resume-section-title span{font-weight:400;font-size:var(--text-small);color:var(--muted);align-self:center}.resume-project{break-inside:avoid;margin-top:22px}.resume-project h3{letter-spacing:-.02em;font-size:17px;font-weight:650}.resume-project-meta{color:var(--muted);font-size:var(--text-small);margin:6px 0 10px}.resume-project ul{padding-left:14px;list-style:outside}.resume-project li{font-size:var(--text-body);margin:4px 0;line-height:1.8}.resume-project>p{font-size:var(--text-small);color:var(--muted);margin-top:10px;line-height:1.8}.resume-mini-header{border-bottom:2px solid var(--blue);font-size:var(--text-small);color:var(--muted);justify-content:space-between;margin-bottom:24px;padding-bottom:12px;display:flex}.resume-mini-header strong{color:var(--ink);font-size:var(--text-small)}.resume-career{break-inside:avoid;margin-bottom:17px}.resume-career>div{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.resume-career h3{font-size:var(--text-small);font-weight:650}.resume-career time{font-size:var(--text-small);color:var(--muted);white-space:nowrap}.resume-career>span{font-size:var(--text-small);color:var(--blue)}.resume-career p{font-size:var(--text-body);color:#515e55;margin-top:5px;line-height:1.8}.resume-skills{grid-template-columns:1fr 1fr;gap:14px 24px;display:grid}.resume-skills h3{font-size:var(--text-small);margin-bottom:4px;font-weight:600}.resume-skills p{font-size:var(--text-body);color:var(--muted);line-height:1.8}.resume-education{font-size:var(--text-body);gap:8px;display:grid}.resume-education>div{justify-content:space-between;gap:20px;display:flex}.resume-education span{font-size:var(--text-small);color:var(--muted);text-align:right}.resume-page-number{border-top:1px solid var(--line);font-size:var(--text-small);color:var(--muted);justify-content:space-between;gap:20px;margin-top:28px;padding-top:15px;display:flex}@media (min-width:1500px){.hero{padding-top:80px}.hero-main{margin-block:45px 50px}}@media (max-width:1050px){.shell{width:calc(100% - 64px)}.hero h1{font-size:7vw}.project-row{grid-template-columns:1.06fr 1fr;gap:32px}.project-copy h3{font-size:26px}.project-visual{min-height:355px;padding:22px 20px}.project-kicker{font-size:var(--text-small)}.project-kicker>span:last-child{display:none}.project-result{margin-block:24px}.approach-grid,.about-grid{gap:60px}.case-hero-grid{grid-template-columns:1fr 240px;gap:40px}.case-section{grid-template-columns:210px minmax(0,1fr);gap:40px}.case-overview{gap:20px}.case-metrics>div{padding:20px}.case-metrics dd:first-child{font-size:31px}.case-facts>div{gap:10px}.architecture-list>div{grid-template-columns:125px minmax(0,1fr);gap:13px}.footer-top{gap:45px}}@media (max-width:760px){html{scroll-padding-top:90px}.shell{width:calc(100% - 40px)}.header-inner{min-height:73px}.brand{gap:11px;font-size:15px}.brand-mark{font-size:37px}.menu-toggle{min-height:44px;font-size:var(--text-small);color:var(--ink);background:0 0;border:0;justify-content:space-between;align-items:center;gap:15px;padding:8px 0 8px 10px;display:flex}.menu-toggle>span{font-size:22px;font-weight:300}.site-nav{background:var(--paper);border-bottom:1px solid var(--line);gap:0;padding:16px 20px 24px;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 14px 20px #19221f0a}.site-nav[data-open=true]{flex-direction:column;align-items:stretch;display:flex}.site-nav>a{padding-block:12px;font-size:15px}.site-nav .nav-contact{color:var(--blue);border:0;justify-content:space-between;margin-left:0}.hero{padding-top:37px}.hero-kicker .eyebrow,.hero-location{font-size:var(--text-small)}.hero-main{gap:0;margin-block:28px 30px}.hero h1{letter-spacing:-.06em;font-size:clamp(31px,8.8vw,65px);line-height:1.3}.hero-bottom{grid-template-columns:1fr;gap:25px;margin:0 0 36px}.hero-person{gap:12px}.avatar{width:64px;height:64px}.hero-person strong,.hero-person span{font-size:var(--text-small)}.hero-intro>p{font-size:var(--text-body);margin-bottom:22px;line-height:1.85}.desktop-break{display:none}.button{font-size:var(--text-small);gap:12px;min-height:47px;padding:12px 15px}.button-row{gap:8px}.career-strip{grid-template-columns:repeat(3,1fr);padding-block:22px}.career-strip>div{padding-left:18px}.career-strip dd{font-size:25px}.career-strip dt{font-size:var(--text-small)}.career-strip dd>span{font-size:var(--text-small);letter-spacing:0;margin:3px 0 0;display:block}.career-strip .career-strip-note{display:none}.work-section{padding-block:65px}.section-heading{flex-direction:column;align-items:start;gap:21px;margin-bottom:32px}.section-heading h2,.about-heading h2,.approach-grid h2{font-size:32px;line-height:1.35}.section-heading .eyebrow,.about-heading .eyebrow{font-size:var(--text-small);margin-bottom:15px}.section-heading>p{font-size:var(--text-body);line-height:1.8}.project-list{gap:40px}.project-row{grid-template-columns:1fr;gap:0}.project-visual{min-height:330px;padding:22px}.project-copy{padding-block:22px 0}.project-kicker{font-size:var(--text-small)}.project-kicker>span:last-child{font-size:var(--text-small);display:block}.project-copy h3{margin-block:16px 12px;font-size:27px}.project-copy>p{font-size:var(--text-body)}.project-result{flex-direction:row;align-items:center;gap:16px;margin-block:22px}.project-result strong{white-space:nowrap;font-size:31px}.project-result>span{font-size:var(--text-small);word-break:keep-all;max-width:none}.project-copy-bottom>.text-link,.project-copy-bottom>span{font-size:var(--text-small)}.approach-section{padding-block:60px}.approach-grid,.about-grid{grid-template-columns:1fr;gap:38px}.approach-grid .eyebrow{font-size:var(--text-small);margin-bottom:17px}.section-description{font-size:var(--text-body);margin-top:19px}.approach-list article{gap:15px;padding-block:24px}.approach-list h3{font-size:19px}.approach-list p{font-size:var(--text-body)}.about-section{padding-block:65px}.about-heading{margin-bottom:28px}.about-bio>p{font-size:var(--text-body);margin-bottom:16px}.about-bio>.text-link{margin-bottom:25px}.skills-list{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.skills-list p{font-size:var(--text-body)}.timeline{margin-top:5px}.timeline>li{padding-bottom:27px}.timeline h3{font-size:18px}.timeline p{font-size:var(--text-body)}.site-footer{padding-top:48px}.footer-top{grid-template-columns:1fr;gap:30px;padding-bottom:40px}.footer-top h2{font-size:33px}.footer-actions>p{font-size:var(--text-body)}.email-link{font-size:21px}.footer-bottom{font-size:var(--text-small);flex-wrap:wrap;gap:10px}.footer-bottom>a{margin-left:auto}.case-hero{padding-block:25px 28px}.back-link{margin-bottom:22px}.case-hero-grid{grid-template-columns:1fr;gap:28px}.case-hero h1{font-size:36px}.case-hero .eyebrow{font-size:var(--text-small)}.case-lead{font-size:var(--text-body);margin-top:20px}.tags{gap:6px;margin-top:19px}.tags li{font-size:var(--text-small)}.case-facts{grid-template-columns:1fr 1fr;gap:0 20px;display:grid}.case-facts>div{padding-block:12px;display:block}.case-facts dd{font-size:var(--text-small);margin-top:4px}.case-facts dt{font-size:var(--text-small)}.case-overview{grid-template-columns:1fr;gap:20px}.case-overview .project-visual{min-height:330px}.case-metrics>div{padding:20px}.case-metrics dd:first-child{font-size:29px}.case-metrics dt,.case-metrics .metric-detail{font-size:var(--text-small)}.case-toc{font-size:var(--text-small);justify-content:space-between;gap:0;margin-top:22px;padding-block:10px}.case-section{grid-template-columns:1fr;gap:28px;padding-block:46px}.case-label{align-items:baseline;gap:17px;display:flex}.case-label h2{margin:0;font-size:24px}.case-label h2 br{display:none}.case-content>.prose{font-size:var(--text-body);margin-bottom:18px;line-height:1.9}.problem-list{gap:21px;margin-top:28px}.problem-list h3{font-size:15px}.problem-list p{font-size:var(--text-body)}.architecture-list>div{grid-template-columns:125px minmax(0,1fr);align-items:start;gap:9px}.architecture-list h3{font-size:var(--text-small)}.architecture-list p{font-size:var(--text-body)}.execution-block{margin-top:32px}.execution-block>h3{font-size:21px}.execution-block>p{font-size:var(--text-body)}.execution-flow{grid-template-columns:1fr 1fr;gap:22px 20px}.benchmark{margin-top:30px;padding:22px 20px}.benchmark figcaption,.benchmark-item>div:first-child,.benchmark-item strong{font-size:var(--text-small)}.proof-facts{gap:13px}.proof-facts dd{font-size:24px}.proof-facts dt{font-size:var(--text-small)}.decisions h3{font-size:22px}.decisions dl>div{grid-template-columns:1fr;gap:5px;margin-top:17px}.decisions dd{font-size:var(--text-body)}.decisions article{margin-bottom:28px;padding-bottom:28px}.contribution-list li{font-size:var(--text-body)}.outcome-panel{margin-top:28px;padding:23px}.outcome-panel li{font-size:var(--text-body)}.outcome-note{font-size:var(--text-small)}.next-project{flex-direction:column;align-items:start;gap:18px;padding-block:28px 45px}.next-project>div>a{gap:18px;font-size:24px}.next-project>.text-link{font-size:var(--text-small)}.resume-page{padding-block:30px 55px}.resume-toolbar{flex-direction:column;align-items:start;gap:18px;margin-bottom:25px}.resume-toolbar h1{font-size:28px}.resume-sheet{padding:28px 22px}.resume-name{font-size:32px}.resume-summary{font-size:var(--text-body)}.resume-section-title{font-size:var(--text-small);flex-wrap:wrap;gap:4px;margin-top:25px}.resume-project h3,.resume-project li{font-size:var(--text-body)}.resume-career>div{flex-direction:column;gap:3px}.resume-skills{grid-template-columns:1fr}.resume-education>div{flex-direction:column;gap:1px}.resume-education span{text-align:left}.resume-page-number,.resume-mini-header{font-size:var(--text-small)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}@page{size:A4;margin:14mm 16mm}@media print{html{scroll-behavior:auto}body{color:#19221f;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;font-size:10pt}.site-header,.site-footer,.skip-link,.resume-toolbar{display:none!important}.resume-page{padding:0}.resume-page .shell,.resume-document{width:100%;max-width:none;margin:0}.resume-sheet{break-after:page;border:0;margin:0;padding:0;font-size:10pt}.resume-sheet:last-child{break-after:auto}.resume-name{font-size:28pt}.resume-title{margin-top:5pt;font-size:11pt}.resume-contact{margin-top:8pt;font-size:8pt}.resume-summary{margin-top:15pt;font-size:10pt;line-height:1.75}.resume-section-title{margin:18pt 0 12pt;padding-bottom:6pt;font-size:11pt}.resume-section-title span{font-size:8pt}.resume-project{margin-top:14pt}.resume-project h3{font-size:12pt}.resume-project-meta{margin:4pt 0 7pt;font-size:8pt}.resume-project li{margin:3pt 0;font-size:9pt;line-height:1.75}.resume-project>p{margin-top:7pt;font-size:8pt}.resume-mini-header{margin-bottom:15pt;padding-bottom:9pt;font-size:8pt}.resume-mini-header strong{font-size:10pt}.resume-career{margin-bottom:12pt}.resume-career h3{font-size:10pt}.resume-career>span,.resume-career time{font-size:8pt}.resume-career p{margin-top:3pt;font-size:8.5pt;line-height:1.7}.resume-skills{grid-template-columns:1fr 1fr;gap:10pt 16pt}.resume-skills h3{font-size:8.5pt}.resume-skills p{font-size:8pt}.resume-education{gap:6pt;font-size:8.5pt}.resume-education span{font-size:8pt}.resume-page-number{margin-top:18pt;padding-top:9pt;font-size:7pt}.resume-career>div,.resume-education>div{flex-direction:row}.resume-education span{text-align:right}a{color:inherit}.resume-sheet:last-child .resume-career{margin-bottom:8pt}.resume-sheet:last-child .resume-section-title{margin-top:13pt}.resume-sheet:last-child .resume-page-number{margin-top:12pt}}.resume-skills{display:block}.resume-skills>div{grid-template-columns:110px minmax(0,1fr);gap:18px;margin-top:10px;display:grid}@media (max-width:760px){.resume-skills>div{grid-template-columns:1fr;gap:3px}}@media print{.resume-skills>div{grid-template-columns:85pt minmax(0,1fr);gap:12pt;margin-top:6pt}}.personal-section{padding-block:0 112px}.personal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:42px;display:grid}.personal-art-link{border-radius:8px;display:block;position:relative;overflow:hidden}.personal-art-arrow{width:42px;height:42px;color:var(--ink);background:#fff;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:20px;right:20px;box-shadow:0 4px 20px #0002}.personal-card-copy{padding-top:26px}.personal-card-copy .eyebrow{color:var(--muted)}.personal-card h3{letter-spacing:-.04em;margin:12px 0 16px;font-size:29px}.personal-card-copy>p:not(.eyebrow){color:var(--muted);font-size:var(--text-body);line-height:1.85}.personal-card-bottom{border-top:1px solid var(--line);font-size:var(--text-small);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:24px;padding-top:24px;display:flex}.personal-card-bottom>span{color:var(--muted)}.personal-visual{justify-content:center;align-items:start;gap:24px;min-width:0;display:flex}.personal-visual>figure{flex:1;min-width:0;max-width:260px}.personal-screen{background:#fff;border:1px solid #d8d2c9;border-radius:22px;overflow:hidden;box-shadow:0 14px 35px #222b1810}.personal-screen img{width:100%;height:auto;display:block}.personal-visual figcaption{font-size:var(--text-small);color:var(--muted);margin-top:18px;line-height:1.7}.personal-visual figcaption a{text-underline-offset:4px;width:fit-content;padding:10px 0;text-decoration:underline;display:block}.personal-visual--lart-marketing>figure{max-width:340px}.personal-visual--lart-marketing .personal-screen{background:#080f12;border-color:#1f3034}.personal-visual--preview{background:#f3e8df;height:370px;padding:30px 34px 0;overflow:hidden}.personal-visual--preview>figure{max-width:220px}.personal-visual--preview>figure:last-child{margin-top:40px}.personal-visual--preview .personal-screen{border-radius:16px}.personal-visual--preview.personal-visual--lart-marketing{background:#0c1518;padding:0}.personal-visual--preview.personal-visual--lart-marketing>figure{max-width:none;height:100%;margin:0}.personal-visual--preview.personal-visual--lart-marketing .personal-screen{border:0;border-radius:0;height:100%}.personal-visual--preview.personal-visual--lart-marketing img{object-fit:cover;object-position:center 75%;height:100%}.personal-hero{padding-block:54px 60px}.personal-hero>.eyebrow{color:var(--accent);margin-top:40px}.personal-hero h1{letter-spacing:-.055em;margin:20px 0 24px;font-size:clamp(38px,4.8vw,64px)}.personal-lead{color:#4a5550;max-width:780px;font-size:20px;line-height:1.9}.personal-meta{color:var(--muted);font-size:var(--text-small);flex-wrap:wrap;gap:12px 28px;margin-top:30px;display:flex}.personal-meta>span{color:var(--accent);font-weight:600}.personal-hero>.button{margin-top:26px}.personal-page--lart-marketing{--accent:#76601f}.personal-page--chinese-vocabulary{--accent:#b23830}.personal-showcase{border:1px solid var(--line);background:#f0eee7;border-radius:8px;grid-template-columns:.8fr 1.6fr;align-items:center;gap:56px;padding:48px;display:grid}.personal-page--chinese-vocabulary .personal-showcase{background:#f4ece5}.personal-showcase-copy h2{letter-spacing:-.045em;text-wrap:balance;margin:24px 0 10px;font-size:40px}.personal-showcase-copy>p:not(.eyebrow){color:var(--muted);font-size:var(--text-body)}.personal-showcase-copy .tags{margin-top:32px}.personal-process{border-block:1px solid var(--line);background:#eef1eb;padding:64px 0}.personal-process h2{letter-spacing:-.04em;margin-top:18px;font-size:30px}.personal-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin-top:42px;display:grid}.personal-steps li{border-top:1px solid #c6cfc4;padding-top:20px}.personal-steps li>span{font-family:inherit;font-size:var(--text-small);color:var(--accent)}.personal-steps h3{margin:16px 0 12px;font-size:18px}.personal-steps p,.personal-decisions p,.personal-implementation dd{color:var(--muted);font-size:var(--text-body);line-height:1.9}.personal-decisions{gap:36px;display:grid}.personal-decisions h3{letter-spacing:-.03em;margin-bottom:16px;font-size:23px}.personal-delivery{border-top:1px solid var(--line)}.personal-implementation>div{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr;gap:28px;padding-block:22px;display:grid}.personal-implementation>div:first-child{padding-top:0}.personal-implementation dt{font-size:15px;font-weight:600}@media (max-width:960px){.personal-showcase{grid-template-columns:1fr;gap:36px;padding:36px}.personal-showcase-copy .tags{margin-top:22px}.personal-visual--preview{gap:16px;height:300px;padding:24px 20px 0}.personal-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.personal-section{padding-bottom:70px}.personal-grid{grid-template-columns:1fr;gap:44px}.personal-visual--preview{height:320px;padding:28px 26px 0}.personal-card h3{font-size:26px}.personal-card-copy>p:not(.eyebrow){font-size:var(--text-body)}.personal-hero{padding-block:30px 40px}.personal-hero>.eyebrow{font-size:var(--text-small);margin-top:32px}.personal-lead{font-size:17px}.personal-showcase{gap:28px;padding:24px 16px}.personal-showcase-copy{padding-inline:8px}.personal-showcase-copy h2{margin-top:16px;font-size:32px}.personal-showcase .personal-visual{flex-wrap:wrap;gap:24px}.personal-showcase .personal-visual>figure{flex:0 100%;max-width:280px}.personal-process{padding-block:44px}.personal-process h2{font-size:25px}.personal-steps{grid-template-columns:1fr;gap:24px;margin-top:32px}.personal-steps h3{margin-top:10px}.personal-steps p,.personal-decisions p,.personal-implementation dd{font-size:var(--text-body)}.personal-decisions h3{font-size:21px}.personal-implementation>div{grid-template-columns:1fr;gap:10px}}@media screen{.resume-project h3,.resume-section-title{font-size:20px}.resume-career h3,.resume-skills h3{font-size:17px}.resume-project{margin-top:32px}.resume-project li{margin-block:10px}.resume-project>p{margin-top:16px}.resume-career{margin-bottom:26px}.resume-contact{gap:8px 20px}}.evidence-document-preview{background:#edf3ef;gap:12px;padding:22px;display:grid}.evidence-document-preview strong{font-size:18px}.evidence-document-preview>span{font-size:var(--text-small)}.evidence-document-preview>.evidence-open-label{padding:12px 0 0}.evidence-points{gap:24px}.evidence-points .evidence-point-heading{font-size:18px}.evidence-preview{width:100%;min-width:0}.project-row>*,.case-overview>*,.case-content{min-width:0}.project-kicker{flex-wrap:wrap}.project-copy-bottom{flex-wrap:wrap;gap:8px 20px}.case-toc a{align-items:center;min-height:44px;display:inline-flex}.case-label h2{margin-top:0}.evidence-points li{min-width:0}@media (max-width:1050px) and (min-width:761px){.project-row{grid-template-columns:1fr 1fr;gap:28px}.case-overview{grid-template-columns:1fr}.case-section{grid-template-columns:1fr;gap:28px}.flow-tools{grid-template-columns:1fr}.flow-tools li{justify-content:space-between;gap:12px;padding:12px;display:flex}}@media (max-width:760px){.hero-kicker{flex-wrap:wrap;align-items:flex-start;gap:12px}.hero-location{white-space:nowrap}.hero-main{margin-block:24px}.hero-person span{display:block}.career-strip{gap:16px}.career-strip>div{padding-left:12px}.project-visual{gap:22px;padding:22px 18px}.flow-tools{grid-template-columns:1fr;gap:8px}.flow-tools li{text-align:left;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.flow-tools--models{grid-template-columns:repeat(3,minmax(0,1fr))}.flow-tools--models li{justify-content:center;padding:12px 4px}.flow-node{padding:16px 12px}.architecture-list>div{grid-template-columns:1fr;gap:6px}.architecture-list h3{font-size:17px}.execution-flow{grid-template-columns:1fr;gap:20px}.execution-flow li>span{margin-bottom:6px}.execution-flow strong{font-size:18px}.skills-list{grid-template-columns:1fr}.project-result{flex-direction:column;align-items:flex-start;gap:8px}.case-metrics>div{padding:20px 16px}.case-toc{justify-content:flex-start;gap:4px 24px}.proof-facts{grid-template-columns:1fr}.architecture-evidence{padding:24px 16px}.architecture-evidence--wide .evidence-points{grid-template-columns:1fr}.evidence-document-preview{padding:18px}.resume-sheet{padding:28px 18px}.resume-career>div{align-items:flex-start}.personal-showcase .personal-visual>figure{max-width:360px}.footer-bottom{align-items:center}}
