@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");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:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}:root{--bg:#fcfcfd;--surface:#ffffff;--border:#eceef1;--border-soft:#f1f3f5;--text:#17181c;--text-body:#52555e;--text-muted:#8a8f98;--text-faint:#b3b8c0;--blue:#2978f3;--blue-dark:#1c5fd0;--orange:#ff5324;--green:#0e9c6c;--yellow:#f0cd3e;--radius-card:14px;--ease:cubic-bezier(0.22,1,0.36,1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-inter),-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.65}.page{max-width:720px;margin:0 auto;padding:48px 24px 0}.case-page{padding-bottom:92px}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease);will-change:opacity,transform}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}.header{justify-content:space-between;margin-bottom:56px;gap:12px}.header,.identity{display:flex;align-items:center}.identity{gap:16px}.avatar{width:88px;height:88px;border-radius:50%;object-fit:cover;object-position:center top;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border),0 2px 8px rgba(16,24,40,.08)}.identity-name{font-size:21px;font-weight:700;line-height:1.35;letter-spacing:-.01em}.identity-role{font-size:13px;color:var(--text-muted);line-height:1.35}.header-actions{display:flex;gap:8px;align-items:center}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:10px;font-family:inherit;font-size:13px;font-weight:500;text-decoration:none;border:1px solid transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-outline{background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:0 1px 2px rgba(16,24,40,.04)}.btn-outline:hover{border-color:#dcdfe4;box-shadow:0 3px 8px rgba(16,24,40,.07)}.btn-primary{background:var(--blue);border:1px solid var(--blue);color:#fff;box-shadow:0 1px 2px rgba(41,120,243,.25)}.btn-primary:hover{background:var(--blue-dark);border-color:var(--blue-dark);box-shadow:0 4px 12px rgba(41,120,243,.32)}.btn-resume{border-color:#dcdfe4;color:#52555e}.btn-resume svg{color:#8a8f98}.btn-resume:hover{border-color:#c9ced6;box-shadow:0 4px 12px rgba(16,24,40,.1)}.btn-email{background:var(--green);border:1px solid var(--green);color:#fff;box-shadow:0 2px 8px rgba(14,156,108,.24)}.btn-email:hover{background:#0a835a;border-color:#0a835a;box-shadow:0 5px 14px rgba(14,156,108,.32)}.btn-icon[data-variant=linkedin]{background:#0a66c2;border-color:#0a66c2;color:#fff;box-shadow:0 2px 8px rgba(10,102,194,.18)}.btn-icon[data-variant=linkedin]:hover{background:#084f98;border-color:#084f98;color:#fff;box-shadow:0 5px 14px rgba(10,102,194,.28)}.btn-lg{padding:11px 22px;font-size:13.5px}.btn-lg svg{transition:transform .2s var(--ease)}.btn-lg:hover svg{transform:translateX(3px)}.btn-icon{width:38px;height:38px;justify-content:center;padding:0}.contact-popover-wrap{position:fixed;inset:0;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:88px 18px 24px}.contact-backdrop{position:absolute;inset:0;border:0;background:rgba(23,24,28,.16);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.contact-popover{position:relative;width:min(420px,100%);padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:0 20px 50px rgba(16,24,40,.22)}.contact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.contact-head h2{font-size:17px;line-height:1.3;letter-spacing:-.01em}.contact-head p{color:var(--text-muted);font-size:13px;line-height:1.45;margin-top:4px}.contact-close{width:32px;height:32px;border:1px solid var(--border);border-radius:9px;background:var(--surface);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.contact-close:hover{color:var(--text);border-color:#dcdfe4}.contact-form{gap:13px}.contact-form,.contact-form label{display:flex;flex-direction:column}.contact-form label{gap:6px;color:var(--text);font-size:12.5px;font-weight:600}.contact-form input,.contact-form textarea{width:100%;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);font:inherit;font-size:13.5px;line-height:1.45;padding:10px 11px;outline:none;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.contact-form textarea{resize:vertical}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(14,156,108,.12)}.contact-form input:disabled,.contact-form textarea:disabled{color:var(--text-muted);background:#f7f8f9;cursor:not-allowed}.contact-status{border-radius:10px;font-size:13px;line-height:1.45}.contact-status.success{display:flex;flex-direction:column;gap:10px;padding:14px;background:rgba(14,156,108,.08);border:1px solid rgba(14,156,108,.24);color:#075f42}.contact-status.success strong{color:var(--text);font-size:14px}.contact-status.error{padding:10px 11px;background:rgba(204,55,55,.08);border:1px solid rgba(204,55,55,.22);color:#9b2424}.contact-submit{justify-content:center;margin-top:3px;background:var(--green);border-color:var(--green);box-shadow:0 2px 8px rgba(14,156,108,.24)}.contact-submit:hover{background:#0a835a;border-color:#0a835a}.contact-submit:disabled{opacity:.72;cursor:wait;transform:none}.back-link{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text);text-decoration:none}.back-link svg{transition:transform .2s var(--ease)}.back-link:hover svg{transform:translateX(-3px)}.floating-work-nav{position:fixed;left:50%;bottom:22px;z-index:20;gap:4px;padding:5px;background:rgba(255,255,255,.88);border:1px solid rgba(236,238,241,.92);box-shadow:0 12px 32px rgba(16,24,40,.14);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform:translateX(-50%)}.floating-work-link,.floating-work-nav{display:inline-flex;align-items:center;border-radius:999px}.floating-work-link{justify-content:center;gap:7px;min-width:98px;min-height:38px;padding:0 14px;color:var(--text-muted);font-size:12.5px;font-weight:600;line-height:1;text-decoration:none;transition:background .2s var(--ease),color .2s var(--ease),transform .2s var(--ease)}.floating-work-link:hover{background:var(--text);color:#fff;transform:translateY(-1px)}.hero{margin-bottom:36px}.hero h1{font-size:29px;font-weight:700;letter-spacing:-.02em;line-height:1.35}.hero h1 .accent{color:var(--text-faint)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin-bottom:40px}.stat{padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}.stat:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(16,24,40,.07)}.stat-value{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-label{font-size:12px;color:var(--text-muted);line-height:1.45;margin-top:4px}.intro p{color:var(--text-body);max-width:620px}.intro p+p{margin-top:18px}.inline-link{color:var(--blue);font-weight:600;text-decoration:none;text-underline-offset:3px}.inline-link:hover{color:var(--blue-dark);text-decoration:underline}.section{margin-top:64px}.section-title{font-size:16px;font-weight:600;letter-spacing:-.01em;margin-bottom:20px}.section-hint{font-size:12px;color:var(--text-faint);margin-top:12px;text-align:center}.exp-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;align-items:start}.exp-card{width:100%;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);font-family:inherit;text-align:left}.exp-card-top{display:flex;align-items:flex-start;gap:12px}.exp-card-heading{flex:1 1;min-width:0}.exp-icon{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;border:1px solid var(--border-soft);background:#fff}.exp-icon img{width:70%;height:70%;object-fit:contain}.exp-icon.wide{width:50px;border-radius:12px;padding:5px}.exp-icon img.full,.exp-icon.wide img{width:100%;height:100%}.exp-icon img.full{object-fit:cover}.exp-icon img.invert{width:56%;height:56%;filter:brightness(0) invert(1)}.exp-title{font-size:14.5px;font-weight:600;line-height:1.4}.exp-company{font-size:13.75px;color:var(--text-muted);line-height:1.4}.exp-dates{font-size:12.75px;color:var(--text-faint);margin-top:3px}.exp-details{display:grid;grid-template-rows:1fr}.exp-details-inner{overflow:hidden}.exp-details ul{margin-top:14px;padding-left:16px;display:flex;flex-direction:column;gap:7px}.exp-details li{font-size:13.25px;color:var(--text-body);line-height:1.55}.exp-details li::marker{color:var(--blue)}.projects-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:28px 24px;gap:28px 24px}.project-card{display:block;text-decoration:none;color:inherit}.project-thumb-wrap{display:block;border-radius:10px;overflow:hidden;border:1px solid var(--border-soft);transition:box-shadow .3s var(--ease)}.project-card:hover .project-thumb-wrap{box-shadow:0 10px 24px rgba(16,24,40,.12)}.project-thumb{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .5s var(--ease)}.project-card:hover .project-thumb{transform:scale(1.04)}.project-thumb.contain{object-fit:contain;background:#fff;padding:8%}.project-name{display:block;font-size:13.5px;font-weight:600;margin-top:12px;transition:color .2s var(--ease)}.project-card:hover .project-name{color:var(--blue)}.project-desc{display:block;font-size:13px;color:var(--text-muted);margin-top:1px}.view-more-wrap{display:flex;justify-content:center;margin-top:36px}.rows{flex-direction:column}.row,.rows{display:flex}.row{align-items:baseline;justify-content:space-between;gap:16px;padding:11px 4px;border-top:1px solid transparent;border-radius:6px;transition:background .2s var(--ease),padding-left .25s var(--ease)}.reveal+.reveal .row,.reveal~.reveal .row{border-top-color:var(--border-soft)}.row:hover{background:#f6f8fb;padding-left:10px}.row-main{font-size:13.5px}.row-main strong{font-weight:600;margin-right:8px}.row-main span{color:var(--text-muted);font-weight:400}.stack-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:22px 24px;gap:22px 24px}.stack-item{display:flex;align-items:center;gap:13px}.stack-icon{width:40px;height:40px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .25s var(--ease)}.stack-item:hover .stack-icon{transform:translateY(-2px) scale(1.06)}.stack-icon.bordered{border:1px solid var(--border);background:var(--surface)}.stack-icon-img{width:72%;height:72%;object-fit:contain;display:block}.stack-name{font-size:13.5px;font-weight:600;line-height:1.4}.stack-desc{font-size:13px;color:var(--text-muted);line-height:1.4}.edu-card{display:flex;align-items:flex-start;gap:22px;padding:22px 24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}.edu-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(16,24,40,.06)}.edu-logo-wrap{flex:0 0 auto}.edu-logo{display:block;width:92px;height:92px;border-radius:50%;object-fit:cover;object-position:center}.edu-copy{min-width:0}.edu-degree{font-size:14.5px;color:var(--text);font-weight:600;margin-bottom:4px}.edu-school{font-size:13.5px;color:var(--text-muted);font-weight:500}.edu-dates{font-size:12px;color:var(--text-faint);margin-bottom:10px}.edu-card p{font-size:13.5px}.edu-card p,.summary p{color:var(--text-body)}.summary p+p{margin-top:18px}.summary-signature{display:block;height:34px;margin-top:26px}.summary-footer{display:flex;align-items:center;justify-content:flex-start;margin-top:28px}.socials{display:flex;gap:10px}.social-btn{width:34px;height:34px;border-radius:9px;border:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}.social-btn:hover{color:var(--blue);border-color:var(--blue);transform:translateY(-2px);box-shadow:0 4px 10px rgba(41,120,243,.15)}.signature{height:32px;width:auto}.case-hero{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-card);border:1px solid var(--border-soft);display:block}.case-head{margin-top:36px}.case-head h1{font-size:27px;font-weight:700;letter-spacing:-.02em;line-height:1.3;margin-bottom:14px}.case-intro{color:var(--text-body);font-size:14.5px}.case-meta{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;margin-top:28px;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card)}.case-meta-label{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin-bottom:2px}.case-meta-value{font-size:13px;font-weight:600}.case-section{margin-top:44px}.case-section p{color:var(--text-body);max-width:640px}.case-gallery{margin-top:48px;display:flex;flex-direction:column;gap:20px}.case-img{width:100%;border-radius:10px;border:1px solid var(--border-soft);display:block}.case-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;align-items:start}.case-grid .case-img{aspect-ratio:1/1;object-fit:cover}.case-nav{display:flex;justify-content:space-between;gap:14px;margin-top:64px}.case-nav-link{flex:1 1;padding:16px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);text-decoration:none;color:inherit;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}.case-nav-link:hover{transform:translateY(-2px);border-color:var(--blue);box-shadow:0 6px 16px rgba(41,120,243,.1)}.case-nav-link.next{text-align:right}.case-nav-label{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.case-nav-name{display:block;font-size:13.5px;font-weight:600;margin-top:2px}.footer{display:flex;align-items:center;justify-content:space-between;margin-top:88px;padding:28px 0 36px;font-size:12px;color:var(--text-faint)}.footer a{color:inherit;text-decoration:none}.footer a:hover{color:var(--text-muted)}@media (max-width:620px){.page{padding-top:32px}.case-page{padding-bottom:88px}.header{margin-bottom:40px;align-items:flex-start}.header-actions{flex-wrap:wrap;justify-content:flex-end}.identity{gap:12px}.identity-name{font-size:18px}.hero h1{font-size:24px}.stats-grid{grid-template-columns:1fr 1fr}.exp-grid,.projects-grid,.stack-grid{grid-template-columns:1fr}.section{margin-top:52px}.edu-card{flex-direction:column;gap:16px}.edu-logo{width:82px;height:82px}.case-meta{grid-template-columns:1fr;gap:12px}.case-nav{flex-direction:column}.case-nav-link.next{text-align:left}.floating-work-nav{bottom:14px;width:calc(100% - 32px);justify-content:center}.floating-work-link{flex:1 1;min-width:0}.avatar{width:64px;height:64px}.signature{height:28px}}