*{font-family:neue-haas-grotesk-display,sans-serif;color:#1c1c1c}body{margin:0;padding:0;box-sizing:border-box}.home-link{font-weight:600;text-decoration:none}nav ul{list-style:none;display:flex;flex-direction:row;gap:0;margin:0;padding:0}nav ul li{margin-right:.25em}nav ul li a{font-weight:600;opacity:.5;text-decoration:none}nav ul li a.router-link-active{opacity:1}.portfolio-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding:0 20px;box-sizing:border-box;height:60px}.nav-left{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:40%}.project-nav{display:flex;align-items:center;gap:.75em}.project-nav-name{font-weight:600;font-size:14px;text-transform:uppercase}.project-nav-arrow{font-weight:600;text-decoration:none;opacity:1}.project-nav-arrow.disabled{opacity:.3}main{display:flex;flex-direction:row;height:calc(100vh - 120px)}footer{height:60px;margin-right:20px}main ul{list-style:none;width:40%;margin:0 20px;padding:0;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;text-transform:uppercase;font-weight:600}.preview{flex:1;margin-right:20px}main ul li{display:flex;gap:1em;font-size:14px;margin-bottom:5px;opacity:.5}main ul li a{display:flex;gap:1em;text-decoration:none;color:inherit;width:100%}main ul li .num{text-align:left;min-width:2em}main ul li:hover,main ul li.active{opacity:1}main ul li{position:relative}main ul li.active:before{content:"";position:absolute;left:-1em;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:#1c1c1c}@media(max-width:768px){.portfolio-header{height:auto;padding:16px 20px}.nav-left{width:100%;justify-content:space-between}.project-nav{display:none}main{flex-direction:column;height:auto;min-height:calc(100vh - 120px)}main ul{width:100%;margin:0;padding:20px;align-items:flex-start}main ul li.active:before{display:none}.preview{width:100%;height:50vw;margin-right:0;padding:0 20px;box-sizing:border-box}footer{height:40px}}.preview img{width:100%;height:100%;object-fit:cover;object-position:top;box-shadow:0 4px 24px #00000026;border-radius:8px}.about{display:flex;flex-direction:column;justify-content:flex-end;padding:0 20px 40px;gap:1.5rem}.about .avatar{width:160px;height:160px;border-radius:50%;flex-shrink:0;background-image:url(/assets/me-BXuKpFDU.jpg);background-size:1000px auto;background-position:-180px -210px;transform:rotate(90deg)}.about h1{font-size:clamp(2rem,4.5vw,4.5rem);font-weight:800;line-height:1.1;margin:0;width:75%}.about h1 em{font-style:italic;font-weight:400}.about .tagline{font-size:1.5rem;margin:0;opacity:.5}@media(max-width:768px){.about{padding:0 20px 40px}.about h1{width:100%}.about .tagline{font-size:1rem}}.contact{display:flex;flex-direction:column;justify-content:center;padding:0 20px 0 calc(40% - 20px);gap:2rem}.contact h1{font-size:clamp(2rem,5vw,5rem);font-weight:800;line-height:1;margin:0}.contact-footer{display:flex;justify-content:flex-start;align-items:flex-end;gap:3rem}.contact-footer-left{display:flex;flex-direction:column;gap:.25rem}.contact-footer-left .label{font-size:.75rem;font-weight:600;text-transform:uppercase;opacity:.5}.contact-footer-left .dash{opacity:.4}.contact-footer-left a{font-size:.9rem;font-weight:600;text-decoration:none;border-bottom:1px solid #1C1C1C;padding-bottom:2px;align-self:flex-start}.contact-footer-right{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem}.contact-footer-right a{font-size:1rem;text-decoration:none;opacity:.6}.contact-footer-right a:hover{opacity:1}@media(max-width:768px){.contact{padding:20px 20px 40px;justify-content:flex-start;gap:1.5rem;height:auto;overflow-y:auto}.contact h1{font-size:clamp(2rem,8vw,4rem)}.contact-footer{flex-direction:column;align-items:flex-start;gap:1.5rem}}.gallery-page{flex-direction:column;padding-bottom:2em;height:100%}.gallery-title{width:100%;text-align:center}.gallery-desc{font-size:1.3rem;width:50%;margin:0 auto;text-align:center;line-height:1.6}.gallery-desc:last-child{margin-top:20px}.gallery{display:flex;align-items:center;flex:1;width:100%}.gallery img{flex:1;width:0;aspect-ratio:16/9;object-fit:cover;object-position:top;box-shadow:0 4px 24px #00000026;border-radius:8px;cursor:pointer}.arrow{flex-shrink:0;padding:0 1.5em;background:none;border:none;font-size:1.5em;cursor:pointer;font-family:inherit;font-weight:600;opacity:.5}.arrow:hover:not(:disabled){opacity:1}.arrow:disabled{opacity:.2;cursor:default}@media(max-width:768px){.gallery-page{height:auto;padding-top:1em}.gallery-desc{width:90%;font-size:1rem}.arrow{padding:0 .75em}}.gallery-page[data-v-4eae6784]{flex-direction:column;padding-bottom:2em;height:100%}.gallery-title[data-v-4eae6784]{width:100%;text-align:center}.gallery-desc[data-v-4eae6784]{font-size:1.3rem;width:50%;margin:0 auto;text-align:center;line-height:1.6}.gallery-desc[data-v-4eae6784]:last-child{margin-top:20px}.gallery[data-v-4eae6784]{display:flex;align-items:center;flex:1;width:100%}.gallery img[data-v-4eae6784]{flex:1;width:0;aspect-ratio:16/9;object-fit:cover;object-position:top;box-shadow:0 4px 24px #00000026;border-radius:8px;cursor:pointer}.arrow[data-v-4eae6784]{flex-shrink:0;padding:0 1.5em;background:none;border:none;font-size:1.5em;cursor:pointer;font-family:inherit;font-weight:600;opacity:.5}.arrow[data-v-4eae6784]:hover:not(:disabled){opacity:1}.arrow[data-v-4eae6784]:disabled{opacity:.2;cursor:default}.lightbox[data-v-4eae6784]{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:100;cursor:pointer}.lightbox img[data-v-4eae6784]{max-height:90vh;max-width:90vw;object-fit:contain;cursor:default}@media(max-width:768px){.gallery-page[data-v-4eae6784]{padding-top:1em}.gallery-desc[data-v-4eae6784]{width:90%;font-size:1rem}.arrow[data-v-4eae6784]{padding:0 .75em}}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:5px}.grid img{width:100%;display:block;aspect-ratio:4/5;object-fit:cover;cursor:pointer}.lightbox{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:100;cursor:pointer}.lightbox img{max-height:90vh;max-width:90vw;object-fit:contain;cursor:default}
