@import url(https://fonts.googleapis.com/css2?family=Raleway:wght@200..900&display=swap);@import url(https://fonts.googleapis.com/css2?family=Inter:wght@200..900&display=swap);body{-moz-osx-font-smoothing:grayscale;font-family:var(--font-body),-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",monospace;margin:0}code{font-family:var(--font-body),source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}*,:after,:before{box-sizing:border-box}*{margin:0}@media (prefers-reduced-motion:no-preference){html{interpolate-size:allow-keywords}}body{-webkit-font-smoothing:antialiased;line-height:1.5}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}#__next,#root{isolation:isolate}:root{--foreground-rgb:48,58,64;--foreground:rgb(var(--foreground-rgb));--background-start-rgb:26,35,126;--background-end-rgb:13,18,63;--background-gradient:linear-gradient(135deg,rgb(var(--background-start-rgb)),rgb(var(--background-end-rgb)));--accent-color-rgb:0,188,212;--accent-color:rgb(var(--accent-color-rgb));--card-background-rgb:255,255,255;--card-background:#fff;--card-background-darker:#0f0e26d9;--border-color:rgba(var(--foreground-rgb),0.2);--shadow-color:#0000001a;--button-text-color:#fff;--button-padding:0.75rem 1.5rem;--button-border-radius:0.5rem;--font-heading:"Raleway",sans-serif;--font-body:"Inter",sans-serif;--middle:#bbb;--project-tile:var(--card-background-darker)}*{box-sizing:border-box}body,html{-ms-overflow-style:none;background-color:rgb(var(--background-start-rgb));color:var(--foreground);font-family:var(--font-body);font-weight:300;height:100vh;margin:0;overflow-x:hidden;padding:0;scrollbar-width:none}.app-container{background:var(--background-gradient);background-attachment:fixed;height:100%;min-height:100vh;overflow-x:hidden;overflow-y:auto;position:relative}body::-webkit-scrollbar{display:none}h1,h2,h3,h4,h5,h6{color:var(--foreground);font-family:var(--font-heading);font-weight:700;margin-top:0}h1{font-size:2.5rem;margin-bottom:1.5rem}h2{font-size:1.5rem;margin-bottom:1rem}h3{font-size:1.25rem;margin-bottom:.75rem}p{font-family:var(--font-body);font-size:1rem;line-height:1.4;margin-bottom:1rem}a{color:var(--accent-color);position:relative;text-decoration:none;transition:color .3s ease}a:hover{color:rgba(var(--accent-color-rgb),.8);text-decoration:underline}.btn{border:none;border-radius:var(--button-border-radius);box-shadow:0 2px 4px var(--shadow-color);cursor:pointer;display:inline-block;font-family:var(--font-body);font-size:.9rem;font-weight:700;padding:var(--button-padding);text-align:center;text-decoration:none;transition:background-color .3s ease,transform .2s ease,box-shadow .3s ease}.btn-primary{background-color:var(--accent-color);color:var(--button-text-color)}.btn-primary:hover{background-color:rgba(var(--accent-color-rgb),.85);box-shadow:0 4px 8px rgba(var(--accent-color-rgb),.3);transform:translateY(-2px)}.btn-secondary{background-color:initial;border:2px solid var(--accent-color);color:var(--accent-color)}.btn-secondary:hover{background-color:rgba(var(--accent-color-rgb),.1);box-shadow:0 4px 8px rgba(var(--accent-color-rgb),.2);color:var(--accent-color);transform:translateY(-2px)}@keyframes bounce{0%{left:calc(100vw - 100px);top:50vh;transform:rotate(18deg)}25%{left:50vw;top:calc(100vh - 100px);transform:rotate(108deg)}50%{left:0;top:50vh;transform:rotate(18deg)}75%{left:50vw;top:0;transform:rotate(288deg)}to{left:calc(100vw - 100px);top:50vh;transform:rotate(18deg)}}.projects-section{margin:0 auto;max-width:1200px;padding:2rem 1rem}.projects-section h1{color:#fff}.projects-intro{color:#f0f0f0;margin-bottom:2rem;text-align:center}.projects-intro h2{color:#fff}.projects-intro p{font-size:1.1rem;margin-left:auto;margin-right:auto;max-width:700px}.filter-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-bottom:2rem}.filter-label{font-weight:500}.filter-dropdown,.filter-label{color:#e0e0e0;font-family:var(--font-body);font-size:.9rem}.filter-dropdown{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:rgba(var(--card-background-rgb),.1);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0e0e0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:1rem;border:1px solid rgba(var(--card-background-rgb),.3);border-radius:var(--button-border-radius);cursor:pointer;min-width:150px;padding:.5rem 2rem .5rem 1rem;transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .2s ease}.filter-dropdown:hover{background-color:rgba(var(--accent-color-rgb),.2);box-shadow:0 2px 5px rgba(var(--accent-color-rgb),.1)}.filter-dropdown:focus,.filter-dropdown:hover{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300d4ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");border-color:var(--accent-color);color:var(--accent-color)}.filter-dropdown:focus{background-color:rgba(var(--accent-color-rgb),.1);box-shadow:0 0 0 2px rgba(var(--accent-color-rgb),.3);outline:none}.filter-dropdown option{background-color:var(--card-background);color:var(--foreground);padding:.5rem}.filter-btn{background-color:rgba(var(--card-background-rgb),.1);border:1px solid rgba(var(--card-background-rgb),.3);border-radius:var(--button-border-radius);color:#e0e0e0;cursor:pointer;font-family:var(--font-body);font-size:.9rem;padding:.5rem 1rem;transition:background-color .3s ease,color .3s ease,transform .1s ease-out,box-shadow .2s ease}.filter-btn:hover{background-color:rgba(var(--accent-color-rgb),.2);box-shadow:0 2px 5px rgba(var(--accent-color-rgb),.1);color:var(--accent-color)}.filter-btn.active{background-color:var(--accent-color);border-color:var(--accent-color);box-shadow:0 2px 8px rgba(var(--accent-color-rgb),.3);color:var(--button-text-color);font-weight:700}.filter-btn:active{background-color:rgba(var(--accent-color-rgb),.5);box-shadow:inset 0 1px 3px #0003;transform:scale(.96)}.project-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}@keyframes card-appear{0%{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.project-card{animation:card-appear .5s ease-out forwards;background-color:var(--card-background);border:2px solid #0000;border-radius:.75rem;box-shadow:0 5px 15px var(--shadow-color);color:var(--foreground);display:flex;flex-direction:column;opacity:0;overflow:hidden;transform:scale(.95) translateY(20px);transition:transform .3s ease-out,box-shadow .3s ease-out,border-color .3s ease-out}.project-card:hover{border-color:var(--accent-color);box-shadow:0 10px 20px rgba(var(--accent-color-rgb),.2);transform:translateY(-5px) scale(1.01)}.project-card .project-img-container{height:200px;overflow:hidden;width:100%}.project-card .project-img-container img{object-fit:cover;transform-origin:top;transition:transform .3s ease,filter .3s ease;width:100%}.project-card:hover .project-img-container img{filter:brightness(1.05);transform:scale(1.05)}.project-category{color:rgba(var(--foreground-rgb),.6);font-family:var(--font-body);font-size:.8rem;font-style:italic;margin-bottom:.5rem;padding:0 0 .5rem}.project-card-content{display:flex;flex-direction:column;flex-grow:1;padding:1.25rem}.project-card-content h3{color:var(--project-tile);font-size:1.25rem;margin-bottom:.1rem}.project-card-content p{color:rgb(var(--foreground-rgb));flex-grow:1;font-size:.9rem;margin-bottom:1rem}.project-tech-stack{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tech-tag{background-color:rgba(var(--accent-color-rgb),.1);border-radius:.25rem;color:var(--accent-color);display:inline-block;font-family:var(--font-body);font-size:.75rem;padding:.25rem .5rem;transition:transform .2s ease-out,background-color .2s ease-out,color .2s ease-out}.tech-tag:hover{background-color:rgba(var(--accent-color-rgb),.2);color:var(--accent-color);transform:scale(1.08)}.tech-tag span{cursor:default;pointer-events:none}.project-links{display:flex;gap:.75rem;margin-top:auto}nav{align-items:flex-end;display:flex;justify-content:flex-end;min-height:4.5rem;width:100vw}nav,nav a{color:#f0f0f0}nav a:hover{color:var(--accent-color)}nav a:before{background-color:var(--accent-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:scaleX(0);transform-origin:left;transition:transform .3s ease;width:100%}a:hover:before{transform:scaleX(1)}button .theme-switch svg{transition:all 1s ease-in-out}button:focus-visible .theme-switch svg,button:hover .theme-switch svg{animation:rotate 2s linear infinite forwards}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}nav .hamburger{background-color:initial;border:none;cursor:pointer;display:flex;font-size:1.5rem;outline:none;padding:2rem;place-content:center;z-index:2}.ex{stroke:#fff;stroke-width:3;stroke-linecap:round;transform-origin:50% 50%;transition:transform .5s ease-in-out}.top{transform:translateY(-25%)}.bottom{transform:translateY(25%)}.one{transform:rotate(45deg)}.two{transform:scaleX(.1)}.three{transform:rotate(-45deg)}nav ul{align-items:flex-start;background:rgb(var(--background-end-rgb));border-radius:0 0 0 .5rem;display:flex;flex-direction:column;gap:2rem;list-style:none;margin:0;opacity:0;padding:2rem;position:absolute;right:0;top:0;transform:translateX(300px);width:50%;z-index:2}nav ul,nav ul.nav-open{transition:transform .5s}nav ul.nav-open{box-shadow:none;opacity:1;transform:translateX(0)}nav ul i{cursor:pointer;font-size:2rem;padding:1rem}nav ul li{align-items:center;display:grid;font-size:1.5rem;width:100%}nav ul li a{color:#f0f0f0}nav ul li a.current,nav ul li a:hover{color:var(--accent-color)}nav ul li.current a:before{background-color:var(--accent-color);transform:scaleX(1)}.text-tile{background:#e0e0e0;border-radius:1rem;color:#4c4c4c;margin:2em auto;max-width:750px;padding:2em}.text-tile h1,.text-tile h2,.text-tile h3{color:var(--project-tile)}.text-tile a{color:var(--accent-color)}.text-tile a:hover{color:rgba(var(--accent-color-rgb),.8)}.text-tile a{color:#4c4c4c;font-size:2rem;padding:.5rem;text-align:center}.primary-section{border-radius:30px;color:#4c4c4c;display:flex;flex-direction:column;padding:2rem 1rem;place-content:center;position:relative;z-index:1}#links{padding-top:2rem;text-align:center}#profile-pic{background-image:"../Profile.jpg"}ul{text-align:left}li p{margin:1rem}.flex-cards{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-top:2em}#spinner{fill:var(--foreground)}#em1,#em2,#em3{transform-origin:center}#em1{animation:bumpUp 1s infinite both}@keyframes bumpUp{0%{opacity:0;transform:translate(-17%,38%)}50%{opacity:1}70%{transform:translate(-17%)}to{transform:translate(0)}}#em2{animation:flipOver 1s infinite both}@keyframes flipOver{0%,10%{transform:rotate(0)}to{transform:rotate(180deg)}}#em3{animation:duckOut 1s infinite both}@keyframes duckOut{0%,10%{transform:rotate(180deg)}to{opacity:0;transform:rotate(180deg) translate(-10%,-30%)}}@media (min-width:600px){p{font-size:1.25rem}nav ul{align-items:center;background:none;display:flex;flex-direction:row;font-size:.5rem;gap:2rem;height:unset;justify-content:space-around;list-style:none;margin-right:2rem;opacity:1;position:relative;right:unset;top:unset;transform:translateX(0);width:unset}nav ul.nav-open{box-shadow:none;display:flex}nav ul li{font-size:1.2rem;margin:0;width:auto}nav .hamburger{display:none}}@media (min-width:900px){.primary-section{padding:5rem 5rem 1rem}.text-tile h1{font-size:2rem;margin-bottom:2rem}.text-tile{font-size:1.4rem}nav ul{gap:4rem}nav ul li{margin:0}.skills-card h3,nav ul li{font-size:1.5rem}}.custom-dropdown{background-color:rgba(var(--card-background-rgb),.1);border:1px solid rgba(var(--card-background-rgb),.3);border-radius:var(--button-border-radius);color:#e0e0e0;cursor:pointer;display:inline-block;font-family:var(--font-body);font-size:.9rem;min-width:150px;outline:none;padding:.5rem 2rem .5rem 1rem;position:relative;transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .2s ease}.custom-dropdown:hover{background-color:rgba(var(--accent-color-rgb),.2);box-shadow:0 2px 5px rgba(var(--accent-color-rgb),.1)}.custom-dropdown:focus,.custom-dropdown:hover{border-color:var(--accent-color);color:var(--accent-color)}.custom-dropdown:focus{background-color:rgba(var(--accent-color-rgb),.1);box-shadow:0 0 0 2px rgba(var(--accent-color-rgb),.3)}.custom-dropdown:focus .dropdown-arrow,.custom-dropdown:hover .dropdown-arrow{border-top-color:var(--accent-color)}.dropdown-selected{pointer-events:none;-webkit-user-select:none;user-select:none}.dropdown-arrow{border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid #e0e0e0;height:0;pointer-events:none;position:absolute;right:.75rem;top:50%;transform:translateY(-50%);transition:border-top-color .3s ease,transform .2s ease;width:0}.custom-dropdown.open .dropdown-arrow{transform:translateY(-50%) rotate(180deg)}.dropdown-options{background-color:var(--card-background);border:1px solid rgba(var(--card-background-rgb),.3);border-radius:0 0 var(--button-border-radius) var(--button-border-radius);border-top:none;box-shadow:0 4px 8px #0003;left:0;list-style:none;margin:0;max-height:200px;overflow-y:auto;padding:0;position:absolute;right:0;top:100%;z-index:1000}.dropdown-option{color:var(--foreground);cursor:pointer;outline:none;padding:.5rem 1rem;transition:background-color .2s ease,color .2s ease}.dropdown-option.focused,.dropdown-option:focus,.dropdown-option:hover{background-color:rgba(var(--accent-color-rgb),.1);color:var(--accent-color)}.dropdown-option.selected{background-color:rgba(var(--accent-color-rgb),.2);color:var(--accent-color);font-weight:600}.dropdown-option.selected.focused{background-color:rgba(var(--accent-color-rgb),.3)}.dropdown-option:last-child{border-radius:0 0 var(--button-border-radius) var(--button-border-radius)}
/*# sourceMappingURL=main.6e6e9b90.css.map*/