:root{--ink:#18191c;--muted:#70737b;--line:#e4e5e9;--blue:#1947ff;--soft:#f6f7fa;--mono:"SFMono-Regular",Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}html.screen-site{scroll-snap-type:y mandatory;scroll-padding-top:0}html.has-expanded-career{scroll-snap-type:y proximity}body{margin:0;background:#fff;color:var(--ink);font:15px/1.85 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--blue)}button{font:inherit;color:inherit;cursor:pointer}img{max-width:100%;display:block}p,h1,h2,h3,h4{margin:0}button{border:0}ol{margin:0;padding:0;list-style:none}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--blue);outline-offset:5px}::selection{background:#e2e8ff}.shell{width:min(1440px,calc(100% - 112px));margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:8px;left:20px;transform:translateY(-150%);z-index:100;background:white;padding:10px;border:1px solid}.skip-link:focus{transform:none}.home-page .portfolio-header{position:fixed;inset:0 0 auto}.home-screen{min-height:100svh;scroll-snap-align:start;scroll-snap-stop:always;position:relative;padding:calc(var(--site-header-height,78px) + 54px) 0 78px;display:flex;align-items:center;border-bottom:1px solid #f0f1f3}.screen-content{width:100%}.eyebrow{font:10px/1.7 var(--mono);letter-spacing:1.7px;color:#858992}.screen-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:38px}.screen-heading h2{font-size:clamp(27px,2.5vw,38px);font-weight:550;letter-spacing:-1.3px;line-height:1.4;margin-top:14px}.screen-heading>p{font-size:12px;color:var(--muted);line-height:1.9}.screen-heading .text-link{margin:0;white-space:nowrap}.text-link{display:inline-block;font-size:12px;border-bottom:1px solid var(--line);padding-bottom:5px;margin-top:25px}.screen-cue{display:flex;gap:30px;align-items:center;justify-content:center;font-size:11px;color:#8c9099;letter-spacing:.5px;margin-top:26px}.screen-cue span{font-size:19px;color:#30343a}.screen-pagination{position:fixed;right:24px;bottom:22px;display:flex;gap:9px;align-items:center;padding:6px;background:rgba(255,255,255,.93);border:1px solid var(--line);border-radius:30px;z-index:61;box-shadow:0 4px 20px #11111105}.screen-pagination span{font:10px var(--mono);color:var(--muted);min-width:52px;text-align:center}.screen-pagination button{width:30px;height:30px;border-radius:50%;background:#f5f6f8}.screen-pagination button:hover:not(:disabled){background:#e8edff;color:var(--blue)}.screen-pagination button:disabled{opacity:.25;cursor:default}
/* The badge hangs in the page's foreground; transparent space never blocks links. */
.hero-screen{padding-bottom:190px;min-height:100svh}.hero-layout{position:relative}.hero-copy{width:54%;max-width:720px;padding:35px 0}.intro-name{font-size:20px;margin:28px 0 13px;font-weight:500}.intro-name>span{font-size:12px;font-weight:400;color:var(--muted);margin-left:14px}.hero-copy h1{font-size:clamp(32px,3.8vw,56px);line-height:1.4;letter-spacing:-2px;font-weight:600}.hero-description{font-size:15px;line-height:2;max-width:590px;color:#676b74;margin-top:24px}.hero-actions{display:flex;align-items:center;gap:30px;font-size:12px;margin-top:30px}.hero-actions a{display:flex;gap:24px;align-items:center;padding:12px 0}.hero-actions .primary-link{border:1px solid #26272a;padding:11px 18px}.primary-link:hover{background:var(--blue);color:white;border-color:var(--blue)}.hero-actions span{font-size:17px}.badge-space{height:calc(100svh - 170px);min-height:520px;max-height:1000px;width:min(46vw,690px);position:absolute;right:max(3vw,calc((100vw - 1440px)/2 - 40px));top:0;z-index:70;pointer-events:none}.badge-render{position:absolute;inset:0 0 42px}.badge-render canvas{pointer-events:none}.badge-actions{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:16px}.badge-tip{font-size:10px;color:#9a9da4}.badge-nudge{font-size:11px;padding:6px 14px;border:1px solid var(--line);background:#fff;border-radius:20px;pointer-events:auto}.badge-nudge:hover{border-color:var(--blue);color:var(--blue)}.badge-fallback{position:absolute;left:50%;top:19%;width:55%;transform:translateX(-50%) rotate(5deg);transform-origin:50% -110px}.fallback-strap{width:24px;height:400px;background:linear-gradient(90deg,#a8a9ac,#d5d6d8 25%,#bcbec1 80%,#a7a8ad);position:absolute;left:calc(50% - 12px);bottom:calc(100% - 7px)}.fallback-card{position:relative;background:#e9e9e7;color:#171717;padding:20px 17px;border:1px solid #d4d4d2;border-radius:16px;box-shadow:0 22px 38px #26272a1b}.card-topline,.card-bottomline{font:8px var(--mono);letter-spacing:1px}.fallback-photo{aspect-ratio:916/875;overflow:hidden;border-radius:5px;margin:14px 0 10px;background:#eceae9}.fallback-photo img{width:166.666%;max-width:none;height:auto;margin-left:-33.333%}.fallback-card strong{font-size:27px}.fallback-card small{display:block;font-size:9px;letter-spacing:1.3px;margin:0 0 15px}.card-bottomline{font-size:6px}.hero-bottom{position:absolute;bottom:26px;left:0;right:0}.career-facts{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line);padding:22px 0}.career-facts>div{padding:0 26px;border-left:1px solid var(--line);display:flex;align-items:baseline;gap:16px}.career-facts>div:first-child{padding-left:0;border:0}.career-facts strong{font-size:28px;font-weight:500;letter-spacing:-1px;white-space:nowrap}.career-facts span{color:var(--muted);font-size:11px}
/* All five jobs are visible before a reader chooses a detail. */
.career-timeline{border-top:1px solid var(--line)}.career-entry{border-bottom:1px solid var(--line)}.career-entry summary{display:grid;grid-template-columns:170px 1fr 30px;align-items:center;gap:30px;padding:23px 8px;cursor:pointer;list-style:none}.career-entry summary::-webkit-details-marker{display:none}.career-entry summary:hover{background:#fafbfe}.career-date,.date{font:11px/1.7 var(--mono);color:#858993;letter-spacing:.4px}.career-name{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.career-name>strong{font-size:21px;font-weight:550;letter-spacing:-.4px}.career-tags{display:inline-flex;gap:6px;flex-wrap:wrap}.role-tag{font:11px/1.5 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;padding:4px 8px;border-radius:4px}.role-tag--lead{background:#edf2ff;color:#4562a2}.role-tag--venture{background:#fbf0e8;color:#a66b40}.role-tag--neutral{background:#edf5f2;color:#557e6e}.career-preview{display:block;margin-top:7px;font-size:12px;color:#7b7f88}.career-expand{font:24px/1 var(--mono);font-weight:300;text-align:center;color:#9498a1;transition:transform .25s}.career-entry[open] .career-expand{transform:rotate(45deg);color:var(--blue)}.career-entry[open] summary{background:#fafbfe}.career-detail{padding:12px 50px 32px 208px;color:#656a74;font-size:14px;line-height:1.95}.career-detail>p{max-width:830px;margin-bottom:16px}.career-highlight{color:#303640;border-left:2px solid #afb8cd;padding-left:13px}.phase-timeline{display:grid;grid-template-columns:1fr 1fr;gap:30px 42px;margin-top:24px}.phase-timeline li{border-top:1px solid var(--line);padding-top:20px}.phase-timeline h4{font-size:15px;font-weight:550;color:#30343b;margin:7px 0 10px}.phase-timeline p{font-size:13px}.phase-timeline p+p{margin-top:10px}.education{display:flex;gap:27px;align-items:center;padding:20px 8px;font-size:12px;color:#858993}.education strong{color:#4d535d;font-weight:500}.education .date{width:170px}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.case-card{min-width:0}.case-art{aspect-ratio:700/440;background:#f7f8fa;position:relative;overflow:hidden;margin-bottom:19px;border:1px solid #f0f1f5}.case-art img{width:100%;height:100%;object-fit:contain;filter:grayscale(1);transition:filter .7s,transform 1s;mix-blend-mode:multiply}.case-link:hover .case-art img,.case-link:focus-visible .case-art img{filter:grayscale(0);transform:scale(1.025)}.case-arrow{position:absolute;right:13px;top:9px;font-size:19px;transition:transform .3s .12s}.case-link:hover .case-arrow{transform:translate(3px,-3px)}.case-topline{display:flex;justify-content:space-between;align-items:baseline;min-height:25px;font:9px/1.8 var(--mono);letter-spacing:.7px;color:#9498a1;margin-bottom:12px}.project-scale{font:10px/1.7 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;letter-spacing:0}.project-scale strong{font:18px var(--mono);letter-spacing:-.5px;color:#575e6a;margin-right:5px}.case-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap;line-height:1.5;margin-bottom:10px;font-weight:550}.case-name>span:first-child{font-size:25px;letter-spacing:-.7px}.case-thesis{font-size:17px;line-height:1.6;font-weight:500;letter-spacing:-.3px;color:#252a32}.case-role{font-size:12px;margin-top:14px;color:#676d77;line-height:1.95}.case-card>p[data-reading-content]{font-size:12px;color:#8a8f97;margin-top:10px;line-height:1.9}.disclosure-note{font-size:10px;color:#969ba4;line-height:1.9;margin-top:30px;max-width:780px}.mobile-hint{display:none}.practice-intro{font-size:16px;line-height:2;color:#717680;max-width:860px;margin-bottom:52px}.practice-list{display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.practice-list article{border-top:1px solid #cfd3da;padding-top:24px}.practice-number{font:11px var(--mono);color:#949aa5}.practice-list h3{font-size:21px;font-weight:500;margin:22px 0 18px;letter-spacing:-.5px}.practice-list p{font-size:14px;line-height:2;color:#737983}.practice-list p+p{margin-top:15px}.practice-list+.text-link{margin-top:42px}.about-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:120px;align-items:center}.about-layout h2{font-size:clamp(34px,4vw,62px);font-weight:550;line-height:1.35;letter-spacing:-2px;margin:22px 0 30px}.about-layout p:not(.eyebrow){font-size:15px;color:#737983;max-width:590px;line-height:2}.about-layout p+p{margin-top:15px}.contact-card{border-left:1px solid var(--line);padding:30px 0 30px 70px}.contact-card h3{font-size:31px;line-height:1.5;font-weight:500;margin:25px 0 30px}.contact-card>a{display:block;font-size:14px;margin:17px 0}.home-footer{border-top:1px solid var(--line);padding:25px 0 0;display:flex;justify-content:space-between;gap:25px;color:#9a9fa8;font:10px/1.8 var(--mono);letter-spacing:.5px;margin-top:85px}
@media(max-width:1100px){.shell{width:calc(100% - 72px)}.hero-copy h1{font-size:39px}.hero-description{font-size:14px}.badge-space{right:0;width:48vw}.career-facts>div{flex-direction:column;gap:0;padding-inline:20px}.career-entry summary{grid-template-columns:145px 1fr 28px;gap:20px}.career-detail{padding-left:173px}.career-name{gap:10px}.project-grid{gap:24px}.case-name>span:first-child{font-size:23px}.case-thesis{font-size:16px}.practice-list{gap:30px}.about-layout{gap:55px}.contact-card{padding-left:45px}}
@media(max-width:800px){html.screen-site{scroll-snap-type:y proximity}.shell{width:calc(100% - 40px)}.home-screen{padding-top:calc(var(--site-header-height) + 38px);padding-bottom:80px}.screen-heading{display:block;margin-bottom:28px}.screen-heading h2{font-size:27px;letter-spacing:-1px}.screen-heading>p,.screen-heading>.text-link{margin-top:17px}.eyebrow{font-size:9px}.hero-screen{padding-top:100px;display:block;padding-bottom:40px}.hero-copy{width:100%;padding:0;max-width:none;margin-top:390px}.hero-copy h1{font-size:32px;letter-spacing:-1.2px}.intro-name{font-size:18px;margin-top:20px}.hero-description{font-size:14px;margin-top:19px}.hero-actions{margin-top:22px;font-size:11px;gap:24px}.badge-space{top:0;right:0;left:0;margin:auto;width:min(440px,100%);height:480px;min-height:0}.badge-actions{bottom:0}.hero-bottom{position:static;margin-top:32px}.career-facts{grid-template-columns:1fr 1fr;padding:0}.career-facts>div,.career-facts>div:first-child{padding:14px 12px;border-bottom:1px solid var(--line);gap:0}.career-facts>div:nth-child(3){border-left:0;border-bottom:0}.career-facts>div:last-child{border-bottom:0}.career-facts strong{font-size:25px}.career-facts span{font-size:10px}.career-entry summary{grid-template-columns:1fr 22px;gap:8px 12px;padding:20px 0}.career-date{grid-column:1}.career-summary{grid-column:1;grid-row:2}.career-expand{grid-column:2;grid-row:1/3}.career-name{gap:8px}.career-name>strong{font-size:20px}.career-tags{gap:4px}.role-tag{font-size:9px;padding:3px 6px}.career-preview{font-size:11px;margin-top:8px}.career-detail{padding:10px 12px 26px 12px;font-size:13px}.phase-timeline{grid-template-columns:1fr;gap:24px}.phase-timeline h4{font-size:14px}.education{flex-wrap:wrap;gap:8px 20px;padding:20px 0;font-size:11px}.education .date{width:100%}.project-grid{grid-template-columns:repeat(3,minmax(270px,85vw));gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-20px;padding-inline:20px;padding-bottom:20px}.case-card{scroll-snap-align:center}.case-art{margin-bottom:15px}.case-name>span:first-child{font-size:23px}.case-role{font-size:12px}.mobile-hint{display:block;font-size:10px;color:#8b919b;margin-bottom:15px}.disclosure-note{margin-top:18px}.screen-pagination{right:12px;bottom:12px;padding:4px;gap:5px}.screen-pagination button{width:26px;height:26px}.screen-pagination span{font-size:9px;min-width:44px}.practice-intro{font-size:14px;margin-bottom:30px}.practice-list{grid-template-columns:1fr;gap:30px}.practice-list h3{font-size:19px;margin:12px 0}.practice-list p{font-size:13px}.about-layout{display:block}.about-layout h2{font-size:42px}.about-layout p:not(.eyebrow){font-size:14px}.contact-card{border:0;border-top:1px solid var(--line);padding:30px 0 0;margin-top:35px}.contact-card h3{font-size:25px;margin:18px 0}.contact-card h3 br{display:none}.home-footer{margin-top:45px;flex-wrap:wrap;font-size:8px;gap:15px}.home-footer span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){html.screen-site{scroll-behavior:auto;scroll-snap-type:none}*,*:before,*:after{animation:none!important;transition:none!important}.case-link:hover .case-art img{transform:none}}@media print{html.screen-site{scroll-snap-type:none}.badge-space,.portfolio-nav,.portfolio-reading,.screen-pagination,.hero-actions,.screen-cue{display:none!important}.home-screen{min-height:0;display:block;padding:30px 0;break-after:page}.hero-copy{width:100%;margin:0}.hero-bottom{position:static;margin-top:30px}.shell{width:100%}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible}.home-page .portfolio-header{position:static}.hero-screen{min-height:0}.case-art{height:160px}}
/* Keep the shared shell width intact inside each screen. */
.screen-content.shell{width:min(1440px,calc(100% - 112px))}
@media(min-width:801px){.home-page .portfolio-nav{margin-left:clamp(35px,9vw,150px);margin-right:auto}.career-name{line-height:1.45}.career-preview{line-height:1.65}.career-entry summary{padding-block:17px}}
@media(min-width:801px) and (max-height:850px){.home-screen{padding-top:100px;padding-bottom:35px}.screen-heading{margin-bottom:22px}.screen-heading h2{font-size:29px;margin-top:9px;line-height:1.35}.career-entry summary{padding-block:9px}.career-name>strong{font-size:20px}.career-name{line-height:1.4}.career-preview{margin-top:4px;font-size:11px;line-height:1.5}.education{padding-block:13px}.hero-screen{padding-top:95px;padding-bottom:165px}.hero-copy{padding:0}.hero-copy h1{font-size:41px;line-height:1.35}.intro-name{margin-top:20px;margin-bottom:9px}.hero-description{font-size:14px;line-height:1.9;margin-top:18px}.hero-actions{margin-top:21px}.hero-bottom{bottom:18px}.career-facts{padding-block:16px}.hero-bottom .screen-cue{margin-top:15px}.case-art{height:220px;aspect-ratio:auto;margin-bottom:14px}.case-topline{margin-bottom:8px}.case-name{gap:8px;margin-bottom:7px}.case-name>span:first-child{font-size:23px}.case-thesis{font-size:16px;line-height:1.5}.case-role{margin-top:10px;font-size:12px;line-height:1.8}.case-card>p[data-reading-content]{font-size:11px}.disclosure-note{margin-top:20px}.screen-cue{margin-top:18px}.practice-intro{margin-bottom:30px}.practice-list h3{margin:18px 0 12px}.practice-list p{font-size:13px}.home-footer{margin-top:50px}}
@media(max-width:1100px) and (min-width:801px){.screen-content.shell{width:calc(100% - 72px)}}
@media(max-width:800px){.screen-content.shell{width:calc(100% - 40px)}}

/* Home hero separator: gives the role line its own visual pause before the intro. */
.home-v2 .landing-specialty::after{content:"";display:block;width:72px;height:4px;margin-top:30px;background:var(--blue);border-radius:2px}
.home-v2 .landing-description{margin-top:42px}
@media(max-width:760px){.home-v2 .landing-specialty::after{width:48px;height:3px;margin-top:18px}.home-v2 .landing-description{margin-top:24px}}
