@keyframes pageLoad{0%{opacity:0}to{opacity:1}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes scroll-bounce{0%,5%{transform:translateY(0)}95%,to{transform:translateY(var(--scroll-distance))}}@keyframes fadeInUp{0%{opacity:0;transform:translate3d(0,30px,0)}to{opacity:1;transform:translate3d(0,0,0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate3d(-30px,0,0)}to{opacity:1;transform:translate3d(0,0,0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes revealContent{0%{opacity:0;transform:translate3d(0,20px,0)}to{opacity:1;transform:translate3d(0,0,0)}}@keyframes chev-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}@keyframes cta-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}:root{--spacing-xs:0.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-2xl:4rem;--color-bg-primary:#0b1324;--color-bg-secondary:#14213d;--color-surface:#1b2b4b;--color-accent:#3ec7ff;--color-accent-strong:#5ad6ff;--color-accent-hover:rgb(62 199 255 / 12%);--color-text-primary:#e6edf8;--color-text-secondary:#a9b6cc;--color-border:rgb(62 199 255 / 24%);--color-divider:rgb(169 182 204 / 28%);--font-ui-en:'Satoshi', -apple-system, blinkmacsystemfont, 'Segoe UI', roboto, sans-serif;--font-ui-ja:'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', 'Meiryo', sans-serif;--transition-fast:0.2s ease;--transition-normal:0.3s ease;--transition-slow:0.5s ease;--focus-ring:0 0 0 3px rgb(100 255 218 / 40%)}.resume-theme{--resume-accent:var(--color-accent);--resume-accent-strong:var(--color-accent-strong);--resume-accent-muted:var(--color-accent-hover);--resume-surface:var(--color-surface);--resume-text:var(--color-text-primary);--resume-text-muted:var(--color-text-secondary);--resume-border:var(--color-border);--resume-accent-10:color-mix(in srgb, var(--color-accent) 10%, transparent);--resume-accent-20:color-mix(in srgb, var(--color-accent) 20%, transparent);--resume-accent-30:color-mix(in srgb, var(--color-accent) 30%, transparent);--resume-accent-40:color-mix(in srgb, var(--color-accent) 40%, transparent);--resume-accent-50:color-mix(in srgb, var(--color-accent) 50%, transparent);--resume-surface-glass:color-mix(in srgb, var(--color-surface) 55%, transparent);--resume-surface-card:color-mix(in srgb, var(--color-surface) 65%, transparent);--resume-bg-footer:color-mix(in srgb, var(--color-bg-primary) 90%, transparent)}.experience-duration{display:inline;margin-left:10px;color:#64ffda;font-weight:500;font-size:.9em}.about-languages,.about-languages-list .skill-card{display:flex;align-items:center;border:1.5px solid rgb(100 255 218/18%)}.about-languages{margin:var(--spacing-xl) auto 0 auto;padding:var(--spacing-md) var(--spacing-lg);background:rgb(10 25 47/98%);border-radius:12px;box-shadow:0 4px 32px 0 rgb(100 255 218/8%);flex-direction:column;max-width:100%}.about-languages h3{color:#64ffda;font-size:1.2rem;margin-bottom:var(--spacing-sm);font-weight:600;text-align:center;letter-spacing:.03em}.about-languages-list{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center;width:100%;max-width:100%}.about-languages-list .skill-card{justify-content:center;text-align:center;background:rgb(100 255 218/10%);white-space:normal;word-break:break-word;border-radius:8px;margin:0;box-shadow:0 2px 12px 0 rgb(100 255 218/4%);padding:var(--spacing-sm);word-wrap:break-word;min-width:145px;flex-shrink:0}*{margin:0;padding:0;box-sizing:border-box;max-width:100%}body,html{overflow-x:hidden;width:100%}html{scroll-behavior:auto;scroll-padding-top:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-size-adjust:100%}body{background:var(--color-bg-primary, #0a192f);color:var(--color-text-secondary, #8892b0);font-family:var(--font-ui-en);font-size:clamp(16px,1.5vw,18px);line-height:1.7;text-rendering:optimizelegibility;max-width:100vw;position:relative;padding-top:80px;counter-reset:section}html[lang=ja] .project-status,html[lang=ja] body,html[lang=ja] button,html[lang=ja] input,html[lang=ja] textarea{font-family:var(--font-ui-ja)}body.page-loaded,body.page-loading{opacity:1;animation:none}canvas,img,picture,svg,video{max-width:100%;height:auto;display:block}::selection{background-color:rgb(100 255 218/20%);color:#64ffda}.nav-hamburger{display:none;background:0 0;border:0;box-shadow:none;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;width:50px;height:50px;z-index:1100;flex-shrink:0;padding:8px;margin:0;position:relative;outline:0}.nav-hamburger:focus{outline:2px solid #64ffda;outline-offset:2px}.nav-hamburger span{display:block;width:28px;height:3px;background-color:#64ffda;margin:4px 0;border-radius:2px;transition:transform .3s ease,opacity .3s ease;transform-origin:center}.nav-hamburger.is-active span:nth-child(1){transform:rotate(45deg) translate(8px,8px)}.nav-hamburger.is-active span:nth-child(2){opacity:0;transform:translateX(15px)}.nav-hamburger.is-active span:nth-child(3){transform:rotate(-45deg) translate(7px,-7px)}.nav-mobile-menu{position:fixed;top:0;left:0;right:0;background:rgb(11 19 36/96%);border-bottom:1px solid var(--color-border);z-index:1050;overflow:hidden auto;-webkit-overflow-scrolling:touch;max-height:0;opacity:0;visibility:hidden;transition:max-height .3s ease,opacity .3s ease,visibility .3s ease;pointer-events:none}.nav-mobile-menu.is-visible{max-height:calc(100vh - 80px);opacity:1;visibility:visible;pointer-events:auto}.nav-mobile-menu ul{list-style:none;padding:1.5rem 2rem;margin:0;display:flex;flex-direction:column;gap:0;align-items:stretch;width:100%}.nav-mobile-menu li{width:100%;border-bottom:1px solid rgb(100 255 218/5%)}.nav-mobile-menu li:last-child{border-bottom:none}.nav-mobile-menu a{display:block;color:#d7dff7;font-size:1.1rem;text-decoration:none;font-weight:500;padding:1rem 0;transition:color .2s ease}.nav-mobile-menu a:focus,.nav-mobile-menu a:hover{color:#64ffda;outline:0}.nav-mobile-menu a.btn-resume{color:var(--color-accent);border:1px solid var(--color-accent);padding:.65rem 1.25rem;border-radius:8px;font-size:1.05rem;font-weight:600;margin-top:.5rem;min-height:44px;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease}.nav-links a.btn-nav-resume:hover,.nav-links a.btn-primary:hover,.nav-links a.btn-resume:hover,.nav-mobile-menu a.btn-resume:hover{background:var(--color-accent-hover);color:var(--color-accent)}.nav-mobile-menu .lang-switch{display:flex;gap:.5rem;align-items:center;justify-content:flex-start;font-size:.95rem;padding:1rem 0;border-bottom:none}.nav-mobile-menu .lang-switch a{padding:0;font-size:.95rem}.nav-mobile-menu .lang-switch span{color:#8892b0}@media (max-width:1199px){.nav-links{display:none!important}.nav-hamburger{display:flex!important;order:2;margin-left:auto;margin-right:.5rem}nav{margin-bottom:0}.nav-mobile-menu{top:80px}}@media (min-width:1200px){.nav-links{display:flex!important;gap:2rem}.nav-hamburger,.nav-mobile-menu{display:none!important}}nav{position:fixed;top:0;max-width:100vw;background:rgb(11 19 36/88%);backdrop-filter:blur(10px);z-index:1000;padding:clamp(.75rem,2vw,1.5rem)0;box-shadow:0 10px 30px -10px rgb(2 12 27/70%);transform:translateZ(0);will-change:transform;contain:layout style paint}.nav-content{margin:0 auto;padding:0 var(--spacing-sm);display:flex;justify-content:space-between;align-items:center;width:100%;max-width:100vw;position:relative}@media (min-width:640px){.nav-content{padding:0 var(--spacing-md)}}@media (min-width:900px){.nav-content{padding:0 var(--spacing-lg)}}@media (min-width:1200px){.nav-content{padding:0 var(--spacing-xl)}}.nav-links a,.nav-logo{text-decoration:none;transition:color .2s ease;display:inline-flex;align-items:center;flex-shrink:0}.nav-logo{color:var(--color-accent);font-size:1.2rem;font-weight:700;font-family:"Courier New",monospace}@media (min-width:768px){.nav-logo{font-size:1.5rem}}.experience-details li:hover::before,.nav-logo:hover{color:var(--color-accent-strong)}.lang-switch,.nav-links{display:flex;align-items:center}.nav-links{gap:var(--spacing-lg);list-style:none;flex-wrap:nowrap;white-space:nowrap}.nav-links a{color:var(--color-text-primary);font-size:1rem;font-weight:500;position:relative}@media (min-width:1200px){.nav-links a{font-size:1.15rem}}.nav-links a.btn-resume,.nav-links a:hover{color:var(--color-accent)}.nav-links a::before{content:"";position:absolute;bottom:-5px;left:0;width:0;height:2px;background:var(--color-accent);transition:width .3s ease}.nav-links a:hover::before,nav{width:100%}.nav-links a i{pointer-events:none}.nav-links a.btn-nav-resume::before,.nav-links a.btn-primary::before,.nav-links a.btn-resume::before{display:none}.nav-links a.btn-resume{border:1px solid var(--color-accent);padding:.45rem 1rem;min-height:44px;font-size:1rem;font-weight:600;border-radius:8px;display:inline-flex;align-items:center;transition:background .2s ease,color .2s ease}.nav-links a.btn-nav-resume,.nav-links a.btn-primary{color:var(--color-accent);border:1px solid var(--color-accent);min-width:7.5rem;justify-content:center}.lang-switch{gap:.3rem;font-family:var(--font-ui-en),"Courier New",monospace;font-size:1.08rem;height:44px;min-height:44px;line-height:1.2;margin-left:.2rem;margin-right:.2rem}.lang-switch a,.lang-switch span{color:#8892b0;display:flex;align-items:center;height:100%}.lang-switch a{text-decoration:none;padding:.15rem .4rem;font-weight:500;border-radius:3px;transition:color .2s,background .2s}.lang-switch a.active{color:var(--color-accent);font-weight:600;background:0 0;box-shadow:none}.lang-switch a:hover{color:var(--color-accent);background:var(--color-accent-hover)}.lang-switch span{font-size:1.1em;font-weight:400;margin:0 .1em;justify-content:center}.hero-section{min-height:auto;box-sizing:border-box;display:flex;align-items:flex-start;padding:var(--spacing-2xl) var(--spacing-lg) var(--spacing-xl);margin-top:0;width:100%;max-width:100vw;overflow:visible}.hero-content{max-width:1200px;margin:0 auto;width:100%}.hero-intro{color:var(--color-accent);font-family:"Courier New",monospace;font-size:1.3rem;margin-bottom:2rem;font-weight:400;min-height:unset;line-height:1.5}.hero-intro #typed-intro,.hero-intro #typed-intro *,.hero-intro .typed-cursor{color:inherit}.hero-typed.is-typing{min-width:.25em}html.js .hero-intro #typed-intro:empty::before,html.js .hero-title #typed-title:empty::before{content:attr(data-fallback);color:inherit}.hero-role-line{display:inline-block;position:relative}.hero-role-line::after{content:attr(data-longest);visibility:hidden;display:block;height:0;overflow:hidden}#typed-subtitle{transition:opacity 200ms ease}#typed-subtitle.is-fading{opacity:0}.hero-subtitle .typed-cursor{color:#64ffda}.hero-location{font-size:1.1rem;color:var(--color-text-secondary);margin-bottom:.75rem;letter-spacing:.02em}.about-text p,.hero-availability{margin-bottom:var(--spacing-sm)}.hero-availability .badge{margin-bottom:0}.hero-title{font-size:clamp(2.8rem,9vw,5.5rem);font-weight:800;color:var(--color-text-primary);line-height:1.1;margin-bottom:1rem;min-height:clamp(3rem,10vw,6rem)}.hero-subtitle{font-size:clamp(1.75rem,6vw,3.25rem);font-weight:700;color:var(--color-text-secondary);line-height:1.15;margin-bottom:1.25rem;min-height:clamp(2rem,7vw,3.5rem)}.hero-actions,section{width:100%;max-width:100%}.hero-actions{gap:var(--spacing-sm);padding-bottom:var(--spacing-md)}.hero-actions,.hero-section .hero-actions{align-items:flex-start}.hero-cta-row,.hero-section .hero-cta-row,.hero-section .hero-social{justify-content:flex-start}.hero-cta-row,.hero-social{width:100%;margin-bottom:var(--spacing-sm)}.hero-section .scroll-cta-container{text-align:left}.hero-cta-row .btn-hero-cta{display:inline-flex;width:auto;max-width:min(320px,100%);min-height:48px;margin-left:0;margin-right:0}.hero-social{display:flex;flex-wrap:wrap;gap:var(--spacing-md);justify-content:center;align-items:center}.hero-social-icon{color:var(--color-text-secondary);font-size:1.35rem;transition:color .2s ease,background .2s ease;width:44px;height:44px;border-radius:8px}.hero-social-icon:hover{color:var(--color-accent);background:var(--color-accent-hover)}.hero-social-icon::before{display:none!important}.typed-cursor{display:none}.hero-intro .typed-cursor{font-family:"Courier New",monospace}.hero-description{max-width:640px;font-size:1.25rem;line-height:1.6;margin-bottom:1rem;color:var(--color-text-secondary)}.hero-actions .badge,.hero-availability .badge{font-size:.95rem;line-height:1.4;text-align:center;max-width:36rem}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.25rem;border-radius:8px;text-decoration:none;font-size:1.05rem;font-weight:600;line-height:1.2}.btn-primary{color:var(--color-accent);background:0 0;border:1px solid var(--color-accent);transition:background .2s ease,color .2s ease;cursor:pointer}.btn-primary:hover{background:var(--color-accent-hover)}.btn-primary:active{background:rgb(62 199 255/22%)}.btn-secondary{color:#f39c12;background:rgb(243 156 18/6%);border:1px solid rgb(243 156 18/28%);transition:background .2s ease}.btn-secondary:hover{background:rgb(243 156 18/14%)}section{margin:0 auto;padding:var(--spacing-2xl) var(--spacing-lg);contain:layout style;overflow-x:hidden;opacity:1}html.js section.section-reveal:not(.hero-section,.is-visible),html.js section:not(.hero-section){opacity:1}html.js section.section-reveal.is-visible{opacity:1}@media (prefers-reduced-motion:reduce){html.js section.section-reveal:not(.hero-section){opacity:1!important;transition:none!important}}@media (min-width:768px){section{padding:clamp(3rem,8vw,4rem) var(--spacing-xl)}}@media (min-width:1024px){section{max-width:min(1200px,calc(100vw - 4rem));padding:clamp(4rem,10vw,5rem) var(--spacing-2xl)}}@media (max-width:768px){.hero-section{min-height:auto;align-items:flex-start;padding-top:var(--spacing-lg);padding-bottom:var(--spacing-xl)}.hero-title{font-size:clamp(2rem,10vw,3.5rem);margin-bottom:.75rem}.hero-subtitle{font-size:clamp(1.4rem,7vw,2.2rem);margin-bottom:1rem}.hero-description{font-size:clamp(1rem,2.5vw,1.15rem);line-height:1.6;margin-bottom:var(--spacing-sm)}.hero-location{font-size:1rem;margin-bottom:var(--spacing-sm)}.hero-intro{margin-bottom:1rem;font-size:1.1rem}.scroll-cta-container{margin-top:var(--spacing-sm)}}@media (max-width:480px){.scroll-cta-container{display:none}}@media (max-height:800px){.hero-section .scroll-cta-container{display:none}}@media (max-height:720px) and (max-width:768px){.hero-section{min-height:auto;padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.hero-intro{margin-bottom:.75rem;font-size:1rem}.hero-title{margin-bottom:.5rem}.hero-subtitle{margin-bottom:.75rem}.hero-availability,.hero-description,.hero-location{margin-bottom:.5rem}}.section-title{display:flex;align-items:center;font-size:2.5rem;font-weight:700;color:var(--color-text-primary);margin-bottom:var(--spacing-lg);white-space:nowrap}.section-number,.skills-list li{font-family:"Courier New",monospace}.section-number{color:var(--color-accent);font-size:1.9rem;margin-right:1rem;font-weight:400}.section-title::before{content:none}.section-title::after{content:"";display:block;width:300px;height:1px;background:var(--color-divider);margin-left:2rem}.about-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);align-items:flex-start;width:100%;max-width:100%;margin:0 auto}@media (min-width:1024px){.about-content{grid-template-columns:1fr 1fr}.skills-carousel-container{max-height:480px;overflow-y:auto;height:auto;max-width:480px}}.about-text{font-size:1.45rem;line-height:1.85}.about-text a{color:#64ffda;text-decoration:none;position:relative}.about-text a:hover{text-decoration:underline}.skills-list{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-xs);list-style:none;margin-top:var(--spacing-md)}.skills-list li{position:relative;padding-left:var(--spacing-md);font-size:1.15rem}.experience-details li::before,.skills-list li::before{content:"▹";position:absolute;left:0;color:#64ffda;font-size:1.2rem}.skills-list li::before{line-height:1.2rem}.about-image,.skills-carousel-container{position:relative;display:flex;flex-direction:column}.skills-carousel-container{background:rgb(27 43 75/46%);border-left:3px solid var(--color-accent);border-radius:4px;padding:var(--spacing-lg);overflow:hidden;z-index:1;width:100%;max-width:100%}.skills-carousel-container h3{color:#64ffda;font-size:1.3rem;margin-bottom:var(--spacing-md);font-weight:600;flex-shrink:0}.skills-carousel{height:auto;max-height:22rem;overflow:auto;position:relative;min-height:0}.skills-track{display:flex;flex-direction:column;animation:none}.skill-card{flex-shrink:0;height:auto;display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);background:rgb(100 255 218/7%);border:1px solid rgb(100 255 218/18%);border-radius:6px;padding:var(--spacing-sm) var(--spacing-md);font-size:1.25rem;color:#d7dff7;font-family:var(--font-ui-en),"Courier New",monospace;font-weight:500;transition:background .2s,border .2s,transform .2s;will-change:transform}.skill-card i{font-size:1.5em;min-width:1.5em;text-align:center}.skill-card:hover{background:rgb(100 255 218/14%);border-color:var(--color-accent)}.skill-img{height:1.5em;width:1.5em;object-fit:contain;margin-right:.3em;filter:none;vertical-align:middle}.skill-card .skill-img{filter:invert(27%) sepia(51%) saturate(2878%) hue-rotate(190deg) brightness(104%) contrast(97%)}.skills-carousel:hover .skills-track{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.skills-track{animation:none}.hero-role-line .typed-cursor{display:none}}.profile-pic{width:100%;max-width:300px;border-radius:4px;filter:grayscale(100%);transition:filter .3s ease,transform .3s ease,box-shadow .3s ease}.profile-pic:hover,.project-card:hover .project-image img{filter:none}.experience-container{display:flex;gap:var(--spacing-lg)}.experience-tabs{display:flex;flex-direction:column;list-style:none;border-left:2px solid #233554}.experience-tabs button{background:0 0;border:0;color:var(--color-text-secondary);padding:.75rem var(--spacing-lg);text-align:left;cursor:pointer;font-family:"Courier New",monospace;font-size:1.05rem;border-left:2px solid transparent;margin-left:-2px;z-index:1;width:100%;display:flex;align-items:center;justify-content:flex-start;transition:color .2s ease,background .2s ease,border-left-color .2s ease}.experience-tabs button:hover{color:#64ffda;background:rgb(100 255 218/5%);border-left-color:rgb(100 255 218/50%);z-index:2}.experience-tabs button.active{color:#64ffda;background:rgb(100 255 218/10%);border-left-color:#64ffda;z-index:3}.experience-content{flex:1}.experience-panel{display:none}.experience-panel.active{display:block}.experience-title{font-size:1.9rem;color:#d7dff7;margin-bottom:.5rem}.experience-company{color:#64ffda;text-decoration:none}.experience-date{font-family:"Courier New",monospace;font-size:1.15rem;color:#8892b0;margin-bottom:1.5rem}.experience-details{list-style:none}.experience-details li{position:relative;padding-left:2rem;margin-bottom:.75rem;line-height:1.7;font-size:1.15rem;transition:transform .3s ease,color .3s ease;cursor:default}.experience-details li:hover{color:var(--color-text-primary)}.experience-details li::before{transition:transform .3s ease}.projects-grid{display:grid;gap:var(--spacing-lg);width:100%;max-width:100%;overflow-x:hidden}.project-card{position:relative;display:grid;grid-template-columns:1fr;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:8px;background:rgb(27 43 75/38%);border:1px solid var(--color-border);opacity:1;transition:none;cursor:pointer;text-decoration:none;color:inherit;contain:layout style;overflow:hidden;clip-path:inset(0);scrollbar-width:none}.project-card ::-webkit-scrollbar,.project-card::-webkit-scrollbar,.project-content ::-webkit-scrollbar,.project-content::-webkit-scrollbar{display:none}@media (min-width:1024px){.project-card{grid-template-columns:repeat(12,1fr);gap:var(--spacing-lg)}}a.project-card{display:grid}.project-card:hover{border-color:rgb(62 199 255/45%)}.project-status{display:inline-block;font-size:.8rem;font-family:var(--font-ui-en);color:var(--color-text-secondary);margin-bottom:1rem;padding:0;border:0;border-radius:0;letter-spacing:.02em}.project-card:hover .project-links a,.project-card:hover .project-links span,.project-status a{color:#64ffda}.project-progress{margin-top:0;margin-bottom:0;text-align:left;transition:transform .3s ease;cursor:default}.project-progress:hover{transform:translateX(3px)}.progress-label{font-size:1em;color:#8892b0;margin-bottom:.6em;display:block}.progress-bar{position:relative;width:100%;height:6px;background:#233554;border-radius:3px;overflow:hidden;margin-bottom:.4em;transition:box-shadow .3s ease}.project-progress:hover .progress-bar{box-shadow:0 0 15px rgb(100 255 218/40%)}.progress-bar::before{content:"";display:block;height:100%;width:calc(var(--progress, 0)*1%);background:linear-gradient(90deg,#64ffda 0,#5cddc7 100%);border-radius:3px;transition:width .7s cubic-bezier(.4,0,.2,1)}.progress-percent{font-size:.9em;color:#64ffda;display:block;text-align:left;margin-top:.2em;opacity:.9}.project-card.project-wip{background:0 0;box-shadow:none;border:1px dashed #233554;opacity:.5;grid-template-columns:1fr;padding:var(--spacing-md);margin-top:calc(-1*var(--spacing-md));margin-bottom:calc(-1*var(--spacing-md));transition:opacity .3s}.project-card.project-wip:hover{opacity:.8;border-color:#64ffda}.project-content,.project-image{grid-column:1;grid-row:auto;position:relative;width:100%}.project-image{z-index:1;margin-bottom:var(--spacing-md)}.project-image a{display:block;position:relative;pointer-events:none}.project-image img,.project-image picture{display:block;width:100%}.project-image img{height:auto;border-radius:6px;transition:transform .3s ease,filter .3s ease,box-shadow .3s ease;box-shadow:0 10px 30px rgb(0 0 0/30%);will-change:transform;transform:translateZ(0)}.project-image:hover img{filter:none;box-shadow:0 15px 40px rgb(100 255 218/20%)}.project-image::before{display:none}.project-image.project-image--logo{display:flex;align-items:center;justify-content:center;min-height:12rem;padding:1.5rem;background:rgb(10 25 47/55%);border-radius:6px}.project-image.project-image--logo picture{display:flex;align-items:center;justify-content:center;width:auto}.project-image.project-image--logo img{width:auto;max-width:min(40%,180px);max-height:180px;box-shadow:0 8px 24px rgb(0 0 0/35%)}.project-content{z-index:2;text-align:left;display:flex;flex-direction:column;gap:var(--spacing-sm);overflow:visible}@media (min-width:1024px){.project-image{grid-column:1/6;grid-row:1;margin-bottom:0}.project-content{grid-column:6/-1;grid-row:1}}.project-label{color:#64ffda;font-family:"Courier New",monospace;font-size:1.15rem;margin-bottom:0;font-weight:400;min-height:unset;transition:transform .3s ease,letter-spacing .3s ease;cursor:default}.project-label:hover{transform:translateX(3px);letter-spacing:.05em}.project-description,.project-title{font-size:2rem;color:var(--color-text-primary);margin-bottom:0;line-height:1.2;transition:color .3s ease,transform .3s ease,text-shadow .3s ease;cursor:pointer}.project-title a{color:inherit;text-decoration:none;pointer-events:none}.project-card:hover .project-title,footer a:hover{color:var(--color-accent-strong)}.project-title:hover{transform:translateX(5px);text-shadow:0 0 20px rgb(100 255 218/50%)}.project-description{background:rgb(11 19 36/78%);padding:var(--spacing-md);border-radius:6px;line-height:1.7;font-size:1.1rem;transition:background .3s ease,border .3s ease,color .3s ease;border:1px solid transparent;cursor:default}.project-description:hover{background:rgb(17 34 64/90%);border:1px solid rgb(100 255 218/30%);color:#d7dff7}.project-tech{flex-wrap:wrap;list-style:none;font-family:"Courier New",monospace;font-size:1rem;margin-bottom:0;color:#d7dff7}.project-tech li{background:rgb(62 199 255/12%);padding:var(--spacing-xs) var(--spacing-sm);border-radius:4px;white-space:nowrap;border:1px solid var(--color-border);transition:transform .3s ease,background .3s ease,box-shadow .3s ease;cursor:default}.project-tech li:hover{background:rgb(62 199 255/18%)}.project-links,.project-tech{display:flex;gap:var(--spacing-sm);justify-content:flex-start}.project-links a,.project-links span{color:#d7dff7;transition:color .3s ease,transform .3s ease,text-shadow .3s ease;text-shadow:0 2px 10px rgb(0 0 0/80%);cursor:pointer;display:inline-block}.project-links span{font-size:1.6rem}.contact-social a:hover,.email-fixed a:hover,.project-links a:hover,.project-links span:hover,.project-tech li,.social-fixed a:hover,footer a{color:var(--color-accent)}.project-card.clickable-card{cursor:pointer}.github-badge{position:absolute;top:1rem;right:1rem;font-size:1.5rem;color:#64ffda;opacity:.3;transition:opacity .3s ease,transform .3s ease;z-index:10}.project-card:hover .github-badge,html.js .scroll-animate,html.js .scroll-animate.is-visible{opacity:1}.contact-content{text-align:center;max-width:100%;width:100%;margin:0 auto;padding:0 var(--spacing-sm)}.contact-title{font-size:3.8rem;color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.contact-description{font-size:1.4rem;line-height:1.8;margin-bottom:var(--spacing-lg)}footer{padding:var(--spacing-lg);text-align:center;color:#a8b2d1;font-size:1.15rem}footer a{text-decoration:none;transition:transform .3s ease,text-shadow .3s ease;display:inline-block}.social-fixed{left:3rem}.email-fixed::after,.social-fixed::after{content:"";width:1px;height:90px;background:#8892b0}.email-fixed a,.social-fixed a{color:#8892b0;font-size:1.6rem;transition:color .3s ease,transform .3s ease;will-change:transform}.corner-left,.corner-right,.email-fixed,.social-fixed{position:fixed;bottom:0;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.email-fixed{right:3rem}.email-fixed a{writing-mode:vertical-rl;text-decoration:none;font-family:"Courier New",monospace;font-size:1.15rem;letter-spacing:.1rem}.corner-left,.corner-right{z-index:50}.corner-left{left:2rem}.corner-right{right:2rem}.corner-label{color:#8892b0;font-family:"Courier New",monospace;font-size:1.15rem;letter-spacing:.1rem;writing-mode:vertical-rl;text-decoration:none;transition:color .3s ease,transform .3s ease,opacity .3s ease,letter-spacing .3s ease;opacity:.7;will-change:transform;position:relative;z-index:1}.corner-label:hover{color:var(--color-accent);opacity:1}.corner-line{width:1px;height:90px;background:#8892b0;opacity:.7}@media (min-width:1081px){.hero-section{padding-left:6.5rem;padding-right:6.5rem}}@media (max-width:1080px){.corner-left,.corner-right,.email-fixed,.social-fixed{display:none}}@media (min-width:769px) and (max-width:1024px){.hero-section{padding:50px 2.5rem}section{padding:60px 2.5rem}.about-content{gap:2.5rem}.skills-carousel-container{height:500px}.project-card{padding:2rem}.project-title{font-size:1.8rem}.project-description{font-size:1.1rem}.hero-description{font-size:1.3rem}.contact-title{font-size:2.8rem}.contact-description{font-size:1.25rem}}@media (max-width:768px){.nav-content{padding:0 var(--spacing-sm)}.hero-section{padding:var(--spacing-2xl) var(--spacing-md) var(--spacing-xl) var(--spacing-md);min-height:auto;align-items:flex-start;overflow:visible}.hero-description{font-size:clamp(1.05rem,2.5vw,1.2rem);line-height:1.7;margin-bottom:var(--spacing-sm);max-width:100%}.hero-location{font-size:clamp(1rem,2.2vw,1.1rem);margin-bottom:var(--spacing-md)}.hero-social{gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)!important;flex-wrap:wrap}.hero-social-icon{font-size:clamp(1.6rem,3.5vw,1.8rem)!important;min-width:48px;min-height:48px}section{padding:var(--spacing-xl) var(--spacing-md)}.section-title{font-size:clamp(1.75rem,4.5vw,2rem);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.section-title::after{width:clamp(60px,15vw,80px);flex-shrink:0}.about-content{grid-template-columns:1fr;gap:var(--spacing-lg);max-width:100%}.about-text{font-size:clamp(1.05rem,2.5vw,1.2rem);line-height:1.7}.about-image{margin-top:var(--spacing-lg);text-align:center;width:100%;max-width:100%}.skills-carousel-container{height:clamp(350px,60vw,420px);padding:var(--spacing-sm);width:100%;max-width:100%}.about-text p,.skills-carousel-container h3{margin-bottom:var(--spacing-sm)}.skill-card{font-size:clamp(.95rem,2.2vw,1.05rem);padding:var(--spacing-sm) var(--spacing-md);min-height:52px;width:100%}.skill-card i{font-size:1.3em}.profile-pic{max-width:min(220px,80vw);width:100%;height:auto}.experience-container{flex-direction:column;gap:clamp(1.2rem,3vw,1.5rem);width:100%}.experience-tabs{flex-flow:row wrap;overflow-x:visible;border-left:none;border-bottom:2px solid #233554;margin-bottom:clamp(1rem,2.5vw,1.2rem);width:100%;max-width:100%}.experience-tabs button{border-left:none;border-bottom:2px solid transparent;margin-left:0;margin-bottom:0;white-space:nowrap;font-size:clamp(.95rem,2.2vw,1rem);padding:clamp(.7rem,1.8vw,.8rem) clamp(1rem,2.5vw,1.2rem);min-width:clamp(120px,28vw,140px);flex-shrink:0;position:relative;z-index:1}.experience-tabs button:hover{border-bottom-color:#64ffda;z-index:2}.experience-tabs button.active{border-bottom-color:#64ffda;z-index:3}.experience-title{font-size:clamp(1.3rem,3.5vw,1.5rem)!important;line-height:1.3}.experience-date{font-size:clamp(.95rem,2.2vw,1rem)}.experience-details li{font-size:clamp(1rem,2.3vw,1.05rem);line-height:1.6;margin-bottom:clamp(.7rem,1.8vw,.8rem)}.projects-grid{gap:clamp(1.5rem,4vw,2rem);width:100%}.project-card,.project-image img{opacity:1;width:100%;max-width:100%}.project-card{grid-template-columns:1fr;margin-bottom:0;padding:clamp(1.2rem,3vw,1.5rem);gap:clamp(1rem,2.5vw,1.2rem);filter:brightness(1)}.project-image{grid-column:1/-1;margin-bottom:0;width:100%;max-width:100%}.project-image img{border-radius:8px;height:auto}.project-content{grid-column:1/-1;padding:0;background:0 0;text-align:left;gap:clamp(.7rem,1.8vw,.8rem);width:100%}.project-label{font-size:clamp(.95rem,2.2vw,1rem)}.project-title{font-size:clamp(1.4rem,3.5vw,1.6rem);line-height:1.3;word-wrap:break-word}.project-description{background:rgb(10 25 47/80%);font-size:clamp(1rem,2.3vw,1.05rem);line-height:1.6;padding:clamp(.9rem,2.2vw,1rem);border-radius:6px;width:100%}.project-tech{justify-content:flex-start;font-size:clamp(.85rem,2vw,.9rem);gap:clamp(.5rem,1.3vw,.6rem);flex-wrap:wrap}.project-tech li{padding:clamp(.45rem,1.2vw,.5rem) clamp(.8rem,2vw,.9rem)}.project-links{justify-content:flex-start;font-size:clamp(1.2rem,2.8vw,1.3rem);gap:clamp(1rem,2.5vw,1.2rem)}.github-badge{font-size:clamp(1.6rem,3.5vw,1.8rem);opacity:.6}.btn-primary{font-size:clamp(1.05rem,2.3vw,1.1rem);padding:clamp(.9rem,2.2vw,1rem) clamp(1.6rem,3.5vw,1.8rem);min-width:clamp(140px,35vw,160px);width:fit-content;max-width:100%}.badge,footer{font-size:clamp(.95rem,2.2vw,1rem);padding:clamp(.55rem,1.4vw,.6rem) clamp(1.1rem,2.6vw,1.2rem)}.contact-content{padding:0 clamp(.75rem,2.5vw,1rem);width:100%;max-width:100%}.contact-title{font-size:clamp(1.9rem,4.5vw,2.2rem);margin-bottom:clamp(1rem,2.5vw,1.2rem);word-wrap:break-word}.contact-description{font-size:clamp(1.05rem,2.5vw,1.15rem);line-height:1.7;margin-bottom:clamp(1.5rem,3.5vw,1.8rem);word-wrap:break-word}.contact-social{gap:clamp(1.2rem,3vw,1.5rem)!important;flex-wrap:wrap;justify-content:center}.contact-social .hero-social-icon{font-size:clamp(1.8rem,4vw,2rem)!important;min-width:52px;min-height:52px}.skills-grid{grid-template-columns:1fr;gap:clamp(.9rem,2.2vw,1rem);width:100%}.about-languages{padding:clamp(1rem,2.5vw,1.2rem) clamp(.75rem,2vw,1rem);margin-top:clamp(1.5rem,4vw,2rem);width:100%;max-width:100%}.about-languages h3,.skills-carousel-container h3{font-size:clamp(1.05rem,2.5vw,1.15rem)}.about-languages-list .skill-card{font-size:clamp(.85rem,2.1vw,.95rem);white-space:normal;word-break:break-word;padding:var(--spacing-sm);min-width:115px;flex-shrink:0}footer{padding:clamp(1.2rem,3vw,1.5rem) clamp(.75rem,2vw,1rem);width:100%}footer p{margin-bottom:clamp(.4rem,1vw,.5rem);word-wrap:break-word}.corner-left,.corner-right{display:none}}@media (min-width:1024px){.about-languages-list .skill-card{min-width:170px;font-size:1rem}}.fade-in,.fade-in-delayed,.reveal-animate{animation:none;opacity:1}@media (prefers-reduced-motion:reduce){html.js .scroll-animate,html.js .scroll-animate.is-visible{transition:none!important}}.badge{display:inline-block;background:rgb(100 255 218/8%);color:#64ffda;padding:.5rem 1rem;border-radius:4px;font-size:1.1rem;font-weight:500;margin-bottom:.7rem;border:1px solid rgb(100 255 218/35%);letter-spacing:.05em;transition:transform .3s ease,letter-spacing .3s ease,text-shadow .3s ease;cursor:default;will-change:transform}.badge:hover{border-color:var(--color-accent)}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-sm);margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.skill-card .fa-js{color:#f7df1e}.skill-card .fa-cloud{color:#00c3ff}.skill-card .fa-aws{color:#f90}.skill-card .fa-android{color:#3ddc84}.skill-card .fa-desktop{color:#00a4ef}.skill-card .fa-pencil-ruler{color:#ff4088}.skill-card .fa-fire{color:#ffca28}.btn-primary,.btn-secondary,.nav-links a,.nav-logo{min-height:44px;min-width:44px}.experience-tabs button,.scroll-cta{min-width:44px}.copy-email-btn,.lang-switch a,.nav-hamburger,.social-fixed a{min-height:44px;min-width:44px}.contact-social a,.hero-social-icon{min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:8px;text-decoration:none}.contact-social a{transition:transform .3s ease,color .3s ease,text-shadow .3s ease}.contact-social a:hover{background:var(--color-accent-hover)}.contact-social a::before{display:none!important}.project-links a{min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:10px;font-size:1.5rem}.experience-tabs button{min-height:48px;padding:.8rem 1.5rem}#scroll-toggle,.corner-label{min-width:44px;min-height:44px;padding:10px;cursor:pointer}button#scroll-toggle{border:0;background:0 0;appearance:none}a,button{touch-action:manipulation}@media (max-width:768px){.project-links a{font-size:1.8rem;min-width:52px;min-height:52px}}.btn-primary:focus-visible,.nav-hamburger:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--color-accent, #64ffda);outline-offset:3px;box-shadow:var(--focus-ring, 0 0 0 3px rgb(100 255 218 / 40%))}a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:0;box-shadow:none}.skip-link{position:absolute;top:-100%;left:50%;transform:translateX(-50%);background:var(--color-accent, #64ffda);color:var(--color-bg-primary, #0a192f);padding:var(--spacing-sm) var(--spacing-md);border-radius:4px;font-weight:600;z-index:9999;transition:top var(--transition-fast)}.skip-link:focus{top:var(--spacing-sm)}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.nav-links a:active{opacity:.8}.experience-tabs button{position:relative}.experience-tabs button:active{transform:scale(.98)}@media (max-width:640px){section{padding:var(--spacing-lg) var(--spacing-sm)}.section-title{font-size:clamp(1.5rem,4.5vw,1.75rem);margin-bottom:var(--spacing-md)}.hero-section{padding:var(--spacing-2xl) var(--spacing-sm) var(--spacing-lg) var(--spacing-sm)}.hero-intro{margin-bottom:.75rem;font-size:1rem}.hero-title{font-size:clamp(2rem,8vw,2.75rem);line-height:1.1;margin-bottom:.5rem}.hero-subtitle{font-size:clamp(1.35rem,5vw,1.85rem);line-height:1.15;margin-bottom:.75rem}.hero-description{font-size:clamp(1rem,2.5vw,1.1rem);max-width:100%}.btn-primary{padding:var(--spacing-sm) var(--spacing-lg);font-size:clamp(1rem,2.3vw,1.05rem);max-width:min(280px,100%)}.about-text{font-size:clamp(1.05rem,2.5vw,1.1rem)}.experience-tabs button,.skill-card{font-size:clamp(.9rem,2.1vw,.95rem);padding:var(--spacing-sm)}.project-title{font-size:clamp(1.3rem,3.2vw,1.4rem)}.project-description{font-size:clamp(.95rem,2.2vw,1rem)}.contact-title{font-size:clamp(1.7rem,4.2vw,1.9rem)}.contact-description{font-size:clamp(1rem,2.3vw,1.05rem)}.experience-tabs button{min-width:clamp(100px,25vw,110px);padding:var(--spacing-sm) var(--spacing-md)}.about-languages-list .skill-card{font-size:clamp(.85rem,2.1vw,.9rem);white-space:normal;word-break:break-word;padding:var(--spacing-sm);min-width:110px;flex-shrink:0}html{font-size:15px}body{font-size:clamp(15px,3.5vw,16px)}.nav-logo{font-size:clamp(1.2rem,3.5vw,1.3rem)}.btn-primary,.experience-tabs button{width:100%;max-width:100%;min-width:auto}}.text-accent{color:var(--color-accent, #64ffda)}.text-primary{color:var(--color-text-primary, #d7dff7)}.text-secondary{color:var(--color-text-secondary, #8892b0)}.text-emphasis,strong{color:var(--color-text-primary, #d7dff7)}.mb-0{margin-bottom:0!important}.mb-xs{margin-bottom:var(--spacing-xs)!important}.mb-sm{margin-bottom:var(--spacing-sm)!important}.mb-md{margin-bottom:var(--spacing-md)!important}.mb-lg{margin-bottom:var(--spacing-lg)!important}.flex-center,.flex-row-center{display:flex;justify-content:center}.flex-center{flex-direction:column;align-items:center}.flex-row-center{gap:.8rem}.btn-hero-cta,.btn-nav-resume{min-width:110px;padding:.5rem 1.1rem;font-size:1rem;text-align:center}.btn-hero-cta{margin:0 auto;min-width:200px;min-height:48px;padding:.75rem 1.5rem;font-size:1.05rem;font-weight:600;border-radius:8px;background:var(--color-accent);color:var(--color-bg-primary);border-color:var(--color-accent)}.btn-hero-cta:hover{background:var(--color-accent-strong);color:var(--color-bg-primary)}.btn-hero-cta:active{background:#2eb0e6}.hero-cta-text{font-size:1.3em;color:var(--color-accent, #64ffda);margin-bottom:.4rem;font-weight:500;text-align:center}.section-title-centered{justify-content:center}.contact-reach-text{margin-top:var(--spacing-md);text-align:center;color:var(--color-text-primary, #d7dff7);font-size:1.15em;font-weight:500}.contact-email-wrapper{margin-top:var(--spacing-sm);text-align:center}.contact-email-link{margin-bottom:var(--spacing-md);max-width:min(100%,22rem)}.btn-hero-cta:active,.contact-email-wrapper .contact-email-link:hover{color:var(--color-bg-primary)}.contact-social{margin-top:var(--spacing-md);display:flex;gap:var(--spacing-md);justify-content:center}.footer-funfact{margin-top:.5rem;font-size:1.1rem}.footer-lang-link{margin-top:var(--spacing-sm)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.scroll-cta-container{margin-top:var(--spacing-sm);text-align:center}.scroll-cta{display:inline-flex;align-items:center;gap:.6rem;color:var(--color-accent, #64ffda);font-size:.98rem;text-decoration:none;padding:.35rem .75rem;min-height:44px;border-radius:999px;opacity:1}.scroll-cta:hover{color:var(--color-accent-strong)}.scroll-cta:focus-visible{outline:2px solid var(--color-accent, #64ffda);outline-offset:3px}.scroll-cta:focus:not(:focus-visible){outline:0;box-shadow:0 0 0 4px rgb(100 255 218/8%);border-radius:999px}.scroll-cta i{display:inline-block;font-size:1rem}@media (max-width:480px){.scroll-cta{font-size:.92rem;padding:.4rem .6rem}.scroll-cta i{animation:none}}@media (prefers-reduced-motion:reduce){.scroll-cta{transition:none;opacity:1}.scroll-cta,.scroll-cta:hover{transform:none}.scroll-cta,.scroll-cta i{animation:none}}.copy-email-btn{background:0 0;border:0;outline:0;cursor:pointer;color:inherit;font-family:inherit;font-weight:inherit;line-height:inherit;appearance:none;position:relative}.copy-email-btn:focus-visible{outline:2px solid #64ffda;outline-offset:4px;border-radius:4px}.copy-tooltip{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-4px);background:#64ffda;color:#0a192f;font-family:var(--font-ui-en);font-size:.8rem;font-weight:600;padding:.35rem .75rem;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .25s ease,transform .25s ease;z-index:100}.copy-tooltip::after{content:"";position:absolute;bottom:100%;left:50%;transform:translateX(-50%);border:5px solid transparent;border-bottom-color:#64ffda}.copy-tooltip.is-visible{opacity:1;transform:translateX(-50%) translateY(0)}