:root{--pink:#FF1493;--yellow:#FFF01F;--green:#0F0;--pink-rgb:255,20,147;--yellow-rgb:255,240,31;--green-rgb:0,255,0;--bg-dark:#0a0a0a;--bg-card:#1a1a1a;--bg-card-rgb:26,26,26;--chrome-bg:#0a0a0a;--chrome-text:#F5F5F5;--chrome-text-secondary:rgb(245 245 245/70%);--chrome-border:rgb(255 255 255/10%);--chrome-card-bg:rgb(26 26 26/95%);--text:#F5F5F5;--text-secondary:rgb(245 245 245/70%);--border:rgb(255 255 255/10%);--black:#000;--black-rgb:0,0,0;--white:#fff;--white-rgb:255,255,255;--error:#ef4444;--error-rgb:239,68,68;--pre-bg:#2d2d2d;--text-shadow-yellow:0 0 0 2px var(--bg-dark);--moon:#00BFFF;--sun-icon:var(--yellow)}:root.light{--bg-dark:#f8f8f8;--bg-card:#fff;--chrome-bg:#0a0a0a;--chrome-text:#F5F5F5;--chrome-text-secondary:rgb(245 245 245/70%);--chrome-border:rgb(255 255 255/10%);--chrome-card-bg:rgb(26 26 26/95%);--pink-accessible:#C00F70;--green-accessible:#0B6E0B;--amber-accessible:#856200;--text:#000;--text-secondary:#222;--border:rgb(0 0 0/8%);--sun-icon:#f59e0b;--text-shadow-yellow:0 0 0 1.5px rgb(0 0 0/50%),0 1px 2px rgb(0 0 0/25%)}*{margin:0;padding:0;box-sizing:border-box}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}html{scroll-snap-type:none!important}.contact,.hero,.projects{scroll-snap-align:none!important;scroll-snap-stop:normal!important}}html{scroll-behavior:smooth;scroll-snap-type:y proximity;scrollbar-color:var(--pink) var(--bg-dark);scrollbar-width:thin}::selection{background:var(--moon);color:var(--black)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:var(--pink);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(rgba(255,255,255,.2),rgba(255,255,255,.2)),var(--pink)}body{font-family:Inter,Inter-fallback,system-ui,-apple-system,sans-serif;background-color:var(--bg-dark);color:var(--text)}.app,body{overflow-x:hidden}.app{min-height:100vh}main{overflow-x:hidden;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.skip-link{position:absolute;top:-100px;left:1rem;background:var(--pink);color:#000;padding:.5rem 1rem;border-radius:0 0 6px 6px;font-weight:700;font-size:.875rem;text-decoration:none;z-index:1000;transition:top .2s}.skip-link:focus-visible{top:0;outline:2px solid var(--white);outline-offset:2px}.text-gradient{background:linear-gradient(135deg,var(--pink),var(--green));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0);color:rgba(0,0,0,0);display:inline-block}h1,h2,h3,h4,h5,h6{color:var(--pink);margin:0}.title-neon{text-shadow:0 0 0 2px var(--bg-dark),0 0 10px rgba(var(--pink-rgb),.4),0 0 20px rgba(var(--green-rgb),.2)}@media print{.blog-post__back,.footer,.mobile-nav,.navbar{display:none!important}body{background:#fff;color:#000}.blog-post{padding:0;background:#fff}.blog-post__content{color:#000;font-size:12pt;line-height:1.5;text-align:left}.blog-post__content a[href]:after{content:" (" attr(href) ")";font-size:.8em;color:#555}.blog-post__content pre{border:1px solid #ccc;background:#f9f9f9;color:#000}.blog-post__content code{color:#000;font-weight:600}}.container{width:100%;max-width:1400px;margin:0 auto;padding:0 1.5rem}.btn-main,.scroll-to-top{width:-moz-fit-content;width:fit-content;min-width:min(180px,100%);padding:.75rem 2rem;font-size:.9rem;margin-left:auto;margin-right:auto;display:block;text-align:center;transition:all .3s ease;border-radius:4px;cursor:pointer}.btn-main:hover,.scroll-to-top:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgb(var(--black-rgb)/30%)}.btn-main:disabled,.scroll-to-top:disabled{opacity:.5;cursor:not-allowed;transform:none}.loading-state{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--yellow);font-weight:700;text-shadow:var(--text-shadow-yellow)}.loading-placeholder{min-height:50vh}.footer__dots,.logo-dots,.navbar__logo-flex{display:flex;flex-direction:row;gap:.5rem;align-items:center}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border-width:0}.focus-ring:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0}.reveal.revealed{animation:fade-up .6s ease forwards}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;justify-content:center;transition:background-color .3s ease,color .3s ease,border-color .3s ease;background-color:var(--chrome-bg)}.navbar__content{width:100%;max-width:1400px;display:flex;align-items:center;padding:1rem}@media(min-width:640px){.navbar__content{padding:1.25rem 1.5rem}}@media(min-width:768px){.navbar__content{padding:1.25rem 2rem}}@media(min-width:1024px){.navbar__content{padding:1.25rem 3rem}}@media(min-width:1280px){.navbar__content{padding:1.25rem 50px}}.navbar__logo{display:flex;gap:.375rem;cursor:pointer;text-decoration:none}@media(min-width:640px){.navbar__logo{gap:.5rem}}.navbar__logo:focus-visible{outline:2px solid var(--pink);outline-offset:2px}.navbar__logo-dot{width:.625rem;height:.625rem;border-radius:9999px;transition:transform .3s}@media(min-width:640px){.navbar__logo-dot{width:.75rem;height:.75rem}}.navbar__logo-dot:hover{transform:scale(1.25)}.navbar__logo-dot--pink{background-color:var(--pink);box-shadow:0 0 10px rgba(255,20,147,.4)}.navbar__logo-dot--yellow{background-color:var(--yellow);box-shadow:0 0 10px rgba(255,240,31,.4)}.navbar__logo-dot--green{background-color:var(--green);box-shadow:0 0 10px rgba(0,255,0,.4)}.navbar__spacer{flex:1 1}.navbar__links{display:none;gap:1rem;align-items:center}@media(min-width:768px){.navbar__links{display:flex}}@media(min-width:1024px){.navbar__links{gap:2rem}}.navbar__link{font-weight:500;font-size:.85rem;padding:.5rem 1rem;border-radius:6px;transition:color .3s;text-decoration:none;color:var(--chrome-text)}.navbar__link:focus-visible{outline:2px solid;outline-offset:2px}.navbar__link--pink:hover{color:var(--pink)}.navbar__link--pink:focus-visible{outline-color:var(--pink)}.navbar__link--yellow:hover{color:var(--yellow);text-shadow:0 0 0 2px var(--chrome-bg)}.navbar__link--yellow:focus-visible{outline-color:var(--yellow)}.navbar__link--yellow.is-active{color:var(--yellow);text-shadow:0 0 0 2px var(--chrome-bg)}.navbar__link--green:hover{color:var(--green)}.navbar__link--green:focus-visible{outline-color:var(--green)}.navbar__github{display:flex;align-items:center;transition:color .3s}.navbar__github:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.navbar__github svg{width:1.5rem;height:1.5rem;stroke:var(--pink);fill:none;transition:stroke .3s}.navbar__github:hover svg{stroke:var(--green)}.mobile-nav{display:block;position:fixed;bottom:0;left:0;right:0;z-index:1000;padding-bottom:env(safe-area-inset-bottom)}@media(min-width:768px){.mobile-nav{display:none}}.mobile-nav__container{margin:0;height:53px;box-sizing:border-box;padding:.25rem .5rem;border-radius:0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 -4px 15px rgba(var(--black-rgb),.3);border-top:1px solid var(--chrome-border);transition:all .3s;background-color:var(--chrome-card-bg)}.mobile-nav__items{display:flex;justify-content:space-around;align-items:center;width:100%;max-width:600px;margin:0 auto}.mobile-nav__item{display:flex;align-items:center;justify-content:center;padding:.6rem .75rem;text-decoration:none;transition:all .2s;background:rgba(0,0,0,0);border:none;cursor:pointer}.mobile-nav__item:active{transform:scale(.9)}.mobile-nav__item-icon{width:1.6rem;height:1.6rem;transition:all .3s;display:flex;align-items:center;justify-content:center}.mobile-nav__item-icon svg{width:100%;height:100%}.mobile-nav__item:active .mobile-nav__item-icon{transform:scale(1.1)}.mobile-nav__item--pink svg,.mobile-nav__item--pink:active svg{stroke:var(--pink)}.mobile-nav__item--yellow svg,.mobile-nav__item--yellow:active svg{stroke:var(--yellow)}.mobile-nav__item--green svg,.mobile-nav__item--green:active svg{stroke:var(--green)}.mobile-nav__item--blue svg,.mobile-nav__item--blue:active svg{stroke:var(--moon)}.mobile-nav__item .mobile-nav__item-label{margin-left:.375rem;font-size:.75rem;font-weight:600;color:var(--chrome-text);line-height:1}.mobile-nav__item.is-active{position:relative}.mobile-nav__item.is-active:after{content:"";position:absolute;top:-2px;left:50%;transform:translateX(-50%);width:60%;height:3px;border-radius:0 0 2px 2px;transition:background-color .3s ease}.mobile-nav__item--pink.is-active:after{background:var(--pink)}.mobile-nav__item--yellow.is-active:after{background:var(--yellow)}.mobile-nav__item--green.is-active:after{background:var(--green)}.mobile-nav__toggle-group{display:flex;align-items:center;justify-content:center;padding:.4rem .6rem}.mobile-nav__toggle-group-label{margin-left:.375rem;font-size:.75rem;font-weight:600;color:var(--chrome-text);line-height:1}.hero{display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;transition:background-color .3s ease,color .3s ease,border-color .3s ease;scroll-margin-top:0;padding:100px 1.5rem 40px;background-color:var(--bg-dark);min-height:calc(100svh - 60px)}@media(min-width:768px){.hero{min-height:calc(100svh - 80px)}}@media(min-width:640px){.hero{padding-left:2rem;padding-right:2rem}}@media(min-width:768px){.hero{padding-left:3rem;padding-right:3rem}}@media(min-width:1024px){.hero{padding-left:4rem;padding-right:4rem}}.hero__container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;width:100%;max-width:1024px}@media(min-width:640px){.hero__container{gap:2.5rem}}@media(min-width:768px){.hero__container{gap:3rem}}@media(min-width:1280px){.hero__container{flex-direction:row;gap:6rem}}.hero__image-wrapper{display:flex;align-items:center;justify-content:center}@media(min-width:1024px){.hero__image-wrapper{flex-shrink:0}}.hero__image-container{position:relative;padding:0;border-radius:9999px;transition:all .3s;background:rgba(0,0,0,0);box-shadow:0 0 40px rgba(var(--pink-rgb),.3)}.hero__image-container:hover{transform:scale(1.05);box-shadow:0 0 50px rgba(var(--pink-rgb),.5)}.hero__image-frame{width:180px;height:180px;border-radius:9999px;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:background-color .3s ease,color .3s ease,border-color .3s ease;background-color:var(--bg-card)}@media(min-width:768px){.hero__image-frame{width:220px;height:220px}}@media(min-width:1024px){.hero__image-frame{width:260px;height:260px}}.hero__image{width:calc(100% + 8px);height:calc(100% + 8px);object-fit:contain;border-radius:9999px;margin:-4px}.hero__content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;width:100%;max-width:320px}@media(min-width:640px){.hero__content{max-width:420px;gap:1.25rem}}@media(min-width:768px){.hero__content{max-width:512px;gap:1.5rem}}@media(min-width:1280px){.hero__content{padding-left:3rem}}.hero__title{font-size:1.5rem;font-weight:900}@media(min-width:640px){.hero__title{font-size:1.875rem}}@media(min-width:1024px){.hero__title{font-size:2.25rem}}.hero__handle{font-size:1rem;color:var(--pink);font-weight:600;letter-spacing:.05em}@media(min-width:640px){.hero__handle{font-size:1.125rem}}@media(min-width:1024px){.hero__handle{font-size:1.25rem}}.hero__subtitle{font-size:1rem;font-weight:500;transition:color .3s;color:var(--text)}@media(min-width:640px){.hero__subtitle{font-size:1.125rem}}@media(min-width:1024px){.hero__subtitle{font-size:1.25rem}}.hero__bio{font-size:.875rem;line-height:1.625;text-align:justify;transition:color .3s;color:var(--text-secondary)}@media(min-width:640px){.hero__bio{font-size:1rem}}.hero__tags{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;padding-top:.5rem}@media(min-width:640px){.hero__tags{gap:.75rem;padding-top:.75rem}}.hero__tag{padding:.375rem .75rem;font-weight:500;font-size:.75rem;border:1px solid rgba(0,0,0,0);border-radius:4px;background-color:rgb(var(--white-rgb)/5%)}@media(min-width:640px){.hero__tag{padding:.5rem 1rem;font-size:.875rem}}.hero__tag--pink{color:var(--pink)}.hero__tag--yellow{color:var(--yellow);text-shadow:var(--text-shadow-yellow)}.hero__tag--green{color:var(--green)}.hero__social{display:flex;gap:1rem;align-items:center}.hero__social-link{transition:transform .2s}.hero__social-link:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}.hero__social-link svg{width:1.75rem;height:1.75rem;transition:all .3s}.hero__social-link--github svg{stroke:var(--green)}.hero__social-link--linkedin svg{fill:var(--moon)}.metric-badge{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:.125rem;padding:.375rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500;transition:opacity .2s,transform .2s;border:1px solid rgba(0,0,0,0)}@media(min-width:640px){.metric-badge{padding:.5rem .875rem;font-size:.8125rem}}.metric-badge:hover{transform:translateY(-1px)}.metric-badge:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translateX(-50%) translateY(-.5rem);padding:.5rem .75rem;max-width:220px;font-size:.75rem;line-height:1.4;color:var(--text);background-color:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px rgba(var(--black-rgb),.4);white-space:normal;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s,transform .2s;z-index:10;pointer-events:none}.metric-badge:focus-visible:after,.metric-badge:hover:after{opacity:1;visibility:visible;transform:translateX(-50%) translateY(-.5rem)}.metric-badge:focus{outline:none}.metric-badge:focus-visible{outline:2px solid currentColor;outline-offset:3px}.metric-badge--pink{color:var(--pink);box-shadow:0 0 12px rgba(var(--pink-rgb),.3)}.metric-badge--pink:after{border-left-color:var(--pink)}.metric-badge--yellow{color:var(--yellow);text-shadow:var(--text-shadow-yellow);box-shadow:0 0 12px rgba(var(--yellow-rgb),.3)}.metric-badge--green{color:var(--green);box-shadow:0 0 12px rgba(var(--green-rgb),.3)}.metric-badge__value{font-weight:700}.metric-badge__label{font-weight:500;opacity:1;font-size:.6875rem}@media(min-width:640px){.metric-badge__label{font-size:.75rem}}.projects{min-height:calc(100svh - 60px)}@media(min-width:768px){.projects{min-height:calc(100svh - 80px)}}.projects{display:flex;align-items:center;justify-content:center;scroll-snap-align:start;scroll-snap-stop:always;padding:max(40px,env(safe-area-inset-top)) max(1.5rem,env(safe-area-inset-right)) max(60px,env(safe-area-inset-bottom)) max(1.5rem,env(safe-area-inset-left));transition:background-color .3s ease,color .3s ease,border-color .3s ease;scroll-margin-top:80px;background-color:var(--bg-dark);overflow-x:hidden}@media(min-width:640px){.projects{padding-left:max(2rem,env(safe-area-inset-left));padding-right:max(2rem,env(safe-area-inset-right))}}@media(min-width:768px){.projects{padding-left:max(3.5rem,env(safe-area-inset-left));padding-right:max(3.5rem,env(safe-area-inset-right))}}@media(min-width:1024px){.projects{padding-left:max(4rem,env(safe-area-inset-left));padding-right:max(4rem,env(safe-area-inset-right))}}.projects__container{display:flex;flex-direction:column;align-items:center;gap:2rem;width:100%;max-width:340px;min-width:0}@media(min-width:640px){.projects__container{max-width:448px;gap:2.5rem}}@media(min-width:768px){.projects__container{max-width:672px;gap:3rem}}@media(min-width:1024px){.projects__container{max-width:896px}}.projects__title{font-size:1.5rem;font-weight:900;text-align:center}@media(min-width:640px){.projects__title{font-size:1.875rem}}@media(min-width:1024px){.projects__title{font-size:2.25rem}}.project-card{width:100%;max-width:48rem;min-width:0;padding:1.5rem;border:1px solid rgba(0,0,0,0);border-radius:8px;transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .5s ease,transform .5s ease;background-color:var(--bg-card);box-sizing:border-box}@media(min-width:640px){.project-card{padding:2rem}}@media(min-width:768px){.project-card{padding:2.5rem}}@media(min-width:1024px){.project-card{padding:3.5rem}}.project-card:hover{transform:translateY(-4px);box-shadow:0 0 30px rgba(var(--green-rgb),.5)}.project-card__content{display:flex;flex-direction:column;gap:1.25rem;align-items:center;text-align:center;min-width:0;width:100%;overflow-wrap:break-word}@media(min-width:640px){.project-card__content{gap:1.5rem}}@media(min-width:768px){.project-card__content{gap:1.75rem}}.project-card__description,.project-card__title{min-width:0;max-width:100%}.project-card__featured{align-self:center;padding:.25rem .75rem;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--green);border:1px solid var(--green);border-radius:9999px;box-shadow:0 0 12px rgba(var(--green-rgb),.4)}@media(min-width:640px){.project-card__featured{font-size:.75rem}}.project-card__featured--wip{color:var(--green);border-color:var(--green);box-shadow:0 0 12px rgba(var(--green-rgb),.4);text-shadow:0 0 0 2px var(--bg-dark)}.project-card__metrics{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}@media(min-width:640px){.project-card__metrics{gap:.75rem}}.project-card__actions{display:flex;justify-content:center;width:100%;min-width:0}.project-card__details-link{max-width:100%;font-size:.875rem;font-weight:600;color:var(--green);text-decoration:none;transition:color .2s,box-shadow .2s}.project-card__details-link:hover{color:var(--yellow);text-decoration:underline}.project-card__details-link:focus-visible{outline:2px solid var(--green);outline-offset:4px}.project-card__links{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;align-items:center;width:100%;min-width:0}.project-card__title{font-size:1.25rem;font-weight:700}@media(min-width:640px){.project-card__title{font-size:1.5rem}}.project-card__description{font-size:.875rem;line-height:1.625;transition:color .3s;color:var(--text);text-align:justify}@media(min-width:640px){.project-card__description{font-size:1rem}}.project-card__stack{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}@media(min-width:640px){.project-card__stack{gap:.75rem}}.project-card__tech{padding:.25rem .625rem;font-weight:500;font-size:.75rem;border-radius:10px}@media(min-width:640px){.project-card__tech{padding:.375rem .75rem;font-size:.875rem}}.project-card__tech--pink{color:var(--pink)}.project-card__tech--yellow{color:var(--yellow);text-shadow:var(--text-shadow-yellow)}.project-card__tech--green{color:var(--green)}.project-card__link{display:inline-block;padding:.75rem 1.5rem;font-weight:600;font-size:.9rem;border-radius:9999px;text-decoration:none;transition:all .3s;min-width:0;max-width:100%}@media(min-width:640px){.project-card__link{padding:.875rem 2rem;font-size:1rem}}.project-card__link:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}.project-card__link--primary{color:var(--black);background-color:var(--yellow)}.project-card__link--primary:hover{box-shadow:0 8px 30px rgba(var(--pink-rgb),.6)}.project-card__link--secondary{color:var(--black);background-color:var(--yellow);border:1px solid rgba(0,0,0,0)}.project-card__link--secondary:hover{box-shadow:0 8px 30px rgba(var(--pink-rgb),.6)}.project-page{min-height:calc(100svh - 60px)}@media(min-width:768px){.project-page{min-height:calc(100svh - 80px)}}.project-page{padding:max(2rem,env(safe-area-inset-top)) max(1.5rem,env(safe-area-inset-right)) calc(max(2rem,env(safe-area-inset-bottom)) + 5.5rem) max(1.5rem,env(safe-area-inset-left));overflow-x:hidden;scroll-margin-top:80px}@media(min-width:640px){.project-page{padding:max(3rem,env(safe-area-inset-top)) max(2rem,env(safe-area-inset-right)) max(3rem,env(safe-area-inset-bottom)) max(2rem,env(safe-area-inset-left))}}@media(min-width:768px){.project-page{padding-top:max(4.5rem,env(safe-area-inset-top));padding-bottom:calc(max(3rem,env(safe-area-inset-bottom)) + 4.5rem)}}.project-page__container{max-width:720px;margin:0 auto;min-width:0}.project-page__back{display:inline-block;margin-bottom:1.5rem;padding:.75rem 1rem;min-height:44px;line-height:1.4;color:var(--text-secondary);text-decoration:none;transition:color .2s;margin-left:-.5rem;scroll-margin-top:5rem}.project-page__back:hover{color:var(--pink)}.project-page__back:focus-visible{outline:2px solid var(--pink);outline-offset:4px}.project-page__header{margin-bottom:1.5rem}.project-page__title{font-size:1.75rem;font-weight:700;margin-bottom:.5rem}@media(min-width:640px){.project-page__title{font-size:2rem}}.project-page__tagline{font-size:1rem;color:var(--text-secondary);margin-bottom:1rem}.project-page__description{font-size:.9375rem;line-height:1.65;margin-bottom:1rem;text-align:justify}.project-page__description .project-page__keyword{color:var(--green);font-weight:700}.project-page__meta{font-size:.875rem;color:var(--text-secondary)}.project-page__stack{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.project-page__tech{padding:.25rem .625rem;font-size:.8125rem;color:var(--pink);border:1px solid rgba(var(--pink-rgb),.4);border-radius:9999px}.project-page__metrics,.project-page__section{margin-bottom:1.5rem}.project-page__section-title{font-size:1rem;font-weight:600;margin-bottom:.5rem}.project-page__list,.project-page__metrics ul{margin:0;padding-left:1.25rem;font-size:.9375rem;line-height:1.6}.project-page__text{margin:0;font-size:.9375rem;line-height:1.65;color:var(--text-secondary)}.project-page__challenges{display:grid;grid-gap:1rem;gap:1rem}.project-page__challenge{padding:1rem;border:1px solid var(--border);border-radius:8px;background-color:var(--bg-card)}.project-page__challenge h3{margin:0 0 .5rem;font-size:.975rem}.project-page__challenge p{margin:.5rem 0 0;font-size:.9375rem;line-height:1.6;color:var(--text-secondary)}.project-page__challenge strong{color:var(--text)}.project-page__links{display:flex;flex-wrap:wrap;gap:.75rem}.project-page__link{display:inline-block;padding:.75rem 1.5rem;font-weight:600;font-size:.9rem;color:var(--black);background-color:var(--yellow);border-radius:9999px;text-decoration:none;transition:box-shadow .2s}.project-page__link:hover{box-shadow:0 4px 20px rgba(var(--pink-rgb),.5)}.project-page__link:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}.project-page__link--secondary{color:var(--text);background-color:rgba(0,0,0,0);border:1px solid var(--border)}.project-page__link--secondary:hover{color:var(--green);box-shadow:0 0 18px rgba(var(--green-rgb),.25)}.blog-list{min-height:calc(100svh - 60px)}@media(min-width:768px){.blog-list{min-height:calc(100svh - 80px)}}.blog-list{display:flex;justify-content:center;padding:120px 1.5rem 80px;transition:background-color .3s ease,color .3s ease,border-color .3s ease;background-color:var(--bg-dark)}@media(min-width:640px){.blog-list{padding-left:2rem;padding-right:2rem}}@media(min-width:768px){.blog-list{padding-left:3rem;padding-right:3rem}}@media(min-width:1024px){.blog-list{padding-left:4rem;padding-right:4rem}}.blog-list__container{width:100%;max-width:56rem;text-align:center}.blog-list__title{font-size:1.875rem;font-weight:900;text-align:center;margin-bottom:1rem;transition:color .3s}@media(min-width:640px){.blog-list__title{font-size:2.25rem}}@media(min-width:1024px){.blog-list__title{font-size:3rem}}.blog-list__subtitle{font-size:.875rem;text-align:center;margin-bottom:3rem;max-width:32rem;margin-left:auto;margin-right:auto;transition:color .3s;color:var(--text-secondary)}@media(min-width:640px){.blog-list__subtitle{font-size:1rem}}.blog-list__empty{text-align:center;padding-top:4rem;padding-bottom:4rem}.blog-list__empty-text{font-size:1.125rem;margin-bottom:1rem;color:var(--text-secondary)}.blog-list__empty-subtext{font-size:.875rem;color:var(--text-secondary)}.blog-list__grid{display:flex;flex-direction:column;gap:2rem}.blog-card{display:block;padding:1.5rem;border:1px solid var(--border);border-radius:.5rem;transition:background-color .3s ease,color .3s ease,border-color .3s ease,transform .3s ease,box-shadow .3s ease;text-decoration:none;background-color:var(--bg-card)}@media(min-width:640px){.blog-card{padding:2rem}}.blog-card:hover{transform:translateY(-3px);box-shadow:0 8px 30px rgba(var(--green-rgb),.15);border-color:rgba(var(--green-rgb),.5)}.blog-card__content{display:flex;flex-direction:column;gap:1rem}.blog-card__image{width:100%;height:auto;max-height:14rem;object-fit:contain;object-position:center;border-radius:.25rem}.blog-card__meta{display:flex;align-items:center;gap:.75rem;font-size:.75rem;color:var(--text-secondary)}.blog-card__tags{display:flex;gap:.5rem}.blog-card__title{font-size:1.25rem;font-weight:700;transition:color .3s;display:block}@media(min-width:640px){.blog-card__title{font-size:1.5rem}}.blog-card:hover .blog-card__title{color:var(--green)}.blog-card__description{font-size:.875rem;line-height:1.625;color:var(--text-secondary)}@media(min-width:640px){.blog-card__description{font-size:1rem}}.blog-card__link{font-size:.875rem;color:var(--yellow);font-weight:500;transition:background-color .3s ease,color .3s ease,border-color .3s ease}.blog-post{min-height:calc(100svh - 60px)}@media(min-width:768px){.blog-post{min-height:calc(100svh - 80px)}}.blog-post{display:flex;justify-content:center;padding:120px 1.5rem 80px;transition:background-color .3s;background-color:var(--bg-dark)}@media(min-width:640px){.blog-post{padding-left:2rem;padding-right:2rem}}@media(min-width:768px){.blog-post{padding-left:3rem;padding-right:3rem}}@media(min-width:1024px){.blog-post{padding-left:4rem;padding-right:4rem}}.blog-post__container{width:100%;max-width:48rem}.blog-post__back{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;margin-bottom:3rem;text-decoration:none;transition:color .3s;color:var(--text-secondary)}.blog-post__back:hover{color:var(--green)}.blog-post__article{padding:1.5rem;transition:background-color .3s;background-color:var(--bg-card)}@media(min-width:640px){.blog-post__article{padding:2rem}}@media(min-width:768px){.blog-post__article{padding:2.5rem}}.blog-post__header{margin-bottom:4rem}.blog-post__image{width:100%;height:auto;max-height:28rem;object-fit:contain;object-position:center;border-radius:.5rem;margin-bottom:2rem}.blog-post__title{font-size:1.25rem;font-weight:900;line-height:1.25;margin-bottom:1.5rem;display:block}@media(min-width:640px){.blog-post__title{font-size:1.5rem}}@media(min-width:1024px){.blog-post__title{font-size:1.75rem}}.blog-post__meta{display:flex;align-items:center;gap:.75rem;font-size:.875rem;color:var(--text-secondary)}.blog-post__meta time{display:inline-flex;align-items:center}.blog-post__meta span{display:inline-block}.blog-post__content{font-size:.875rem;line-height:1.625;color:var(--text);text-align:justify}@media(min-width:640px){.blog-post__content{font-size:1rem}}.blog-post__content h1,.blog-post__content h2,.blog-post__content h3,.blog-post__content h4,.blog-post__content h5,.blog-post__content h6{margin-top:2rem;margin-bottom:1rem;text-align:left}.blog-post__content p{margin-bottom:1rem}.blog-post__content ol,.blog-post__content ul{margin-bottom:1rem;padding-left:1.5rem}.blog-post__content li{margin-bottom:.5rem}.blog-post__content code{color:var(--green);font-weight:600}:root.light .blog-post__content code{text-shadow:1px 1px 1px rgba(0,0,0,.2)}.blog-post__content strong{color:var(--green);font-weight:700}:root.light .blog-post__content strong{text-shadow:1px 1px 1px rgba(0,0,0,.2)}.blog-post__content pre{background-color:var(--pre-bg);padding:1rem;border-radius:.5rem;overflow-x:auto;margin-bottom:1rem}.blog-post__content a{color:var(--green);text-decoration:none}.blog-post__content a:hover{color:var(--yellow);text-shadow:var(--text-shadow-yellow)}.blog-post__error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem;gap:1rem}.blog-post__error-text{color:var(--pink);font-size:1.25rem}.blog-post__error-link{color:var(--green);text-decoration:none}.blog-post__error-link:hover{color:var(--yellow);text-shadow:var(--text-shadow-yellow)}.blog-list__back{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;margin-bottom:3rem;text-decoration:none;transition:color .3s;color:var(--text-secondary)}.blog-list__back:hover{color:var(--green)}.contact{min-height:calc(100svh - 60px)}@media(min-width:768px){.contact{min-height:calc(100svh - 80px)}}.contact{display:flex;align-items:flex-start;justify-content:center;scroll-margin-top:80px;padding:60px 1.5rem 80px;background-color:var(--bg-dark)}@media(min-width:640px){.contact{padding-left:2rem;padding-right:2rem}}@media(min-width:768px){.contact{padding-left:3rem;padding-right:3rem}}@media(min-width:1024px){.contact{padding-left:4rem;padding-right:4rem}}.contact__container{display:flex;flex-direction:column;align-items:center;width:100%;max-width:320px;gap:1.5rem}@media(min-width:640px){.contact__container{max-width:448px;gap:2rem}}@media(min-width:768px){.contact__container{max-width:512px}}@media(min-width:1024px){.contact__container{max-width:576px}}.contact__title{font-size:1.5rem;font-weight:900;text-align:center}@media(min-width:640px){.contact__title{font-size:1.875rem}}@media(min-width:1024px){.contact__title{font-size:2.25rem}}.contact__description{text-align:center;font-size:.875rem;max-width:32rem;padding:0 .5rem;color:var(--text-secondary)}@media(min-width:640px){.contact__description{font-size:1rem;padding:0}}.contact__form{width:100%;padding:1rem;background-color:var(--bg-card);border:1px solid rgba(0,0,0,0);border-radius:8px}@media(min-width:640px){.contact__form{padding:1.5rem}}@media(min-width:768px){.contact__form{padding:2rem}}@media(min-width:1024px){.contact__form{padding:2.5rem}}.contact__fields{display:flex;flex-direction:column;gap:1.25rem}@media(min-width:640px){.contact__fields{gap:1.5rem}}@media(min-width:768px){.contact__fields{gap:2rem}}.contact__cv{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:-moz-fit-content;width:fit-content;min-width:200px;margin:0 auto .5rem;padding:.75rem 1.5rem;border:1px solid var(--yellow);border-radius:9999px;color:var(--yellow);font-weight:700;font-size:.9rem;text-decoration:none}@media(min-width:640px){.contact__cv{padding:.875rem 2rem;font-size:1rem}}.contact__cv:hover{background-color:rgba(var(--yellow-rgb),.08);box-shadow:0 8px 30px rgba(var(--pink-rgb),.25)}.contact__cv:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}.contact__group{display:flex;flex-direction:column;gap:.75rem}.contact__label{font-weight:600;font-size:.875rem}.contact__label--name{color:var(--pink)}.contact__label--email{color:var(--yellow)}.contact__label--message{color:var(--green)}.contact__input,.contact__textarea{width:100%;padding:.75rem 1rem;border:1px solid rgba(0,0,0,0);outline:none;background-color:var(--bg-card);color:var(--text)}.contact__input::placeholder,.contact__textarea::placeholder{opacity:.5}.contact__input--name{border-color:rgba(var(--pink-rgb),.3)}.contact__input--name:focus{border-color:var(--pink);box-shadow:0 0 0 2px rgba(var(--pink-rgb),.2)}.contact__input--email{border-color:rgba(var(--yellow-rgb),.3)}.contact__input--email:focus{border-color:var(--yellow);box-shadow:0 0 0 2px rgba(var(--yellow-rgb),.2)}.contact__textarea--message{border-color:rgba(var(--green-rgb),.3);resize:none}.contact__textarea--message:focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(var(--green-rgb),.2)}.contact__submit{width:-moz-fit-content;width:fit-content;min-width:200px;padding:.75rem 1.5rem;margin:1rem auto 0;font-weight:700;font-size:.9rem;color:var(--black);background-color:var(--yellow);border:none;border-radius:9999px;cursor:pointer}@media(min-width:640px){.contact__submit{padding:.875rem 2rem;font-size:1rem}}.contact__submit:hover:not(:disabled){box-shadow:0 8px 30px rgba(var(--pink-rgb),.6)}.contact__submit:disabled{opacity:.5;cursor:not-allowed}.contact__submit-content{display:flex;align-items:center;justify-content:center;gap:.5rem}.contact__status{padding:1rem;display:flex;align-items:center;gap:.75rem;border:1px solid}.contact__status--success{background-color:rgba(var(--green-rgb),.2);border-color:var(--green);color:var(--green);font-weight:600}.contact__status--error{background-color:rgba(var(--error-rgb),.2);border-color:var(--error);color:var(--error);font-weight:600}.spinner{animation:spin 1s linear infinite;width:1.25rem;height:1.25rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.footer{display:none;position:fixed;bottom:0;left:0;right:0;z-index:1000;justify-content:center;transition:background-color .3s ease,color .3s ease,border-color .3s ease;background-color:var(--chrome-bg)}@media(min-width:768px){.footer{display:flex}}.footer__content{width:100%;max-width:1400px;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem}@media(min-width:640px){.footer__content{padding:1rem 1.5rem}}@media(min-width:768px){.footer__content{padding:1rem 2rem}}@media(min-width:1024px){.footer__content{padding:1rem 3rem}}@media(min-width:1280px){.footer__content{padding:1rem 50px}}.footer__github{display:flex;align-items:center}.footer__github:focus-visible{outline:2px solid var(--pink);outline-offset:2px}.footer__github svg{width:1.5rem;height:1.5rem;stroke:var(--pink);fill:none;transition:all .3s}.footer__github:hover svg{stroke:var(--green)}.footer__text{font-size:.75rem;text-align:center;color:var(--chrome-text-secondary)}@media(min-width:768px){.footer__text{font-size:.875rem}}.footer__dots{display:flex;gap:.5rem}.footer__dot{width:.625rem;height:.625rem;border-radius:9999px;transition:transform .3s;cursor:pointer}@media(min-width:768px){.footer__dot{width:.75rem;height:.75rem}}.footer__dot:hover{transform:scale(1.25)}.footer__dot--pink{background-color:var(--pink);box-shadow:0 0 10px rgba(255,20,147,.4)}.footer__dot--yellow{background-color:var(--yellow);box-shadow:0 0 10px rgba(255,240,31,.4)}.footer__dot--green{background-color:var(--green);box-shadow:0 0 10px rgba(0,255,0,.4)}.theme-toggle{position:relative;padding:.5rem;background:none;border:none;cursor:pointer;transition:transform .2s;display:flex;align-items:center;justify-content:center}.theme-toggle:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.theme-toggle:active{transform:scale(.95)}.theme-toggle__icon{width:1.5rem;height:1.5rem;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:all .3s}.theme-toggle__icon--sun{stroke:var(--yellow)}:root.light .theme-toggle__icon--sun{stroke:var(--sun-icon)}.theme-toggle:hover .theme-toggle__icon--sun{transform:rotate(45deg)}.theme-toggle__icon--sun.is-visible{transform:scale(1) rotate(0);opacity:1}.theme-toggle__icon--sun.is-hidden{transform:scale(0) rotate(-90deg);opacity:0;position:absolute}.theme-toggle__icon--moon{stroke:var(--moon)}.theme-toggle__icon--moon.is-visible{transform:scale(1) rotate(0);opacity:1}.theme-toggle__icon--moon.is-hidden{transform:scale(0) rotate(90deg);opacity:0;position:absolute}.error-boundary{height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-dark);color:var(--text);text-align:center;padding:2rem}.error-boundary .error-content{max-width:500px}.error-boundary .error-content .error-icon{font-size:8rem;font-weight:900;display:block;margin-bottom:1rem;color:var(--pink);text-shadow:0 0 7px var(--pink),0 0 10px var(--pink),0 0 21px var(--pink),0 0 42px var(--pink),0 0 82px var(--pink),0 0 92px var(--pink)}.error-boundary .error-content h1{color:var(--pink);font-family:Inter,sans-serif;font-weight:700;font-size:2rem;margin-bottom:1rem;text-shadow:0 0 7px var(--pink),0 0 10px var(--pink)}.error-boundary .error-content p{color:var(--text-secondary);margin-bottom:2rem;line-height:1.6}.error-boundary .error-content .btn-main{box-shadow:0 0 7px var(--pink),0 0 10px var(--pink)}.error-boundary .error-content .error-details{margin-top:2rem;padding:1rem;background:var(--bg-card);border:1px solid rgba(var(--pink-rgb),.2);border-radius:8px;font-family:monospace;font-size:.8rem;color:var(--yellow);text-shadow:var(--text-shadow-yellow);text-align:left;overflow-x:auto}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,rgba(255,255,255,.03) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:skeleton-pulse 1.5s ease-in-out infinite;border-radius:4px;min-height:1em}.blog-card--skeleton,.project-card--skeleton{pointer-events:none;opacity:.6}.scroll-to-top{position:fixed;bottom:calc(4.5rem + env(safe-area-inset-bottom, 0px));right:2rem}@media(min-width:768px){.scroll-to-top{bottom:calc(5.5rem + env(safe-area-inset-bottom, 0px))}}.scroll-to-top{z-index:999;opacity:0;pointer-events:none;transition:opacity .3s ease;width:48px;height:48px;min-width:unset;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;background:var(--yellow);color:var(--black);border:none;cursor:pointer}.scroll-to-top:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}@media print{.scroll-to-top{display:none}}.scroll-to-top--visible{opacity:1;pointer-events:auto}.not-found{height:100svh;display:flex;align-items:center;justify-content:center;background-color:var(--bg-dark);position:relative;overflow:hidden;padding:2rem}.not-found__glow{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(var(--pink-rgb),.15) 0,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.not-found__content{position:relative;text-align:center;max-width:480px}.not-found__number{display:block;font-size:clamp(6rem,15vw,12rem);font-weight:900;line-height:1;color:rgba(0,0,0,0);-webkit-text-stroke:2px var(--pink);text-shadow:0 0 5px var(--pink),0 0 10px var(--pink),0 0 20px var(--pink),0 0 35px var(--pink)}.not-found__title{font-size:clamp(1.5rem,4vw,2.5rem);font-weight:700;color:var(--text);margin-top:.5rem;margin-bottom:1rem;text-shadow:0 0 7px rgba(var(--pink-rgb),.4),0 0 20px rgba(var(--pink-rgb),.2)}.not-found__text{color:var(--text-secondary);line-height:1.7;margin-bottom:2.5rem}.not-found__btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 2rem;font-weight:700;font-size:1rem;color:var(--black);background:var(--pink);border:none;border-radius:9999px;text-decoration:none;transition:box-shadow .3s,transform .2s}.not-found__btn:hover{box-shadow:0 0 15px var(--pink),0 0 30px var(--pink),0 0 60px var(--pink);transform:scale(1.05)}:root.light body{background-color:var(--bg-dark);background-image:radial-gradient(rgba(0,0,0,.06) .5px,transparent 0);background-size:40px 40px;background-attachment:fixed;color:var(--text)}:root.light .blog-card,:root.light .blog-post__article,:root.light .contact__form,:root.light .project-card{background-color:#fff;border-color:var(--border);box-shadow:0 10px 25px -5px rgba(var(--pink-rgb),.1),0 8px 10px -6px rgba(var(--pink-rgb),.1);border-radius:8px}:root.light .blog-card:hover,:root.light .blog-post__article:hover,:root.light .contact__form:hover,:root.light .project-card:hover{border-color:var(--pink);box-shadow:0 15px 30px -5px rgba(var(--pink-rgb),.2)}:root.light .blog-card__title,:root.light .blog-post__title,:root.light h1,:root.light h2,:root.light h3,:root.light h4,:root.light h5,:root.light h6{color:var(--text)}:root.light .text-gradient{background:linear-gradient(90deg,var(--pink),#0E8A0E);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:rgba(0,0,0,0)}:root.light .navbar{background-color:var(--chrome-bg)}:root.light .hero__tag:nth-child(3n+1){background-color:var(--pink);color:#000}:root.light .hero__tag:nth-child(3n+2){background-color:var(--yellow);color:#000}:root.light .hero__tag:nth-child(3n+3){background-color:var(--green);color:#000}:root.light .project-card__tech:nth-child(3n+1){background-color:var(--pink);color:#000}:root.light .project-card__tech:nth-child(3n+2){background-color:var(--yellow);color:#000}:root.light .project-card__tech:nth-child(3n+3){background-color:var(--green);color:#000}:root.light .contact__input,:root.light .contact__textarea{background-color:#fff;color:var(--text);border-color:var(--border)}:root.light .contact__input:focus,:root.light .contact__textarea:focus{border-color:var(--text);box-shadow:0 0 0 4px rgba(0,0,0,.05)}:root.light .title-neon{color:var(--pink);text-shadow:none;border-bottom:none}:root.light .blog-card__link{color:#856200;text-shadow:none}:root.light .blog-card__link:hover{color:#8f6b00;text-shadow:0 1px 0 rgba(0,0,0,.45),var(--text-shadow-yellow)}:root.light .metric-badge{border-color:rgba(0,0,0,.2)}:root.light .metric-badge--pink{color:#d11072;border-color:rgba(var(--pink-rgb),.5)}:root.light .metric-badge--yellow{color:#856200;border-color:rgba(0,0,0,.35);text-shadow:var(--text-shadow-yellow)}:root.light .metric-badge--green{color:#0e8a0e;border-color:rgba(var(--green-rgb),.4)}:root.light .project-card__featured{color:#0e8a0e;border-color:#0e8a0e}:root.light .project-card__details-link{color:#0e8a0e}:root.light .project-card__tech--pink{color:#d11072}:root.light .project-card__tech--green{color:#0e8a0e}:root.light .project-card__tech--yellow{background-color:var(--yellow);color:#000;text-shadow:none}:root.light .contact__cv{color:#856200;border-color:#856200;text-shadow:none}:root.light p{color:var(--text-secondary)}:root.light .hero__handle{color:#c00f70}:root.light .hero__social-link svg{color:var(--text);opacity:.7}:root.light .hero__social-link svg:hover{opacity:1}:root.light .footer{background-color:var(--chrome-bg)}:root.light .footer .footer__text,:root.light .footer a,:root.light .footer span{color:var(--chrome-text-secondary)}:root.light .footer svg{stroke:var(--pink)}:root.light .contact__label--name{color:#c00f70}:root.light .contact__label--email{color:#856200}:root.light .contact__label--message{color:#0b6e0b}:root.light .contact__input::placeholder,:root.light .contact__textarea::placeholder{color:#595959;opacity:1}:root.light .contact__status--success{color:#0a5c0a}:root.light .contact__status--error{color:#b91c1c}:root.light .blog-post__content a{color:#0b6e0b}:root.light .blog-post__content a:hover{color:#856200;text-shadow:none}:root.light .blog-post__content code,:root.light .blog-post__content strong{color:#0b6e0b;text-shadow:none}:root.light .blog-post__back:hover{color:#0b6e0b}:root.light .blog-post__error-text{color:#c00f70}:root.light .blog-post__error-link{color:#0b6e0b}:root.light .blog-post__error-link:hover{color:#856200;text-shadow:none}:root.light .project-page__back:hover{color:#c00f70}:root.light .project-page__keyword{color:#0b6e0b}:root.light .project-page__tech{color:#c00f70}:root.light .project-page__link--secondary:hover{color:#0b6e0b}:root.light .error-details,:root.light .loading-state{color:#856200;text-shadow:none}