nav{width:100%;color:var(--color-text);z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#1d1e1dee;padding:1em 0;font-weight:700;position:fixed;top:0}h2{font-size:20px}.nav-container{justify-content:space-between;align-items:center;max-width:60%;margin:0 auto;display:flex}ul{display:flex}li{margin:0 .5em;list-style:none;display:flex}a{color:var(--color-text);text-decoration:none}a:hover{color:var(--primary-color);scale:1.05}.connect-link{background-color:var(--primary-color);padding:.5rem 1rem;font-size:1rem;font-weight:lighter}.connect-link:hover{background-color:var(--color-text);color:var(--primary-dark)}.ham-menu{background-color:var(--color-bg-dark);flex-direction:column;justify-content:center;align-items:center;width:100%;display:flex;position:absolute;top:70px;left:0}.ham-menu ul{flex-direction:column;align-items:center;padding:1em}.ham-menu-btn{color:var(--primary-color);background:0 0;border:none;display:none}.resume-btn{background-color:var(--primary-color);border-radius:10%;margin:0 1em;padding:.7em}.resume-btn:hover{background-color:var(--color-text)}@media (max-width:1230px){.nav-container{max-width:90%}}@media (max-width:1024px){nav h2{font-size:16px}.menu{display:none}.ham-menu-btn{display:block}}
.hero-section{justify-content:center;align-items:center;height:100vh;padding:0 2em;display:flex}.hero-container{width:100%;max-width:1100px;color:var(--color-text);align-items:center;gap:clamp(1em,4vw,5em);padding:2em 0;display:flex}.text-container{flex:1;min-width:0}.text-container h1{font-size:clamp(1.2rem,3vw,2.5rem)}.text-container .text{font-size:clamp(.8rem,1.5vw,1rem)}.image-container{flex-shrink:0;width:clamp(180px,28vw,400px);height:clamp(220px,38vw,550px);position:relative;overflow:hidden}.image-container img{object-fit:cover;object-fit:contain;border-radius:2px;max-width:100%;max-height:100%}.fa-2x{color:var(--color-text)}.fa-2x:hover{color:var(--primary-color);cursor:pointer}.primary-color{color:var(--primary-color)}.more{margin:2em 0}.learn-more-btn{background-color:var(--primary-color);padding:1em}.learn-more-btn:hover{color:var(--primary-color);background-color:var(--color-text)}.text{margin:1em 0}@media (max-width:768px){.hero-section{height:auto;padding:4em 1.5em}.hero-container{flex-direction:column;gap:2em}.image-container{width:100%;height:300px}}
:root{--bg:#111;--violet:#7000ff;--violet-dim:#7000ff1f;--violet-border:#7000ff40;--text-muted:#f0f0f073;--card-bg:#ffffff08}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--color-text);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:4em 2em;font-family:DM Sans,sans-serif;display:flex}.projects-section-container{width:100%;max-width:60%}.projects-section{width:100%}.section-header{margin-bottom:3.5em}.section-label{letter-spacing:.25em;text-transform:uppercase;color:var(--violet);margin-bottom:.8em;font-family:DM Sans,sans-serif;font-size:.7rem;font-weight:500}.section-title{letter-spacing:-.03em;color:var(--color-text);font-family:Syne,sans-serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:800;line-height:1}.section-title span{color:var(--text-muted)}.projects-list{flex-direction:column;gap:0;display:flex}.project-card{cursor:pointer;color:inherit;border-top:1px solid #ffffff0f;grid-template-columns:3em 1fr auto;align-items:start;gap:1.5em;padding:1.8em 0;text-decoration:none;transition:all .3s;display:grid;position:relative}.project-card:last-child{border-bottom:1px solid #ffffff0f}.project-card:before{content:"";background:var(--violet-dim);opacity:0;border-radius:4px;margin:0 -1.2em;transition:opacity .3s;position:absolute;inset:0}.project-card:hover:before{opacity:1}.project-card:hover .project-num{color:var(--violet)}.project-card:hover .project-name{color:var(--violet);transform:translate(4px)}.project-card:hover .arrow{opacity:1;transform:translate(4px,-4px)}.project-num{color:var(--text-muted);z-index:1;padding-top:.35em;font-family:Syne,sans-serif;font-size:.75rem;font-weight:600;transition:color .3s;position:relative}.project-content{z-index:1;position:relative}.project-name{letter-spacing:-.02em;margin-bottom:.4em;font-family:Syne,sans-serif;font-size:clamp(1.1rem,2.5vw,1.5rem);font-weight:700;transition:color .3s,transform .3s}.project-desc{color:var(--text-muted);max-width:480px;margin-bottom:1em;font-size:.85rem;line-height:1.6}.project-tags{flex-wrap:wrap;gap:.5em;display:flex}.tag{letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--violet-border);color:var(--violet);background:var(--violet-dim);border-radius:2px;padding:.3em .75em;font-size:.65rem;font-weight:500}.arrow{color:var(--text-muted);opacity:0;z-index:1;padding-top:.3em;font-size:1.1rem;position:relative}@media (max-width:600px){.projects-section-container{max-width:90%}.project-card{grid-template-columns:2.5em 1fr}.arrow{display:none}}
:root,:host{--fa-font-solid:normal 900 1em/1 "Font Awesome 7 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 7 Free";--fa-font-light:normal 300 1em/1 "Font Awesome 7 Pro";--fa-font-thin:normal 100 1em/1 "Font Awesome 7 Pro";--fa-font-duotone:normal 900 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-regular:normal 400 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-light:normal 300 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-thin:normal 100 1em/1 "Font Awesome 7 Duotone";--fa-font-brands:normal 400 1em/1 "Font Awesome 7 Brands";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-regular:normal 400 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-light:normal 300 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-thin:normal 100 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-duotone-solid:normal 900 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-regular:normal 400 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-light:normal 300 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-thin:normal 100 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-slab-regular:normal 400 1em/1 "Font Awesome 7 Slab";--fa-font-slab-press-regular:normal 400 1em/1 "Font Awesome 7 Slab Press";--fa-font-whiteboard-semibold:normal 600 1em/1 "Font Awesome 7 Whiteboard";--fa-font-thumbprint-light:normal 300 1em/1 "Font Awesome 7 Thumbprint";--fa-font-notdog-solid:normal 900 1em/1 "Font Awesome 7 Notdog";--fa-font-notdog-duo-solid:normal 900 1em/1 "Font Awesome 7 Notdog Duo";--fa-font-etch-solid:normal 900 1em/1 "Font Awesome 7 Etch";--fa-font-graphite-thin:normal 100 1em/1 "Font Awesome 7 Graphite";--fa-font-jelly-regular:normal 400 1em/1 "Font Awesome 7 Jelly";--fa-font-jelly-fill-regular:normal 400 1em/1 "Font Awesome 7 Jelly Fill";--fa-font-jelly-duo-regular:normal 400 1em/1 "Font Awesome 7 Jelly Duo";--fa-font-chisel-regular:normal 400 1em/1 "Font Awesome 7 Chisel";--fa-font-utility-semibold:normal 600 1em/1 "Font Awesome 7 Utility";--fa-font-utility-duo-semibold:normal 600 1em/1 "Font Awesome 7 Utility Duo";--fa-font-utility-fill-semibold:normal 600 1em/1 "Font Awesome 7 Utility Fill"}.svg-inline--fa{box-sizing:content-box;display:var(--fa-display,inline-block);vertical-align:-.125em;height:1em;width:var(--fa-width,1.25em);overflow:visible}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714286em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left,.svg-inline--fa .fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.svg-inline--fa.fa-pull-right,.svg-inline--fa .fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);inset-block-start:.25em;inset-inline-start:calc(-1*var(--fa-li-width,2em))}.fa-layers-counter,.fa-layers-text{text-align:center;display:inline-block;position:absolute}.fa-layers{text-align:center;vertical-align:-.125em;height:1em;width:var(--fa-width,1.25em);display:inline-block;position:relative}.fa-layers .svg-inline--fa{transform-origin:50%;margin:auto;position:absolute;inset:0}.fa-layers-text{transform-origin:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);transform:scale(var(--fa-counter-scale,.25));transform-origin:100% 0;overflow:hidden}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:100% 100%;top:auto}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:0 100%;top:auto;right:auto}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:100% 0}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:0 0}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{vertical-align:.225em;font-size:.625em;line-height:.1em}.fa-xs{vertical-align:.125em;font-size:.75em;line-height:.0833333em}.fa-sm{vertical-align:.0535715em;font-size:.875em;line-height:.0714286em}.fa-lg{vertical-align:-.075em;font-size:1.25em;line-height:.05em}.fa-xl{vertical-align:-.125em;font-size:1.5em;line-height:.0416667em}.fa-2xl{vertical-align:-.1875em;font-size:2em;line-height:.03125em}.fa-width-auto{--fa-width:auto}.fa-fw,.fa-width-fixed{--fa-width:1.25em}.fa-ul{margin-inline-start:var(--fa-li-margin,2.5em);padding-inline-start:0;list-style-type:none}.fa-ul>li{position:relative}.fa-li{text-align:center;width:var(--fa-li-width,2em);line-height:inherit;position:absolute;inset-inline-start:calc(-1*var(--fa-li-width,2em))}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.0625em);box-sizing:var(--fa-border-box-sizing,content-box);padding:var(--fa-border-padding,.1875em .25em)}.fa-pull-left,.fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.fa-pull-right,.fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{animation-name:fa-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{animation-name:fa-beat-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{animation-name:fa-spin;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-bounce,.fa-fade,.fa-beat-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{transition:none!important;animation:none!important}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1)translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9))translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1))translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95))translateY(0)}57%{transform:scale(1,1)translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1)translateY(0)}to{transform:scale(1)translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.svg-inline--fa.fa-inverse{fill:var(--fa-inverse,#fff)}.fa-stack{vertical-align:middle;width:2.5em;height:2em;line-height:2em;display:inline-block;position:relative}.fa-inverse{color:var(--fa-inverse,#fff)}.svg-inline--fa.fa-stack-1x{--fa-width:1.25em;height:1em;width:var(--fa-width)}.svg-inline--fa.fa-stack-2x{--fa-width:2.5em;height:2em;width:var(--fa-width)}.fa-stack-1x,.fa-stack-2x{z-index:var(--fa-stack-z-index,auto);margin:auto;position:absolute;inset:0}
:root{--bg:#111;--violet:#7000ff;--violet-dim:#7000ff1a;--violet-border:#7000ff40;--text:#f0f0f0;--text-muted:#f0f0f073}*{box-sizing:border-box;margin:0;padding:0}.skills-section{width:100%;max-width:900px}.section-label{letter-spacing:.25em;text-transform:uppercase;color:var(--violet);margin-bottom:.8em;font-size:.7rem;font-weight:500}.section-title{letter-spacing:-.03em;font-family:Syne,sans-serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:800;line-height:1}.section-title span{color:var(--text-muted)}.skills-grid{background:#ffffff0d;border:1px solid #ffffff0d;grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.skill-card{background:var(--bg);cursor:default;flex-direction:column;gap:1em;padding:2.2em 2em;transition:background .3s;display:flex;position:relative;overflow:hidden}.skill-card:after{content:"";background:var(--violet);width:0%;height:2px;transition:width .4s;position:absolute;bottom:0;left:0}.skill-card:hover{background:#7000ff0d}.skill-card:hover:after{width:100%}.skill-card:hover .skill-icon{color:var(--violet);transform:scale(1.1)}.skill-card:hover .skill-name{color:var(--text)}.skill-icon{color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:2rem;line-height:1;transition:color .3s,transform .3s}.skill-name{letter-spacing:-.01em;color:var(--text-muted);font-family:Syne,sans-serif;font-size:1rem;font-weight:700;transition:color .3s}.skill-desc{color:var(--text-muted);font-size:.78rem;line-height:1.6}.skill-level{margin-top:auto}.level-label{letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5em;font-size:.62rem}.level-bar{background:#ffffff12;border-radius:2px;height:2px;overflow:hidden}.level-fill{background:var(--violet);height:100%;width:var(--level);border-radius:2px}@media (max-width:700px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:440px){.skills-grid{grid-template-columns:1fr}}
.about-section{justify-content:center;width:100%;display:flex}.about-container{align-items:flex-start;gap:clamp(3em,6vw,7em);width:100%;max-width:900px;display:flex}.about-text{flex:1;min-width:0}.section-label{letter-spacing:.25em;text-transform:uppercase;color:var(--primary-color);margin-bottom:.8em;font-size:.7rem;font-weight:500;display:block}.section-title{letter-spacing:-.03em;color:var(--color-text);margin-bottom:1.5em;font-size:clamp(2rem,5vw,3.2rem);font-weight:800;line-height:1}.section-title span{color:#f0f0f059}.about-bio{color:#f0f0f099;margin-bottom:1.2em;font-size:.92rem;line-height:1.8}.about-bio strong{color:var(--color-text);font-weight:600}.accent{color:var(--primary-color);font-weight:500}.about-traits{border-top:1px solid #ffffff0f;flex-direction:column;gap:1.2em;margin-top:2em;padding-top:2em;display:flex}.trait{flex-direction:column;gap:.3em;display:flex}.trait-header{align-items:center;gap:.6em;display:flex}.trait-dot{background:var(--primary-color);border-radius:50%;flex-shrink:0;width:6px;height:6px}.trait-label{color:var(--color-text);letter-spacing:.01em;font-size:.85rem;font-weight:600}.trait-desc{color:#f0f0f073;padding-left:1.1em;font-size:.78rem;line-height:1.6}.about-stats{background:#ffffff0d;border:1px solid #ffffff0d;flex-shrink:0;grid-template-columns:1fr 1fr;align-self:center;gap:1px;max-width:300px;display:grid}.stat-card{background:#111;flex-direction:column;gap:.4em;padding:2em 1.5em;transition:background .3s;display:flex}.stat-card:hover{background:#7000ff12}.stat-num{color:var(--primary-color);letter-spacing:-.03em;font-size:2rem;font-weight:800;line-height:1}.stat-label{text-transform:uppercase;letter-spacing:.12em;color:#f0f0f066;font-size:.68rem}@media (max-width:768px){.about-container{flex-direction:column}.about-stats{width:100%}}
