#about>div a,.new-tab-link{color:var(--special-b)}#about>div a:after,.new-tab-link:after{content:"⧉";margin:0 3px 0 5px}#about{position:relative;flex:1}#about>div{display:flex;gap:2rem;line-height:1.5rem;padding:0 5vw;overflow:hidden auto}#about>div>div:not(.about-title){padding:2% 2% 0 0;flex:1 1 0;overflow:auto}.about-title{display:none;align-items:center;justify-content:center;padding:var(--cell-padding);background:var(--e);width:200%;transform:translateX(-25%)}.box{border-radius:6px;background:var(--b);padding:1rem;margin-bottom:1rem}.box ul{padding:0 0 0 1rem;margin:0}.box-title{font-weight:700}.box-position{font-style:italic}.box-position:before{content:" — "}.box-duration{color:var(--a-05);padding:1rem 0}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.5);z-index:99}.modal-container{display:flex;flex-direction:column;width:300px;margin:0 auto;background-color:#fff;border-radius:6px;background:var(--d);box-shadow:-2px -2px 8px var(--special-a),2px 2px 8px var(--special-b);overflow:hidden}.modal-header{position:relative;padding:20px 80px 20px 40px;font-size:1.2rem;background:var(--e)}.modal-header .app-name{padding:0!important}.modal-body{position:relative;flex:1}.modal-close{position:absolute;top:0;right:0;bottom:0;padding:0 40px}.modal-container{transition:transform .25s}.modal-enter-active,.modal-leave-active{transition:opacity .25s}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal-container{transform:scale(.9)}.modal-leave-to .modal-container{transform:scale(1.1)}#modal-links-container,#modal-project-header{display:flex;align-items:center;flex-wrap:wrap}#modal-links{border-left:1px solid var(--a-05);padding:0 20px}#modal-project-body{height:calc(100% - 40px);margin-top:40px;display:flex;flex-direction:column}#modal-nav{position:absolute;top:0;left:40px;background:var(--e);display:flex;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:0 0 6px 6px}#modal-nav div{padding:10px}#modal-nav div.disabled{pointer-events:none;opacity:.5}#modal-nav:after,#modal-nav:before{content:"";position:absolute;right:-6px;width:6px;height:6px;background-image:radial-gradient(circle at 6px 6px,transparent 0,transparent 6px,var(--e) 6px)}#modal-nav:after{left:-6px;background-image:radial-gradient(circle at 0 6px,transparent 0,transparent 6px,var(--e) 6px)}#modal-project-description{padding:40px}#modal-screenshot{flex:1 1 0;min-height:0;background:var(--b)}#modal-screenshot img,#modal-screenshot svg{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-webkit-animation:reveal .25s;animation:reveal .25s}#projects>div>div,.flex-center{display:flex;align-items:center;justify-content:center}#columns>div.first{min-width:30%;padding:0 20px}#projects{overflow:hidden auto}#projects>div{display:flex;border-bottom:5px solid}#projects>div>div{transition:background .15s;flex:1;padding:var(--cell-padding)}.icons{flex-wrap:wrap;gap:10px}.icons svg{vertical-align:middle;width:1.5rem;height:1.5rem}.app-name{min-width:30%;padding:20px!important;gap:20px;justify-content:left}.app-name img{width:40px;height:40px}.app-name svg{margin-left:auto;flex-shrink:0}.app-name:not(#modal-project-header):hover{cursor:pointer}.app-name:not(#modal-project-header):hover,.app-name:not(#modal-project-header):hover~div{background:var(--c)}#app-icon{display:flex;align-items:center;text-align:left}.table-move{transition:transform .25s}.table-move,.table-move *{-webkit-animation:none!important;animation:none!important}@-webkit-keyframes rows-enter-left{0%{transform:translateX(-2rem)}50%{opacity:1;transform:none}to{opacity:1;border-bottom-color:var(--e)}}@keyframes rows-enter-left{0%{transform:translateX(-2rem)}50%{opacity:1;transform:none}to{opacity:1;border-bottom-color:var(--e)}}@-webkit-keyframes rows-enter-right{0%{transform:translateX(2rem)}50%{opacity:1;transform:none}to{opacity:1;border-bottom-color:var(--e)}}@keyframes rows-enter-right{0%{transform:translateX(2rem)}50%{opacity:1;transform:none}to{opacity:1;border-bottom-color:var(--e)}}#about.documents{overflow:auto}#about.documents::-webkit-scrollbar{display:none}#about.documents a{display:block;padding-bottom:1rem}.pdf-enabled{flex-direction:column;overflow:visible!important;gap:0!important;overflow:hidden auto!important;padding:0!important;height:100%;width:20vw}.pdf-enabled>div:not(.about-title):not(#pdf){overflow:visible!important;padding:1rem!important}.pdf-enabled .about-title{display:flex!important;width:100%!important;transform:none!important;padding-right:0!important;padding-left:0!important}.pdf-enabled .file{cursor:pointer}.pdf-enabled .file-active{position:relative;color:var(--special-b)}.pdf-enabled .file-active:before{content:"";position:absolute;top:0;bottom:0;left:-1rem;background:var(--special-b);width:5px}#pdf{position:absolute;top:0;right:0;bottom:0;left:20vw;padding:0!important;opacity:0;-webkit-animation:reveal 1s 1s forwards;animation:reveal 1s 1s forwards;overflow:hidden!important}iframe{width:100%;height:100%;border:none}.special-box{margin-top:1rem;border-radius:6px;border:2px solid var(--e)}#columns>div,.flex-center{display:flex;align-items:center;justify-content:center}#columns{flex-shrink:0;display:flex;text-align:center;background:var(--e);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;transition:opacity 1s;overflow:hidden}#columns>div{flex:1;padding:var(--cell-padding);transition:color .15s,opacity .35s,transform .35s}#columns svg{width:18px;height:18px;margin-left:10px;transition:transform .15s,opacity .15s,width .15s,margin .15s}.sort-icon-enter-from,.sort-icon-leave-to{width:0!important;opacity:0!important;margin:0!important}.columns-enter-from,.columns-leave-to{opacity:0!important}#menu-icon{position:absolute;top:5vw;right:5vw;height:1.3rem;width:1.3rem;cursor:pointer;z-index:2}#menu-icon:after{content:"";position:absolute;top:-5vw;right:-5vw;bottom:-5vw;left:-5vw}#menu-icon div{position:absolute;left:0;height:.15rem;width:100%;background:var(--a);border-radius:1rem;opacity:1;transform:rotate(0deg);transition:.5s}#menu-icon div:first-child{top:0}#menu-icon div:nth-child(2),#menu-icon div:nth-child(3){top:50%}#menu-icon div:nth-child(4){top:100%}#menu-icon.open div:first-child,#menu-icon.open div:nth-child(4){top:50%;left:50%;width:0}#menu-icon.open div:nth-child(2){transform:rotate(45deg)}#menu-icon.open div:nth-child(3){transform:rotate(-45deg)}#navbar,#navbar a{display:flex}#navbar a{position:relative;flex:1 1 0;text-align:center;justify-content:center;align-items:center;padding:var(--cell-padding)}#navbar a div{position:absolute;right:0;bottom:0;left:0;height:0;background:linear-gradient(to right,var(--special-a),var(--special-b))}#navbar a div:not(.is-touch-device){transition:height .15s}#navbar a.router-link-active{color:var(--f);background:linear-gradient(to top,var(--e),var(--c))}#navbar a.router-link-active div{height:5px;transition:transform .15s,height .15s}#navbar a.router-link-active div.is-touch-device{transition:transform .15s}#sidebar{grid-area:b;padding-right:5vw;font-size:.75rem;display:flex;flex-direction:column;overflow:hidden auto;z-index:1;white-space:pre;transition:width 1s,padding 1s;background:radial-gradient(ellipse at 100% 0,transparent 0 60%,var(--special-b) 250%),radial-gradient(ellipse at 30% 100%,transparent 0 60%,var(--special-a) 300%)}#sidebar>div{flex:1;display:flex}.line,.number{display:flex;align-items:center;opacity:0}.number{-webkit-user-select:none;-moz-user-select:none;user-select:none;justify-content:right;padding-right:10px;min-width:2rem;background:var(--e);color:var(--number);-webkit-animation:number-enter .5s forwards;animation:number-enter .5s forwards}.line{position:relative;gap:6px;margin-left:3px;-webkit-animation:line-enter .5s forwards;animation:line-enter .5s forwards}.dot{-webkit-user-select:none;-moz-user-select:none;user-select:none;color:var(--dot)}.dot:first-child:before,.dot:nth-child(3):before{content:"";position:absolute;top:0;bottom:0;width:1px;transform:translateX(-3px);background:var(--dot)}.key,.value{will-change:text-shadow;transform:translateZ(0);transition:text-shadow .4s;transition-timing-function:cubic-bezier(.165,.84,.44,1);-webkit-backface-visibility:hidden;backface-visibility:hidden;perspective:1000}.key{color:var(--key)}.value{color:var(--value)}.bracket{color:var(--bracket)}.root-bracket{color:var(--root-bracket)}@-webkit-keyframes line-enter{0%{filter:brightness(5)}50%,to{opacity:1}}@keyframes line-enter{0%{filter:brightness(5)}50%,to{opacity:1}}@-webkit-keyframes number-enter{0%{color:#fff}50%,to{opacity:1}}@keyframes number-enter{0%{color:#fff}50%,to{opacity:1}}#themes{position:absolute;top:0;left:5vw;display:flex;font-size:.75rem;gap:1rem;padding:1rem 0;z-index:999}#themes>div{flex:1;cursor:pointer;transition:color .15s,text-shadow .15s}#themes>div.active{color:var(--f);text-shadow:0 0 10px var(--a)}#links a,.hover{transition:color .15s}#links a:hover,.hover:hover{cursor:pointer;color:var(--f)}#links a:hover path,.hover:hover path{fill:var(--f)}#links{align-items:center}#links,#links>div{display:flex}#links>div:not(#section-choice){gap:30px}#socials{gap:10px!important;margin:0 30px;padding:0 30px;border-right:1px solid var(--a-05);border-left:1px solid var(--a-05)}#section-choice a{position:relative;padding:5px 10px}#section-choice a:after,#section-choice a:before{content:"";transform:scaleX(0);transition:transform .15s;z-index:-1}#section-choice a:before{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:6px;background:linear-gradient(to right,var(--special-a),var(--special-b))}#section-choice a:after{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:4px;background:var(--d)}#section-choice a.router-link-active{color:var(--f)}#section-choice a.router-link-active:after,#section-choice a.router-link-active:before{transform:scale(1)}#intro{position:relative;padding:8vh 5vw 0;overflow:hidden;z-index:0;transition:height 1s;background:radial-gradient(ellipse at 70% 100%,var(--c) 0 60%,var(--special-a) 250%)}#intro>:not(:first-child){margin-bottom:2%}#logo{position:absolute;top:0;right:0;bottom:0;height:100%;width:auto;transform:scale(1.01);transition:filter 1s;will-change:filter;z-index:-1}#logo.completed{filter:drop-shadow(-2px -2px 4px var(--special-a)) drop-shadow(2px 2px 4px var(--special-b))}#logo path{fill:var(--d)}#title{padding-right:2rem;font-size:1.3rem;letter-spacing:.1rem;line-height:2rem}#typewriter>div{display:inline-block}#typewriter>div>span{position:relative;opacity:0}#typewriter>div>span.visible{opacity:1}#typewriter>div>span[caret]:after{content:"";position:absolute;top:0;width:.3rem;height:1rem;transform:scaleY(2) translate(-.4rem);background:var(--a);box-shadow:0 0 8px 0 var(--a)}#typewriter>div>span[last]:after{-webkit-animation:reveal .15s 8 alternate forwards;animation:reveal .15s 8 alternate forwards}#last-updated{display:inline-block;font-size:.6rem;letter-spacing:.05rem;line-height:0;color:var(--special-a);text-wrap:nowrap;opacity:0;margin-left:.2rem;transform:translateX(-1rem);-webkit-animation:reveal-last-updated .25s forwards;animation:reveal-last-updated .25s forwards}@-webkit-keyframes reveal-last-updated{to{opacity:1;transform:none}}@keyframes reveal-last-updated{to{opacity:1;transform:none}}:root{--font-size:16px;--cell-padding:16px;--a:#d8d4cf;--a-05:hsla(33,10%,83%,.5);--b:#262335;--b-025:rgba(38,35,53,.25);--c:#241b2f;--d:#171520;--e:#362b48;--f:#fff;--key:#72efb6;--value:#ff8b39;--bracket:orchid;--root-bracket:gold;--number:#8a8592;--dot:#444250;--special-a:#fc28a8;--special-b:#03edf9}body:not(.synthwave){--special-a:var(--key);--special-b:var(--value)}body.light{--a:#505356;--a-05:rgba(36,41,47,.5);--b:#fff;--b-025:hsla(0,0%,100%,.25);--c:#eff0f1;--d:#f6f8fa;--e:#e8ebef;--f:#000;--key:#0073ff;--value:#3e70a6;--bracket:#319331;--root-bracket:#0431fa;--number:#57606a;--dot:#d8dee4}body.light .invert{filter:invert(1)!important}body.dark{--a:#adbac7;--a-05:rgba(173,186,199,.5);--b:#22272e;--b-025:rgba(34,39,46,.25);--c:#1c2128;--d:#181b20;--e:#292e36;--key:#6cb6ff;--value:#96d0ff;--number:#768390;--dot:#373e47}body.monokai{--a:#ccc;--a-05:hsla(0,0%,80%,.5);--b:#1e1e1e;--b-025:rgba(30,30,30,.25);--c:#272727;--d:#191919;--e:#303030;--key:#c7444a;--value:#9aa83a;--number:#858585;--dot:#505037}::-webkit-scrollbar{width:1rem}::-webkit-scrollbar-track{background:var(--b)}::-webkit-scrollbar-thumb{background:var(--dot)}::-webkit-scrollbar-thumb:active{background:var(--number)}html{font-size:var(--font-size);-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:Avenir,Helvetica,Arial,sans-serif;margin:0;background:var(--c)}a,body{color:var(--a)}a{text-decoration:none}ul{-webkit-margin-before:0;margin-block-start:0}img,svg{width:1.2rem;height:1.2rem}svg:not([unmodified]){vertical-align:text-bottom;fill:var(--a)}svg:not([unmodified]) path{fill:var(--a);transition:fill .15s}.flex-center{display:flex;align-items:center;justify-content:center}.abs-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hover{transition:color .15s}.hover:hover{cursor:pointer;color:var(--f)}.hover:hover path{fill:var(--f)}.new-tab-link{color:var(--special-b)}.new-tab-link:after{content:"⧉";margin:0 3px 0 5px}@-webkit-keyframes reveal{0%{opacity:0}to{opacity:1}}@keyframes reveal{0%{opacity:0}to{opacity:1}}.reveal-enter-active,.reveal-leave-active{transition:opacity .15s!important}.reveal-enter-from,.reveal-leave-to{opacity:0}.slide-enter-active{transition:opacity .35s,transform .35s}.slide-enter-active.slide-move{transition:opacity .2s .15s,transform .35s!important}.slide-leave-active{display:none!important}.slide-enter-from{opacity:0;transform:translateX(10%)}.slide-enter-from-left .slide-enter-from{transform:translateX(-10%)!important}@media screen and (max-width:1920px){:root{--font-size:18px;--cell-padding:16px 10px}}@media screen and (max-width:1680px){:root{--font-size:16px;--cell-padding:16px 5px}}@media screen and (max-width:1536px){:root{--font-size:14px}}@media screen and (max-width:1440px){#dynamic-content>div:not(#about){padding:0!important}#sidebar{padding-right:20px}}@media screen and (max-width:1366px){#app{grid-template:min-content/1fr!important;min-height:100vh;height:auto!important}#menu-icon{left:50%;top:20px}#intro{padding:5vw 45vw 2vw 5vw!important}#links{align-items:normal;padding-top:5%!important;gap:20px;flex-direction:column}#links>div{white-space:nowrap}#socials{gap:30px!important;margin:0!important;padding:0!important;border:none!important}#columns{white-space:normal}#sidebar{position:fixed;top:0;right:0;bottom:0;background:var(--b-025);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:background .5s,opacity .5s,-webkit-backdrop-filter .5s;transition:background .5s,backdrop-filter .5s,opacity .5s;transition:background .5s,backdrop-filter .5s,opacity .5s,-webkit-backdrop-filter .5s}}@media screen and (max-width:768px){:root{--cell-padding:10px 5px}#themes{position:fixed!important;left:calc(50% - 10vw)!important;width:20vw;text-align:center;background:var(--c);border-radius:0 0 8px 8px;opacity:0}#menu-icon{left:auto}#intro{padding:5vw 5vw 2vw!important}#links>div{text-align:center;gap:0!important}#links>div>*{flex:auto}#section-choice a{flex:1 1 0}.are-projects #columns>div{flex:auto}.are-projects #columns>div:first-child,.are-projects #columns>div:not(.hover){display:none;transition:none!important}#projects{overflow:hidden!important}#projects>div{flex-wrap:wrap}#projects .app-name{flex:1 1 100%!important;padding:10px 20px!important}#projects .icons{position:relative;flex:1 1 100%;padding-left:5rem;padding-right:5rem}#projects .icons:before{position:absolute;top:50%;left:20px;transform:translateY(-50%);color:var(--a-05)}#projects .icons.links:before{content:"Links:"}#projects .icons.tech:before{content:"Tech:"}#sidebar{left:0}.modal-container{width:100%!important;height:100%!important}.modal-close{align-items:normal;padding:30px 40px!important}#modal-project-header{flex-direction:column;align-items:normal}#modal-nav{right:40px}#modal-nav div{flex:1;text-align:center}#about>div{flex-direction:column;overflow:visible!important;gap:0!important}#about>div>div:not(.about-title):not(#pdf){overflow:visible!important;padding:1rem!important}#about.documents{overflow:visible!important}.about-title{display:flex!important}}@media(orientation:portrait)and (max-width:1366px){#logo.completed{filter:none}}@media(orientation:landscape)and (max-width:1366px)and (max-height:768px){.modal-container{width:100%!important;height:100%!important;overflow:auto!important}#themes{z-index:98}#modal-screenshot{margin:0 40px}#modal-screenshot img,#modal-screenshot svg{width:100%;height:auto}}@media screen and (max-width:372px){:root{--font-size:12px}}@media screen and (max-width:320px){:root{--font-size:10px}}#app{display:grid;height:100vh;overflow:hidden;grid-template:"a b" "c b" 1fr/1fr;background:var(--d);transition:opacity .15s}#dynamic-content{display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse at 30% 0,var(--d) 0 60%,var(--special-b) 250%)}#dynamic-content>div:not(#about){padding:0 5vw}.content{overflow:hidden auto}#themes-note{text-align:center;color:var(--a-05);padding:2rem}.mobile-sidebar-enter-from,.mobile-sidebar-leave-to{background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.mobile-sidebar-leave-to{opacity:0}