*,*:before,*:after{box-sizing:border-box}@font-face{font-family:Okinesans;src:url(/assets/MADEOkineSansPERSONALUSE-Medium-DmSMH8cf.otf)}@font-face{font-family:NeueHaas;src:url(/assets/NeueHaasDisplayMediu-D3hlmfAS.ttf)}@font-face{font-family:Baguede;src:url(/assets/BaguedeRounded-Regular-CrYwncrY.otf)}:root{--ff-primary: "Okinesans", sans-serif;--ff-secondary: "NeueHaas", sans-serif;--fw-reg: 400;--fw-medium: 500;--fw-bold: 700;--clr-black: #000000;--clr-white: #fafafa;--clr-gray-light: #f5f5f5;--clr-gray: #666666;--clr-gray-dark: #333333;--fs-h1: 3rem;--fs-h2: 2.25rem;--fs-h3: 1.25rem;--fs-body: 1rem}@media (min-width: 800px){:root{--fs-h1: 4.5rem;--fs-h2: 3.75rem;--fs-h3: 1.5rem;--fs-body: 1.125rem}}body{background-color:var(--clr-white);color:var(--clr-black);margin:0;font-family:var(--ff-primary);font-size:var(--fs-body);line-height:1.6}section{padding:5em 2em}img{display:block;max-width:100%}strong{font-weight:var(--fw-bold);letter-spacing:.1rem}:focus{outline:2px solid var(--clr-black);outline-offset:3px}.btn{display:inline-block;padding:1em 3em;background:var(--clr-black);color:var(--clr-white);text-decoration:none;cursor:pointer;font-size:.9rem;text-transform:uppercase;letter-spacing:2px;font-weight:var(--fw-medium);border:2px solid var(--clr-black);transition:all .2s ease}.btn:hover{background:var(--clr-white);color:var(--clr-black)}h1,h2,h3{line-height:1.1;margin:0;font-weight:var(--fw-bold)}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}p{color:var(--clr-gray-dark);font-family:var(--ff-secondary)}.container{max-width:1200px;margin:0 auto;padding:0 20px}.section-title{margin-bottom:1em;text-transform:uppercase;letter-spacing:.05em}header{display:flex;justify-content:space-between;align-items:center;padding:1.5em 2em;border-bottom:2px solid var(--clr-black);background:var(--clr-white);position:sticky;top:0;z-index:99}@media (max-width: 768px){header{padding:1em}}.logo-link{text-decoration:none;color:var(--clr-black)}.logo{font-size:1.5rem;font-weight:var(--fw-bold);letter-spacing:.1em}.nav{position:fixed;background:var(--clr-black);color:var(--clr-white);top:0;bottom:0;left:0;right:0;z-index:100;transform:translate(100%);transition:transform .25s ease}.nav__list{list-style:none;display:flex;height:100%;flex-direction:column;justify-content:space-evenly;align-items:center;margin:0;padding:0}.nav__link{color:inherit;font-weight:var(--fw-bold);font-size:var(--fs-h2);text-decoration:none;text-transform:uppercase;letter-spacing:.05em;transition:color .2s ease;position:relative}.nav__link:hover{color:var(--clr-gray)}.nav__link.active:after{content:"";position:absolute;bottom:-10px;left:0;right:0;height:3px;background:var(--clr-white)}.nav-toggle{padding:.5em;background:transparent;border:0;cursor:pointer;position:absolute;right:2em;top:2em;z-index:1000}.nav-open .nav{transform:translate(0)}.nav-open .nav-toggle{position:fixed}.nav-open .hamburger{transform:rotate(.625turn);background:var(--clr-white)}.nav-open .hamburger:before{transform:rotate(90deg) translate(-6px);background:var(--clr-white)}.nav-open .hamburger:after{opacity:0}.hamburger{display:block;position:relative}.hamburger,.hamburger:before,.hamburger:after{background:var(--clr-black);width:2em;height:2px;transition:all .25s ease}.hamburger:before,.hamburger:after{content:"";position:absolute;left:0;right:0}.hamburger:before{top:8px}.hamburger:after{bottom:8px}footer{background-color:var(--clr-black);width:100%;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:10rem;color:var(--clr-white);margin-bottom:0;padding:6rem;border-top:2px solid var(--clr-black)}footer h1{letter-spacing:.1rem;font-weight:var(--fw-bold)}.wave-letter{display:inline-block;transform:translateY(calc(-10px + 5px * var(--i)))}@media (max-width: 820px){footer{display:flex;flex-direction:row;align-items:center;justify-content:space-around;gap:2em;padding:4em}footer div{margin-bottom:0}footer h1{font-size:2rem}footer h3{font-size:1.2rem}}.home-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2em}.home-content{text-align:center;max-width:800px}.home-role{font-size:.9rem;color:var(--clr-gray);margin-bottom:1em;letter-spacing:.3rem;text-transform:uppercase;font-weight:var(--fw-medium)}.home-name{font-size:5rem;margin-bottom:.5em;letter-spacing:.05em;font-weight:var(--fw-bold)}.home-typing{font-size:1.5rem;color:var(--clr-gray-dark);margin-bottom:3em;min-height:3em;display:flex;align-items:center;justify-content:center}.typing-text{border-bottom:3px solid var(--clr-black);padding-bottom:.1em}.home-nav{display:flex;gap:0;justify-content:center;border:2px solid var(--clr-black)}.home-nav-link{flex:1;padding:1.5em 3em;text-decoration:none;color:var(--clr-black);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.1em;border-right:2px solid var(--clr-black);transition:all .2s ease}.home-nav-link:last-child{border-right:none}.home-nav-link:hover{background:var(--clr-black);color:var(--clr-white)}@media (max-width: 768px){.home-name{font-size:3rem}.home-typing{font-size:1.2rem;min-height:4em}.home-nav{flex-direction:column}.home-nav-link{border-right:none;border-bottom:2px solid var(--clr-black)}.home-nav-link:last-child{border-bottom:none}.home-page{padding:1em}}.projects-page{min-height:100vh;padding:4em 2em;max-width:1400px;margin:0 auto}.filter-buttons{display:flex;justify-content:center;gap:0;margin-bottom:3em;border:2px solid var(--clr-black);width:fit-content;margin-left:auto;margin-right:auto}.filter-btn{padding:1em 2em;background:var(--clr-white);color:var(--clr-black);border:none;border-right:2px solid var(--clr-black);font-size:.9rem;font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all .2s ease;font-family:var(--ff-primary)}.filter-btn:last-child{border-right:none}.filter-btn:hover{background:var(--clr-gray-light)}.filter-btn.active{background:var(--clr-black);color:var(--clr-white)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:2em}@media (max-width: 768px){.projects-page{padding:2em 1em}.page-title{font-size:2rem}.filter-buttons{flex-wrap:wrap;width:100%}.filter-btn{flex:1;min-width:120px;border-right:1px solid var(--clr-black);border-bottom:2px solid var(--clr-black)}.filter-btn:nth-child(2n){border-right:none}.filter-btn:nth-last-child(-n+2){border-bottom:none}.projects-grid{grid-template-columns:1fr}}.portfolio-item{display:flex;flex-direction:column;padding:0;background:var(--clr-white);border:2px solid var(--clr-white);transition:border-color .2s ease}.portfolio-item:hover{border-color:var(--clr-gray)}.project-content{flex:1;padding:1.5em}.portfolio__img{width:100%;height:auto;margin:0 0 1.5em;display:block;transition:opacity .2s ease}.portfolio__img:hover{opacity:.8}.project-tags{display:flex;gap:.5em;margin-bottom:1em;flex-wrap:wrap}.project-tag{font-size:.7rem;padding:.4em .8em;border:1px solid var(--clr-black);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--fw-medium);background:var(--clr-white);transition:all .2s ease}.project-tag:hover{background:var(--clr-black);color:var(--clr-white)}.project-title{font-size:var(--fs-h3);margin-bottom:.5em;color:var(--clr-black);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.05em}.project-description{font-family:var(--ff-secondary);color:var(--clr-gray-dark);margin-bottom:1em;text-align:left;font-weight:var(--fw-reg);line-height:1.6}.project-links{margin-top:auto;display:flex;justify-content:space-between;gap:0;padding:0;border-top:2px solid var(--clr-black)}.demo-link,.github-link{flex:1;display:flex;justify-content:center;align-items:center;gap:.5em;font-size:.85rem;padding:1em;text-decoration:none;background:var(--clr-white);color:var(--clr-black);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.1em;transition:all .2s ease;border-right:1px solid var(--clr-black)}.github-link{border-right:none}.demo-link:hover,.github-link:hover{background:var(--clr-black);color:var(--clr-white)}.demo-link:hover .icon-arrow,.demo-link:hover .icon-repo,.github-link:hover .icon-arrow,.github-link:hover .icon-repo{filter:brightness(0) invert(1)}.icon-arrow,.icon-repo{width:14px;height:14px;transition:filter .2s ease}.about-page{min-height:100vh;padding:4em 2em;max-width:1200px;margin:0 auto}.about-content{display:grid;grid-template-columns:2fr 1fr;gap:4em;margin-top:3em}.about-text{border:2px solid var(--clr-black);padding:3em}.about-intro{font-size:1.3rem;font-weight:var(--fw-medium);margin-bottom:2em;padding-bottom:2em;border-bottom:2px solid var(--clr-black)}.about-text p{margin-bottom:1.5em;line-height:1.8;color:var(--clr-gray-dark)}.skills-section{margin-top:3em;padding-top:3em;border-top:2px solid var(--clr-black)}.skills-title{font-size:1.5rem;margin-bottom:1.5em;text-transform:uppercase;letter-spacing:.05em}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1em}.skill-item{padding:1em;border:1px solid var(--clr-black);text-align:center;font-weight:var(--fw-medium);text-transform:uppercase;font-size:.85rem;letter-spacing:.05em;transition:all .2s ease}.skill-item:hover{background:var(--clr-black);color:var(--clr-white)}.about-image{border:3px solid var(--clr-black);height:fit-content;position:sticky;top:2em}.about-image img{width:100%;display:block}@media (max-width: 968px){.about-page{padding:2em 1em}.about-content{grid-template-columns:1fr;gap:2em}.about-text{padding:2em}.skills-grid{grid-template-columns:repeat(2,1fr)}.about-image{position:relative;top:0}}.contact-page{min-height:100vh;padding:4em 2em;max-width:1000px;margin:0 auto}.page-header{text-align:center;margin-bottom:3em}.page-title{font-size:3rem;margin-bottom:.5em;text-transform:uppercase;letter-spacing:.05em}.page-subtitle{font-size:1.2rem;color:var(--clr-gray);text-transform:uppercase;letter-spacing:.1em}.contact-content{display:grid;grid-template-columns:1fr 1fr;gap:3em;margin-top:3em}.contact-info{border:2px solid var(--clr-black);padding:3em}.contact-section{margin-bottom:3em;padding-bottom:3em;border-bottom:1px solid var(--clr-black)}.contact-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.contact-section h2{font-size:1rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1em;color:var(--clr-gray)}.contact-section p{font-size:1.1rem;color:var(--clr-gray-dark)}.contact-link{display:inline-block;font-size:1.1rem;color:var(--clr-black);text-decoration:none;font-weight:var(--fw-medium);border-bottom:2px solid var(--clr-black);transition:color .2s ease}.contact-link:hover{color:var(--clr-gray)}.contact-social{border:2px solid var(--clr-black);padding:3em}.contact-social h2{font-size:1rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:2em;color:var(--clr-gray)}.social-links{display:flex;flex-direction:column;gap:0}.social-link{display:flex;align-items:center;gap:1.5em;padding:1.5em;text-decoration:none;color:var(--clr-black);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--clr-black);transition:all .2s ease}.social-link:last-child{border-bottom:none}.social-link:hover{background:var(--clr-black);color:var(--clr-white)}.social-link:hover img{filter:invert(1)}.social-link img{width:2em;height:2em;transition:filter .2s ease}@media (max-width: 768px){.contact-page{padding:2em 1em}.contact-content{grid-template-columns:1fr;gap:2em}.contact-info,.contact-social{padding:2em}}
