From 4c7d96a98ac4e8d4bc1421cbd513c81fba702f71 Mon Sep 17 00:00:00 2001 From: khoaxuantu <68913255+khoaxuantu@users.noreply.github.com> Date: Sat, 17 Jun 2023 16:37:46 +0700 Subject: [PATCH] Updates --- asset-manifest.json | 16 +-- index.html | 2 +- .../{main.fe476183.css => main.e553efff.css} | 4 +- ...fe476183.css.map => main.e553efff.css.map} | 2 +- static/js/381.03328f92.chunk.js | 1 - static/js/381.29a95a9f.chunk.js | 1 + static/js/main.1bde719c.js | 3 + ...CENSE.txt => main.1bde719c.js.LICENSE.txt} | 0 static/js/main.1bde719c.js.map | 1 + static/js/main.d0babc5d.js | 3 - static/js/main.d0babc5d.js.map | 1 - ...vascript_keynotes.b9026eb7e57147e1c8f9.md} | 112 +++++++++++++++++- 12 files changed, 128 insertions(+), 18 deletions(-) rename static/css/{main.fe476183.css => main.e553efff.css} (99%) rename static/css/{main.fe476183.css.map => main.e553efff.css.map} (99%) delete mode 100644 static/js/381.03328f92.chunk.js create mode 100644 static/js/381.29a95a9f.chunk.js create mode 100644 static/js/main.1bde719c.js rename static/js/{main.d0babc5d.js.LICENSE.txt => main.1bde719c.js.LICENSE.txt} (100%) create mode 100644 static/js/main.1bde719c.js.map delete mode 100644 static/js/main.d0babc5d.js delete mode 100644 static/js/main.d0babc5d.js.map rename static/media/{uncommon_javascript_keynotes.5197416f72cbab6988d3.md => uncommon_javascript_keynotes.b9026eb7e57147e1c8f9.md} (90%) diff --git a/asset-manifest.json b/asset-manifest.json index 290b726..ec66087 100644 --- a/asset-manifest.json +++ b/asset-manifest.json @@ -1,7 +1,7 @@ { "files": { - "main.css": "/static/css/main.fe476183.css", - "main.js": "/static/js/main.d0babc5d.js", + "main.css": "/static/css/main.e553efff.css", + "main.js": "/static/js/main.1bde719c.js", "static/js/436.5ef6ea98.chunk.js": "/static/js/436.5ef6ea98.chunk.js", "static/css/631.825fb00c.chunk.css": "/static/css/631.825fb00c.chunk.css", "static/js/631.33fa3359.chunk.js": "/static/js/631.33fa3359.chunk.js", @@ -12,7 +12,7 @@ "static/js/258.d411f128.chunk.js": "/static/js/258.d411f128.chunk.js", "static/js/699.296bc616.chunk.js": "/static/js/699.296bc616.chunk.js", "static/js/771.aca2d55b.chunk.js": "/static/js/771.aca2d55b.chunk.js", - "static/js/381.03328f92.chunk.js": "/static/js/381.03328f92.chunk.js", + "static/js/381.29a95a9f.chunk.js": "/static/js/381.29a95a9f.chunk.js", "static/js/402.7f9601cf.chunk.js": "/static/js/402.7f9601cf.chunk.js", "static/media/background.webp": "/static/media/background.0fe630389f9da00b4da2.webp", "static/media/TaiwanTech.webp": "/static/media/TaiwanTech.3239f7b9cd053ceaa9ae.webp", @@ -23,7 +23,7 @@ "static/media/Calendar.webp": "/static/media/Calendar.2f09a23cd515977f2be4.webp", "static/media/HanoiAms.webp": "/static/media/HanoiAms.ddc950d4a3afc5346ba9.webp", "static/media/MailSPA.webp": "/static/media/MailSPA.324994b1a4d69b103723.webp", - "static/media/uncommon_javascript_keynotes.md": "/static/media/uncommon_javascript_keynotes.5197416f72cbab6988d3.md", + "static/media/uncommon_javascript_keynotes.md": "/static/media/uncommon_javascript_keynotes.b9026eb7e57147e1c8f9.md", "static/media/Wiki.webp": "/static/media/Wiki.8bcf16832e49d293cb0f.webp", "static/media/Firebase-Light.svg": "/static/media/Firebase-Light.be39887274fc1d39cbc0.svg", "static/media/Flask-Dark.svg": "/static/media/Flask-Dark.3b200b23ebd34ac92edc.svg", @@ -53,8 +53,8 @@ "static/media/C.svg": "/static/media/C.c626ccb6c2805626752f.svg", "static/media/CSS.svg": "/static/media/CSS.5fcd7f5683afc0fc6d01.svg", "static/media/HTML.svg": "/static/media/HTML.ca0db580ffd74f086f2d.svg", - "main.fe476183.css.map": "/static/css/main.fe476183.css.map", - "main.d0babc5d.js.map": "/static/js/main.d0babc5d.js.map", + "main.e553efff.css.map": "/static/css/main.e553efff.css.map", + "main.1bde719c.js.map": "/static/js/main.1bde719c.js.map", "436.5ef6ea98.chunk.js.map": "/static/js/436.5ef6ea98.chunk.js.map", "631.825fb00c.chunk.css.map": "/static/css/631.825fb00c.chunk.css.map", "631.33fa3359.chunk.js.map": "/static/js/631.33fa3359.chunk.js.map", @@ -65,7 +65,7 @@ "402.7f9601cf.chunk.js.map": "/static/js/402.7f9601cf.chunk.js.map" }, "entrypoints": [ - "static/css/main.fe476183.css", - "static/js/main.d0babc5d.js" + "static/css/main.e553efff.css", + "static/js/main.1bde719c.js" ] } \ No newline at end of file diff --git a/index.html b/index.html index 7b9517a..98707e2 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Tuslipid
\ No newline at end of file +Tuslipid
\ No newline at end of file diff --git a/static/css/main.fe476183.css b/static/css/main.e553efff.css similarity index 99% rename from static/css/main.fe476183.css rename to static/css/main.e553efff.css index 61c1364..56c2572 100644 --- a/static/css/main.fe476183.css +++ b/static/css/main.e553efff.css @@ -1,2 +1,2 @@ -@import url(https://fonts.googleapis.com/css2?family=Montserrat&display=swap);@import url(https://fonts.googleapis.com/css2?family=Courier+Prime&display=swap);.mt-0{margin-top:0!important}.pt-0{padding-top:0!important}.mt-1{margin-top:.25rem!important}.pt-1{padding-top:.25rem!important}.mt-2{margin-top:.5rem!important}.pt-2{padding-top:.5rem!important}.mt-3{margin-top:1rem!important}.pt-3{padding-top:1rem!important}.mt-4{margin-top:1.5rem!important}.pt-4{padding-top:1.5rem!important}.mt-5{margin-top:3rem!important}.pt-5{padding-top:3rem!important}.mb-0{margin-bottom:0!important}.pb-0{padding-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.pb-1{padding-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.pb-2{padding-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.pb-3{padding-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.pb-4{padding-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.pb-5{padding-bottom:3rem!important}.ms-0{margin-left:0!important}.ps-0{padding-left:0!important}.ms-1{margin-left:.25rem!important}.ps-1{padding-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ps-2{padding-left:.5rem!important}.ms-3{margin-left:1rem!important}.ps-3{padding-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ps-4{padding-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ps-5{padding-left:3rem!important}.me-0{margin-right:0!important}.pe-0{padding-right:0!important}.me-1{margin-right:.25rem!important}.pe-1{padding-right:.25rem!important}.me-2{margin-right:.5rem!important}.pe-2{padding-right:.5rem!important}.me-3{margin-right:1rem!important}.pe-3{padding-right:1rem!important}.me-4{margin-right:1.5rem!important}.pe-4{padding-right:1.5rem!important}.me-5{margin-right:3rem!important}.pe-5{padding-right:3rem!important}.m-0{margin:0!important}.p-0{padding:0!important}.m-1{margin:.25rem!important}.p-1{padding:.25rem!important}.m-2{margin:.5rem!important}.p-2{padding:.5rem!important}.m-3{margin:1rem!important}.p-3{padding:1rem!important}.m-4{margin:1.5rem!important}.p-4{padding:1.5rem!important}.m-5{margin:3rem!important}.p-5{padding:3rem!important}.btn,.flex-image,.icon,.oauth-grp div,.read-more-btn a{align-items:center;display:flex;justify-content:center}.center{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.d-flex{display:flex!important}.is-current{display:block!important}img{height:auto;max-width:100%;object-fit:fill}.avatar-grp{background-color:#fff;border:none}.avatar{border-radius:50%;cursor:pointer;display:none;margin-left:auto;margin-right:auto;transition:src .5s}.icon{width:33.33%}.icon img{max-width:32px}.proj-image{align-items:center;border-radius:inherit;justify-content:center}.proj-image img{border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0}.edu-image{min-width:48px;width:16.66%}.flex-image{justify-content:center}@media (max-width:320px){.avatar{width:100px}}@media screen and (min-width:768px){.proj-image{border-radius:5px}.proj-image img{border-bottom-left-radius:5px;border-bottom-right-radius:5px}}.menu-copyright,.page-copyright{font-family:Montserrat,sans-serif;font-size:12px;padding:0 .5rem;text-align:center;width:100%}a{color:#0d6efd;text-decoration:none}a:hover{text-decoration:underline}.header-txt{font-family:Montserrat,sans-serif;font-size:20px;padding:.5rem}.description-txt{font-family:Courier Prime,monospace;font-size:12px}.guestbook-txt,.oauth-txt{font-family:Montserrat,sans-serif;font-size:12px}.guestbook-txt{word-break:break-word}@media (min-width:576px){.header-txt{font-size:24px}.description-txt,.guestbook-txt,.oauth-txt{font-size:14px}}hr{background:linear-gradient(90deg,#fff,#000,#fff);border:none;height:1px;margin:2rem 10rem 0}@media (max-width:576px){hr{margin-left:10%;margin-right:10%}}.btn{background-color:#fff;border:1px solid #cbcbcb;border-radius:5px;box-shadow:2px 2px 0 rgba(0,0,0,.25);opacity:.8}.btn:hover{border:none;box-shadow:4px 4px 4px rgba(0,0,0,.25);opacity:1}.btn-square{aspect-ratio:1;cursor:pointer;width:2rem}.btn-rect{aspect-ratio:2;cursor:pointer;width:4.6875rem}.btn-grp{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;row-gap:.5rem}.btn-grp a{font-size:12px;margin:0 .625rem}.btn-skill{aspect-ratio:1;color:#000;cursor:pointer;font-size:10px!important;transition:scale .15s ease-out;width:3rem}.btn-skill #name{display:none;text-align:center;width:66.66%}.btn-skill:hover{scale:1.1;text-decoration:none}.btn-oauth-box{width:100%}.btn-oauth{aspect-ratio:6;border-radius:25px;cursor:pointer;width:80%}.btn-oauth-github{background-color:#000;box-shadow:none}.btn-oauth-github .oauth-txt{color:#fff}.btn-oauth-google{box-shadow:none}.read-more-btn{display:flex;height:20%;justify-content:center;margin-top:auto}.read-more-btn a{background-color:#cbcbcb;border-radius:15px;color:#000;height:100%;min-height:30px;min-width:120px;transition:all .3s ease-in-out;width:16.67%}.read-more-btn a:hover{background-color:#8c8c8c;color:#fff;text-decoration:none}@media (min-width:320px){.btn-square{width:3rem}}@media (min-width:576px){.btn-square{width:4rem}.btn-rect{width:6.25rem}.btn-grp a{font-size:16px}.btn-skill{aspect-ratio:3;cursor:pointer;font-size:12px!important;width:150px}.btn-skill #name{display:block}.read-more-btn{justify-content:flex-end;padding-right:1.5rem}}@media screen and (min-width:768px){.btn-oauth{aspect-ratio:5}}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,5%,0);transform:translate3d(0,5%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,5%,0);transform:translate3d(0,5%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-5%,0);transform:translate3d(0,-5%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-5%,0);transform:translate3d(0,-5%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-5%,0,0);transform:translate3d(-5%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-5%,0,0);transform:translate3d(-5%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.transition-menu{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition-page{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.is-current{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:fadeIn;animation-name:fadeIn}.fade-in-left,.guestbook-txt>*,.transition-blog>*{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.navbar{border-radius:5px;width:100%}.navbar button{aspect-ratio:1/1;background-color:#383838;border:none;border-radius:5px;cursor:pointer;position:absolute;width:45px}.navbar button:after{background-color:#191717;box-shadow:0 10px 0 #191717,0 20px #191717;content:"";height:.5rem;left:18%;position:absolute;top:18%;width:66.67%}.navbar-wrap{left:0;position:fixed;top:0;z-index:1}.navbar-menu{background-color:#383838;border-radius:5px;display:none;width:100%}.navbar-menu li{cursor:pointer}.navbar-menu li a{color:#fff;display:block;font-size:14px;height:auto;padding:.5rem;text-decoration:none;width:100%}.navbar-menu li:hover{background-color:#8c8c8c;opacity:.6}.menu-animation{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.tab-list .is-current{background-color:#cbcbcb;border-bottom:2px solid #8c8c8c;border-left:none;font-weight:700}.vertical-tab{background-color:#fff;border:none;border-bottom:2px solid #cbcbcb;cursor:pointer;font-family:Montserrat,sans-serif;height:50px;text-align:start;width:100%}.vertical-tab:hover{font-weight:700}.tab-content{height:400px}.tab-content .content{display:none}@media screen and (min-width:320px){.tab-content{height:320px}}@media screen and (min-width:768px){.navbar-wrap{left:25px;max-width:150px;top:25px}.navbar-menu{width:150px}.menu-animation{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.vertical-tab{border:none;border-left:2px solid #cbcbcb;height:50px;width:100%}.tab-list{display:block}.tab-list .is-current{border-bottom:none;border-left:2px solid #8c8c8c}.tab-content{height:250px}}.card{background-color:#fff;display:flex;flex-wrap:wrap;width:100%}.card>*{display:inherit;width:100%}.card-proj{aspect-ratio:2;border:1px solid #cbcbcb;border-radius:15px;box-shadow:0 2px 0 rgba(0,0,0,.25);transition:scale .25s ease-in-out;z-index:2}.card-proj:hover{box-shadow:4px 4px 4px rgba(0,0,0,.25);scale:1.2;z-index:3}.proj-description{flex-direction:column}.proj-tool-list{display:flex;flex-wrap:wrap;font-size:12px}.proj-href{display:flex;justify-content:flex-end;margin-top:auto}.card-blog{aspect-ratio:4;border:1px solid #cbcbcb;border-radius:15px;box-shadow:2px 2px 0 rgba(0,0,0,.25);flex-direction:column;flex-wrap:nowrap}@media screen and (min-width:768px){.card-proj{box-shadow:2px 2px 0 rgba(0,0,0,.25)}}.guestbook-form{row-gap:5px;width:100%}.guestbook-form input{background-color:#cbcbcb;border:none;border-radius:5px;opacity:.6}.guestbook-form button{border:none;border-radius:5px;cursor:pointer}.guestbook-form button:hover{border:1px solid #000}.row{display:flex;flex-wrap:wrap}.row>*{width:100%}@media screen and (min-width:768px){.col-1{width:8.33%}.col-2{width:16.66%}.col-3{width:25%}.col-4{width:33.33%}.col-5{width:41.66%}.col-6{width:50%}.col-7{width:58.33%}.col-8{width:66.66%}.col-9{width:75%}.col-10{width:83.33%}.col-11{width:91.66%}.col-12{width:100%}}.container{background-color:#fff;border-radius:5px;margin-left:auto;margin-right:auto}.menu-wrapper{height:550px;width:80%}.mobile-landscape{margin-bottom:10%;margin-top:10%;position:relative}.page-wrapper{height:auto;margin-bottom:4rem;margin-top:4rem;width:100%}.project-wrapper{max-width:600px;width:80%}.blog-wrapper,.project-wrapper{margin-left:auto;margin-right:auto;margin-top:50px}.blog-wrapper{max-width:900px;width:90%}.guestbook-wrapper{max-width:768px}.guestbook-wrapper,.single-blog-wrapper{height:1000px;margin-left:auto;margin-right:auto;margin-top:50px;width:80%}.single-blog-wrapper{max-width:900px}.lightgray-box{background-color:#cbcbcb;border-radius:10px}@media screen and (min-width:321px){.page-wrapper{width:80%}}@media (min-width:376px){.menu-wrapper{height:80%}}@media screen and (min-width:376px) and (max-height:992px){.menu-wrapper{height:600px}}@media (min-width:768px){.menu-wrapper{height:600px;width:720px}}*{box-sizing:border-box;margin:0;padding:0}body{background-attachment:fixed;background-image:url(/static/media/background.0fe630389f9da00b4da2.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;font-family:Courier Prime,monospace}ul{list-style-type:none}section{padding-bottom:50px}.header-grp{padding:5%;text-align:center}.content-grp{padding-left:5%;padding-right:5%}.social-media-grp{margin-top:7.5%}.oauth-grp{text-align:center}.oauth-grp button{font-family:Montserrat,sans-serif}.nav-btn-grp{margin-top:10%}.nav-btn-grp a{color:#000;text-decoration:none}.edu-content-grp{width:83.33%}.menu-copyright{bottom:1rem;display:none;position:absolute}.page-copyright{position:relative}.proj-github-ref{display:none}@media screen and (min-width:376px){.menu-copyright{display:block}}@media (min-width:576px){.nav-btn-grp,.social-media-grp{margin-top:5%}.proj-github-ref{display:block}}@media screen and (min-width:996px){.works-grp{margin-left:100px;margin-right:100px}.oauth-grp{padding-left:10%;padding-right:10%}}@media screen and (min-width:1200px){.works-grp{margin-left:150px;margin-right:150px}.proj-tool-list{flex-wrap:nowrap}.content-grp{margin-left:auto;margin-right:auto;max-width:900px;padding-left:0;padding-right:0}} -/*# sourceMappingURL=main.fe476183.css.map*/ \ No newline at end of file +@import url(https://fonts.googleapis.com/css2?family=Montserrat&display=swap);@import url(https://fonts.googleapis.com/css2?family=Courier+Prime&display=swap);.mt-0{margin-top:0!important}.pt-0{padding-top:0!important}.mt-1{margin-top:.25rem!important}.pt-1{padding-top:.25rem!important}.mt-2{margin-top:.5rem!important}.pt-2{padding-top:.5rem!important}.mt-3{margin-top:1rem!important}.pt-3{padding-top:1rem!important}.mt-4{margin-top:1.5rem!important}.pt-4{padding-top:1.5rem!important}.mt-5{margin-top:3rem!important}.pt-5{padding-top:3rem!important}.mb-0{margin-bottom:0!important}.pb-0{padding-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.pb-1{padding-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.pb-2{padding-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.pb-3{padding-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.pb-4{padding-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.pb-5{padding-bottom:3rem!important}.ms-0{margin-left:0!important}.ps-0{padding-left:0!important}.ms-1{margin-left:.25rem!important}.ps-1{padding-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ps-2{padding-left:.5rem!important}.ms-3{margin-left:1rem!important}.ps-3{padding-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ps-4{padding-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ps-5{padding-left:3rem!important}.me-0{margin-right:0!important}.pe-0{padding-right:0!important}.me-1{margin-right:.25rem!important}.pe-1{padding-right:.25rem!important}.me-2{margin-right:.5rem!important}.pe-2{padding-right:.5rem!important}.me-3{margin-right:1rem!important}.pe-3{padding-right:1rem!important}.me-4{margin-right:1.5rem!important}.pe-4{padding-right:1.5rem!important}.me-5{margin-right:3rem!important}.pe-5{padding-right:3rem!important}.m-0{margin:0!important}.p-0{padding:0!important}.m-1{margin:.25rem!important}.p-1{padding:.25rem!important}.m-2{margin:.5rem!important}.p-2{padding:.5rem!important}.m-3{margin:1rem!important}.p-3{padding:1rem!important}.m-4{margin:1.5rem!important}.p-4{padding:1.5rem!important}.m-5{margin:3rem!important}.p-5{padding:3rem!important}.btn,.flex-image,.icon,.oauth-grp div,.read-more-btn a{align-items:center;display:flex;justify-content:center}.center{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.d-flex{display:flex!important}.is-current{display:block!important}img{height:auto;max-width:100%;object-fit:fill}.avatar-grp{background-color:#fff;border:none}.avatar{border-radius:50%;cursor:pointer;display:none;margin-left:auto;margin-right:auto;transition:src .5s}.icon{width:33.33%}.icon img{max-width:32px}.proj-image{align-items:center;border-radius:inherit;justify-content:center}.proj-image img{border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0}.edu-image{min-width:48px;width:16.66%}.flex-image{justify-content:center}@media (max-width:320px){.avatar{width:100px}}@media screen and (min-width:768px){.proj-image{border-radius:5px}.proj-image img{border-bottom-left-radius:5px;border-bottom-right-radius:5px}}.menu-copyright,.page-copyright{font-family:Montserrat,sans-serif;font-size:12px;padding:0 .5rem;text-align:center;width:100%}a{color:#0d6efd;text-decoration:none}a:hover{text-decoration:underline}.header-txt{font-family:Montserrat,sans-serif;font-size:20px;padding:.5rem}.description-txt{font-family:Courier Prime,monospace;font-size:12px}.guestbook-txt,.oauth-txt{font-family:Montserrat,sans-serif;font-size:12px}.guestbook-txt{word-break:break-word}@media (min-width:576px){.header-txt{font-size:24px}.description-txt,.guestbook-txt,.oauth-txt{font-size:14px}}hr{background:linear-gradient(90deg,#fff,#000,#fff);border:none;height:1px;margin:2rem 10rem 0}@media (max-width:576px){hr{margin-left:10%;margin-right:10%}}.btn{background-color:#fff;border:1px solid #cbcbcb;border-radius:5px;box-shadow:2px 2px 0 rgba(0,0,0,.25);opacity:.8}.btn:hover{border:none;box-shadow:4px 4px 4px rgba(0,0,0,.25);opacity:1}.btn-square{aspect-ratio:1;cursor:pointer;width:2rem}.btn-rect{aspect-ratio:2;cursor:pointer;width:4.6875rem}.btn-grp{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;row-gap:.5rem}.btn-grp a{font-size:12px;margin:0 .625rem}.btn-skill{aspect-ratio:1;color:#000;cursor:pointer;font-size:10px!important;transition:scale .15s ease-out;width:3rem}.btn-skill #name{display:none;text-align:center;width:66.66%}.btn-skill:hover{scale:1.1;text-decoration:none}.btn-oauth-box{width:100%}.btn-oauth{aspect-ratio:6;border-radius:25px;cursor:pointer;width:80%}.btn-oauth-github{background-color:#000;box-shadow:none}.btn-oauth-github .oauth-txt{color:#fff}.btn-oauth-google{box-shadow:none}.read-more-btn{display:flex;height:20%;justify-content:center;margin-top:auto}.read-more-btn a{background-color:#cbcbcb;border-radius:15px;color:#000;height:100%;min-height:30px;min-width:120px;transition:all .3s ease-in-out;width:16.67%}.read-more-btn a:hover{background-color:#8c8c8c;color:#fff;text-decoration:none}@media (min-width:320px){.btn-square{width:3rem}}@media (min-width:576px){.btn-square{width:4rem}.btn-rect{width:6.25rem}.btn-grp a{font-size:16px}.btn-skill{aspect-ratio:3;cursor:pointer;font-size:12px!important;width:150px}.btn-skill #name{display:block}.read-more-btn{justify-content:flex-end;padding-right:1.5rem}}@media screen and (min-width:768px){.btn-oauth{aspect-ratio:5}}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,5%,0);transform:translate3d(0,5%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,5%,0);transform:translate3d(0,5%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-5%,0);transform:translate3d(0,-5%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-5%,0);transform:translate3d(0,-5%,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-5%,0,0);transform:translate3d(-5%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-5%,0,0);transform:translate3d(-5%,0,0)}to{opacity:1;-webkit-transform:translateZ(0);transform:translateZ(0)}}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.transition-menu{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-name:fadeIn;animation-name:fadeIn}.transition-page{-webkit-animation-duration:1.5s;animation-duration:1.5s;-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.is-current{-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-animation-name:fadeIn;animation-name:fadeIn}.fade-in-left,.guestbook-txt>*,.transition-blog>*{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}.navbar{border-radius:5px;width:100%}.navbar button{aspect-ratio:1/1;background-color:#383838;border:none;border-radius:5px;cursor:pointer;position:absolute;width:45px}.navbar button:after{background-color:#191717;box-shadow:0 10px 0 #191717,0 20px #191717;content:"";height:.5rem;left:18%;position:absolute;top:18%;width:66.67%}.navbar-wrap{left:0;position:fixed;top:0;z-index:1}.navbar-menu{background-color:#383838;border-radius:5px;display:none;width:100%}.navbar-menu li{cursor:pointer}.navbar-menu li a{color:#fff;display:block;font-size:14px;height:auto;padding:.5rem;text-decoration:none;width:100%}.navbar-menu li:hover{background-color:#8c8c8c;opacity:.6}.menu-animation{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-name:fadeInDown;animation-name:fadeInDown}.tab-list .is-current{background-color:#cbcbcb;border-bottom:2px solid #8c8c8c;border-left:none;font-weight:700}.vertical-tab{background-color:#fff;border:none;border-bottom:2px solid #cbcbcb;cursor:pointer;font-family:Montserrat,sans-serif;height:50px;text-align:start;width:100%}.vertical-tab:hover{font-weight:700}.tab-content{height:400px}.tab-content .content{display:none}@media screen and (min-width:320px){.tab-content{height:320px}}@media screen and (min-width:768px){.navbar-wrap{left:25px;max-width:150px;top:25px}.navbar-menu{width:150px}.menu-animation{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}.vertical-tab{border:none;border-left:2px solid #cbcbcb;height:50px;width:100%}.tab-list{display:block}.tab-list .is-current{border-bottom:none;border-left:2px solid #8c8c8c}.tab-content{height:250px}}.card{background-color:#fff;display:flex;flex-wrap:wrap;width:100%}.card>*{display:inherit;width:100%}.card-proj{aspect-ratio:2;border:1px solid #cbcbcb;border-radius:15px;box-shadow:0 2px 0 rgba(0,0,0,.25);transition:scale .25s ease-in-out;z-index:2}.card-proj:hover{box-shadow:4px 4px 4px rgba(0,0,0,.25);scale:1.2;z-index:3}.proj-description{flex-direction:column}.proj-tool-list{display:flex;flex-wrap:wrap;font-size:12px}.proj-href{display:flex;justify-content:flex-end;margin-top:auto}.card-blog{aspect-ratio:4;border:1px solid #cbcbcb;border-radius:15px;box-shadow:2px 2px 0 rgba(0,0,0,.25);flex-direction:column;flex-wrap:nowrap}@media screen and (min-width:768px){.card-proj{box-shadow:2px 2px 0 rgba(0,0,0,.25)}}.guestbook-form{row-gap:5px;width:100%}.guestbook-form input{background-color:#cbcbcb;border:none;border-radius:5px;opacity:.6}.guestbook-form button{border:none;border-radius:5px;cursor:pointer}.guestbook-form button:hover{border:1px solid #000}.row{display:flex;flex-wrap:wrap}.row>*{width:100%}@media screen and (min-width:768px){.col-1{width:8.33%}.col-2{width:16.66%}.col-3{width:25%}.col-4{width:33.33%}.col-5{width:41.66%}.col-6{width:50%}.col-7{width:58.33%}.col-8{width:66.66%}.col-9{width:75%}.col-10{width:83.33%}.col-11{width:91.66%}.col-12{width:100%}}.container{background-color:#fff;border-radius:5px;margin-left:auto;margin-right:auto}.menu-wrapper{height:550px;width:80%}.mobile-landscape{margin-bottom:10%;margin-top:10%;position:relative}.page-wrapper{height:auto;margin-bottom:4rem;margin-top:4rem;width:100%}.project-wrapper{max-width:600px;width:80%}.blog-wrapper,.project-wrapper{margin-left:auto;margin-right:auto;margin-top:50px}.blog-wrapper{max-width:900px;width:90%}.guestbook-wrapper{max-width:768px}.guestbook-wrapper,.single-blog-wrapper{height:1000px;margin-left:auto;margin-right:auto;margin-top:50px;width:80%}.single-blog-wrapper{max-width:900px}.lightgray-box{background-color:#cbcbcb;border-radius:10px}@media screen and (min-width:576px){.page-wrapper{width:80%}}@media (min-width:376px){.menu-wrapper{height:80%}}@media screen and (min-width:376px) and (max-height:992px){.menu-wrapper{height:600px}}@media (min-width:768px){.menu-wrapper{height:600px;width:720px}}*{box-sizing:border-box;margin:0;padding:0}body{background-attachment:fixed;background-image:url(/static/media/background.0fe630389f9da00b4da2.webp);background-position:50%;background-repeat:no-repeat;background-size:cover;font-family:Courier Prime,monospace}ul{list-style-type:none}section{padding-bottom:50px}.header-grp{padding:5%;text-align:center}.content-grp{padding-left:5%;padding-right:5%}.social-media-grp{margin-top:7.5%}.oauth-grp{text-align:center}.oauth-grp button{font-family:Montserrat,sans-serif}.nav-btn-grp{margin-top:10%}.nav-btn-grp a{color:#000;text-decoration:none}.edu-content-grp{width:83.33%}.menu-copyright{bottom:1rem;display:none;position:absolute}.page-copyright{position:relative}.proj-github-ref{display:none}@media screen and (min-width:376px){.menu-copyright{display:block}}@media (min-width:576px){.nav-btn-grp,.social-media-grp{margin-top:5%}.proj-github-ref{display:block}}@media screen and (min-width:996px){.works-grp{margin-left:100px;margin-right:100px}.oauth-grp{padding-left:10%;padding-right:10%}}@media screen and (min-width:1200px){.works-grp{margin-left:150px;margin-right:150px}.proj-tool-list{flex-wrap:nowrap}.content-grp{margin-left:auto;margin-right:auto;max-width:900px;padding-left:0;padding-right:0}} +/*# sourceMappingURL=main.e553efff.css.map*/ \ No newline at end of file diff --git a/static/css/main.fe476183.css.map b/static/css/main.e553efff.css.map similarity index 99% rename from static/css/main.fe476183.css.map rename to static/css/main.e553efff.css.map index 51d218e..7f3a492 100644 --- a/static/css/main.fe476183.css.map +++ b/static/css/main.e553efff.css.map @@ -1 +1 @@ -{"version":3,"file":"static/css/main.fe476183.css","mappings":"+JAsBQ,MACI,sBClBZ,CDoBQ,MACI,uBCjBZ,CDaQ,MACI,2BCVZ,CDYQ,MACI,4BCTZ,CDKQ,MACI,0BCFZ,CDIQ,MACI,2BCDZ,CDHQ,MACI,yBCMZ,CDJQ,MACI,0BCOZ,CDXQ,MACI,2BCcZ,CDZQ,MACI,4BCeZ,CDnBQ,MACI,yBCsBZ,CDpBQ,MACI,0BCuBZ,CD3BQ,MACI,yBC8BZ,CD5BQ,MACI,0BC+BZ,CDnCQ,MACI,8BCsCZ,CDpCQ,MACI,+BCuCZ,CD3CQ,MACI,6BC8CZ,CD5CQ,MACI,8BC+CZ,CDnDQ,MACI,4BCsDZ,CDpDQ,MACI,6BCuDZ,CD3DQ,MACI,8BC8DZ,CD5DQ,MACI,+BC+DZ,CDnEQ,MACI,4BCsEZ,CDpEQ,MACI,6BCuEZ,CD3EQ,MACI,uBC8EZ,CD5EQ,MACI,wBC+EZ,CDnFQ,MACI,4BCsFZ,CDpFQ,MACI,6BCuFZ,CD3FQ,MACI,2BC8FZ,CD5FQ,MACI,4BC+FZ,CDnGQ,MACI,0BCsGZ,CDpGQ,MACI,2BCuGZ,CD3GQ,MACI,4BC8GZ,CD5GQ,MACI,6BC+GZ,CDnHQ,MACI,0BCsHZ,CDpHQ,MACI,2BCuHZ,CD3HQ,MACI,wBC8HZ,CD5HQ,MACI,yBC+HZ,CDnIQ,MACI,6BCsIZ,CDpIQ,MACI,8BCuIZ,CD3IQ,MACI,4BC8IZ,CD5IQ,MACI,6BC+IZ,CDnJQ,MACI,2BCsJZ,CDpJQ,MACI,4BCuJZ,CD3JQ,MACI,6BC8JZ,CD5JQ,MACI,8BC+JZ,CDnKQ,MACI,2BCsKZ,CDpKQ,MACI,4BCuKZ,CDjKI,KACI,kBCoKR,CDlKI,KACI,mBCqKR,CDzKI,KACI,uBC4KR,CD1KI,KACI,wBC6KR,CDjLI,KACI,sBCoLR,CDlLI,KACI,uBCqLR,CDzLI,KACI,qBC4LR,CD1LI,KACI,sBC6LR,CDjMI,KACI,uBCoMR,CDlMI,KACI,wBCqMR,CDzMI,KACI,qBC4MR,CD1MI,KACI,sBC6MR,CDzMA,uDAEI,kBAAmB,CADnB,YAAa,CAEb,sBC4MJ,CD3LA,QAGI,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qEC8LJ,CD3LA,QACI,sBC8LJ,CD3LA,YACI,uBC8LJ,CCnQA,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Xm0BN,CACF,CWh0BA,yBACI,cACI,UXk0BN,CACF,CW/zBA,2DACI,cACI,YXi0BN,CACF,CW9zBA,yBACI,cAEI,YAAa,CADb,WXi0BN,CACF,CYv4BA,EAKI,qBAAsB,CAHtB,QAAS,CACT,SZy4BJ,CYp4BA,KAII,2BAA4B,CAH5B,yEAIA,uBAA2B,CAF3B,2BAA4B,CAD5B,qBAAsB,CAItB,mCZu4BJ,CYp4BA,GACI,oBZu4BJ,CYp4BA,QACI,mBZu4BJ,CYp4BA,YACI,UAAW,CACX,iBZu4BJ,CYp4BA,abcI,eab2B,Cbc3B,gBC03BJ,CYr4BA,kBACI,eZw4BJ,CYr4BA,WACI,iBZw4BJ,CYl4BI,kBACI,iCZo4BR,CYh4BA,aACI,cZm4BJ,CYj4BI,eAEI,UAAW,CADX,oBZo4BR,CY/3BA,iBACI,YZk4BJ,CY/3BA,gBAGI,WAAY,CACZ,YAAa,CAFb,iBZm4BJ,CY93BA,gBAEI,iBZg4BJ,CY73BA,iBACI,YZg4BJ,CY73BA,oCACI,gBACI,aZg4BN,CACF,CY73BA,yBAII,+BACI,aZ+3BN,CY73BE,iBACI,aZ+3BN,CACF,CY53BA,oCACI,WbtDA,iBauD+B,CbtD/B,kBCq7BF,CY73BE,WbzDA,gBa0D+B,CbzD/B,iBCy7BF,CACF,CY73BA,qCACI,Wb/DA,iBagE+B,Cb/D/B,kBC+7BF,CY73BE,gBACI,gBZ+3BN,CY53BE,abvEA,gBADoB,CAEpB,iBAFoB,Ca0EhB,eAAgB,CAChB,cAAe,CACf,eZ+3BN,CACF","sources":["css/scss/general/_util.scss","css/style.css","css/scss/components/_image.scss","css/scss/components/_text.scss","css/scss/general/_var.scss","css/scss/components/_line.scss","css/scss/components/_button.scss","css/scss/general/_animation.scss","css/scss/components/_navbar.scss","css/scss/components/_card.scss","css/scss/components/_form.scss","css/scss/general/_grid.scss","css/scss/general/_container.scss","css/scss/style.scss"],"sourcesContent":["@use \"var\";\n\n/* Bootstrap-like spacing */\n$spacer: 1rem;\n$factors: (\n 0: 0,\n 1: .25,\n 2: .5,\n 3: 1,\n 4: 1.5,\n 5: 3,\n);\n$directions: (\n \"t\": \"top\",\n \"b\": \"bottom\",\n \"s\": \"left\",\n \"e\": \"right\",\n);\n\n\n@each $key, $direction in $directions {\n @each $id, $factor in $factors {\n .m#{$key}-#{$id} {\n margin-#{$direction}: calc($spacer) * $factor !important;\n }\n .p#{$key}-#{$id} {\n padding-#{$direction}: calc($spacer) * $factor !important;\n }\n }\n}\n\n@each $id, $factor in $factors {\n .m-#{$id} {\n margin: calc($spacer) * $factor !important;\n }\n .p-#{$id} {\n padding: calc($spacer) * $factor !important;\n }\n}\n\n%flex-center {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n@mixin flex-wrap($wrap: wrap) {\n display: flex;\n flex-wrap: $wrap;\n}\n\n@mixin rounded($offset: 0px) {\n border-radius: var.$radius + $offset;\n}\n\n@mixin center-block($m: auto, $mode: \"margin\") {\n #{$mode}-left: $m;\n #{$mode}-right: $m;\n}\n\n.center {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.is-current {\n display: block !important;\n}","@import url(\"https://fonts.googleapis.com/css2?family=Montserrat&display=swap\");\n@import url(\"https://fonts.googleapis.com/css2?family=Courier+Prime&display=swap\");\n/* Bootstrap-like spacing */\n.mt-0 {\n margin-top: 0rem !important;\n}\n\n.pt-0 {\n padding-top: 0rem !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.mb-0 {\n margin-bottom: 0rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0rem !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ms-0 {\n margin-left: 0rem !important;\n}\n\n.ps-0 {\n padding-left: 0rem !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n.me-0 {\n margin-right: 0rem !important;\n}\n\n.pe-0 {\n padding-right: 0rem !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.m-0 {\n margin: 0rem !important;\n}\n\n.p-0 {\n padding: 0rem !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.oauth-grp div, .btn, .read-more-btn a, .icon, .flex-image {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.center {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.is-current {\n display: block !important;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n object-fit: fill;\n}\n\n.avatar-grp {\n border: none;\n background-color: white;\n}\n\n.avatar {\n margin-left: auto;\n margin-right: auto;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n transition: src 500ms;\n}\n\n.icon {\n width: 33.33%;\n}\n.icon img {\n max-width: 32px;\n}\n\n.proj-image {\n border-radius: inherit;\n justify-content: center;\n align-items: center;\n}\n.proj-image img {\n border-radius: inherit;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.edu-image {\n width: 16.66%;\n min-width: 48px;\n}\n\n.flex-image {\n justify-content: center;\n}\n\n@media (max-width: 320px) {\n .avatar {\n width: 100px;\n }\n}\n@media screen and (min-width: 768px) {\n .proj-image {\n border-radius: 5px;\n }\n .proj-image img {\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n}\n.menu-copyright, .page-copyright {\n width: 100%;\n text-align: center;\n padding: 0 0.5rem 0 0.5rem;\n font-size: 12px;\n font-family: \"Montserrat\", sans-serif;\n}\n\na {\n text-decoration: none;\n color: #0d6efd;\n}\na:hover {\n text-decoration: underline;\n}\n\n.header-txt {\n padding: 0.5rem;\n font-size: 20px;\n font-family: \"Montserrat\", sans-serif;\n}\n\n.description-txt {\n font-size: 12px;\n font-family: \"Courier Prime\", monospace;\n}\n\n.oauth-txt, .guestbook-txt {\n font-family: \"Montserrat\", sans-serif;\n font-size: 12px;\n}\n\n.guestbook-txt {\n word-break: break-word;\n}\n\n@media (min-width: 576px) {\n .header-txt {\n font-size: 24px;\n }\n .description-txt {\n font-size: 14px;\n }\n .oauth-txt, .guestbook-txt {\n font-size: 14px;\n }\n}\nhr {\n background: linear-gradient(to right, #fff, #000, #fff);\n height: 1px;\n border: none;\n margin: 2rem 10rem 0 10rem;\n}\n\n@media (max-width: 576px) {\n hr {\n margin-left: 10%;\n margin-right: 10%;\n }\n}\n.btn {\n background-color: #fff;\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n border: 1px solid #cbcbcb;\n opacity: 0.8;\n border-radius: 5px;\n}\n.btn:hover {\n box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);\n border: none;\n opacity: 1;\n}\n\n.btn-square {\n aspect-ratio: 1;\n width: 2rem;\n cursor: pointer;\n}\n\n.btn-rect {\n aspect-ratio: 2;\n width: 4.6875rem;\n cursor: pointer;\n}\n\n.btn-grp {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n justify-content: center;\n row-gap: 0.5rem;\n}\n.btn-grp a {\n margin: 0 0.625rem 0 0.625rem;\n font-size: 12px;\n}\n\n.btn-skill {\n aspect-ratio: 1;\n width: 3rem;\n cursor: pointer;\n font-size: 10px !important;\n color: black;\n transition: scale 150ms ease-out;\n}\n.btn-skill #name {\n width: 66.66%;\n text-align: center;\n display: none;\n}\n.btn-skill:hover {\n scale: 1.1;\n text-decoration: none;\n}\n\n.btn-oauth-box {\n width: 100%;\n}\n\n.btn-oauth {\n aspect-ratio: 6;\n width: 80%;\n cursor: pointer;\n border-radius: 25px;\n}\n\n.btn-oauth-github {\n background-color: black;\n box-shadow: none;\n}\n.btn-oauth-github .oauth-txt {\n color: white;\n}\n\n.btn-oauth-google {\n box-shadow: none;\n}\n\n.read-more-btn {\n display: flex;\n justify-content: center;\n margin-top: auto;\n height: 20%;\n}\n.read-more-btn a {\n border-radius: 15px;\n background-color: #cbcbcb;\n color: black;\n width: 16.67%;\n min-width: 120px;\n height: 100%;\n min-height: 30px;\n transition: all 300ms ease-in-out;\n}\n.read-more-btn a:hover {\n background-color: #8c8c8c;\n color: white;\n text-decoration: none;\n}\n\n@media (min-width: 320px) {\n .btn-square {\n width: 3rem;\n }\n}\n@media (min-width: 576px) {\n .btn-square {\n width: 4rem;\n }\n .btn-rect {\n width: 6.25rem;\n }\n .btn-grp a {\n font-size: 16px;\n }\n .btn-skill {\n aspect-ratio: 3;\n width: 150px;\n cursor: pointer;\n font-size: 12px !important;\n }\n .btn-skill #name {\n display: block;\n }\n .read-more-btn {\n justify-content: flex-end;\n padding-right: 1.5rem;\n }\n}\n@media screen and (min-width: 768px) {\n .btn-oauth {\n aspect-ratio: 5;\n }\n}\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes fadeInUp {\n from {\n transform: translate3d(0, 5%, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n@keyframes fadeInDown {\n from {\n transform: translate3d(0, -5%, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n@keyframes fadeInLeft {\n from {\n transform: translate3d(-5%, 0, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n.transition-menu {\n animation-name: fadeIn;\n animation-duration: 1s;\n}\n\n.transition-page {\n animation-name: fadeInUp;\n animation-duration: 1.5s;\n}\n\n.is-current {\n animation-name: fadeIn;\n animation-duration: 0.5s;\n}\n\n.transition-blog > *, .guestbook-txt > * {\n animation-name: fadeInLeft;\n animation-duration: 1s;\n}\n\n.fade-in-left {\n animation-name: fadeInLeft;\n animation-duration: 1s;\n}\n\n.navbar {\n border-radius: 5px;\n width: 100%;\n}\n.navbar button {\n border-radius: 5px;\n width: 45px;\n aspect-ratio: 1/1;\n background-color: #383838;\n border: none;\n cursor: pointer;\n position: absolute;\n}\n.navbar button::after {\n content: \"\";\n position: absolute;\n width: 66.67%;\n height: 0.5rem;\n background-color: #191717;\n box-shadow: 0 10px 0 #191717, 0 20px #191717;\n left: 18%;\n top: 18%;\n}\n\n.navbar-wrap {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n}\n\n.navbar-menu {\n border-radius: 5px;\n background-color: #383838;\n width: 100%;\n display: none;\n}\n.navbar-menu li {\n cursor: pointer;\n}\n.navbar-menu li a {\n padding: 0.5rem;\n font-size: 14px;\n text-decoration: none;\n color: white;\n width: 100%;\n height: auto;\n display: block;\n}\n.navbar-menu li:hover {\n background-color: #8c8c8c;\n opacity: 0.6;\n}\n\n.menu-animation {\n animation-name: fadeInDown;\n animation-duration: 300ms;\n}\n\n.tab-list .is-current {\n background-color: #cbcbcb;\n border-left: none;\n border-bottom: 2px solid #8c8c8c;\n font-weight: bold;\n}\n\n.vertical-tab {\n height: 50px;\n width: 100%;\n border: none;\n border-bottom: 2px solid #cbcbcb;\n background-color: white;\n cursor: pointer;\n font-family: \"Montserrat\", sans-serif;\n text-align: start;\n}\n.vertical-tab:hover {\n font-weight: bold;\n}\n\n.tab-content {\n height: 400px;\n}\n.tab-content .content {\n display: none;\n}\n\n@media screen and (min-width: 320px) {\n .tab-content {\n height: 320px;\n }\n}\n@media screen and (min-width: 768px) {\n .navbar-wrap {\n top: 25px;\n left: 25px;\n max-width: 150px;\n }\n .navbar-menu {\n width: 150px;\n }\n .menu-animation {\n animation-name: fadeInUp;\n }\n .vertical-tab {\n height: 50px;\n width: 100%;\n border: none;\n border-left: 2px solid #cbcbcb;\n }\n .tab-list {\n display: block;\n }\n .tab-list .is-current {\n border-bottom: none;\n border-left: 2px solid #8c8c8c;\n }\n .tab-content {\n height: 250px;\n }\n}\n.card {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n background-color: white;\n}\n.card > * {\n display: inherit;\n width: 100%;\n}\n\n.card-proj {\n border-radius: 15px;\n aspect-ratio: 2;\n border: 1px solid #cbcbcb;\n box-shadow: 0px 2px 0px rgba(0, 0, 0, 0.25);\n transition: scale 250ms ease-in-out;\n z-index: 2;\n}\n.card-proj:hover {\n scale: 1.2;\n box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);\n z-index: 3;\n}\n\n.proj-description {\n flex-direction: column;\n}\n\n.proj-tool-list {\n display: flex;\n flex-wrap: wrap;\n font-size: 12px;\n}\n\n.proj-href {\n display: flex;\n justify-content: flex-end;\n margin-top: auto;\n}\n\n.card-blog {\n border-radius: 15px;\n border: 1px solid #cbcbcb;\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n aspect-ratio: 4;\n flex-direction: column;\n flex-wrap: nowrap;\n}\n\n@media screen and (min-width: 768px) {\n .card-proj {\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n }\n}\n.guestbook-form {\n width: 100%;\n row-gap: 5px;\n}\n.guestbook-form input {\n border-radius: 5px;\n background-color: #cbcbcb;\n border: none;\n opacity: 0.6;\n}\n.guestbook-form button {\n border-radius: 5px;\n border: none;\n cursor: pointer;\n}\n.guestbook-form button:hover {\n border: 1px solid black;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n}\n.row > * {\n width: 100%;\n}\n\n@media screen and (min-width: 768px) {\n .col-1 {\n width: 8.33%;\n }\n .col-2 {\n width: 16.66%;\n }\n .col-3 {\n width: 25%;\n }\n .col-4 {\n width: 33.33%;\n }\n .col-5 {\n width: 41.66%;\n }\n .col-6 {\n width: 50%;\n }\n .col-7 {\n width: 58.33%;\n }\n .col-8 {\n width: 66.66%;\n }\n .col-9 {\n width: 75%;\n }\n .col-10 {\n width: 83.33%;\n }\n .col-11 {\n width: 91.66%;\n }\n .col-12 {\n width: 100%;\n }\n}\n.container {\n margin-left: auto;\n margin-right: auto;\n background-color: white;\n border-radius: 5px;\n}\n\n.menu-wrapper {\n width: 80%;\n height: 550px;\n}\n\n.mobile-landscape {\n position: relative;\n margin-top: 10%;\n margin-bottom: 10%;\n}\n\n.page-wrapper {\n width: 100%;\n height: auto;\n margin-top: 4rem;\n margin-bottom: 4rem;\n}\n\n.project-wrapper {\n width: 80%;\n max-width: 600px;\n margin-top: 50px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.blog-wrapper {\n width: 90%;\n max-width: 900px;\n margin-top: 50px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.guestbook-wrapper {\n width: 80%;\n max-width: 768px;\n margin-top: 50px;\n margin-left: auto;\n margin-right: auto;\n height: 1000px;\n}\n\n.single-blog-wrapper {\n width: 80%;\n max-width: 900px;\n margin-top: 50px;\n margin-left: auto;\n margin-right: auto;\n height: 1000px;\n}\n\n.lightgray-box {\n border-radius: 10px;\n background-color: #cbcbcb;\n}\n\n@media screen and (min-width: 321px) {\n .page-wrapper {\n width: 80%;\n }\n}\n@media (min-width: 376px) {\n .menu-wrapper {\n height: 80%;\n }\n}\n@media screen and (min-width: 376px) and (max-height: 992px) {\n .menu-wrapper {\n height: 600px;\n }\n}\n@media (min-width: 768px) {\n .menu-wrapper {\n width: 720px;\n height: 600px;\n }\n}\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n background-image: url(\"../../public/background.webp\");\n background-size: cover;\n background-repeat: no-repeat;\n background-attachment: fixed;\n background-position: center;\n font-family: \"Courier Prime\", monospace;\n}\n\nul {\n list-style-type: none;\n}\n\nsection {\n padding-bottom: 50px;\n}\n\n.header-grp {\n padding: 5%;\n text-align: center;\n}\n\n.content-grp {\n padding-left: 5%;\n padding-right: 5%;\n}\n\n.social-media-grp {\n margin-top: 7.5%;\n}\n\n.oauth-grp {\n text-align: center;\n}\n.oauth-grp button {\n font-family: \"Montserrat\", sans-serif;\n}\n\n.nav-btn-grp {\n margin-top: 10%;\n}\n.nav-btn-grp a {\n text-decoration: none;\n color: #000;\n}\n\n.edu-content-grp {\n width: 83.33%;\n}\n\n.menu-copyright {\n position: absolute;\n bottom: 1rem;\n display: none;\n}\n\n.page-copyright {\n position: relative;\n}\n\n.proj-github-ref {\n display: none;\n}\n\n@media screen and (min-width: 376px) {\n .menu-copyright {\n display: block;\n }\n}\n@media (min-width: 576px) {\n .social-media-grp {\n margin-top: 5%;\n }\n .nav-btn-grp {\n margin-top: 5%;\n }\n .proj-github-ref {\n display: block;\n }\n}\n@media screen and (min-width: 996px) {\n .works-grp {\n margin-left: 100px;\n margin-right: 100px;\n }\n .oauth-grp {\n padding-left: 10%;\n padding-right: 10%;\n }\n}\n@media screen and (min-width: 1200px) {\n .works-grp {\n margin-left: 150px;\n margin-right: 150px;\n }\n .proj-tool-list {\n flex-wrap: nowrap;\n }\n .content-grp {\n margin-left: auto;\n margin-right: auto;\n max-width: 900px;\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n","@use \"../general/util\";\n@use \"../general/var\";\n\nimg {\n max-width: 100%;\n height: auto;\n object-fit: fill;\n}\n\n.avatar-grp {\n border: none;\n background-color: white;\n}\n\n.avatar {\n @include util.center-block();\n border-radius: 50%;\n cursor: pointer;\n display: none;\n transition: src 500ms;\n}\n\n.icon {\n @extend %flex-center;\n width: 33.33%;\n \n img {\n max-width: 32px;\n }\n}\n\n.proj-image {\n border-radius: inherit;\n justify-content: center;\n align-items: center;\n\n img {\n border-radius: inherit;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n\n.edu-image {\n width: 16.66%;\n min-width: 48px;\n // border-right: 1px solid var.$light-gray;\n}\n\n.flex-image {\n @extend %flex-center;\n justify-content: center;\n}\n\n@media (max-width: 320px) {\n .avatar {\n width: 100px;\n }\n}\n\n@media screen and (min-width: 768px) {\n .proj-image {\n border-radius: 5px;\n img {\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n }\n}","@use '../general/var';\n\n%copyright-txt {\n width: 100%;\n text-align: center;\n padding: 0 0.5rem 0 0.5rem;\n font-size: 12px;\n font-family: var.$header-font;\n}\n\na {\n text-decoration: none;\n color: var.$default-atag-color;\n \n &:hover {\n text-decoration: underline;\n }\n}\n\n.header-txt {\n padding: 0.5rem;\n font-size: 20px;\n font-family: var.$header-font;\n}\n\n.description-txt {\n font-size: 12px;\n font-family: var.$body-font;\n}\n\n.oauth-txt, .guestbook-txt {\n font-family: var.$header-font;\n font-size: 12px;\n}\n\n.guestbook-txt {\n word-break: break-word;\n}\n\n@media (min-width: 576px) {\n .header-txt {\n font-size: 24px;\n }\n .description-txt {\n font-size: 14px;\n }\n .oauth-txt, .guestbook-txt {\n font-size: 14px;\n }\n}","@import url('https://fonts.googleapis.com/css2?family=Montserrat&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=Courier+Prime&display=swap');\n\n// $background-url: \"../background.jpg\";\n$background-url: \"../../public/background.webp\";\n$avatar-url: \"tuslipid.jpg\";\n$header-font: 'Montserrat', sans-serif;\n$body-font: 'Courier Prime', monospace;\n$blog-font: sans-serif;\n$radius: 5px;\n$gray: #8c8c8c;\n$light-gray: #cbcbcb;\n$default-atag-color: #0d6efd;\n$navbar-bg-color: #383838;\n$navbar-stick-color: #191717;\n","hr {\n background: linear-gradient(to right, #fff, #000, #fff);\n height: 1px;\n border: none;\n margin: 2rem 10rem 0 10rem;\n}\n\n@media (max-width: 576px) {\n hr {\n margin-left: 10%;\n margin-right: 10%;\n }\n}","@use '../general/util';\n@use '../general/var';\n\n@mixin shapeBtn($ratio: 1, $width: auto) {\n aspect-ratio: $ratio;\n width: $width;\n cursor: pointer;\n}\n\n.btn {\n @extend %flex-center;\n background-color: #fff;\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n border: 1px solid var.$light-gray;\n opacity: .8;\n @include util.rounded;\n \n &:hover {\n box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);\n border: none;\n opacity: 1;\n }\n}\n\n.btn-square {\n @include shapeBtn($width: 2rem);\n}\n\n.btn-rect {\n @include shapeBtn(2, 4.6875rem);\n}\n\n.btn-grp {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n justify-content: center;\n row-gap: 0.5rem;\n\n a {\n margin: 0 0.625rem 0 0.625rem;\n font-size: 12px;\n }\n}\n\n.btn-skill {\n @include shapeBtn(1, 3rem);\n font-size: 10px !important;\n color: black;\n transition: scale 150ms ease-out;\n\n #name {\n width: 66.66%;\n text-align: center;\n display: none;\n }\n\n &:hover {\n scale: 1.1;\n text-decoration: none;\n }\n}\n\n.btn-oauth-box {\n width: 100%;\n}\n\n.btn-oauth {\n @include shapeBtn(6, 80%);\n @include util.rounded(20);\n}\n\n.btn-oauth-github {\n background-color: black;\n box-shadow: none;\n\n .oauth-txt {\n color: white;\n }\n}\n\n.btn-oauth-google {\n box-shadow: none;\n}\n\n.read-more-btn {\n display: flex;\n justify-content: center;\n margin-top: auto;\n height: 20%;\n\n a {\n @extend %flex-center;\n @include util.rounded(10px);\n background-color: var.$light-gray;\n color: black;\n width: 16.67%;\n min-width: 120px;\n height: 100%;\n min-height: 30px;\n transition: all 300ms ease-in-out;\n\n &:hover {\n background-color: var.$gray;\n color: white;\n text-decoration: none;\n }\n }\n}\n\n@media (min-width: 320px) {\n .btn-square {\n width: 3rem;\n }\n}\n\n@media (min-width: 576px) {\n .btn-square {\n width: 4rem;\n }\n \n .btn-rect {\n width: 6.25rem;\n }\n \n .btn-grp {\n a {\n font-size: 16px;\n }\n }\n \n .btn-skill {\n @include shapeBtn(3, 150px);\n font-size: 12px !important;\n\n #name {\n display: block;\n }\n }\n\n .read-more-btn {\n justify-content: flex-end;\n padding-right: 1.5rem;\n }\n}\n\n@media screen and (min-width: 768px) {\n .btn-oauth {\n aspect-ratio: 5;\n }\n}","@mixin animation($animation, $time) {\n animation-name: $animation;\n animation-duration: $time;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeInUp {\n from {\n transform: translate3d(0, 5%, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n\n@keyframes fadeInDown {\n from {\n transform: translate3d(0, -5%, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n\n@keyframes fadeInLeft {\n from {\n transform: translate3d(-5%, 0, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.transition-menu {\n @include animation(fadeIn, 1s);\n}\n\n.transition-page {\n @include animation(fadeInUp, 1.5s);\n}\n\n.is-current {\n @include animation(fadeIn, 0.5s);\n}\n\n.transition-blog, .guestbook-txt {\n &>*{\n @include animation(fadeInLeft, 1s);\n }\n}\n\n.fade-in-left {\n @include animation(fadeInLeft, 1s);\n}","@use '../general/var';\n@use '../general/util';\n@use '../general/animation';\n\n\n.navbar {\n @include util.rounded;\n width: 100%;\n\n button {\n @include util.rounded;\n width: 45px;\n aspect-ratio: 1/1;\n background-color: var.$navbar-bg-color;\n border: none;\n cursor: pointer;\n position: absolute;\n\n &::after {\n content: '';\n position: absolute;\n width: 66.67%;\n height: 0.5rem;\n background-color: var.$navbar-stick-color;\n box-shadow: 0 10px 0 var.$navbar-stick-color, 0 20px var.$navbar-stick-color;\n left: 18%;\n top: 18%;\n }\n }\n}\n\n.navbar-wrap {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n}\n\n.navbar-menu {\n @include util.rounded;\n background-color: var.$navbar-bg-color;\n width: 100%;\n display: none;\n\n li {\n cursor: pointer;\n\n a {\n padding: 0.5rem;\n font-size: 14px;\n text-decoration: none;\n color: white;\n width: 100%;\n height: auto;\n display: block;\n }\n\n &:hover {\n background-color: var.$gray;\n opacity: 0.6;\n }\n } \n}\n\n.menu-animation {\n @include animation.animation(fadeInDown, 300ms);\n}\n\n.tab-list {\n // @include util.flex-wrap(nowrap);\n\n .is-current {\n background-color: var.$light-gray;\n border-left: none;\n border-bottom: 2px solid var.$gray;\n font-weight: bold;\n }\n}\n\n.vertical-tab {\n height: 50px;\n width: 100%;\n border: none;\n border-bottom: 2px solid var.$light-gray;\n background-color: white;\n cursor: pointer;\n font-family: var.$header-font;\n text-align: start;\n\n &:hover {\n font-weight: bold;\n }\n}\n\n.tab-content {\n height: 400px;\n\n .content {\n display: none;\n }\n}\n\n@media screen and (min-width: 320px) {\n .tab-content {\n height: 320px;\n }\n}\n\n@media screen and (min-width: 768px) {\n .navbar-wrap {\n top: 25px;\n left: 25px;\n max-width: 150px;\n }\n \n .navbar-menu {\n width: 150px;\n }\n\n .menu-animation {\n animation-name: fadeInUp;\n }\n\n .vertical-tab {\n height: 50px;\n width: 100%;\n border: none;\n border-left: 2px solid var.$light-gray;\n }\n\n .tab-list {\n display: block;\n\n .is-current {\n border-bottom: none;\n border-left: 2px solid var.$gray;\n }\n }\n\n .tab-content {\n height: 250px;\n }\n}","@use '../general/util';\n@use '../general/var';\n\n.card {\n @include util.flex-wrap(wrap);\n width: 100%;\n background-color: white;\n\n &>*{\n display: inherit;\n width: 100%;\n }\n}\n\n.card-proj {\n @include util.rounded(10);\n aspect-ratio: 2;\n border: 1px solid var.$light-gray;\n box-shadow: 0px 2px 0px rgba(0, 0, 0, 0.25);\n transition: scale 250ms ease-in-out;\n z-index: 2;\n\n &:hover {\n scale: 1.2;\n box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);\n z-index: 3;\n }\n}\n\n.proj-description {\n flex-direction: column;\n}\n\n.proj-tool-list {\n display: flex;\n flex-wrap: wrap;\n font-size: 12px;\n}\n\n.proj-href {\n display: flex;\n justify-content: flex-end;\n margin-top: auto;\n}\n\n.card-blog {\n @include util.rounded(10);\n border: 1px solid var.$light-gray;\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n aspect-ratio: 4;\n flex-direction: column;\n flex-wrap: nowrap;\n}\n\n\n@media screen and (min-width: 768px) {\n .card-proj {\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n }\n}","@use '../general/var';\n@use '../general/util';\n\n.guestbook-form {\n width: 100%;\n row-gap: 5px;\n\n input {\n @include util.rounded;\n background-color: var.$light-gray;\n border: none;\n opacity: 0.6;\n }\n\n button {\n @include util.rounded;\n border: none;\n cursor: pointer;\n\n &:hover {\n border: 1px solid black;\n }\n }\n}",".row {\n display: flex;\n flex-wrap: wrap;\n\n &>* {\n width: 100%;\n }\n}\n\n@media screen and (min-width: 768px) {\n .col-1 {width: 8.33%;}\n .col-2 {width: 16.66%;}\n .col-3 {width: 25%;}\n .col-4 {width: 33.33%;}\n .col-5 {width: 41.66%;}\n .col-6 {width: 50%;}\n .col-7 {width: 58.33%;}\n .col-8 {width: 66.66%;}\n .col-9 {width: 75%;}\n .col-10 {width: 83.33%;}\n .col-11 {width: 91.66%;}\n .col-12 {width: 100%;}\n}","@use \"util\";\n@use \"var\";\n@use \"animation\";\n\n@mixin box($theme: white) {\n @include util.rounded($offset: 5px);\n background-color: $theme;\n}\n\n@mixin content-wrapper($width, $maxWidth, $marginTop) {\n width: $width;\n max-width: $maxWidth;\n margin-top: $marginTop;\n @include util.center-block();\n}\n\n.container {\n @include util.center-block();\n background-color: white;\n @include util.rounded;\n}\n\n.menu-wrapper {\n width: 80%;\n height: 550px;\n}\n.mobile-landscape {\n position: relative;\n margin-top: 10%;\n margin-bottom: 10%;\n}\n\n.page-wrapper {\n width: 100%;\n height: auto;\n margin-top: 4rem;\n margin-bottom: 4rem;\n}\n\n.project-wrapper {\n @include content-wrapper(80%, 600px, 50px);\n}\n\n.blog-wrapper {\n @include content-wrapper(90%, 900px, 50px);\n}\n\n.guestbook-wrapper {\n @include content-wrapper(80%, 768px, 50px);\n height: 1000px;\n}\n\n.single-blog-wrapper {\n @include content-wrapper(80%, 900px, 50px);\n height: 1000px;\n}\n\n.lightgray-box {\n @include box($theme: var.$light-gray);\n}\n\n@media screen and (min-width: 321px) {\n .page-wrapper {\n width: 80%;\n }\n}\n\n@media (min-width: 376px) {\n .menu-wrapper {\n height: 80%;\n }\n}\n\n@media screen and (min-width: 376px) and (max-height: 992px) {\n .menu-wrapper {\n height: 600px;\n }\n}\n\n@media (min-width: 768px) {\n .menu-wrapper {\n width: 720px;\n height: 600px;\n }\n}\n","@use 'components/image';\n@use 'components/text';\n@use 'components/line';\n@use 'components/button';\n@use 'components/navbar';\n@use 'components/card';\n@use 'components/form';\n@use 'general/var';\n@use 'general/grid';\n@use 'general/container';\n@use 'general/util';\n\n*\n{\n margin: 0;\n padding: 0;\n // font-size: 100%;\n box-sizing: border-box;\n}\n\nbody {\n background-image: url(var.$background-url);\n background-size: cover;\n background-repeat: no-repeat;\n background-attachment: fixed;\n background-position: center;\n font-family: var.$body-font;\n}\n\nul {\n list-style-type: none;\n}\n\nsection {\n padding-bottom: 50px;\n}\n\n.header-grp {\n padding: 5%;\n text-align: center;\n}\n\n.content-grp {\n @include util.center-block(5%, \"padding\");\n}\n\n.social-media-grp {\n margin-top: 7.5%;\n}\n\n.oauth-grp {\n text-align: center;\n\n div {\n @extend %flex-center;\n }\n\n button {\n font-family: var.$header-font;\n }\n}\n\n.nav-btn-grp {\n margin-top: 10%;\n \n a {\n text-decoration: none;\n color: #000;\n }\n}\n\n.edu-content-grp {\n width: 83.33%;\n}\n\n.menu-copyright {\n @extend %copyright-txt;\n position: absolute;\n bottom: 1rem;\n display: none;\n}\n\n.page-copyright {\n @extend %copyright-txt;\n position: relative;\n}\n\n.proj-github-ref {\n display: none;\n}\n\n@media screen and (min-width: 376px) {\n .menu-copyright {\n display: block;\n }\n}\n\n@media (min-width: 576px) {\n .social-media-grp {\n margin-top: 5%;\n }\n .nav-btn-grp {\n margin-top: 5%;\n }\n .proj-github-ref {\n display: block;\n }\n}\n\n@media screen and (min-width: 996px) {\n .works-grp {\n @include util.center-block(100px);\n }\n .oauth-grp {\n @include util.center-block(10%, \"padding\");\n }\n}\n\n@media screen and (min-width: 1200px) {\n .works-grp {\n @include util.center-block(150px);\n }\n \n .proj-tool-list {\n flex-wrap: nowrap;\n }\n\n .content-grp {\n @include util.center-block();\n max-width: 900px;\n padding-left: 0;\n padding-right: 0;\n }\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/css/main.e553efff.css","mappings":"+JAsBQ,MACI,sBClBZ,CDoBQ,MACI,uBCjBZ,CDaQ,MACI,2BCVZ,CDYQ,MACI,4BCTZ,CDKQ,MACI,0BCFZ,CDIQ,MACI,2BCDZ,CDHQ,MACI,yBCMZ,CDJQ,MACI,0BCOZ,CDXQ,MACI,2BCcZ,CDZQ,MACI,4BCeZ,CDnBQ,MACI,yBCsBZ,CDpBQ,MACI,0BCuBZ,CD3BQ,MACI,yBC8BZ,CD5BQ,MACI,0BC+BZ,CDnCQ,MACI,8BCsCZ,CDpCQ,MACI,+BCuCZ,CD3CQ,MACI,6BC8CZ,CD5CQ,MACI,8BC+CZ,CDnDQ,MACI,4BCsDZ,CDpDQ,MACI,6BCuDZ,CD3DQ,MACI,8BC8DZ,CD5DQ,MACI,+BC+DZ,CDnEQ,MACI,4BCsEZ,CDpEQ,MACI,6BCuEZ,CD3EQ,MACI,uBC8EZ,CD5EQ,MACI,wBC+EZ,CDnFQ,MACI,4BCsFZ,CDpFQ,MACI,6BCuFZ,CD3FQ,MACI,2BC8FZ,CD5FQ,MACI,4BC+FZ,CDnGQ,MACI,0BCsGZ,CDpGQ,MACI,2BCuGZ,CD3GQ,MACI,4BC8GZ,CD5GQ,MACI,6BC+GZ,CDnHQ,MACI,0BCsHZ,CDpHQ,MACI,2BCuHZ,CD3HQ,MACI,wBC8HZ,CD5HQ,MACI,yBC+HZ,CDnIQ,MACI,6BCsIZ,CDpIQ,MACI,8BCuIZ,CD3IQ,MACI,4BC8IZ,CD5IQ,MACI,6BC+IZ,CDnJQ,MACI,2BCsJZ,CDpJQ,MACI,4BCuJZ,CD3JQ,MACI,6BC8JZ,CD5JQ,MACI,8BC+JZ,CDnKQ,MACI,2BCsKZ,CDpKQ,MACI,4BCuKZ,CDjKI,KACI,kBCoKR,CDlKI,KACI,mBCqKR,CDzKI,KACI,uBC4KR,CD1KI,KACI,wBC6KR,CDjLI,KACI,sBCoLR,CDlLI,KACI,uBCqLR,CDzLI,KACI,qBC4LR,CD1LI,KACI,sBC6LR,CDjMI,KACI,uBCoMR,CDlMI,KACI,wBCqMR,CDzMI,KACI,qBC4MR,CD1MI,KACI,sBC6MR,CDzMA,uDAEI,kBAAmB,CADnB,YAAa,CAEb,sBC4MJ,CD3LA,QAGI,QAAS,CAFT,iBAAkB,CAClB,OAAQ,CAER,qEC8LJ,CD3LA,QACI,sBC8LJ,CD3LA,YACI,uBC8LJ,CCnQA,IAEI,WAAY,CADZ,cAAe,CAEf,eDsQJ,CCnQA,YAEI,qBAAuB,CADvB,WDuQJ,CCnQA,QAEI,iBAAkB,CAClB,cAAe,CACf,YAAa,CFsCb,gBADoB,CAEpB,iBAFoB,CEpCpB,kBDuQJ,CCpQA,MAEI,YDsQJ,CCpQI,UACI,cDsQR,CClQA,YAGI,kBAAmB,CAFnB,qBAAsB,CACtB,sBDsQJ,CCnQI,gBACI,qBAAsB,CACtB,2BAA4B,CAC5B,4BDqQR,CCjQA,WAEI,cAAe,CADf,YDqQJ,CChQA,YAEI,sBDkQJ,CC/PA,yBACI,QACI,WDkQN,CACF,CC/PA,oCACI,YACI,iBDiQN,CChQM,gBACI,6BAA8B,CAC9B,8BDkQV,CACF,CElUA,gCAKI,iCCDU,CDAV,cAAe,CADf,eAA0B,CAD1B,iBAAkB,CADlB,UFwUJ,CEjUA,EAEI,cADA,oBFqUJ,CElUI,QACI,yBFoUR,CEhUA,YAGI,iCChBU,CDeV,cAAe,CADf,aFqUJ,CEhUA,iBAEI,mCCpBQ,CDmBR,cFoUJ,CEhUA,0BACI,iCCzBU,CD0BV,cFmUJ,CEhUA,eACI,qBFmUJ,CEhUA,yBACI,YACI,cFmUN,CE9TE,2CACI,cFmUN,CACF,CInXA,GACI,gDAAuD,CAEvD,WAAY,CADZ,UAAW,CAEX,mBJqXJ,CIlXA,yBACI,GACI,eAAgB,CAChB,gBJqXN,CACF,CKvXA,KAEI,qBAAsB,CAEtB,yBNuCA,kBMxCA,oCAA2C,CAE3C,ULyXJ,CKtXI,WAEI,WAAY,CADZ,sCAA2C,CAE3C,SLwXR,CKpXA,YApBI,cADoB,CAGpB,cAAe,CADf,UL6YJ,CKtXA,UAxBI,cAyBkB,CAvBlB,cAAe,CADf,eLmZJ,CKxXA,SACI,YAAa,CAEb,kBAAmB,CADnB,cAAe,CAEf,sBAAuB,CACvB,aL2XJ,CKzXI,WAEI,cAAe,CADf,gBL4XR,CKvXA,WAzCI,cA0CkB,CAElB,UAAY,CA1CZ,cAAe,CAyCf,wBAA0B,CAE1B,8BAAgC,CA5ChC,ULwaJ,CK1XI,iBAGI,YAAa,CADb,iBAAkB,CADlB,YL8XR,CKzXI,iBACI,SAAU,CACV,oBL2XR,CKvXA,eACI,UL0XJ,CKvXA,WA/DI,cAgEkB,CNhBlB,mBM9CA,cAAe,CADf,SL4bJ,CKzXA,kBACI,qBAAuB,CACvB,eL4XJ,CK1XI,6BACI,UL4XR,CKxXA,kBACI,eL2XJ,CKxXA,eACI,YAAa,CAGb,UAAW,CAFX,sBAAuB,CACvB,eL4XJ,CKzXI,iBAGI,wBFnFK,CJyCT,mBM2CI,UAAY,CAGZ,WAAY,CACZ,eAAgB,CAFhB,eAAgB,CAGhB,8BAAiC,CAJjC,YL8XR,CKxXQ,uBACI,wBF7FL,CE8FK,UAAY,CACZ,oBL0XZ,CKrXA,yBACI,YACI,ULwXN,CACF,CKrXA,yBACI,YACI,ULuXN,CKpXE,UACI,aLsXN,CKlXM,WACI,cLoXV,CKhXE,WA/HA,cAgIsB,CA9HtB,cAAe,CA+HX,wBAA0B,CAhI9B,WLofF,CKlXM,iBACI,aLoXV,CKhXE,eACI,wBAAyB,CACzB,oBLkXN,CACF,CK/WA,oCACI,WACI,cLiXN,CACF,CMjgBA,0BACI,GACI,SNmgBN,CMjgBE,GACI,SNmgBN,CACF,CMzgBA,kBACI,GACI,SNmgBN,CMjgBE,GACI,SNmgBN,CACF,CMhgBA,4BACI,GAEI,SAAU,CADV,mENmgBN,CMhgBE,GAEI,SAAU,CADV,uDNmgBN,CACF,CM1gBA,oBACI,GAEI,SAAU,CADV,mENmgBN,CMhgBE,GAEI,SAAU,CADV,uDNmgBN,CACF,CM/fA,8BACI,GAEI,SAAU,CADV,qENkgBN,CM/fE,GAEI,SAAU,CADV,uDNkgBN,CACF,CMzgBA,sBACI,GAEI,SAAU,CADV,qENkgBN,CM/fE,GAEI,SAAU,CADV,uDNkgBN,CACF,CM9fA,8BACI,GAEI,SAAU,CADV,qENigBN,CM9fE,GAEI,SAAU,CADV,uDNigBN,CACF,CMxgBA,sBACI,GAEI,SAAU,CADV,qENigBN,CM9fE,GAEI,SAAU,CADV,uDNigBN,CACF,CM7fA,2BACI,GACI,SN+fN,CM7fE,GACI,SN+fN,CACF,CMrgBA,mBACI,GACI,SN+fN,CM7fE,GACI,SN+fN,CACF,CM5fA,iBAtDI,6BAuD2B,CAvD3B,qBAuD2B,CAxD3B,6BAwDmB,CAxDnB,qBNujBJ,CM5fA,iBA1DI,+BA2D6B,CA3D7B,uBA2D6B,CA5D7B,+BA4DmB,CA5DnB,uBN4jBJ,CM7fA,YA9DI,8BA+D2B,CA/D3B,sBA+D2B,CAhE3B,6BAgEmB,CAhEnB,qBNikBJ,CMxfA,kDAxEI,6BAyE+B,CAzE/B,qBAyE+B,CA1E/B,iCA0EmB,CA1EnB,yBN2kBJ,COvkBA,QR+CI,kBQ7CA,UP0kBJ,COxkBI,eAGI,gBAAiB,CACjB,yBACA,WAAY,CRsChB,kBQrCI,cAAe,CACf,iBAAkB,CALlB,UP+kBR,COxkBQ,qBAKI,wBJTS,CIUT,2CALA,WAGA,YAAc,CAGd,QAAS,CALT,iBAAkB,CAMlB,OAAQ,CALR,YP+kBZ,COrkBA,aAGI,MAAO,CAFP,cAAe,CACf,KAAM,CAEN,SPwkBJ,COrkBA,aAEI,wBJ3Bc,CJuCd,kBQVA,YAAa,CADb,UPykBJ,COtkBI,gBACI,cPwkBR,COtkBQ,kBAII,UAAY,CAGZ,aAAc,CALd,cAAe,CAIf,WAAY,CALZ,aAAe,CAEf,oBAAqB,CAErB,UP0kBZ,COrkBQ,sBACI,wBJhDL,CIiDK,UPukBZ,COlkBA,gBD9DI,8BC+DyC,CD/DzC,sBC+DyC,CDhEzC,iCCgE6B,CDhE7B,yBNsoBJ,COhkBI,sBACI,wBJ7DK,CI+DL,gCADA,gBAAiB,CAEjB,ePmkBR,CO/jBA,cAKI,qBAAuB,CADvB,4CAEA,cAAe,CACf,iCJhFU,CI0EV,WAAY,CAOZ,gBAAiB,CANjB,UPwkBJ,COhkBI,oBACI,ePkkBR,CO9jBA,aACI,YPikBJ,CO/jBI,sBACI,YPikBR,CO7jBA,oCACI,aACI,YPgkBN,CACF,CO7jBA,oCACI,aAEI,SAAU,CACV,eAAgB,CAFhB,QPikBN,CO5jBE,aACI,WP8jBN,CO3jBE,gBACI,uDP6jBN,CO1jBE,cAII,0CAHA,WAAY,CACZ,UP8jBN,COzjBE,UACI,aP2jBN,COzjBM,sBACI,kBAAmB,CACnB,6BP2jBV,COvjBE,aACI,YPyjBN,CACF,CQnsBA,MAGI,qBAAuB,CTyCvB,YAAa,CACb,cS5CwB,CACxB,URusBJ,CQpsBI,QACI,eAAgB,CAChB,URssBR,CQlsBA,WAEI,cAAe,CACf,yBTmCA,mBSlCA,kCAA2C,CAC3C,iCAAmC,CACnC,SRqsBJ,CQnsBI,iBAEI,sCAA2C,CAD3C,SAAU,CAEV,SRqsBR,CQjsBA,kBACI,qBRosBJ,CQjsBA,gBACI,YAAa,CACb,cAAe,CACf,cRosBJ,CQjsBA,WACI,YAAa,CACb,wBAAyB,CACzB,eRosBJ,CQjsBA,WAII,cAAe,CAFf,yBTKA,mBSJA,oCAA2C,CAE3C,qBAAsB,CACtB,gBRosBJ,CQhsBA,oCACI,WACI,oCRmsBN,CACF,CS1vBA,gBAEI,WAAY,CADZ,UT6vBJ,CS1vBI,sBAEI,wBNEK,CMDL,WAAY,CV0ChB,kBUzCI,UT4vBR,CSzvBI,uBAEI,WAAY,CVoChB,kBUnCI,cT2vBR,CSzvBQ,6BACI,qBT2vBZ,CU/wBA,KACI,YAAa,CACb,cVkxBJ,CUhxBI,OACI,UVkxBR,CU9wBA,oCACI,OAAQ,WVkxBV,CUjxBE,OAAQ,YVoxBV,CUnxBE,OAAQ,SVsxBV,CUrxBE,OAAQ,YVwxBV,CUvxBE,OAAQ,YV0xBV,CUzxBE,OAAQ,SV4xBV,CU3xBE,OAAQ,YV8xBV,CU7xBE,OAAQ,YVgyBV,CU/xBE,OAAQ,SVkyBV,CUjyBE,QAAS,YVoyBX,CUnyBE,QAAS,YVsyBX,CUryBE,QAAS,UVwyBX,CACF,CW9yBA,WAEI,qBAAuB,CZkCvB,kBAIA,gBADoB,CAEpB,iBC2wBJ,CW9yBA,cAEI,YAAa,CADb,SXkzBJ,CW/yBA,kBAGI,iBAAkB,CADlB,cAAe,CADf,iBXozBJ,CW/yBA,cAEI,WAAY,CAEZ,kBAAmB,CADnB,eAAgB,CAFhB,UXqzBJ,CW/yBA,iBA5BI,eA6B8B,CA9B9B,SXo1BJ,CWnzBA,+BZaI,gBADoB,CAEpB,iBAFoB,CY3CpB,eX01BJ,CW3zBA,cAhCI,eAiC8B,CAlC9B,SX41BJ,CWvzBA,mBApCI,eXo2BJ,CW3zBA,wCAHI,aAAc,CZOd,gBADoB,CAEpB,iBAFoB,CY3CpB,eAoCqC,CAtCrC,SX82BJ,CWp0BA,qBAzCI,eX62BJ,CW/zBA,eAnDI,wBRKS,CJyCT,kBCy0BJ,CWh0BA,oCACI,cACI,SXm0BN,CACF,CWh0BA,yBACI,cACI,UXk0BN,CACF,CW/zBA,2DACI,cACI,YXi0BN,CACF,CW9zBA,yBACI,cAEI,YAAa,CADb,WXi0BN,CACF,CYv4BA,EAKI,qBAAsB,CAHtB,QAAS,CACT,SZy4BJ,CYp4BA,KAII,2BAA4B,CAH5B,yEAIA,uBAA2B,CAF3B,2BAA4B,CAD5B,qBAAsB,CAItB,mCZu4BJ,CYp4BA,GACI,oBZu4BJ,CYp4BA,QACI,mBZu4BJ,CYp4BA,YACI,UAAW,CACX,iBZu4BJ,CYp4BA,abcI,eab2B,Cbc3B,gBC03BJ,CYr4BA,kBACI,eZw4BJ,CYr4BA,WACI,iBZw4BJ,CYl4BI,kBACI,iCZo4BR,CYh4BA,aACI,cZm4BJ,CYj4BI,eAEI,UAAW,CADX,oBZo4BR,CY/3BA,iBACI,YZk4BJ,CY/3BA,gBAGI,WAAY,CACZ,YAAa,CAFb,iBZm4BJ,CY93BA,gBAEI,iBZg4BJ,CY73BA,iBACI,YZg4BJ,CY73BA,oCACI,gBACI,aZg4BN,CACF,CY73BA,yBAII,+BACI,aZ+3BN,CY73BE,iBACI,aZ+3BN,CACF,CY53BA,oCACI,WbtDA,iBauD+B,CbtD/B,kBCq7BF,CY73BE,WbzDA,gBa0D+B,CbzD/B,iBCy7BF,CACF,CY73BA,qCACI,Wb/DA,iBagE+B,Cb/D/B,kBC+7BF,CY73BE,gBACI,gBZ+3BN,CY53BE,abvEA,gBADoB,CAEpB,iBAFoB,Ca0EhB,eAAgB,CAChB,cAAe,CACf,eZ+3BN,CACF","sources":["css/scss/general/_util.scss","css/style.css","css/scss/components/_image.scss","css/scss/components/_text.scss","css/scss/general/_var.scss","css/scss/components/_line.scss","css/scss/components/_button.scss","css/scss/general/_animation.scss","css/scss/components/_navbar.scss","css/scss/components/_card.scss","css/scss/components/_form.scss","css/scss/general/_grid.scss","css/scss/general/_container.scss","css/scss/style.scss"],"sourcesContent":["@use \"var\";\n\n/* Bootstrap-like spacing */\n$spacer: 1rem;\n$factors: (\n 0: 0,\n 1: .25,\n 2: .5,\n 3: 1,\n 4: 1.5,\n 5: 3,\n);\n$directions: (\n \"t\": \"top\",\n \"b\": \"bottom\",\n \"s\": \"left\",\n \"e\": \"right\",\n);\n\n\n@each $key, $direction in $directions {\n @each $id, $factor in $factors {\n .m#{$key}-#{$id} {\n margin-#{$direction}: calc($spacer) * $factor !important;\n }\n .p#{$key}-#{$id} {\n padding-#{$direction}: calc($spacer) * $factor !important;\n }\n }\n}\n\n@each $id, $factor in $factors {\n .m-#{$id} {\n margin: calc($spacer) * $factor !important;\n }\n .p-#{$id} {\n padding: calc($spacer) * $factor !important;\n }\n}\n\n%flex-center {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n@mixin flex-wrap($wrap: wrap) {\n display: flex;\n flex-wrap: $wrap;\n}\n\n@mixin rounded($offset: 0px) {\n border-radius: var.$radius + $offset;\n}\n\n@mixin center-block($m: auto, $mode: \"margin\") {\n #{$mode}-left: $m;\n #{$mode}-right: $m;\n}\n\n.center {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.is-current {\n display: block !important;\n}","@import url(\"https://fonts.googleapis.com/css2?family=Montserrat&display=swap\");\n@import url(\"https://fonts.googleapis.com/css2?family=Courier+Prime&display=swap\");\n/* Bootstrap-like spacing */\n.mt-0 {\n margin-top: 0rem !important;\n}\n\n.pt-0 {\n padding-top: 0rem !important;\n}\n\n.mt-1 {\n margin-top: 0.25rem !important;\n}\n\n.pt-1 {\n padding-top: 0.25rem !important;\n}\n\n.mt-2 {\n margin-top: 0.5rem !important;\n}\n\n.pt-2 {\n padding-top: 0.5rem !important;\n}\n\n.mt-3 {\n margin-top: 1rem !important;\n}\n\n.pt-3 {\n padding-top: 1rem !important;\n}\n\n.mt-4 {\n margin-top: 1.5rem !important;\n}\n\n.pt-4 {\n padding-top: 1.5rem !important;\n}\n\n.mt-5 {\n margin-top: 3rem !important;\n}\n\n.pt-5 {\n padding-top: 3rem !important;\n}\n\n.mb-0 {\n margin-bottom: 0rem !important;\n}\n\n.pb-0 {\n padding-bottom: 0rem !important;\n}\n\n.mb-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.pb-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.mb-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.pb-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.mb-3 {\n margin-bottom: 1rem !important;\n}\n\n.pb-3 {\n padding-bottom: 1rem !important;\n}\n\n.mb-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.pb-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.mb-5 {\n margin-bottom: 3rem !important;\n}\n\n.pb-5 {\n padding-bottom: 3rem !important;\n}\n\n.ms-0 {\n margin-left: 0rem !important;\n}\n\n.ps-0 {\n padding-left: 0rem !important;\n}\n\n.ms-1 {\n margin-left: 0.25rem !important;\n}\n\n.ps-1 {\n padding-left: 0.25rem !important;\n}\n\n.ms-2 {\n margin-left: 0.5rem !important;\n}\n\n.ps-2 {\n padding-left: 0.5rem !important;\n}\n\n.ms-3 {\n margin-left: 1rem !important;\n}\n\n.ps-3 {\n padding-left: 1rem !important;\n}\n\n.ms-4 {\n margin-left: 1.5rem !important;\n}\n\n.ps-4 {\n padding-left: 1.5rem !important;\n}\n\n.ms-5 {\n margin-left: 3rem !important;\n}\n\n.ps-5 {\n padding-left: 3rem !important;\n}\n\n.me-0 {\n margin-right: 0rem !important;\n}\n\n.pe-0 {\n padding-right: 0rem !important;\n}\n\n.me-1 {\n margin-right: 0.25rem !important;\n}\n\n.pe-1 {\n padding-right: 0.25rem !important;\n}\n\n.me-2 {\n margin-right: 0.5rem !important;\n}\n\n.pe-2 {\n padding-right: 0.5rem !important;\n}\n\n.me-3 {\n margin-right: 1rem !important;\n}\n\n.pe-3 {\n padding-right: 1rem !important;\n}\n\n.me-4 {\n margin-right: 1.5rem !important;\n}\n\n.pe-4 {\n padding-right: 1.5rem !important;\n}\n\n.me-5 {\n margin-right: 3rem !important;\n}\n\n.pe-5 {\n padding-right: 3rem !important;\n}\n\n.m-0 {\n margin: 0rem !important;\n}\n\n.p-0 {\n padding: 0rem !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.oauth-grp div, .btn, .read-more-btn a, .icon, .flex-image {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.center {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.is-current {\n display: block !important;\n}\n\nimg {\n max-width: 100%;\n height: auto;\n object-fit: fill;\n}\n\n.avatar-grp {\n border: none;\n background-color: white;\n}\n\n.avatar {\n margin-left: auto;\n margin-right: auto;\n border-radius: 50%;\n cursor: pointer;\n display: none;\n transition: src 500ms;\n}\n\n.icon {\n width: 33.33%;\n}\n.icon img {\n max-width: 32px;\n}\n\n.proj-image {\n border-radius: inherit;\n justify-content: center;\n align-items: center;\n}\n.proj-image img {\n border-radius: inherit;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.edu-image {\n width: 16.66%;\n min-width: 48px;\n}\n\n.flex-image {\n justify-content: center;\n}\n\n@media (max-width: 320px) {\n .avatar {\n width: 100px;\n }\n}\n@media screen and (min-width: 768px) {\n .proj-image {\n border-radius: 5px;\n }\n .proj-image img {\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n}\n.menu-copyright, .page-copyright {\n width: 100%;\n text-align: center;\n padding: 0 0.5rem 0 0.5rem;\n font-size: 12px;\n font-family: \"Montserrat\", sans-serif;\n}\n\na {\n text-decoration: none;\n color: #0d6efd;\n}\na:hover {\n text-decoration: underline;\n}\n\n.header-txt {\n padding: 0.5rem;\n font-size: 20px;\n font-family: \"Montserrat\", sans-serif;\n}\n\n.description-txt {\n font-size: 12px;\n font-family: \"Courier Prime\", monospace;\n}\n\n.oauth-txt, .guestbook-txt {\n font-family: \"Montserrat\", sans-serif;\n font-size: 12px;\n}\n\n.guestbook-txt {\n word-break: break-word;\n}\n\n@media (min-width: 576px) {\n .header-txt {\n font-size: 24px;\n }\n .description-txt {\n font-size: 14px;\n }\n .oauth-txt, .guestbook-txt {\n font-size: 14px;\n }\n}\nhr {\n background: linear-gradient(to right, #fff, #000, #fff);\n height: 1px;\n border: none;\n margin: 2rem 10rem 0 10rem;\n}\n\n@media (max-width: 576px) {\n hr {\n margin-left: 10%;\n margin-right: 10%;\n }\n}\n.btn {\n background-color: #fff;\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n border: 1px solid #cbcbcb;\n opacity: 0.8;\n border-radius: 5px;\n}\n.btn:hover {\n box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);\n border: none;\n opacity: 1;\n}\n\n.btn-square {\n aspect-ratio: 1;\n width: 2rem;\n cursor: pointer;\n}\n\n.btn-rect {\n aspect-ratio: 2;\n width: 4.6875rem;\n cursor: pointer;\n}\n\n.btn-grp {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n justify-content: center;\n row-gap: 0.5rem;\n}\n.btn-grp a {\n margin: 0 0.625rem 0 0.625rem;\n font-size: 12px;\n}\n\n.btn-skill {\n aspect-ratio: 1;\n width: 3rem;\n cursor: pointer;\n font-size: 10px !important;\n color: black;\n transition: scale 150ms ease-out;\n}\n.btn-skill #name {\n width: 66.66%;\n text-align: center;\n display: none;\n}\n.btn-skill:hover {\n scale: 1.1;\n text-decoration: none;\n}\n\n.btn-oauth-box {\n width: 100%;\n}\n\n.btn-oauth {\n aspect-ratio: 6;\n width: 80%;\n cursor: pointer;\n border-radius: 25px;\n}\n\n.btn-oauth-github {\n background-color: black;\n box-shadow: none;\n}\n.btn-oauth-github .oauth-txt {\n color: white;\n}\n\n.btn-oauth-google {\n box-shadow: none;\n}\n\n.read-more-btn {\n display: flex;\n justify-content: center;\n margin-top: auto;\n height: 20%;\n}\n.read-more-btn a {\n border-radius: 15px;\n background-color: #cbcbcb;\n color: black;\n width: 16.67%;\n min-width: 120px;\n height: 100%;\n min-height: 30px;\n transition: all 300ms ease-in-out;\n}\n.read-more-btn a:hover {\n background-color: #8c8c8c;\n color: white;\n text-decoration: none;\n}\n\n@media (min-width: 320px) {\n .btn-square {\n width: 3rem;\n }\n}\n@media (min-width: 576px) {\n .btn-square {\n width: 4rem;\n }\n .btn-rect {\n width: 6.25rem;\n }\n .btn-grp a {\n font-size: 16px;\n }\n .btn-skill {\n aspect-ratio: 3;\n width: 150px;\n cursor: pointer;\n font-size: 12px !important;\n }\n .btn-skill #name {\n display: block;\n }\n .read-more-btn {\n justify-content: flex-end;\n padding-right: 1.5rem;\n }\n}\n@media screen and (min-width: 768px) {\n .btn-oauth {\n aspect-ratio: 5;\n }\n}\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes fadeInUp {\n from {\n transform: translate3d(0, 5%, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n@keyframes fadeInDown {\n from {\n transform: translate3d(0, -5%, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n@keyframes fadeInLeft {\n from {\n transform: translate3d(-5%, 0, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n.transition-menu {\n animation-name: fadeIn;\n animation-duration: 1s;\n}\n\n.transition-page {\n animation-name: fadeInUp;\n animation-duration: 1.5s;\n}\n\n.is-current {\n animation-name: fadeIn;\n animation-duration: 0.5s;\n}\n\n.transition-blog > *, .guestbook-txt > * {\n animation-name: fadeInLeft;\n animation-duration: 1s;\n}\n\n.fade-in-left {\n animation-name: fadeInLeft;\n animation-duration: 1s;\n}\n\n.navbar {\n border-radius: 5px;\n width: 100%;\n}\n.navbar button {\n border-radius: 5px;\n width: 45px;\n aspect-ratio: 1/1;\n background-color: #383838;\n border: none;\n cursor: pointer;\n position: absolute;\n}\n.navbar button::after {\n content: \"\";\n position: absolute;\n width: 66.67%;\n height: 0.5rem;\n background-color: #191717;\n box-shadow: 0 10px 0 #191717, 0 20px #191717;\n left: 18%;\n top: 18%;\n}\n\n.navbar-wrap {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n}\n\n.navbar-menu {\n border-radius: 5px;\n background-color: #383838;\n width: 100%;\n display: none;\n}\n.navbar-menu li {\n cursor: pointer;\n}\n.navbar-menu li a {\n padding: 0.5rem;\n font-size: 14px;\n text-decoration: none;\n color: white;\n width: 100%;\n height: auto;\n display: block;\n}\n.navbar-menu li:hover {\n background-color: #8c8c8c;\n opacity: 0.6;\n}\n\n.menu-animation {\n animation-name: fadeInDown;\n animation-duration: 300ms;\n}\n\n.tab-list .is-current {\n background-color: #cbcbcb;\n border-left: none;\n border-bottom: 2px solid #8c8c8c;\n font-weight: bold;\n}\n\n.vertical-tab {\n height: 50px;\n width: 100%;\n border: none;\n border-bottom: 2px solid #cbcbcb;\n background-color: white;\n cursor: pointer;\n font-family: \"Montserrat\", sans-serif;\n text-align: start;\n}\n.vertical-tab:hover {\n font-weight: bold;\n}\n\n.tab-content {\n height: 400px;\n}\n.tab-content .content {\n display: none;\n}\n\n@media screen and (min-width: 320px) {\n .tab-content {\n height: 320px;\n }\n}\n@media screen and (min-width: 768px) {\n .navbar-wrap {\n top: 25px;\n left: 25px;\n max-width: 150px;\n }\n .navbar-menu {\n width: 150px;\n }\n .menu-animation {\n animation-name: fadeInUp;\n }\n .vertical-tab {\n height: 50px;\n width: 100%;\n border: none;\n border-left: 2px solid #cbcbcb;\n }\n .tab-list {\n display: block;\n }\n .tab-list .is-current {\n border-bottom: none;\n border-left: 2px solid #8c8c8c;\n }\n .tab-content {\n height: 250px;\n }\n}\n.card {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n background-color: white;\n}\n.card > * {\n display: inherit;\n width: 100%;\n}\n\n.card-proj {\n border-radius: 15px;\n aspect-ratio: 2;\n border: 1px solid #cbcbcb;\n box-shadow: 0px 2px 0px rgba(0, 0, 0, 0.25);\n transition: scale 250ms ease-in-out;\n z-index: 2;\n}\n.card-proj:hover {\n scale: 1.2;\n box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);\n z-index: 3;\n}\n\n.proj-description {\n flex-direction: column;\n}\n\n.proj-tool-list {\n display: flex;\n flex-wrap: wrap;\n font-size: 12px;\n}\n\n.proj-href {\n display: flex;\n justify-content: flex-end;\n margin-top: auto;\n}\n\n.card-blog {\n border-radius: 15px;\n border: 1px solid #cbcbcb;\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n aspect-ratio: 4;\n flex-direction: column;\n flex-wrap: nowrap;\n}\n\n@media screen and (min-width: 768px) {\n .card-proj {\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n }\n}\n.guestbook-form {\n width: 100%;\n row-gap: 5px;\n}\n.guestbook-form input {\n border-radius: 5px;\n background-color: #cbcbcb;\n border: none;\n opacity: 0.6;\n}\n.guestbook-form button {\n border-radius: 5px;\n border: none;\n cursor: pointer;\n}\n.guestbook-form button:hover {\n border: 1px solid black;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n}\n.row > * {\n width: 100%;\n}\n\n@media screen and (min-width: 768px) {\n .col-1 {\n width: 8.33%;\n }\n .col-2 {\n width: 16.66%;\n }\n .col-3 {\n width: 25%;\n }\n .col-4 {\n width: 33.33%;\n }\n .col-5 {\n width: 41.66%;\n }\n .col-6 {\n width: 50%;\n }\n .col-7 {\n width: 58.33%;\n }\n .col-8 {\n width: 66.66%;\n }\n .col-9 {\n width: 75%;\n }\n .col-10 {\n width: 83.33%;\n }\n .col-11 {\n width: 91.66%;\n }\n .col-12 {\n width: 100%;\n }\n}\n.container {\n margin-left: auto;\n margin-right: auto;\n background-color: white;\n border-radius: 5px;\n}\n\n.menu-wrapper {\n width: 80%;\n height: 550px;\n}\n\n.mobile-landscape {\n position: relative;\n margin-top: 10%;\n margin-bottom: 10%;\n}\n\n.page-wrapper {\n width: 100%;\n height: auto;\n margin-top: 4rem;\n margin-bottom: 4rem;\n}\n\n.project-wrapper {\n width: 80%;\n max-width: 600px;\n margin-top: 50px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.blog-wrapper {\n width: 90%;\n max-width: 900px;\n margin-top: 50px;\n margin-left: auto;\n margin-right: auto;\n}\n\n.guestbook-wrapper {\n width: 80%;\n max-width: 768px;\n margin-top: 50px;\n margin-left: auto;\n margin-right: auto;\n height: 1000px;\n}\n\n.single-blog-wrapper {\n width: 80%;\n max-width: 900px;\n margin-top: 50px;\n margin-left: auto;\n margin-right: auto;\n height: 1000px;\n}\n\n.lightgray-box {\n border-radius: 10px;\n background-color: #cbcbcb;\n}\n\n@media screen and (min-width: 576px) {\n .page-wrapper {\n width: 80%;\n }\n}\n@media (min-width: 376px) {\n .menu-wrapper {\n height: 80%;\n }\n}\n@media screen and (min-width: 376px) and (max-height: 992px) {\n .menu-wrapper {\n height: 600px;\n }\n}\n@media (min-width: 768px) {\n .menu-wrapper {\n width: 720px;\n height: 600px;\n }\n}\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n background-image: url(\"../../public/background.webp\");\n background-size: cover;\n background-repeat: no-repeat;\n background-attachment: fixed;\n background-position: center;\n font-family: \"Courier Prime\", monospace;\n}\n\nul {\n list-style-type: none;\n}\n\nsection {\n padding-bottom: 50px;\n}\n\n.header-grp {\n padding: 5%;\n text-align: center;\n}\n\n.content-grp {\n padding-left: 5%;\n padding-right: 5%;\n}\n\n.social-media-grp {\n margin-top: 7.5%;\n}\n\n.oauth-grp {\n text-align: center;\n}\n.oauth-grp button {\n font-family: \"Montserrat\", sans-serif;\n}\n\n.nav-btn-grp {\n margin-top: 10%;\n}\n.nav-btn-grp a {\n text-decoration: none;\n color: #000;\n}\n\n.edu-content-grp {\n width: 83.33%;\n}\n\n.menu-copyright {\n position: absolute;\n bottom: 1rem;\n display: none;\n}\n\n.page-copyright {\n position: relative;\n}\n\n.proj-github-ref {\n display: none;\n}\n\n@media screen and (min-width: 376px) {\n .menu-copyright {\n display: block;\n }\n}\n@media (min-width: 576px) {\n .social-media-grp {\n margin-top: 5%;\n }\n .nav-btn-grp {\n margin-top: 5%;\n }\n .proj-github-ref {\n display: block;\n }\n}\n@media screen and (min-width: 996px) {\n .works-grp {\n margin-left: 100px;\n margin-right: 100px;\n }\n .oauth-grp {\n padding-left: 10%;\n padding-right: 10%;\n }\n}\n@media screen and (min-width: 1200px) {\n .works-grp {\n margin-left: 150px;\n margin-right: 150px;\n }\n .proj-tool-list {\n flex-wrap: nowrap;\n }\n .content-grp {\n margin-left: auto;\n margin-right: auto;\n max-width: 900px;\n padding-left: 0;\n padding-right: 0;\n }\n}\n\n","@use \"../general/util\";\n@use \"../general/var\";\n\nimg {\n max-width: 100%;\n height: auto;\n object-fit: fill;\n}\n\n.avatar-grp {\n border: none;\n background-color: white;\n}\n\n.avatar {\n @include util.center-block();\n border-radius: 50%;\n cursor: pointer;\n display: none;\n transition: src 500ms;\n}\n\n.icon {\n @extend %flex-center;\n width: 33.33%;\n \n img {\n max-width: 32px;\n }\n}\n\n.proj-image {\n border-radius: inherit;\n justify-content: center;\n align-items: center;\n\n img {\n border-radius: inherit;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n\n.edu-image {\n width: 16.66%;\n min-width: 48px;\n // border-right: 1px solid var.$light-gray;\n}\n\n.flex-image {\n @extend %flex-center;\n justify-content: center;\n}\n\n@media (max-width: 320px) {\n .avatar {\n width: 100px;\n }\n}\n\n@media screen and (min-width: 768px) {\n .proj-image {\n border-radius: 5px;\n img {\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n }\n }\n}","@use '../general/var';\n\n%copyright-txt {\n width: 100%;\n text-align: center;\n padding: 0 0.5rem 0 0.5rem;\n font-size: 12px;\n font-family: var.$header-font;\n}\n\na {\n text-decoration: none;\n color: var.$default-atag-color;\n \n &:hover {\n text-decoration: underline;\n }\n}\n\n.header-txt {\n padding: 0.5rem;\n font-size: 20px;\n font-family: var.$header-font;\n}\n\n.description-txt {\n font-size: 12px;\n font-family: var.$body-font;\n}\n\n.oauth-txt, .guestbook-txt {\n font-family: var.$header-font;\n font-size: 12px;\n}\n\n.guestbook-txt {\n word-break: break-word;\n}\n\n@media (min-width: 576px) {\n .header-txt {\n font-size: 24px;\n }\n .description-txt {\n font-size: 14px;\n }\n .oauth-txt, .guestbook-txt {\n font-size: 14px;\n }\n}","@import url('https://fonts.googleapis.com/css2?family=Montserrat&display=swap');\n@import url('https://fonts.googleapis.com/css2?family=Courier+Prime&display=swap');\n\n// $background-url: \"../background.jpg\";\n$background-url: \"../../public/background.webp\";\n$avatar-url: \"tuslipid.jpg\";\n$header-font: 'Montserrat', sans-serif;\n$body-font: 'Courier Prime', monospace;\n$blog-font: sans-serif;\n$radius: 5px;\n$gray: #8c8c8c;\n$light-gray: #cbcbcb;\n$default-atag-color: #0d6efd;\n$navbar-bg-color: #383838;\n$navbar-stick-color: #191717;\n","hr {\n background: linear-gradient(to right, #fff, #000, #fff);\n height: 1px;\n border: none;\n margin: 2rem 10rem 0 10rem;\n}\n\n@media (max-width: 576px) {\n hr {\n margin-left: 10%;\n margin-right: 10%;\n }\n}","@use '../general/util';\n@use '../general/var';\n\n@mixin shapeBtn($ratio: 1, $width: auto) {\n aspect-ratio: $ratio;\n width: $width;\n cursor: pointer;\n}\n\n.btn {\n @extend %flex-center;\n background-color: #fff;\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n border: 1px solid var.$light-gray;\n opacity: .8;\n @include util.rounded;\n \n &:hover {\n box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);\n border: none;\n opacity: 1;\n }\n}\n\n.btn-square {\n @include shapeBtn($width: 2rem);\n}\n\n.btn-rect {\n @include shapeBtn(2, 4.6875rem);\n}\n\n.btn-grp {\n display: flex;\n flex-wrap: wrap;\n flex-direction: row;\n justify-content: center;\n row-gap: 0.5rem;\n\n a {\n margin: 0 0.625rem 0 0.625rem;\n font-size: 12px;\n }\n}\n\n.btn-skill {\n @include shapeBtn(1, 3rem);\n font-size: 10px !important;\n color: black;\n transition: scale 150ms ease-out;\n\n #name {\n width: 66.66%;\n text-align: center;\n display: none;\n }\n\n &:hover {\n scale: 1.1;\n text-decoration: none;\n }\n}\n\n.btn-oauth-box {\n width: 100%;\n}\n\n.btn-oauth {\n @include shapeBtn(6, 80%);\n @include util.rounded(20);\n}\n\n.btn-oauth-github {\n background-color: black;\n box-shadow: none;\n\n .oauth-txt {\n color: white;\n }\n}\n\n.btn-oauth-google {\n box-shadow: none;\n}\n\n.read-more-btn {\n display: flex;\n justify-content: center;\n margin-top: auto;\n height: 20%;\n\n a {\n @extend %flex-center;\n @include util.rounded(10px);\n background-color: var.$light-gray;\n color: black;\n width: 16.67%;\n min-width: 120px;\n height: 100%;\n min-height: 30px;\n transition: all 300ms ease-in-out;\n\n &:hover {\n background-color: var.$gray;\n color: white;\n text-decoration: none;\n }\n }\n}\n\n@media (min-width: 320px) {\n .btn-square {\n width: 3rem;\n }\n}\n\n@media (min-width: 576px) {\n .btn-square {\n width: 4rem;\n }\n \n .btn-rect {\n width: 6.25rem;\n }\n \n .btn-grp {\n a {\n font-size: 16px;\n }\n }\n \n .btn-skill {\n @include shapeBtn(3, 150px);\n font-size: 12px !important;\n\n #name {\n display: block;\n }\n }\n\n .read-more-btn {\n justify-content: flex-end;\n padding-right: 1.5rem;\n }\n}\n\n@media screen and (min-width: 768px) {\n .btn-oauth {\n aspect-ratio: 5;\n }\n}","@mixin animation($animation, $time) {\n animation-name: $animation;\n animation-duration: $time;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeInUp {\n from {\n transform: translate3d(0, 5%, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n\n@keyframes fadeInDown {\n from {\n transform: translate3d(0, -5%, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n\n@keyframes fadeInLeft {\n from {\n transform: translate3d(-5%, 0, 0);\n opacity: 0;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.transition-menu {\n @include animation(fadeIn, 1s);\n}\n\n.transition-page {\n @include animation(fadeInUp, 1.5s);\n}\n\n.is-current {\n @include animation(fadeIn, 0.5s);\n}\n\n.transition-blog, .guestbook-txt {\n &>*{\n @include animation(fadeInLeft, 1s);\n }\n}\n\n.fade-in-left {\n @include animation(fadeInLeft, 1s);\n}","@use '../general/var';\n@use '../general/util';\n@use '../general/animation';\n\n\n.navbar {\n @include util.rounded;\n width: 100%;\n\n button {\n @include util.rounded;\n width: 45px;\n aspect-ratio: 1/1;\n background-color: var.$navbar-bg-color;\n border: none;\n cursor: pointer;\n position: absolute;\n\n &::after {\n content: '';\n position: absolute;\n width: 66.67%;\n height: 0.5rem;\n background-color: var.$navbar-stick-color;\n box-shadow: 0 10px 0 var.$navbar-stick-color, 0 20px var.$navbar-stick-color;\n left: 18%;\n top: 18%;\n }\n }\n}\n\n.navbar-wrap {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1;\n}\n\n.navbar-menu {\n @include util.rounded;\n background-color: var.$navbar-bg-color;\n width: 100%;\n display: none;\n\n li {\n cursor: pointer;\n\n a {\n padding: 0.5rem;\n font-size: 14px;\n text-decoration: none;\n color: white;\n width: 100%;\n height: auto;\n display: block;\n }\n\n &:hover {\n background-color: var.$gray;\n opacity: 0.6;\n }\n } \n}\n\n.menu-animation {\n @include animation.animation(fadeInDown, 300ms);\n}\n\n.tab-list {\n // @include util.flex-wrap(nowrap);\n\n .is-current {\n background-color: var.$light-gray;\n border-left: none;\n border-bottom: 2px solid var.$gray;\n font-weight: bold;\n }\n}\n\n.vertical-tab {\n height: 50px;\n width: 100%;\n border: none;\n border-bottom: 2px solid var.$light-gray;\n background-color: white;\n cursor: pointer;\n font-family: var.$header-font;\n text-align: start;\n\n &:hover {\n font-weight: bold;\n }\n}\n\n.tab-content {\n height: 400px;\n\n .content {\n display: none;\n }\n}\n\n@media screen and (min-width: 320px) {\n .tab-content {\n height: 320px;\n }\n}\n\n@media screen and (min-width: 768px) {\n .navbar-wrap {\n top: 25px;\n left: 25px;\n max-width: 150px;\n }\n \n .navbar-menu {\n width: 150px;\n }\n\n .menu-animation {\n animation-name: fadeInUp;\n }\n\n .vertical-tab {\n height: 50px;\n width: 100%;\n border: none;\n border-left: 2px solid var.$light-gray;\n }\n\n .tab-list {\n display: block;\n\n .is-current {\n border-bottom: none;\n border-left: 2px solid var.$gray;\n }\n }\n\n .tab-content {\n height: 250px;\n }\n}","@use '../general/util';\n@use '../general/var';\n\n.card {\n @include util.flex-wrap(wrap);\n width: 100%;\n background-color: white;\n\n &>*{\n display: inherit;\n width: 100%;\n }\n}\n\n.card-proj {\n @include util.rounded(10);\n aspect-ratio: 2;\n border: 1px solid var.$light-gray;\n box-shadow: 0px 2px 0px rgba(0, 0, 0, 0.25);\n transition: scale 250ms ease-in-out;\n z-index: 2;\n\n &:hover {\n scale: 1.2;\n box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);\n z-index: 3;\n }\n}\n\n.proj-description {\n flex-direction: column;\n}\n\n.proj-tool-list {\n display: flex;\n flex-wrap: wrap;\n font-size: 12px;\n}\n\n.proj-href {\n display: flex;\n justify-content: flex-end;\n margin-top: auto;\n}\n\n.card-blog {\n @include util.rounded(10);\n border: 1px solid var.$light-gray;\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n aspect-ratio: 4;\n flex-direction: column;\n flex-wrap: nowrap;\n}\n\n\n@media screen and (min-width: 768px) {\n .card-proj {\n box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.25);\n }\n}","@use '../general/var';\n@use '../general/util';\n\n.guestbook-form {\n width: 100%;\n row-gap: 5px;\n\n input {\n @include util.rounded;\n background-color: var.$light-gray;\n border: none;\n opacity: 0.6;\n }\n\n button {\n @include util.rounded;\n border: none;\n cursor: pointer;\n\n &:hover {\n border: 1px solid black;\n }\n }\n}",".row {\n display: flex;\n flex-wrap: wrap;\n\n &>* {\n width: 100%;\n }\n}\n\n@media screen and (min-width: 768px) {\n .col-1 {width: 8.33%;}\n .col-2 {width: 16.66%;}\n .col-3 {width: 25%;}\n .col-4 {width: 33.33%;}\n .col-5 {width: 41.66%;}\n .col-6 {width: 50%;}\n .col-7 {width: 58.33%;}\n .col-8 {width: 66.66%;}\n .col-9 {width: 75%;}\n .col-10 {width: 83.33%;}\n .col-11 {width: 91.66%;}\n .col-12 {width: 100%;}\n}","@use \"util\";\n@use \"var\";\n@use \"animation\";\n\n@mixin box($theme: white) {\n @include util.rounded($offset: 5px);\n background-color: $theme;\n}\n\n@mixin content-wrapper($width, $maxWidth, $marginTop) {\n width: $width;\n max-width: $maxWidth;\n margin-top: $marginTop;\n @include util.center-block();\n}\n\n.container {\n @include util.center-block();\n background-color: white;\n @include util.rounded;\n}\n\n.menu-wrapper {\n width: 80%;\n height: 550px;\n}\n.mobile-landscape {\n position: relative;\n margin-top: 10%;\n margin-bottom: 10%;\n}\n\n.page-wrapper {\n width: 100%;\n height: auto;\n margin-top: 4rem;\n margin-bottom: 4rem;\n}\n\n.project-wrapper {\n @include content-wrapper(80%, 600px, 50px);\n}\n\n.blog-wrapper {\n @include content-wrapper(90%, 900px, 50px);\n}\n\n.guestbook-wrapper {\n @include content-wrapper(80%, 768px, 50px);\n height: 1000px;\n}\n\n.single-blog-wrapper {\n @include content-wrapper(80%, 900px, 50px);\n height: 1000px;\n}\n\n.lightgray-box {\n @include box($theme: var.$light-gray);\n}\n\n@media screen and (min-width: 576px) {\n .page-wrapper {\n width: 80%;\n }\n}\n\n@media (min-width: 376px) {\n .menu-wrapper {\n height: 80%;\n }\n}\n\n@media screen and (min-width: 376px) and (max-height: 992px) {\n .menu-wrapper {\n height: 600px;\n }\n}\n\n@media (min-width: 768px) {\n .menu-wrapper {\n width: 720px;\n height: 600px;\n }\n}\n","@use 'components/image';\n@use 'components/text';\n@use 'components/line';\n@use 'components/button';\n@use 'components/navbar';\n@use 'components/card';\n@use 'components/form';\n@use 'general/var';\n@use 'general/grid';\n@use 'general/container';\n@use 'general/util';\n\n*\n{\n margin: 0;\n padding: 0;\n // font-size: 100%;\n box-sizing: border-box;\n}\n\nbody {\n background-image: url(var.$background-url);\n background-size: cover;\n background-repeat: no-repeat;\n background-attachment: fixed;\n background-position: center;\n font-family: var.$body-font;\n}\n\nul {\n list-style-type: none;\n}\n\nsection {\n padding-bottom: 50px;\n}\n\n.header-grp {\n padding: 5%;\n text-align: center;\n}\n\n.content-grp {\n @include util.center-block(5%, \"padding\");\n}\n\n.social-media-grp {\n margin-top: 7.5%;\n}\n\n.oauth-grp {\n text-align: center;\n\n div {\n @extend %flex-center;\n }\n\n button {\n font-family: var.$header-font;\n }\n}\n\n.nav-btn-grp {\n margin-top: 10%;\n \n a {\n text-decoration: none;\n color: #000;\n }\n}\n\n.edu-content-grp {\n width: 83.33%;\n}\n\n.menu-copyright {\n @extend %copyright-txt;\n position: absolute;\n bottom: 1rem;\n display: none;\n}\n\n.page-copyright {\n @extend %copyright-txt;\n position: relative;\n}\n\n.proj-github-ref {\n display: none;\n}\n\n@media screen and (min-width: 376px) {\n .menu-copyright {\n display: block;\n }\n}\n\n@media (min-width: 576px) {\n .social-media-grp {\n margin-top: 5%;\n }\n .nav-btn-grp {\n margin-top: 5%;\n }\n .proj-github-ref {\n display: block;\n }\n}\n\n@media screen and (min-width: 996px) {\n .works-grp {\n @include util.center-block(100px);\n }\n .oauth-grp {\n @include util.center-block(10%, \"padding\");\n }\n}\n\n@media screen and (min-width: 1200px) {\n .works-grp {\n @include util.center-block(150px);\n }\n \n .proj-tool-list {\n flex-wrap: nowrap;\n }\n\n .content-grp {\n @include util.center-block();\n max-width: 900px;\n padding-left: 0;\n padding-right: 0;\n }\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/381.03328f92.chunk.js b/static/js/381.03328f92.chunk.js deleted file mode 100644 index f056151..0000000 --- a/static/js/381.03328f92.chunk.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunktuslipid=self.webpackChunktuslipid||[]).push([[381],{3381:function(s,t,e){s.exports=e.p+"static/media/uncommon_javascript_keynotes.5197416f72cbab6988d3.md"}}]); \ No newline at end of file diff --git a/static/js/381.29a95a9f.chunk.js b/static/js/381.29a95a9f.chunk.js new file mode 100644 index 0000000..5b66d70 --- /dev/null +++ b/static/js/381.29a95a9f.chunk.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunktuslipid=self.webpackChunktuslipid||[]).push([[381],{3381:function(e,s,t){e.exports=t.p+"static/media/uncommon_javascript_keynotes.b9026eb7e57147e1c8f9.md"}}]); \ No newline at end of file diff --git a/static/js/main.1bde719c.js b/static/js/main.1bde719c.js new file mode 100644 index 0000000..ab90dbd --- /dev/null +++ b/static/js/main.1bde719c.js @@ -0,0 +1,3 @@ +/*! For license information please see main.1bde719c.js.LICENSE.txt */ +!function(){var e={9734:function(e,t,n){"use strict";var r=n(9126),a=n(184);t.Z=function(e){var t=(new Date).getFullYear();return(0,a.jsxs)("div",{className:"".concat(e.copyright_class," pt-4"),children:[(0,a.jsx)("div",{className:"proj-github-ref",children:(0,a.jsx)("a",{href:"https://github.com/khoaxuantu/tuslipid",target:"_blank",rel:"noreferrer","aria-label":"web source code",children:(0,a.jsx)(r.rFR,{opacity:.8,color:"black"})})}),"Created by Xuan Khoa Tu Nguyen with "," ",(0,a.jsx)("a",{href:"https://react.dev/",children:"React"}),", "," ",(0,a.jsx)("a",{href:"https://www.typescriptlang.org/",children:"TypeScript"})," and "," ",(0,a.jsx)("a",{href:"https://sass-lang.com/",children:"Sass"})," "," ","\xa9 ",t,"."]})}},4695:function(e,t,n){"use strict";n.d(t,{TX:function(){return s},am:function(){return i},hU:function(){return o}});var r=n(1087),a=n(184);function i(e){return(0,a.jsx)(r.rU,{to:e.url,className:e.classname,children:e.content})}function o(e){var t;return t="string"===typeof e.icon?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"icon",children:(0,a.jsx)("img",{className:"m-1",src:e.icon,alt:e.name,width:32})}),(0,a.jsx)("div",{id:"name",children:e.id})]}):(0,a.jsx)(e.icon,{className:"icon",size:"1.5rem",color:"#000"}),(0,a.jsx)(r.rU,{id:e.id,className:e.classname,to:e.url,target:"_blank","aria-label":"Button with icon "+e.id,children:t},e.id)}function s(e){return(0,a.jsxs)("button",{className:"btn btn-oauth ".concat(e.classname," ps-3 pe-3 pt-1 pb-1"),onClick:e.onClick,children:[(0,a.jsx)(e.icon,{size:20,color:"white",className:"me-3"}),(0,a.jsx)("span",{className:"oauth-txt",children:"Sign in with "+e.name})]})}},4749:function(e,t,n){"use strict";n.d(t,{Z:function(){return h},i:function(){return f}});var r=n(1413),a=n(5593),i=n(9126),o=n(9983);function s(e){return(0,o.w_)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"}},{tag:"polyline",attr:{points:"15 3 21 3 21 9"}},{tag:"line",attr:{x1:"10",y1:"14",x2:"21",y2:"3"}}]})(e)}var u=n(1087),l=n(184),c=n(3828),f=new a.Z(c).get();function d(e){var t,n,r;return void 0!==e.imageURL&&(t=(0,l.jsx)("img",{src:e.imageURL,alt:e.title+" image"})),void 0!==e.githubURL&&(r=(0,l.jsx)("li",{children:(0,l.jsx)("a",{href:e.githubURL,target:"_blank",rel:"noreferrer",children:(0,l.jsx)(i.rFR,{size:24,color:"#000"})})})),void 0!==e.demoURL&&(n=(0,l.jsx)("li",{className:"ps-3",children:(0,l.jsx)("a",{href:e.demoURL,target:"_blank",rel:"noreferrer",children:(0,l.jsx)(s,{size:24,color:"#000"})})})),(0,l.jsxs)("div",{className:"card card-proj mb-5",children:[(0,l.jsx)("div",{className:"col-5 proj-image",children:t}),(0,l.jsxs)("div",{className:"col-7 p-3 proj-description",children:[(0,l.jsx)("h3",{className:"header-txt",children:e.title}),(0,l.jsx)("ul",{className:"pb-4 ps-2 proj-tool-list",children:e.tools.map((function(e){return(0,l.jsx)("li",{className:"pe-2",children:e},e)}))}),(0,l.jsx)("div",{className:"ps-2",children:e.description.map((function(e,t){return(0,l.jsx)("p",{className:"pb-2 description-txt",children:e},t)}))}),(0,l.jsxs)("ul",{className:"proj-href",children:[r,n]})]})]})}function p(e){return(0,l.jsxs)("div",{className:"card card-blog mb-5 fade-in-left",children:[(0,l.jsx)("h3",{className:"header-txt p-3",children:e.title}),(0,l.jsx)("div",{className:"description-txt p-3",children:e.brief_description}),(0,l.jsx)("div",{className:"read-more-btn mb-4",children:(0,l.jsxs)(u.rU,{className:"description-txt",to:"/blogs"+e.url,children:["Read more -",">"]})})]})}var h=function(e){var t;return"Projects"===e.content_section?t=(0,l.jsx)(d,(0,r.Z)({},e)):"Blogs"===e.content_section&&(t=(0,l.jsx)(p,(0,r.Z)({},e))),(0,l.jsx)(l.Fragment,{children:t})}},5593:function(e,t,n){"use strict";var r=n(5671),a=n(3144),i=function(){function e(t){(0,r.Z)(this,e),this.reqMedia=void 0,this.reqMedia=t}return(0,a.Z)(e,[{key:"get",value:function(){var e=this;return this.reqMedia.keys().reduce((function(t,n){return t[n.substring(n.lastIndexOf("/")+1,n.lastIndexOf("."))]=e.reqMedia(n),t}),{})}}]),e}();t.Z=i},6531:function(e,t,n){"use strict";n.d(t,{iQ:function(){return h},PX:function(){return v},H$:function(){return c},mh:function(){return m},vS:function(){return p},qd:function(){return f},z0:function(){return l},hM:function(){return d}});var r=n(9983);var a=n(9126);var i=n(5593),o=n(8678),s=new i.Z(o).get(),u=n(4749);var l=[{id:"mail",url:"mailto:tungxk2908@gmail.com",icon:function(e){return(0,r.w_)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"none"},child:[{tag:"path",attr:{fillRule:"evenodd",clipRule:"evenodd",d:"M3.00977 5.83789C3.00977 5.28561 3.45748 4.83789 4.00977 4.83789H20C20.5523 4.83789 21 5.28561 21 5.83789V17.1621C21 18.2667 20.1046 19.1621 19 19.1621H5C3.89543 19.1621 3 18.2667 3 17.1621V6.16211C3 6.11449 3.00333 6.06765 3.00977 6.0218V5.83789ZM5 8.06165V17.1621H19V8.06199L14.1215 12.9405C12.9499 14.1121 11.0504 14.1121 9.87885 12.9405L5 8.06165ZM6.57232 6.80554H17.428L12.7073 11.5263C12.3168 11.9168 11.6836 11.9168 11.2931 11.5263L6.57232 6.80554Z",fill:"currentColor"}}]})(e)}},{id:"linkedin",url:"https://www.linkedin.com/in/xuan-khoa-tu-nguyen-1a8927204/",icon:a.NQh},{id:"github",url:"https://github.com/khoaxuantu",icon:a.rFR},{id:"facebook",url:"https://www.facebook.com/xuankhoatu.nguyen/",icon:function(e){return(0,r.w_)({tag:"svg",attr:{version:"1.1",viewBox:"0 0 16 16"},child:[{tag:"path",attr:{d:"M14.5 0h-13c-0.825 0-1.5 0.675-1.5 1.5v13c0 0.825 0.675 1.5 1.5 1.5h6.5v-7h-2v-2h2v-1c0-1.653 1.347-3 3-3h2v2h-2c-0.55 0-1 0.45-1 1v1h3l-0.5 2h-2.5v7h4.5c0.825 0 1.5-0.675 1.5-1.5v-13c0-0.825-0.675-1.5-1.5-1.5z"}}]})(e)}},{id:"discord",url:"https://discordapp.com/users/623530338869837825",icon:a.KpZ},{id:"codepen",url:"https://codepen.io/khoaxuantu",icon:function(e){return(0,r.w_)({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M502.285 159.704l-234-156c-7.987-4.915-16.511-4.96-24.571 0l-234 156C3.714 163.703 0 170.847 0 177.989v155.999c0 7.143 3.714 14.286 9.715 18.286l234 156.022c7.987 4.915 16.511 4.96 24.571 0l234-156.022c6-3.999 9.715-11.143 9.715-18.286V177.989c-.001-7.142-3.715-14.286-9.716-18.285zM278 63.131l172.286 114.858-76.857 51.429L278 165.703V63.131zm-44 0v102.572l-95.429 63.715-76.857-51.429L234 63.131zM44 219.132l55.143 36.857L44 292.846v-73.714zm190 229.715L61.714 333.989l76.857-51.429L234 346.275v102.572zm22-140.858l-77.715-52 77.715-52 77.715 52-77.715 52zm22 140.858V346.275l95.429-63.715 76.857 51.429L278 448.847zm190-156.001l-55.143-36.857L468 219.132v73.714z"}}]})(e)}}],c=[{url:"/about",content:"About"},{url:"/blogs",content:"Blogs"},{url:"/guestbook",content:"Guestbook"}],f=[{name:"AutoCAD",url:"https://www.autodesk.com/products/autocad/overview",icon:s.AutoCAD},{name:"Bootstrap",url:"https://getbootstrap.com/",icon:s.Bootstrap},{name:"C",url:"https://cppreference.com/",icon:s.C},{name:"C++",url:"https://cplusplus.com/",icon:s.CPP},{name:"CSS",url:"https://www.w3.org/Style/CSS/Overview.en.html",icon:s.CSS},{name:"Django",url:"https://www.djangoproject.com/",icon:s.Django},{name:"Docker",url:"https://www.docker.com/",icon:s.Docker},{name:"Firebase",url:"https://firebase.google.com/",icon:s["Firebase-Light"]},{name:"Flask",url:"https://flask.palletsprojects.com/",icon:s["Flask-Light"]},{name:"GCP",url:"https://cloud.google.com/",icon:s["GCP-Light"]},{name:"HTML",url:"https://developer.mozilla.org/en-US/docs/Web/HTML",icon:s.HTML},{name:"JavaScript",url:"https://www.javascript.com/",icon:s.JavaScript},{name:"Oracle DB",url:"https://www.oracle.com/database/",icon:s.Oracle},{name:"PostgreSQL",url:"https://www.postgresql.org/",icon:s["PostgreSQL-Light"]},{name:"PyTorch",url:"https://pytorch.org/",icon:s["PyTorch-Light"]},{name:"Python",url:"https://www.python.org/",icon:s["Python-Light"]},{name:"React",url:"https://react.dev/",icon:s["React-Dark"]},{name:"SQLite",url:"https://sqlite.org/",icon:s.SQLite},{name:"SASS",url:"https://sass-lang.com/",icon:s.Sass},{name:"TypeScript",url:"https://www.typescriptlang.org/",icon:s.TypeScript}],d=[{name:"Pixta Inc.",content:{title:"Backend Web Developer @ Pixta",time_space:"06/2023 - now | Hanoi, Vietnam",description:["Develop and manage the backend system for Pixtastock. \n Analyze data, evaluate the effectiveness of features to improve\n and develop new features.","Main stacks: Ruby, Nestjs, Nextjs","Updating..."]}},{name:"Pegatron",content:{title:"Data Engineer Intern @ Pegatron",time_space:"02/2022 - 06/2022 | Taipei, Taiwan",description:["Participated in the Shop Floor Information System (SFIS) development team, \n which processes the data to integrate it with Pegatron's manufacturing process \n among 7 global and 2 local factories.","Learned how to track and update the data flow, manage and develop \n databases via Oracle Database.","Contributed to the transformation and loading process in the ETL\n and customer's report by retrieving the data into >30 forms."]}},{name:"Techman Robot Inc.",content:{title:"Robotic Automation Egineering Trainee @ Techman",time_space:"06/2020 - 08/2020 | Taoyuan, Taiwan",description:["Got training in practical robotic processing and functioning.\n (Robotic arm, AI, IoT, Computer vision)","Developed the TM robotic automation project and presented the project\n at the 2020 Taipei Industrial Automation Exhibition.","Won the First Prize in the Projects competition held by the company."]}}],p={0:{id:"0",content_section:"Projects",title:"Algorithm Visualizer",description:["A web application that visualizes algorithms from code \n (initially provides sorting algorithms demonstration)."],tools:["HTML/CSS/JavaScript","Bootstrap","Flask","Heroku"],demoURL:"https://algovisual.xuankhoatu.com/",githubURL:"https://github.com/khoaxuantu/Algorithms-Visualizer",imageURL:u.i.Algovisual},1:{id:"1",content_section:"Projects",title:"CS50 Finance Replication",description:["A web-app replication of CS50 finance's mock stock-trading website \n (finance.cs50.net), which initially comes from a problem set in CS50X. \n It has been extended with some additional features and \n different database."],tools:["Flask","Bootstrap","SQLite","Firestore","GCP"],demoURL:"https://\ufb01nancerep.xuankhoatu.com/",githubURL:"https://github.com/khoaxuantu/finance-rep",imageURL:u.i.Financerep},2:{id:"2",content_section:"Projects",title:"E-commerce Auction",description:["An eBay-like e-commerce auction site that will allow users to post \n auction listings, place bids on listings,\n comment on those listings, and add listings to a \u201dwatchlist\u201d."],tools:["Django","Bootstrap","PostgreSQL"],demoURL:"https://youtu.be/dC6IBfkbZs8",githubURL:"https://github.com/khoaxuantu/E-commerce_auction_site",imageURL:u.i.Auction},3:{id:"3",content_section:"Projects",title:"Knapsack Solvers Analysis",description:["An analysis of the performance in solving typical knapsack problems \n by the Simplex Algorithm and the Harmony Search Algorithm, \n as the Advanced Algorithms coursework project."],tools:["Python","Or-tools"],githubURL:"https://github.com/khoaxuantu/Solving-Knapsacks-in-LinearProg-vs-HarmonySearch",imageURL:u.i.Knapsack},4:{id:"4",content_section:"Projects",title:"Email Single Page Application",description:["A front-end for an email client in SPA style that makes API calls to send\n and receive email"],tools:["Plain JavaScript","Django","Bootstrap"],githubURL:"https://github.com/khoaxuantu/one-page-email",imageURL:u.i.MailSPA},5:{id:"4",content_section:"Projects",title:"Wiki Encyclopedia",description:["A Wikipedia-like online encyclopedia that will allow users search \n for an encyclopedia entry, create new entries and edit an existing entry."],tools:["Django","Bootstrap"],githubURL:"https://github.com/khoaxuantu/wiki_encyclopedia",imageURL:u.i.Wiki},6:{id:"5",content_section:"Projects",title:"Calendar on Terminal",description:["A small project of calendar queried on terminal, as a midterm project \n when I first took the C programming course in 2020."],tools:["C"],githubURL:"https://github.com/khoaxuantu/Calendar_demo",imageURL:u.i.Calendar},7:{id:"6",content_section:"Projects",title:"Lottery Draw Robotic Application",description:["Participated in a group project to develop the robotic arm \n application project in the lottery drawing.","My responsibility is to set up Eye-in-hand Vision and \n 3D Vision via a camera attached to the robotic arm to detect\n the prize's patterns and the area for the gift box container."],tools:["Robotic automation algorithm design"],imageURL:u.i.Tm},8:{id:"7",content_section:"Projects",title:"Gripper Base System Sketch",description:["A graphical sketch of robotic arm gripper base system,\n as a manual graphic coursework in Mechanical Graphic course."],tools:["AutoCAD"],imageURL:u.i.AutoCAD}},h={great_ytb_channels_1:{content_section:"Blogs",id:"great_ytb_channels_1",title:"Great Youtube Channels (Part 1)",brief_description:"I watch youtube a lot, and I make a list of youtube channels\n I have watched that you may find interesting. Here is part 1 of my list...",url:"/great_ytb_channels_1",file:"great_ytb_channels_1.md"},great_ytb_channels_2:{content_section:"Blogs",id:"great_ytb_channels_2",title:"Great Youtube Channels (Part 2)",brief_description:"I watch youtube a lot, and I make a list of youtube channels\n I have watched that you may find interesting. Here is part 2 of my list...",url:"/great_ytb_channels_2",file:"great_ytb_channels_2.md"},markdown_starter:{content_section:"Blogs",id:"markdown_starter",title:"Get started with Markdown",brief_description:"My markdown theme which is generated by React Markdown.",url:"/markdown_starter",file:"markdown_starter.md"},uncommon_javascript_keynotes:{content_section:"Blogs",id:"uncommon_javascript_keynotes",title:"Uncommon JavaScript Keynotes: The language",brief_description:"JavaScript is super complicated, like a pain in your ass. \n Even when you are quite familiar with programming languages logics and concepts, \n you still find it difficult to cover major aspects in JS.",url:"/uncommon_javascript_keynotes",file:"uncommon_javascript_keynotes.md"}},v=[{dictKey:"great_ytb_channels_1",date:"Apr 26 2023 22:35:23 GMT+0800"},{dictKey:"great_ytb_channels_2",date:"Apr 27 2023 13:30:59 GMT+0800"},{dictKey:"markdown_starter",date:"Thu Mar 23 2023 23:10:33 GMT+0700"},{dictKey:"uncommon_javascript_keynotes",date:"Fri Jun 16 2023 23:02:26 GMT+0700"}],m=[{icon:a.rFR,url:"",classname:"btn-oauth-github",name:"Github"},{icon:function(e){return(0,r.w_)({tag:"svg",attr:{version:"1.1",x:"0px",y:"0px",viewBox:"0 0 48 48",enableBackground:"new 0 0 48 48"},child:[{tag:"path",attr:{fill:"#FFC107",d:"M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12\r\n\tc0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24\r\n\tc0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z"}},{tag:"path",attr:{fill:"#FF3D00",d:"M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657\r\n\tC34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z"}},{tag:"path",attr:{fill:"#4CAF50",d:"M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36\r\n\tc-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z"}},{tag:"path",attr:{fill:"#1976D2",d:"M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571\r\n\tc0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z"}}]})(e)},url:"",classname:"btn-oauth-google",name:"Google"}]},8278:function(e,t,n){"use strict";n.d(t,{Ep:function(){return x},J0:function(){return g},RQ:function(){return U},WK:function(){return q},X3:function(){return $},Zn:function(){return V},Zq:function(){return F},aU:function(){return r},cP:function(){return k},fp:function(){return E},lX:function(){return m},pC:function(){return I}});var r,a=n(3144),i=n(5671),o=n(136),s=n(7277),u=n(8737),l=n(9439),c=n(4506),f=n(7762),d=n(3433);function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0&&(t.hash=e.substr(n),e=e.substr(0,n));var r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function S(e,t,n,a){void 0===a&&(a={});var i=a,o=i.window,s=void 0===o?document.defaultView:o,u=i.v5Compat,l=void 0!==u&&u,c=s.history,f=r.Pop,d=null,h=m();function m(){return(c.state||{idx:null}).idx}function y(){f=r.Pop;var e=m(),t=null==e?null:e-h;h=e,d&&d({action:f,location:S.location,delta:t})}function k(e){var t="null"!==s.location.origin?s.location.origin:s.location.href,n="string"===typeof e?e:x(e);return g(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==h&&(h=0,c.replaceState(p({},c.state,{idx:h}),""));var S={get action(){return f},get location(){return e(s,c)},listen:function(e){if(d)throw new Error("A history only accepts one active listener");return s.addEventListener(v,y),d=e,function(){s.removeEventListener(v,y),d=null}},createHref:function(e){return t(s,e)},createURL:k,encodeLocation:function(e){var t=k(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){f=r.Push;var a=w(S.location,e,t);n&&n(a,e);var i=b(a,h=m()+1),o=S.createHref(a);try{c.pushState(i,"",o)}catch(u){s.location.assign(o)}l&&d&&d({action:f,location:S.location,delta:1})},replace:function(e,t){f=r.Replace;var a=w(S.location,e,t);n&&n(a,e);var i=b(a,h=m()),o=S.createHref(a);c.replaceState(i,"",o),l&&d&&d({action:f,location:S.location,delta:0})},go:function(e){return c.go(e)}};return S}!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(h||(h={}));new Set(["lazy","caseSensitive","path","id","index","children"]);function E(e,t,n){void 0===n&&(n="/");var r=V(("string"===typeof t?k(t):t).pathname||"/",n);if(null==r)return null;var a=P(e);!function(e){e.sort((function(e,t){return e.score!==t.score?t.score-e.score:function(e,t){var n=e.length===t.length&&e.slice(0,-1).every((function(e,n){return e===t[n]}));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((function(e){return e.childrenIndex})),t.routesMeta.map((function(e){return e.childrenIndex})))}))}(a);for(var i=null,o=0;null==i&&o0&&(g(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+s+'".'),P(e.children,t,u,s)),(null!=e.path||e.index)&&t.push({path:s,score:R(s,e.index),routesMeta:u})};return e.forEach((function(e,t){var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?")){var r,i=(0,f.Z)(C(e.path));try{for(i.s();!(r=i.n()).done;){var o=r.value;a(e,t,o)}}catch(s){i.e(s)}finally{i.f()}}else a(e,t)})),t}function C(e){var t=e.split("/");if(0===t.length)return[];var n=(0,c.Z)(t),r=n[0],a=n.slice(1),i=r.endsWith("?"),o=r.replace(/\?$/,"");if(0===a.length)return i?[o,""]:[o];var s=C(a.join("/")),u=[];return u.push.apply(u,(0,d.Z)(s.map((function(e){return""===e?o:[o,e].join("/")})))),i&&u.push.apply(u,(0,d.Z)(s)),u.map((function(t){return e.startsWith("/")&&""===t?"/":t}))}var T=/^:\w+$/,j=3,_=2,L=1,N=10,A=-2,O=function(e){return"*"===e};function R(e,t){var n=e.split("/"),r=n.length;return n.some(O)&&(r+=A),t&&(r+=_),n.filter((function(e){return!O(e)})).reduce((function(e,t){return e+(T.test(t)?j:""===t?L:N)}),r)}function M(e,t){for(var n=e.routesMeta,r={},a="/",i=[],o=0;o and the router will parse it for you.'}function F(e){return e.filter((function(e,t){return 0===t||e.route.path&&e.route.path.length>0}))}function I(e,t,n,r){var a;void 0===r&&(r=!1),"string"===typeof e?a=k(e):(g(!(a=p({},e)).pathname||!a.pathname.includes("?"),z("?","pathname","search",a)),g(!a.pathname||!a.pathname.includes("#"),z("#","pathname","hash",a)),g(!a.search||!a.search.includes("#"),z("#","search","hash",a)));var i,o=""===e||""===a.pathname,s=o?"/":a.pathname;if(r||null==s)i=n;else{var u=t.length-1;if(s.startsWith("..")){for(var l=s.split("/");".."===l[0];)l.shift(),u-=1;a.pathname=l.join("/")}i=u>=0?t[u]:"/"}var c=function(e,t){void 0===t&&(t="/");var n="string"===typeof e?k(e):e,r=n.pathname,a=n.search,i=void 0===a?"":a,o=n.hash,s=void 0===o?"":o,u=r?r.startsWith("/")?r:function(e,t){var n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((function(e){".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(r,t):t;return{pathname:u,search:W(i),hash:H(s)}}(a,i),f=s&&"/"!==s&&s.endsWith("/"),d=(o||"."===s)&&n.endsWith("/");return c.pathname.endsWith("/")||!f&&!d||(c.pathname+="/"),c}var U=function(e){return e.join("/").replace(/\/\/+/g,"/")},B=function(e){return e.replace(/\/+$/,"").replace(/^\/*/,"/")},W=function(e){return e&&"?"!==e?e.startsWith("?")?e:"?"+e:""},H=function(e){return e&&"#"!==e?e.startsWith("#")?e:"#"+e:""},$=function(e){(0,o.Z)(n,e);var t=(0,s.Z)(n);function n(){return(0,i.Z)(this,n),t.apply(this,arguments)}return(0,a.Z)(n)}((0,u.Z)(Error));function q(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}var Q=["post","put","patch","delete"],Y=(new Set(Q),["get"].concat(Q));new Set(Y),new Set([301,302,303,307,308]),new Set([307,308]),"undefined"!==typeof window&&"undefined"!==typeof window.document&&window.document.createElement;Symbol("deferred")},173:function(e,t,n){"use strict";var r,a=n(2791),i=(r=a)&&"object"===typeof r&&"default"in r?r.default:r,o=n(1338),s=new o,u=s.getBrowser(),l=s.getCPU(),c=s.getDevice(),f=s.getEngine(),d=s.getOS(),p=s.getUA(),h=function(e){return s.setUA(e)},v=function(e){if(e){var t=new o(e);return{UA:t,browser:t.getBrowser(),cpu:t.getCPU(),device:t.getDevice(),engine:t.getEngine(),os:t.getOS(),ua:t.getUA(),setUserAgent:function(e){return t.setUA(e)}}}console.error("No userAgent string was provided")},m=Object.freeze({ClientUAInstance:s,browser:u,cpu:l,device:c,engine:f,os:d,ua:p,setUa:h,parseUserAgent:v});function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e){return y="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}function b(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function P(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function C(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,i=[],o=!0,s=!1;try{for(n=n.call(e);!(o=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);o=!0);}catch(u){s=!0,a=u}finally{try{o||null==n.return||n.return()}finally{if(s)throw a}}return i}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return T(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return T(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function T(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:"none")},z=function(){return!("undefined"===typeof window||!window.navigator&&!navigator)&&(window.navigator||navigator)},F=function(e){var t=z();return t&&t.platform&&(-1!==t.platform.indexOf(e)||"MacIntel"===t.platform&&t.maxTouchPoints>1&&!window.MSStream)},I=function(e,t,n,r){return function(e){for(var t=1;t1)&&!window.MSStream},Pe=function(){return F("iPad")},Ce=function(){return F("iPhone")},Te=function(){return F("iPod")},je=function(e){return V(e)};function _e(e){var t=e||m,n=t.device,r=t.browser,a=t.os,i=t.engine,o=t.ua;return{isSmartTV:H(n),isConsole:Q(n),isWearable:q(n),isEmbedded:Y(n),isMobileSafari:de(r)||Pe(),isChromium:ue(r),isMobile:W(n)||Pe(),isMobileOnly:U(n),isTablet:B(n)||Pe(),isBrowser:$(n),isDesktop:$(n),isAndroid:J(a),isWinPhone:ne(a),isIOS:re(a)||Pe(),isChrome:oe(r),isFirefox:se(r),isSafari:fe(r),isOpera:pe(r),isIE:he(r),osVersion:ae(a),osName:ie(a),fullBrowserVersion:ge(r),browserVersion:ye(r),browserName:be(r),mobileVendor:K(n),mobileModel:G(n),engineName:we(i),engineVersion:xe(i),getUA:je(o),isEdge:le(r)||Se(o),isYandex:ce(r),deviceType:X(n),isIOS13:Ee(),isIPad13:Pe(),isIPhone13:Ce(),isIPod13:Te(),isElectron:ke(),isEdgeChromium:Se(o),isLegacyEdge:le(r)&&!Se(o),isWindows:ee(a),isMacOs:te(a),isMIUI:ve(r),isSamsungBrowser:me(r)}}var Le=H(c),Ne=Q(c),Ae=q(c),Oe=Y(c),Re=de(u)||Pe(),Me=ue(u),De=W(c)||Pe(),Ze=U(c),Ve=B(c)||Pe(),ze=$(c),Fe=$(c),Ie=J(d),Ue=ne(d),Be=re(d)||Pe(),We=oe(u),He=se(u),$e=fe(u),qe=pe(u),Qe=he(u),Ye=ae(d),Ke=ie(d),Ge=ge(u),Xe=ye(u),Je=be(u),et=K(c),tt=G(c),nt=we(f),rt=xe(f),at=je(p),it=le(u)||Se(p),ot=ce(u),st=X(c),ut=Ee(),lt=Pe(),ct=Ce(),ft=Te(),dt=ke(),pt=Se(p),ht=le(u)&&!Se(p),vt=ee(d),mt=te(d),gt=ve(u),yt=me(u);function bt(e){var t=e||window.navigator.userAgent;return v(t)}t.UA=Ze},4463:function(e,t,n){"use strict";var r=n(2791),a=n(5296);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n