body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.1rem!important;letter-spacing:-.025em;line-height:1.4;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace!important;font-size:1rem!important}.main-container{background-color:#0d1116;position:relative}a{text-decoration:none}a:hover{color:#5000ca;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}a,button,h1,h2,h3,h4,h5,h6,label,li,p,span{color:#fff;font-family:Pretendard,sans-serif}.navigation-bar{background-color:#0d1116;justify-content:space-between}.navigation-bar button{font-family:Pretendard,sans-serif;font-size:1.1rem;padding:6px 10px;text-transform:none}.navigation-bar svg{cursor:pointer}.navigation-bar-responsive p,.navigation-bar-responsive span{color:#0d1116;font-family:Pretendard,sans-serif}.container{align-items:center;display:flex;flex-direction:column;justify-content:center;margin-top:64px;width:100%}.header-image,.header-image img{height:450px;width:100%}.header-image img{object-fit:cover}.mobile-menu-top{align-items:center;font-weight:700;gap:5px}.items-container,.mobile-menu-top{display:flex;justify-content:center}.items-container{flex-direction:column;padding:5% 10%;text-align:left}.light-mode,.light-mode .navigation-bar{background-color:#f8f9fa}.light-mode a,.light-mode button,.light-mode h1,.light-mode h2,.light-mode h3,.light-mode h4,.light-mode h5,.light-mode h6,.light-mode label,.light-mode li,.light-mode p,.light-mode span{color:#0d1116}.light-mode a:hover{color:#5000ca;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}.light-mode .navigation-bar svg{color:#0d1116}.light-mode .about-section{background-image:url(/portfolio/static/media/bg-light.bac0efb485244a522981.png)}.light-mode .skills-container svg{color:#0d1116}.light-mode .chip{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.light-mode .chip,.light-mode .vertical-timeline:before{background-color:#00000014}.light-mode .vertical-timeline--animate .vertical-timeline-element-content.bounce-in{box-shadow:0 3px 1px -2px #0003,0 2px 2px 0 #00000024,0 1px 5px 0 #0000001f}.light-mode .vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date{color:gray}.light-mode .vertical-timeline-element-content-arrow{border-right:7px solid #00000014!important}.light-mode .flex-chips .chip-title{color:#0d1116}@media screen and (max-width:768px){.items-container{padding:5%}}footer{padding-bottom:50px;padding-top:50px;text-align:center}footer div{align-items:center;display:flex;gap:16px;justify-content:center}footer .footer-email{font-size:.9rem;opacity:.7;text-decoration:none}footer .footer-email:hover{opacity:1}footer svg{height:1.1em!important;width:1.1em!important}footer p{font-size:.8em}.dark-mode .about-section{background-color:#0003}.about-section{align-items:center;background-attachment:fixed;background-image:url(/portfolio/static/media/bg-dark.f420c6b8458af72de935.png);background-position:50%;background-repeat:no-repeat;background-size:cover;display:flex;gap:30px;justify-content:flex-start;min-height:700px;padding:0 15%;width:100%}.about-section .content{text-align:left;z-index:2}.about-section .content .social_icons{color:#fff;display:flex;flex-direction:row;gap:10px}.about-section .content .social_icons svg{font-size:1.8em}.about-section .content .mobile_social_icons{display:none}.about-section .content p{font-size:1.5em;margin-block-end:0;margin-block-start:0}.about-section .content h1{font-size:5em;margin-block-end:0;margin-block-start:0}.about-section .image-wrapper{z-index:2}.about-section .image-wrapper img{border-radius:50%;width:150px}.about p{padding-bottom:30%;padding-top:30%;text-align:center}@media screen and (max-width:567px){.nav-left{float:left;padding-top:20px}.nav-left img{height:35px}.nav-right{float:right}.nav-right li{color:#fff;font-size:13px;list-style:none;padding:10px 15px;width:10%}.nav-right ul{list-style-type:none;margin:0;padding:0}body{width:100%}.about{font-size:12px;padding-left:5%;padding-right:5%}}@media screen and (max-width:768px){.about-section h1{font-size:4em!important;text-align:left}.about-section p{text-align:left}.container{display:inline;display:initial}.social_icons{display:none!important}.mobile_social_icons{color:#fff;display:flex!important;flex-direction:row;gap:10px;padding-top:10px}.mobile_social_icons svg{font-size:1.8em}.about-section{display:block;padding-left:0;padding-right:0;padding-top:150px}.about-section .content{padding-bottom:5%;padding-left:5%;padding-right:5%;width:90%}.about-section .image-wrapper{padding-left:5%;width:100%}}.skills-container{display:flex;flex-direction:column;padding:5% 10%;text-align:left}.skills-container svg{color:#fff}.skills-container .skills-grid{grid-gap:50px;display:grid;grid-template-columns:repeat(3,1fr)}.skills-container .skills-grid .skill{align-items:center;text-align:left}.chip{background-color:#fff!important;color:#272822!important;font-size:.8rem!important;height:25px!important}.chip span{color:#272822;font-family:Courier Prime,monospace}.chip svg{height:15px!important}.flex-chips{line-height:2;margin:.5}.flex-chips .chip-title{color:#fff;padding-right:10px}.flex-chips .MuiChip-root{margin-right:.5em}.flex-chips .MuiChip-outlined{background-color:#e0e0e0;font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.flex-chips .MuiChip-outlined span{color:#272822}@media screen and (max-width:768px){.skills-container{display:block;padding-left:5%;padding-right:5%}.skills-container .skills-grid{display:inline;display:initial}.skills-container .skills-grid .skill{padding-bottom:5%}}@media screen and (max-width:567px){.skills{font-size:12px}}.vertical-timeline *{-webkit-box-sizing:border-box;box-sizing:border-box}.vertical-timeline{margin:0 auto;max-width:1170px;padding:2em 0;position:relative;width:95%}.vertical-timeline:after{clear:both;content:"";display:table}.vertical-timeline:before{background:var(--line-color);content:"";height:100%;left:18px;position:absolute;top:0;width:4px}.vertical-timeline.vertical-timeline--one-column-right:before{left:auto;right:18px}@media only screen and (min-width:1170px){.vertical-timeline.vertical-timeline--two-columns{width:90%}.vertical-timeline.vertical-timeline--two-columns:before{left:50%;margin-left:-2px}}.vertical-timeline-element{margin:2em 0;position:relative}.vertical-timeline-element>div{min-height:1px}.vertical-timeline-element:after{clear:both;content:"";display:table}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}@media only screen and (min-width:1170px){.vertical-timeline-element{margin:4em 0}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}}.vertical-timeline-element-icon{border-radius:50%;-webkit-box-shadow:0 0 0 4px #fff,inset 0 2px 0 #00000014,0 3px 0 4px #0000000d;box-shadow:0 0 0 4px #fff,inset 0 2px 0 #00000014,0 3px 0 4px #0000000d;height:40px;left:0;position:absolute;top:0;width:40px}.vertical-timeline--one-column-right .vertical-timeline-element-icon{left:auto;right:0}.vertical-timeline-element-icon svg{display:block;height:24px;left:50%;margin-left:-12px;margin-top:-12px;position:relative;top:50%;width:24px}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-icon{height:60px;left:50%;margin-left:-30px;width:60px}}.vertical-timeline-element-icon{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0)}.vertical-timeline--animate .vertical-timeline-element-icon.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.bounce-in{-webkit-animation:cd-bounce-1 .6s;animation:cd-bounce-1 .6s;visibility:visible}@-webkit-keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2)}to{-webkit-transform:scale(1)}}@keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2);transform:scale(1.2)}to{-webkit-transform:scale(1);transform:scale(1)}}.vertical-timeline-element-content{background:#fff;border-radius:.25em;-webkit-box-shadow:0 3px 0 #ddd;box-shadow:0 3px 0 #ddd;margin-left:60px;padding:1em;position:relative}.vertical-timeline--one-column-right .vertical-timeline-element-content{margin-left:0;margin-right:60px}.vertical-timeline-element--no-children .vertical-timeline-element-content{background:0 0;-webkit-box-shadow:none;box-shadow:none}.vertical-timeline-element-content:after{clear:both;content:"";display:table}.vertical-timeline-element-content h2{color:#303e49}.vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline-element-content p{font-size:13px;font-size:.8125rem;font-weight:500}.vertical-timeline-element-content .vertical-timeline-element-date{display:inline-block}.vertical-timeline-element-content p{line-height:1.6;margin:1em 0 0}.vertical-timeline-element-subtitle,.vertical-timeline-element-title{margin:0}.vertical-timeline-element-content .vertical-timeline-element-date{float:left;opacity:.7;padding:.8em 0}.vertical-timeline-element-content-arrow{border:7px solid #0000;border-right-color:#fff;content:"";height:0;position:absolute;right:100%;top:16px;width:0}.vertical-timeline--one-column-right .vertical-timeline-element-content-arrow{border:7px solid #0000;border-left-color:#fff;content:"";height:0;left:100%;position:absolute;right:auto;top:16px;width:0}.vertical-timeline--one-column-right .vertical-timeline-element-content:before{border-left:7px solid #fff;border-right:initial;left:100%}.vertical-timeline-element--no-children .vertical-timeline-element-content-arrow,.vertical-timeline-element--no-children .vertical-timeline-element-content:before{display:none}@media only screen and (min-width:768px){.vertical-timeline-element-content h2{font-size:20px;font-size:1.25rem}.vertical-timeline-element-content p{font-size:16px;font-size:1rem}.vertical-timeline-element-content .vertical-timeline-element-date{font-size:14px;font-size:.875rem}}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-content{margin-left:0;padding:1.5em;width:44%}.vertical-timeline--two-columns .vertical-timeline-element-content-arrow{left:100%;top:24px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date{font-size:16px;font-size:1rem;left:124%;position:absolute;top:6px;width:100%}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content{float:right}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{left:auto;right:100%;top:24px;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--one-column-right .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--one-column-right .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{left:100%;right:auto;top:24px;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content .vertical-timeline-element-date{left:auto;right:124%;text-align:right}}.vertical-timeline--animate .vertical-timeline-element-content.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2 .6s;animation:cd-bounce-2 .6s;visibility:visible}@media only screen and (min-width:1170px){.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content.bounce-in,.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@media only screen and (max-width:1169px){.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s;visibility:visible}}@-webkit-keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px);transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px);transform:translateX(20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px);transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px);transform:translateX(-20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.vertical-timeline span{color:#fff;font-family:Courier Prime,monospace}.vertical-timeline p,.vertical-timeline-element h3,.vertical-timeline-element h4,.vertical-timeline-element p,.vertical-timeline-element span{color:#272822}.svg-inline--fa,.vertical-timeline-element .vertical-timeline-element-date{color:#fff}@media screen and (max-width:1170px){.vertical-timeline-element .vertical-timeline-element-date{color:#272822}}.projects-container{display:flex;flex-direction:column;padding:5% 10%;text-align:left}.projects-container .projects-grid{grid-gap:50px;display:grid;grid-template-columns:repeat(2,1fr)}.projects-container .projects-grid .project{text-align:left}.project h2:hover{text-decoration:underline;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}.zoom{border-radius:5px;margin:0 auto;transition:transform .2s}.zoom:hover{transform:scale(1.05)}.project-card{border-radius:8px;cursor:pointer;padding:12px;transition:box-shadow .2s,transform .2s}.project-card:hover{box-shadow:0 4px 20px #5000ca26;transform:translateY(-4px)}.project-placeholder-img{align-items:center;background-color:#e0e0e0;border-radius:5px;color:#888;display:flex;font-size:.9rem;height:180px;justify-content:center;margin-bottom:8px;width:100%}.project-period-small{color:gray;font-size:.85rem;margin-bottom:6px}@media screen and (max-width:700px){.projects-container{display:block;padding-left:5%;padding-right:5%}.projects-container .projects-grid{display:block}.projects-container .projects-grid .project{padding-bottom:5%}}.project-detail-container{margin:0 auto;max-width:1100px;overflow-wrap:break-word;padding:84px 10% 8%;text-align:left;word-break:keep-all}.pd-thumbnail{border-radius:10px;margin-bottom:2rem;object-fit:cover;width:100%}.pd-title{font-size:2.4rem;font-weight:700;margin-bottom:.5rem}.pd-meta{font-size:.95rem;margin-bottom:1.4rem;opacity:.6}.pd-meta-divider{margin:0 .6rem}.pd-description{font-size:1.05rem;line-height:1.8;margin-bottom:2rem}.pd-video-wrapper{margin-bottom:3.5rem;padding-bottom:56.25%;position:relative;width:100%}.pd-video-wrapper iframe{border:none;border-radius:10px;height:100%;left:0;position:absolute;top:0;width:100%}.pd-section{margin-bottom:4rem}.pd-section>h2{border-bottom:2px solid #5000ca;font-size:1.6rem;font-weight:700;margin-bottom:1.6rem;padding-bottom:.6rem}.pd-tech-grid{display:flex;flex-direction:column;gap:14px}.pd-tech-category{align-items:flex-start;display:flex;gap:12px}.pd-tech-label{flex-shrink:0;font-size:.82rem;font-weight:700;min-width:80px;padding-top:3px}.pd-diagram-block{margin-bottom:2.8rem}.pd-diagram-block h3{font-size:1.1rem;font-weight:600;margin-bottom:.4rem}.pd-diagram-desc{font-size:.9rem;margin-bottom:.8rem;opacity:.6}.pd-diagram-img{border:1px solid #80808033;border-radius:8px;display:block;width:50%}.pd-brief-roles{margin:0;padding-left:1.2rem}.pd-brief-roles li{font-size:1rem;line-height:2}.pd-roles-grid{grid-gap:40px;display:grid;grid-template-columns:repeat(3,1fr)}.pd-role-card{text-align:left}.pd-role-card svg{color:#fff}.pd-role-card h3{font-size:1.1rem;font-weight:700;margin-bottom:.8rem;margin-top:1rem}.pd-role-points{margin-bottom:1.2rem;padding-left:1.2rem}.pd-role-points li{font-size:.9rem;line-height:1.8}.pd-ts-block{margin-top:1.2rem}.pd-ts-title{font-size:.78rem;font-weight:700;letter-spacing:.06em;margin-bottom:.7rem;opacity:.45;text-transform:uppercase}.pd-ts-card{border-radius:12px;display:flex;flex-direction:column;gap:.55rem;margin-bottom:.6rem;padding:1rem 1.2rem}.pd-ts-card:last-child{margin-bottom:0}.pd-ts-issue-row,.pd-ts-solution-row{align-items:flex-start;display:flex;gap:.6rem}.pd-ts-badge{background-color:#ff505026;border-radius:20px;color:#ff5050!important;flex-shrink:0;font-size:.7rem;font-weight:700;margin-top:2px;padding:2px 7px}.pd-ts-badge--solve{background-color:#00b46426;color:#00b464!important}.pd-ts-issue{font-size:.85rem;font-weight:600;line-height:1.5;margin:0}.pd-ts-solution{font-size:.85rem;line-height:1.6;margin:0;opacity:.85}.pd-github-links{display:flex;flex-wrap:wrap;gap:12px}.pd-github-button{text-transform:none!important}.dark-mode .pd-tech-label{color:#fff!important}.dark-mode .pd-github-button{border-color:#fff!important;color:#fff!important}.dark-mode .pd-ts-card{background-color:#ffffff0d}.light-mode .pd-tech-label{color:#0d1116!important}.light-mode .pd-github-button{border-color:#0d1116!important;color:#0d1116!important}.light-mode .pd-role-card svg{color:#0d1116}.light-mode .pd-ts-card{background-color:#f5f5f7}.light-mode .pd-diagram-img{border-color:#0000001a}@media screen and (max-width:900px){.pd-roles-grid{grid-gap:2rem;grid-template-columns:1fr}}@media screen and (max-width:700px){.project-detail-container{padding:80px 5% 10%}.pd-title{font-size:1.7rem}.pd-tech-category{flex-direction:column;gap:6px}.pd-tech-label{min-width:0;min-width:auto}.pd-diagram-img{width:100%}}
/*# sourceMappingURL=main.a2044d8f.css.map*/