@import"https://fonts.googleapis.com/css2?family=Geist+Mono:ital,wght@0,100..900;1,100..900&family=Geist:wght@100..900&family=Yesteryear&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--col-light: #f5f5f5;--col-dark: #0a0a0a}a{text-decoration:none;color:var(--col-dark)}section{padding-bottom:100px;scroll-margin-top:6rem}section h2{padding-bottom:1.5rem;margin-left:3rem}html{font-size:16px}body{font-family:Geist,sans-serif;font-weight:false;line-height:1.65;background:var(--col-light)}p{font-size:1.5em}h1,h2,h3,h4,h5{font-family:Geist,sans-serif;font-weight:true;line-height:1.15}h1,.text-size-h1{font-family:Geist,sans-serif;font-weight:700;margin-top:0;font-size:clamp(3.2rem,6vw,7.59em)}h2,.text-size-h2{font-size:clamp(2.2rem,5vw,5.06em)}h3,.text-size-h3{font-size:clamp(1.6rem,3.2vw,3.38em)}h4,.text-size-h4{font-size:2.25em}h5,.text-size-h5{font-size:1.5em}.text-caption{font-size:.67em}small,.text-small{font-size:.44em}.hand{font-family:Yesteryear,cursive}.hero{min-height:calc(100vh - 80px);display:flex;justify-content:center;align-items:center;flex-direction:column;position:relative;overflow:hidden;padding:0 3rem;text-align:center}.middletext h1,.herosub{visibility:hidden}.herosub{margin-top:200px;font-size:20px}.herosub .hand{font-size:30px}.content{position:absolute;inset:0;pointer-events:none}.flair{position:absolute;opacity:0;transform:translate(-50%,-50%)}@media(max-width:768px){.hero{position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:-20%;background:url(/trail/m.png) 12% 22% / 40px no-repeat,url(/trail/i.png) 72% 18% / 36px no-repeat,url(/trail/h.png) 24% 62% / 42px no-repeat,url(/trail/r.png) 78% 70% / 38px no-repeat,url(/trail/js.png) 58% 30% / 44px no-repeat,url(/trail/python.png) 14% 78% / 46px no-repeat,url(/trail/git.png) 86% 46% / 40px no-repeat;opacity:.25;z-index:0}.hero:after{content:"async  &&  {}  npm i  </>  ===";position:absolute;left:50%;bottom:18%;transform:translate(-50%);font-family:Geist Mono,monospace;font-size:12px;letter-spacing:.12em;color:#0006;white-space:nowrap;z-index:0}.middletext,.herosub{position:relative;z-index:1}}.projectlist{overflow:visible}.projectlist a{display:block}.project{border-top:2px solid var(--col-dark);position:relative;overflow:visible;transition:background-color .4s ease;width:100%}.projectlist a:last-child .project{border-bottom:2px solid var(--col-dark)}.project:hover{background-color:#00000005}.projectinfo{display:flex;align-items:center;justify-content:space-between;margin:0 75px;padding:4rem 0;gap:2rem}.project-num{font-family:Geist Mono,monospace;font-size:14px;color:#888;min-width:40px}.project-title-group{flex:1;margin-left:50px}.project-title-group h3{font-size:4.5rem;font-weight:800;line-height:1;transition:transform .4s cubic-bezier(.16,1,.3,1)}.project-desc{font-size:1.1rem;color:#666;max-width:450px;margin-top:10px;opacity:0;transform:translateY(10px);transition:all .5s cubic-bezier(.16,1,.3,1)}.project:hover .project-desc{opacity:1;transform:translateY(0)}.project:hover h3{transform:translate(10px)}.project-cat{font-family:Geist Mono,monospace;font-size:12px;letter-spacing:.15em;color:#888;text-align:right;min-width:200px;text-transform:uppercase}.project .swipeimage{position:absolute;top:0;left:0;width:clamp(200px,36vw,380px);height:auto;opacity:0;pointer-events:none;z-index:10;filter:drop-shadow(0 20px 40px rgba(0,0,0,.15))}.skill-row{border-top:2px solid var(--col-dark);cursor:pointer;overflow:hidden}.skill-row:last-child{border-bottom:2px solid var(--col-dark)}.skill-header{display:flex;align-items:center;gap:2rem;padding:1.2rem 0;margin:0 75px}.skill-num{font-size:13px;color:#888;font-family:Geist Mono,monospace;min-width:28px}.skill-title{font-size:28px;font-weight:800;flex:1;transition:transform .3s ease-in}.skill-preview{font-size:13px;color:#888;font-family:Geist Mono,monospace;opacity:1;transition:opacity .2s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}.skill-arrow{font-size:22px;font-weight:300;color:#0f0f0f;transition:transform .4s cubic-bezier(.34,1.56,.64,1);line-height:1}.skill-row.open .skill-arrow{transform:rotate(45deg)}.skill-row.open .skill-preview{opacity:0}.skill-row:not(.open):hover .skill-title{transform:translate(8px)}.skill-body{height:0;overflow:hidden;visibility:hidden}.skill-row.open .skill-body{visibility:visible}.skill-inner{display:flex;flex-wrap:wrap;gap:10px;padding:0 0 1.4rem calc(103px + 2rem)}.tag{display:inline-flex;align-items:center;padding:6px 16px;border:1.5px solid #0f0f0f;font-size:13px;font-family:Geist Mono,monospace;font-weight:500;color:#0f0f0f;background:#fff;border-radius:0;opacity:0;transform:translateY(8px)}.tag.highlight{background:#0f0f0f;color:#fff}@media(max-width:768px){.projectinfo{margin:0 1.5rem;padding:3rem 0;flex-wrap:wrap;gap:1rem}.project-title-group{margin-left:0;order:3;width:100%}.project-title-group h3{font-size:2.8rem}.project-desc{opacity:1;transform:none;font-size:1rem}.project-num{order:unset}.project-cat{order:unset;text-align:right;flex:1}.skills{padding:4rem 1.5rem}.skill-title{font-size:22px}.skill-preview{display:none}.skill-inner{padding-left:calc(20px + 1rem);gap:8px}nav{padding:1rem}.nav-links{gap:.5rem;font-size:.75rem}.connect-footer{grid-template-columns:1fr;gap:2rem}.connect-title{font-size:clamp(2.5rem,10vw,4.5rem)}}.about p{font-size:clamp(1.2rem,2.4vw,1.9rem);line-height:2.5;font-weight:600}.about-text{max-width:80rem;margin:0 3rem}.about-text .word{color:#cfcfcf}nav{position:sticky;top:0;z-index:100;display:flex;justify-content:space-between;align-items:center;padding:1.5rem 3rem;font-size:1.1rem;background-color:#f5f5f5cc;backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.05);visibility:hidden}.logo{font-size:1.4rem}.nav-links{display:flex;flex-direction:row;gap:2rem;text-transform:uppercase;font-family:Geist Mono,monospace;font-size:.9rem;letter-spacing:.05em}.nav-links a{opacity:.6;transition:opacity .3s ease}.nav-links a:hover{opacity:1}.connect{min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;padding:4rem 3rem;background-color:var(--col-light)}.connect-header{margin-top:auto;margin-bottom:auto}.connect-title{display:block;font-family:Geist Mono,monospace;font-size:clamp(4rem,15vw,16rem);line-height:.85;letter-spacing:-.04em;color:var(--col-dark);transition:opacity .3s ease}.connect-title:hover{opacity:.7}.connect-arrow{color:#ff2d00}.connect-footer{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;border-top:2px solid var(--col-dark);padding-top:2rem;margin-top:4rem}.footer-label{font-family:Geist Mono,monospace;font-size:13px;color:#888;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.05em}.footer-link,.footer-status{display:block;font-size:1.2rem;font-weight:500;color:var(--col-dark);margin-bottom:.5rem;transition:transform .2s ease}.footer-link:hover{transform:translate(5px)}@media(max-width:1024px){section h2{margin-left:2rem}.hero{padding:0 2rem}.projectinfo,.skill-header{margin:0 2rem}.project-title-group{margin-left:24px}.skill-inner{padding-left:calc(3.5rem + 28px)}.connect{padding:3rem 2rem}}@media(max-width:768px){.hero{position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:-20%;background:url(/trail/m.png) 12% 22% / 40px no-repeat,url(/trail/i.png) 72% 18% / 36px no-repeat,url(/trail/h.png) 24% 62% / 42px no-repeat,url(/trail/r.png) 78% 70% / 38px no-repeat,url(/trail/js.png) 58% 30% / 44px no-repeat,url(/trail/python.png) 14% 78% / 46px no-repeat,url(/trail/git.png) 86% 46% / 40px no-repeat;opacity:.25;z-index:0}.hero:after{content:"async  &&  {}  npm i  </>  ===";position:absolute;left:50%;bottom:18%;transform:translate(-50%);font-family:Geist Mono,monospace;font-size:12px;letter-spacing:.12em;color:#0006;white-space:nowrap;z-index:0}.middletext,.herosub{position:relative;z-index:1}.herosub{visibility:hidden}.projectinfo{margin:0 1.5rem;padding:3rem 0;flex-wrap:wrap;gap:1rem}.project-title-group{margin-left:0;order:3;width:100%}.project-title-group h3{font-size:2.8rem}.project-desc{opacity:1;transform:none;font-size:1rem}.project-num{order:1}.project-cat{order:2;text-align:right;flex:1}.skills{padding:4rem 1.5rem}.skill-title{font-size:22px}.skill-preview{display:none}.skill-inner{padding-left:calc(20px + 1rem);gap:8px}nav{padding:1rem}.nav-links{gap:.5rem;font-size:.75rem}.connect{margin:0;min-height:60vh;padding:2rem 1.5rem}.connect-footer{grid-template-columns:1fr;gap:2rem}.connect-title{font-size:clamp(2.5rem,10vw,4.5rem)}.about-text{margin:0 1rem}}@media(max-width:480px){section{padding-bottom:64px}section h2{margin-left:1rem}.hero{min-height:80vh;padding:0 1rem}.herosub{margin-top:120px;font-size:16px;display:none}.herosub .hand{font-size:22px}.projectinfo{margin:0 1rem;padding:2.5rem 0;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"num cat" "title title";align-items:start;gap:.75rem 1rem}.project-num{min-width:28px;grid-area:num;order:unset}.project-cat{min-width:140px;grid-area:cat;justify-self:end;text-align:right;order:unset}.project-title-group{grid-area:title;width:100%;margin-left:0}.skill-header{margin:0 1rem}.skill-title{font-size:20px}.connect{padding:2.5rem 1rem}.footer-link,.footer-status{font-size:1rem}}@media(pointer:fine){html,body,a,button,.project,.skill-header,.footer-link{cursor:none!important}.custom-cursor{position:fixed;top:0;left:0;width:18px;height:18px;background-color:#fff;border-radius:50%;pointer-events:none;z-index:9999;mix-blend-mode:difference;display:block}}@media(pointer:coarse){.custom-cursor{display:none}}
