@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500&family=JetBrains+Mono:wght@400;500&family=Manrope:wght@300;400;600;700&display=swap";@property --tech-stack-border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@property --project-border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#131313;--surface:#1c1b1b;--surface-raised:#242323;--text:#fafafa;--text-muted:#aaa8ad;--accent:#14f195;--accent-secondary:#9945ff;--accent-gradient:linear-gradient(110deg, var(--accent-secondary), var(--accent));--border:#ffffff1a;--page-width:1200px;--page-gutter:clamp(1.25rem, 5vw, 4rem);--section-space:clamp(6.5rem, 11vw, 9rem);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:4rem}body{background:var(--background);min-width:320px;color:var(--text);margin:0;overflow-x:hidden}body,button,a{-webkit-font-smoothing:antialiased}button,a{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}img,svg{display:block}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background:var(--background)}::-webkit-scrollbar-thumb{background:#343232;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.page-shell{width:min(100%, calc(var(--page-width) + var(--page-gutter) * 2));padding-inline:var(--page-gutter);margin-inline:auto}.eyebrow,.section-index,.nav-link,.text-link,.social-links,.footer{letter-spacing:.07em;text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:500}h1,h2,h3,p{margin:0}h2,h3{letter-spacing:-.025em;font-family:Manrope,sans-serif;font-weight:400}h2{font-size:clamp(2rem,4vw,3.2rem);line-height:1.16}h3{font-size:clamp(1.6rem,2.5vw,2.2rem);line-height:1.2}.section{padding-block:var(--section-space)}[data-reveal]{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(1.8rem)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.hero{background:var(--background);isolation:isolate;place-items:center;width:100%;min-height:100svh;display:grid;position:relative;overflow:hidden}.particle-network{z-index:-1;width:100%;height:100%;position:absolute;inset:0}.hero__content{text-align:center;flex-direction:column;align-items:center;width:min(92vw,1600px);display:flex}.hero-avatar{isolation:isolate;background:var(--background);border-radius:50%;width:clamp(20rem,10vw,10rem);margin-bottom:clamp(1.5rem,3vw,2.25rem);padding:3px;animation:.7s cubic-bezier(.21,1.11,.81,.99) .1s both avatar-enter;position:relative;overflow:hidden;box-shadow:0 0 0 6px #131313b8,0 0 34px #9945ff33,0 0 42px #14f1951a}.hero-avatar:before{z-index:-1;content:"";background:conic-gradient(#14f195 0deg 55deg,#9945ff 145deg,#14f195 235deg,#9945ff 325deg,#14f195 360deg);animation:4.5s linear infinite avatar-border-spin;position:absolute;inset:-55%}.hero-avatar img{z-index:1;aspect-ratio:1;border-radius:inherit;object-fit:cover;width:100%;image-rendering:pixelated;display:block;position:relative}.hero h1{letter-spacing:-.045em;font-family:Manrope,sans-serif;font-size:clamp(2.45rem,5.3vw,5.75rem);font-weight:300;line-height:1.12}.hero__line{background:#1313132e;width:fit-content;margin-inline:auto;padding-inline:.1em;animation-duration:1.15s;animation-timing-function:cubic-bezier(.21,1.11,.81,.99);animation-fill-mode:both;display:block}.hero__line--one{animation-name:enter-left}.hero__line--two{white-space:nowrap;max-width:100%;animation-name:enter-right;animation-delay:.1s}.hero strong{background:var(--accent-gradient);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:600}.hero-cta{background:linear-gradient(#131313b8, #131313b8) padding-box, var(--accent-gradient) border-box;min-height:3.35rem;color:var(--accent);border:2px solid #0000;border-radius:2px;align-items:center;gap:.9rem;margin-top:clamp(2rem,4vw,3rem);padding:.85rem 1.8rem;font-size:1rem;font-weight:500;transition:color .22s,background .22s,transform .22s;animation:.7s cubic-bezier(.21,1.11,.81,.99) .9s both enter-up;display:inline-flex;position:relative}.hero-cta:before,.hero-cta:after{z-index:-1;border:1px solid var(--accent);content:"";opacity:0;border-radius:2px;transition:opacity .5s,transform .75s;position:absolute;inset:-2px}.hero-cta:after{border-color:var(--accent-secondary)}.hero-cta:hover{background:var(--accent-gradient) border-box;color:#090909;transform:translateY(-2px)}.hero-cta:hover:before,.hero-cta:hover:after{opacity:.24;transform:scale(1.24,1.65)}.hero-cta:hover:after{transition-delay:.1s}.icon-arrow{width:1.1rem;height:1.1rem;transition:transform .2s}.icon-arrow--down{transform:rotate(90deg)}.icon-arrow--up-right{transform:rotate(-45deg)}.hero-cta:hover .icon-arrow--down{transform:rotate(90deg)translate(3px)}@keyframes enter-left{0%{opacity:0;transform:translate(-6rem)}}@keyframes avatar-enter{0%{opacity:0;transform:translateY(1.25rem)scale(.88)}}@keyframes avatar-border-spin{to{transform:rotate(1turn)}}@keyframes enter-right{0%{opacity:0;transform:translate(6rem)}}@keyframes enter-up{0%{opacity:0;transform:translateY(2rem)}}.site-nav{z-index:50;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1c1b1bed;height:4rem;position:sticky;top:0;box-shadow:0 4px 14px #0000003d}.site-nav__inner{justify-content:space-between;align-items:center;width:100%;height:100%;display:flex}.wordmark{letter-spacing:-.04em;font-family:Manrope,sans-serif;font-size:1.3rem;font-weight:500}.nav-links{align-items:center;gap:clamp(1.4rem,3vw,2.6rem);display:flex}.nav-link{min-height:2.75rem;color:var(--text-muted);align-items:center;transition:color .18s;display:inline-flex;position:relative}.nav-link:after{background:var(--accent-gradient);content:"";transform-origin:0;height:2px;transition:transform .18s;position:absolute;bottom:.22rem;left:0;right:0;transform:scaleX(0)}.nav-link:hover,.nav-link--active{color:var(--accent)}.nav-link--active:after{transform:scaleX(1)}.github-link{width:2.75rem;height:2.75rem;color:var(--accent);place-items:center;transition:transform .18s;display:grid}.github-link:hover{transform:translateY(-2px)}.github-link svg{width:1.25rem}.menu-button{display:none}.about{--page-width:1600px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:clamp(2.5rem,4vw,4rem) clamp(3rem,7vw,7rem);display:grid}.section-index{color:var(--accent);grid-column:1/-1}.about__profile{min-width:0}.about__content{max-width:680px}.about__portrait{justify-content:center;align-items:center;margin-bottom:clamp(2rem,4vw,3rem);display:flex}.about-avatar{width:min(100%,11rem);margin-bottom:0;animation:none}.about__intro{max-width:660px;color:var(--text-muted);margin-top:1.5rem;font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.75}.tech-stack>.eyebrow,.section-heading .eyebrow,.contact>.eyebrow{color:var(--accent)}.tech-stack{min-width:0}.tech-stack__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.tech-stack__item{border:1px solid var(--border);background:var(--background);min-width:0;min-height:7rem;color:var(--text-muted);letter-spacing:.04em;isolation:isolate;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:.85rem;padding:1rem .75rem;font-family:JetBrains Mono,monospace;font-size:.72rem;transition:color .2s,transform .2s;display:flex;position:relative}.tech-stack__item:before{z-index:-1;border-radius:inherit;background:conic-gradient(from var(--tech-stack-border-angle), #14f195 0deg, #14f195 55deg, #9945ff 145deg, #14f195 235deg, #9945ff 325deg, #14f195 360deg);content:"";opacity:0;pointer-events:none;-webkit-mask-composite:xor;padding:1px;transition:opacity .2s;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.tech-stack__item:hover{color:var(--text);border-color:#0000;transform:translateY(-3px)}.tech-stack__item:hover:before{opacity:1;animation:2.8s linear infinite tech-stack-border-spin}.tech-stack__icon-frame{border-radius:.45rem;place-items:center;width:2.65rem;height:2.65rem;display:grid;overflow:hidden}.tech-stack__icon-frame img{object-fit:contain;width:100%;height:100%;display:block}.tech-stack__icon--pinocchio{border-radius:50%;transform:scale(2.05);object-fit:cover!important}.tech-stack__icon--anchor,.tech-stack__icon--solana{border-radius:.35rem}.tech-stack__icon--rust{transform:scale(1.08);object-fit:contain!important}@keyframes tech-stack-border-spin{to{--tech-stack-border-angle:360deg}}.work{background:#131313a3}.work .page-shell{--page-width:1600px}.section-heading{align-items:center;gap:1rem;margin-bottom:clamp(5rem,9vw,7.5rem);display:flex}.section-heading__rule{background:var(--border);flex:1;height:1px;margin-left:1.5rem}.project-list{gap:clamp(7rem,13vw,11rem);display:grid}.project{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:clamp(3rem,7vw,6rem);display:grid}.project--reverse .project__media{grid-column:2}.project--reverse .project__content{text-align:right;grid-area:1/1;align-items:flex-end}.project__media{border:1px solid var(--border);background:radial-gradient(circle at 12% 15%, var(--project-glow), transparent 46%), radial-gradient(circle at 88% 85%, var(--project-glow-secondary), transparent 48%), #0b0b0e;box-shadow:0 28px 78px -58px var(--project-accent), 0 22px 72px -60px var(--project-accent-secondary);isolation:isolate;transition:border-color .26s,box-shadow .45s,transform .45s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.project__media:before{z-index:3;background:conic-gradient(from var(--project-border-angle), #14f195 0deg, #14f195 55deg, #9945ff 145deg, #14f195 235deg, #9945ff 325deg, #14f195 360deg);content:"";opacity:0;pointer-events:none;-webkit-mask-composite:xor;padding:2px;transition:opacity .26s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.project__media img{z-index:1;aspect-ratio:16/10;object-fit:cover;width:100%;transition:transform .65s cubic-bezier(.22,1,.36,1);position:relative}.project__media:hover{box-shadow:0 34px 92px -48px var(--project-accent), 0 26px 84px -52px var(--project-accent-secondary);border-color:#0000;transform:translateY(-3px)}.project__media:hover img{transform:scale(1.025)}.project__media:hover:before{opacity:1;animation:3.2s linear infinite project-border-spin}.project__content{flex-direction:column;display:flex}.project__eyebrow{color:var(--text-muted);margin-bottom:1.2rem}.project__description{max-width:32rem;color:var(--text-muted);margin-top:1.35rem;font-size:1rem;line-height:1.75}.project__actions{flex-wrap:wrap;gap:.75rem;margin-top:1.8rem;display:flex}.text-link{border:1px solid var(--border);min-height:2.75rem;color:var(--text-muted);background:#0b0b0e52;border-radius:2px;align-items:center;gap:.4rem;padding:.7rem 1rem;transition:background .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.text-link:hover{border-color:var(--project-accent,var(--accent));color:var(--text);transform:translateY(-2px)}.text-link--accent{background:linear-gradient(#0b0b0e, #0b0b0e) padding-box, var(--accent-gradient) border-box;color:var(--accent);border-color:#0000}.text-link--accent:hover{background:var(--accent-gradient) border-box;color:#090909}.text-link--muted{cursor:default;opacity:.66}.text-link:hover .icon-arrow--up-right{transform:rotate(-45deg)translate(3px)}@keyframes project-border-spin{to{--project-border-angle:360deg}}.contact{text-align:center;max-width:920px}.contact h2{margin-top:1.25rem;font-size:clamp(2.4rem,6vw,4.4rem)}.contact>p{max-width:650px;color:var(--text-muted);margin:1.5rem auto 0;line-height:1.7}.contact__actions{justify-content:center;gap:1rem;margin-top:2.5rem;display:flex}.button{cursor:pointer;border:1px solid #0000;border-radius:2px;justify-content:center;align-items:center;min-width:11rem;min-height:3.4rem;padding:.9rem 1.8rem;font-size:.92rem;font-weight:500;transition:background .18s,border-color .18s,color .18s,transform .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button--primary{background:linear-gradient(var(--background), var(--background)) padding-box, var(--accent-gradient) border-box;color:var(--accent)}.button--primary:hover{background:var(--accent-gradient) border-box;color:#090909}.button--secondary{border-color:var(--border);background:0 0}.button--secondary:hover{border-color:var(--accent)}.social-links{color:var(--text-muted);justify-content:center;gap:clamp(1.5rem,5vw,3rem);margin-top:4.5rem;display:flex}.social-links a{align-items:center;min-height:2.75rem;transition:color .18s;display:inline-flex}.social-links a:hover{color:var(--accent)}.footer{border-top:1px solid var(--border);color:var(--text-muted)}.footer__inner{justify-content:space-between;align-items:center;gap:2rem;width:100%;min-height:7rem;display:flex}.footer strong{color:var(--text)}.footer__status{color:var(--accent);align-items:center;gap:.65rem;display:flex}.footer__status span{background:currentColor;border-radius:50%;width:.45rem;height:.45rem;box-shadow:0 0 0 4px #14f19514}@media (width<=760px){:root{--section-space:6rem}html{scroll-padding-top:3.75rem}.hero__content{width:min(92vw,42rem)}.hero h1{font-size:clamp(2.2rem,10vw,3.25rem);line-height:1.16}.hero__line--two{white-space:normal;margin-top:.3rem}.site-nav{height:3.75rem}.menu-button{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:.38rem;width:2.75rem;height:2.75rem;padding:0;display:flex}.menu-button span{background:var(--accent);width:1.25rem;height:1px;transition:transform .18s}.menu-button[aria-expanded=true] span:first-child{transform:translateY(.22rem)rotate(45deg)}.menu-button[aria-expanded=true] span:last-child{transform:translateY(-.22rem)rotate(-45deg)}.nav-links{opacity:0;background:#1c1b1bfa;border-bottom:1px solid #0000;gap:0;max-height:0;transition:max-height .28s,opacity .18s,border-color .18s;display:grid;position:absolute;top:100%;left:0;right:0;overflow:hidden}.nav-links--open{border-color:var(--border);opacity:1;max-height:22rem}.nav-link,.github-link{justify-content:center;width:100%;min-height:3.25rem}.nav-link:after{display:none}.about{grid-template-columns:1fr;gap:1.5rem}.section-index{grid-column:auto}.about__portrait{margin-block:.75rem 1.5rem}.about-avatar{width:min(46vw,10rem)}.about__intro{grid-column:auto;margin-top:.5rem;line-height:1.65}.tech-stack{min-width:calc(100% + var(--page-gutter));margin-top:1rem;margin-right:calc(var(--page-gutter) * -1);border-top:1px solid var(--border);border-left:0;padding-top:2rem;padding-left:0;overflow:hidden}.tech-stack__list{padding-right:var(--page-gutter);scroll-snap-type:x proximity;scrollbar-width:thin;padding-bottom:.75rem;scroll-padding-inline:0;display:flex;overflow-x:auto}.tech-stack__item{scroll-snap-align:start;min-width:7.5rem}.section-heading{margin-bottom:4.5rem}.section-heading__rule{margin-left:.25rem}.project-list{gap:7rem}.project,.project--reverse{grid-template-columns:1fr;gap:2.25rem}.project--reverse .project__media,.project--reverse .project__content{text-align:left;grid-area:auto;align-items:flex-start}.project__description{line-height:1.65}.contact__actions{flex-direction:column}.button{width:100%}.social-links{flex-wrap:wrap}.footer__inner{text-align:center;flex-direction:column;justify-content:center;min-height:9rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}[data-reveal]{opacity:1;transform:none}.hero-avatar:before{transform:rotate(25deg);animation:none!important}}
