.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--border-color);background:var(--card-bg);color:var(--text-primary);cursor:pointer;transition:all .3s ease;-webkit-tap-highlight-color:transparent;outline:none;padding:0}.theme-toggle:hover{background:var(--hover-bg);border-color:var(--text-primary);transform:scale(1.08)}.theme-toggle:active{transform:scale(.95)}.theme-toggle-icon{display:flex;align-items:center;justify-content:center;transition:transform .4s ease}.theme-toggle-icon.sun{transform:rotate(0)}.theme-toggle-icon.moon{transform:rotate(-20deg)}.theme-toggle:hover .theme-toggle-icon.sun{transform:rotate(45deg)}.theme-toggle:hover .theme-toggle-icon.moon{transform:rotate(0)}.theme-toggle--load-animate{animation:themeToggleLoadButton 1s cubic-bezier(.34,1.56,.64,1) .5s both}.theme-toggle--load-animate .theme-toggle-icon.sun{animation:themeToggleLoadSun 1s cubic-bezier(.34,1.56,.64,1) .5s both}.theme-toggle--load-animate .theme-toggle-icon.moon{animation:themeToggleLoadMoon 1s cubic-bezier(.34,1.56,.64,1) .5s both}@keyframes themeToggleLoadButton{0%,to{transform:scale(1)}50%{transform:scale(1.25)}}@keyframes themeToggleLoadSun{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes themeToggleLoadMoon{0%{transform:rotate(-20deg)}to{transform:rotate(340deg)}}.header{position:fixed;top:0;width:100%;z-index:1000;background:#ffffff52!important;backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);border-bottom:1px solid rgba(0,0,0,.08);box-shadow:0 2px 24px #0000000f}.header .ant-menu,.header .ant-menu-horizontal,.header .ant-menu-overflow{background:transparent!important}[data-theme=dark] .header{background:#0f0f0fbf!important;border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 2px 16px #0003}.header-container{max-width:var(--max-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between}.logo{font-size:24px;font-weight:800;margin-right:48px}.logo a{color:var(--text-primary)}.mobile-logo{display:none}.profile-pic{width:40px;height:40px;border-radius:50%;object-fit:cover;transition:transform .3s ease}.profile-pic:hover{transform:scale(1.05)}.desktop-menu{flex:1;display:flex;align-items:center;justify-content:center}.desktop-menu .ant-menu{justify-content:center}.desktop-menu .ant-menu-horizontal>.ant-menu-item:after,.desktop-menu .ant-menu-horizontal>.ant-menu-submenu:after{border-bottom:none!important}.desktop-menu .ant-menu-item-selected,.desktop-menu .ant-menu-item-selected a{color:var(--text-primary)}.mobile-menu-button{display:none}.header-actions{display:flex;align-items:center;gap:12px}.header-theme-toggle{width:36px;height:36px}@media (max-width: 768px){.desktop-menu{display:none}.mobile-menu-button{display:flex!important;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;border-radius:50%;border:1.5px solid var(--border-color);background:var(--card-bg);color:var(--text-primary);padding:0;transition:all .3s ease}.mobile-menu-button:hover{background:var(--hover-bg);border-color:var(--text-primary);color:var(--text-primary);transform:scale(1.08)}.mobile-menu-button .anticon{font-size:20px}.logo{margin-right:0;font-size:30px}.mobile-logo{display:block}.mobile-logo .profile-pic{border:1px solid var(--text-primary);padding:2px;background-color:var(--card-bg);transform:translateY(12px)}.mobile-drawer .ant-drawer-content{background:var(--card-bg)}.mobile-drawer .ant-drawer-header{padding:20px 24px;border-bottom:1px solid var(--border-color)}.mobile-drawer .ant-drawer-title{font-size:18px;font-weight:600;color:var(--text-primary)}.mobile-drawer .ant-drawer-close{color:var(--text-secondary);font-size:18px;padding:8px;border-radius:50%;transition:background .2s ease,color .2s ease}.mobile-drawer .ant-drawer-close:hover{color:var(--text-primary);background:var(--hover-bg)}.drawer-menu{border:none!important;background:transparent!important;padding:8px 0}.drawer-menu .ant-menu-item{font-size:16px;height:44px;margin:4px 0;padding:0 16px!important;border-radius:10px;transition:background .2s ease,color .2s ease;display:flex!important;align-items:center!important;line-height:1.4}.drawer-menu .ant-menu-item:after{display:none}.drawer-menu .ant-menu-item:hover{background:var(--hover-bg)!important}.drawer-menu .ant-menu-item a{color:var(--text-primary);line-height:1.4;display:flex;align-items:center}.drawer-menu .ant-menu-item-selected{background:var(--hover-bg)!important;border:1px solid var(--border-color);border-radius:10px}.drawer-menu .ant-menu-item-selected:after{display:none}.drawer-menu .ant-menu-item-selected a{color:var(--text-primary);font-weight:500}}.footer{background-color:var(--text-primary);color:var(--bg-color);margin-top:50px;padding:10px 24px!important;min-height:auto}.footer-bottom{text-align:center;color:var(--bg-color);font-size:15px;font-weight:500;margin:0;padding:0}@media (max-width: 768px){.footer{padding:12px 16px!important}.footer-bottom{font-size:13px}.footer-content{grid-template-columns:1fr;gap:24px}.footer-container{padding:30px 10px 10px}}:root{--uplift-duration: 1.35s;--uplift-delay-step: .18s;--uplift-ease: cubic-bezier(.16, 1, .3, 1)}@keyframes liftReveal{0%{opacity:0;transform:translateY(32px) scale(.965);filter:blur(14px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes liftRevealImage{0%{opacity:0;transform:translateY(32px) scale(.965)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes footerRise{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.home-page{height:100vh;display:flex;flex-direction:column;background-color:var(--bg-color);overflow:hidden;position:relative}.home-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(0,0,0,.04) 1px,transparent .5px),linear-gradient(90deg,rgba(0,0,0,.04) 1px,transparent .5px);background-size:20px 20px;pointer-events:none;z-index:0;opacity:0;animation:liftReveal 1.2s var(--uplift-ease) forwards}.hero-container{flex:1;display:flex;flex-direction:column;justify-content:space-between;width:100%;max-width:600px;margin:0 auto;padding:4vh 24px 2vh;height:100%;position:relative;z-index:1;opacity:0;transform:translateY(20px);animation:liftReveal .9s var(--uplift-ease) forwards}.profile-section{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:2vh;perspective:1000px}.profile-section>*{opacity:0;transform:translateY(36px) scale(.965);animation:liftReveal var(--uplift-duration) var(--uplift-ease) forwards}.profile-section>*:nth-child(1){animation-delay:.15s}.profile-section>*:nth-child(2){animation-delay:calc(.15s + var(--uplift-delay-step))}.profile-section>*:nth-child(3){animation-delay:calc(.15s + var(--uplift-delay-step) * 2)}.profile-section>*:nth-child(4){animation-delay:calc(.15s + var(--uplift-delay-step) * 3)}.profile-section>*:nth-child(5){animation-delay:calc(.15s + var(--uplift-delay-step) * 4)}.profile-section>*:nth-child(6){animation-delay:calc(.15s + var(--uplift-delay-step) * 5)}.profile-flip-container{width:250px;height:250px;perspective:1000px;cursor:pointer;margin:0 auto}.profile-flip-inner{position:relative;width:100%;height:100%;transition:transform .8s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.profile-flip-container:hover .profile-flip-inner{transform:rotateY(180deg)}@keyframes introFlipSpin{0%{transform:rotateY(0)}40%{transform:rotateY(360deg)}70%{transform:rotateY(720deg)}85%{transform:rotateY(740deg)}to{transform:rotateY(720deg)}}.profile-flip-container.intro-flip .profile-flip-inner{animation:introFlipSpin 2.4s cubic-bezier(.4,0,.2,1) forwards}.profile-flip-container.intro-flip:hover .profile-flip-inner{transform:none}@keyframes themeFlipSpin{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}.profile-flip-container.theme-flip .profile-flip-inner{animation:themeFlipSpin 1.2s cubic-bezier(.4,0,.2,1) forwards}.profile-flip-container.theme-flip:hover .profile-flip-inner{transform:none}.profile-flip-front,.profile-flip-back{position:absolute;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:50%}.profile-flip-back{transform:rotateY(180deg)}.profile-image{width:250px;height:250px;border-radius:50%;object-fit:cover;margin:0 auto;display:block;border:3px solid var(--text-primary);padding:5px;background-color:var(--card-bg);box-shadow:0 8px 24px #0000001f;pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}[data-theme=dark] .profile-image{box-shadow:0 8px 24px #ffffff1f}.profile-name{font-size:37px!important;font-weight:700!important;margin-bottom:2px!important;line-height:1.2!important;background:linear-gradient(90deg,#1a1a1a,#666)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;color:transparent!important}[data-theme=dark] .profile-name{background:linear-gradient(90deg,#f0f0f0,#888)!important;-webkit-background-clip:text!important;background-clip:text!important;-webkit-text-fill-color:transparent!important;color:transparent!important}.profile-title{font-size:17px;color:var(--text-secondary);margin-bottom:0!important}.social-links{display:flex;gap:30px;justify-content:center;margin-top:2.7vh;margin-bottom:3vh;-webkit-tap-highlight-color:transparent}.social-links a{color:var(--text-primary);font-size:24px;transition:color .7s;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:rgba(0,0,0,0)!important;tap-highlight-color:rgba(0,0,0,0)!important;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:none}.social-links a svg,.social-links a span{-webkit-tap-highlight-color:transparent!important;tap-highlight-color:transparent!important;pointer-events:none}.social-links a:nth-child(1):hover{color:#0a66c2}.social-links a:nth-child(2):hover{color:#181717}.social-links a:nth-child(3):hover{color:#e43f33}.social-links a:nth-child(4):hover{color:#25d366}.social-links a:nth-child(5):hover{color:#1da1f2}[data-theme=dark] .social-links a:nth-child(2):hover{color:var(--text-primary)}.social-links a:focus,.social-links a:active{outline:none!important;-webkit-tap-highlight-color:transparent!important}.main-nav{display:flex;gap:35px;justify-content:center;flex-wrap:wrap;margin-bottom:0}.main-nav a{color:var(--text-primary);font-size:18px;font-weight:500;transition:color .3s;text-decoration:none;position:relative;padding:0 6px 4px;border:none;border-radius:0;-webkit-tap-highlight-color:transparent!important;tap-highlight-color:transparent!important;outline:none}.main-nav a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--text-primary);transform:scaleX(0);transform-origin:center;transition:transform .3s ease}.main-nav a:hover{color:var(--text-primary)}.main-nav a:hover:after,.main-nav a:focus-visible:after{transform:scaleX(1)}@media (min-width: 1025px){.main-nav{margin-top:3vh}}.home-footer{padding:2vh 0 1.5vh;opacity:0;animation:footerRise 1.15s var(--uplift-ease) forwards;animation-delay:1.2s}.footer-divider{height:1px;background-color:var(--border-color);margin-bottom:1.5vh}.copyright{text-align:center;color:var(--text-primary);font-size:14px;margin:0}@media (max-width: 480px){.home-page{overflow:hidden!important;position:fixed;width:100%;height:100vh}.hero-container{padding:0vh 10px 10vh;overflow:hidden;height:100vh}.profile-section{gap:1.7vh}.profile-image{width:220px;height:220px;margin-bottom:0}.profile-flip-container{width:220px;height:220px}.profile-name{font-size:25px!important;margin-top:0!important;margin-bottom:0!important}.profile-title{font-size:14px;margin-bottom:2vh!important}.social-links{gap:24px;margin:0 0 3vh}.social-links a{font-size:22px}.main-nav{margin:30px 0 0;display:flex;flex-wrap:wrap;justify-content:center;column-gap:7px;row-gap:15px}.main-nav a{font-size:15px;text-align:center;flex:0 1 calc(33.333% - 16px);padding:5px 8px;border:.5px solid var(--text-primary);border-radius:10px;position:relative}.main-nav a:after{display:none}.main-nav a:hover{background-color:var(--hover-bg);color:var(--text-primary)}.home-footer{padding:1.5vh 0 1vh}.footer-divider{margin-bottom:1vh}.copyright{font-size:13px}}@media (min-width: 481px) and (max-width: 768px){.hero-container{padding:3vh 24px 2vh}.profile-image{width:200px;height:200px;margin-bottom:2vh}.profile-flip-container{width:200px;height:200px}.profile-name{font-size:30px!important}.profile-title{font-size:15px}.social-links{gap:24px;margin:2.5vh 0}.social-links a{font-size:22px}.main-nav{gap:25px}.main-nav a{font-size:15px}}@media (min-width: 769px) and (max-width: 1024px){.hero-container{padding:4vh 24px 2vh}.profile-image{width:220px;height:220px;margin-bottom:2.5vh}.profile-flip-container{width:220px;height:220px}.profile-name{font-size:34px!important}.profile-title{font-size:16px}.social-links{gap:28px;margin:2.5vh 0}.social-links a{font-size:23px}.main-nav{gap:30px}.main-nav a{font-size:16px}}@media (min-width: 1920px){.hero-container{max-width:700px;padding:5vh 24px 2.5vh}.profile-image{width:300px;height:300px;margin-bottom:3vh}.profile-flip-container{width:300px;height:300px}.profile-name{font-size:44px!important}.profile-title{font-size:19px}.social-links{gap:35px;margin:3vh 0}.social-links a{font-size:28px}.main-nav{gap:40px}.main-nav a{font-size:19px}.home-footer{padding:2.5vh 0 2vh}.copyright{font-size:15px}}.home-theme-toggle{position:absolute;top:24px;right:24px;z-index:10;opacity:0;animation:liftReveal .8s var(--uplift-ease) forwards;animation-delay:.6s}@media (max-width: 480px){.home-theme-toggle{top:16px;right:16px}}[data-theme=dark] .home-page:before{background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent .5px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent .5px)}.about-page{min-height:calc(100vh - 64px);background-color:var(--bg-color)}.about-content{padding:20px 0}.about-text-with-bg{position:relative}.about-text{position:relative;max-width:none;margin:0}.about-text a{color:#1677ff;text-decoration:none}.about-text a:hover{color:#1677ff;text-decoration:underline}[data-theme=dark] .about-text a{color:#a1f227}[data-theme=dark] .about-text a:hover{color:#a1f227;text-decoration:underline}@media (min-width: 769px){.about-text-with-bg{padding:60px;border-radius:24px;overflow:hidden;background-image:url(/bg_pic.png);background-size:cover;background-position:center;background-repeat:no-repeat;box-shadow:0 4px 20px #0000001a}.about-text-with-bg:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffffde;z-index:1}[data-theme=dark] .about-text-with-bg:before{background:#0a0a0ade}.about-text{position:relative;z-index:2}}.about-text p,.about-text .ant-typography.ant-typography-paragraph,.about-text .ant-typography.ant-typography-paragraph p{font-size:16px;line-height:1.8;margin-bottom:20px}@media (min-width: 1024px){.about-text{max-width:none}.about-page .about-text p,.about-page .about-text .ant-typography,.about-page .about-text .ant-typography-paragraph,.about-page .about-text .ant-typography.ant-typography-paragraph,.about-page .about-text .ant-typography.ant-typography-paragraph p{font-size:21px!important;line-height:1.8!important}}@media (min-width: 1280px){.about-text{max-width:none}.about-page .about-text p,.about-page .about-text .ant-typography,.about-page .about-text .ant-typography-paragraph,.about-page .about-text .ant-typography.ant-typography-paragraph,.about-page .about-text .ant-typography.ant-typography-paragraph p{font-size:21px!important;line-height:1.8!important}}@media (max-width: 768px){.about-content{padding:15px 0 0}.about-text{padding:0;margin:0}.about-text p,.about-text .ant-typography.ant-typography-paragraph,.about-text .ant-typography.ant-typography-paragraph p{padding:0}}.experience-page{min-height:calc(100vh - 64px);background-color:var(--bg-color)}.experience-content{padding:20px 0}.experience-section+.experience-section{margin-top:40px}.experience-section-header{max-width:720px;margin-bottom:32px}.experience-collapse{background:transparent;border:none!important;box-shadow:none!important}.experience-collapse.ant-collapse>.ant-collapse-item{border-bottom:none!important;margin-bottom:16px}.experience-collapse .ant-collapse-item{border:none!important;border-radius:10px!important;box-shadow:0 20px 60px var(--card-shadow);overflow:hidden;background:var(--card-bg)}.experience-collapse.ant-collapse>.ant-collapse-item>.ant-collapse-header{border-radius:24px!important;background:var(--card-bg);padding:18px 24px!important;display:flex;align-items:center!important;gap:16px}.experience-collapse .ant-collapse-content{border-top:1px solid var(--card-border)!important;border-radius:0 0 24px 24px!important}.experience-collapse .ant-collapse-content-box{border-radius:0 0 24px 24px}.experience-collapse .ant-collapse-expand-icon{display:flex;align-items:center;justify-content:center;font-size:18px;align-self:center;height:100%}.experience-collapse__label{display:flex;flex-direction:column;gap:4px;padding:0;flex:1}.experience-collapse__company{font-size:18px;font-weight:600;color:var(--text-primary)}.experience-collapse__role{font-size:15px;font-weight:500;color:var(--text-secondary)}.experience-meta{margin:0;color:var(--text-secondary);font-size:15px}.experience-roles{margin-top:24px}.experience-role{display:flex;gap:16px;padding-left:8px}.experience-role+.experience-role{margin-top:24px}.experience-role__timeline{display:flex;flex-direction:column;align-items:center;width:16px}.experience-role__dot{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,#111,#6e6e6e);box-shadow:0 0 0 4px #00000014}.experience-role__line{flex:1;width:2px;background:linear-gradient(180deg,#00000040,#0000);margin-top:6px}.experience-role__content h4{margin-bottom:4px!important}.experience-role__period{margin:0 0 8px;color:var(--text-secondary);font-size:14px;letter-spacing:.01em;text-transform:uppercase}.experience-role__highlights{margin:8px 0 0;padding-left:18px;color:var(--text-primary);line-height:1.6}.experience-role__highlights li+li{margin-top:6px}.experience-role__skills{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}.experience-role__skills .ant-tag{background:var(--hover-bg);border:1px solid var(--card-border);margin-right:0;color:var(--text-primary)}[data-theme=dark] .experience-role__dot{background:linear-gradient(135deg,#e0e0e0,#888);box-shadow:0 0 0 4px #ffffff14}[data-theme=dark] .experience-role__line{background:linear-gradient(180deg,#ffffff59,#ffffff0f)}[data-theme=dark] .experience-role__skills .ant-tag{background:#ffffff1f;border:1px solid rgba(255,255,255,.2);color:var(--text-primary)}@media (max-width: 768px){.experience-content{padding:15px 0 0}.experience-role{flex-direction:row}.experience-collapse.ant-collapse>.ant-collapse-item{margin-bottom:12px}.experience-collapse.ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:8px 18px!important;border-radius:10px!important}.experience-collapse .ant-collapse-item{border-radius:10px!important}.experience-collapse__company{font-size:16px}.experience-collapse__role{font-size:14px}.experience-meta{font-size:13px}.experience-collapse .ant-collapse-expand-icon{font-size:16px}}.projects-page{min-height:calc(100vh - 64px);background-color:var(--bg-color)}.projects-content{padding:20px 0 60px}.project-card-container{position:relative;min-height:1px;height:100%}.projects-content .ant-row{align-items:stretch}.projects-content .ant-col{display:flex}.projects-content .ant-col>div{width:100%;display:flex;flex-direction:column}.project-card-container .project-card.hidden{position:absolute;top:0;left:0;right:0;opacity:0;visibility:hidden;pointer-events:none;z-index:-1}.project-card-container .project-card.visible{position:relative;opacity:1;visibility:visible;animation:projectCardFadeIn .3s ease-in}@keyframes projectCardFadeIn{0%{opacity:0}to{opacity:1}}@keyframes projectShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.project-card-shimmer{border:1px solid var(--card-border);border-radius:16px;overflow:hidden;background:var(--card-bg);box-shadow:0 4px 20px var(--card-shadow);flex:1;display:flex;flex-direction:column}.project-card-shimmer-image{width:100%;height:200px;background:linear-gradient(90deg,#f7f7f7,#eee,#e0e0e0,#eee,#f7f7f7);background-size:200% 100%;animation:projectShimmer 1.5s infinite}.project-card-shimmer-body{padding:16px 20px;display:flex;flex-direction:column;flex:1;min-height:0}.project-card-shimmer-title{height:18px;width:75%;border-radius:4px;background:linear-gradient(90deg,#f7f7f7,#eee,#e0e0e0,#eee,#f7f7f7);background-size:200% 100%;animation:projectShimmer 1.5s infinite;flex-shrink:0}.project-card-shimmer-description{margin-top:6px;min-height:4.35em;display:flex;flex-direction:column;justify-content:space-between;gap:6px;flex:1}.project-card-shimmer-line{height:13px;width:100%;border-radius:4px;background:linear-gradient(90deg,#f7f7f7,#eee,#e0e0e0,#eee,#f7f7f7);background-size:200% 100%;animation:projectShimmer 1.5s infinite;flex-shrink:0}.project-card-shimmer-line-short{width:70%}.project-card{border:1px solid var(--card-border)!important;border-radius:16px!important;overflow:hidden;background:var(--card-bg)!important;box-shadow:0 4px 20px var(--card-shadow);transition:transform .4s ease,box-shadow .4s ease;display:flex;flex-direction:column;height:100%}.project-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px var(--card-shadow)}.project-card .ant-card-body{padding:16px 20px;flex:1;display:flex;flex-direction:column;min-height:0}.project-card .ant-card-meta-detail{flex:1;display:flex;flex-direction:column;min-height:0}.project-card-title{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:0;flex-shrink:0}.project-card-description{font-size:13px;color:var(--text-secondary);margin:6px 0 0!important;line-height:1.45;min-height:4.35em;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.project-card .ant-card-cover{flex-shrink:0}.project-image-wrapper{position:relative;width:100%;height:200px;overflow:hidden;background-color:var(--hover-bg)}.project-image{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.project-card:hover .project-image{transform:scale(1.05)}.project-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .35s ease}.project-card:hover .project-overlay,.project-card.overlay-intro .project-overlay{opacity:1}@keyframes overlayLiftReveal{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.project-card.overlay-intro .project-overlay-links{animation:overlayLiftReveal .6s cubic-bezier(.16,1,.3,1) forwards}.project-overlay-links{display:flex;flex-direction:column;gap:10px;align-items:center}.project-overlay-link{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:24px;background:#fff;color:var(--text-primary);font-size:13px;font-weight:600;text-decoration:none;transition:background .3s ease,color .3s ease,transform .2s ease;white-space:nowrap}.project-overlay-link:hover{background:#f0f0f0;color:#1890ff;transform:scale(1.05)}[data-theme=dark] .project-overlay-link{background:#fff;color:#1a1a1a;border:none}[data-theme=dark] .project-overlay-link:hover{background:#fff;color:#1890ff}.project-overlay-link .anticon{font-size:14px;pointer-events:auto!important}.project-overlay-link span{pointer-events:auto!important}@media (max-width: 768px){.projects-page .subtitle-line-break{display:block}.projects-content{padding:15px 0 40px}.project-image-wrapper{height:180px}.project-card-shimmer{border-radius:12px}.project-card-shimmer-image{height:180px}.project-card-shimmer-body{padding:12px 16px}.project-card-shimmer-title{height:16px}.project-card-shimmer-line{height:12px}.project-card{border-radius:12px!important}.project-card .ant-card-body{padding:12px 16px}.project-card-title{font-size:14px}.project-card-description{font-size:12px}.project-overlay{opacity:0;background:#0009}.project-card:active .project-overlay{opacity:1}}@media (min-width: 769px) and (max-width: 1024px){.project-image-wrapper,.project-card-shimmer-image{height:190px}}@media (min-width: 1920px){.project-image-wrapper,.project-card-shimmer-image{height:240px}.project-card-title{font-size:16px}}.contact-page{min-height:calc(100vh - 64px);background-color:var(--bg-color)}.contact-page .page-header h1{font-size:28px}.contact-content{padding:20px 0 60px}.contact-form-wrapper{max-width:600px;margin:0 auto;background-color:var(--card-bg);padding:24px 48px 42px;border-radius:8px;box-shadow:0 2px 8px var(--card-shadow)}.contact-form .ant-input,.contact-form .ant-input-affix-wrapper,.contact-form .ant-input-textarea,.contact-form .ant-input-textarea textarea,.contact-form .ant-input-focused,.contact-form .ant-input-affix-wrapper-focused,.contact-form .ant-input-number,.contact-form .ant-input-number-input,.contact-form .ant-textarea{border:1px solid var(--border-color);transition:border-color .35s ease,box-shadow .35s ease;box-shadow:none!important}.contact-form .ant-input:hover,.contact-form .ant-input-affix-wrapper:hover,.contact-form .ant-input-number:hover,.contact-form .ant-input-textarea:hover,.contact-form .ant-input-number-input:hover,.contact-form .ant-textarea:hover{border-color:var(--text-primary);border-width:1px!important;outline:none}.contact-form .ant-input:focus,.contact-form .ant-input-affix-wrapper:focus,.contact-form .ant-input-affix-wrapper-focused,.contact-form .ant-input-number:focus,.contact-form .ant-input-number-focused,.contact-form .ant-input-textarea:focus,.contact-form .ant-input-textarea textarea:focus,.contact-form .ant-textarea:focus,.contact-form .ant-input-focused{border-color:var(--text-primary);border-width:1px!important;box-shadow:none!important;outline:none}.contact-form .ant-form-item-label>label{font-size:14px}.contact-form .ant-input,.contact-form .ant-input-affix-wrapper .ant-input,.contact-form .ant-input-textarea textarea{font-size:14px}.contact-form .ant-input::placeholder,.contact-form .ant-input-affix-wrapper .ant-input::placeholder,.contact-form .ant-input-textarea textarea::placeholder{font-size:14px}.contact-social{text-align:center;padding-top:5px}.contact-social-links{margin:0;gap:20px}.contact-social-links a{font-size:22px;color:var(--text-primary)}.contact-social-links a:nth-child(4):hover{color:#25d366}.contact-social-links a:nth-child(5):hover{color:#1da1f2}[data-theme=dark] .contact-social-links a:nth-child(2):hover{color:var(--text-primary)!important}[data-theme=dark] .contact-form .ant-btn-primary{background:#fff!important;color:#1a1a1a!important;border:1px solid rgba(255,255,255,.3)!important}[data-theme=dark] .contact-form .ant-btn-primary:hover,[data-theme=dark] .contact-form .ant-btn-primary:focus{background:#f0f0f0!important;color:#1a1a1a!important;border-color:#fff6!important}[data-theme=dark] .contact-form .ant-btn-primary .anticon{color:#1a1a1a}@media (max-width: 768px){.contact-page .page-header h1{font-size:28px}.contact-page .subtitle-line-break{display:block}.contact-content{padding:10px 0 40px}.contact-form-wrapper{padding:20px 20px 28px}}.not-found-page{min-height:calc(100vh - 64px);background-color:var(--bg-color);display:flex;align-items:center;justify-content:center;padding:24px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}:root{--bg-color: #fafafa;--text-primary: #1a1a1a;--text-secondary: #666666;--border-color: #e0e0e0;--hover-bg: #f5f5f5;--max-width: 1200px;--reading-width: 720px;--card-bg: #ffffff;--card-shadow: rgba(15, 23, 42, .06);--card-border: rgba(15, 23, 42, .08);--header-bg: #ffffff;--scrollbar-thumb: #ccc;--scrollbar-thumb-hover: #999}[data-theme=dark]{--bg-color: #0a0a0a;--text-primary: #f0f0f0;--text-secondary: #a0a0a0;--border-color: #2a2a2a;--hover-bg: #1a1a1a;--card-bg: #141414;--card-shadow: rgba(0, 0, 0, .3);--card-border: rgba(255, 255, 255, .08);--header-bg: #0f0f0f;--scrollbar-thumb: #444;--scrollbar-thumb-hover: #666}body{font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--bg-color);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0)}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}a:focus,a:active,a:hover{outline:none;-webkit-tap-highlight-color:transparent}button,input,select,textarea{-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.3}img{max-width:100%;height:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-color)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.ant-layout{background:var(--bg-color)}.ant-layout-header{background:var(--header-bg);border-bottom:1px solid var(--border-color);padding:0 24px}.ant-menu{border-bottom:none}.container{max-width:var(--max-width);margin:0 auto;padding:0 24px}.reading-container{max-width:var(--reading-width);margin:0 auto;padding:0 24px}.page-header{background:none;color:var(--text-primary);padding:32px 0 0;text-align:center}.page-header h1{color:var(--text-primary)!important;margin-top:0!important;margin-bottom:8px!important;font-size:34px}.page-header .subtitle{font-size:15px;color:var(--text-secondary);margin:0}@media (max-width: 768px){:root{--max-width: 100%}.container,.reading-container{padding:0 16px}.page-header{padding:16px 0 0!important}.page-header h1{font-size:28px}.page-header .subtitle{font-size:14px}}*,*:before,*:after{-webkit-tap-highlight-color:rgba(0,0,0,0)!important;-webkit-tap-highlight-color:transparent!important;tap-highlight-color:transparent!important}.anticon,.anticon svg,span[role=img],span[role=img] svg{-webkit-tap-highlight-color:transparent!important;-webkit-touch-callout:none!important;-webkit-user-select:none!important;user-select:none!important;pointer-events:none!important}a:link,a:visited,a:hover,a:active,a:focus,a:focus-visible{-webkit-tap-highlight-color:transparent!important;outline:none!important;-webkit-touch-callout:none!important}button,button:active,button:focus{-webkit-tap-highlight-color:transparent!important;outline:none!important}.ant-select-dropdown .ant-select-item-option-active,.ant-select-dropdown .ant-select-item-option-selected{background-color:var(--hover-bg)!important;color:var(--text-primary)!important}[data-theme=dark] .ant-layout{background:var(--bg-color)}[data-theme=dark] .ant-layout-header{background:var(--header-bg);border-bottom-color:var(--border-color)}[data-theme=dark] .ant-menu{background:transparent;color:var(--text-primary)}[data-theme=dark] .ant-menu-item-selected,[data-theme=dark] .ant-menu-item-selected a{color:var(--text-primary)!important}[data-theme=dark] .ant-menu-horizontal>.ant-menu-item:hover,[data-theme=dark] .ant-menu-horizontal>.ant-menu-item-active{color:var(--text-primary)!important}[data-theme=dark] .ant-collapse-content{background-color:var(--card-bg);color:var(--text-primary)}[data-theme=dark] .ant-drawer-content{background-color:var(--card-bg)}[data-theme=dark] .ant-drawer-header{background-color:var(--card-bg);border-bottom-color:var(--border-color)}[data-theme=dark] .ant-drawer-title,[data-theme=dark] .ant-drawer-close{color:var(--text-primary)}[data-theme=dark] .ant-card-meta-title{color:var(--text-primary)!important}[data-theme=dark] .ant-input,[data-theme=dark] .ant-input-affix-wrapper,[data-theme=dark] .ant-input-textarea textarea{background-color:var(--bg-color);color:var(--text-primary);border-color:var(--border-color)}[data-theme=dark] .ant-input::placeholder,[data-theme=dark] .ant-input-textarea textarea::placeholder{color:var(--text-secondary)}[data-theme=dark] .ant-form-item-label>label{color:var(--text-primary)}[data-theme=dark] .ant-typography{color:var(--text-primary)}[data-theme=dark] .project-card-shimmer-image,[data-theme=dark] .project-card-shimmer-title,[data-theme=dark] .project-card-shimmer-line{background:linear-gradient(90deg,#1a1a1a,#222,#2a2a2a,#222,#1a1a1a);background-size:200% 100%}body,.ant-layout,.ant-layout-header,.ant-menu,.ant-collapse,.ant-collapse-item,.ant-collapse-content,.ant-card,.ant-drawer-content,.ant-drawer-header,.ant-input,.ant-input-affix-wrapper{transition:background-color .3s ease,color .3s ease,border-color .3s ease}.theme-transitioning *,.theme-transitioning *:before,.theme-transitioning *:after{transition:none!important}@keyframes themeWaveExpand{0%{width:0;height:0;opacity:.92}20%{width:100vmax;height:100vmax;opacity:.82}40%{width:200vmax;height:200vmax;opacity:.62}60%{width:300vmax;height:300vmax;opacity:.4}80%{width:400vmax;height:400vmax;opacity:.18}to{width:500vmax;height:500vmax;opacity:0}}.theme-transition-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:99999;pointer-events:none;overflow:hidden}.theme-transition-circle{position:absolute;top:24px;right:24px;width:0;height:0;border-radius:50%;transform:translate(50%,-50%);animation:themeWaveExpand 1.2s cubic-bezier(.4,0,.2,1) forwards}@media (max-width: 480px){.theme-transition-circle{top:16px;right:16px}}
