.main{font-family:Varela Round,sans-serif;font-optical-sizing:auto;display:flex;flex-direction:column;position:fixed;inset:0;overflow:hidden;opacity:0;transition:opacity .4s}@media screen and (width > 1300px){.main{font-size:18px}}@media screen and (width <= 700px){.main{font-size:14px}}@media screen and (width > 700px) and (width <= 1300px){.main{font-size:18px}}.main{cursor:default;-webkit-user-select:none;user-select:none}.main.show{opacity:1}.main *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}.main.dark{--background-color-projects: #111827;--background-color-hobbies: #1f2937;--color-text-contact: #cccccc;--color-text-portfolio: white;--color-libraries-icon-bg: #2563eb;--color-libraries-icon: white;--color-libraries-title: #60a5fa;--color-tools-icon-bg: #16a34a;--color-tools-icon: white;--color-tools-title: #4ade80;--color-games-icon-bg: #9333ea;--color-games-icon: white;--color-games-title: #c084fc;--color-extra-icon-bg: #ea580c;--color-extra-icon: white;--color-extra-title: #fb923c;--color-section-subtitle: #d8d8d8;--color-header-subtitle: var(--color-section-subtitle);--color-github: white;--color-project-description: var(--color-section-subtitle);--color-project-background: var(--background-color-hobbies);--color-project-border: #374151;--color-project-shadow: #0000000d;--color-project-link-background: #293546;--color-hobby-description: var(--color-section-subtitle);--color-hobby-background: var(--background-color-projects);--color-hobby-border: #374151;--color-hobby-shadow: #0000000d;--color-hobby-media-background: #1a2234;--color-hobby-icon-orange: #fb923c;--color-hobby-icon-purple: #818cf8;--color-hobby-icon-red: #de4949;--color-hobby-icon-yellow: #facc15;--color-hobby-icon-blue: #60a5fa;--color-hobby-icon-redish: #f87171;--color-hobby-icon-green: #4ade80;--color-hobby-icon-pink: #f472b6;--color-hobby-icon-greenish: #cefa15;--color-tag-background-nodejs: #193e32;--color-tag-nodejs: #86efac;--color-tag-background-zero-deps: #3b225f;--color-tag-zero-deps: #d8b4fe;--color-tag-background-typescript: #1e3160;--color-tag-typescript: #93c5fd;--color-tag-background-cpp: #282b5c;--color-tag-cpp: #a5b4fc;--color-tag-background-html5: #4d2b24;--color-tag-html5: #fdba74;--color-tag-background-rust: #4f232a;--color-tag-rust: #fca5a5;--color-tag-background-javascript: #282b5c;--color-tag-javascript: #a5b4fc;--color-tag-background-flash: #3b225f;--color-tag-flash: #d8b4fe;--color-tag-background-ruby: #4f232a;--color-tag-ruby: #fca5a5;--color-tag-background-unity: #1e3160;--color-tag-unity: #93c5fd;--color-tag-background-unreal-engine: #4d2b24;--color-tag-unreal-engine: #fdba74}.rotate-90{transform:rotate(90deg)}.rotate-180{transform:rotate(180deg)}.portfolio{color:var(--color-text-portfolio);overflow:auto;width:100%}.projects{display:flex;flex-direction:column;align-items:center;width:100%;background-color:var(--background-color-projects)}.projects>.list{max-width:100em;width:100vw;padding:0 1em;display:flex;flex-direction:column;gap:4em;margin-bottom:4em}.project{padding:2em 2em 0;background-color:var(--color-project-background);border-radius:1em;border:1px solid var(--color-project-border);box-shadow:0 1px 3px 0 var(--color-project-shadow);overflow:hidden;display:flex;flex-direction:column}.project>.header{display:flex;flex-direction:row;margin-bottom:.4em;height:2em;gap:.5em}.project>.header>.icon-container{flex:1}.project>.header>.icon-container>.icon{padding:.4em;border-radius:.5em;height:100%;display:inline-block;background-color:var(--color-section-icon-bg);color:var(--color-section-icon)}.project>.header>.icon-container>.icon>*{height:100%}.project>.header>.stars{flex:0;height:100%;padding:.5em;border-radius:.5em;border:1px solid var(--color-project-border)}.project>.title{font-weight:700;font-size:1.3em;margin-bottom:.4em}.project>.description{color:var(--color-project-description);display:flex;flex-direction:column;gap:.5em}.project>.tags{display:flex;flex-wrap:wrap;gap:.3em;flex:1;align-items:flex-end;margin-top:1em}.project>.tags:empty{margin-top:0}.project>.tags>.tag{border-radius:1em;padding:.2em .4em;font-size:.75em;display:inline-block}.project>.tags>.tag.nodejs{background-color:var(--color-tag-background-nodejs);color:var(--color-tag-nodejs)}.project>.tags>.tag.zero-deps{background-color:var(--color-tag-background-zero-deps);color:var(--color-tag-zero-deps)}.project>.tags>.tag.typescript{background-color:var(--color-tag-background-typescript);color:var(--color-tag-typescript)}.project>.tags>.tag.cpp{background-color:var(--color-tag-background-cpp);color:var(--color-tag-cpp)}.project>.tags>.tag.html5{background-color:var(--color-tag-background-html5);color:var(--color-tag-html5)}.project>.tags>.tag.rust{background-color:var(--color-tag-background-rust);color:var(--color-tag-rust)}.project>.tags>.tag.javascript{background-color:var(--color-tag-background-javascript);color:var(--color-tag-javascript)}.project>.tags>.tag.flash{background-color:var(--color-tag-background-flash);color:var(--color-tag-flash)}.project>.tags>.tag.ruby{background-color:var(--color-tag-background-ruby);color:var(--color-tag-ruby)}.project>.tags>.tag.unity{background-color:var(--color-tag-background-unity);color:var(--color-tag-unity)}.project>.tags>.tag.unreal-engine{background-color:var(--color-tag-background-unreal-engine);color:var(--color-tag-unreal-engine)}.project>.links{margin:1em -2em 0}.project>.links:empty{margin-top:2em}.project>.links{display:flex;flex-direction:column}.project>.links>.link{border-top:1px solid var(--color-project-border);background-color:var(--color-project-link-background);display:flex;flex-direction:row;align-items:center;cursor:pointer;gap:.2em;padding:.5em 1em;transition:opacity .2s}.project>.links>.link>.anchor{color:inherit;text-decoration:none;flex:1}.project>.links>.link>.anchor>.position{opacity:.5}.project>.links>.link>.out-icon{flex:0 0 1em;height:100%;opacity:.5;transition:transform .2s}.project>.links>.link:hover{opacity:.75}.project>.links>.link:hover>.out-icon{transform:translate(.15em) rotate(10deg)}.project>.links>.link:active{opacity:.9}.github-stars{height:100%;display:flex;align-items:center;gap:.2em;cursor:pointer;text-decoration:none;color:inherit;transition:opacity .2s}.github-stars>.github-icon{height:100%;color:var(--color-github);transition:transform .2s}.github-stars>.star-icon{height:100%;color:#eab308}.github-stars:hover{opacity:.8}.github-stars:hover>.github-icon{transform:rotate(25deg)}.github-stars:active{opacity:.65}.github-stars:active>.github-icon{transform:rotate(50deg)}.section.libraries{--color-section-icon-bg: var(--color-libraries-icon-bg);--color-section-icon: var(--color-libraries-icon);--color-section-title: var(--color-libraries-title)}.section.tools{--color-section-icon-bg: var(--color-tools-icon-bg);--color-section-icon: var(--color-tools-icon);--color-section-title: var(--color-tools-title)}.section.games{--color-section-icon-bg: var(--color-games-icon-bg);--color-section-icon: var(--color-games-icon);--color-section-title: var(--color-games-title)}.section.extra{--color-section-icon-bg: var(--color-extra-icon-bg);--color-section-icon: var(--color-extra-icon);--color-section-title: var(--color-extra-title)}.section>.title{display:flex;align-items:center;gap:.8em;margin-bottom:1em}.section>.title>.icon{height:2.4em;width:2.4em;padding:.4em;background-color:var(--color-section-icon-bg);color:var(--color-section-icon);border-radius:.5em}.section>.title>.text{flex:1}.section>.title>.text>.title{color:var(--color-section-title);font-size:1.2em;font-weight:600}.section>.title>.text>.subtitle{color:var(--color-section-subtitle);font-size:.8em}.section>.cards{display:grid;gap:2em}.section>.cards.columns-1{grid-template-columns:repeat(1,1fr)}@media screen and (width > 1300px){.section>.cards.columns-2-1{grid-template-columns:repeat(2,1fr)}}@media screen and (width <= 700px){.section>.cards.columns-2-1{grid-template-columns:repeat(1,1fr)}}@media screen and (width > 700px) and (width <= 1300px){.section>.cards.columns-2-1{grid-template-columns:repeat(2,1fr)}}@media screen and (width > 1300px){.section>.cards.columns-3-1{grid-template-columns:repeat(3,1fr)}}@media screen and (width <= 700px){.section>.cards.columns-3-1{grid-template-columns:repeat(1,1fr)}}@media screen and (width > 1300px){.section>.cards.columns-3-2-1{grid-template-columns:repeat(3,1fr)}}@media screen and (width <= 700px){.section>.cards.columns-3-2-1{grid-template-columns:repeat(1,1fr)}}@media screen and (width > 700px) and (width <= 1300px){.section>.cards.columns-3-2-1{grid-template-columns:repeat(2,1fr)}}.section-head{text-align:center;max-width:33em;padding:0 1em;margin:2em 0}@media screen and (width > 1300px){.section-head>.title{font-size:3em}}@media screen and (width <= 700px){.section-head>.title{font-size:2em}}@media screen and (width > 700px) and (width <= 1300px){.section-head>.title{font-size:3em}}.section-head>.title{margin-bottom:.2em;font-weight:600}.section-head>.subtitle{font-size:1em;color:var(--color-header-subtitle)}.hobbies{display:flex;flex-direction:column;align-items:center;width:100%;background-color:var(--background-color-hobbies)}.hobbies>.list{display:grid;gap:2em;max-width:100em;width:100vw;padding:0 1em;margin-bottom:4em}@media screen and (width > 1300px){.hobbies>.list{grid-template-columns:repeat(4,1fr)}}@media screen and (width <= 700px){.hobbies>.list{grid-template-columns:repeat(1,1fr)}}@media screen and (width > 700px) and (width <= 1300px){.hobbies>.list{grid-template-columns:repeat(2,1fr)}}.hobbies .orange-icon{color:var(--color-hobby-icon-orange)}.hobbies .purple-icon{color:var(--color-hobby-icon-purple)}.hobbies .red-icon{color:var(--color-hobby-icon-red)}.hobbies .yellow-icon{color:var(--color-hobby-icon-yellow)}.hobbies .blue-icon{color:var(--color-hobby-icon-blue)}.hobbies .redish-icon{color:var(--color-hobby-icon-redish)}.hobbies .green-icon{color:var(--color-hobby-icon-green)}.hobbies .pink-icon{color:var(--color-hobby-icon-pink)}.hobbies .greenish-icon{color:var(--color-hobby-icon-greenish)}.hobbies .love{width:1.2em;height:1.2em;vertical-align:bottom;color:#b31212}.hobby{background-color:var(--color-hobby-background);border-radius:1em;border:1px solid var(--color-hobby-border);box-shadow:0 1px 3px 0 var(--color-hobby-shadow);overflow:hidden;display:flex;flex-direction:column}.hobby>.media{width:100%;overflow:hidden;aspect-ratio:1.5/1;background-color:var(--color-hobby-media-background);text-align:center;position:relative}.hobby>.media>.control{position:absolute;top:25%;bottom:25%;width:25%;transition:opacity .2s,background-color .2s;cursor:pointer;display:flex;align-items:center;opacity:.5}.hobby>.media>.control:hover{background-color:#00000026;opacity:1}.hobby>.media>.control.disabled{cursor:default;opacity:0}.hobby>.media>.left{left:0;border-bottom-right-radius:1em;border-top-right-radius:1em;padding:0 15% 0 1%}.hobby>.media>.right{right:0;border-bottom-left-radius:1em;border-top-left-radius:1em;padding:0 1% 0 15%}.hobby>.media>.elements{height:100%;width:100%;white-space:nowrap;position:relative;transition:left .2s}.hobby>.media>.elements>.element{width:100%;height:100%;display:inline-block}.hobby>.media>.elements>.element>*{max-width:100%;height:100%}.hobby>.media>.elements>.tbd{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:3em}.hobby>.content{padding:2em;display:flex;flex-direction:column;gap:1em}.hobby>.content>.title{display:flex;flex-direction:row;gap:.5em;font-size:1.3em;font-weight:700;align-items:center}.hobby>.content>.title>.icon{width:1em;height:1em}.hobby .link{color:inherit;text-decoration:underline;white-space:nowrap;display:inline-flex;flex-direction:row;align-items:center;gap:.3em}.hobby .link>.open-icon{height:.9em;width:.9em}.image{opacity:0;transition:opacity .2s}.image.visible{opacity:1}.contact{width:100%;background-color:var(--background-color-hobbies);padding:.3em .4em;font-size:.8em;border-bottom:1px solid var(--color-project-border);font-style:italic;color:var(--color-text-contact);display:flex;flex-direction:row}.contact .mailto{flex:1;text-align:right;color:var(--color-text-contact)}.loading-screen{position:fixed;inset:0;background:#252526;display:flex;justify-content:center;align-items:center;z-index:9999;animation:slideUp .6s ease-in-out forwards;animation-delay:2.2s}.loading-screen .terminal-window{width:90%;max-width:50em;background:#1e1e1e;border-radius:.5em;box-shadow:0 .625em 3.125em #00000080;overflow:hidden;font-family:Consolas,Monaco,Courier New,monospace;font-size:.75em}@media screen and (width > 1300px){.loading-screen .terminal-window{max-width:50em;font-size:.75em}}@media screen and (width <= 700px){.loading-screen .terminal-window{max-width:95%;font-size:.625em}}.loading-screen .terminal-window .terminal-header{background:#2d2d30;padding:.625em .9375em;display:flex;align-items:center;border-bottom:.0625em solid #1e1e1e}.loading-screen .terminal-window .terminal-header .terminal-buttons{display:flex;gap:.5em;margin-right:.9375em}.loading-screen .terminal-window .terminal-header .terminal-buttons .btn{width:.75em;height:.75em;border-radius:50%}.loading-screen .terminal-window .terminal-header .terminal-buttons .btn.btn-close{background:#ff5f56}.loading-screen .terminal-window .terminal-header .terminal-buttons .btn.btn-minimize{background:#ffbd2e}.loading-screen .terminal-window .terminal-header .terminal-buttons .btn.btn-maximize{background:#27c93f}.loading-screen .terminal-window .terminal-header .terminal-title{color:#ccc;font-size:.8125em;font-weight:500}.loading-screen .terminal-window .terminal-body{padding:1.25em;height:16em;overflow-y:auto;color:#d4d4d4;line-height:1.6;scrollbar-width:none;-ms-overflow-style:none}.loading-screen .terminal-window .terminal-body::-webkit-scrollbar{display:none}@media screen and (width > 1300px){.loading-screen .terminal-window .terminal-body{height:16em;padding:1.25em}}@media screen and (width <= 700px){.loading-screen .terminal-window .terminal-body{height:12em;padding:.9375em}}.loading-screen .terminal-window .terminal-body .terminal-line{margin-bottom:.25em;white-space:pre-wrap;word-wrap:break-word}.loading-screen .terminal-window .terminal-body .terminal-line.no-prompt{padding-left:1.5em}.loading-screen .terminal-window .terminal-body .terminal-line .bash-prompt{color:#888;font-weight:700}.loading-screen .terminal-window .terminal-body .terminal-line:first-child{color:#569cd6}.loading-screen .terminal-window .terminal-body .terminal-line:nth-child(2){color:#dcdcaa}.loading-screen .terminal-window .terminal-body .terminal-line:nth-child(3){color:#4ec9b0}.loading-screen .terminal-window .terminal-body .terminal-line:nth-child(4){color:#569cd6;margin-top:.625em}.loading-screen .terminal-window .terminal-body .terminal-line:nth-child(5){color:#dcdcaa}.loading-screen .terminal-window .terminal-body .terminal-line:nth-child(6){color:#4ec9b0;font-weight:700}.loading-screen .terminal-window .terminal-body .terminal-line:nth-child(7){color:#569cd6;margin-top:.625em}.loading-screen .terminal-window .terminal-body .terminal-line:nth-child(8){color:#dcdcaa}.loading-screen .terminal-window .terminal-body .terminal-line:last-child{color:#569cd6;margin-top:.625em}.loading-screen .terminal-window .terminal-body .terminal-cursor{display:inline-block;width:.5em;height:1em;background:#d4d4d4;animation:blink 1s step-end infinite;margin-left:.25em;vertical-align:text-bottom}.loading-screen .terminal-window .progress-container{padding:1.25em;border-top:.0625em solid #3e3e42;background:#1e1e1e}.loading-screen .terminal-window .progress-container .progress-bar{width:100%;height:.5em;background:#3e3e42;border-radius:.25em;overflow:hidden;margin-bottom:.625em}.loading-screen .terminal-window .progress-container .progress-bar .progress-fill{height:100%;background:linear-gradient(90deg,#569cd6,#4ec9b0);border-radius:.25em;box-shadow:0 0 .625em #4ec9b080}.loading-screen .terminal-window .progress-container .progress-text{text-align:center;color:#4ec9b0;font-size:.75em;font-weight:700}@keyframes fadeInLine{0%{opacity:0;transform:translate(-.625em)}to{opacity:1;transform:translate(0)}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0;pointer-events:none}}@keyframes slideUp{0%{transform:translateY(0)}to{transform:translateY(-100%);pointer-events:none}}
