@import "https://fonts.googleapis.com/css2?family=Roboto:wght@400;700;900&display=swap";@import "https://fonts.googleapis.com/css2?family=Roboto:wght@900&display=swap";@import "https://fonts.googleapis.com/css2?family=VT323&display=swap";@import "https://fonts.googleapis.com/css2?family=Roboto:wght@900&display=swap";@import "https://fonts.googleapis.com/css2?family=VT323&display=swap";@import "https://fonts.googleapis.com/css2?family=Roboto:wght@900&display=swap";@import "https://fonts.googleapis.com/css2?family=VT323&display=swap";@import "https://fonts.googleapis.com/css2?family=Roboto:wght@900&display=swap";@import "https://fonts.googleapis.com/css2?family=VT323&display=swap";body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0f172a;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}html{scroll-behavior:smooth;background-color:#0f172a}.App{text-align:center;background:linear-gradient(135deg,#0f172a 0%,#1e293b 50%,#0f172a 100%) fixed;height:100%;min-height:100vh;position:relative;overflow:visible}.App:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 20% 30%,#3b82f60d 0%,#0000 50%),radial-gradient(circle at 80% 70%,#8b5cf60d 0%,#0000 50%);position:fixed;inset:-10vh -10vw}.App>*{z-index:1}.App>.seasonal-backdrop{z-index:0}.App:after{content:"";pointer-events:none;z-index:10;background:linear-gradient(#0f172a 0%,#0000 4rem calc(100% - 4rem),#0f172a 100%);position:fixed;inset:0}.App.history-route:after{background:0 0}.App-header{color:#fff;background-color:#282c34;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;font-size:calc(10px + 2vmin);display:flex}.App-link{color:#61dafb}@media (width<=768px){.App{background-attachment:scroll}}html{height:100%}body{height:100%;overflow-y:scroll}:root{--color-primary:#3b82f6;--color-secondary:#8b5cf6;--color-accent:#06b6d4;--color-bg-dark:#0f172a;--color-text-primary:#fff;--color-text-secondary:#e2e2e2;--color-text-muted:#94a3b8;--spacing-xs:.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-2xl:4rem;--spacing-3xl:6rem;--font-size-xs:.875rem;--font-size-sm:1rem;--font-size-md:1.125rem;--font-size-lg:1.5rem;--font-size-xl:2rem;--font-size-2xl:2.5rem;--font-size-3xl:3rem}*,:before,:after{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-khtml-user-drag:none;-moz-user-drag:none;-o-user-drag:none}html,body{-webkit-overflow-scrolling:touch;width:100%;overflow-x:visible}html{scroll-behavior:smooth;scroll-padding-top:var(--spacing-2xl)}.custom-cursor{pointer-events:none;z-index:9999;background:radial-gradient(circle,#3b82f6cc 0%,#8b5cf699 50%,#0000 70%);border-radius:50%;width:20px;height:20px;transition:width .3s,height .3s,opacity .2s,background .5s,border-radius .3s,box-shadow .5s;animation:2s ease-in-out infinite pulse;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 20px #3b82f699,0 0 40px #8b5cf666}.custom-cursor.hover{background:radial-gradient(circle,#3b82f666 0%,#8b5cf64d 50%,#0000 70%);width:40px;height:40px;box-shadow:0 0 30px #3b82f6cc,0 0 60px #8b5cf699}.custom-cursor.click{background:radial-gradient(circle,#8b5cf6e6 0%,#a855f7b3 50%,#0000 70%);width:15px;height:15px;animation:.3s ease-out clickPulse;box-shadow:0 0 25px #8b5cf6cc,0 0 50px #a855f799;transition:width .15s,height .15s,background .15s,box-shadow .15s!important}.custom-cursor.cursor-hidden{opacity:0!important;width:0!important;height:0!important;box-shadow:none!important}.cursor-trail{pointer-events:none;z-index:9998;background:radial-gradient(circle,#3b82f699 0%,#0000 70%);border-radius:50%;width:8px;height:8px;animation:.6s ease-out forwards fadeOut;position:fixed;transform:translate(-50%,-50%)}.edge-particle{pointer-events:none;z-index:9997;background:radial-gradient(circle,#3b82f6 0%,#8b5cf6cc 50%,#0000 70%);border-radius:50%;width:6px;height:6px;animation:.8s ease-out forwards particleSplash;position:fixed;box-shadow:0 0 10px #3b82f6cc}@media (hover:none) and (pointer:coarse){*{cursor:auto!important}.custom-cursor,.cursor-trail,.edge-particle{display:none!important}}@media (hover:hover) and (pointer:fine){html,body,.App,.mainpage,a,button,input,textarea,select,label,summary,.page-navigator,.NavBar-Items-Item{cursor:none!important}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes clickPulse{0%{transform:translate(-50%,-50%)scale(1)}50%{transform:translate(-50%,-50%)scale(.8)}to{transform:translate(-50%,-50%)scale(1)}}@keyframes fadeOut{to{opacity:0;transform:translate(-50%,-50%)scale(.5)}}@keyframes particleSplash{to{opacity:0;transform:translate(var(--tx,0), var(--ty,0)) scale(0)}}@media (width<=768px){.mainpage{row-gap:var(--spacing-3xl);padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);grid-template-columns:1fr}.left-side,.right-side,section{width:100%;min-width:unset;max-width:700px}.left-side{top:unset;height:auto;margin-bottom:var(--spacing-lg);align-self:auto;position:relative}.sticky-wrapper{top:unset;position:relative}.right-side{min-height:unset}}@media (height>=1800px) and (width<=900px){.mainpage{align-items:center;gap:var(--spacing-2xl);flex-direction:column;max-width:1000px}.left-side,.right-side,section{max-width:900px;min-width:unset}.left-side{top:unset;height:auto;margin-bottom:var(--spacing-xl);position:relative}}.mainpage{color:var(--color-text-primary);font-family:var(--font-inter),ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-feature-settings:"ss03","cv02","cv11";width:100%;max-width:1200px;padding:var(--spacing-2xl) var(--spacing-lg) var(--spacing-2xl) var(--spacing-lg);column-gap:var(--spacing-3xl);text-align:left;grid-template-columns:450px minmax(0,1fr);margin:0 auto;display:grid}.left-side{flex-direction:column;align-items:flex-start;display:flex}.sticky-wrapper{top:var(--spacing-2xl);flex-direction:column;align-items:flex-start;display:flex;position:sticky}.right-side{width:100%;color:var(--color-text-secondary);flex-direction:column;justify-content:flex-start;align-items:flex-start;min-height:200vh;line-height:1.8;display:flex}.header-section{margin-bottom:var(--spacing-2xl)}.header-name{font-size:var(--font-size-3xl);margin:0;margin-bottom:var(--spacing-sm);background:linear-gradient(135deg, var(--color-primary), var(--color-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700;line-height:1.2}.header-title{font-size:var(--font-size-lg);margin:0;margin-bottom:var(--spacing-md);color:var(--color-text-secondary);font-weight:400;line-height:1.4}.header-tagline{font-size:var(--font-size-md);color:var(--color-text-muted);margin:0;line-height:1.6}section{width:100%;margin-bottom:var(--spacing-3xl);scroll-margin-top:var(--header-top-offset,var(--spacing-2xl));flex-flow:column;place-content:stretch flex-start;align-items:flex-start;display:flex}.section-heading{font-size:var(--font-size-xl);margin:0 0 var(--spacing-xl) 0;color:var(--color-text-primary);padding-bottom:var(--spacing-sm);scroll-margin-top:var(--header-top-offset,var(--spacing-2xl));font-weight:700;position:relative}.section-heading:after{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-accent));border-radius:2px;width:60px;height:3px;position:absolute;bottom:0;left:0}.experience-section{padding-top:var(--spacing-3xl)}.projects-section{padding-top:var(--spacing-xl)}.about-intro{font-size:var(--font-size-md);margin-bottom:var(--spacing-lg);line-height:1.8}.about-content{font-size:var(--font-size-sm);text-align:justify;line-height:1.8}.about-content p{margin:0 0 var(--spacing-lg) 0}.about-content p:last-child{margin-bottom:0}.about-content strong{color:var(--color-text-primary);font-weight:600}.experience-content{width:100%}.job-item{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);text-align:left;background:#ffffff05;border:1px solid #ffffff0d;border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative}.job-item:before{content:"";-webkit-mask-composite:xor;opacity:0;background:linear-gradient(135deg,#0000,#3b82f61a);border-radius:12px;padding:1px;transition:opacity .3s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.job-item:hover{background:#3b82f60d;border-color:#3b82f633;transform:translateY(-2px);box-shadow:0 8px 24px #0003}.job-item:hover:before{opacity:1}.job-item:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.job-company{font-size:var(--font-size-md);margin:0 0 var(--spacing-xs) 0;color:var(--color-text-primary);font-weight:700}.job-title{font-size:var(--font-size-sm);margin:0 0 var(--spacing-xs) 0;color:var(--color-accent);font-weight:400}.job-period{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0 0 var(--spacing-md) 0;font-weight:500}.job-description{margin:0 0 var(--spacing-md) 0;text-align:left;padding:0;list-style:none}.job-description li{padding-left:var(--spacing-lg);margin-bottom:var(--spacing-sm);color:var(--color-text-secondary);line-height:1.6;position:relative}.job-description li:before{content:"▹";color:var(--color-accent);font-size:var(--font-size-md);position:absolute;left:0}.job-description-text{color:var(--color-text-secondary);text-align:left;margin:0;line-height:1.6}.job-skill{font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-md);margin-right:var(--spacing-xs);margin-bottom:var(--spacing-xs);cursor:default;-webkit-user-select:none;user-select:none;color:var(--color-accent);background:#3b82f61a;border:1px solid #3b82f64d;border-radius:20px;justify-content:center;align-items:center;font-weight:500;transition:all .2s;display:inline-flex}.job-skill:hover{background:#3b82f633;border-color:#3b82f680;transform:translateY(-1px)}.job-skill.minimal{color:var(--color-text-secondary);background:0 0;border:1.5px solid #8b5cf680;border-radius:24px;padding:6px 14px;font-weight:500;transition:all .2s}.job-skill.minimal:hover{border-color:var(--color-secondary);color:var(--color-secondary);background:#8b5cf614;transform:none}.job-skill.code{margin-right:var(--spacing-md);margin-bottom:var(--spacing-xs);font-family:Monaco,Courier New,monospace;font-size:var(--font-size-xs);color:var(--color-accent);letter-spacing:.5px;background:0 0;border:none;padding:0}.job-skill.code:before{content:"< ";opacity:.6}.job-skill.code:after{content:" />";opacity:.6}.job-skill.code:hover{color:var(--color-primary);background:0 0;transform:none}.job-skill.underline{margin-right:var(--spacing-lg);margin-bottom:var(--spacing-xs);color:var(--color-text-secondary);background:0 0;border:none;padding:0 0 2px;font-weight:500;position:relative}.job-skill.underline:after{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-secondary));width:0;height:1px;transition:width .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:0}.job-skill.underline:hover{color:var(--color-text-primary);background:0 0;transform:none}.job-skill.underline:hover:after{width:100%}.job-skill-list{flex-flow:wrap;justify-content:flex-start;align-items:center;gap:0;display:flex}.resume-cta{text-align:center;margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:1px solid #ffffff1a}.resume-link{font-size:var(--font-size-md);color:var(--color-primary);cursor:none;background:0 0;border:none;border-radius:0;padding:0;font-family:inherit;font-weight:600;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-block;position:relative;overflow:visible}.resume-link:before{content:"";background:linear-gradient(90deg, var(--color-primary), var(--color-secondary));width:0%;height:2px;transition:width .4s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-4px;left:0}.resume-link:hover:before{width:100%}.resume-link:hover{color:var(--color-primary);box-shadow:none;transform:none}.resume-link:focus{outline:2px solid var(--color-primary);outline-offset:4px}.resume-link:visited{color:var(--color-primary)}.resume-link:hover:visited{color:#fff}.nav-items{margin-top:var(--spacing-2xl);flex-flow:column wrap;place-content:stretch flex-start;align-items:baseline;display:flex}.nav-items ul{margin:0;padding:0;list-style-type:none}.nav-items li{padding-bottom:var(--spacing-lg);transition:all .2s}.page-navigator{color:var(--color-text-muted);font-size:var(--font-size-sm);align-items:center;font-weight:500;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.page-navigator:before{content:"";background:var(--color-text-muted);width:30px;height:1px;margin-right:var(--spacing-sm);transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-block}.page-navigator.active{color:var(--color-text-primary);padding-left:var(--spacing-sm)}.page-navigator.active:before{background:var(--color-primary);width:60px}.page-navigator:hover,.page-navigator:focus{color:var(--color-text-primary);padding-left:var(--spacing-sm)}.page-navigator:hover:before,.page-navigator:focus:before{background:var(--color-primary);width:50px}.page-navigator:focus{border-radius:4px;outline:none}.page-navigator:visited{color:var(--color-text-muted)}.page-navigator:hover:visited{color:var(--color-text-primary)}.route-links{margin-top:var(--spacing-xl);width:100%}.route-link{color:var(--color-text-primary);font-size:var(--font-size-sm);background:linear-gradient(135deg,#3b82f624,#8b5cf624);border:1px solid #3b82f64d;border-radius:999px;align-items:center;gap:.75rem;padding:.9rem 1.1rem;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s,background .2s;display:inline-flex;box-shadow:0 14px 30px #0f172a40}.route-link:hover,.route-link:focus{background:linear-gradient(135deg,#3b82f638,#8b5cf633);border-color:#60a5fa8c;transform:translateY(-2px);box-shadow:0 18px 36px #0f172a52}.route-link:visited{color:var(--color-text-primary)}.route-link-icon{background:#ffffff24;border-radius:999px;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;font-size:.85rem;line-height:1;display:inline-flex}.soc-link{opacity:.7;transition:all .2s}.soc-link:hover,.soc-link:focus{opacity:1;transform:translateY(-3px)}.soc-link:focus{outline:2px solid var(--color-primary);outline-offset:4px;border-radius:4px}@media (width<=768px){.mainpage{column-gap:var(--spacing-md)!important;max-width:100%!important;padding-left:var(--spacing-lg)!important;padding-right:var(--spacing-lg)!important;grid-template-columns:1fr!important}.left-side,.right-side,section{width:100%!important;min-width:unset!important;max-width:100%!important}.left-side{top:unset!important;height:auto!important;margin-bottom:var(--spacing-lg)!important;align-self:auto!important;position:relative!important}.sticky-wrapper{top:unset!important;position:relative!important}.right-side{min-height:unset!important}}.pdf-viewer-overlay{z-index:10000;padding:1rem;padding-top:max(1rem, env(safe-area-inset-top));padding-bottom:max(1rem, env(safe-area-inset-bottom));padding-left:max(1rem, env(safe-area-inset-left));padding-right:max(1rem, env(safe-area-inset-right));-webkit-overflow-scrolling:touch;background-color:#000000d9;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0;overflow:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pdf-viewer-container{background:#fff;border-radius:8px;flex-direction:row;flex-shrink:0;width:100%;max-width:1200px;height:80vh;min-height:400px;animation:.3s ease-out slideUp;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 40px #00000080}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pdf-viewer-close{color:#fff;cursor:pointer;z-index:10001;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.75rem;line-height:0;transition:background .2s;display:flex;position:absolute;top:.5rem;right:.5rem}.pdf-viewer-close span{display:block;transform:translateY(-1px)}.pdf-viewer-close:hover{background:#000000e6}.pdf-viewer-close:focus-visible{outline-offset:3px;outline:2px solid #fff}.pdf-viewer-frame{border:none;flex:1;width:100%;height:100%}.pdf-viewer-sidebar-toggle{z-index:100;color:#fff;cursor:pointer;background:#0009;border:none;border-radius:0 4px 4px 0;justify-content:center;align-items:center;width:30px;height:60px;font-size:1.2rem;transition:background .2s;display:flex;position:absolute;top:50%;left:0;transform:translateY(-50%)}.pdf-viewer-sidebar-toggle:hover{background:#000c}.pdf-viewer-sidebar{z-index:99;background:#f5f5f5;border-right:1px solid #ddd;width:250px;transition:transform .3s;position:absolute;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.pdf-viewer-sidebar.closed{transform:translate(-100%)}.pdf-viewer-sidebar.open{transform:translate(0)}.pdf-sidebar-content{padding:1rem}.pdf-sidebar-content h3{color:#333;text-transform:uppercase;margin:0 0 1rem;font-size:1rem;font-weight:600}@media (width<=768px){.pdf-viewer-container{height:85vh;height:calc(85vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:0}.pdf-viewer-overlay{padding:.5rem;padding-top:max(.5rem, env(safe-area-inset-top));padding-bottom:max(.5rem, env(safe-area-inset-bottom));padding-left:max(.5rem, env(safe-area-inset-left));padding-right:max(.5rem, env(safe-area-inset-right))}.pdf-viewer-close{background:#000c;width:44px;height:44px;font-size:1.75rem;top:.75rem;right:.75rem;box-shadow:0 2px 12px #00000080}}html body.pdf-open,body.pdf-open,body.pdf-open .App,body.pdf-open .mainpage{cursor:auto!important}body.pdf-open .custom-cursor,body.pdf-open .cursor-trail,body.pdf-open .edge-particle{display:none!important}body.pdf-open .pdf-viewer-close{cursor:pointer!important}.project-item{place-content:stretch flex-start;align-items:stretch;gap:var(--spacing-xl,3rem);flex-flow:column;width:100%;display:flex}.item{color:inherit;text-decoration:none}.project-card{padding:var(--spacing-lg,2rem);gap:var(--spacing-md,1.5rem);color:inherit;text-align:left;background:#ffffff05;border:1px solid #ffffff0d;border-radius:12px;flex-direction:column;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.project-card:before{content:"";-webkit-mask-composite:xor;opacity:0;background:linear-gradient(135deg,#0000,#3b82f61a);border-radius:12px;padding:1px;transition:opacity .3s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.project-card:hover{cursor:pointer;background:#3b82f60d;border-color:#3b82f633;transform:translateY(-2px);box-shadow:0 8px 24px #0003}.project-card:hover:before{opacity:1}.project-card:focus-within{outline:2px solid var(--color-primary,#3b82f6);outline-offset:2px}.item-name{font-size:var(--font-size-md,1.125rem);color:var(--color-text-primary,#fff);margin:0;font-weight:700;line-height:1.4}.item-desc{font-size:var(--font-size-sm,1rem);color:var(--color-text-secondary,#e2e2e2);text-align:left;margin:0;line-height:1.6}.project-link{font-size:var(--font-size-sm,1rem);color:var(--color-accent,#06b6d4);align-self:flex-start;align-items:center;margin-top:auto;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.project-link:hover{color:var(--color-primary,#3b82f6);transform:translate(4px)}.project-link:focus{outline:2px solid var(--color-primary,#3b82f6);outline-offset:4px;border-radius:4px}.loading-skeleton{flex-direction:column;gap:1rem;width:100%;display:flex}.skeleton-item{background:linear-gradient(90deg,#ffffff0d 25%,#ffffff1a 50%,#ffffff0d 75%) 0 0/200% 100%;border-radius:20px;width:100%;height:150px;animation:1.5s ease-in-out infinite loading}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.error-message{color:#ff6b6b;text-align:center;background-color:#ff6b6b1a;border:2px solid #ff6b6b4d;border-radius:10px;padding:1.5rem;font-size:1rem}.projects-section .project-card:before{background:linear-gradient(135deg,#0000,#8b5cf61f)}.projects-section .project-card:hover{background:#8b5cf60f;border-color:#8b5cf63d}.projects-section .project-card:focus-within{outline-color:var(--color-secondary,#8b5cf6)}.projects-section a.project-card{position:relative}.projects-section a.project-card:after{content:"↗";color:var(--color-secondary,#8b5cf6);opacity:0;font-size:.9rem;transition:opacity .2s,transform .2s;position:absolute;top:12px;right:12px;transform:translateY(-2px)}.projects-section a.project-card:hover:after,.projects-section a.project-card:focus:after,.projects-section a.project-card:focus-within:after{opacity:1;transform:translateY(0)}.seasonal-backdrop{pointer-events:none;z-index:0;mix-blend-mode:screen;position:fixed;inset:0;overflow:hidden}.seasonal-backdrop__layer{position:absolute;inset:0}.pixel-particle{background:var(--particle-primary,var(--pixel-primary,#dbeafe));width:4px;height:4px;image-rendering:pixelated;opacity:0;filter:drop-shadow(0 0 6px var(--pixel-glow,#cbd5e166));box-shadow:0 0 0 1px var(--particle-primary,var(--pixel-primary,#dbeafe));will-change:transform, opacity;animation-name:pixelFall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-15vh;left:0}@keyframes pixelFall{0%{opacity:0;transform:translate3d(var(--start-x,0vw), -10%, 0) scale(var(--scale,1)) rotate(var(--rot,0deg))}10%{opacity:.9}to{opacity:0;transform:translate3d(calc(var(--start-x,0vw) + var(--drift,0vw)), 115vh, 0) scale(var(--scale,1)) rotate(var(--rot,0deg))}}.pixel-particle--winter{box-shadow:0 0 0 1px var(--particle-primary,var(--pixel-primary)), 0 -4px 0 0 var(--particle-primary,var(--pixel-primary)), 0 4px 0 0 var(--particle-primary,var(--pixel-primary)), -4px 0 0 0 var(--particle-primary,var(--pixel-primary)), 4px 0 0 0 var(--particle-primary,var(--pixel-primary)), 0 -8px 0 0 var(--particle-secondary,var(--pixel-secondary)), 0 8px 0 0 var(--particle-secondary,var(--pixel-secondary)), -8px 0 0 0 var(--particle-secondary,var(--pixel-secondary)), 8px 0 0 0 var(--particle-secondary,var(--pixel-secondary))}.pixel-particle--spring{box-shadow:0 0 0 1px var(--particle-primary,var(--pixel-primary)), -4px 0 0 0 var(--particle-secondary,var(--pixel-secondary)), 4px 0 0 0 var(--particle-secondary,var(--pixel-secondary)), 0 -4px 0 0 var(--particle-secondary,var(--pixel-secondary)), 0 4px 0 0 var(--particle-secondary,var(--pixel-secondary)), -4px -4px 0 0 var(--particle-primary,var(--pixel-primary)), 4px -4px 0 0 var(--particle-primary,var(--pixel-primary)), -4px 4px 0 0 var(--particle-primary,var(--pixel-primary)), 4px 4px 0 0 var(--particle-primary,var(--pixel-primary));border-radius:1px}.pixel-particle--summer{animation-name:sunFloat;animation-timing-function:ease-in-out}.pixel-particle--summer-sun{transform-origin:50%;width:12px;height:12px;box-shadow:0 0 0 1px var(--particle-primary,var(--pixel-primary)), 4px 0 0 0 var(--particle-primary,var(--pixel-primary)), -4px 0 0 0 var(--particle-primary,var(--pixel-primary)), 0 4px 0 0 var(--particle-primary,var(--pixel-primary)), 0 -4px 0 0 var(--particle-primary,var(--pixel-primary)), 0 -8px 0 0 var(--particle-secondary,var(--pixel-secondary)), 0 8px 0 0 var(--particle-secondary,var(--pixel-secondary)), 8px 0 0 0 var(--particle-secondary,var(--pixel-secondary)), -8px 0 0 0 var(--particle-secondary,var(--pixel-secondary));filter:drop-shadow(0 0 10px #ffd6664d)drop-shadow(0 0 16px #ffd66633);border-radius:2px;animation-name:sunFloat;animation-timing-function:ease-in-out;top:auto;bottom:-20vh}.pixel-particle--fall{box-shadow:0 0 0 1px var(--particle-primary,var(--pixel-primary)), 4px 0 0 0 var(--particle-primary,var(--pixel-primary)), 8px 0 0 0 var(--particle-secondary,var(--pixel-secondary)), 4px -4px 0 0 var(--particle-secondary,var(--pixel-secondary)), 8px -4px 0 0 var(--particle-primary,var(--pixel-primary)), 4px 4px 0 0 var(--particle-secondary,var(--pixel-secondary)), 8px 4px 0 0 var(--particle-primary,var(--pixel-primary)), 0 4px 0 0 var(--particle-secondary,var(--pixel-secondary)), -4px 4px 0 0 var(--particle-primary,var(--pixel-primary))}.seasonal-backdrop--winter{--pixel-primary:#dbeafe;--pixel-secondary:#bfdbfe;--pixel-glow:#bfdbfe40;background:radial-gradient(circle at 10% 20%,#bfdbfe14 0,#0000 35%),radial-gradient(circle at 90% 75%,#94a3b80d 0,#0000 45%),radial-gradient(circle at 50% 10%,#e6f2ff0f 0,#0000 38%)}.seasonal-backdrop--spring{--pixel-primary:#e4e9ff;--pixel-secondary:#d8f5e4;--pixel-glow:#d4ddf459;background:radial-gradient(circle at 18% 25%,#d4ddf41f 0,#0000 38%),radial-gradient(circle at 82% 70%,#c8e8d814 0,#0000 42%)}.seasonal-backdrop--summer{--pixel-primary:#ffe9a8;--pixel-secondary:#fcd34d;--pixel-glow:#fcd34d47;background:radial-gradient(circle at 20% 30%,#fcd34d1f 0,#0000 36%),radial-gradient(circle at 80% 68%,#ffebb717 0,#0000 40%),radial-gradient(circle at 50% 85%,#ffe2941f 0,#0000 42%)}.seasonal-backdrop--fall{--pixel-primary:#f4b79a;--pixel-secondary:#e99a6f;--pixel-glow:#e99a6f47;background:radial-gradient(circle at 16% 24%,#e99a6f1f 0,#0000 34%),radial-gradient(circle at 85% 70%,#d4785014 0,#0000 42%)}@keyframes sunFloat{0%{opacity:0;transform:translate3d(var(--start-x,0vw), 0vh, 0) scale(calc(var(--scale,1) * .92)) rotate(var(--angle,0deg))}20%{opacity:.8}55%{opacity:1;transform:translate3d(calc(var(--start-x,0vw) + var(--drift,0vw)), -60vh, 0) scale(calc(var(--scale,1) * 1.08)) rotate(var(--angle,0deg))}to{opacity:0;transform:translate3d(calc(var(--start-x,0vw) + var(--drift,0vw)), -120vh, 0) scale(calc(var(--scale,1) * .95)) rotate(var(--angle,0deg))}}.seasonal-backdrop__sprites{z-index:1;position:absolute;inset:0}.holiday-sprite{width:4px;height:4px;image-rendering:pixelated;transform:scale(var(--sprite-scale,1));filter:drop-shadow(0 0 8px #ffffff26);animation:ease-in-out infinite spriteBob;position:absolute}@keyframes spriteBob{0%,to{transform:scale(var(--sprite-scale,1)) translateY(0)}50%{transform:scale(var(--sprite-scale,1)) translateY(-8px)}}.holiday-sprite--tree{background:#2d5016;width:20px;height:28px;bottom:0;box-shadow:8px 24px #8b4513,4px 20px #2d5016,12px 20px #2d5016,0 16px #2d5016,4px 16px #2d5016,12px 16px #2d5016,16px 16px #2d5016,4px 12px #3d6b1f,12px 12px #3d6b1f,0 8px #3d6b1f,4px 8px #3d6b1f,12px 8px #3d6b1f,16px 8px #3d6b1f,8px 4px #4d7b2f,4px 0 #4d7b2f,8px 0 #4d7b2f,12px 0 #4d7b2f,0 12px #c94d4d,16px 16px #c94d4d,8px 8px #d4af37,4px 16px #d4af37;animation:none!important;top:auto!important}.holiday-sprite--sleigh{opacity:0;background:#8b0000;width:32px;height:20px;animation:20s linear infinite sleighFly;box-shadow:4px 0 #8b0000,8px 0 #8b0000,12px 0 #8b0000,16px 0 #8b0000,0 4px brown,4px 4px brown,8px 4px brown,12px 4px brown,16px 4px brown,20px 4px brown,0 8px #d4af37,20px 8px #d4af37,24px 0 #c94d4d,28px 0 #c94d4d,24px -4px #fad5a5,28px -4px #fad5a5,24px -8px #c94d4d,28px -8px #c94d4d,28px -12px #fff}@keyframes sleighFly{0%{opacity:0;top:5%;left:-10%}15%{opacity:.4}50%{opacity:.4}85%{opacity:.4}to{opacity:0;top:8%;left:110%}}.holiday-sprite--egg{background:#fde7ef;border-radius:40% 40% 50% 50%;width:16px;height:20px;box-shadow:4px 4px #f4c2d4,4px 12px #f4c2d4,8px 8px #fff1c2,8px 16px #fff1c2,12px 6px #e4e9ff,12px 14px #e4e9ff}.holiday-sprite--bunny{background:#e8e4dc;width:16px;height:20px;box-shadow:4px 0 #e8e4dc,8px 0 #e8e4dc,0 4px #f5f3ed,4px 4px #f5f3ed,8px 4px #f5f3ed,12px 4px #f5f3ed,4px 8px #f5f3ed,8px 8px #f5f3ed,4px -8px #e8e4dc,8px -8px #e8e4dc,4px -4px #e8e4dc,8px -4px #e8e4dc,4px 0 #2d2d2d,8px 0 #2d2d2d,6px 4px #ff9db5,0 8px #fff}.holiday-sprite--beachball{background:#ff6b6b;border-radius:50%;width:16px;height:16px;animation:3s ease-in-out infinite beachBallBounce;box-shadow:4px 0 #ff6b6b,8px 0 #ff6b6b,0 4px #ffd93d,4px 4px #ffd93d,8px 4px #ffd93d,12px 4px #ffd93d,4px 8px #4ecdc4,8px 8px #4ecdc4,0 0 #fff,12px 0 #fff,0 12px #fff,12px 12px #fff}@keyframes beachBallBounce{0%,to{transform:scale(var(--sprite-scale,1)) translateY(0) rotate(0deg)}25%{transform:scale(var(--sprite-scale,1)) translateY(-20px) rotate(90deg)}50%{transform:scale(var(--sprite-scale,1)) translateY(0) rotate(180deg)}75%{transform:scale(var(--sprite-scale,1)) translateY(-20px) rotate(270deg)}}.holiday-sprite--surfboard{background:#4ecdc4;border-radius:30% 30% 40% 40%;width:8px;height:28px;animation:4s ease-in-out infinite surfboardSway;box-shadow:0 4px #4ecdc4,0 8px #4ecdc4,0 12px #4ecdc4,0 16px #4ecdc4,0 20px #4ecdc4,0 8px #ffe66d,0 12px #ffe66d,0 16px #ff6b6b}@keyframes surfboardSway{0%,to{transform:scale(var(--sprite-scale,1)) rotate(-5deg)}50%{transform:scale(var(--sprite-scale,1)) rotate(5deg)}}.holiday-sprite--pumpkin{background:#ff8c42;border-radius:45%;width:20px;height:20px;box-shadow:4px 0 #ff8c42,8px 0 #ff8c42,12px 0 #ff8c42,0 4px #f73,4px 4px #f73,8px 4px #f73,12px 4px #f73,16px 4px #f73,0 8px #f73,4px 8px #f73,8px 8px #f73,12px 8px #f73,16px 8px #f73,4px 12px #ff8c42,8px 12px #ff8c42,12px 12px #ff8c42,8px -4px #4d7b2f,4px 4px #2d2d2d,12px 4px #2d2d2d,6px 8px #2d2d2d,8px 8px #2d2d2d,10px 8px #2d2d2d}.holiday-sprite--ghost{background:#f5f5f5;border-radius:50% 50% 0 0;width:16px;height:20px;animation:4s ease-in-out infinite ghostFloat;box-shadow:4px 0 #f5f5f5,8px 0 #f5f5f5,0 4px #fff,4px 4px #fff,8px 4px #fff,12px 4px #fff,0 8px #fff,4px 8px #fff,8px 8px #fff,12px 8px #fff,0 12px #fff,4px 12px #fff,8px 12px #fff,12px 12px #fff,0 16px #fff,4px 16px #fff,8px 16px #fff,12px 16px #fff,4px 4px #2d2d2d,8px 4px #2d2d2d,6px 8px #2d2d2d}@keyframes ghostFloat{0%,to{transform:scale(var(--sprite-scale,1)) translateY(0);opacity:.85}50%{transform:scale(var(--sprite-scale,1)) translateY(-15px);opacity:.95}}@media (prefers-reduced-motion:reduce){.pixel-particle{display:none}.holiday-sprite{animation:none!important}}.aboutpage{background-color:#fff;border:.1rem solid gray;border-radius:2rem;justify-content:center;align-items:center;width:70vw;margin-top:10vh;margin-bottom:4rem;font-family:Roboto,monospace;transition:all .2s;display:flex;box-shadow:1rem 1rem 1rem #a9a9a980}.attribute{color:#c2c2c2;font-size:1rem;position:fixed;bottom:0;right:0}.neonlink{color:#0ff}.NavBar-Parent{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(120deg,#0f172ad9,#0f172aa6),radial-gradient(circle at top,#3b82f62e,#0000 55%);border:1px solid #94a3b840;border-radius:999px;flex-direction:row;place-content:center space-between;align-items:center;width:90%;max-width:1100px;min-height:4rem;margin:1.4rem auto 0;padding:.45rem 1rem;display:flex;box-shadow:0 16px 36px #02061759,inset 0 1px #ffffff1f}.NavBar-Logo{object-fit:cover;border-radius:999px;width:2.35rem;height:2.35rem}.NavBar-LogoButton{cursor:pointer;background:linear-gradient(135deg,#3b82f62e,#8b5cf624);border:1px solid #60a5fa47;border-radius:999px;justify-content:center;align-items:center;width:2.95rem;height:2.95rem;padding:0;display:inline-flex}.NavBar-Items{color:#e2e8f0;flex-flow:wrap;place-content:center flex-end;align-items:center;gap:.35rem;width:100%;margin-left:.8rem;font-family:Roboto,monospace;font-size:.95rem;display:flex}.NavBar-Items-Item{color:#e2e8f0db;border:1px solid #0000;border-radius:999px;margin:0;padding:.5rem .85rem;text-decoration:none;transition:all .18s}.NavBar-Items-Item:hover{cursor:pointer;color:#f8fafc;background:#3b82f624;border-color:#60a5fa59}.NavBar-Items-Item.is-active{color:#f8fafc;background:linear-gradient(135deg,#3b82f638,#8b5cf633);border-color:#60a5fa73;box-shadow:0 8px 16px #0f172a38}@media (width<=768px){.NavBar-Parent{height:auto;padding:.5rem .7rem}.NavBar-Items{justify-content:flex-end;gap:.35rem;font-size:.88rem}.NavBar-Items-Item{padding:.42rem .65rem}}.servicespage{background-color:#fff;border:.1rem solid gray;border-radius:2rem;justify-content:center;align-items:center;width:70vw;margin-top:10vh;margin-bottom:4rem;font-family:Roboto,monospace;transition:all .2s;display:flex;box-shadow:1rem 1rem 1rem #a9a9a980}.contactpage{background-color:#fff;border:.1rem solid gray;border-radius:2rem;justify-content:center;align-items:center;width:70vw;margin-top:10vh;margin-bottom:4rem;font-family:Roboto,monospace;transition:all .2s;display:flex;box-shadow:1rem 1rem 1rem #a9a9a980}.innerborder{border:2px solid gray;border-radius:1rem;margin:2rem;padding:2rem}.certrow{justify-content:baseline;flex-direction:row;align-content:center;align-items:center;margin:2rem;display:flex}.alert{background-color:#8e5b5b1a;border:.2rem dashed red;border-radius:1rem;padding:2rem}.unselectable{-webkit-user-select:none;user-select:none}.textblock{text-align:justify;background-color:#a9a9a91a;border:.1rem solid gray;border-radius:1rem;margin:2rem;padding:2rem;box-shadow:.5rem .5rem .5rem #a9a9a980}.work-history-map-section{--map-panel-height:clamp(640px, calc(100vh - 70px), 1100px);width:100%;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0 auto;padding:0;display:block}.map-header-row{box-shadow:none;background:0 0;border-radius:0;margin-bottom:1.25rem;padding:0;display:block}.map-heading-group{min-width:0}.work-history-map-section .section-heading{color:#fff;text-shadow:0 1px #0f172ae6,0 3px 16px #020617f2;letter-spacing:-.02em;margin:0;font-size:2rem;font-weight:700;line-height:1.05}.work-history-map-section .section-heading:after{left:50%;transform:translate(-50%)}.map-subtitle{color:#f1f5f9eb;text-shadow:0 1px #0f172ae6,0 2px 12px #020617e6;margin:.55rem 0 0;font-size:.95rem;font-weight:400;line-height:1.6}.inline-home-link{color:#f8fafc;letter-spacing:.01em;background:#0f172ae6;border:1px solid #60a5fa7a;border-radius:999px;flex-shrink:0;align-self:flex-end;width:fit-content;margin-top:0;padding:.5rem 1rem;font-size:.92rem;font-weight:700;line-height:1;text-decoration:none;transition:all .18s;box-shadow:0 8px 18px #02061759}.inline-home-link:hover,.inline-home-link:focus{color:#fff;background:#1e293bf2;border-color:#7dd3fcad}.history-map-layout{grid-template-columns:minmax(0,1.08fr) minmax(380px,560px);align-items:stretch;gap:.9rem;width:100%;display:grid}.history-right-column{min-height:var(--map-panel-height);max-height:var(--map-panel-height);flex-direction:column;gap:.7rem;display:flex}.map-container,.history-details-panel{background:#0f172a94;border:1px solid #60a5fa3d;border-radius:20px;box-shadow:inset 0 1px #ffffff08}.history-details-panel{background:#1e293b70}.map-container{height:var(--map-panel-height);overscroll-behavior:contain;flex-direction:column;gap:.75rem;padding:1rem;display:flex;position:relative;overflow:hidden}.map-controls{z-index:2;gap:.45rem;display:flex;position:absolute;top:1.6rem;right:1.6rem}.map-controls button{color:#e2e8f0;cursor:pointer;background:#0f172ad1;border:1px solid #60a5fa59;border-radius:10px;min-width:2rem;height:2rem;font-weight:700}.map-controls button:last-child{min-width:3.8rem;font-size:.8rem}.us-history-map{cursor:grab;touch-action:none;border-radius:14px;flex:1;width:100%;height:auto;min-height:0;display:block}.us-history-map:active{cursor:grabbing}.map-country{fill:#15284a;stroke:#93c5fd38;stroke-width:1.1px;vector-effect:non-scaling-stroke}.history-marker{cursor:pointer;outline:none}.history-marker-leader{stroke:#93c5fdfa;stroke-width:2.2px;stroke-linecap:round;stroke-dasharray:4 2;vector-effect:non-scaling-stroke;pointer-events:none;filter:drop-shadow(0 0 5px #60a5fad9);opacity:.98}.history-marker-pulse{fill:#3b82f633;pointer-events:none;animation:2.2s ease-out infinite history-marker-pulse}.history-marker-dot{fill:url(#history-map-marker-gradient);stroke:#ffffffeb;stroke-width:2px;vector-effect:non-scaling-stroke}.history-marker--visited .history-marker-dot{fill:#34d399}.history-marker--interesting .history-marker-dot{fill:#f59e0b}.history-marker--custom .history-marker-dot{fill:#a78bfa}.history-marker--active .history-marker-dot{fill:#06b6d4}.history-marker-count{fill:#f8fafc;pointer-events:none;font-size:.82rem;font-weight:700}.map-footer{background:#1e293b61;border:1px solid #60a5fa33;border-radius:12px;flex-direction:column;gap:.5rem;padding:.65rem .75rem;display:flex}.map-caption{color:#e2e8f0cc;flex-wrap:wrap;align-items:center;gap:.55rem;width:100%;margin-top:0;font-size:.84rem;line-height:1.35;display:flex}.map-utc-time{color:#94a3b8bf;letter-spacing:.05em;margin-left:auto;font-family:Roboto Mono,monospace;font-size:.76rem}.map-meta-row{flex-wrap:wrap;gap:.45rem;display:flex}.map-meta-pill{color:#e2e8f0e6;white-space:nowrap;background:#1e293b73;border:1px solid #60a5fa4d;border-radius:999px;align-items:center;gap:.4rem;padding:.28rem .55rem;font-size:.72rem;line-height:1;display:inline-flex}.map-meta-pill strong{color:#f8fafc;font-size:.76rem;font-weight:700}.map-meta-label{color:#93c5fde6;letter-spacing:.01em;text-transform:uppercase}.map-meta-pill--wide{max-width:min(100%,340px)}.map-meta-pill--wide strong{text-overflow:ellipsis;white-space:nowrap;max-width:230px;display:inline-block;overflow:hidden}.map-twilight-overlay{fill:none;stroke:#fbbf248c;stroke-width:1.1px;vector-effect:non-scaling-stroke;pointer-events:none}.map-night-overlay{fill:#02081e9e;pointer-events:none}.map-state-border{fill:none;stroke:#bfdbfecc;stroke-width:.9px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}.map-city-dot{fill:#f1f5f9e0;stroke:#02081eb3;stroke-width:.6px;pointer-events:none}.map-city-label{fill:#f1f5f9;text-anchor:middle;dominant-baseline:auto;pointer-events:none;paint-order:stroke;stroke:#02081eeb;stroke-width:3px;stroke-linejoin:round;font-family:system-ui,-apple-system,sans-serif;font-weight:700}.map-caption-dot,.popup-location-dot{background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:999px;width:10px;height:10px;box-shadow:0 0 16px #3b82f68c}.history-details-panel{text-align:left;flex:1;min-height:0;max-height:none;padding:1.1rem;overflow:auto}.history-details-empty{color:#e2e8f0d1;flex-direction:column;justify-content:flex-start;min-height:0;padding-top:.25rem;display:flex}.history-details-empty h3{color:#f8fafc;margin:0 0 .65rem}.history-details-empty p{margin:0;line-height:1.6}.map-popup{color:#e2e8f0;text-align:left}.popup-location-header{align-items:center;gap:.6rem;margin-bottom:.9rem;display:flex}.popup-location-name{margin:0;font-size:1rem;font-weight:700}.popup-company,.popup-title,.popup-period,.popup-desc-text{margin:0}.popup-company{color:#f8fafc;font-weight:700}.popup-title{color:#93c5fd;margin-top:.2rem;font-weight:600}.popup-period{color:#e2e8f0b8;margin-top:.2rem;font-size:.92rem}.popup-desc-text,.popup-desc-list{color:#e2e8f0d1;margin-top:.75rem;font-size:.92rem;line-height:1.55}.popup-desc-list{margin-bottom:0;padding-left:1rem}.popup-desc-list li+li{margin-top:.35rem}.popup-divider{background:#94a3b829;height:1px;margin:.95rem 0}.popup-skills{flex-wrap:wrap;gap:.45rem;margin-top:.75rem;display:flex}.popup-skill-tag{color:#bfdbfe;background:#3b82f624;border:1px solid #60a5fa33;border-radius:999px;padding:.25rem .55rem;font-size:.78rem;font-weight:600}@keyframes history-marker-pulse{0%{opacity:.85;transform:scale(.85)}70%{opacity:0;transform:scale(1.8)}to{opacity:0;transform:scale(1.8)}}@media (width<=960px){.work-history-map-section{--map-panel-height:min(72vh, 900px)}.map-header-row{margin-bottom:1rem}.history-map-layout{grid-template-columns:1fr}.history-right-column{min-height:auto;max-height:none}.inline-home-link{align-self:flex-start}.map-container,.history-details-panel{min-height:var(--map-panel-height);max-height:none}.map-utc-time{margin-left:0}}@media (width<=768px){.work-history-map-section{--map-panel-height:min(76vh, 920px);border-radius:0;width:100%;margin-top:0;padding:0}.work-history-map-section .section-heading{font-size:1.6rem}.map-container,.history-details-panel{padding:.9rem}.map-meta-pill{font-size:.7rem}.map-meta-pill strong{font-size:.74rem}}.history-page-shell{width:min(99vw,2200px);min-height:100vh;margin:0 auto;padding:.75rem 1rem}
