:root{--paper: #f7f8fa;--white: #fff;--ink: #1d1d1f;--text-2: #565a62;--text-3: #62666e;--hairline: #e5e6e9;--blue: #2762cf;--ease: cubic-bezier(.2, .8, .2, 1)}.site *,.site *:before,.site *:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--ink);font:400 16px/1.55 -apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}.site a{color:inherit;text-decoration:none}.site button{font:inherit;cursor:pointer}.site button:focus-visible,.site a:focus-visible,.site summary:focus-visible,.site [tabindex]:focus-visible{outline:3px solid #4f85e9;outline-offset:4px}.wrap{width:min(1160px,calc(100% - 56px));margin:0 auto}.site-nav{position:sticky;top:0;z-index:10;background:#f7f8fad1;border-bottom:1px solid rgba(215,218,223,.62);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.nav-inner{display:flex;align-items:center;justify-content:space-between;min-height:70px;gap:26px}.brand{display:flex;align-items:center;gap:9px;font-weight:650;font-size:15px;letter-spacing:-.035em;white-space:nowrap}.brand-mark{display:grid;place-items:center;height:29px;width:29px;background:#26262b;color:#fff;border-radius:9px;font-size:10px;font-weight:800;letter-spacing:-.06em}.nav-links{display:flex;align-items:center;gap:30px;color:#4a4d54;font-size:13px;letter-spacing:.01em}.nav-links a{transition:color .18s}.nav-links a:hover{color:var(--blue)}.nav-links .contact-link{padding:9px 17px;color:#fff;background:#242429;border-radius:999px;font-weight:600}.nav-links .contact-link:hover{color:#fff;background:var(--blue)}.hero{position:relative;isolation:isolate;overflow:hidden;min-height:min(780px,calc(100svh - 70px));display:grid;align-items:center;background:linear-gradient(180deg,#fafbfc,#f8f9fb 62%,#f1f5fa);text-align:center}.hero:before{content:"";position:absolute;z-index:-1;inset:-20% -10% auto;height:87%;pointer-events:none;background:radial-gradient(ellipse 38% 50% at 18% 48%,rgba(187,205,235,.17),transparent 100%),radial-gradient(ellipse 35% 60% at 84% 68%,rgba(173,201,240,.2),transparent 100%);filter:blur(45px)}.hero:after{content:"";position:absolute;bottom:0;width:100%;height:1px;background:#eceef2}.hero-content{padding-top:70px;padding-bottom:104px;max-width:900px}.hero-eyebrow{margin:0 0 32px;color:var(--text-2);font-weight:570;letter-spacing:.1em;text-transform:uppercase;font-size:11px}.signature{display:flex;justify-content:center;align-items:center;min-height:174px;margin:0;font-size:clamp(64px,10.7vw,132px);font-weight:740;line-height:1.08;letter-spacing:-.075em;white-space:nowrap;color:#21252b}.signature-wrap{display:inline-block;position:relative}.signature-underline{display:block;position:absolute;width:74%;height:27px;left:13%;bottom:-15px;overflow:visible}.signature-underline path{stroke:#3b6ebb;stroke-width:4;stroke-linecap:round;fill:none;stroke-dasharray:850;stroke-dashoffset:850;animation:draw-line 1s .55s var(--ease) forwards}.hero-role{display:grid;align-items:center;justify-items:center;min-height:69px;margin-top:27px;color:#444850;font-weight:480;letter-spacing:-.025em;font-size:clamp(21px,2.65vw,29px)}.hero-role span{display:block;transition:opacity .25s,transform .35s var(--ease);opacity:1;transform:translateY(0)}.hero-role span.changing{opacity:0;transform:translateY(8px)}.hero-description{color:var(--text-2);max-width:590px;margin:18px auto 29px;font-size:clamp(15px,1.6vw,18px);line-height:1.7;letter-spacing:-.013em}.hero-actions{display:flex;justify-content:center;gap:12px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;justify-content:center;align-items:center;min-height:44px;border:1px solid #d0d4db;padding:10px 22px;border-radius:999px;background:#fff;color:#2c3036;font-size:14px;font-weight:600;transition:transform .2s,box-shadow .2s,background .2s}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px #283d5a14}.btn.primary{background:#2e62be;color:#fff;border-color:#2e62be}.btn.primary:hover{background:#2452a1}.hero-stack{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:27px;color:var(--text-3);font-size:12px;letter-spacing:.02em}.hero-stack span+span:before{content:"·";margin-right:10px}.scroll-hint{position:absolute;bottom:28px;left:50%;transform:translate(-50%);color:var(--text-3);display:flex;align-items:center;flex-direction:column;gap:8px;font-size:11px;letter-spacing:.15em;text-transform:uppercase}.scroll-hint svg{width:14px;height:14px}@keyframes draw-line{to{stroke-dashoffset:0}}section.content{scroll-margin-top:60px;padding:100px 0}.soft{background:var(--paper)}.section-meta{display:flex;gap:22px;justify-content:space-between;align-items:end;margin-bottom:45px}.label{color:#556072;text-transform:uppercase;letter-spacing:.17em;font-weight:700;font-size:11px;margin-bottom:15px}.site h2{font-size:clamp(32px,4vw,53px);font-weight:675;letter-spacing:-.055em;line-height:1.08;margin:0}.section-intro{color:var(--text-2);font-size:15px;max-width:360px;line-height:1.7;margin:0 0 2px}.experience-list{border-top:1px solid var(--hairline)}.experience-item{display:grid;grid-template-columns:225px minmax(0,1fr) 160px;gap:25px;padding:30px 0;border-bottom:1px solid var(--hairline)}.experience-dates{font-size:12px;color:var(--text-3);margin-top:6px;font-weight:600}.experience-main h3{font-size:21px;letter-spacing:-.035em;line-height:1.25;margin:0 0 5px}.position{color:#34598a;font-size:13px;font-weight:650;margin:0 0 9px}.experience-main p:not(.position){font-size:14px;line-height:1.75;color:var(--text-2);margin:0}.impact{justify-self:end;color:#3866ab;align-self:center;text-align:right}.impact strong{display:block;font-size:27px;font-weight:650;letter-spacing:-.05em;line-height:1}.impact small{display:block;color:var(--text-3);font-size:11px;line-height:1.5;margin-top:7px;max-width:155px}.skills{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px;padding:0;list-style:none}.skills li{padding:8px 13px;border-radius:999px;color:var(--text-2);border:1px solid #dde1e8;background:#fbfbfc;font-size:12px}.projects{border:1px solid #e1e4eb;border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 22px 45px #222d4209}.tab-list{display:flex;align-items:stretch;overflow-x:auto;border-bottom:1px solid #e2e6eb;background:#f3f5f8;scrollbar-width:thin}.tab{flex:0 0 auto;position:relative;background:transparent;border:0;border-right:1px solid #e6e9ee;min-height:56px;padding:0 23px;color:var(--text-2);font-size:13px;font-weight:550;white-space:nowrap;transition:background .18s,color .18s}.tab:hover{background:#fafbfd;color:#20252c}.tab[aria-selected=true]{background:#fff;color:#252b34;font-weight:680}.tab[aria-selected=true]:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--blue)}.tab-panel{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);min-height:390px}.preview-pane{background:#f6f8fb;padding:24px;border-right:1px solid #e7eaf0;min-width:0}.preview-window{width:100%;height:100%;min-height:335px;border:1px solid #dfe5ed;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 15px 30px #192a420a}.preview-bar{background:#fbfcfd;border-bottom:1px solid #e8ebef;padding:10px 14px;display:flex;gap:8px;align-items:center;justify-content:space-between;min-height:40px}.dots{display:flex;gap:6px}.dots i{height:7px;width:7px;display:block;border-radius:50%;background:#d2d7de}.preview-url{font-size:11px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-body{height:296px;position:relative;overflow:hidden}.preview-body iframe,.preview-body img{height:100%;width:100%;border:0;display:block;background:#fff}.preview-body img{object-fit:cover;object-position:top}.illustration-preview{height:100%;padding:30px;background:linear-gradient(135deg,#e3ecf8,#f9faf7);display:flex;justify-content:center;align-items:center;text-align:center}.illustration-preview h4{margin:0 0 8px;font-size:28px;letter-spacing:-.04em}.illustration-preview p{color:var(--text-2);max-width:270px;font-size:13px;margin:0 auto}.project-info{display:flex;flex-direction:column;justify-content:center;padding:40px;min-width:0}.project-info .type{color:#4c5f75;text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:750;margin:0 0 13px}.project-info h3{font-size:clamp(28px,3vw,40px);letter-spacing:-.055em;margin:0 0 12px;line-height:1.1}.project-info p{color:var(--text-2);line-height:1.75;font-size:15px;margin:0 0 18px}.project-info details{margin:0 0 20px;color:var(--text-2);font-size:13px;line-height:1.7}.project-info summary{cursor:pointer;font-weight:600;color:var(--ink);margin-bottom:8px}.project-links{display:flex;gap:20px;flex-wrap:wrap}.text-link{color:var(--blue);font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:7px}.text-link:hover{text-decoration:underline}.project-info .embed-tip{font-size:12px;color:var(--text-3);margin:24px 0 0}.about-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(35px,8vw,130px);align-items:start}.about-layout p{color:#4f535b;font-size:18px;line-height:1.85;margin:0 0 20px}.about-layout .aside{color:var(--text-3);font-size:13px;padding-top:8px;line-height:1.9}.contact{text-align:center;padding:100px 0!important;background:linear-gradient(180deg,#f6f8fb,#eef3f9)}.contact h2{margin-bottom:18px}.contact p{max-width:530px;margin:0 auto 28px;font-size:16px;color:var(--text-2);line-height:1.7}.foot{border-top:1px solid #e8ebee;padding:22px 0;font-size:12px;color:var(--text-3);background:#fff}.foot-inner{display:flex;justify-content:space-between;gap:20px;align-items:center}.foot a:hover{color:var(--blue)}@media (max-width: 900px){.section-meta{align-items:start;flex-direction:column;gap:16px}.experience-item{grid-template-columns:165px minmax(0,1fr);gap:20px}.impact{grid-column:2;justify-self:start;text-align:left}.tab-panel{grid-template-columns:1fr}.preview-pane{border-right:0;border-bottom:1px solid #e7eaf0}}@media (max-width: 600px){.wrap{width:min(100% - 36px,1160px)}.nav-inner{min-height:60px}.brand{font-size:13px}.nav-links{gap:12px;font-size:12px}.nav-links a:nth-child(2),.nav-links a:nth-child(3){display:none}.nav-links .contact-link{padding:8px 12px}.hero{min-height:690px}.hero-content{padding-top:78px;padding-bottom:106px}.hero-eyebrow{letter-spacing:.045em;line-height:1.6;margin-bottom:28px}.signature{min-height:110px;font-size:clamp(48px,11.9vw,78px);letter-spacing:-.072em}.signature-underline{bottom:-16px;height:17px}.signature-underline path{stroke-width:5}.hero-role{min-height:75px;margin-top:19px;font-size:20px}.hero-description{font-size:15px;margin:12px auto 28px}.hero-stack{font-size:11px;line-height:1.7}.scroll-hint{bottom:24px}section.content{padding:72px 0}.experience-item{display:block;padding:25px 0}.experience-dates{margin:0 0 12px}.experience-main h3{font-size:19px}.impact{text-align:left;margin-top:18px}.tab{padding:0 16px;font-size:12px}.preview-pane{padding:14px}.project-info{padding:25px 22px 31px}.about-layout{grid-template-columns:1fr;gap:0}.contact{padding:78px 0!important}.foot-inner{align-items:start;flex-direction:column;gap:8px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.signature-underline path{stroke-dashoffset:0}}
