.TechLogos-module__WpZhUW__list{color:var(--muted);flex-wrap:wrap;align-items:center;gap:1.75rem;margin:0;padding:0;list-style:none;display:flex}.TechLogos-module__WpZhUW__logo{width:26px;height:26px;display:block}@media (max-width:600px){.TechLogos-module__WpZhUW__list{gap:1.35rem}.TechLogos-module__WpZhUW__logo{width:22px;height:22px}}
.Hero-module___w2HtG__hero{background:var(--background);width:100%;min-height:100vh;color:var(--foreground);position:relative;overflow:hidden}.Hero-module___w2HtG__portrait{z-index:0;pointer-events:none;position:absolute;inset:0 0 0 35%}.Hero-module___w2HtG__portraitImg{object-fit:cover;object-position:center center;filter:grayscale()brightness(.5)contrast(1.05);-webkit-mask-composite:source-in;-webkit-mask-image:radial-gradient(80% 80% at 60% 45%,#000 28%,#0000 82%),linear-gradient(270deg,#000 55%,#0000 92%);mask-image:radial-gradient(80% 80% at 60% 45%,#000 28%,#0000 82%),linear-gradient(270deg,#000 55%,#0000 92%);-webkit-mask-composite:source-in;mask-composite:intersect}.Hero-module___w2HtG__portraitFade{z-index:1;background:linear-gradient(#0000 40%,#000 92%),linear-gradient(90deg,#000 5%,#0000 35%);position:absolute;inset:0}.Hero-module___w2HtG__overlay{background:var(--overlay-grad);z-index:1;pointer-events:none;position:absolute;inset:0}.Hero-module___w2HtG__overlaySide{background:var(--overlay-side);z-index:1;pointer-events:none;position:absolute;inset:0}.Hero-module___w2HtG__content{z-index:2;flex-direction:column;align-items:flex-start;gap:.85rem;max-width:820px;display:flex;position:absolute;bottom:clamp(3rem,9vh,6rem);left:clamp(1.5rem,6vw,5rem);right:clamp(1.5rem,6vw,5rem)}.Hero-module___w2HtG__title{font-family:var(--font-display), var(--font-sans), sans-serif;letter-spacing:-.01em;color:var(--foreground);max-width:18ch;margin:0;font-size:clamp(2.25rem,5.5vw,4.5rem);font-weight:700;line-height:1.02}.Hero-module___w2HtG__roleLine{font-family:var(--font-display), var(--font-sans), sans-serif;color:var(--foreground);flex-wrap:wrap;align-items:baseline;gap:.4em;min-height:1.4em;margin:.35rem 0 0;font-size:clamp(1.25rem,2.6vw,2rem);font-weight:500;line-height:1.2;display:flex}.Hero-module___w2HtG__rolePrefix{color:var(--muted);font-weight:400}.Hero-module___w2HtG__role{color:var(--foreground);white-space:nowrap}.Hero-module___w2HtG__cursor{color:var(--foreground);margin-left:.05em;font-weight:400;animation:1s steps(2,end) infinite Hero-module___w2HtG__blink;display:inline-block}@keyframes Hero-module___w2HtG__blink{0%,49%{opacity:1}50%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.Hero-module___w2HtG__cursor{opacity:1;animation:none}}.Hero-module___w2HtG__tagline{color:var(--muted);max-width:48ch;margin-top:.75rem;font-size:clamp(.95rem,1.2vw,1.0625rem);line-height:1.55}.Hero-module___w2HtG__techRow{margin-top:1.25rem}.Hero-module___w2HtG__cta{margin-top:1.5rem}@media (max-width:900px){.Hero-module___w2HtG__portrait{left:0}.Hero-module___w2HtG__portraitImg{filter:grayscale()brightness(.32)contrast(1.05);-webkit-mask-composite:source-over;-webkit-mask-image:radial-gradient(110% 70% at 50% 30%,#000 18%,#0000 78%);mask-image:radial-gradient(110% 70% at 50% 30%,#000 18%,#0000 78%);-webkit-mask-composite:source-over;mask-composite:add}.Hero-module___w2HtG__portraitFade{background:linear-gradient(#0000 35%,#000 88%)}}@media (max-width:600px){.Hero-module___w2HtG__hero{min-height:100svh}.Hero-module___w2HtG__content{max-width:none}}
.AboutMe-module__4I1cnG__about{width:100%;min-height:100vh;color:var(--foreground);background:#000;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:stretch;gap:clamp(2.5rem,5vh,4rem) clamp(3rem,6vw,7rem);padding:clamp(6rem,16vh,10rem) 7vw clamp(3rem,8vh,5rem);display:grid;position:relative}.AboutMe-module__4I1cnG__topBar{grid-area:1/1/auto/-1}.AboutMe-module__4I1cnG__leftCol{flex-direction:column;grid-area:2/1;justify-content:space-between;gap:clamp(2.5rem,6vh,4rem);min-height:0;display:flex}.AboutMe-module__4I1cnG__rightCol{flex-direction:column;grid-area:2/2;justify-content:space-between;gap:clamp(2.5rem,6vh,4rem);min-height:0;display:flex}.AboutMe-module__4I1cnG__bracket{color:var(--faint);margin:0 .55em;font-weight:400}.AboutMe-module__4I1cnG__bracketLabel{font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.75rem;font-weight:500;line-height:1.5}.AboutMe-module__4I1cnG__headline{font-family:var(--font-display), var(--font-sans), sans-serif;letter-spacing:-.02em;color:var(--foreground);flex-direction:column;margin:0;font-size:clamp(2.5rem,6vw,5.25rem);font-weight:600;line-height:1;display:flex}.AboutMe-module__4I1cnG__headlineDim{color:var(--faint)}.AboutMe-module__4I1cnG__socials{gap:.25rem;margin-left:-10px;display:flex}.AboutMe-module__4I1cnG__socialLink{width:44px;height:44px;color:var(--muted);justify-content:center;align-items:center;transition:color .2s,transform .2s;display:inline-flex}.AboutMe-module__4I1cnG__socialLink:hover{color:var(--foreground);transform:translateY(-2px)}.AboutMe-module__4I1cnG__bio{flex-direction:column;gap:clamp(1.5rem,4vh,2.5rem);max-width:42ch;display:flex}.AboutMe-module__4I1cnG__bracketNum{font-family:var(--font-mono), monospace;letter-spacing:.1em;color:var(--faint);margin:0 0 .5rem;font-size:.75rem;font-weight:500}.AboutMe-module__4I1cnG__bioText{color:var(--muted);margin:0;font-size:.9375rem;line-height:1.6}.AboutMe-module__4I1cnG__contact{font-family:var(--font-mono), monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--foreground);align-self:flex-end;align-items:center;font-size:.8125rem;font-weight:500;text-decoration:none;transition:opacity .25s;display:inline-flex}.AboutMe-module__4I1cnG__contactLabel{border-bottom:1px solid;padding-bottom:3px}.AboutMe-module__4I1cnG__contactArrow{transition:transform .35s var(--expo-out);margin-left:.6em}.AboutMe-module__4I1cnG__contact:hover .AboutMe-module__4I1cnG__contactArrow,.AboutMe-module__4I1cnG__contact:focus-visible .AboutMe-module__4I1cnG__contactArrow{transform:translate(3px,-3px)}@media (max-width:900px){.AboutMe-module__4I1cnG__about{grid-template-rows:auto auto auto;grid-template-columns:1fr;gap:clamp(2.5rem,6vh,3.5rem);padding:clamp(5rem,14vh,8rem) 7vw clamp(3rem,8vh,4rem)}.AboutMe-module__4I1cnG__topBar{grid-area:1/1}.AboutMe-module__4I1cnG__leftCol{grid-area:2/1}.AboutMe-module__4I1cnG__rightCol{grid-area:3/1}.AboutMe-module__4I1cnG__leftCol,.AboutMe-module__4I1cnG__rightCol{gap:clamp(1.75rem,5vh,2.5rem)}.AboutMe-module__4I1cnG__bio{max-width:46ch}.AboutMe-module__4I1cnG__contact{align-self:flex-start}}@media (max-width:600px){.AboutMe-module__4I1cnG__headline{font-size:clamp(2rem,9vw,2.75rem)}}
.ProjectShowcase-module__VSn8MW__project{background:var(--background);width:100%;min-height:100vh;color:var(--foreground);position:relative;overflow:hidden}.ProjectShowcase-module__VSn8MW__media{object-fit:cover;z-index:0;width:100%;height:100%;inset:0;position:absolute!important}.ProjectShowcase-module__VSn8MW__overlay{background:var(--overlay-grad);z-index:1;pointer-events:none;position:absolute;inset:0}.ProjectShowcase-module__VSn8MW__overlaySide{background:var(--overlay-side);z-index:1;pointer-events:none;position:absolute;inset:0}.ProjectShowcase-module__VSn8MW__coverLink{z-index:2;color:inherit;text-decoration:none;display:block;position:absolute;inset:0}.ProjectShowcase-module__VSn8MW__coverLink:focus-visible{outline:2px solid var(--foreground);outline-offset:-8px}.ProjectShowcase-module__VSn8MW__content{flex-direction:column;align-items:flex-start;gap:1rem;max-width:720px;display:flex;position:absolute;bottom:clamp(3rem,9vh,6rem);left:clamp(1.5rem,6vw,5rem);right:clamp(1.5rem,6vw,5rem)}.ProjectShowcase-module__VSn8MW__kicker{color:var(--muted)}.ProjectShowcase-module__VSn8MW__title{font-family:var(--font-display), var(--font-sans), sans-serif;text-transform:uppercase;letter-spacing:.005em;color:var(--foreground);margin-top:.25rem;font-size:clamp(2.5rem,7vw,5.5rem);font-weight:700;line-height:.95}.ProjectShowcase-module__VSn8MW__desc{color:var(--muted);max-width:48ch;margin-top:.5rem;font-size:clamp(.9375rem,1.2vw,1.0625rem);line-height:1.55}.ProjectShowcase-module__VSn8MW__ctaRow{flex-wrap:wrap;align-items:center;gap:1.75rem;margin-top:1.125rem;display:flex}.ProjectShowcase-module__VSn8MW__ctaGhost{color:var(--muted);transition:color .25s}.ProjectShowcase-module__VSn8MW__ctaGhost:hover{color:var(--foreground)}.ProjectShowcase-module__VSn8MW__githubBadge{z-index:3;position:absolute;bottom:clamp(3rem,9vh,6rem);right:clamp(1.5rem,6vw,5rem)}@media (max-width:700px){.ProjectShowcase-module__VSn8MW__githubBadge{bottom:clamp(1.25rem,4vh,2.25rem);right:clamp(1.5rem,6vw,5rem)}.ProjectShowcase-module__VSn8MW__content{bottom:clamp(4rem,12vh,7rem)}}@media (max-width:600px){.ProjectShowcase-module__VSn8MW__project{min-height:100svh}}
