@font-face{font-family:Pixellari;src:url(/fonts/Pixellari.woff2) format("woff2"),url(/fonts/Pixellari.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:VT323;src:url(/fonts/VT323-Regular.woff2) format("woff2"),url(/fonts/VT323-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}:root{--color-bg: #C5DBA7;--color-accent-pink: #f8a8b5;--color-accent-yellow: #f7f189;--color-device-blue: #4579c2;--color-rock-brown: #c49a6c;--color-base-white: #FAFCF7;--color-base-black: #3b3935}:root[data-theme=night]{--color-bg: rgb(20, 20, 20);--color-accent-pink: #4B8725;--color-accent-yellow: #527326;--color-device-blue: #8CCD5F;--color-rock-brown: #1958be;--color-base-white: #1A1A1A;--color-base-black: #8CCD5F}h1{font-family:Pixellari,sans-serif;color:var(--color-base-black);font-size:1.5rem}h2{font-size:.95rem;color:var(--color-base-black);margin:1rem 0;font-family:VT323,monospace}p,li{font-family:VT323,monospace;font-size:1.25rem;line-height:1.6;color:var(--color-base-black)}ul{margin-left:1.5rem;list-style-type:square;color:var(--color-device-blue)}hr{border:none;margin:.5rem 0}a{color:var(--color-device-blue);text-decoration:underline}.project-viewer #project-content{margin:0;width:100%;overflow:auto-y}.project-titlebar{flex:0 0 3rem;display:flex;align-items:center;justify-content:space-between;background:var(--color-device-blue);color:var(--color-base-white);padding:0 1rem;border-bottom:.125rem solid var(--color-base-black)}.project-body{padding-top:10rem;padding:10rem 1rem 7rem}header,main,footer{max-width:800px;margin:1rem auto;display:flex;flex-direction:column}.project-type{color:var(--color-rock-brown)}.iframe-wrapper{position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:6px}.iframe-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;border-radius:6px}.project-title{font-family:Pixellari,sans-serif;font-size:2.2rem}.project-tag{color:var(--color-rock-brown);margin-top:2rem}.description{font-size:1.25rem;margin:1rem 0;color:var(--color-base-black)}.images{display:flex;flex-direction:column;gap:1rem;margin:2rem 0}.images img{max-width:100%;border-radius:6px}.cube-image{background-color:#000c;width:100%;height:auto;display:block;padding:4rem;box-sizing:border-box}@media (max-width: 768px){.project-body{padding:7rem .5rem 10rem}.cube-image{padding:1rem}}.cube-image img{width:100%;height:auto;object-fit:contain;display:block}.illustration{margin-top:0}footer{opacity:.5}footer .credits{margin-bottom:1rem}footer p{font-size:1rem}*{margin:0;padding:0;box-sizing:border-box}body{font-family:VT323,monospace;font-size:1.25rem;color:var(--color-base-black);background-color:var(--color-base-white)}#loading-screen-container{perspective:1200px;overflow:hidden}#experience{position:fixed;height:100%;width:100%;top:0;left:0;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:none}#experience.blur:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0000001a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;z-index:2;-webkit-user-select:none;user-select:none}#experience-canvas{height:100%;width:100%;user-select:none;-webkit-user-select:none;-ms-user-select:none}#loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;z-index:9999;background-color:var(--color-bg);transition:opacity 1s ease-in-out;transform:perspective(1000px);border:.125rem solid var(--color-base-black);box-shadow:.125rem .125rem 0 var(--color-base-black)}.loading-screen.hide{opacity:0;pointer-events:none}#progress-bar{width:100%;height:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px inset var(--color-base-black);background-color:var(--color-base-white);margin:12px 0}#progress-bar::-webkit-progress-bar{background-color:var(--color-base-white)}#progress-bar::-webkit-progress-value{background-color:var(--color-accent-yellow)}#progress-bar::-moz-progress-bar{background-color:var(--color-accent-yellow)}.nt-buttons{display:flex;justify-content:flex-end;gap:20px;margin-top:10px;touch-action:manipulation;padding-right:10px;padding-bottom:5px}.nt-button{background-color:var(--color-accent-pink);color:var(--color-base-black);font-family:Pixellari,sans-serif;text-transform:uppercase;font-size:1rem;padding:.3rem .6rem;border:.125rem solid var(--color-base-black);box-shadow:.125rem .125rem 0 var(--color-base-black);cursor:pointer;transform:rotate(1deg);transition:transform .1s ease-in-out;white-space:nowrap;text-decoration:none}.nt-button:hover{background-color:var(--color-accent-yellow);transform:rotate(-4deg) scale(1.05)}.nt-button:disabled{opacity:.5;pointer-events:none}.nt-button-mute{cursor:pointer;background-color:transparent;color:var(--color-base-black);border:none;font-family:Pixellari,sans-serif;text-transform:uppercase;font-size:.9rem;opacity:80%}.loading-content{display:flex;flex-direction:column}#tip-text{margin:1rem;cursor:auto}.icon-fly-container{position:relative;height:48px;margin-bottom:10px;width:300px}.icon{width:32px;height:32px;position:absolute;top:8px}.folder-icon{left:0;animation:flyToGlobe 1.5s ease-in-out infinite}.globe-icon{right:0}@keyframes flyToGlobe{0%{left:0;transform:scale(.4) rotate(0);opacity:.4}50%{transform:scale(1.2) rotate(50eg);opacity:1}to{left:calc(100% - 32px);transform:scale(.8) rotate(80deg);opacity:.2}}#music-toggle,#theme-toggle{position:fixed;left:1.5rem;width:50px;height:50px;z-index:10;border:.125rem solid var(--color-base-black);box-shadow:.125rem .125rem 0 var(--color-base-black);background:var(--color-accent-pink);cursor:pointer;filter:url(#wobble);user-select:none;-webkit-user-select:none;-ms-user-select:none}#music-toggle{top:1.5rem;transform:rotate(4deg)}#theme-toggle{top:6rem;transform:rotate(-6deg)}#music-toggle img,#theme-toggle img{width:80%;height:80%}#music-toggle.hidden,#theme-toggle.hidden{display:none!important}#music-toggle:hover,#theme-toggle:hover{background-color:var(--color-accent-yellow);transform:rotate(14deg) scale(1.05)}#camera-toggle{position:fixed;left:50%;transform:translate(-50%);bottom:2rem;width:70px;height:70px;border-radius:50%;z-index:10;border:.125rem solid var(--color-base-black);box-shadow:.125rem .125rem 0 var(--color-base-black),0 0 35px 1px var(--color-bg);background:var(--color-accent-pink);cursor:pointer;filter:url(#wobble);user-select:none;-webkit-user-select:none;-ms-user-select:none}#camera-toggle img{width:80%;height:80%;transform:translate(5%) translateY(5%)}#camera-toggle:active{transform:translate(-50%) scale(.9)}.no-touch #camera-toggle:hover{background-color:var(--color-accent-yellow);transform:translate(-50%) rotate(14deg) scale(1.05)}.no-touch #camera-toggle:hover:active{transform:translate(-50%) scale(.9)}#camera-toggle.hidden{display:none!important}@keyframes glowPulse{0%{box-shadow:0 0 5px 2px var(--color-accent-yellow)}50%{box-shadow:0 0 15px 4px var(--color-accent-yellow)}to{box-shadow:0 0 5px 2px var(--color-accent-yellow)}}.glow{animation:glowPulse 1s infinite ease-in-out}.overlay{height:100vh;width:100vw;overflow:hidden;position:fixed;top:0;left:0;z-index:3;display:none;background-color:#20202033}.modal{filter:url(#wobble);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:43.75rem;max-height:80vh;background-color:var(--color-base-white);background-size:12px 12px;border:.1875rem solid var(--color-base-black);box-shadow:.25rem .25rem 0 var(--color-base-black);z-index:999;display:flex;flex-direction:column;overflow:hidden;font-family:VT323,monospace;font-size:1.25rem}.modal.hidden{display:none!important}.titlebar{display:flex;justify-content:space-between;align-items:center;background-color:var(--color-device-blue);padding:.4rem .5rem;border-bottom:.125rem solid var(--color-base-black)}.modal-title{margin:0;color:var(--color-base-white);font-family:Pixellari,sans-serif;font-size:1.1rem;padding-top:.5rem;text-transform:uppercase}.modal-exit-button{width:1.5625rem;height:1.5625rem;background-color:var(--color-accent-pink);color:var(--color-base-black);font-size:1.75rem;border:.125rem solid var(--color-base-black);box-shadow:.125rem .125rem 0 var(--color-base-black);cursor:pointer;line-height:1;padding:0;display:flex;align-items:center;justify-content:center;margin-right:.125rem;touch-action:manipulation}.modal-exit-button:hover{background-color:var(--color-accent-yellow);transform:rotate(-15deg) scale(1.4)}.filepath-bar{display:flex;justify-content:space-between;align-items:center;background-color:var(--color-base-white);border-top:.125rem solid var(--color-base-black);border-bottom:.125rem solid var(--color-base-black);padding:.5rem;font-family:VT323,monospace;font-size:1.25rem;color:var(--color-base-black)}.filepath-bar .path{margin-right:1rem}.filepath-bar .status-indicators{display:flex;gap:.5rem}.filepath-bar .status-indicators span{position:relative;padding:0 .5rem}.filepath-bar .status-indicators span:not(:last-child):after{content:"|";position:absolute;right:-.5rem;color:var(--color-base-black)}.modal-content{flex-grow:1;overflow-y:auto;padding:1rem;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;cursor:auto}.image-list-inner{width:100%;max-width:31.25rem;padding:0;margin-top:4rem}.image-list{display:flex;flex-direction:column;align-items:center;gap:3rem}.image-item{width:100%;max-width:31.25rem}.infobar{position:relative;display:flex;flex-direction:column;background-color:var(--color-bg);background-image:radial-gradient(var(--color-base-white) .8px,transparent .8px);background-size:12px 12px;padding:.5rem;margin-bottom:3rem;transform:rotate(-.7deg);overflow:hidden}.infobar img{width:100%;margin-bottom:.5rem;transform:rotate(-.3deg)}.infobar-content{display:flex;flex-direction:column;gap:.4375rem;padding:1rem .25rem 1.5rem}.title{font-family:Pixellari,sans-serif;font-size:1.5rem}.infobar span{font-family:VT323,monospace;font-size:1.375rem;color:var(--color-base-black)}.more-button{position:absolute;bottom:1.875rem;right:1.875rem;background-color:var(--color-accent-pink);color:var(--color-base-black);font-family:Pixellari,sans-serif;text-transform:uppercase;font-size:1rem;padding:.3rem .6rem;border:.125rem solid var(--color-base-black);box-shadow:.125rem .125rem 0 var(--color-base-black);transform:rotate(8deg);transition:transform .1s ease-in-out;white-space:nowrap;text-decoration:none;cursor:pointer}.more-button:hover{background-color:var(--color-accent-yellow);transform:rotate(-4deg) scale(1.05)}.social-icons{display:flex;padding-top:1.5rem;gap:1.4rem;z-index:999}.social-icons a img{width:2.5rem;height:2.5rem;background-color:var(--color-accent-pink);border-radius:20%;transition:filter .2s ease,transform .2s ease}.social-icons a:hover img{filter:none;transform:scale(1.1)}.work .modal-content{padding-bottom:5rem}.legal .modal-content{padding:4rem 2rem 5rem}.contact .modal-content{padding:3rem 2rem 0}.about .modal-content{padding:3rem 1rem 5rem}.contact .infobar{padding:2rem 2rem 5rem}img.about-me-image{width:192px;height:192px;max-width:none;border:2px solid var(--color-base-black);margin:2rem 2rem 0rem}.about-me-text{padding:2rem}.highlight{background-color:var(--color-base-white);color:var(--color-base-black);display:inline-block;margin:5px}.rotate1{transform:rotate(-1.3deg)}.rotate2{transform:rotate(1.4deg)}.rotate3{transform:rotate(-2deg)}.modal-content::-webkit-scrollbar{width:1rem}.modal-content::-webkit-scrollbar-track{background:var(--color-base-white);border-left:.125rem solid var(--color-base-black)}.modal-content::-webkit-scrollbar-thumb{background-color:var(--color-accent-pink);border:.125rem solid var(--color-base-black);box-shadow:.125rem .125rem 0 var(--color-base-black)}.modal-content::-webkit-scrollbar-thumb:hover{background-color:var(--color-accent-yellow)}@media (max-width: 786px){.image-list{gap:1rem}.infobar{padding:.6rem .6rem 1.5rem}.infobar img{margin-bottom:.4rem}.infobar span,.infobar .title{font-size:1.25rem}.more-button{font-size:1rem;padding:.4rem .6rem}.filepath-bar{display:none}.filepath-bar .status-indicators span{padding:0 .4rem}.modal-content{scrollbar-width:none;-ms-overflow-style:none}.modal-content::-webkit-scrollbar{display:none}.legal .modal-content{padding:2.5rem 1rem 5rem}.about-me-text{padding:0}img.about-me-image{margin:0 0 2rem}}.project-viewer{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;background-color:var(--color-base-white);color:#000;z-index:9999;-webkit-overflow-scrolling:touch;flex-direction:column;overflow:hidden;display:flex;border:.125rem solid var(--color-base-black);box-shadow:.125rem .125rem 0 var(--color-base-black);cursor:auto}.project-viewer.hidden{display:none}.project-viewer #project-content{margin:0;padding:0;width:100%;overflow:auto-y}.project-titlebar{flex:0 0 3rem;display:flex;align-items:center;justify-content:space-between;background:var(--color-device-blue);color:var(--color-base-white);padding:0 1rem;border-bottom:.125rem solid var(--color-base-black);z-index:1}.project-title{color:var(--color-base-white);font-size:1.3rem;padding-top:.8rem}.project-close{width:1.8rem;height:1.8rem;background-color:var(--color-accent-pink);color:var(--color-base-black);font-size:1.75rem;border:.125rem solid var(--color-base-black);box-shadow:.125rem .125rem 0 var(--color-base-black);cursor:pointer;line-height:1;padding:0;display:flex;align-items:center;justify-content:center;margin-right:.125rem;touch-action:manipulation}.project-close:hover{background-color:var(--color-accent-yellow);transform:rotate(-15deg) scale(1.4)}.project-body img,.project-body video,.project-body iframe{max-width:100%;display:block;margin:1rem 0}
