:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#cbcbcb;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{position:relative;font-family:Roboto,sans-serif;color:#d9d9d9;text-decoration:none}a:after{content:"";position:absolute;left:0;bottom:-.3vw;width:0;height:.1vw;background:#7dd3fc;transition:width .3s ease}a:hover:after{width:100%}html,body{overflow:auto}body{margin:0;display:flex;place-items:center}h1{font-size:4vw;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}html{scroll-behavior:smooth}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{margin:0 auto;padding:0;text-align:center}#projects{height:100vw}section{height:41.17vw;padding-top:3vw}#home{padding:0}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.custom-cursor{position:fixed;top:0;left:0;width:2vw;height:2vw;border-radius:50%;background:#ffffff05;pointer-events:none;z-index:0;filter:blur(5vw);box-shadow:0 0 6vw 6vw #ffffff05,0 0 12vw 6vw #ffffff05,0 0 24vw 12vw #ffffff05}.cursor{display:inline-block;margin-left:2px;animation:blink 1s infinite}.cursor.typing{animation:none}.typing-text{font-family:Montserrat,Avenir,Helvetica,Arial,sans-serif;color:#cbcbcb}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.scrollIndicator{border-radius:20vw;border:1px solid #b8b8b8;width:2vw;height:4vw;align-items:center;display:flex;justify-content:center;opacity:100%;margin-bottom:2vw}.scrollLine{height:30%;border:1px solid #d9d9d9;width:1px;border-radius:20vw;background:#d9d9d9;opacity:80%}.Home{display:grid;grid-template-rows:repeat(2,1fr);justify-items:center;align-items:end;height:100%}.about{justify-items:center;display:grid;grid-template-rows:.1fr .5fr 1fr;gap:4vw}.aboutCards{display:grid;grid-template-columns:19vw 19vw 19vw 19vw;gap:3vw;justify-content:center;width:50vw}.aboutText{width:70%;font-size:1.5vw;font-weight:400;font-family:Montserrat,Helvetica,Arial,sans-serif;color:#94a3b8;margin:0}.aboutHeader{margin-bottom:0;font-family:Roboto,Helvetica,Arial,sans-serif}.card{height:17vw;width:19vw;border-radius:1.17vw;background:linear-gradient(90deg,#1a1b25,#10121c);z-index:100;display:grid;box-shadow:-.703vw -1.172vw 3.688vw #2f323d57;padding:0;justify-items:start;align-items:end;grid-template-rows:.5fr .5fr 1fr;gap:0}.card h3{padding:0 20% 8% 8%;font-size:15px;margin:0;font-weight:400}.card p{font-size:15px;text-align:left;padding:0 20% 8% 8%;margin:0;color:#94a3b8}.picture{border-radius:50%;background:#5483af;width:4vw;height:4vw;justify-content:center;align-items:center;margin:8% 0 8% 8%;display:flex}.status-dot{width:10px;height:10px;background-color:#13e200;border-radius:50%;display:inline-block;margin-right:6px}header{height:5vw;width:100vw}.navbar{background-blend-mode:darken;display:grid;width:100%;grid-template-columns:1fr 1fr 1fr;grid-template-areas:"a b c";position:fixed;top:0;left:0;align-items:center;border-bottom:solid thin #2F3551;-webkit-backdrop-filter:blur(.1vw);backdrop-filter:blur(.1vw);height:5vw;z-index:1000}.nav-link{color:#d9d9d9;width:fit-content;font-family:Roboto,sans-serif}.item:nth-child(1){justify-self:left;padding-left:1vw}.item:nth-child(2){display:grid;width:100%;grid-template-columns:1fr 1fr 1fr 1fr;justify-items:center}.item:nth-child(3){justify-self:right;padding-right:1vw}body{background:#04050d;margin:0;padding:0;overflow:hidden}.star{position:absolute;background:#d9d9d9;border-radius:50%;opacity:.8;animation:blink 2s infinite alternate;z-index:0}.stars-wrapper{position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:0}@keyframes blink{0%{opacity:.2}50%{opacity:1}to{opacity:.2}}.falling-star{position:fixed;width:2px;height:80px;background:linear-gradient(#d9d9d9,transparent);opacity:0;transform:rotate(135deg);pointer-events:none;z-index:0}@keyframes fall{0%{opacity:1;transform:translate(0) rotate(135deg)}80%{opacity:.5}to{opacity:0;transform:translate(17vw,17vw) rotate(135deg)}}.skills{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:.3fr 1fr;height:100%;grid-template-areas:"a b" "c d"}.skillsHeader{margin-bottom:0;font-family:Roboto,Helvetica,Arial,sans-serif;grid-column:span 2}.degreeContainer{grid-area:c;padding-left:5vw;width:40.7vw;display:grid;grid-template-rows:.3fr 1fr;height:100%;grid-template-areas:"a" "b"}.degreeContainer h2{grid-area:a;justify-self:start;font-size:1.8vw;font-family:Roboto,Helvetica,Arial,sans-serif}.degreeMap{grid-area:b;height:100%;display:grid;grid-template-rows:.2fr .2fr}.technicalContainer{grid-area:d;display:grid;grid-template-rows:.3fr 1fr;grid-template-areas:"a" "b";padding-right:5vw;width:40.7vw;justify-self:end;height:auto}.technicalContainer h2{grid-area:a;justify-self:start;font-size:1.8vw;font-family:Roboto,Helvetica,Arial,sans-serif}.technical{grid-area:b;display:grid;grid-template-columns:repeat(3,1fr);gap:1vw;grid-auto-rows:3.33vw}.technicalCard{background:linear-gradient(90deg,#1a1b25,#10121c);border-radius:.55vw;height:3.33vw;align-content:center;color:#d9d9d9;font-size:1.11vw;font-family:Roboto,Helvetica Neue,sans-serif;z-index:2;box-shadow:-.1vw -.3vw 1vw #2f323d57}.degree{display:grid;grid-template-rows:repeat(2,1fr);height:2vw;width:100%}.degreeInfo{display:grid;grid-template-columns:1fr .3fr;color:#d9d9d9;font-size:1.11vw;width:100%;font-family:Roboto,Helvetica Neue,sans-serif;font-weight:400}.degreeInfo p:first-child{justify-self:start;align-self:end;margin:0}.degreeNumber{justify-self:end;align-self:end;margin:0}.degreeBar{background:linear-gradient(90deg,#1a1b25,#10121c);width:100%;height:.7vw;border-radius:2vw}.degreePerc{height:100%;border-radius:2vw}.projects{display:grid;grid-template-columns:42vw 42vw;grid-template-rows:8vw auto auto;gap:6vw;padding:0 5vw;height:100%;justify-items:center}.title{grid-column:span 2;height:6vw;color:#cbcbcb}.projectContainer{width:100%;height:40vw;display:grid;grid-template-rows:auto 1fr;background:transparent}.project-image{width:100%;height:21vw;border-radius:1vw;overflow:hidden;display:flex;justify-content:center;align-items:center;box-shadow:-.6vw -1.8vw 6vw #2f323d57;background:linear-gradient(90deg,#1a1b25,#10121c);transition:transform .4s ease}.project-image img{width:100%;height:100%;border-radius:1vw}.project-card{width:100%;display:grid;grid-template-rows:auto auto auto;grid-template-columns:1fr;gap:1vw;border-radius:.8vw;background:#1a1b2500;margin-top:2vw}.project-header{display:flex;align-items:center;width:100%;gap:.5vw}.project-title{font-family:Montserrat,sans-serif;font-size:1.875vw;font-weight:600;color:#94a3b8;justify-self:start;margin:0;padding-left:1vw}.project-year{font-family:Roboto,sans-serif;font-size:.9vw;color:#d9d9d9;text-transform:uppercase;justify-self:end;padding-right:1vw;margin-left:auto}.project-meta{font-size:.9vw;font-family:Roboto,sans-serif;color:#d9d9d9;text-transform:uppercase;letter-spacing:.08em;justify-self:left;background:linear-gradient(90deg,#1a1b25,#10121c);border-radius:.5vw;padding:.4vw}.project-description{font-family:Montserrat,sans-serif;font-size:2.5vw;color:#cbcbcb;text-align:left;align-self:center;height:fit-content;margin:0;padding-left:1vw}.project-links{display:flex;justify-content:start;gap:2vw;align-self:end;padding-left:1vw}.project-links a{position:relative;font-size:1vw;font-family:Roboto,sans-serif;color:#d9d9d9;text-decoration:none}.project-links a:after{content:"";position:absolute;left:0;bottom:-.3vw;width:0;height:.1vw;background:#7dd3fc;transition:width .3s ease}.project-links a:hover:after{width:100%}.portfolio-card-container{width:42vw;height:40vw;background-color:#fff;border-radius:3vw;padding:2.5vw;box-sizing:border-box;display:grid;grid-template-rows:auto auto auto 1fr auto;gap:.8vw;box-shadow:0 1vw 4vw #0000000d;font-family:Inter,sans-serif;color:#000}.card-top-nav{display:flex;align-items:center;gap:1vw;font-weight:700;font-size:1.2vw}.card-main-info{display:flex;justify-content:space-between;align-items:baseline;margin-top:1vw}.card-title{font-size:2.8vw;font-weight:800;margin:0;letter-spacing:-.05vw}.card-year{font-size:1.1vw;font-weight:600;color:#333}.card-sub-info{display:flex;align-items:center;gap:.5vw;font-weight:600;font-size:1vw;color:#000;margin-bottom:1vw}.card-image-section{position:relative;width:100%;height:100%;display:flex;align-items:center}.image-main-wrapper{position:relative;z-index:2;width:88%;height:100%;border-radius:2vw;overflow:hidden;box-shadow:0 1vw 3vw #0000001a}.image-content{width:100%;height:100%;object-fit:cover}.image-stack-bg{position:absolute;right:0;top:10%;width:30%;height:80%;background:#e0e0e0;border-radius:1.5vw;z-index:1;opacity:.7}.card-bottom-footer{display:flex;justify-content:space-between;align-items:center;padding-top:1.5vw}.hamburger-menu{display:flex;flex-direction:column;gap:.4vw}.hamburger-menu span{width:2vw;height:.25vw;background-color:#000;border-radius:1vw}.footer-links{display:flex;gap:1.5vw}.footer-links a{text-decoration:none;color:#000;font-weight:800;font-size:1.1vw}.portfolio-card-container:hover .image-main-wrapper{transform:scale(1.02);transition:transform .3s ease}#contact{height:25vw;margin-top:5vw}.contactContainer{display:grid;grid-template-columns:.3fr 1fr .3fr;grid-template-rows:repeat(3,1fr);grid-template-areas:"up upmiddle upright" "left middle right";padding:0 5vw}.contactLeft{grid-area:left;justify-self:start;align-self:center;font-family:Montserrat,sans-serif;font-weight:400}.contactLeft h3{font-family:Montserrat,sans-serif;font-weight:400}.contactTitle{color:#cbcbcb;font-weight:500;font-family:Montserrat,sans-serif}.contactLinks2{grid-area:right;font-weight:500;font-family:Roboto,sans-serif;display:grid;grid-template-columns:repeat(2,1fr);height:100%;justify-self:right;align-items:center;gap:3vw}.profilePicture{border-radius:50%;height:18vw;border-bottom:.1vw solid #31323D;width:18vw;background:linear-gradient(90deg,#1a1b25,#10121c);z-index:3}.contactTitleWrapper{position:relative;grid-area:middle;place-items:center}
