.ArticlesSection-module__CJ7_na__section{flex-direction:column;gap:.6rem;display:flex}.ArticlesSection-module__CJ7_na__heading{text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);opacity:.8;margin:.75rem 0 .1rem;font-size:.75rem;font-weight:700}.ArticlesSection-module__CJ7_na__heading:first-child{margin-top:0}.ArticlesSection-module__CJ7_na__quote{color:var(--color-text);border-left:2px solid var(--color-accent);opacity:.85;margin:0;padding-left:.75rem;font-size:.8rem;font-style:italic;line-height:1.7}.ArticlesSection-module__CJ7_na__paragraph{color:var(--color-text-muted);margin:0;font-size:.825rem;line-height:1.65}.ArticlesSection-module__CJ7_na__list{flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}.ArticlesSection-module__CJ7_na__listItem{color:var(--color-text-muted);padding-left:.9rem;font-size:.8rem;line-height:1.5;position:relative}.ArticlesSection-module__CJ7_na__listItem:before{content:"—";color:var(--color-accent);opacity:.5;font-size:.7rem;position:absolute;top:.15em;left:0}
.SocialSection-module__NvBrZa__sectionTitle{text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);opacity:.7;margin-bottom:1rem;font-size:.875rem;font-weight:700}.SocialSection-module__NvBrZa__socialList{justify-content:space-between;gap:0;width:100%;display:flex}.SocialSection-module__NvBrZa__socialLink{border:2px solid var(--color-border);width:3rem;height:3rem;color:var(--color-text-muted);border-radius:.75rem;justify-content:center;align-items:center;transition:all .2s;display:flex}@media (hover:hover){.SocialSection-module__NvBrZa__socialLink:hover{border-color:var(--color-border-hover);background-color:var(--color-card-bg);color:var(--color-text)}}.SocialSection-module__NvBrZa__socialLink svg{width:1.25rem;height:1.25rem}@media (max-width:640px){.SocialSection-module__NvBrZa__socialList{gap:.5rem}.SocialSection-module__NvBrZa__socialLink{border-radius:.5rem;width:2.5rem;height:2.5rem}.SocialSection-module__NvBrZa__socialLink svg{width:1rem;height:1rem}}
.GithubSection-module___EjOoG__sectionTitle{text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);opacity:.7;margin-bottom:1rem;font-size:.875rem;font-weight:700}.GithubSection-module___EjOoG__githubBox{border:2px solid var(--color-border);background:#f8fafc80;border-radius:1rem;width:100%;padding:.5rem}[data-theme=dark] .GithubSection-module___EjOoG__githubBox{background:#00000080}.GithubSection-module___EjOoG__githubInner{background:var(--color-card-bg);border-radius:.5rem;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.75rem;display:flex}.GithubSection-module___EjOoG__githubGrid{grid-template-rows:repeat(7,1fr);grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;width:100%;display:grid}.GithubSection-module___EjOoG__githubCell{aspect-ratio:1;background:var(--color-border);border-radius:2px}.GithubSection-module___EjOoG__githubCellActive1{background:#9be9a8}.GithubSection-module___EjOoG__githubCellActive2{background:#40c463}.GithubSection-module___EjOoG__githubCellActive3{background:#30a14e}.GithubSection-module___EjOoG__githubCellActive4{background:#216e39}[data-theme=dark] .GithubSection-module___EjOoG__githubCellActive1{background:#0e4429}[data-theme=dark] .GithubSection-module___EjOoG__githubCellActive2{background:#006d32}[data-theme=dark] .GithubSection-module___EjOoG__githubCellActive3{background:#26a641}[data-theme=dark] .GithubSection-module___EjOoG__githubCellActive4{background:#39d353}.GithubSection-module___EjOoG__githubFooter{width:100%;color:var(--color-text-muted);justify-content:space-between;align-items:center;font-size:.65rem;display:flex}.GithubSection-module___EjOoG__totalLabel{font-weight:500}.GithubSection-module___EjOoG__legend{align-items:center;gap:3px;display:flex}.GithubSection-module___EjOoG__legendLabel{color:var(--color-text-muted);padding:0 2px;font-size:.6rem}.GithubSection-module___EjOoG__legendCell{background:var(--color-border);border-radius:2px;width:10px;height:10px}@media (max-width:640px){.GithubSection-module___EjOoG__githubInner{padding:.5rem}.GithubSection-module___EjOoG__githubGrid{gap:2px}.GithubSection-module___EjOoG__githubFooter{font-size:.55rem}}
@keyframes PortraitSection-module__R32SNG__float{0%,to{translate:0}50%{translate:0 -7px}}.PortraitSection-module__R32SNG__techStackOverlay{pointer-events:none;z-index:10;width:100%;height:100%;position:absolute;inset:0}.PortraitSection-module__R32SNG__techIcon{justify-content:center;align-items:center;animation:3.5s ease-in-out infinite PortraitSection-module__R32SNG__float;display:flex;position:absolute}.PortraitSection-module__R32SNG__techIcon img{object-fit:contain;width:100%;height:100%}.PortraitSection-module__R32SNG__techIcon1{width:3rem;height:3rem;animation-duration:3.2s;animation-delay:0s;top:.5rem;left:-1.5rem;transform:rotate(12deg)}.PortraitSection-module__R32SNG__techIcon2{width:3.5rem;height:3.5rem;animation-duration:4s;animation-delay:-.8s;top:6rem;left:2.5rem;transform:rotate(-10deg)}.PortraitSection-module__R32SNG__techIcon3{width:3rem;height:3rem;animation-duration:3.6s;animation-delay:-1.6s;top:12rem;left:-1.5rem;transform:rotate(8deg)}.PortraitSection-module__R32SNG__techIcon4{width:3rem;height:3rem;animation-duration:3.8s;animation-delay:-.4s;top:.5rem;right:-1.5rem;transform:rotate(-12deg)}.PortraitSection-module__R32SNG__techIcon5{width:3.5rem;height:3.5rem;animation-duration:4.2s;animation-delay:-1.2s;top:6rem;right:2.5rem;transform:rotate(10deg)}.PortraitSection-module__R32SNG__techIcon6{width:3rem;height:3rem;animation-duration:3.4s;animation-delay:-2s;top:12rem;right:-1.5rem;transform:rotate(-8deg)}.PortraitSection-module__R32SNG__techIcon7{width:2.75rem;height:2.75rem;animation-duration:3.9s;animation-delay:-.6s;top:0;left:20%;transform:rotate(-6deg)}.PortraitSection-module__R32SNG__techIcon8{width:2.75rem;height:2.75rem;animation-duration:3.3s;animation-delay:-1.8s;top:0;right:20%;transform:rotate(6deg)}.PortraitSection-module__R32SNG__techIcon9{width:2.75rem;height:2.75rem;animation-duration:3.7s;animation-delay:-1s;top:-4rem;left:1rem;transform:rotate(-5deg)}.PortraitSection-module__R32SNG__techIcon10{width:2.75rem;height:2.75rem;animation-duration:4.1s;animation-delay:-1.4s;top:-4rem;right:1rem;transform:rotate(7deg)}.PortraitSection-module__R32SNG__portraitWrapper{z-index:1;flex:1;width:100%;min-height:0;position:relative;overflow:hidden}.PortraitSection-module__R32SNG__portraitImage{object-fit:contain;object-position:bottom;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%}@media (max-width:640px){@keyframes PortraitSection-module__R32SNG__floatMobile{0%,to{translate:0}50%{translate:0 -14px}}.PortraitSection-module__R32SNG__techIcon{border-radius:.5rem;width:2.25rem;height:2.25rem;font-size:.5rem;animation-name:PortraitSection-module__R32SNG__floatMobile}.PortraitSection-module__R32SNG__techIcon1,.PortraitSection-module__R32SNG__techIcon3,.PortraitSection-module__R32SNG__techIcon4,.PortraitSection-module__R32SNG__techIcon6{left:auto;right:auto}.PortraitSection-module__R32SNG__techIcon1,.PortraitSection-module__R32SNG__techIcon3{left:0}.PortraitSection-module__R32SNG__techIcon4,.PortraitSection-module__R32SNG__techIcon6{right:0}.PortraitSection-module__R32SNG__portraitWrapper{max-height:calc(var(--stable-vh,100svh)*.5)}}
.ProjectCard-module__Fr-UuW__projectCard{cursor:pointer;border-radius:.75rem;width:75%;margin:0 auto;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s;position:relative;overflow:hidden;box-shadow:0 4px 16px #0003}.ProjectCard-module__Fr-UuW__projectImage{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:auto;display:block}.ProjectCard-module__Fr-UuW__titleGlass{z-index:2;-webkit-backdrop-filter:blur(20px)saturate(150%);pointer-events:none;opacity:1;background:#08121c75;border:1px solid #ffffff4d;border-radius:.5rem;flex-direction:column;align-items:center;gap:.15rem;max-width:calc(100% - 1rem);padding:.3rem .85rem;transition:opacity .25s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 22px #00000059}@media (hover:hover){.ProjectCard-module__Fr-UuW__titleGlass{-webkit-backdrop-filter:blur(16px)saturate(180%);opacity:0;background:#ffffff38;border:1px solid #ffffff59;box-shadow:0 6px 18px #00000040}.ProjectCard-module__Fr-UuW__projectCard:hover .ProjectCard-module__Fr-UuW__titleGlass{opacity:1}}.ProjectCard-module__Fr-UuW__title{color:#fff;text-transform:uppercase;text-shadow:0 2px 8px #0009;white-space:nowrap;text-align:center;max-width:100%;font-size:.9rem;font-weight:700;line-height:1.25}.ProjectCard-module__Fr-UuW__titleProjectOne{text-overflow:ellipsis;width:100%;display:block;overflow:hidden}.ProjectCard-module__Fr-UuW__mobileSubtitle{color:#ffffffeb;white-space:normal;text-align:center;overflow-wrap:anywhere;font-size:.65rem;font-weight:400;line-height:1.3;display:none}.ProjectCard-module__Fr-UuW__projectTech{display:contents}.ProjectCard-module__Fr-UuW__techBadge{color:#fff;white-space:nowrap;top:var(--badge-top);left:var(--badge-left);opacity:0;z-index:3;transition:transform .4s cubic-bezier(.34,1.56,.64,1)var(--badge-delay,0s),opacity .3s ease var(--badge-delay,0s);background:#ffffff40;border:1px solid #ffffff59;border-radius:1rem;flex-shrink:0;padding:.2rem .6rem;font-size:.75rem;font-weight:600;position:absolute;transform:translate(-50%,-50%)scale(0)}@media (hover:hover){.ProjectCard-module__Fr-UuW__projectCard:hover{z-index:10;transform:rotate(0)translateY(-4px)scale(1.03);box-shadow:0 12px 32px #0000004d}.ProjectCard-module__Fr-UuW__projectCard:hover .ProjectCard-module__Fr-UuW__techBadge{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (hover:none){.ProjectCard-module__Fr-UuW__titleGlass{top:auto;bottom:.55rem;left:50%;transform:translate(-50%)}.ProjectCard-module__Fr-UuW__mobileSubtitle{display:block}.ProjectCard-module__Fr-UuW__techBadge{display:none}}@media (max-width:640px){.ProjectCard-module__Fr-UuW__projectCard{border-radius:.625rem;width:100%}.ProjectCard-module__Fr-UuW__title{font-size:.75rem}}
.ProjectsSection-module__XnAbxW__projectsSection{flex-direction:column;gap:.9rem;padding:.5rem;display:flex;overflow:visible}.ProjectsSection-module__XnAbxW__sectionTitle{text-transform:uppercase;letter-spacing:.1em;color:var(--color-accent);opacity:.7;flex-shrink:0;font-size:.875rem;font-weight:700}
.page-module__MnybmW__container{width:100vw;height:var(--stable-vh,100svh);flex-direction:column;max-width:100vw;padding:0 2rem;display:flex;overflow:hidden}.page-module__MnybmW__header{flex-direction:column;flex:0 0 calc(var(--stable-vh,100svh)*.22);min-height:0;display:flex}.page-module__MnybmW__headerTop{flex-shrink:0;justify-content:flex-end;display:flex}.page-module__MnybmW__headerCenter{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding-bottom:2.5rem;display:flex}.page-module__MnybmW__title{font-family:var(--font-vt323),monospace;color:var(--color-text);letter-spacing:-.025em;margin-bottom:.25rem;font-size:clamp(1.75rem,4vw,3.5rem);font-weight:400;line-height:1}.page-module__MnybmW__subtitle{color:var(--color-text-muted);font-size:clamp(.875rem,1.5vw,1.25rem);font-style:italic;font-weight:500}.page-module__MnybmW__grid{flex:1;grid-template-rows:1fr;grid-template-columns:1fr 1fr 1fr;gap:clamp(1rem,2vw,3rem);min-height:0;display:grid}.page-module__MnybmW__leftColumn{flex-direction:column;justify-content:space-between;gap:1rem;display:flex;overflow:hidden}.page-module__MnybmW__leftBottom{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.page-module__MnybmW__centerColumn{z-index:1;flex-direction:column;align-items:center;display:flex;position:relative;overflow:visible}.page-module__MnybmW__rightColumn{flex-direction:column;justify-content:center;min-height:0;display:flex;position:relative;top:-4rem;overflow:visible}@media (max-width:768px){.page-module__MnybmW__container{height:auto;min-height:var(--stable-vh,100svh);grid-template-rows:auto 1fr;padding:1.25rem 1.5rem 0;display:grid;overflow:auto}.page-module__MnybmW__header{min-height:auto}.page-module__MnybmW__grid{grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr}.page-module__MnybmW__centerColumn{max-height:calc(var(--stable-vh,100svh)*.4);order:-1;grid-column:1/-1}.page-module__MnybmW__leftBottom{margin-bottom:0}.page-module__MnybmW__rightColumn{top:0}}@media (max-width:640px){.page-module__MnybmW__container{padding:1rem 1rem 5rem}.page-module__MnybmW__header{flex:none;min-height:auto;padding-bottom:.5rem}.page-module__MnybmW__headerCenter{padding-bottom:1rem}.page-module__MnybmW__grid{grid-template-rows:auto;grid-template-columns:1fr;gap:1.25rem}.page-module__MnybmW__centerColumn{max-height:calc(var(--stable-vh,100svh)*.5)}.page-module__MnybmW__leftBottom{flex-direction:column;margin-bottom:0}.page-module__MnybmW__leftBottom>*{flex:1}}
