@font-face{font-family:Inter;src:url(/vendor/fonts/inter/inter-latin-300-normal.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/vendor/fonts/inter/inter-latin-400-normal.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/vendor/fonts/inter/inter-latin-500-normal.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/vendor/fonts/inter/inter-latin-600-normal.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/vendor/fonts/inter/inter-latin-700-normal.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Press Start 2P";src:url(/vendor/fonts/press-start-2p/press-start-2p-latin-400-normal.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Playfair Display;src:url(/vendor/fonts/playfair-display/playfair-display-latin-700-normal.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Playfair Display;src:url(/vendor/fonts/playfair-display/playfair-display-latin-800-normal.woff2)format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Playfair Display;src:url(/vendor/fonts/playfair-display/playfair-display-latin-400-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--red:#c51d34;--dark-gray:#2e2e30;--gray:gray;--gray-text:#5a5a5a;--light-gray:#f5f5f5;--cream-white:#fdfbf7}[data-theme=dark]{--red:#e63946;--dark-gray:#e8e8e8;--gray:#b0b0b0;--gray-text:#c8c8c8;--light-gray:#2a2a2c;--cream-white:#1a1a1c}body{transition:background-color .3s,color .3s}.navbar,section,.footer{transition:background-color .3s,border-color .3s}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:80px}body{background-color:var(--cream-white);color:var(--dark-gray);scroll-behavior:smooth;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:16px;line-height:1.6}@media (prefers-reduced-motion:no-preference){html,*{scroll-behavior:smooth}}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--cream-white)}::-webkit-scrollbar-thumb{background:var(--red);border:2px solid var(--cream-white);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#a01628}html{scrollbar-width:thin;scrollbar-color:var(--red) var(--cream-white)}[data-theme=dark] ::-webkit-scrollbar-track{background:var(--cream-white)}[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--red);border:2px solid var(--cream-white)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#ff4757}[data-theme=dark] html{scrollbar-color:var(--red) var(--cream-white)}.container{max-width:900px;margin:0 auto;padding:0 20px}@media (max-width:400px){.container{padding:0 12px}}@media (max-width:320px){.container{padding:0 8px}}.navbar{background:var(--cream-white);z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:2px solid #0000;width:100%;padding:1.25rem 0;transition:all .3s;position:fixed;top:0;box-shadow:0 2px 10px #0000000d}.navbar:after{content:"";background:linear-gradient(90deg, transparent, var(--red), transparent);opacity:0;width:100%;height:2px;transition:opacity .3s;position:absolute;bottom:0;left:0}.navbar:hover:after{opacity:.3}[data-theme=dark] .navbar{background:var(--cream-white);box-shadow:0 2px 10px #0003}[data-theme=dark] .navbar:after{background:linear-gradient(90deg, transparent, var(--red), transparent)}.nav-container{justify-content:space-between;align-items:center;max-width:900px;margin:0 auto;padding:0 20px;display:flex}.nav-controls{align-items:center;gap:1.5rem;display:flex}.theme-toggle{color:var(--dark-gray);cursor:pointer;will-change:transform;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:.5rem;font-size:1.2rem;transition:color .2s;display:flex;position:relative;overflow:visible}.theme-toggle:before{content:"";background:var(--red);opacity:0;z-index:-1;will-change:transform, opacity;border-radius:50%;width:40px;height:40px;transition:transform .3s,opacity .3s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.theme-toggle:hover{color:var(--red)}.theme-toggle:hover:before{opacity:.1;transform:translate(-50%,-50%)scale(1)}.theme-toggle i{z-index:1;will-change:transform;transform-origin:50%;display:block;position:relative}.theme-toggle.animating i{animation:.4s cubic-bezier(.4,0,.2,1) theme-rotate}@keyframes theme-rotate{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.1)}to{transform:rotate(360deg)scale(1)}}.theme-toggle:after{content:"";background:radial-gradient(circle, var(--red) 0%, transparent 70%);opacity:0;pointer-events:none;z-index:0;will-change:width, height, opacity;border-radius:50%;width:100%;height:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.theme-toggle.clicked:after{animation:.4s ease-out ripple}@keyframes ripple{0%{opacity:.5;width:0;height:0}to{opacity:0;width:50px;height:50px}}[data-theme=dark] .theme-toggle{color:var(--dark-gray);transition:color .2s}[data-theme=dark] .theme-toggle:hover{color:var(--red)}.logo-link{color:var(--dark-gray);letter-spacing:0;text-transform:none;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;cursor:pointer;font-family:"Press Start 2P",Courier New,monospace;font-size:.7rem;font-weight:400;line-height:1.8;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-block;position:relative}.logo{position:relative}.logo-link:before{content:"";background:var(--red);transform-origin:0;width:0;height:2px;transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-2px;left:0;transform:scaleX(0)}.logo-link:hover{color:var(--red);filter:drop-shadow(0 0 8px #c51d3499);transform:translateY(-1px)}.logo-link:hover:before{transform:scaleX(1)}[data-theme=dark] .logo-link{color:var(--dark-gray)}[data-theme=dark] .logo-link:hover{color:var(--red);filter:drop-shadow(0 0 10px #e63946b3);transform:translateY(-1px)}.nav-menu{color:var(--gray-text);align-items:center;gap:2.5rem;list-style:none;display:flex}.nav-image-container,.nav-close-container{display:none}.nav-link{color:var(--gray-text);text-transform:lowercase;letter-spacing:.5px;padding:.5rem 0;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.nav-link:after{content:"";background:var(--red);width:100%;height:2px;transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:50%;transform:translate(-50%)scaleX(0)}.nav-link:hover,.nav-link.active{color:var(--red)}.nav-link:hover:after,.nav-link.active:after{transform:translate(-50%)scaleX(1)}.nav-link.active{color:var(--red);font-weight:600}.hamburger{cursor:pointer;flex-direction:column;gap:6px;padding:.5rem;transition:transform .3s;display:none}.hamburger:hover{transform:scale(1.1)}.hamburger span{background:var(--dark-gray);border-radius:2px;width:28px;height:3px;transition:all .3s cubic-bezier(.4,0,.2,1)}.hamburger.active span:first-child{transform:rotate(45deg)translate(8px,8px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg)translate(7px,-7px)}section{padding:60px 20px}@media (max-width:400px){section{padding:40px 12px}}@media (max-width:320px){section{padding:30px 8px}}.section-title{color:var(--dark-gray);text-transform:capitalize;text-align:left;margin-bottom:2.5rem;font-size:1.5rem;font-weight:700;overflow:visible}.text-animate-pending{opacity:0}.text-word{white-space:nowrap;display:inline-block}.text-char{white-space:pre;will-change:transform, opacity;display:inline-block}.hero-title.text-animate,.section-title.text-animate,.project-detail-title.text-animate,.privacy-title.text-animate,.text-animate .text-char{text-transform:none}.text-animate .text-char{opacity:0;animation:.35s cubic-bezier(.22,1.35,.36,1) forwards text-char-in;animation-delay:calc(var(--char-index,0) * 35ms);transform:translateY(30px)rotate(45deg)scale(.5)}@keyframes text-char-in{0%{opacity:0;transform:translateY(30px)rotate(45deg)scale(.5)}60%{opacity:1}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}@media (prefers-reduced-motion:reduce){.text-animate-pending{opacity:1}.text-animate .text-char{opacity:1;animation:none;transform:none}}.easter-egg{z-index:10001;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s cubic-bezier(.68,-.55,.265,1.55);position:absolute;top:calc(100% + 15px);left:0;transform:translateY(-10px)scale(.9)}.easter-egg.show{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.easter-egg-content{background:linear-gradient(135deg, var(--cream-white) 0%, #faf8f3 100%);border:3px solid var(--red);text-align:center;border-radius:12px;width:auto;min-width:220px;max-width:500px;padding:1.25rem 1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-block;position:relative;overflow:visible;box-shadow:0 12px 32px #c51d3440,0 4px 12px #00000026,0 0 0 1px #c51d341a,inset 0 1px 2px #fffc}.easter-egg-content:before{content:"";background:linear-gradient(135deg, var(--red), #e63946, var(--red));opacity:0;z-index:-1;filter:blur(8px);border-radius:12px;transition:opacity .3s;position:absolute;inset:-3px}.easter-egg.show .easter-egg-content:before{opacity:.3;animation:2s ease-in-out infinite easter-egg-glow}@keyframes easter-egg-glow{0%,to{opacity:.3;filter:blur(8px)}50%{opacity:.5;filter:blur(12px)}}.easter-egg-image-container{margin-bottom:.75rem;display:inline-block;position:relative}.easter-egg-image-container:before{content:"";opacity:0;background:radial-gradient(circle,#c51d3433 0%,#0000 70%);border-radius:50%;width:140px;height:140px;animation:2s ease-in-out infinite easter-egg-pulse-ring;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.easter-egg.show .easter-egg-image-container:before{opacity:1}@keyframes easter-egg-pulse-ring{0%,to{opacity:.6;transform:translate(-50%,-50%)scale(.8)}50%{opacity:.3;transform:translate(-50%,-50%)scale(1.2)}}.easter-egg-image{width:120px;height:auto;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges;filter:drop-shadow(0 4px 8px #0000004d);z-index:1;transition:transform .3s;position:relative}.easter-egg.show .easter-egg-image{animation:.6s cubic-bezier(.68,-.55,.265,1.55) easter-egg-image-bounce}@keyframes easter-egg-image-bounce{0%{opacity:0;transform:scale(0)rotate(-180deg)}60%{opacity:1;transform:scale(1.15)rotate(10deg)}80%{transform:scale(.95)rotate(-5deg)}to{opacity:1;transform:scale(1)rotate(0)}}.easter-egg-name{color:var(--red);letter-spacing:.5px;margin-bottom:.75rem;font-family:"Press Start 2P",Courier New,monospace;font-size:.5rem;animation:.4s ease-out .2s both easter-egg-fade-in}@keyframes easter-egg-fade-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.easter-egg-message{color:var(--dark-gray);word-wrap:break-word;white-space:normal;text-shadow:1px 1px #0000001a;letter-spacing:.5px;max-width:100%;min-height:2em;font-family:"Press Start 2P",Courier New,monospace;font-size:.6rem;font-weight:400;line-height:2;display:inline-block;overflow:hidden}[data-theme=dark] .easter-egg-message{color:var(--dark-gray);text-shadow:1px 1px #ffffff1a}.easter-egg-message.typing:after{content:"|";color:var(--red);animation:1s infinite blink}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}[data-theme=dark] .easter-egg-content{background:linear-gradient(135deg, var(--light-gray) 0%, #2d2d2f 100%);border-color:var(--red);box-shadow:0 12px 32px #e639464d,0 4px 12px #0000004d,0 0 0 1px #e6394633,inset 0 1px 2px #ffffff0d}[data-theme=dark] .easter-egg-content:before{background:linear-gradient(135deg, var(--red), #ff4757, var(--red))}[data-theme=dark] .easter-egg-name{color:var(--red)}[data-theme=dark] .easter-egg-message{color:var(--dark-gray)}.footer{background:var(--cream-white);border-top:1px solid var(--light-gray);text-align:center;padding:2rem 0}.footer p{color:var(--gray-text);font-size:.9rem}.footer-link{color:var(--gray-text);text-decoration:none;transition:color .2s}.footer-year{color:var(--gray-text)}.footer-link:hover{color:var(--red)}@media (max-width:768px){.hamburger{display:flex}.nav-menu{background:var(--cream-white);border-left:1px solid var(--light-gray);z-index:999;flex-direction:column;gap:0;width:100%;height:100vh;max-height:100vh;padding:0;transition:right .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;bottom:0;right:-100%;overflow:hidden;box-shadow:-4px 0 20px #0000001a}.nav-close-container{border-bottom:1px solid var(--light-gray);flex-shrink:0;justify-content:flex-end;padding:1rem 1.5rem;display:flex}.nav-close-btn{color:var(--dark-gray);cursor:pointer;background:0 0;border:none;padding:.5rem;font-size:1.5rem;transition:color .3s,transform .3s}.nav-close-btn:hover{color:var(--red);transform:rotate(90deg)}.nav-menu li:not(.nav-close-container):not(.nav-image-container){border-bottom:1px solid var(--light-gray);flex-shrink:0;min-height:0;padding:.9rem 1.5rem}.nav-link{padding:.5rem 0;font-size:1.1rem}.nav-controls{gap:1rem}.nav-menu.active{right:0}.nav-image-container{border-top:1px solid var(--light-gray);background:linear-gradient(#0000 0%,#c51d3405 100%);flex-shrink:0;min-height:0;margin-top:auto;padding:2rem 1.5rem;display:flex}.nav-image-wrapper{justify-content:space-between;align-items:center;gap:.8rem;width:100%;display:flex;position:relative}.nav-greeting-wrapper{flex:1;align-items:center;padding-right:.5rem;display:flex}.nav-greeting{color:var(--dark-gray);text-align:left;min-height:1.2em;font-family:"Press Start 2P",Courier New,monospace;font-size:.6rem;line-height:1.8}.nav-image-content{z-index:2;flex-direction:column;flex-shrink:0;align-items:center;gap:.5rem;display:flex;position:relative}.nav-image-glow{z-index:1;filter:blur(8px);background:radial-gradient(circle,#c51d3426 0%,#c51d3414 40%,#0000 70%);border-radius:50%;width:160px;height:160px;animation:2s ease-in-out infinite nav-glow-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes nav-glow-pulse{0%,to{opacity:.25;transform:translate(-50%,-50%)scale(1)}50%{opacity:.35;transform:translate(-50%,-50%)scale(1.15)}}.nav-leaning-image{object-fit:contain;z-index:2;filter:drop-shadow(0 4px 12px #c51d344d);width:150px;height:auto;transform-style:preserve-3d;transition:transform .3s;animation:4s ease-in-out infinite nav-image-rotate;position:relative}@keyframes nav-image-rotate{0%,to{transform:perspective(500px)rotateY(-5deg)}50%{transform:perspective(500px)rotateY(5deg)}}.nav-image-content:hover .nav-leaning-image{transform:perspective(500px)rotateY(0)scale(1.05)}.nav-name{color:var(--red);letter-spacing:.5px;text-shadow:0 2px 4px #c51d3433;margin-top:.2rem;font-family:"Press Start 2P",Courier New,monospace;font-size:.5rem}.nav-greeting.typing:after{content:"|";color:var(--red);animation:1s infinite blink}[data-theme=dark] .nav-menu{background:var(--cream-white);box-shadow:-4px 0 20px #0000004d}[data-theme=dark] .nav-image-container{background:linear-gradient(#0000 0%,#e6394608 100%)}[data-theme=dark] .nav-image-glow{background:radial-gradient(circle,#e639462e 0%,#e639461a 40%,#0000 70%)}[data-theme=dark] .nav-leaning-image{filter:drop-shadow(0 4px 12px #e6394666)}}.hero{background:var(--cream-white);padding:120px 20px 80px;overflow-x:hidden}.hero-content{box-sizing:border-box;grid-template-columns:1fr auto;align-items:center;gap:4rem;width:100%;max-width:100%;display:grid}.hero-text{overflow-wrap:break-word;word-wrap:break-word;width:100%;max-width:600px}.hero-title{color:var(--dark-gray);margin-bottom:1rem;font-size:2.5rem;font-weight:400;line-height:1.3;overflow:visible}.name-highlight{color:var(--red);white-space:nowrap;font-weight:600;display:block}.hero-subtitle{color:var(--gray-text);margin-bottom:1.5rem;font-size:1.1rem}.hero-line{opacity:0;transform:translateY(10px)}.hero-lines-animate .hero-line{animation:.32s cubic-bezier(.22,1,.36,1) forwards hero-line-in;animation-delay:calc(var(--hero-line-delay,0s))}@keyframes hero-line-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.hero-line,.hero-lines-animate .hero-line{opacity:1;animation:none;transform:none}}.location{color:var(--dark-gray)}.age{color:var(--gray-text)}.flag{vertical-align:middle;object-fit:cover;border-radius:2px;width:20px;height:15px;margin:0 .3rem;display:inline-block;box-shadow:0 1px 2px #0000001a}.hero-description{color:var(--gray-text);max-width:600px;margin-bottom:2rem;font-size:1rem}.blasian-note{color:var(--gray-text);font-size:.9em;font-style:italic}.hero-links{flex-wrap:nowrap;align-items:center;gap:1.25rem;width:100%;max-width:100%;display:flex}.hero-links .resume-link{flex:none}.hero-links .social-links.icon-dock{flex:0 auto;width:auto;min-width:0;max-width:none}.resume-link{color:var(--red);border:2px solid var(--red);z-index:0;isolation:isolate;background:0 0;border-radius:8px;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:500;text-decoration:none;transition:color 1.4s,transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s;display:inline-flex;position:relative;overflow:hidden}.resume-link:before{content:"";aspect-ratio:1;background:var(--red);z-index:-1;pointer-events:none;border-radius:50%;width:220%;transition:transform 1.8s cubic-bezier(.25,.7,.3,1);position:absolute;bottom:0;left:50%;transform:translate(-50%,100%)scale(.35)}.resume-link i,.resume-link span{z-index:1;position:relative}.resume-link:hover{color:var(--cream-white);transform:translateY(-2px);box-shadow:0 6px 20px #c51d3466}.resume-link:hover:before{transform:translate(-50%,20%)scale(1)}[data-theme=dark] .resume-link{color:var(--red);border-color:var(--red)}[data-theme=dark] .resume-link:hover{color:var(--cream-white);box-shadow:0 6px 20px #e6394680}.icon-dock{--dock-size:40px;--dock-pad-y:.45rem;--dock-pad-x:.55rem;--dock-gap:.35rem;justify-content:center;align-items:center;gap:var(--dock-gap);width:max-content;max-width:100%;height:calc(var(--dock-size) + (var(--dock-pad-y) * 2) + 8px);padding:var(--dock-pad-y) var(--dock-pad-x);-webkit-backdrop-filter:blur(12px);background:#fdfbf7b8;border:1px solid #2e2e301f;border-radius:1rem;flex-shrink:0;display:flex;overflow:visible;box-shadow:0 4px 24px #2e2e300f}[data-theme=dark] .icon-dock{background:#1a1a1cb8;border-color:#e8e8e81f;box-shadow:0 4px 24px #00000040}.dock-icon{--dock-x:0px;--dock-y:0px;--dock-scale:1;width:var(--dock-size);height:var(--dock-size);flex:0 0 var(--dock-size);color:var(--dark-gray);font-size:calc(var(--dock-size) * .42);transform:translate3d(var(--dock-x), var(--dock-y), 0) scale(var(--dock-scale));z-index:1;background:0 0;border-radius:999px;justify-content:center;align-items:center;text-decoration:none;transition:background-color .2s,color .2s,box-shadow .2s;display:flex;position:relative}.dock-icon i{pointer-events:none;line-height:1}.dock-icon:hover,.dock-icon:focus-visible,.dock-icon.is-active{color:var(--cream-white);background:var(--red);z-index:2;outline:none;box-shadow:0 4px 14px #c51d3459}[data-theme=dark] .dock-icon:hover,[data-theme=dark] .dock-icon:focus-visible,[data-theme=dark] .dock-icon.is-active{box-shadow:0 4px 14px #e6394673}.dock-icon:after{content:attr(data-label);color:#fdfbf7;letter-spacing:.02em;white-space:nowrap;opacity:0;pointer-events:none;z-index:5;background:#2e2e30;border-radius:.4rem;padding:.3rem .55rem;font-size:.7rem;font-weight:500;transition:opacity .15s,transform .15s,background-color .3s,color .3s;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)translateY(4px)}[data-theme=dark] .dock-icon:after{background:var(--light-gray);color:var(--dark-gray);border:1px solid #e8e8e81f}.dock-icon:hover:after,.dock-icon:focus-visible:after{opacity:1;transform:translate(-50%)translateY(0)}@media (prefers-reduced-motion:reduce){.dock-icon{transform:none}}.social-links,.contact-links{margin:0}.hero-image-container{justify-content:center;align-items:center;display:flex}.image-wrapper{background:var(--light-gray);border-radius:50%;width:280px;height:280px;padding:4px;transition:transform .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}@media (min-width:1024px){.image-wrapper{width:300px!important;height:300px!important}}@media (min-width:1200px){.image-wrapper{width:320px!important;height:320px!important}}@media (min-width:1400px){.image-wrapper{width:340px!important;height:340px!important}}.image-wrapper:before{content:"";background:conic-gradient(from 0deg, var(--red), #e63946, #ff6b7a, var(--red));opacity:0;z-index:0;pointer-events:none;border-radius:50%;transition:opacity .4s;animation:2s linear infinite rotate-border;position:absolute;inset:-4px}.image-wrapper:hover:before{opacity:1}@keyframes rotate-border{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.image-wrapper:hover{transform:scale(1.05)}.profile-image{object-fit:cover;z-index:1;border-radius:50%;width:100%;min-width:100%;height:100%;min-height:100%;transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1),filter .6s;display:block;position:absolute;top:0;left:0;box-shadow:0 10px 30px #0000001a}.profile-image.alter-ego{opacity:0;z-index:3;transform:scale(1.1)rotate(5deg)}.image-wrapper:hover .profile-image:not(.alter-ego){opacity:0;filter:blur(2px);transform:scale(.85)rotate(-8deg)}.image-wrapper:hover .profile-image.alter-ego{opacity:1;filter:brightness(1.05);transform:scale(1)rotate(0);box-shadow:0 15px 40px #c51d3433}[data-theme=dark] .profile-image:not(.alter-ego){opacity:0;filter:blur(2px);z-index:1;transform:scale(.85)rotate(-8deg)}[data-theme=dark] .profile-image.alter-ego{opacity:1;z-index:3;transform:scale(1)rotate(0)}[data-theme=dark] .image-wrapper:hover .profile-image:not(.alter-ego){opacity:1;filter:brightness(1.05);transform:scale(1)rotate(0);box-shadow:0 15px 40px #e639464d}[data-theme=dark] .image-wrapper:hover .profile-image.alter-ego{opacity:0;filter:blur(2px);transform:scale(1.1)rotate(5deg)}[data-theme=dark] .image-wrapper{background:var(--light-gray)}[data-theme=dark] .image-wrapper:before{background:conic-gradient(from 0deg, var(--red), #ff4757, #ff6b7a, var(--red))}[data-theme=dark] .image-glow{background:radial-gradient(circle,#e639464d 0%,#0000 70%)}.image-wrapper:hover .profile-image{border:4px solid #0000;box-shadow:0 15px 40px #c51d344d}.image-glow{opacity:0;z-index:-1;pointer-events:none;background:radial-gradient(circle,#c51d3433 0%,#0000 70%);border-radius:50%;transition:opacity .4s;position:absolute;inset:-10px}.image-wrapper:hover .image-glow{opacity:1;animation:2s ease-in-out infinite pulse-glow}@keyframes pulse-glow{0%,to{opacity:.3;transform:scale(1)}50%{opacity:.5;transform:scale(1.1)}}.skills{background:var(--cream-white)}.skills-grid{grid-template-columns:repeat(var(--skills-columns,5), 1fr);place-items:center;gap:1.5rem;width:100%;display:grid;cursor:none!important}@media (max-width:360px){.skills-grid{gap:.75rem}.skill-item{min-height:90px;padding:1rem .25rem}.skill-item i,.skill-item .skill-svg,.ejs-icon{width:45px;height:45px;font-size:1.8rem}.skill-name{font-size:.65rem}}.skills-grid *,.skills-grid .skill-item,.skills-grid .skill-item *{cursor:none!important}.skill-item{cursor:pointer;box-sizing:border-box;background:0 0;border:1px solid #80808026;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;width:100%;max-width:100%;min-height:120px;padding:1.5rem 1rem;transition:transform .3s,border-color .3s,box-shadow .3s;display:flex;position:relative}.skill-item:hover,.skill-item.selected{border-color:var(--red);box-shadow:0 2px 8px #c51d341a}[data-theme=dark] .skill-item{border-color:var(--light-gray)}[data-theme=dark] .skill-item:hover,[data-theme=dark] .skill-item.selected{border-color:var(--dark-gray);box-shadow:0 2px 8px #e8e8e81a}.skill-item:hover{transform:translateY(-3px)}.skill-item i,.skill-item .skill-svg{justify-content:center;align-items:center;width:60px;height:60px;font-size:2.5rem;transition:all .3s;display:flex}.skill-item .skill-svg{flex-shrink:0;overflow:visible}.skill-item i.colored,.skill-item .skill-svg.colored{color:var(--red)!important}[data-theme=dark] .skill-item i,[data-theme=dark] .skill-item .skill-svg{color:var(--cream-white)!important}[data-theme=dark] .skill-item i.colored{filter:brightness(0)saturate()invert();color:var(--cream-white)!important}[data-theme=dark] .skill-item .skill-svg.colored{color:var(--cream-white)!important;filter:none!important}.skill-item i.colored.show-true-color,.skill-item .skill-svg.colored.show-true-color{color:inherit!important;filter:none!important}[data-theme=dark] .skill-item i.colored.show-true-color,[data-theme=dark] .skill-item .skill-svg.colored.show-true-color{filter:none!important}.skill-item[data-skill=html] i.colored.show-true-color{color:#e34f26!important}.skill-item[data-skill=css] i.colored.show-true-color{color:#1572b6!important}.skill-item[data-skill=javascript] i.colored.show-true-color{color:#f7df1e!important}.skill-item[data-skill=node] i.colored.show-true-color,.skill-item[data-skill=node] .skill-svg.colored.show-true-color{color:#5fa04e!important}.skill-item[data-skill=express] i.colored.show-true-color{color:#000!important}.skill-item[data-skill=mysql] i.colored.show-true-color{color:#4479a1!important}.skill-item[data-skill=bootstrap] i.colored.show-true-color{color:#7952b3!important}.skill-item[data-skill=jquery] i.colored.show-true-color{color:#0769ad!important}.skill-item[data-skill=tailwind] i.colored.show-true-color{color:#06b6d4!important}.skill-item[data-skill=nextjs] i.colored.show-true-color{color:#000!important}.skill-item[data-skill=react] i.colored.show-true-color{color:#61dafb!important}.skill-item[data-skill=nginx] i.colored.show-true-color{color:#009639!important}.skill-item[data-skill=ubuntu] i.colored.show-true-color{color:#e95420!important}.skill-item[data-skill=typescript] i.colored.show-true-color{color:#3178c6!important}.skill-item[data-skill=googlecloud] i.colored.show-true-color{color:#4285f4!important}.ejs-icon{color:var(--red);justify-content:center;align-items:center;width:60px;height:60px;font-family:Inter,sans-serif;font-size:2.5rem;font-weight:700;transition:all .3s;display:flex}.skill-item:hover .ejs-icon:not(.show-true-color),.skill-item.selected .ejs-icon:not(.show-true-color),.ejs-icon.show-true-color{color:#ff6b35!important}[data-theme=dark] .skill-item[data-skill=ejs] .ejs-icon,[data-theme=dark] .ejs-icon{color:var(--dark-gray)!important}[data-theme=dark] .skill-item[data-skill=html] i.colored.show-true-color{color:#e34f26!important}[data-theme=dark] .skill-item[data-skill=css] i.colored.show-true-color{color:#1572b6!important}[data-theme=dark] .skill-item[data-skill=javascript] i.colored.show-true-color{color:#f7df1e!important}[data-theme=dark] .skill-item[data-skill=node] i.colored.show-true-color,[data-theme=dark] .skill-item[data-skill=node] .skill-svg.colored.show-true-color{color:#5fa04e!important}[data-theme=dark] .skill-item[data-skill=express] i.colored.show-true-color{color:var(--red)!important}[data-theme=dark] .skill-item[data-skill=mysql] i.colored.show-true-color{color:#4479a1!important}[data-theme=dark] .skill-item[data-skill=bootstrap] i.colored.show-true-color{color:#7952b3!important}[data-theme=dark] .skill-item[data-skill=jquery] i.colored.show-true-color{color:#0769ad!important}[data-theme=dark] .skill-item[data-skill=tailwind] i.colored.show-true-color{color:#06b6d4!important}[data-theme=dark] .skill-item[data-skill=nextjs] i.colored.show-true-color{color:var(--red)!important}[data-theme=dark] .skill-item[data-skill=react] i.colored.show-true-color{color:#61dafb!important}[data-theme=dark] .skill-item[data-skill=nginx] i.colored.show-true-color{color:#009639!important}[data-theme=dark] .skill-item[data-skill=ubuntu] i.colored.show-true-color{color:#e95420!important}[data-theme=dark] .skill-item[data-skill=typescript] i.colored.show-true-color{color:#3178c6!important}[data-theme=dark] .skill-item[data-skill=googlecloud] i.colored.show-true-color{color:#4285f4!important}[data-theme=dark] .skill-item:hover .ejs-icon:not(.show-true-color),[data-theme=dark] .skill-item.selected .ejs-icon:not(.show-true-color),[data-theme=dark] .ejs-icon.show-true-color{color:#ff6b35!important}.skill-name{color:var(--dark-gray);text-transform:uppercase;letter-spacing:.5px;font-size:.8rem;font-weight:500}.skill-number{background:var(--red);color:#fff;opacity:0;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:.75rem;font-weight:600;transition:opacity .3s,transform .3s;display:flex;position:absolute;top:-5px;right:-5px;transform:scale(0)}.skill-item.selected .skill-number{opacity:1;transform:scale(1)}[data-theme=dark] .skill-number{color:var(--red);background:#fff}.work{background:var(--cream-white)}.timeline{flex-direction:column;gap:3rem;display:flex}.timeline-item{gap:2rem;display:flex;position:relative}.timeline-item:not(:last-child):after{content:"";background:var(--light-gray);width:2px;height:calc(100% + 1rem);position:absolute;top:50px;left:20px}.timeline-marker{background:var(--light-gray);color:#fff;z-index:1;border:2px solid var(--light-gray);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:50px;height:50px;font-size:.9rem;font-weight:600;display:flex;overflow:hidden;box-shadow:0 2px 8px #0000001a}.timeline-logo{object-fit:cover;border-radius:50%;width:100%;height:100%}[data-theme=dark] .timeline-marker{background:var(--light-gray);border-color:var(--light-gray)}.timeline-content{flex:1;padding-top:.3rem}.timeline-date{color:var(--gray-text);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.9rem;display:flex}.timeline-date-text{color:var(--gray-text)}.timeline-duration{color:var(--gray-text);font-size:.85rem}.timeline-current-badge{background:linear-gradient(135deg, var(--red), #e63946);color:#fff;text-transform:uppercase;letter-spacing:.8px;border-radius:6px;padding:4px 10px;font-family:Inter,sans-serif;font-size:.7rem;font-weight:600;position:relative;overflow:hidden;box-shadow:0 2px 6px #c51d344d,inset 0 1px #fff3}.timeline-current-badge:before{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);width:100%;height:100%;animation:3s infinite badge-shine;position:absolute;top:0;left:-100%}@keyframes badge-shine{0%{left:-100%}50%,to{left:100%}}[data-theme=dark] .timeline-current-badge{background:linear-gradient(135deg, var(--red), #ff4757);box-shadow:0 2px 6px #e6394666,inset 0 1px #ffffff26}.timeline-company{color:var(--dark-gray);margin-bottom:.3rem;font-size:1.3rem;font-weight:600}.timeline-role{color:var(--gray-text);margin-bottom:1rem;font-size:1rem}.timeline-description{padding-left:0;list-style:none}.timeline-description li{color:var(--gray-text);margin-bottom:.5rem;padding-left:1.5rem;font-size:.95rem;position:relative}.timeline-description li:before{content:"•";color:var(--red);font-weight:700;position:absolute;left:0}.timeline-field{color:var(--gray-text);margin-bottom:.5rem;font-size:.9rem;font-style:italic}.timeline-results{margin:.5rem 0}.timeline-results-text{color:var(--gray-text);background:var(--light-gray);border-radius:6px;padding:.4rem .8rem;font-size:.9rem;display:inline-block}.timeline-description-text{color:var(--gray-text);margin-top:.5rem;font-size:.95rem;line-height:1.6}.timeline-marker i{color:var(--red);font-size:1.2rem}.education,.languages{background:var(--cream-white)}.languages-grid{grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2rem;display:grid}.language-item{background:var(--light-gray);border:1px solid #80808033;border-radius:12px;flex-direction:column;gap:.8rem;margin-bottom:1rem;padding:1.5rem;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.language-item:hover{border-color:var(--red);background:#fff;transform:translateY(-2px);box-shadow:0 8px 24px #c51d341f}[data-theme=dark] .language-item{background:linear-gradient(135deg, var(--light-gray) 0%, #e639460d 100%);border-color:#b0b0b033}[data-theme=dark] .language-item:hover{background:linear-gradient(135deg, var(--cream-white) 0%, #e6394614 100%);border-color:var(--red);box-shadow:0 8px 24px #e6394626}.language-name{color:var(--dark-gray);letter-spacing:-.02em;margin-bottom:.2rem;font-size:1.25rem;font-weight:700}.language-level{color:var(--gray-text);margin-top:.2rem;font-size:.9rem;font-weight:400}.contact{background:var(--cream-white)}.contact-content{flex-wrap:wrap;align-items:center;gap:3rem;max-width:900px;display:flex}.section-title.contact-title{flex-shrink:0;margin-bottom:0}.contact-wrapper{flex-wrap:wrap;flex:1;align-items:center;gap:.35rem 3rem;min-width:0;display:flex}.contact-text{color:var(--gray-text);flex:12rem;min-width:min(100%,300px);margin:0;padding:0;font-size:.95rem;line-height:1.7}.contact-links{align-self:center;margin:0}.contact-links.icon-dock{--dock-size:44px}.toast{background:var(--dark-gray);color:#fff;z-index:10000;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #c51d3433;border-radius:12px;align-items:center;gap:.75rem;padding:1rem 1.5rem;transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:30px;right:30px;transform:translateY(20px)scale(.95);box-shadow:0 8px 24px #0003,0 0 0 1px #c51d341a}.toast.show{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.toast-content{align-items:center;gap:.75rem;display:flex}.toast-content i{color:var(--red);font-size:1.3rem;animation:.4s cubic-bezier(.68,-.55,.265,1.55) checkmark-pop}@keyframes checkmark-pop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.toast-message{letter-spacing:.3px;font-size:.95rem;font-weight:500}[data-theme=dark] .toast{background:var(--light-gray);color:var(--dark-gray);border:1px solid #e639464d;box-shadow:0 8px 24px #0006,0 0 0 1px #e6394633,inset 0 1px #ffffff1a}[data-theme=dark] .toast-content i{color:var(--red);filter:drop-shadow(0 2px 4px #e639464d)}@media (max-width:768px){.toast{width:calc(100% - 40px);max-width:400px;bottom:20px;left:20px;right:auto}.hero-title{font-size:2rem}.section-header{flex-direction:column;gap:1rem}.skills-grid{gap:.8rem;max-width:100%}.skill-item i,.skill-item .skill-svg,.ejs-icon{width:45px;height:45px;font-size:1.8rem}.skill-item{min-height:90px}.skill-name{font-size:.75rem}.timeline-item{gap:1.5rem}.timeline-marker{width:35px;height:35px;font-size:.8rem}.hero-links{justify-content:center;gap:.75rem;width:100%}.hero-links .resume-link{padding:.6rem 1rem;font-size:.88rem}.hero-links .social-links.icon-dock{--dock-size:32px;--dock-pad-y:.28rem;--dock-pad-x:.35rem;--dock-gap:.18rem}.hero-content{text-align:center;grid-template-columns:1fr;gap:3rem}.hero-text{max-width:100%}.image-wrapper{width:220px;height:220px;margin:0 auto}.contact-content{flex-direction:column;align-items:flex-start;gap:.75rem}.section-title.contact-title{margin-bottom:0}.contact-wrapper{flex-direction:column;align-items:flex-start;gap:.75rem;width:100%}.contact-text{flex:none;width:100%;min-width:100%;margin:0;padding:0}.contact-links.icon-dock{--dock-size:40px;width:max-content;max-width:100%;margin:0 auto}}@media (max-width:480px){.hero-title{font-size:1.75rem}.hero-subtitle{font-size:1rem}.languages-grid{gap:.5rem!important}.language-item{text-align:center;justify-content:center;min-height:80px;margin-bottom:0!important;padding:.75rem .4rem!important}.language-name{word-break:break-word;margin-bottom:.2rem;font-size:.85rem!important}.language-level{font-size:.7rem!important}}@media (max-width:360px){.hero{padding:100px 16px 60px}.hero-title{word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;font-size:1.5rem;line-height:1.4}.hero-subtitle{word-wrap:break-word;overflow-wrap:break-word;font-size:.9rem;line-height:1.5}.hero-description{word-wrap:break-word;overflow-wrap:break-word;font-size:.9rem;line-height:1.6}.hero-content{gap:2rem}.image-wrapper{width:180px;height:180px}}@media (max-width:418px){.hero-links{flex-flow:column;align-items:center;gap:.85rem}.hero-links .resume-link{justify-content:center;width:min(100%,14rem);max-width:100%;padding:.6rem 1rem;font-size:.85rem}.hero-links .social-links.icon-dock{--dock-size:32px;--dock-pad-y:.28rem;--dock-pad-x:.35rem;--dock-gap:.18rem;width:min(100%,14rem);max-width:100%}}@media (max-width:320px){.hero{padding:90px 12px 50px}.hero-title{font-size:1.3rem;line-height:1.35}.hero-subtitle,.hero-description{font-size:.85rem}.hero-content{gap:1.5rem}.image-wrapper{width:150px!important;height:150px!important}.hero-links{gap:.75rem}.hero-links .resume-link{width:min(100%,12rem);padding:.55rem .9rem;font-size:.8rem}.hero-links .social-links.icon-dock{--dock-size:28px;--dock-pad-y:.22rem;--dock-pad-x:.28rem;--dock-gap:.12rem;width:min(100%,12rem)}.blasian-note{margin-top:.25rem;font-size:.75em;display:block}}@media (max-width:600px){.section-title{text-align:left;margin-bottom:2rem;font-size:1.3rem}.section-title.contact-title{margin-bottom:0}.skills-grid{grid-template-columns:repeat(5,1fr)!important;justify-content:center!important;gap:.35rem!important;width:100%!important;max-width:100%!important;margin:0 auto!important;padding:0!important}.skill-item{gap:.2rem!important;min-height:70px!important;padding:.5rem .1rem!important}.skill-item i,.skill-item .skill-svg,.ejs-icon{width:32px!important;height:32px!important;font-size:1.5rem!important}.skill-name{text-align:center;width:100%;line-height:1.2;display:block;letter-spacing:-.01em!important;font-size:.5rem!important}.skill-number{width:14px!important;height:14px!important;font-size:.5rem!important;top:-4px!important;right:-4px!important}.timeline-company{font-size:1.1rem}.language-item{padding:1.5rem 1.2rem}.language-name{font-size:1.1rem}}@media (max-width:320px){.skill-item[data-skill=javascript] .skill-name{font-size:0!important}.skill-item[data-skill=javascript] .skill-name:after{content:"JS";font-size:.5rem!important}.skill-item[data-skill=bootstrap] .skill-name{font-size:0!important}.skill-item[data-skill=bootstrap] .skill-name:after{content:"Boot";font-size:.5rem!important}.skill-item[data-skill=tailwind] .skill-name{font-size:0!important}.skill-item[data-skill=tailwind] .skill-name:after{content:"Tailw";font-size:.5rem!important}}.fade-in{opacity:0;transition:opacity .4s,transform .4s;transform:translateY(20px)}.fade-in.visible{opacity:1;transform:translateY(0)}.projects{background:var(--cream-white)}.section-header{justify-content:space-between;align-items:baseline;margin-bottom:2.5rem;display:flex}.view-more{color:var(--gray-text);text-transform:lowercase;border:1px solid #0000;border-radius:6px;align-items:center;gap:.5rem;padding:8px 16px;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.view-more i{font-size:.8rem;transition:transform .3s}.view-more:hover{color:var(--red);background:var(--light-gray);border-color:var(--red);transform:translateY(-2px);box-shadow:0 2px 8px #c51d341a}.view-more:hover i.fa-chevron-right{transform:translate(3px)}.view-more:hover i.fa-chevron-left{transform:translate(-3px)}[data-theme=dark] .view-more:hover{background:var(--light-gray);border-color:var(--red)}.projects-grid{flex-direction:column;gap:3rem;display:flex}.project-card{cursor:pointer;background:0 0;border:1px solid #80808026;border-radius:12px;padding:1.5rem;transition:all .3s;position:relative}.project-card:hover{border-color:#c51d344d;box-shadow:0 4px 12px #00000014}.project-card:has(.project-card-main-link:focus-visible){border-color:var(--red);box-shadow:0 0 0 2px #c51d3440}[data-theme=dark] .project-card{border-color:#e8e8e826}[data-theme=dark] .project-card:hover{border-color:#e6394666;box-shadow:0 4px 12px #e6394626}.project-card-main-link{z-index:1;border-radius:inherit;text-indent:-9999px;position:absolute;inset:0;overflow:hidden}.project-card-main-link:focus{outline:none}.project-links,.project-tags{z-index:2;position:relative}.project-tags{pointer-events:none}.project-tags .project-tech-icon,.project-tags .project-tech-icon-fallback{pointer-events:auto}.project-card-images{border-radius:8px;grid-template-columns:repeat(3,1fr);gap:.5rem;height:180px;margin-bottom:1.5rem;transition:transform .3s,box-shadow .3s;display:grid;position:relative;overflow:hidden}.project-card:hover .project-card-images{transform:translateY(-3px);box-shadow:0 8px 20px #00000026}.project-card-image{object-fit:cover;width:100%;height:100%;transition:transform .3s}.project-card:hover .project-card-image{transform:scale(1.03)}.project-card-image-more{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#000000b3;border-radius:6px;padding:6px 12px;font-size:.85rem;font-weight:600;position:absolute;bottom:8px;right:8px}[data-theme=dark] .project-card-image-more{color:var(--cream-white);background:#fff3}.project-card-images:has(img:only-child){grid-template-columns:1fr}.project-card-images:has(img:nth-child(2):last-child){grid-template-columns:1fr 1fr}@media (max-width:768px){.project-card-images{gap:.4rem;height:150px}}@media (max-width:480px){.project-card-images{gap:.3rem;height:120px}.project-card-image-more{padding:4px 8px;font-size:.75rem}}.project-title{color:var(--dark-gray);margin-bottom:.55rem;font-size:1.5rem;font-weight:600}.project-description{color:var(--gray-text);margin-bottom:1rem;font-size:.95rem;line-height:1.6}.project-tags{flex-wrap:wrap;align-items:center;gap:.8rem;margin-bottom:1rem;display:flex}.tag{background:var(--light-gray);color:var(--dark-gray);border-radius:4px;padding:4px 12px;font-size:.85rem;font-weight:500}.project-tech-icon,.project-tech-icon-fallback{color:var(--red);cursor:help;justify-content:center;align-items:center;font-size:1.5rem;transition:color .2s,filter .2s,transform .2s;display:inline-flex;position:relative}.project-tech-icon .visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.project-tech-icon.colored{color:var(--red)!important}[data-theme=dark] .project-tech-icon{color:var(--dark-gray)!important}.project-tech-icon.fa-brands,.project-tech-icon.fa-regular,.project-tech-icon.fa-solid{color:var(--red)}[data-theme=dark] .project-tech-icon.fa-brands,[data-theme=dark] .project-tech-icon.fa-regular,[data-theme=dark] .project-tech-icon.fa-solid{color:var(--dark-gray)!important}[data-theme=dark] .project-tech-icon.colored{filter:brightness(0)saturate()invert();color:var(--cream-white)!important}.project-tech-icon[data-tooltip]:after,.project-tech-icon-fallback[data-tooltip]:after{content:attr(data-tooltip);color:#fdfbf7;letter-spacing:.02em;white-space:nowrap;opacity:0;pointer-events:none;z-index:6;background:#2e2e30;border-radius:.4rem;padding:.3rem .55rem;font-family:Inter,sans-serif;font-size:.7rem;font-weight:500;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}[data-theme=dark] .project-tech-icon[data-tooltip]:after,[data-theme=dark] .project-tech-icon-fallback[data-tooltip]:after{background:var(--light-gray);color:var(--dark-gray);border:1px solid #e8e8e81f}.project-tech-icon[data-tooltip]:hover:after,.project-tech-icon[data-tooltip]:focus-visible:after,.project-tech-icon-fallback[data-tooltip]:hover:after,.project-tech-icon-fallback[data-tooltip]:focus-visible:after{opacity:1;transform:translate(-50%)translateY(0)}.project-card:hover .project-tech-icon.colored{filter:none!important}.project-card:hover .project-tech-icon[class*=html5]{color:#e34f26!important}.project-card:hover .project-tech-icon[class*=css3]{color:#1572b6!important}.project-card:hover .project-tech-icon[class*=javascript]{color:#f7df1e!important}.project-card:hover .project-tech-icon[class*=nodejs],.project-card:hover .project-tech-icon.fa-node-js{color:#5fa04e!important}.project-card:hover .project-tech-icon[class*=express]{color:#000!important}[data-theme=dark] .project-card:hover .project-tech-icon[class*=express]{color:var(--red)!important}.project-card:hover .project-tech-icon[class*=mysql]{color:#4479a1!important}.project-card:hover .project-tech-icon[class*=bootstrap]{color:#7952b3!important}.project-card:hover .project-tech-icon[class*=jquery]{color:#0769ad!important}.project-card:hover .project-tech-icon[class*=tailwindcss]{color:#06b6d4!important}.project-card:hover .project-tech-icon[class*=python]{color:#3776ab!important}.project-card:hover .project-tech-icon[class*=nextjs]{color:#000!important}[data-theme=dark] .project-card:hover .project-tech-icon[class*=nextjs]{color:var(--red)!important}.project-card:hover .project-tech-icon[class*=react]{color:#61dafb!important}.project-card:hover .project-tech-icon[class*=typescript]{color:#3178c6!important}.project-card:hover .project-tech-icon[class*=nginx]{color:#009639!important}.project-card:hover .project-tech-icon.fa-ubuntu{color:#e95420!important}.project-card:hover .project-tech-icon[class*=googlecloud],.project-card:hover .project-tech-icon[class*=google],.project-card:hover .project-tech-icon.fa-google-drive{color:#4285f4!important}.project-card:hover .project-tech-icon.fa-file-excel{color:#0f9d58!important}.project-card:hover .project-tech-icon.fa-envelope{color:#ea4335!important}.ejs-icon-small{color:var(--red);font-family:Inter,sans-serif;font-size:1.2rem;font-weight:700}[data-theme=dark] .ejs-icon-small{color:var(--dark-gray)!important}.project-card:hover .ejs-icon-small{color:#ff6b35!important}.project-tech-icon-fallback{color:var(--dark-gray);background:var(--light-gray);border-radius:4px;padding:4px 12px;font-size:.85rem}[data-theme=dark] .project-tech-icon-fallback{color:var(--cream-white);background:var(--light-gray)}.project-links{flex-wrap:wrap;gap:1.5rem;margin-bottom:.9rem;display:flex}.project-links .project-link{color:var(--red);text-underline-offset:.18em;font-size:.9rem;text-decoration:underline;transition:color .2s}.project-links .project-link:hover{color:var(--dark-gray)}@media (max-width:768px){.section-header{flex-direction:column;gap:1rem}}