*{box-sizing:border-box;margin:0;padding:0}body{position:relative;overflow:hidden;height:100vh;font-family:Chakra Petch,sans-serif}body::-webkit-scrollbar{width:10px}body::-webkit-scrollbar-thumb{background:#8889;border-radius:10px}body::-webkit-scrollbar-thumb:hover{background:#555c}#app{position:relative;width:100%;height:100vh;overflow:hidden}#sceneContainer,#canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}.top-right-corner{position:absolute;top:10px;right:10px;display:flex;align-items:center;opacity:0;transition:opacity 1s ease-out;text-align:left;width:50vw;min-width:460px;max-width:75vw;min-height:clamp(120px,20vh,200px);pointer-events:none}.top-right-corner.active{opacity:1;transition:opacity 2s ease-in}@media (pointer: coarse){.top-right-corner{width:90vw;min-width:unset;min-height:unset}.top-right-corner .image{width:25vw}.top-right-corner .h1-container h1{font-size:6vw}.top-right-corner .h2-container h2{font-size:5vw}}.image{width:clamp(150px,30%,250px);margin-right:12px;object-fit:contain;flex-shrink:0}.text-container{display:flex;flex-direction:column;justify-content:center;min-width:175px;min-height:120px}.h1-container{position:static}.h1-container h1{margin:0;color:#fff;font-size:clamp(2.5rem,5vw,5vw);font-weight:700;white-space:nowrap;text-overflow:ellipsis}.h2-container{position:static}.h2-container h2{margin:0;color:#fff;font-size:clamp(1.8rem,3.5vw,5rem);font-weight:400}.scroll-indicator{position:absolute;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;pointer-events:none;opacity:0}.scroll-indicator .indicator{display:flex;flex-direction:column;align-items:center;color:#fff}.scroll-indicator .indicator .label{font-size:clamp(1.6rem,2.5vw,2.8rem);line-height:1.1;white-space:nowrap}.scroll-indicator .arrow{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:8px}.scroll-indicator .bar{display:block;height:clamp(6px,1.2vw,12px);background-color:#fff;border-radius:clamp(3px,.6vw,6px)}.scroll-indicator .bar-1{width:clamp(30px,6vw,60px)}.scroll-indicator .bar-2{width:clamp(18px,3.6vw,36px)}.scroll-indicator .bar-3{width:clamp(6px,1.2vw,12px)}.scroll-indicator .desktop{display:flex}.scroll-indicator .mobile{display:none}@media (pointer: coarse),(max-width: 600px){.scroll-indicator .desktop{display:none}.scroll-indicator .mobile{display:flex}.scroll-indicator{bottom:15%;z-index:5}}@keyframes breathe{0%{opacity:0}50%{opacity:1}to{opacity:0}}.top-right-corner.active~.scroll-indicator{opacity:1;animation:breathe 4s ease-in-out infinite}.overlay-content{text-align:center}.overlay-content h1{font-size:clamp(2.5rem,5vw,4rem);color:#000;margin-top:2rem;margin-bottom:2rem}.overlay-content p{font-size:clamp(.2rem,1.5vw,1.2rem);color:#555;margin-bottom:.5rem}.overlay-content img{max-width:80%;height:auto;margin-bottom:1rem}.overlay-content a{font-size:1.25rem;color:#007bff;text-decoration:none;font-weight:700}.overlay-content a:hover{text-decoration:underline}.page-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;transform:scale(0);transform-origin:center center;transition:transform .5s linear;overflow:hidden;z-index:10}.page-wrapper.scaled{transform:scale(1);pointer-events:auto}.page{position:absolute;top:0;left:0;width:100%;height:100%;margin-top:0;overflow-y:auto;pointer-events:none;background:#f5f5f5;box-sizing:border-box;display:none;flex-direction:column}.page.active{visibility:visible;display:flex;pointer-events:auto}.page.slide-in-left{animation:slideInFromLeft .5s forwards}.page.slide-in-right{animation:slideInFromRight .5s forwards}.page.slide-out-left{animation:slideOutToLeft .5s forwards}.page.slide-out-right{animation:slideOutToRight .5s forwards}@keyframes slideInFromLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideInFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideOutToLeft{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes slideOutToRight{0%{transform:translate(0)}to{transform:translate(100%)}}.initial-youtube-embed{display:flex;justify-content:center;align-items:center;width:100%;margin:0 auto}.initial-youtube-embed iframe{width:clamp(240px,90vw,560px);height:auto;aspect-ratio:16 / 9;max-height:315px;border:none;border-radius:10px}#globalHeader{position:relative;top:0;left:0;width:100%;height:70px;background-color:#fff;z-index:11;display:none;align-items:center;justify-content:space-between;padding:0 5px;box-shadow:0 3px 6px #0000001a}.logo-container{position:relative;width:clamp(50px,4vw,62px);height:clamp(50px,4vw,62px);display:flex;align-items:center;justify-content:center}.logo{position:relative;z-index:2;width:100%;height:100%;object-fit:contain}.site-title{font-size:clamp(1.3rem,2vw,2.5rem);font-family:Chakra Petch,sans-serif;font-weight:600;color:#333;margin:0;white-space:nowrap;padding-left:5px;line-height:clamp(40px,5vw,66px)}.nav-buttons{display:flex;gap:clamp(4px,1vw,15px)}.nav-buttons button{padding:clamp(6px,1.2vw,12px) clamp(8px,2vw,20px);font-size:clamp(.9rem,1.5vw,1rem);font-family:Chakra Petch,sans-serif;font-weight:500;color:#333;background-color:#f2f2f2;border:1px solid #ccc;border-radius:4px;cursor:pointer;transition:background-color .3s ease,color .3s ease}.nav-buttons button:focus{outline:none}@media (min-width: 600px),(hover: hover){.nav-buttons button:hover{background-color:#333;color:#fff}}.grid-container{display:grid;gap:20px;margin:50px auto;max-width:clamp(0px,90vw,1840px);grid-template-columns:repeat(auto-fit,minmax(min(580px,100%),1fr))}.grid-item-wrapper{text-decoration:none;overflow:hidden;transition:transform .1s ease,box-shadow .1s ease}.grid-item-wrapper:focus{outline:none}@media (hover: hover){.grid-item-wrapper:hover{background-color:#2a2a2a;transform:scale(1.02);box-shadow:0 6px 10px #0003;border-radius:10px}}.grid-item{background-color:#363636;border-radius:10px;padding:10px;box-shadow:0 4px 6px #0000001a;flex-direction:column;justify-content:flex-start;align-items:center;text-align:center;height:100%;display:flex;text-decoration:none;aspect-ratio:1/1}.grid-item p{color:#fff;font-weight:500}.grid-item .description{font-size:clamp(1.2rem,2.5vw,1.5rem)}.sketchfab-embed-wrapper{width:100%;height:auto}.iframe-container{flex:0 0 auto;width:100%;aspect-ratio:16/9;position:relative;pointer-events:auto;overflow:hidden}.iframe-container iframe{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:8px}.youtube-embed-container{width:100%;height:auto}.content-wrapper{flex:1;display:flex;flex-direction:column;justify-content:space-between;align-items:center;height:100%;width:100%;margin-top:10px}.content-wrapper .description{cursor:text}.text-link{color:#fff;text-decoration:none;font-weight:700;cursor:pointer;transition:color .3s ease,transform .3s ease}.text-link:hover{color:#d3d3d3;transform:scale(1.2)}.basic-link{color:inherit;font-weight:400;text-decoration:none;cursor:pointer;white-space:nowrap;transition:color .3s ease}.basic-link:hover{color:#d3d3d3;text-decoration:underline}.left-text{margin-right:.3rem}.right-text{margin-left:.3rem}.text-centering{flex-grow:1;width:100%;display:inline-flex;justify-content:center;align-items:center;pointer-events:auto;cursor:text}.description{width:100%;pointer-events:auto;cursor:text;line-height:1.4;text-align:center}.description.sketchfab{flex-grow:1;display:inline-flex;justify-content:center;align-items:center}.description.basictext{display:block;justify-content:center;align-items:center}.description a{pointer-events:auto;text-decoration:none;color:#fff;font-weight:700;font-size:clamp(1.2rem,2.5vw,1.5rem)}.description a.basic-link{font-weight:400;font-size:inherit;transform:none;transition:color .3s ease}@media (pointer: coarse){.description a,.description a:link,.description a:visited,.description a:focus,.description a:active{text-decoration:none!important;transform:none!important;outline:none}}@media (hover: hover){.description a:hover{color:#000;transform:scale(1.4);text-decoration:none}.description:hover .left-text{transform:translate(-10px)}.description:hover .right-text{transform:translate(10px)}.description a.basic-link:hover{font-weight:700;text-decoration:underline;transform:none;white-space:nowrap}}.description span{display:inline-block;transition:transform .3s ease}.corral-wrapper{position:relative;display:flex;align-items:center;width:100%;overflow:hidden}.image-corral{flex:1;display:flex;align-items:center;overflow-x:auto;scroll-behavior:smooth;white-space:nowrap;background-color:#0000;pointer-events:auto}.image-corral img{flex-shrink:0;height:clamp(50px,10vw,125px);border-radius:5px;margin:2% 1%;cursor:pointer;pointer-events:auto}.corral-nav{position:absolute;top:50%;transform:translateY(-50%);background-color:#0009;color:#fff;border:none;border-radius:2px;font-size:1.5rem;padding:0rem .25rem;z-index:10;cursor:pointer;display:flex;justify-content:center;align-items:center;pointer-events:none;opacity:0;transition:opacity .3s ease}.corral-nav:hover{background-color:#fffc;color:#000}.corral-wrapper:hover .corral-nav{opacity:1;pointer-events:auto}.prev{left:1%}.next{right:1%}.image-corral::-webkit-scrollbar{height:10px}.image-corral::-webkit-scrollbar-thumb{background-color:transparent;border-radius:4px;transition:background-color .5s ease}.corral-wrapper:hover .image-corral::-webkit-scrollbar-thumb{background-color:#888}.image-corral::-webkit-scrollbar-thumb:hover{background-color:#555}#photoViewer{position:fixed;top:0;left:0;width:100vw;height:100vh;overflow:hidden;background-color:#000000e6;display:flex;justify-content:center;align-items:center;z-index:20;opacity:0;pointer-events:none;transition:opacity .5s ease}#photoViewer.visible{opacity:1;pointer-events:auto}#photoViewer img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transition:none;max-width:90%;max-height:90%;border-radius:8px}.nav-button{position:absolute;top:50%;transform:translateY(-50%);font-size:2rem;color:#fff;background:#00000080;border:none;padding:.3rem .5rem;cursor:pointer;border-radius:20%;z-index:21;-webkit-user-select:none;user-select:none}@media (max-width: 600px),(hover:none){.nav-button{font-size:1rem}}.nav-button:hover{background:#fffc;color:#000}.hamburger{display:none;font-size:1.5rem;background:none;border:none;cursor:pointer;padding:.25rem}@media (pointer: coarse),(max-width: 600px){.nav-buttons{display:none!important}.hamburger{display:block!important;color:#000;margin-right:10px}.nav-buttons.mobile-active{display:flex!important;position:absolute;top:70px;right:10px;flex-direction:column;background:#fff;padding:.5rem 1rem;box-shadow:0 2px 6px #00000026;border-radius:4px;z-index:12}.nav-buttons.mobile-active button{width:100%;text-align:left;margin:.25rem 0;background:none;border:none;font-size:1rem;color:#333;padding:.5rem 0;cursor:pointer}}#prevPhoto{left:5%}#nextPhoto{right:5%}.close-button{position:absolute;top:3%;right:5%;font-size:1.5rem;color:#fff;background:#00000080;border:none;padding:.5rem 1rem;cursor:pointer;border-radius:50%;z-index:21;-webkit-user-select:none;user-select:none}.close-button:hover{background:#fffc;color:#000}.about-container{max-width:800px;margin:0 auto;padding:2rem;text-align:center;display:flex;flex-direction:column;gap:2rem;align-items:center}.photo-wrapper{width:200px;height:200px;border-radius:50%;overflow:hidden}.profile-photo{width:100%;height:100%;object-fit:cover}.bio-text p{font-size:1.1rem;color:#333;line-height:1.6;max-width:700px}.resume-section{display:flex;flex-direction:column;align-items:center;gap:1rem}.resume-preview-container{display:inline-block;text-align:right;margin:0 auto}.resume-preview-link{display:block}.resume-preview-img{display:block;width:auto;max-width:clamp(340px,80vw,1200px);height:auto;margin:0}.resume-download{display:inline-block;font-size:.5rem;margin-top:.5rem;color:#000!important;text-decoration:none}.resume-download:hover{text-decoration:underline}#contactPage .contact-form-container{display:flex;flex-direction:column;align-items:center;padding-top:4rem;padding-bottom:4rem;max-width:700px;margin:0 auto}#contactPage h1{font-weight:700;font-size:2.5rem;text-align:center;margin-bottom:1.5rem}#contactPage .contact-description{text-align:center;font-size:1.1rem;line-height:1.5;margin-bottom:2rem;padding:0 1rem}#contactPage form{display:flex;flex-direction:column;align-items:center;width:100%}#contactPage input[type=email],#contactPage textarea{width:80%;max-width:600px;padding:.75rem 1rem;margin-bottom:1.5rem;border:1px solid #ccc;border-radius:4px;font-size:1rem}#contactPage button{margin-top:2rem;padding:.75rem 2rem;font-size:1.1rem;font-weight:600;background-color:#333;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}#contactPage button:hover{background-color:#555}#contactPage .form-status{margin-top:1rem;font-size:1rem;color:#333;text-align:center}
