:root{--bg: #f5f5f4;--white: #ffffff;--line: #e3e3e0;--ink: #1a1a1a;--ink2: #3d3d3d;--muted: #6e6e6e;--blue: #1d5cff;--green: #34d399}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}a{color:inherit;text-decoration:none}.nav{position:sticky;top:0;z-index:50;height:57px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px;background:#fafaf9eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-.2px;width:235px}.brand-mark{width:30px;height:30px;border-radius:8px;background:var(--ink);color:#fff;display:grid;place-items:center;font-size:12px}.nav-search{display:flex;align-items:center;gap:10px;width:512px;max-width:100%;height:38px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:#fafaf9;color:var(--muted);font-size:14px;transition:border-color .2s,box-shadow .2s}.nav-search:hover{border-color:#bbb;box-shadow:0 2px 10px #0000000d}.nav-cta{display:flex;gap:12px;width:235px;justify-content:flex-end}.pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:9px 18px;border-radius:100px;font-size:14px;font-weight:600;border:1px solid transparent;transition:transform .15s,background .2s,box-shadow .2s}.pill:hover{transform:translateY(-1px)}.pill-dark{background:#0d0d14;color:#fff}.pill-dark:hover{background:#272633;box-shadow:0 6px 16px #0003}.pill-outline{background:transparent;border-color:#9a9a9a;color:var(--ink)}.pill-outline:hover{background:#fff}.pill-lg{padding:12px 26px;font-size:16px}.pill-soft{background:#3a3a3a;color:#fff;padding:14px 26px}.pill-soft:hover{background:#1a1a1a}.grow{flex:1;font-size:16px;padding:10px 20px}.icon-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;display:grid;place-items:center;transition:background .2s;flex:none}.icon-btn:hover{background:#f1f1ef}.icon-btn.on svg{fill:currentColor}.layout{display:grid;grid-template-columns:235px 1fr;min-height:calc(100vh - 57px)}.sidebar{position:sticky;top:57px;height:calc(100vh - 57px);background:#fafaf9;border-right:1px solid var(--line);padding:20px 16px;display:flex;flex-direction:column;align-items:center;text-align:center;overflow-y:auto}.side-top{display:flex;flex-direction:column;align-items:center;width:100%}.avatar-wrap{position:relative;display:flex;flex-direction:column;align-items:center}.avatar{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;font-size:38px;font-weight:600;color:#fff;background:conic-gradient(from 210deg,#2c2c2c,#6b6b6b,#b9b9b9,#6b6b6b,#2c2c2c);filter:grayscale(.2)}.avatar.sm{width:80px;height:80px;font-size:26px;flex:none}.otw{display:flex;align-items:center;gap:6px;margin-top:-8px;padding:2px 8px;font-size:14px;font-weight:500;color:var(--blue);background:#fafaf9;border-radius:100px;position:relative}.name{font-size:24px;font-weight:600;letter-spacing:-.4px;color:var(--ink2);margin-top:12px}.role{font-size:14px;font-weight:500;margin-top:8px}.meta{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:500;color:var(--ink2);margin-top:10px}.exp{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:14px;color:var(--ink2);margin:14px 0 28px}.logos{display:flex;gap:8px}.logo{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff}.l0{background:linear-gradient(135deg,#f59e0b,#ef4444 60%,#3b82f6)}.l1{background:#111}.l2{background:#ec4899}.l3{background:#84cc16;color:#111}.cta-row{display:flex;gap:10px;width:100%;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:14px;align-items:center}.tabs{display:flex;flex-direction:column;width:100%;gap:6px}.tab{display:flex;align-items:center;gap:18px;padding:10px 14px;border-radius:10px;font-size:16px;font-weight:500;color:var(--muted);transition:background .2s,color .2s,transform .2s}.tab:hover{background:#efefed;color:var(--ink);transform:translate(2px)}.tab.active{color:var(--ink);font-weight:700}.tab.active svg{fill:var(--ink)}.content{padding:0 24px 80px;animation:fade .4s ease}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.narrow{max-width:1240px;margin:0 auto;padding-top:48px}.hero-id{display:flex;align-items:center;gap:20px;margin-bottom:44px}.hero-name{font-size:28px;font-weight:400;letter-spacing:-.5px}.hero-sub{font-size:14px;color:var(--muted);margin-top:6px}.slash{margin:0 12px}.headline{font-size:28px;line-height:1.25;font-weight:500;letter-spacing:-.8px;color:var(--ink2);margin-bottom:28px}.lead{font-size:16px;line-height:1.7;color:var(--ink2);margin-bottom:14px}.lead.big{font-size:18px}.hero-cta{display:flex;align-items:center;gap:18px;margin:32px 0 56px}.ulink{font-size:16px;font-weight:500;border-bottom:1px solid #aaa;padding-bottom:2px;transition:border-color .2s}.ulink:hover{border-color:var(--ink)}.ulink.sm{font-size:14px;color:var(--ink2)}.hero-cols{display:flex;gap:40px;justify-content:space-between;padding-bottom:28px;border-bottom:1px solid #e0dccb}.label{font-size:14px;color:var(--muted);margin-bottom:10px;font-weight:400}h3.label{font-weight:500}.co{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ink2)}.co-row{display:flex;gap:24px;flex-wrap:wrap}.mini{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff}.hero-foot{display:flex;justify-content:space-between;align-items:center;padding-top:22px}.socials{display:flex;gap:16px}.social{width:fit-content;height:22px;padding:0 1em;border:1.5px solid #666;border-radius:6px;display:grid;place-items:center;font-size:9px;font-weight:700;text-transform:uppercase;color:#555;transition:background .2s,color .2s}.social:hover{background:var(--ink);color:#fff}.status{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--ink2);background:#ebebe8;padding:6px 12px;border-radius:100px}.dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse 1.8s infinite}@keyframes pulse{0%{box-shadow:0 0 #34d39999}70%{box-shadow:0 0 0 7px #34d39900}to{box-shadow:0 0 #34d39900}}.selected{margin-top:90px}.sel-head{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid #ddd;margin-bottom:28px}.sel-head h2{font-size:32px;font-weight:600;letter-spacing:-.8px;color:var(--ink2)}.sm{font-size:14px}.muted{color:var(--muted)}.works{display:flex;gap:4%;overflow-x:auto;scroll-snap-type:none;scrollbar-width:none;padding-bottom:4px}.works::-webkit-scrollbar{display:none}.work{flex:0 0 48%;scroll-snap-align:start;animation:fade .5s ease both;cursor:pointer}button.ulink{background:none;border-top:none;border-left:none;border-right:none;font-family:inherit;cursor:pointer;color:inherit}.shot{aspect-ratio:16/10;border-radius:20px;border:1px solid rgba(0,0,0,.08);padding:6% 7% 0;display:flex;align-items:flex-end;overflow:hidden;transition:transform .4s,box-shadow .4s}.work:hover .shot{transform:translateY(-4px);box-shadow:0 24px 50px #00000024}.mock{width:100%;height:88%;background:#15161c;border-radius:12px 12px 0 0;padding:12px;box-shadow:0 -4px 30px #0003;transition:transform .5s}.work:hover .mock{transform:translateY(-8px)}.mock-bar{display:flex;gap:5px;margin-bottom:14px}.mock-bar i{width:7px;height:7px;border-radius:50%;background:#3a3b46}.mock-body{display:grid;gap:8px}.mock-body b{height:10px;border-radius:4px;background:#2a2b35}.mock-body b:nth-child(1){width:40%;background:#4a4b5a}.mock-body b:nth-child(2){width:85%}.mock-body b:nth-child(3){width:65%}.work-info{display:grid;grid-template-columns:70% 30%;gap:8px;padding:16px 4px 0}.work-info h3{font-size:18px;font-weight:600;margin-bottom:4px;align-self:flex-end}.work-info p{font-size:14px;color:var(--muted);line-height:1.5;grid-column:1/3}.tag{width:fit-content;font-size:12px;font-weight:500;padding:5px 12px;border:1px solid var(--line);border-radius:100px;color:var(--muted);background:#fafaf9;white-space:nowrap;height:fit-content;text-align:center;justify-self:flex-end}.tag.lg{font-size:14px;padding:8px 16px;color:var(--ink2)}.tag.link{transition:background .2s,color .2s}.tag.link:hover{background:var(--ink);color:#fff}.chips{display:flex;flex-wrap:wrap;gap:10px}.mt{margin:36px 0 12px}.cs-list{display:flex;flex-direction:column;gap:16px}.cs{display:grid;grid-template-columns:52px 1fr 28px;align-items:center;gap:14px;padding:22px;background:#fafaf9;border:1px solid var(--line);border-radius:18px;transition:background .2s,transform .2s;cursor:pointer}.cs:hover{background:#fff;transform:translate(4px)}.cs-num{font-size:28px;font-weight:300;color:var(--muted)}.cs h3{font-size:18px;margin-bottom:6px}.cs p{font-size:14px;color:var(--muted);line-height:1.5;margin-bottom:10px}.cs-meta{display:flex;gap:8px}.arrow{font-size:22px;color:var(--muted);transition:transform .2s}.cs:hover .arrow{transform:translate(3px,-3px);color:var(--ink)}@media (max-width: 991px){.layout{grid-template-columns:1fr}.sidebar{position:static;height:auto;align-items:stretch;text-align:left;border-right:none;padding:20px 16px 0;background:transparent}.side-top,.avatar-wrap,.exp{align-items:flex-start}.exp{margin-bottom:20px}.cta-row{border-bottom:none;padding-bottom:0}.tabs{flex-direction:row;gap:0;border-bottom:1px solid var(--line);margin-top:8px}.tab{flex:none;border-radius:0;padding:12px 16px;font-size:16px;border-bottom:2px solid transparent}.tab svg{display:none}.tab:hover{transform:none;background:transparent}.tab.active{border-bottom-color:var(--ink)}.brand,.nav-cta{width:auto}.narrow{padding-top:32px}}@media (max-width: 767px){.hide-mobile{display:none}.content{padding:0 16px 60px}.hero-cols{flex-direction:column;gap:24px}.headline{font-size:24px}.work-info{flex-direction:column;display:flex}}.about-sec{margin-bottom:32px}.about-title{font-size:18px;font-weight:600;letter-spacing:-.3px;color:var(--ink2);margin-bottom:14px}.about-list{list-style:none;display:flex;flex-direction:column;gap:12px}.about-list li{position:relative;padding-left:20px;font-size:15px;line-height:1.65;color:var(--ink2)}.about-list li:before{content:"";position:absolute;left:4px;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--ink)}.about-list strong{font-weight:600;color:var(--ink)}.logo.img,.mini.img{object-fit:cover;background:#fff;border:1px solid var(--line)}.mini.img{border-radius:6px}.shot.has-img{padding:0;background:#f0f0ee}.shot.has-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.work:hover .shot.has-img img{transform:scale(1.03)}.shot.has-img{padding:3%;align-items:center;justify-content:center}.shot.has-img img{width:100%;height:auto;max-height:100%;object-fit:contain;border-radius:10px;box-shadow:0 12px 36px #0003}#selected .work:nth-child(2) .shot.has-img img,#selected .work:nth-child(3) .shot.has-img img,#project-management .work:nth-child(1) .shot.has-img img,#project-management .work:nth-child(2) .shot.has-img img{box-shadow:unset}.work:hover .shot.has-img img{transform:scale(1.02)}.works{cursor:grab;user-select:none;-webkit-user-select:none}.works.dragging{cursor:grabbing}.works img{-webkit-user-drag:none;pointer-events:none}.avatar,.brand-mark{overflow:hidden;background:#e9e9e6}.avatar img,.brand-mark img{width:100%;height:100%;object-fit:cover;display:block}.brand-mark{border-radius:50%}.how{margin-top:90px}.how h2{font-size:32px;font-weight:600;letter-spacing:-.8px;color:var(--ink2)}.how-sub{font-size:15px;color:var(--muted);margin:10px 0 24px;padding-bottom:22px;border-bottom:1px solid #ddd}.how-grid{display:grid;grid-template-columns:repeat(3,1fr)}.how-col{display:flex;flex-direction:column;gap:14px;padding:8px 22px;border-left:1px solid #ddd}.how-col:first-child{border-left:none;padding-left:0}.how-col:last-child{padding-right:0}.how-col svg{margin-bottom:14px;transition:transform .35s}.how-col:hover svg{transform:translateY(-4px) rotate(-2deg)}.how-col h3{font-size:18px;font-weight:500;color:var(--ink2)}.how-col p{font-size:14px;line-height:1.65;color:var(--ink2);flex:1}.how-tags{font-size:12px;color:#9a6b55;margin-top:10px}@media (max-width: 767px){.how-grid{grid-template-columns:1fr;gap:28px}.how-col,.how-col:first-child,.how-col:last-child{border-left:none;padding:0}}.resume{max-width:900px;margin:0 auto;padding:40px 24px 100px;color:var(--ink);animation:fade .4s ease}.resume-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.resume h1{font-size:32px;font-weight:600;letter-spacing:-.8px;color:var(--ink2);padding-bottom:20px;border-bottom:1px solid #ddd}.exp-row{display:grid;grid-template-columns:64px 1fr;gap:18px;padding:34px 0;border-bottom:1px solid #ddd}.exp-logo{width:48px;height:48px;border-radius:12px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;overflow:hidden;font-weight:700;color:var(--ink2)}.exp-logo img{width:100%;height:100%;object-fit:cover}.exp-main h2{font-size:15px;font-weight:500;color:var(--ink2);line-height:1.5}.exp-co{margin-left:6px;color:var(--muted);border-bottom:1px solid #bbb}.exp-date{display:inline-block;margin-top:8px;font-size:12px;color:var(--muted);background:#ebebe8;padding:2px 10px;border-radius:6px}.exp-tags{display:flex;flex-wrap:wrap;gap:14px;margin:22px 0 18px;font-size:13px;font-weight:500;color:#9a6b55}.exp-main ul{list-style:none;display:flex;flex-direction:column;gap:14px}.exp-main li{position:relative;padding-left:26px;font-size:14.5px;line-height:1.55;color:var(--ink2)}.exp-main li:before{content:"";position:absolute;left:2px;top:.5em;width:7px;height:7px;border-radius:50%;background:#9a6b55;box-shadow:0 0 0 3px #efe3dd}@media (max-width: 600px){.exp-row{grid-template-columns:1fr}}@media print{.nav,.resume-bar{display:none}body{background:#fff}}.frontend-hide{margin-bottom:5em}.get-in-touch-cta{display:flex;flex-direction:column;gap:1em;margin-top:2em}.get-in-touch-cta .ulink{width:fit-content}.frontend-hide{display:none}@media print{.frontend-hide{display:block;margin-bottom:2em}}@page{margin:0}@media print{body{padding:5mm 16mm}#education{padding-top:5mm}}.edu-title{margin-top:48px}.edu-row{padding:22px 0}.edu-row h2{font-size:15px;font-weight:500;color:var(--ink2)}.edu-meta{margin-top:6px;font-size:13px;color:var(--muted)}.csd{max-width:662px;margin:0 auto;padding:40px 20px 96px;animation:csdIn .4s ease both}@keyframes csdIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.csd-crumb{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted);margin-bottom:28px}.csd-crumb a:hover{color:var(--ink)}.csd-crumb-cur{color:var(--ink);font-weight:500}.csd-title{font-size:clamp(36px,6vw,48px);line-height:1.1;letter-spacing:-.02em;font-weight:500;color:var(--ink2);margin-bottom:32px}.csd-intro{font-size:15px;line-height:1.7;color:var(--ink2);margin-bottom:32px}.csd-meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0}.csd-row{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:10px 0;font-size:14px;line-height:1.5}.csd-row dt{display:flex;align-items:flex-start;gap:8px;color:var(--muted)}.csd-row dt svg{margin-top:2px;flex:none}.csd-row dd{color:var(--ink2)}.csd-body{margin-top:56px;display:flex;flex-direction:column;gap:56px}.csd-block h2{font-size:24px;font-weight:500;letter-spacing:-.01em;margin-bottom:12px}.csd-block p{font-size:15px;line-height:1.7;color:var(--ink2)}.csd-block img{width:100%;display:block;margin-top:24px;border-radius:12px;border:1px solid var(--line)}@media (max-width: 560px){.csd-row{grid-template-columns:90px 1fr}}.csd-block h3{font-size:19px;font-weight:500;margin-bottom:10px}.csd-list{margin-top:14px;padding-left:20px;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.7;color:var(--ink2)}.csd-list li::marker{color:var(--muted)}.csd-list strong{font-weight:600;color:var(--ink)}.csd-body{gap:44px}.csd-figs{display:flex;flex-direction:column;gap:28px;margin-top:24px}.csd-fig img{margin-top:0}.csd-fig figcaption{margin-bottom:10px;font-size:13px;color:var(--muted)}.csd-fig-empty{display:grid;place-items:center;aspect-ratio:16 / 9;border:1px dashed var(--line);border-radius:12px;font-size:13px;color:var(--muted);background:var(--white)}html,body{overflow-x:clip;max-width:100%}.layout>*,.content,.narrow,.selected{min-width:0}.works{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}@media (max-width: 991px){.layout{grid-template-columns:minmax(0,1fr)}.tabs{overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}}@media (max-width: 767px){.work{flex:0 0 86%;max-width:86%}.work-info h3{font-size:17px;width:100%}.sel-head{gap:12px;flex-wrap:wrap}.sel-head h2,.how h2{font-size:26px}.how{margin-top:56px}.nav{padding:0 16px}.cs{gap:14px}}
