.app-container{min-height:100vh;display:flex;flex-direction:column}main{flex:1}.footer{text-align:center;color:#000;padding-top:10px;margin-top:auto}.container{width:100%;max-width:1200px;margin:0 auto;padding:10px;box-sizing:border-box}.gallery{width:100%}nav{display:flex;flex-direction:column;align-items:center;padding:0;background-color:transparent}.logo-container{margin-bottom:.5rem}.logo{height:60px;width:auto;display:block}.nav-links{display:flex;justify-content:center;width:100%}.nav-links ul{list-style-type:none;padding:0;margin:0;display:flex;width:auto;flex-wrap:wrap;justify-content:center;gap:10px}.nav-links li{flex:0 1 auto;text-align:center;min-width:120px}.nav-links a{text-decoration:none;color:#000;padding:6px 20px;display:block;border-radius:0;border:1px solid black;transition:background-color .3s,color .3s;box-sizing:border-box;white-space:nowrap}.nav-links a:hover{background-color:#ff0;color:#000}@media (max-width: 768px){nav{padding:1rem 0}.nav-links ul{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px;width:100%;padding:0 10px}.nav-links li{flex:0 1 auto;width:auto;margin:0}.nav-links a{white-space:nowrap}}.list ul{list-style-type:none;padding:0;margin:0}.list ul li{margin:8px 0}.list ul li a{text-decoration:none;color:#007bff;padding:8px 16px;display:block;border-radius:4px;transition:background-color .3s}.list ul li a:hover{background-color:#f0f0f0}.logo{height:2em;padding:.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em rgb(0,234,255))}.card{padding:2em}.projects-container{max-width:1400px;margin:0 auto;padding:32px 16px}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,210px);gap:32px;justify-content:center;width:100%}.year-section{margin-bottom:25px}.year-section-grid{display:grid;grid-template-columns:repeat(auto-fit,210px);gap:32px;justify-content:center}.year-card{cursor:pointer;transition:opacity .3s ease;display:flex;justify-content:center;align-items:center;height:100%;width:100%}.year-title{font-size:2rem;font-weight:400;text-align:center;justify-content:center}.year-subtitle{font-size:1rem;margin:0}.year-section-year-card{cursor:pointer;transition:opacity .3s ease}.year-section-image-container{background-color:#f0f0f0;display:flex;justify-content:center;align-items:center;position:relative}.year-section-title{font-size:1rem;font-weight:400;margin:0}.year-section-close{position:absolute;top:10px;right:10px;font-size:1.2rem}.project-item{transition:opacity .3s ease}.project-card{width:100%;max-width:210px;overflow:hidden;border:1px solid black;transition:all .3s ease}.project-card:hover{background:#ff0}.project-link{text-decoration:none}.project-image-container{width:210px;height:118px;overflow:hidden}.project-image{width:100%;height:100%;object-fit:cover}.project-title{text-align:center;margin-top:8px;font-style:normal;font-weight:400;font-size:1rem;padding-left:0;padding-right:0;color:#000}.image-display-container{display:flex;justify-content:center;align-items:center;padding:1rem;box-sizing:border-box;max-width:100%;overflow:hidden}.image-display{max-width:90%;max-height:90vh;object-fit:contain}.gallery-container{padding:20px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));grid-auto-rows:200px;gap:10px}.gallery-item{position:relative}.gallery-item.tall{grid-row:span 2}.gallery-image{width:100%;height:100%;object-fit:cover;cursor:pointer;position:absolute;top:0;left:0}.lightbox-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000}.lightbox-button{background:none;border:none;color:#fff;cursor:pointer;padding:10px}.lightbox-close{position:absolute;top:20px;right:20px}.lightbox-prev{position:absolute;left:20px}.lightbox-next{position:absolute;right:20px}.lightbox-image-container{max-width:90vw;max-height:90vh;display:flex;align-items:center;justify-content:center}.lightbox-image{max-width:100%;max-height:90vh;object-fit:contain}.lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translate(-50%);color:#fff;padding:8px 16px;border-radius:20px;font-size:14px}.pdf-wrapper{display:flex;justify-content:center;width:100%}.pdf-container{width:300px;padding:15px 20px;border:1px solid black}.pdf-title{font-size:1rem;margin-bottom:8px;margin-top:0;color:#000;text-align:center}.pdf-abstract{color:#000;font-size:.9rem;margin-bottom:12px;text-align:left;line-height:1.3}.pdf-link{display:block;width:120px;margin:0 auto;text-decoration:none;color:#000;padding:6px 20px;border:1px solid black;text-align:center;transition:background-color .3s;background-color:transparent;white-space:nowrap}.pdf-link:hover{background-color:#ff0;color:#000}.project-title-wrapper{width:100%;display:flex;justify-content:center;margin:0}.project-title-container{text-align:center;max-width:80%}.project-main-title{font-size:clamp(18px,3vw,24px);font-weight:400}.project-details{display:flex;flex-direction:column;gap:clamp(2px,1vw,2px)}.project-description{margin:0;text-align:center;font-size:clamp(16px,2vw,16px)}.project-date{margin:0;text-align:center;font-size:clamp(14px,1.5vw,14px)}.random-grid-container{-webkit-user-select:none;user-select:none;z-index:1000;width:fit-content}.random-grid-container.mobile{position:static;left:0;top:0}.random-grid-container.desktop{position:fixed;cursor:grab}.random-grid-container.dragging{cursor:grabbing}.random-grid-wrapper{width:100%;max-width:400px}.random-grid-wrapper.mobile{margin:0 auto}.random-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;aspect-ratio:1/1}.random-grid-item{position:relative;aspect-ratio:1/1;display:block;overflow:hidden;background-color:#f5f5f5}.random-grid-image{width:100%;height:100%;object-fit:cover;transition:all .3s}.random-grid-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#0000;transition:all .3s;pointer-events:none}.random-grid-title{color:#fff;font-size:12px;opacity:0;transition:all .3s;text-align:center;padding:8px}.random-grid-item:hover .random-grid-image{transform:scale(1.05)}.random-grid-item:hover .random-grid-overlay{background:#000000b3!important}.random-grid-item:hover .random-grid-title{opacity:1!important}.random-grid-refresh{width:100%;padding:6px 12px;margin-top:4px;background-color:#fff;border-radius:0;color:#000;border:1px solid black;cursor:pointer;outline:none;font-size:12px}.random-grid-drag-handle{padding:4px;background-color:#fff;border:1px solid black;cursor:grab;text-align:center;font-size:12px;width:100%;color:#000;box-sizing:border-box;margin-bottom:4px}.random-grid-drag-handle.mobile{display:none}.soundcloud-container{position:relative;width:100%;padding-bottom:300px;height:0;overflow:hidden;transition:transform .3s ease;margin:0 auto}.soundcloud-container:hover{transform:scale(1.01)}.soundcloud-iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none;background:#fff}.youtube-container{position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:hidden}.youtube-iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.page-404{padding:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh}.page-404-title{margin-bottom:16px}.page-404-link{color:#000;text-decoration:underline}.contact-page{padding:16px}.contact-text{text-align:center}.contact-link{color:#000;text-decoration:underline}.cv-page{padding-top:30px}.cv-button-container{text-align:center}.cv-button{padding:8px 16px;margin:0 8px;border:1px solid black;background:transparent;cursor:pointer;border-radius:0;outline:none;color:#000}.cv-button.active{background:#000;color:#fff}.resume-main{text-align:left;max-width:800px;margin:0 auto;padding:20px}.resume-header{text-align:center;margin-bottom:20px}.resume-name{margin-bottom:10px}.resume-contact{text-align:center;margin:0 auto 10px;width:100%}.resume-section-header{font-size:16px;font-weight:700;margin-bottom:5px;margin-top:20px}.resume-hr{border:none;border-top:1px solid black;margin:5px 0 15px}.resume-header-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}.resume-bullet-list{list-style-type:none;padding-left:20px;margin:5px 0}.resume-link{color:#000;text-decoration:none}.resume-indent{margin-left:20px}.resume-indent-top{margin-left:20px;margin-top:5px}.resume-section-spacing{margin-bottom:15px}.resume-subsection-spacing{margin-top:15px}.resume-award-category{margin-top:10px;display:block}.home-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;background:#fff}.home-content{position:relative;min-height:100vh;z-index:1;display:flex;flex-direction:column;align-items:center;box-sizing:border-box}.home-main-container{width:100%;max-width:800px;display:flex;flex-direction:column;gap:32px}.home-text-section{padding:24px;width:100%;box-sizing:border-box}.home-text-content{font-size:clamp(1rem,2vw,1.25rem);color:#000;line-height:1.5;word-wrap:break-word;margin-top:1rem;text-align:left}.home-highlight{background-color:#0ff;padding:0;cursor:pointer;display:block;margin-bottom:8px;width:fit-content}.home-black-box{background-color:#000;color:#fff;padding:2px 6px;display:block;line-height:1.4;box-decorating:none;font-weight:400;margin-bottom:16px}.home-thesis-link{color:#ff0}.home-grid-container{padding:24px;width:100%;box-sizing:border-box}.center-flex{display:flex;justify-content:center;align-items:center}.text-center{text-align:center}.transition-opacity{transition:opacity .3s ease}::selection{background:#ff0;color:#000}:root{font-family:Georgia,Times,Times New Roman,serif;line-height:1.5;font-weight:400;color-scheme:light;color:#000000de;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (min-width: 768px){:root{width:50%;margin:auto}}body,html{width:100%;height:100%;margin:0;padding:0}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}h3,h4,p{text-align:left;padding-left:16px;padding-right:16px}ul{text-align:left}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}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}#root{width:100%;height:100%;max-width:1280px;margin:0 auto;text-align:center}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
