*:where(:not(html,iframe,canvas,img,svg,video,audio):not(svg *,symbol *)){all:unset;display:revert}*,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none}a,button{cursor:revert}ol,ul,menu,summary{list-style:none}ol{counter-reset:revert}img{max-inline-size:100%;max-block-size:100%}table{border-collapse:collapse}input,textarea{-webkit-user-select:auto}textarea{white-space:revert}meter{-webkit-appearance:revert;-moz-appearance:revert;appearance:revert}:where(pre){all:revert;box-sizing:border-box}::placeholder{color:unset}:where([hidden]){display:none}:where([contenteditable]:not([contenteditable=false])){-moz-user-modify:read-write;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space;-webkit-user-select:auto}:where([draggable=true]){-webkit-user-drag:element}:where(dialog:modal){all:revert;box-sizing:border-box}::-webkit-details-marker{display:none}.section-header{margin-bottom:2rem;display:inline-block}.section-header h2{font-size:3rem;font-weight:700;color:#1b2a41;margin:0 0 .5rem}.section-header .underline{width:4rem;height:.25rem;border-radius:2px;transition:width .3s ease}.section-header:hover .underline{width:5rem}.P-about{padding:4rem 3rem;max-width:1350px;margin:0 auto}.about-content{display:grid;grid-template-columns:.6fr 1fr;align-items:center;gap:3rem;margin-top:2rem}@media (max-width: 768px){.about-content{grid-template-columns:1fr}}.about-content .about-image-wrapper{position:relative;overflow:hidden;border-radius:1rem;box-shadow:0 8px 24px #0000001a}.about-content .about-image-wrapper .about-image{display:block;width:100%;height:auto;object-fit:cover}.about-content .about-text{font-size:1.5rem;font-weight:450;line-height:1.8;color:#333}.about-content .about-text .doodle{position:inline-block;padding-bottom:.2em;background:none}.about-content .about-text .doodle:after{content:"";position:absolute;left:0;bottom:0;height:.3em;width:0;background-image:url(/assets/doodle-underline.svg);background-repeat:no-repeat;background-size:100% 100%;transition:none;animation:doodle-draw 1s ease-out forwards;animation-delay:.6s}.about-content .about-text p{margin:0 0 1.5rem;position:relative}.about-content .about-text p:last-child{margin-bottom:0}@-moz-keyframes doodle-draw{to{width:100%}}@-webkit-keyframes doodle-draw{to{width:100%}}@-o-keyframes doodle-draw{to{width:100%}}@keyframes doodle-draw{to{width:100%}}.typewriter{display:inline-block;white-space:nowrap;overflow:hidden;font-size:3rem}.typewriter-text{display:inline-block;border-bottom:5px solid rgba(20,157,221,.45);padding-bottom:.1em}.cursor{display:inline-block;width:2px;height:1em;margin-left:2px;background:#fff;animation:blink .8s step-end infinite}@-moz-keyframes blink{50%{background:transparent}}@-webkit-keyframes blink{50%{background:transparent}}@-o-keyframes blink{50%{background:transparent}}@keyframes blink{50%{background:transparent}}.hero{background:url(/assets/bg_image.jpg) no-repeat;background-size:cover;height:100vh;position:relative}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1}.hero-text{position:absolute;z-index:2;top:45%;left:35%;transform:translate(-50%,-50%);color:#fff;text-align:center}.hero-text h1{font-size:6rem;margin:0}.fade{opacity:0;transform:translateY(20px)}.fade.in{animation-name:fadeInUp;animation-duration:.6s;animation-fill-mode:forwards;animation-delay:0s}.delay-0{animation-delay:.3s}.delay-1{animation-delay:1s}@-moz-keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@-o-keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.project-container{position:relative;margin:2rem 0;display:flex;justify-content:center;align-items:flex-start}.project-container .project-base{background:#fff;border-radius:.5rem;width:27rem;height:30rem;padding:6rem 1.5rem 1.5rem;box-shadow:0 .25rem .75rem #0000001a;display:flex;flex-direction:column;justify-content:space-between}.project-container .project-base .project-title{color:#1b2a41;margin:1rem 0;font-size:1.6rem}.project-container .project-base .project-desc{color:#555;flex:1;font-size:1rem;line-height:1.6;white-space:pre-line;margin:1rem 0;overflow:auto}.project-container .project-base .project-links{display:flex;gap:1rem}.project-container .project-base .project-links a{color:#000;text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:.5rem;transition:color .3s}.project-container .project-base .project-links a:hover{color:#149ddd}.project-container .project-base .project-links a .github-logo{width:1.2rem;height:1.2rem}.project-container .project-demo{position:absolute;top:-5.625rem;width:18.25rem;height:11.25rem;left:calc(50% - 9.125rem);border-radius:.5rem;overflow:hidden}.project-container .project-demo img{display:block;width:100%;height:100%;object-fit:cover}.P-skill{padding:4rem 3rem;max-width:1350px;margin:0 auto}.skills-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2rem;margin-top:2rem}.skill-item{position:relative;text-align:center}.skill-item .skill-icon{width:3rem;height:3rem;margin:0 auto;transition:transform .3s ease}.skill-item:hover .skill-icon{transform:scale(1.2)}.skill-item .skill-tooltip{position:absolute;bottom:-1.75rem;left:50%;transform:translate(-50%,10px);background:#000000bf;color:#fff;font-size:.875rem;padding:.25rem .5rem;border-radius:4px;white-space:nowrap;opacity:0;transition:opacity .3s ease,transform .3s ease}.skill-item:hover .skill-tooltip{opacity:1;transform:translate(-50%)}.P-projects{padding:4rem 3rem;max-width:1350px;margin:0 auto}.projects-carousel{position:relative;width:100%;height:0;padding-top:38%}.carousel-item{position:absolute;top:80%;left:50%;transform:translate(-50%,-50%) scale(0);opacity:0;transition:transform .6s ease,opacity .6s ease,filter .6s ease;cursor:pointer}.carousel-item.active{transform:translate(-50%,-50%) scale(1);opacity:1;z-index:3;filter:none}.carousel-item.left,.carousel-item.right{transform:translate(-50%,-50%) scale(.8);opacity:.5;z-index:1;filter:blur(4px)}.carousel-item.left{transform:translate(-115%,-50%) scale(.8)}.carousel-item.right{transform:translate(25%,-50%) scale(.8)}.carousel-item.hidden{pointer-events:none}.carousel-controls{margin-top:2rem;display:flex;justify-content:center;gap:1rem}.carousel-controls .ctrl{background:transparent;border:none;color:#fff;font-size:2rem;cursor:pointer;transition:color .3s}.carousel-controls .ctrl:hover{color:#1da57a}.P-contact{padding:4rem 3rem;max-width:1350px;margin:0 auto}.contact-card{background:#fff;border-radius:1rem;box-shadow:0 8px 24px #0000001a;padding:2rem 2.5rem;max-width:600px;margin:2rem auto 0;display:flex;flex-direction:column;gap:1.5rem}.contact-item{display:flex;align-items:center;gap:1rem}.contact-label{font-weight:600;font-size:1.5rem;color:#1b2a41;min-width:80px}.contact-link{color:#1da57a;text-decoration:none;position:relative;padding-bottom:2px;font-size:1.5rem}.contact-link:after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:#1da57a;transition:width .3s ease-in-out}.contact-link:hover:after{width:100%}.contact-text{font-size:1.5rem;color:#333}::-webkit-scrollbar{display:none}.layout{display:flex}.layout .sider{display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto}.layout .sider .info-container{height:30%}.layout .sider .info-container .avatar-wrapper{display:flex;justify-content:center;align-items:center;height:70%}.layout .sider .info-container .name-wrapper{display:flex;justify-content:center;height:30%}.layout .sider .info-container .name-wrapper .name{font-size:2rem;font-weight:550}.layout .sider .menu-wrapper{height:40%;overflow:auto}.layout .sider .bottom-container{position:relative;height:30%}.layout .sider .bottom-wrapper{position:sticky;bottom:0;width:100%;padding:1rem}.layout .sider .bottom-wrapper .resume-btn-wrapper{display:flex;justify-content:center;margin-bottom:3rem}.layout .sider .bottom-wrapper .resume-btn-wrapper .ant-btn{width:80%;border-radius:2rem}.layout .sider .bottom-wrapper .social-container{display:flex;justify-content:center;gap:2.5rem}.layout .sider .bottom-wrapper .social-container a{width:2rem;height:2rem}.layout .sider .bottom-wrapper .social-container a img{width:100%;height:100%;object-fit:contain;filter:grayscale(30%) brightness(1.2);transition:filter .3s,transform .3s}.layout .sider .bottom-wrapper .social-container a:hover img{filter:none;transform:scale(1.1)}.layout .content{flex:1}
