*,*:before,*:after{box-sizing:border-box}*{margin:0}img,svg,picture{display:block;max-width:100%}html{-webkit-text-size-adjust:100%}body{min-height:100vh;display:flex;flex-direction:column;font-family:Arial,Helvetica,sans-serif;color:#000;background:#fff;-webkit-font-smoothing:antialiased}a{color:inherit}.content{flex:1 0 auto}body.no-scroll{overflow:hidden}.site-header{padding-top:.5rem}.header-inner{display:flex;height:3.5rem;align-items:center;justify-content:space-between;gap:3rem}.brand{padding-left:1rem;font-size:1.875rem;font-weight:300;text-decoration:underline}.nav-desktop{display:none;gap:1.5rem}.nav-desktop a{font-size:1.5rem;font-weight:300;text-decoration:none}.nav-desktop a:hover{text-decoration:underline}.menu-toggle{display:inline-flex;align-items:center;justify-content:center;margin-right:.5rem;padding:.5rem;background:none;border:0;border-radius:.375rem;color:inherit;cursor:pointer}.menu-toggle:hover{background:#0000000d}.menu-backdrop{position:fixed;inset:0;background:#00000080;opacity:0;visibility:hidden;transition:opacity .3s ease;z-index:40}.menu-backdrop.is-open{opacity:1;visibility:visible}.mobile-menu{position:fixed;top:0;right:0;height:100%;width:18rem;max-width:80vw;padding:3.5rem 1.5rem 1.5rem;background:#fff;border-left:1px solid #e5e5e5;box-shadow:-4px 0 16px #0000001a;transform:translate(100%);transition:transform .3s ease;z-index:50;display:flex;flex-direction:column;gap:1rem}.mobile-menu.is-open{transform:translate(0)}.mobile-menu a{font-size:1.125rem;text-decoration:none}.mobile-menu a:hover{text-decoration:underline}.menu-close{position:absolute;top:.75rem;right:1rem;padding:.25rem;background:none;border:0;color:inherit;cursor:pointer}@media(min-width:1024px){.header-inner{justify-content:flex-start}.nav-desktop{display:flex}.menu-toggle{display:none}}.site-footer{display:flex;flex-direction:row;justify-content:space-between;padding-top:1rem;padding-bottom:1rem;flex-shrink:0}.footer-left{margin-left:1.5rem}.footer-left a{text-decoration:none}.footer-left a:hover{text-decoration:underline}.footer-left a+a{margin-left:1rem}.footer-right{text-align:right;font-size:.875rem;font-weight:300;margin-right:1.5rem;margin-bottom:.5rem}.home-wrap{width:100%;padding-top:1.5rem;padding-bottom:1.5rem}.project-grid{display:grid;grid-template-columns:1fr;width:100%;border:1px solid #000}.project-card{display:flex;flex-direction:column;position:relative;overflow:hidden;text-decoration:none;color:inherit}.project-card+.project-card{border-top:1px solid #000}.card-info{padding:1rem;border-bottom:1px solid #000}.card-title{font-size:.875rem;font-weight:300;text-transform:uppercase}.card-subtitle{font-size:.875rem;font-weight:300;text-transform:uppercase;color:#737373}.card-image{position:relative;aspect-ratio:1 / 1;border-bottom:1px solid #000}.card-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.project-card:not(:nth-last-child(-n+2)) .card-image{margin-bottom:2rem}.project-card.is-university .card-title{font-weight:500}.project-card.is-university .card-subtitle{color:#2563eb}@media(min-width:768px){.project-grid{grid-template-columns:1fr 1fr}.project-card+.project-card{border-top:0}.project-card:nth-child(2n){border-left:1px solid #000}}.project{max-width:56rem;margin:0 auto;min-height:100%}@media(min-width:640px){.project{padding-top:2rem;padding-bottom:2rem}}.project-head{padding-left:1rem;padding-right:1rem}.back-link{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:.75rem;font-weight:300;text-decoration:none}.back-link:hover{text-decoration:underline}.project-title{font-size:1.25rem;font-weight:300;margin-bottom:.5rem}.project-meta{font-size:.875rem;font-weight:300;margin-bottom:1.5rem}.project-body p{font-size:.875rem;font-weight:300;margin-bottom:1.5rem;line-height:1.5}@media(min-width:640px){.back-link{font-size:.875rem}.project-title{font-size:1.875rem}.project-meta,.project-body p{font-size:1rem}}.project-gallery{display:grid;grid-template-columns:1fr;gap:1.5rem;padding-left:1rem;padding-right:1rem}@media(min-width:640px){.project-gallery{gap:2rem}}.gallery-item{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer}.gallery-item img{width:100%;max-height:80vh;object-fit:contain;margin:0 auto}@media(min-width:768px){.gallery-item img{width:auto;max-width:100%}}.lightbox{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:1rem;background:#000000bf}.lightbox.is-open{display:flex}.lightbox-figure{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.lightbox-img{max-width:100%;max-height:100%;object-fit:contain;opacity:0;transition:opacity .3s ease;pointer-events:none}.lightbox-img.is-visible{opacity:1}.lightbox-btn{position:absolute;z-index:10;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;color:#fff;background:#00000080;border:0;border-radius:9999px;cursor:pointer}.lightbox-btn:hover{background:#000000bf}.lightbox-close{top:1rem;right:1rem}.lightbox-prev{bottom:1rem;left:1rem}.lightbox-next{bottom:1rem;right:1rem}@media(min-width:768px){.lightbox-prev{top:50%;bottom:auto;left:1rem;transform:translateY(-50%)}.lightbox-next{top:50%;bottom:auto;right:1rem;transform:translateY(-50%)}}.legal{max-width:48rem;margin:0 auto;padding:2rem 1rem}.legal h1{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem}.legal section{margin-bottom:2rem}.legal h2{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.legal h3{font-weight:600;margin-top:1rem;margin-bottom:.25rem}.legal p{margin-bottom:.5rem;line-height:1.5}.legal ul{list-style:disc;list-style-position:inside;margin-top:.5rem;margin-bottom:1rem}.legal li{margin-bottom:.25rem}.legal a{text-decoration:underline}.legal .stand{font-size:.875rem;color:#4b5563}.about{max-width:56rem;margin:0 auto;padding:2rem 1rem}.about-photo{width:100%;max-width:24rem;margin:0 auto}.about-photo img{width:100%;height:auto;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.about-text{margin-top:2rem;display:flex;flex-direction:column;gap:1.5rem;font-size:.875rem;line-height:1.625;text-align:justify}.about-social{display:flex;gap:1rem;justify-content:flex-end}.about-social a{text-decoration:none}.about-social a:hover{color:#4b5563}@media(min-width:768px){.about-text{font-size:1rem}}@media(min-width:1024px){.about-photo{margin-bottom:3rem}.about-social{padding-top:3rem}}
