body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@tailwind base;@tailwind components;@tailwind utilities;.main{height:100vh;transform:transale3d(0,0,0)}.custom-indent p:nth-child(n+2){text-indent:2em}.custom-indent p:first-child{text-indent:0!important}.no-min-width.MuiButton-root{min-width:0!important}.section-title,h1,h2,h3,h4,h5{color:#394852}@media(min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:960px!important}}.MuiTimelineOppositeContent-root{padding-left:0!important;white-space:nowrap}.App{position:relative}.App a{color:inherit!important}.main-content{flex:1 1;padding:0 40px;transition:margin-left .3s ease-in-out;background-repeat:no-repeat;background-size:cover;color:#2a2e36}@media screen and (max-width:576px){.main-content{padding-left:0;padding-right:10px}}.main-content a{color:#394852}.main-content .total-container{height:100vh;display:flex}.main-content .total-container .right{flex:1 1;transition:padding-left .3s ease-in-out}.main-content .total-container.unlimited{transition:width .1s ease-in-out;margin:0;max-width:unset!important}.site-top-menu{background-color:hsla(0,0%,100%,.5);border-bottom:1px solid rgba(0,0,0,.1);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.site-top-menu .container,.site-top-menu .container-lg,.site-top-menu .container-md,.site-top-menu .container-sm,.site-top-menu .container-xl{max-width:960px!important}.site-top-menu .container{height:100%}.site-top-menu .button-row{height:100%;display:flex;justify-content:flex-end;align-items:center}.site-top-menu .button-row a{text-decoration:none}.site-top-menu .button-row .menu-button{margin-left:10px;text-transform:none;font-feature-settings:"smcp";font-variant:small-caps;font-size:.9rem;color:unset}.site-top-menu .button-row .menu-button button{padding:0 20px}.site-top-menu .button-row .menu-button.MuiButton-text{padding:0;margin-top:3px;margin-bottom:3px}.site-top-menu .button-row .menu-button .title-container{padding:4px 10px 0;border-bottom:3px solid transparent}.site-top-menu .button-row .menu-button.active .title-container{width:100%;border-top-right-radius:3px;border-bottom:3px solid #7bb9d1;color:#286197}.message-block-container{transition:all .3s ease-in-out!important;width:100%}.message-block-container.message-collapsed{position:absolute;right:-10px;transform:translateX(100%);width:60px}.message-block-container .title-row p{margin-bottom:0}.message-block-container .title-row{display:flex;background:linear-gradient(90deg,hsla(0,0%,100%,.5),hsla(0,0%,100%,0) 29%);padding:10px 20px 8px;border-top-left-radius:10px;border-top-right-radius:10px;-webkit-backdrop-filter:saturate(10%) blur(3px);backdrop-filter:saturate(10%) blur(3px);box-shadow:0 7px 29px 0 rgba(100,100,111,.3);justify-content:space-between;align-items:center}.message-block-container .title-row .title{border-left:10px solid #e4e4f1;padding-left:20px}.message-block-container .title-row button{min-width:0}.message-block-container .title-row,.message-block-container .title-row button{color:#394852;font-weight:700;font-size:20px}.message-block-container .message-block a,.message-block-container .message-block div,.message-block-container .message-block p{word-break:break-word}.message-block-container .left-triangle{width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:20px solid #fff;margin-top:20px}.message-block-container .box{background-color:#fff;box-shadow:0 7px 15px 0 rgba(100,100,111,.3);padding:30px 44px;border-radius:10px;flex:1 1;z-index:1}.custom-collapse-button{color:inherit;transform:rotate(180deg)}.custom-collapse-button.collapsed{transform:rotate(1turn)}.custom-collapse-button.MuiButtonBase-root{min-width:10px;color:#394852;margin:0}.custom-timeline.MuiTimeline-root{padding-left:0!important;padding-right:0!important}.custom-timeline .MuiTimelineItem-content{padding-right:0}.custom-timeline .MuiTimelineOppositeContent-root{width:150px;flex:unset}@media screen and (max-width:768px){.custom-timeline .MuiTimelineOppositeContent-root{display:none}}.custom-timeline .timeline-card{position:relative;border-radius:5px;padding:10px 15px 13px;margin-right:16px}@media screen and (max-width:768px){.custom-timeline .timeline-card{margin-right:0}}.custom-timeline .timeline-card .overlay-detail-button{position:absolute;top:0;left:0;width:100%;height:100%}.custom-timeline .timeline-card .title{font-weight:700;color:#394852}.custom-timeline .timeline-card .description{font-size:14px;color:#8a9aad;font-style:italic}.custom-timeline .timeline-card .description2{font-size:14px;color:#424e5c}.custom-timeline .timeline-card .description2 a{color:#989fc3!important}.custom-timeline .timeline-card .description2>ul>li{margin-top:10px}.custom-timeline .timeline-card .description2>ul>li li{margin-top:4px}.custom-timeline .timeline-card .url-link{font-size:14px}.custom-timeline .timeline-card .detail-button{text-transform:none;transform:translateY(-5px)}.custom-timeline .timeline-card .description-row{display:flex;justify-content:space-between;align-items:center;margin-top:-8px}.custom-timeline .timeline-card .description-row button{color:#8a9aad!important}.custom-timeline .timeline-card .description-row button .expanded{transition:transform .3s ease-in-out;transform:rotate(180deg)}.custom-timeline .timeline-card .description-row button .collapsed{transition:transform .3s ease-in-out;transform:rotate(0deg)}.skills-custom-list-row{align-items:center;margin-bottom:12px}.skills-custom-list-row ul li:before{content:"•";color:#7bb9d1;font-weight:700;display:inline-block;width:.85rem}.skills-custom-list-row .category{border:1px solid hsla(0,0%,86.7%,.8352941176);border-radius:4px;box-shadow:0 2px 8px 0 rgba(99,99,99,.17);margin-bottom:20px}.skills-custom-list-row .category>div{margin-top:-14px}.skills-custom-list-row ul{margin-top:0;list-style:none;margin-left:-20px;margin-bottom:0}.skills-custom-list-row ul.flex{display:flex;flex-wrap:wrap}.skills-custom-list-row ul.flex li{margin-left:10px;white-space:nowrap}.skills-custom-list-row .custom-list-dot{height:100%;width:25px;display:flex;align-items:center;justify-content:flex-start}.skills-custom-list-row .custom-list-dot svg{height:15px;color:#9898de}.skills-custom-list-row .custom-list-item{display:block;margin-left:10px}.skills-custom-list-row .category-row{display:flex;margin-bottom:8px}.skills-custom-list-row .category-row .title{font-weight:500;width:155px;padding-top:5px;padding-bottom:5px;text-align:right;padding-right:15px}.skills-custom-list-row .category-row .list{flex:1 1;border-left:4px solid rgba(147,169,195,.3)}.skills-custom-list-row .category-row .list .list-container{margin-left:-10px;padding-top:5px;padding-bottom:5px}.circular:first-child img{width:100%}.about-me .job-title-row,.about-me .name-row{text-align:center}.about-me .job-title-row .software-engineer{color:#989fc3;font-weight:600}.about-me .self-intro{display:flex}.about-me .self-intro .left{max-width:240px;margin-right:35px;display:flex;flex-direction:column;justify-content:flex-start}.about-me .self-intro .right{flex:1 1}.contact .linkedin-git{margin-left:-9px;display:flex}.contact .contact-item{display:flex;align-items:center;font-size:14px}.contact .contact-item .key,.contact .contact-item a{align-items:center;width:36px}.contact .contact-item .key svg,.contact .contact-item a svg{color:#5d5d86}.contact .contact-item .value{flex:1 1}.math-material ul{margin-left:-20px;list-style:none}.math-material ul li:before{content:"•";color:#7bb9d1;font-weight:700;display:inline-block;width:.85rem}.math-material .notes{display:flex}.math-material .notes .button-column{margin-right:10px;width:180px;display:block;align-items:flex-end}.math-material .notes .button-column button{border-top-right-radius:2px;border-bottom-right-radius:2px;width:100%;padding:4px 10px 4px 0;display:flex;justify-content:flex-end;margin-bottom:4px}.math-material .notes .notes-column{flex:1 1}.math-material .notes .topic-button{border-radius:0;padding:0 4px;margin-right:10px;border-left:3px solid transparent;text-transform:capitalize;font-feature-settings:"smcp";font-variant:small-caps}.math-material .notes .active{border-left-color:#7bb9d1;background-color:#deeaee}.math-material .notes .tutorial-notes{font-size:.9}.math-material .notes .tutorial-notes .tutorial-title-row{width:100%;display:flex}.math-material .notes .tutorial-notes .tutorial-title-row .title{font-size:.95rem;flex:1 1}.math-material .notes .link-row{display:flex}.math-material .notes .link-row .link-detail{flex:1 1}.math-material .notes .title{color:#33353f}.math-material .notes .topic{font-weight:500;width:80px;text-align:right;border-right:4px solid rgba(0,0,0,.1);font-size:.9rem;padding-right:15px;margin-right:28px;font-weight:unset}.math-material .notes .note{margin-bottom:10px}.math-material a{color:#387397}.react-images__header_button--fullscreen{display:none!important}.react-photo-gallery--gallery,.react-photo-gallery--gallery *{transition:all 0s ease!important}.react-photo-gallery--gallery img{object-fit:cover;border-radius:3px}.blog .category-row{padding-top:20px;padding-bottom:20px;text-transform:capitalize;font-feature-settings:"smcp";font-variant:small-caps;font-size:1.15rem;font-weight:550;align-items:center}.blog .category-row sup{font-size:10px;margin-left:2px;opacity:.7;margin-right:-6px}.blog .category-row ul{padding-left:0;margin-left:-15px;margin-bottom:0;display:flex;flex-wrap:wrap}.blog .category-row ul li{margin:5px 5px 5px 15px}.blog .category-row .top-row{width:100%;display:flex;justify-content:space-between}.blog .category-row .top-row .cat-left{color:#394852;white-space:nowrap;font-size:1.4rem}.blog .category-row .top-row .cat-right button{color:#394852!important;svg-color:#394852}.blog .category-row .cat-button{display:flex;white-space:nowrap;justify-content:center;align-items:center;position:relative;-webkit-user-select:none;-ms-user-select:none;user-select:none;border:1px solid #31343a;border-radius:3px;cursor:pointer;font-size:.95rem;opacity:.5;padding:3px 15px;transition:opacity .1s ease-in-out}.blog .category-row .cat-button:hover{opacity:1}.blog .category-row .cat-button.active{opacity:1;background:rgba(59,98,145,.5490196078);color:#fff;border-color:transparent}.blog .category-row .cat-button.active svg{color:#fff!important}.blog blockquote{background-color:#f1f1f1;border-left:.5rem solid #d6d6d6;padding:.3rem 1rem;margin:0 0 1rem}.blog blockquote p{margin-bottom:0}.blog blockquote ol,.blog blockquote ul{margin-top:.6rem}.blog pre code{padding:0;font-size:.85rem!important}.token{background:none!important}.articles .display-math,.articles h1,.articles h2,.articles h3,.articles h4,.articles h5,.articles h6{color:inherit;font-family:unset!important;font-weight:550}.articles .display-math~p,.articles h1~p,.articles h2~p,.articles h3~p,.articles h4~p,.articles h5~p,.articles h6~p{text-indent:0;margin-top:1em;margin-bottom:1em}.articles .display-math+p,.articles h1+p,.articles h2+p,.articles h3+p,.articles h4+p,.articles h5+p,.articles h6+p{text-indent:0!important}.articles h5,.articles h6{margin-top:40px;margin-bottom:15px}.articles h5{font-size:21px!important}.articles h6{font-size:19.5px!important}.articles center+p,.articles ol+p,.articles pre+p,.articles ul+p{text-indent:0!important}.articles h4{margin-top:40px;margin-bottom:20px}.articles ul ul{margin-bottom:16px}.articles .TOC-heading>ul{margin-bottom:20px}.articles .TOC-heading ul>li{margin-bottom:10px}.articles .TOC-heading ul>li>ul>li{margin-top:10px;margin-bottom:-5px}.articles .TOC-heading ul>li>ul>li:first-child{margin-top:2px}.articles .prev-next-article-buttons-row{display:flex;justify-content:space-between}.articles .prev-next-article-buttons-row button{text-transform:none;color:#394852}.articles code{background-color:#f5f2f0;padding:.2em .4em;border-radius:6px;color:inherit}.articles .title p{margin-bottom:0}.articles img{border-radius:4px;box-shadow:0 6px 24px 0 rgba(0,0,0,.05),0 0 0 1px rgba(0,0,0,.08)}.articles pre{border-radius:5px;transition:max-width .3s ease-in-out;max-width:860px;overflow-x:auto}.articles pre code{padding:0}.articles.expanded pre{max-width:1040px}.articles .katex-display>.katex{white-space:normal;color:#000}.articles .katex-display>.base{margin:.25em 0}.articles .katex-display{margin:.5em 0}.articles .date{opacity:.7}.articles .date.edited{opacity:.5;font-size:.9rem;font-style:italic}.articles .articles-container{display:flex;justify-content:center}.articles .articles-container .toc-column{text-align:right;border-right:3px solid rgba(0,0,0,.05);padding-right:11px}.articles .articles-container .toc-column .toc-title-row{border-left:3px solid transparent;border-radius:2px;border-top-left-radius:0;border-bottom-left-radius:0;padding-top:5px;padding-bottom:5px;position:relative}.articles .articles-container .toc-column .toc-title-row.active{border-left-color:#7bb9d1;background-color:#deeaee}.articles .articles-container .toc-column .toc-title-row.active .toc-title{font-weight:500;font-size:.88rem}.articles .articles-container .toc-column .toc-title-row .toc-title{font-size:.9rem;line-height:1.2rem;padding:2px 10px}.articles .articles-container .toc-column .toc-title-row .toc-title .toc-title-text{width:100%}.articles .articles-container .toc-column .toc-title-row .toc-date{margin-top:4px;font-size:.95rem;opacity:.7}.articles .articles-container .toc-column .toc-title-row .toc-button{position:absolute;top:0;left:-3px;width:calc(100% + 3px);height:100%;border-radius:0}.articles .articles-container .content{flex:1 1;max-width:740px}.articles .articles-container .content .article{font-weight:0}.articles .articles-container .content .article>div{position:relative}.articles .articles-container .content .article>div qed:after{display:inline-block;position:absolute;content:"■";width:.6rem;height:1.2rem;color:#394852;right:5px;transform:scale(1.1)}.articles .articles-container .content .first-row{display:flex;align-items:center;justify-content:space-between}.articles .articles-container .content .archive-button-row{display:flex}.articles .articles-container .content .archive-button-row button{text-transform:capitalize;font-feature-settings:"smcp";font-variant:small-caps;min-width:4px;font-size:1rem;color:#394852}.articles h5{margin-top:20px;margin-bottom:15px}.tech-blog{line-height:32px;font-size:110%}.tech-blog code,.tech-blog pre{font-size:16px}.achive-drawer{padding:20px 40px}.achive-drawer .toc-home-title-text p{margin-bottom:0}.achive-drawer .close-button-row{position:-webkit-sticky;position:sticky;top:0;padding-top:10px;padding-bottom:5px;background-color:#fff;width:100%;z-index:2}.achive-drawer .close-button-row button{margin-left:-8px;text-transform:capitalize;font-feature-settings:"smcp";font-variant:small-caps;color:#394852}.achive-drawer .toc-home-row{border-left:4px solid transparent;padding-left:20px;margin-bottom:20px}.achive-drawer .toc-home-row.active{border-left-color:#7bb9d1}.achive-drawer .toc-home-row .toc-home-title{padding-bottom:2px}.achive-drawer .toc-home-row .toc-home-title-text{transition:color .15s ease-in-out;cursor:pointer;color:#394852;font-weight:550;font-size:1.05rem}.achive-drawer .toc-home-row .toc-home-title-text:hover{color:rgba(59,98,145,.6862745098)}.achive-drawer .toc-home-row .toc-home-date{padding-top:2px;white-space:nowrap;color:#394852;font-size:1rem;opacity:.8}.toc-home .toc-read-more-button{cursor:pointer;display:inline-block;transition:opacity .1s ease-in-out;border:1px solid #e83e8c;border-radius:5px;padding:4px 10px}.toc-home .toc-read-more-button:hover{opacity:.5}.toc-home .toc-home-row{display:flex;margin-bottom:20px}.toc-home .toc-home-row .toc-home-title{border-left:4px solid rgba(59,98,145,.1490196078);flex:1 1;padding:20px 20px 2px}.toc-home .toc-home-row .toc-home-title p{margin-bottom:0}.toc-home .toc-home-row .toc-home-title-text{display:flex}.toc-home .toc-home-row .toc-home-title-text .toc-home-text-container{margin-top:-20px;margin-left:-10px;padding:0 10px;transition:color .15s ease-in-out;opacity:1;cursor:pointer;color:#394852;line-height:1.8rem;font-weight:550;font-size:1.25rem}.toc-home .toc-home-row .toc-home-title-text .toc-home-text-container:hover{color:rgba(59,98,145,.6862745098)}.toc-home .toc-home-row .toc-home-date{white-space:nowrap;text-align:right;padding-right:15px;margin-right:24px;width:120px;max-width:120px;padding-top:2px;color:#394852;font-size:1rem;opacity:.8}.toc-home .toc-home-row .toc-home-date .edited{font-size:.8rem;opacity:.7}.toc-home .toc-home-row .toc-home-intro{opacity:.5}.custom-loading-overlay{position:absolute;width:100vw;height:100vh;background-color:hsla(0,0%,100%,.6);z-index:2}.custom-loading-overlay .loading-svg{position:absolute;top:calc(50% - 20px);left:calc(50% - 20px);transition:unset!important}