@import "https://fonts.googleapis.com/css2?family=Exo:wght@400;500;600;700;800;900&display=swap";.timeline-page{width:100%;max-width:1120px;margin:0 auto}.timeline-intro{margin-bottom:30px}.timeline-intro h1{letter-spacing:-.04em;max-width:900px;margin:0;font-size:42px;font-weight:800;line-height:1.12}.timeline-intro p{color:#666;max-width:760px;margin:18px 0 0;font-size:16px;font-weight:600;line-height:1.6}.timeline-city-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:30px;display:grid}.timeline-city-pill{color:#222;text-align:center;cursor:pointer;background:#f1f1f1;border:none;border-radius:999px;justify-content:center;align-items:center;min-height:50px;padding:10px 18px;font-size:18px;font-weight:800;line-height:1;text-decoration:none;transition:background .2s,color .2s,transform .2s,box-shadow .2s;display:flex}.timeline-city-pill:visited{color:#222}.timeline-city-pill:hover{color:#222;background:#e9e9e9;transform:translateY(-2px)}.timeline-city-pill:visited:hover{color:#222}.timeline-city-pill:focus-visible{outline-offset:3px;outline:3px solid #2f2f2f38}.timeline-card{--timeline-year-col:92px;--timeline-marker-col:32px;--timeline-col-gap:14px;--timeline-line-left:122px;--timeline-item-padding-bottom:34px;--timeline-horizontal-line-offset:18px;background:#f1f1f1;border-radius:30px;padding:34px 34px 38px}.timeline-list{flex-direction:column;display:flex}.timeline-item{grid-template-columns:var(--timeline-year-col) var(--timeline-marker-col) minmax(0, 1fr);column-gap:var(--timeline-col-gap);padding-bottom:var(--timeline-item-padding-bottom);grid-template-rows:auto 38px;row-gap:16px;display:grid;position:relative}.timeline-item:before{content:"";top:0;bottom:calc(-1 * var(--timeline-item-padding-bottom));left:var(--timeline-line-left);background:#d4d4d4;border-radius:999px;width:2px;position:absolute}.timeline-item:after{content:"";left:calc(var(--timeline-year-col) + var(--timeline-marker-col) + var(--timeline-col-gap));right:0;bottom:calc(var(--timeline-horizontal-line-offset) + var(--timeline-item-padding-bottom));background:#d4d4d4;border-radius:999px;height:2px;position:absolute}.timeline-item:last-child:before{bottom:-5px}.timeline-time{grid-area:2/1;align-self:center}.timeline-time span{color:#222;background:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:86px;min-height:38px;padding:8px 16px;font-size:18px;font-weight:800;line-height:1;display:inline-flex}.timeline-marker{z-index:1;grid-area:2/2;justify-content:center;align-items:center;display:flex;position:relative}.timeline-dot{z-index:2;background:#fff;border:3px solid #2f2f2f;border-radius:999px;width:15px;height:15px;position:relative}.timeline-year-content{flex-direction:column;grid-area:1/3;gap:22px;display:flex}.timeline-block{flex-direction:column;gap:14px;display:flex}.timeline-meta-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.timeline-pill{color:#222;background:#fff;border-radius:999px;justify-content:center;align-items:center;min-height:38px;padding:8px 16px;font-size:18px;font-weight:800;line-height:1;display:inline-flex}.timeline-card-grid{gap:22px;display:grid}.timeline-card-grid-double{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.timeline-card-grid-single{grid-template-columns:1fr}.timeline-content-card{background:#fff;border-radius:26px;padding:28px 24px 66px;transition:transform .2s,box-shadow .2s;position:relative}.timeline-card-corner-label{color:#9a9a9a;letter-spacing:.055em;text-transform:uppercase;background:#f1f1f1;border-radius:999px;width:fit-content;padding:7px 11px;font-size:12px;font-weight:800;line-height:1;display:inline-flex;position:absolute;bottom:24px;left:24px}.timeline-entry-list{flex-direction:column;gap:15px;display:flex}.timeline-entry{padding-left:23px;position:relative}.timeline-entry:before{content:"";background:0 0;border:1.5px solid #c6c6c6;border-radius:999px;width:6px;height:6px;position:absolute;top:8px;left:0}.timeline-entry h4{color:#2b2b2b;margin:0;font-size:16px;font-weight:700;line-height:1.42}.timeline-entry p{color:#777;margin:5px 0 0;font-size:14px;font-weight:500;line-height:1.5}.timeline-academia-list{flex-direction:column;gap:18px;display:flex}.timeline-academia-group{flex-direction:column;gap:9px;display:flex}.timeline-academia-label{color:#aaa;letter-spacing:0;margin:0;font-size:16px;font-weight:700;line-height:1.42}.timeline-academia-detail-list{flex-direction:column;gap:8px;display:flex}.timeline-academia-detail{padding-left:23px;position:relative}.timeline-academia-detail:before{content:"";background:0 0;border:1.5px solid #c6c6c6;border-radius:999px;width:6px;height:6px;position:absolute;top:8px;left:0}.timeline-academia-detail p{color:#2b2b2b;margin:0;font-size:16px;font-weight:700;line-height:1.42}@media (width<=1180px){.timeline-intro h1{font-size:38px}.timeline-card{--timeline-year-col:86px;--timeline-marker-col:30px;--timeline-col-gap:12px;--timeline-line-left:113px}.timeline-time span,.timeline-pill{font-size:17px}.timeline-card-grid-double{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}}@media (width<=900px){.timeline-card-grid-double{grid-template-columns:1fr}}@media (width<=700px){.timeline-intro h1{font-size:32px}.timeline-intro p{font-size:15px}.timeline-card{border-radius:26px;padding:24px 20px 26px}.timeline-item{grid-template-rows:36px auto;grid-template-columns:12px minmax(0,1fr);gap:12px 10px;padding-bottom:0;display:grid;position:relative}.timeline-item:before{width:2px;display:block;top:18px;bottom:-26px;left:4px}.timeline-item:after{display:none}.timeline-marker{z-index:2;grid-area:1/1;justify-content:center;align-items:center;display:flex;position:relative;transform:translate(-1px)}.timeline-dot{border-width:2.5px;width:13px;height:13px}.timeline-time{grid-area:1/2;place-self:center start}.timeline-year-content{grid-area:2/2;min-width:0}.timeline-item:not(:last-child){padding-bottom:26px}.timeline-item:last-child:before{display:block;bottom:-18px}.timeline-time span{min-width:auto}.timeline-year-content{gap:20px}.timeline-block{gap:12px}.timeline-time span,.timeline-pill{min-height:36px;padding:8px 14px;font-size:16px}.timeline-content-card{border-radius:24px;padding:24px 20px 62px}.timeline-card-corner-label{bottom:22px;left:20px}.timeline-entry-list{gap:14px}.timeline-entry h4{font-size:15.5px}.timeline-card-corner-label{font-size:12px}}.personal-life-page{width:100%;max-width:1120px;margin:0 auto}.personal-life-intro{margin-bottom:30px}.personal-life-intro h1{letter-spacing:-.04em;max-width:900px;margin:0;font-size:42px;font-weight:800;line-height:1.12}.personal-life-empty-state{text-align:center;background:#f1f1f1;border-radius:30px;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:260px;padding:40px;display:flex}.personal-life-empty-icon{color:#2f2f2f;background:#fff;border-radius:18px;justify-content:center;align-items:center;width:58px;height:58px;display:inline-flex}.personal-life-empty-state p{color:#666;max-width:520px;margin:0;font-size:16px;font-weight:600;line-height:1.6}@media (width<=1180px){.personal-life-intro h1{font-size:38px}}@media (width<=700px){.personal-life-intro h1{font-size:32px}.personal-life-empty-state{border-radius:26px;min-height:220px;padding:32px 24px}}.contact-page{width:100%;max-width:1120px;margin:0 auto}.contact-intro{margin-bottom:30px}.contact-intro h1{letter-spacing:-.04em;margin:0;font-size:42px;font-weight:800;line-height:1.12}.contact-link-list{flex-direction:column;gap:18px;display:flex}.contact-link-card{color:#202020;background:#f1f1f1;border:1px solid #d8d8d8;border-radius:24px;justify-content:space-between;align-items:center;gap:28px;min-height:84px;padding:20px 24px;text-decoration:none;transition:background .2s,transform .2s;display:flex;overflow:hidden}.contact-link-card:hover{background:#e9e9e9;transform:translateY(-2px)}.contact-link-card:focus-visible{outline-offset:4px;outline:3px solid #b8b8b8}.contact-link-main{align-items:center;gap:16px;min-width:0;display:flex}.contact-link-icon{color:#2f2f2f;background:#fff;border-radius:15px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:inline-flex}.contact-link-label{font-size:20px;font-weight:800;line-height:1.2}.contact-link-detail{color:#666;text-align:right;opacity:0;justify-content:flex-end;align-items:center;gap:10px;min-width:0;font-size:15px;font-weight:600;line-height:1.35;transition:opacity .2s,transform .2s,color .2s;display:flex;transform:translate(12px)}.contact-link-card:hover .contact-link-detail,.contact-link-card:focus-visible .contact-link-detail{color:#202020;opacity:1;transform:translate(0)}.contact-link-arrow{color:#fff;background:#2f2f2f;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}@media (width<=1180px){.contact-intro h1{font-size:38px}}@media (width<=700px){.contact-intro h1{font-size:32px}.contact-link-list{gap:14px}.contact-link-card{border-radius:22px;gap:18px;min-height:78px;padding:17px 18px}.contact-link-main{gap:13px}.contact-link-icon{border-radius:14px;width:42px;height:42px}.contact-link-label{font-size:18px}.contact-link-detail{opacity:1;font-size:13px;transform:none}.contact-link-arrow{width:34px;height:34px}}@media (width<=520px){.contact-link-card{flex-direction:column;align-items:flex-start;gap:14px}.contact-link-detail{text-align:left;justify-content:space-between;width:100%}.contact-link-detail span:first-child{overflow-wrap:anywhere;min-width:0}}*{box-sizing:border-box}html,body,#root{color:#202020;background:#fff;min-height:100%;margin:0;font-family:Exo,Arial,Helvetica,sans-serif}body{overflow-x:hidden}button{font-family:inherit}.app-layout{background:#fff;min-height:100vh}.sidebar{color:#fff;background:#1f1f1f;width:420px;height:100vh;padding:36px;position:fixed;top:0;left:0;overflow:hidden}.main-content{min-height:100vh;margin-left:420px;padding:46px 70px 80px;overflow-x:hidden}.sidebar-profile{align-items:stretch;gap:18px;display:flex}.avatar{color:#1f1f1f;background:#eee;border-radius:20px;flex-shrink:0;justify-content:center;align-items:center;width:76px;height:76px;font-size:24px;font-weight:800;display:flex}.profile-text{flex-direction:column;min-height:76px;display:flex}.profile-text h1{white-space:nowrap;margin:2px 0 0;font-size:21px;font-weight:800;line-height:1.08}.profile-subtitle{flex-direction:column;justify-content:flex-end;height:47px;margin-top:auto;display:flex}.profile-subtitle p{color:#a8a8a8;white-space:nowrap;margin:0;font-size:13.5px;font-weight:650;line-height:1.18}.sidebar-nav{margin-top:72px}.nav-label{color:#9f9f9f;margin:0 0 24px;font-size:16px;font-weight:700}.nav-items-list{flex-direction:column;gap:10px;display:flex}.nav-item{color:#bdbdbd;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:12px;width:100%;height:42px;margin:0;padding:0 13px;font-size:15px;font-weight:700;display:flex}.nav-item:hover,.nav-item.active{color:#fff;background:#303030}.language-toggle{color:#a8a8a8;cursor:pointer;background:#3d3d3d;border:1px solid #555;border-radius:9px;justify-content:center;align-items:center;width:100%;height:42px;margin-top:42px;padding:0 13px;font-size:15px;font-weight:700;transition:background .2s,border-color .2s;display:flex}.language-toggle:hover{background:#474747;border-color:#666}.language-option{color:#a8a8a8}.language-option.is-active{color:#fff}.language-divider{color:#888;margin:0 2px}.language-toggle:focus-visible{outline-offset:2px;outline:2px solid #fff}.about-page{max-width:1120px;margin:0 auto}.page-title{letter-spacing:-.04em;margin:0 0 34px;font-size:42px;font-weight:800;line-height:1.12}.about-grid{grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"intro right""skills right";align-items:stretch;gap:20px;display:grid}.right-info-column{flex-direction:column;grid-area:right;align-self:stretch;gap:20px;display:flex}.intro-card{background:#f0f0f0;border-radius:24px;grid-area:intro;min-height:650px;padding:48px 42px}.intro-card h3{letter-spacing:-.035em;margin:0 0 64px;font-size:25px;font-weight:800;line-height:1.18}.intro-text{max-width:650px}.intro-text p{margin:0 0 26px;font-size:16px;font-weight:500;line-height:1.6}.contact-button{color:#fff;cursor:pointer;background:#2f2f2f;border:0;border-radius:999px;margin-top:20px;padding:11px 23px;font-size:14px;font-weight:700}.contact-button:hover{background:#000}.location-group,.skills-group{background:#f8f8f8;border-radius:26px;padding:18px}.location-group{flex-direction:column;flex:1;display:flex}.skills-group{grid-area:skills}.group-header{margin-bottom:16px}.group-header h3{color:#202020;letter-spacing:-.03em;margin:0;font-size:20px;font-weight:800;line-height:1.15}.image-card{aspect-ratio:4/3;background:#ededed;border-radius:14px;width:100%;position:relative;overflow:hidden}.image-card.clickable{cursor:pointer;transition:transform .2s,box-shadow .2s}.image-card.clickable:hover{transform:scale(1.02);box-shadow:0 12px 28px #00000014}.image-card.large{aspect-ratio:3/4}.image-card img{object-fit:cover;width:100%;height:100%;display:block}.image-label{z-index:2;color:#222;background:#fff;border-radius:999px;padding:4px 14px;font-size:14px;font-weight:500;position:absolute;top:16px;left:16px}.skills-row{grid-template-columns:repeat(6,88px);justify-content:space-between;align-items:flex-start;gap:22px 18px;width:100%;display:grid}.skill-item{text-align:center;width:88px}.skill-icon-box{background:#f1f1f1;border-radius:18px;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 18px;display:flex}.skill-icon-box img{object-fit:contain;width:48px;height:48px}.skill-item p{color:#202020;margin:0;font-size:13px;font-weight:700;line-height:1.25}.map-card-column .image-card+.image-card{margin-top:20px}@media (width<=1600px){.sidebar{width:380px;padding:36px 32px}.main-content{margin-left:380px;padding:46px 52px 80px}.about-page,.projects-page{max-width:1120px}.about-grid{grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"intro right""skills right"}.intro-card{min-height:500px;padding:42px}.intro-card h3{margin-bottom:48px}.intro-text p{margin-bottom:22px}.right-info-column{flex-direction:column;gap:20px;display:flex}.profile-card-wrapper .image-card{aspect-ratio:3/4}.location-group{flex:1}.map-card-column{flex-direction:column;flex:1;gap:20px;min-height:0;display:flex}.map-card-column .image-card{aspect-ratio:auto;flex:1 1 0;min-height:0}.skills-row{grid-template-columns:repeat(4,88px);justify-content:space-between;gap:22px 18px}}@media (width<=1350px){.about-page{max-width:920px}.about-grid{grid-template-columns:1fr;grid-template-areas:"intro""right""skills"}.intro-card{min-height:auto;padding:42px 38px}.intro-card h3{margin-bottom:48px}.right-info-column{grid-area:right;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch;gap:20px;display:grid}.profile-card-wrapper{display:flex}.profile-card-wrapper .image-card{aspect-ratio:3/4;align-self:stretch;width:100%}.location-group{flex-direction:column;flex:initial;min-height:100%;display:flex}.map-card-column{flex-direction:column;flex:1;gap:20px;min-height:0;display:flex}.map-card-column .image-card{aspect-ratio:auto;flex:1 1 0;min-height:0}.skills-group{grid-area:skills}.skills-row{grid-template-columns:repeat(6,88px);justify-content:space-between}}@media (width<=1100px){.sidebar{width:100%;height:auto;padding:24px 32px 26px;position:relative;overflow:hidden}.sidebar-profile{align-items:center;gap:18px}.sidebar-nav{margin-top:28px}.nav-label{display:none}.nav-items-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;width:100%;display:grid}.nav-item{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;min-width:0;height:76px;padding:9px 5px;font-size:15px}.nav-item svg{flex-shrink:0;width:21px;height:21px}.nav-item span{white-space:normal;text-align:center;justify-content:center;align-items:center;max-width:100%;min-height:34px;line-height:1.12;display:flex}.language-toggle{width:100%;height:42px;margin-top:12px}.main-content{margin-left:0;padding:38px 32px 70px}.about-page{max-width:100%}.page-title{font-size:40px}.about-grid{grid-template-columns:1fr;grid-template-areas:"intro""right""skills"}.intro-card{padding:42px 38px}.right-info-column{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch;gap:20px;display:grid}.profile-card-wrapper{display:flex}.profile-card-wrapper .image-card{aspect-ratio:3/4;align-self:stretch;width:100%}.location-group{flex-direction:column;min-height:100%;display:flex}.map-card-column{flex-direction:column;flex:1;gap:20px;min-height:0;display:flex}.map-card-column .image-card{aspect-ratio:auto;flex:1 1 0;min-height:0}.skills-row{grid-template-columns:repeat(6,88px);justify-content:space-between}}@media (width<=850px){.page-title{font-size:34px}.skills-row{grid-template-columns:repeat(4,88px);justify-content:space-between}}@media (width<=650px){.main-content{padding:30px 22px 60px}.sidebar{padding:18px 22px 20px}.sidebar-profile{gap:14px}.profile-text h1,.profile-subtitle p{white-space:normal}.sidebar-nav{margin-top:24px}.nav-items-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.nav-item{border-radius:9px;gap:6px;min-width:0;height:76px;padding:8px 2px;font-size:15px}.nav-item svg{width:20px;height:20px}.nav-item span{white-space:normal;text-align:center;justify-content:center;align-items:center;max-width:100%;min-height:34px;line-height:1.08;display:flex}.language-toggle{height:42px;margin-top:10px;font-size:15px}.page-title{font-size:30px}.intro-card{padding:34px 28px}.about-grid{grid-template-columns:1fr;grid-template-areas:"intro""right""skills"}.right-info-column{flex-direction:column;gap:20px;display:flex}.profile-card-wrapper{display:block}.profile-card-wrapper .image-card{aspect-ratio:3/4}.location-group,.skills-group{border-radius:22px;padding:16px}.location-group{flex:none;height:auto;min-height:0}.map-card-column{flex-direction:column;flex:none;gap:20px;min-height:0;display:flex}.map-card-column .image-card{aspect-ratio:4/3;flex:none;width:100%;min-height:0}.skills-row{grid-template-columns:repeat(3,88px);justify-content:center}}.projects-page{width:100%;max-width:1120px;margin:0 auto}.projects-intro{margin-bottom:30px}.projects-intro h1{letter-spacing:-.04em;max-width:900px;margin:0;font-size:42px;font-weight:800;line-height:1.12}.project-category-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:38px;display:grid}.project-category-card{color:#222;min-height:118px;font:inherit;text-align:left;cursor:pointer;background:#f1f1f1;border:1px solid #d8d8d8;border-radius:24px;flex-direction:column;align-items:flex-start;gap:8px;padding:24px;transition:background .2s,color .2s,transform .2s,box-shadow .2s;display:flex}.project-category-card:hover{background:#e9e9e9;transform:translateY(-2px)}.project-category-card.active{color:#fff;background:#2f2f2f;border-color:#2f2f2f;box-shadow:0 14px 30px #00000014}.project-category-title{letter-spacing:-.03em;font-size:20px;font-weight:800;line-height:1.15}.project-category-subtitle{color:#666;font-size:14px;font-weight:700;line-height:1.4}.project-category-card.active .project-category-subtitle{color:#d5d5d5}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;display:grid}.project-empty-state{text-align:center;background:#f1f1f1;border-radius:28px;padding:44px}.project-empty-state p{color:#666;margin:0;font-size:16px;font-weight:700}.project-card{color:inherit;background:#f1f1f1;border-radius:30px;text-decoration:none;transition:transform .25s,box-shadow .25s;display:block;overflow:hidden}.project-card:hover{transform:translateY(-4px);box-shadow:0 18px 45px #00000014}.project-image-wrapper{aspect-ratio:7/5;background:#dcdcdc;width:100%;overflow:hidden}.project-image-wrapper img{object-fit:cover;width:100%;height:100%;transition:transform .35s;display:block}.project-card:hover .project-image-wrapper img{transform:scale(1.04)}.project-card-body{padding:22px 24px 26px}.project-tags{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.project-tags span{color:#333;background:#fff;border-radius:999px;padding:5px 11px;font-size:13px;font-weight:700}.project-title-row{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.project-title-row h2{letter-spacing:-.035em;margin:0;font-size:25px;line-height:1.18}.project-title-row h3{color:#4f4f4f;margin:6px 0 0;font-size:16px;font-weight:700;line-height:1.35}.project-link-icon{color:#fff;background:#1f1f1f;border-radius:999px;justify-content:center;align-items:center;min-width:42px;height:42px;display:flex}.project-card-body p{color:#666;margin:16px 0 0;font-size:15px;line-height:1.55}@media (width<=1180px){.projects-grid{grid-template-columns:1fr}.projects-intro h1{font-size:38px}}@media (width<=700px){.projects-intro h1{font-size:32px}.project-category-card{min-height:auto;padding:20px 22px}.project-category-title{font-size:19px}.project-title-row{gap:12px}.project-title-row h2{font-size:22px}.project-link-icon{min-width:38px;height:38px}}
