body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background-color:#1b1e25;text-align:center}.App main{margin:0 6rem;max-width:100vw;min-height:100vh;overflow:hidden}@media(min-width:2100px){.App main{margin:0 auto;max-width:1800px}}@media(max-width:1023.99px){.App main{margin:0 88px 0 0}}.navbar{align-items:center;background-color:#12161c;box-shadow:2px -5px 20px #0a0a0a94;color:#fff;display:flex;flex-direction:column;height:100vh;justify-content:space-between;padding:10px 8px;position:fixed;top:0;transition:all .5s ease;transition-delay:.6s;width:72px;z-index:10}@media(max-width:1023.99px){.navbar{right:0}}.navbar h1{cursor:pointer;display:flex;font-family:Gill Sans,Gill Sans MT,Calibri,Trebuchet MS,sans-serif;font-size:36px;font-weight:700;left:8px;margin:0;position:absolute;width:72px}@media(max-width:767.9px){.navbar h1{width:48px}}.navbar h1 .letter{color:#fff;display:flex;position:relative}.navbar h1 .letter.second{margin-left:0;transition:all .8s ease}.navbar h1 .letter-hidden{color:#fff;display:flex;opacity:0;transform-origin:0 50%;transition:all .8s ease;transition-delay:.2s;width:0}@media(min-width:1023.999px){.navbar:hover{transition-delay:0s;width:358px;z-index:101}.navbar:hover h1 .letter.second{margin-left:8px}.navbar:hover h1 .letter-hidden{opacity:1!important;width:100%}.navbar:hover li span{opacity:1;width:140px}.navbar:hover li:nth-of-type(2) span{width:80px}.navbar:hover li:nth-of-type(3) span{width:78px}}.navbar.wide{transition-delay:0s;width:358px;z-index:101}.navbar.wide h1 .letter.second{margin-left:8px}.navbar.wide h1 .letter-hidden{opacity:1!important;width:100%}.navbar.wide li span{opacity:1;width:140px}.navbar.wide li:nth-of-type(2) span{width:80px}.navbar.wide li:nth-of-type(3) span{width:78px}.navbar-logo a{color:#fff!important;font-size:1.5rem;text-decoration:none}.navbar-links{display:flex;flex-direction:column;gap:24px;list-style:none;margin:0 0 36px;padding:0}.navbar-links li a{color:#fff;font-size:1rem;text-decoration:none;transition:color .3s ease}.navbar-links li a:hover{color:#ddd}.nav-button{text-wrap:nowrap;background-color:#0000;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:6px 10px}.nav-button .fas{font-size:24px;margin-right:8px}.nav-button span{display:inline-flex;font-size:16px;opacity:0;overflow:hidden;transition:all 1.2s ease-in-out;width:0}.home{margin-top:0;padding:2rem 4rem}@media(max-width:1023.99px){.home{padding:2rem 0}}.home h1{font-size:48px;margin:0 16px;text-align:left}@media(max-width:1023.99px){.home h1{font-size:32px}}.home h1 .emphasis{color:#7fffd4;font-style:italic}.home h1 .emphasis .transition-text{display:inline-flex;width:193px}@media(max-width:1023.99px){.home h1 .emphasis .transition-text{width:129px}}.home h2{color:#94a2a2;font-size:22px;font-style:italic;font-weight:400;margin:0 16px;text-align:left}.resume{padding:1rem 4rem}@media(max-width:1023.99px){.resume{padding:1rem 0}}.contact-card{background-color:#3b3e41;border-radius:8px;box-shadow:0 2px 8px #0003;display:flex;margin:0 16px 24px;padding:12px}@media(max-width:767.99px){.contact-card{align-items:center;flex-direction:column;margin:0 4px 24px}}.contact-card .contact-content{display:flex;flex-direction:column;justify-content:center;text-align:left;width:60%}@media(max-width:767.99px){.contact-card .contact-content{align-items:center;flex-direction:column;margin-top:6px;width:100%}.contact-card .contact-content h1{display:flex;flex-direction:column;font-size:24px}.contact-card .contact-content span{margin:0;text-align:center}}.contact-card .profile{margin:0 24px;width:20%}.contact-card .profile .profile-picture{border:6px double #7fffd4;border-radius:50%;height:auto;width:100%}@media(max-width:767.99px){.contact-card .profile .profile-picture{height:200px;width:auto}.contact-card .profile{height:200px;width:100%}}.contact-card .links{display:flex;flex-direction:column;gap:24px;margin:auto 1rem}@media(max-width:767.99px){.contact-card .links{margin:1rem}}.contact-card .links a{color:#7fffd4;font-size:18px;font-weight:600;text-decoration:none}.contact-card .links a:hover{text-decoration:underline}.contact-card h1{margin:0}.contact-card h1 span{color:#b2b2b2;font-size:16px;margin-left:6px}.contact-card .contact-email{color:#5eb5f7}.showcase{background-color:#3b3e41;border-radius:8px;box-shadow:0 2px 8px #0003;margin:0 16px 24px;padding:0 12px 12px;text-align:left}@media(max-width:767.99px){.showcase{margin:0 4px 24px}}.showcase h2{margin:0 0 8px}.showcase .card-wrapper{display:flex;gap:16px}@media(max-width:767.99px){.showcase .card-wrapper{flex-direction:column}.showcase .card-wrapper .tool-card{min-height:200px;width:100%}}.showcase .card-wrapper .tool-card{align-items:end;border:1px solid #676767;border-radius:6px;color:#fff;display:flex;flex:1 1;height:300px;text-decoration:none}.showcase .card-wrapper .tool-card .caption{background-color:#606870;border-radius:0 6px 0 6px;color:#fff;font-size:17px;font-weight:600;letter-spacing:.25px;margin:0;padding:2px 6px;width:fit-content}.showcase .card-wrapper .tool-card.color-gen{background-image:url(/static/media/color-gen.4e0a1cee4c0299e895d3.webp);background-position:top;background-size:cover}.showcase .card-wrapper .tool-card.json-formatter{background-image:url(/static/media/json-formatter.16a67cdc36f2d8797602.png);background-position:top;background-size:cover}.showcase .card-wrapper .tool-card.markdown-previewer{background-image:url(/static/media/markdown-preview.e2bebab25f96033b7a64.png);background-position:top;background-size:cover}.education{align-items:end;background-color:#3b3e41;border-radius:8px;box-shadow:0 2px 8px #0003;display:flex;flex-wrap:wrap;margin:0 16px 24px;padding:12px;text-align:left}@media(max-width:767.99px){.education{margin:0 4px 24px}}.education h2{margin:0;width:100%}.education p{color:#bfbfbf;line-height:1.6;margin:0 0 0 6px}.resume-section{background-color:#3b3e41;border-radius:8px;box-shadow:0 2px 8px #0003;margin:0 16px 24px;padding:12px;text-align:left}@media(max-width:767.99px){.resume-section{margin:0 4px 24px}}.resume-section h2{margin:0 0 8px}.resume-section strong{color:#bfbfbf}.resume-section h3{font-size:24px;margin:0 0 8px;width:fit-content}.resume-section ul{background-color:#484c51;border-radius:8px;display:flex;flex-wrap:wrap;list-style:none;margin-bottom:48px;padding:12px 0;row-gap:24px;transition:all 1s ease}@media(min-width:1023.999px){.resume-section ul:hover{background-color:#7fffd4}.resume-section ul:hover li{color:#6c6c6c}.resume-section ul:hover li .stat{height:0;opacity:0}.resume-section ul:hover li .emote{font-size:48px;height:70px;opacity:1}}@media(max-width:1023.99px){.resume-section ul.transition{background-color:#7fffd4}.resume-section ul.transition li{color:#6c6c6c}.resume-section ul.transition li .stat{height:0;opacity:0}.resume-section ul.transition li .emote{font-size:48px;height:70px;opacity:1}}.resume-section ul li{flex:1 1;min-width:88px}.resume-section ul li .stat{flex-direction:column;font-weight:600;height:70px;opacity:1;text-align:center}.resume-section ul li .emote,.resume-section ul li .stat{display:flex;justify-content:center;transition:all 1s ease}.resume-section ul li .emote{height:0;justify-self:center;opacity:0}.resume-section ul li .fab{font-size:48px}.action-bar{background-color:#505050;border-radius:8px;bottom:2rem;box-shadow:0 2px 8px #0000004d;display:flex;gap:16px;padding:8px 20px;position:fixed;right:2rem;z-index:99}@media(max-width:1023.99px){.action-bar{left:2rem;right:auto}}.action-bar button{background-color:#0000;border:none;color:#fff;cursor:pointer;font-size:20px;white-space:nowrap}.action-bar button.button-1{color:#59d940}.action-bar button.button-2{color:#c385e0}.action-bar button.button-3{color:#d9d640}.action-bar button .btn-text{display:inline-flex;height:24px;margin-left:4px;opacity:0;overflow:hidden;transition:all .6s ease-in-out;transition-delay:1s;white-space:nowrap;width:0}@media(min-width:1023.999px){.action-bar:hover .btn-text{display:inline-flex;opacity:1;transition-delay:0s}.action-bar:hover .button-1 .btn-text{width:158px}.action-bar:hover .button-2 .btn-text{width:162px}.action-bar:hover .button-3 .btn-text{width:90px}}.score-card{border-radius:8px;margin-bottom:16px;padding:0 16px 16px;text-align:center;width:100%}.score-card .audit-table{border-collapse:collapse;text-align:left;width:100%}.score-card .audit-table tr{display:flex;width:100%}.score-card .audit-table td,.score-card .audit-table th{border:.5px solid hsla(0,0%,73%,.349);flex:1 1;padding:10px}.score-card .audit-table td.status-col,.score-card .audit-table th.status-col{align-items:center;display:flex;justify-content:center;max-width:68px;text-overflow:clip;width:68px}.score-card .audit-table td{font-size:12px;height:56px;overflow:hidden;text-overflow:ellipsis}.score-card .audit-table tbody,.score-card .audit-table thead{display:block;max-height:250px;overflow:scroll}.score-card .audit-table .status{border-radius:4px;font-size:14px;font-weight:600;padding:5px}.score-card .audit-table .status.pass{color:#28a745}.score-card .audit-table .status.fail{color:#dc3545}.score-card .audit-table .status.not-applicable{color:#fff}.score-card h3{font-size:1.25rem;margin:0 0 8px}.score-card h4{margin:6px 0}.score-card .score{font-size:2rem;font-weight:600}.score-card .score.green{color:#28a745}.score-card .score.yellow{color:#ffc107}.score-card .score.red{color:#dc3545}.backdrop{align-items:center;background-color:rgba(59,62,65,.451);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:100}.lighthouse-report{background-color:#3b3e41;border-radius:8px;box-shadow:2px -5px 20px #0a0a0a94;display:flex;flex-direction:column;height:500px;overflow:hidden;width:720px;z-index:100}@media(max-width:767.99px){.lighthouse-report{height:80%}}.lighthouse-report *{box-sizing:border-box}.lighthouse-report p{color:gray;font-size:12px;font-style:italic;margin-top:8px}.lighthouse-report p.loader-text{font-size:13px;margin-top:32px}.lighthouse-report p.error-text{color:#d03;font-size:14px;font-style:normal}.lighthouse-report .modal-header{display:flex;justify-content:end;width:100%}.lighthouse-report .modal-header button{background-color:#0000;border:none;color:#fff}.lighthouse-report .content{display:flex;flex:1 1;flex-direction:column;justify-content:space-around;max-height:calc(100% - 58px);width:100%}.lighthouse-report .content .loader-wrapper{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;width:100%}.lighthouse-report .content .loader-wrapper .loader{animation:spinRight .8s linear infinite;border-radius:100%;border-right:4px solid #fff;height:3rem;width:3rem}.lighthouse-report .content .loader-wrapper .loader:after,.lighthouse-report .content .loader-wrapper .loader:before{animation:spinLeft .8s linear infinite;border-left:3px solid #fff;border-radius:100%;content:"";display:block;height:6vmax;left:calc(50% - 3vmax);position:absolute;top:calc(50% - 3vmax);width:6vmax}@media(min-width:2100px){.lighthouse-report .content .loader-wrapper .loader:after,.lighthouse-report .content .loader-wrapper .loader:before{height:6vmin;left:calc(50% - 3vmin);top:calc(50% - 3vmin);width:6vmin}}.lighthouse-report .content .loader-wrapper .loader:after{animation:none;border:0;border-right:2px solid #fff;height:4vmax;left:calc(50% - 2vmax);top:calc(50% - 2vmax);width:4vmax}@media(min-width:2100px){.lighthouse-report .content .loader-wrapper .loader:after{height:4vmin;left:calc(50% - 2vmin);top:calc(50% - 2vmin);width:4vmin}}@keyframes spinLeft{0%{transform:rotate(0deg)}to{transform:rotate(2turn)}}@keyframes spinRight{0%{transform:rotate(1turn)}to{transform:rotate(0deg)}}.content .action{justify-content:space-between}@media(max-width:767.99px){.content .action{flex-direction:column-reverse}}.content .action .button-group{margin-bottom:340px}@media(max-width:767.99px){.content .action .button-group{margin:0}}.content .radio-group{margin-top:1rem}.content .radio-label{background-color:#444;border:1px solid #777;cursor:pointer;padding:8px 12px}.content .radio-label:first-of-type{border-radius:6px 0 0 6px}.content .radio-label:last-of-type{border-radius:0 6px 6px 0}.content .radio-label.checked{background-color:#343434;border-color:#555}.content .radio-label .radio-button{display:none}#json-pretty{width:100%}.color-page{margin:0 auto;max-width:1100px;text-align:center}.color-palette-generator{margin:0 auto;max-width:600px;text-align:center}.color-palette-generator h2{margin:0 0 24px}.color-palette-generator .input-group{align-items:center;display:flex;flex-direction:column;margin-bottom:20px}.color-palette-generator .input-group .color-options{display:flex;flex-wrap:wrap;justify-content:center;margin-bottom:10px}.color-palette-generator .input-group .color-options label{border:2px solid #0000;border-radius:50%;cursor:pointer;height:40px;margin:5px;width:40px}.color-palette-generator .input-group .color-options label:hover{border-color:#555}.color-palette-generator .input-group .color-options label input[type=radio]{display:none}.color-palette-generator .input-group .color-options label .color-preview{border-radius:50%;display:block;height:42px;left:-3px;position:relative;top:-3px;width:42px}.color-palette-generator .input-group .color-options label input[type=radio]:checked+.color-preview{border:2px solid #fff}.color-palette-generator .input-group .theme-options{display:flex;justify-content:center;margin-bottom:10px}.color-palette-generator .input-group .theme-options label{cursor:pointer;margin:0 10px}.color-palette-generator .input-group .theme-options label input[type=radio]{margin-right:5px}.color-palette-generator .input-group button{background-color:#0000;border:1px solid #7fffd4;border-radius:4px;color:#7fffd4;cursor:pointer;padding:8px 15px;transition:background-color .3s ease}.color-palette-generator .input-group button:hover{background-color:#2980b9}.color-palette-generator .palette{display:flex;flex-wrap:wrap;justify-content:center}.color-palette-generator .palette .color-box{align-items:center;border:1px solid #ccc;border-radius:4px;color:#333;display:flex;flex-direction:column;font-weight:700;height:120px;justify-content:center;margin:10px;text-align:center;width:120px}.color-palette-generator .palette .color-box p{background:#ffffffb3;border-radius:4px;margin:0;padding:5px}.color-palette-generator .palette .color-box p:first-child{font-size:12px;margin-bottom:5px}.mockup-preview{border-radius:6px;display:flex;flex-direction:column;margin:20px 8px;min-height:500px;overflow:hidden}.mockup-preview .mockup-header{padding:20px;position:relative;text-align:center;z-index:15}.mockup-preview .mockup-header h1{margin:0}.mockup-preview .mockup-main{display:flex;flex:1 1}.mockup-preview .mockup-main .mockup-aside{padding:15px;width:200px}.mockup-preview .mockup-main .mockup-section{flex-grow:1;padding:20px}.mockup-preview .mockup-main .mockup-section .mockup-alert{border:1px solid;border-radius:4px;padding:12px}.mockup-preview .mockup-main .mockup-section .mockup-alert span{font-size:14px;padding:4px}.mockup-preview .mockup-main .mockup-section .mockup-alert b{margin:0}.mockup-preview .mockup-main .mockup-section .mockup-panel{border-radius:4px;margin:10px 0;padding:20px}.mockup-preview .mockup-main .mockup-section .mockup-panel .button{border:2px solid;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;margin:2px 8px;padding:8px;width:120px}.mockup-preview .mockup-main .mockup-section .mockup-panel .button.mockup-submit{border:none}.mockup-preview .mockup-main .mockup-section .mockup-panel .button.mockup-cancel{background-color:#0000}.contact-page{margin:0 auto;max-width:800px;padding:20px;text-align:left}.contact-page h2{font-size:2em;margin-bottom:20px;text-align:center}.contact-page .contact-container{display:flex;flex-wrap:wrap;justify-content:space-between}.contact-page .contact-container .contact-form{flex:1 1;margin-right:20px}.contact-page .contact-container .contact-form .form-group{margin-bottom:15px}.contact-page .contact-container .contact-form .form-group label{display:block;font-weight:700;margin-bottom:5px}.contact-page .contact-container .contact-form .form-group input,.contact-page .contact-container .contact-form .form-group textarea{background-color:hsla(0,0%,100%,.125);border:none;border-radius:4px;color:#fff;font-size:1em;outline:none;padding:10px;width:100%}.contact-page .contact-container .contact-form .form-group textarea{height:100px;resize:vertical}.contact-page .contact-container .contact-form .action-wrapper{display:flex}.contact-page .contact-container .contact-form .action-wrapper .submit-button{background-color:#0000;border:1px solid #7fffd4;border-radius:4px;color:#7fffd4;cursor:pointer;display:block;font-size:1em;padding:10px 20px}.contact-page .contact-container .contact-form .action-wrapper .submit-button:hover{background-color:#2980b9}.contact-page .contact-container .contact-form .action-wrapper .success-message{color:#7fffd4;font-style:italic;margin:0 20px}.contact-page .contact-container .contact-form .action-wrapper .error-message{color:#cd0a0a;display:block;margin:0 0 0 20px;width:75%}.contact-page .contact-container .contact-form .action-wrapper .error-message a{color:#ff2d2d}.portfolio{padding:20px;text-align:center}.portfolio h2{margin:0 0 24px}.portfolio .projects{display:flex;flex-wrap:wrap;justify-content:center}.portfolio .project-card{background-color:#3b3e41;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:10px;padding:20px;width:300px}.portfolio .project-card h3{margin-top:0}.portfolio .project-card p{color:#fff}.portfolio .project-card .project-links{margin-top:10px}.portfolio .project-card .project-links .unavailable,.portfolio .project-card .project-links a{color:#7fffd4;font-weight:600;margin:0 10px;text-decoration:none}.portfolio .project-card .project-links .unavailable:hover,.portfolio .project-card .project-links a:hover{text-decoration:underline}.unavailable-page{align-items:center;color:#7fffd4;display:flex;flex-direction:column;height:80vh;justify-content:center;text-align:center}.unavailable-page .emote{font-size:3rem}.unavailable-page h1{font-size:2rem;margin-bottom:1rem}.unavailable-page p{color:#d1d1d1;font-size:1.25rem;margin-bottom:2rem}.unavailable-page .back-home{background-color:#0000;border:1px solid #7fffd4;border-radius:4px;color:#7fffd4;cursor:pointer;margin-top:10px;padding:10px 20px;text-decoration:none}.unavailable-page .back-home:hover{background-color:rgba(0,0,0,.373)}h2{margin:0;padding:16px 0 0}.content{display:flex;gap:4px;padding:24px 8px 8px}@media(max-width:767.99px){.content{flex-direction:column}}.content .pane{padding:8px;width:200px}@media(max-width:1023.99px){.content .pane{width:124px}}@media(max-width:767.99px){.content .pane{width:calc(100% - 16px)}}.content .read,.content .write{display:flex;flex:1 1}.content .read{text-align:left}.content .action{align-items:center;justify-content:center}.content .action,.content .action .button-group{display:flex;flex-direction:column;gap:24px}.content textarea{background-color:hsla(0,0%,100%,.125);border:none;border-radius:6px;color:#fff;height:80vh;outline:none;padding:12px 4px;resize:vertical;width:100%}@media(max-width:767.99px){.content textarea{height:40vh}}.content textarea:disabled{text-wrap:nowrap;color:#7fffd4}.content button{background-color:#0000;border:2px solid #7fffd4;border-radius:4px;color:#7fffd4;cursor:pointer;font-size:14px;height:fit-content;letter-spacing:.25px;padding:4px 6px;width:120px}.markdown-output{background-color:hsla(0,0%,100%,.125);border-radius:6px;color:#fff;height:80vh;overflow:auto;padding:12px;width:100%}.markdown-output h1,.markdown-output h2,.markdown-output h3{color:#7fffd4}.markdown-output code{background-color:#1e1e1e;border-radius:4px;font-family:monospace;padding:2px 4px}.markdown-output pre{background-color:#1e1e1e;border-radius:6px;overflow-x:auto;padding:12px}.markdown-output a{color:#66d9ef;text-decoration:underline}.markdown-output blockquote{border-left:4px solid #aaa;color:#ddd;margin:12px 0;padding-left:12px}.markdown-output ol,.markdown-output ul{padding-left:20px}
/*# sourceMappingURL=main.b69453c5.css.map*/