header .socials svg:hover,header h1{color:var(--accent-color)}.tech-stack .item,body{background-color:var(--bg-color)}.tech-stack .item:hover,.work h3{background-color:var(--hover-color)}.info,.work .list .item .desc{line-height:1.4}@font-face{font-family:"Montserrat SemiBold";src:url("/assets/fonts/Montserrat-SemiBold.woff2") format("woff2");font-display:swap}@font-face{font-family:"Montserrat Black Italic";src:url("/assets/fonts/Montserrat-Black-Italic.woff2") format("woff2");font-display:swap}:root{--bg-color:#0a0a0a;--text-color:#e5e5e5;--secondary-color:#808080;--accent-color:#fff;--border-color:#353535;--hover-color:#141414;--font-xs:0.65rem;--font-sm:0.75rem;--font-md:0.85rem;--font-base:1rem;--font-lg:1.25rem;--font-xl:1.55rem;--radius-xs:0.16rem;--radius-sm:0.4rem;--radius-md:0.6rem;--radius-lg:1rem;--radius-xl:1.6rem;--radius-round:50%}*{box-sizing:border-box;margin:0;padding:0}::selection{background-color:var(--text-color);color:var(--bg-color)}body{color:var(--text-color);font-family:"Montserrat SemiBold","Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;max-inline-size:35rem;margin-inline:auto}a{text-decoration:none}@keyframes flowGradient{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}.gradient{position:absolute;inset:0 auto auto 0;inline-size:100%;block-size:300px;z-index:-1;background:linear-gradient(45deg,#f0f,#00a8c6,#ff5f00,#f0f);background-size:400% 400%;animation:20s infinite flowGradient;opacity:.15;filter:blur(5rem);mask-image:linear-gradient(to bottom,#000000ff 0%,#000000b3 20%,#00000066 40%,#0000001a 70%,#00000000 100%)}header{display:flex;justify-content:space-between;align-items:center;padding:1.75rem 0 3.15rem}header h1{font-family:"Montserrat Black Italic","Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:var(--font-xl)}header .socials{display:flex;gap:.95rem}header .socials svg{width:1.25rem;height:1.25rem;color:var(--text-color)}@keyframes wave-animation{0%,100%{transform:rotate(0)}15%,45%{transform:rotate(14deg)}30%{transform:rotate(-8deg)}60%{transform:rotate(-4deg)}75%{transform:rotate(10deg)}}.greeting-container{display:flex;align-items:center;gap:1.25rem;margin-bottom:1.85rem}.info,.tech-stack,.work,footer{margin-bottom:3rem}.greeting-container img{width:3.75rem;aspect-ratio:1;border-radius:var(--radius-round);object-fit:cover}.greeting-container .greeting{width:100%;display:flex;flex-direction:column;justify-content:center;gap:.4rem}.greeting-container .greeting h2{font-size:var(--font-lg);letter-spacing:-.03rem;color:var(--accent-color);text-wrap:balance}.greeting-container .greeting h2 .wave{display:inline-block}.greeting-container .greeting h2:hover .wave{animation:2s ease-in-out infinite wave-animation;transform-origin:70% 70%}.greeting-container .greeting .location{display:flex;align-items:center;font-size:var(--font-base);gap:.35rem;color:var(--text-color)}.greeting-container .greeting .location svg{width:1rem;height:1rem}.tech-stack{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.tech-stack .item{display:flex;flex-direction:column;align-items:center;gap:.65rem;border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:.95rem .65rem;transition:background-color .1s}.tech-stack .item svg{width:1.25rem;height:1.25rem;color:#fff;transition:color .1s}.tech-stack .item:hover svg#swift{color:#f05138}.tech-stack .item:hover svg#rust{color:#da9873}.tech-stack .item:hover svg#svelte{color:#ff3e00}.tech-stack .item:hover svg#html{color:#e44d26}.tech-stack .item:hover svg#css{color:#1572b6}.tech-stack .item:hover svg#typescript{color:#007acc}.work{display:grid}.work h3{font-size:var(--font-sm);border-radius:var(--radius-md);padding:.65rem;margin-bottom:1.25rem;width:fit-content}.work .list{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.work .list .item{display:flex;flex-direction:column;gap:.95rem;background-color:var(--bg-color);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:1rem}.work .list .item .head{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-sm);color:var(--secondary-color)}.work .list .item .head .date{padding:.45rem}.work .list .item .head .source{color:var(--accent-color);background-color:#00ffd053;padding:.45rem;border-radius:var(--radius-md)}.work .list .item .head .source.closed{background-color:#ff2f0053}.work .list .item img{height:6.25rem;margin-inline:auto}.work .list .item img.svg{width:9.25rem}.work .list .item .title{font-size:var(--font-lg);font-weight:600;color:var(--accent-color);text-align:center;text-wrap:balance}.work .list .item .desc,.work .viewall,footer{font-size:var(--font-md)}.work .list .item .desc,footer,footer .socials a{color:var(--secondary-color)}.work .list .item .libraries{display:flex;flex-wrap:wrap;gap:.3rem}.work .list .item .libraries span{color:var(--accent-color);background-color:var(--border-color);padding:.3rem .45rem;border-radius:var(--radius-sm);font-size:var(--font-xs)}.work .list .item .project-source{background-color:var(--text-color);color:var(--bg-color);border-radius:var(--radius-md);padding:.65rem;margin-top:.3rem;text-align:center;transition:background-color .3s}.work .list .item .project-source:hover{background-color:var(--accent-color)}.work .viewall{position:relative;padding-inline-end:0.25rem;margin:1.55rem auto 0;font-weight:600;text-align:center;color:var(--accent-color);transform:translateX(-.19rem)}.work .viewall::before{content:"";width:.38rem;height:.38rem;border-top:solid .19rem var(--accent-color);border-right:solid .19rem var(--accent-color);border-radius:var(--radius-xs);position:absolute;top:50%;left:100%;transform:translateY(-50%) rotate(45deg);transition:transform .3s}.work .viewall:hover::before{transform:translateX(.25rem) translateY(-50%) rotate(45deg)}footer{display:flex;justify-content:space-between}footer .socials{display:flex;gap:.9rem}footer .socials a:hover{color:#989898}@media (width <= 600px){body{max-inline-size:100%;padding-inline:1.25rem}.tech-stack{grid-template-columns:repeat(2,1fr)}.work .list{grid-template-columns:1fr}}@media (width <= 480px){.work,footer{margin-bottom:1.55rem}header{padding:1.25rem 0 1.9rem}.greeting-container{flex-direction:column;align-items:flex-start;gap:.6rem}.tech-stack{gap:.6rem}.work .list{gap:.65rem}footer{flex-direction:column;gap:1.55rem;align-items:center;text-align:center}}@media (prefers-reduced-motion:reduce){.gradient,.greeting h2:hover .wave{animation:none}.gradient{background-position:0 50%}.tech-stack .item,.tech-stack .item svg,.work .external::before,.work .project-source{transition:none}}