@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%;overflow-x:hidden;overflow-y:auto;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#000;color:#fff;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;position:relative}#root{height:auto;min-height:100vh;width:100%;max-width:100vw;margin:0;padding:0;overflow-x:hidden;overflow-y:auto;position:relative;display:flex;justify-content:center;align-items:flex-start;z-index:1}::-webkit-scrollbar{width:0px;background:transparent}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:transparent}::-webkit-scrollbar-thumb:hover{background:transparent}*{scrollbar-width:none}*{-ms-overflow-style:none}::selection{background:#fff3;color:#fff}::-moz-selection{background:#fff3;color:#fff}.app{min-height:100vh;padding:1.5rem;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:all .3s ease;position:relative;overflow-x:hidden;z-index:1;background:transparent}.app.dark{background:transparent;color:#fff}.app.light{background:#fff;color:#000}.bento-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(5,1fr);gap:clamp(.5rem,1.5vw,1.5rem);padding:clamp(.5rem,2vw,2rem);padding-top:4.5rem;height:100vh;min-height:100vh;max-height:none;width:100%;max-width:100vw;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;margin:0;position:relative;left:0;top:0;z-index:1}@media (min-width: 1200px){.bento-grid{min-height:1080px}.bento-item{min-height:0}}.app{min-height:100vh;width:100%;max-width:100vw;overflow-x:hidden;overflow-y:auto;background:transparent;color:#fff;transition:all .3s ease;display:flex;justify-content:center;align-items:flex-start;margin:0;padding:0}.seasonal-background{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;pointer-events:none;opacity:1}.bento-item{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:clamp(12px,2vw,20px);padding:clamp(.5rem,1.5vw,1.5rem);position:relative;overflow-y:auto;overflow-x:hidden;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;justify-content:flex-start;min-height:0}.bento-item:hover{border-color:#ffffff26}.hero{grid-column:1 / 7;grid-row:1 / 2}.profile{grid-column:7 / 9;grid-row:1 / 2}.about{grid-column:9 / 13;grid-row:1 / 2}.globe{grid-column:1 / 5;grid-row:2 / 4}.strava{grid-column:5 / 9;grid-row:2 / 3}.project{grid-column:9 / 13;grid-row:2 / 3}.skills{grid-column:1 / 7;grid-row:4 / 5}.github-repo{grid-column:7 / 9;grid-row:4 / 5}.projects-page{grid-column:9 / 11;grid-row:4 / 5}.contact-page{grid-column:11 / 13;grid-row:4 / 5}.github-repo,.projects-page,.contact-page{display:flex;align-items:center;justify-content:center;padding:1rem;transition:all .3s ease}.github-repo:hover,.projects-page:hover,.contact-page:hover{background:#ffffff0d;border-color:#fff3}.nav-link{display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;color:#fff;transition:all .3s ease;width:100%;height:100%;gap:.5rem;padding:1rem}.nav-link:hover{color:#fff}.nav-link svg{color:#fff;transition:all .3s ease}.nav-link:hover svg{color:#fff}.nav-link span{font-size:.875rem;font-weight:500;color:#fffc;transition:all .3s ease}.nav-link:hover span{color:#fff}.contact{grid-column:5 / 9;grid-row:3 / 4}.social{grid-column:9 / 11;grid-row:3 / 4}.certifications{grid-column:1 / 4;grid-row:5 / 6}.quick-stats{grid-column:11 / 13;grid-row:3 / 4}.ascii-cat{grid-column:4 / 13;grid-row:5 / 6}@media (min-width: 1400px){.bento-grid{gap:clamp(.3rem,.8vw,.8rem);padding:clamp(.3rem,1vw,1rem);padding-top:4.5rem}.bento-item{padding:clamp(.5rem,1vw,1rem)}}@media (max-width: 1399px) and (min-width: 1200px){.bento-grid{gap:clamp(.4rem,1vw,1rem);padding:clamp(.4rem,1.2vw,1.2rem);padding-top:4.5rem}.bento-item{padding:clamp(.6rem,1.2vw,1.2rem)}}@media (max-width: 1199px) and (min-width: 768px){.bento-grid{grid-template-rows:repeat(8,min-content);gap:clamp(.3rem,.8vw,.8rem);padding:clamp(.3rem,1vw,1rem);padding-top:4.5rem;height:auto;min-height:100vh;max-height:none;overflow-y:auto}.bento-item{padding:clamp(.5rem,1vw,1rem)}.hero{grid-column:1 / 9;grid-row:1 / 2}.profile{grid-column:9 / 13;grid-row:1 / 2}.about{grid-column:1 / 7;grid-row:2 / 3}.globe{grid-column:7 / 13;grid-row:2 / 4}.strava{grid-column:1 / 7;grid-row:3 / 4}.project{grid-column:1 / 7;grid-row:4 / 5}.skills{grid-column:7 / 13;grid-row:4 / 5}.github-repo{grid-column:1 / 4;grid-row:5 / 6}.projects-page{grid-column:4 / 7;grid-row:5 / 6}.contact-page{grid-column:7 / 10;grid-row:5 / 6}.social{grid-column:10 / 13;grid-row:5 / 6}.certifications{grid-column:1 / 7;grid-row:6 / 7}.quick-stats{grid-column:7 / 13;grid-row:6 / 7}.contact{grid-column:1 / 7;grid-row:7 / 8}.ascii-cat{grid-column:7 / 13;grid-row:7 / 8}.bento-item{overflow:visible}.bento-item.certifications .certifications-list{overflow-y:auto;max-height:100%}.bento-item.strava .strava-stats{grid-template-columns:repeat(3,1fr);gap:.4rem}.bento-item.strava .strava-periods{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;margin-top:.5rem}.bento-item.strava .stat-value{font-size:.85rem}.bento-item.strava .stat-label,.bento-item.strava .period-label{font-size:.55rem}.bento-item.strava .period-value{font-size:.7rem}.bento-item.profile{display:flex;flex-direction:column;gap:.5rem}.bento-item.profile .profile-placeholder{width:45px;height:45px;min-width:45px;min-height:45px}.bento-item.profile .profile-placeholder svg{width:18px;height:18px}.bento-item.profile .profile-status{font-size:.65rem}.bento-item.profile .language-badges{gap:.25rem;flex-wrap:wrap}.bento-item.profile .lang-badge{font-size:.5rem;padding:.1rem .3rem}.bento-item.project .project-mockup{width:45px;height:45px}.bento-item.project .project-mockup .project-logo,.bento-item.project .project-mockup svg{width:45px!important;height:45px!important;max-width:45px;max-height:45px}.bento-item.project .project-title{font-size:.8rem}.bento-item.project .project-tech{font-size:.6rem;gap:.3rem}.bento-item.project .project-tech .badge{font-size:.55rem;padding:.15rem .4rem}.bento-item.skills .skill-item{width:35px;height:35px;min-width:35px}.bento-item.skills .skill-item img{width:18px;height:18px}.bento-item.skills .skill-item svg{width:18px;height:18px}.bento-item.skills .skills-track{gap:.4rem}.bento-item.about p{font-size:.75rem;line-height:1.3}.bento-item.about .about-stats{gap:.4rem;flex-wrap:wrap}.bento-item.about .stat{font-size:.65rem}}@media (max-width: 768px){.bento-grid{grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(8,min-content);gap:.1rem;padding:4rem .1rem .1rem;height:auto;min-height:100vh;overflow-x:hidden;overflow-y:auto}.bento-item{padding:.4rem}.bento-item.hero,.bento-item.profile,.bento-item.about,.bento-item.globe,.bento-item.strava,.bento-item.project,.bento-item.skills,.bento-item.github-repo,.bento-item.projects-page,.bento-item.contact-page,.bento-item.contact,.bento-item.social,.bento-item.resume,.bento-item.quick-stats,.bento-item.ascii-cat{min-height:auto;max-height:none}.bento-item.certifications .certifications-list{gap:.5rem}.bento-item.certifications .certification-item{padding:.5rem}.bento-item.certifications .certification-title{font-size:.7rem}.bento-item.certifications .certification-issuer,.bento-item.certifications .certification-date{font-size:.65rem}.bento-item.contact .copy-btn{padding:.6rem .8rem;font-size:.85rem}.bento-item.contact h3{font-size:.8rem;margin-bottom:.5rem}.bento-item.quick-stats .stats-grid{gap:.4rem}.bento-item.quick-stats .quick-stat{font-size:.7rem}.profile-placeholder{width:60px;height:60px;min-width:60px;min-height:60px}.profile-placeholder svg{width:24px;height:24px}.language-badges{gap:.2rem}.lang-badge{font-size:.5rem;padding:.15rem .3rem}.hero h1{font-size:2rem;line-height:1.1}.hero p{font-size:.85rem;line-height:1.4}.hero-badges{gap:.4rem}.badge{font-size:.7rem;padding:.2rem .6rem}.strava-stats{grid-template-columns:repeat(3,1fr)}.social-grid{grid-template-columns:repeat(4,1fr)}.stats-grid{flex-direction:row;justify-content:space-between}.about p{font-size:.8rem;line-height:1.3}.about-stats{gap:.5rem}.stat{font-size:.7rem}.label{font-size:.65rem}.strava-header{font-size:.75rem}.stat-value{font-size:1rem}.stat-label{font-size:.6rem}.project-title{font-size:.8rem}.project-tech{font-size:.65rem}.bento-item.project .project-layout{flex-direction:column;align-items:flex-start;gap:.75rem}.bento-item.project .project-mockup{width:100%;height:auto;justify-content:center;margin-bottom:.5rem}.bento-item.project .project-mockup .project-logo,.bento-item.project .project-mockup svg{width:50px!important;height:50px!important;max-width:50px;max-height:50px}.bento-item.project .project-info{width:100%}.hero{grid-column:1 / 4;grid-row:1 / 2}.profile{grid-column:4 / 7;grid-row:1 / 2}.about{grid-column:1 / 4;grid-row:2 / 3}.globe{grid-column:4 / 7;grid-row:2 / 4}.strava{grid-column:1 / 4;grid-row:3 / 4}.project{grid-column:1 / 3;grid-row:4 / 5}.skills{grid-column:3 / 7;grid-row:4 / 5}.github-repo{grid-column:1 / 3;grid-row:5 / 6}.projects-page{grid-column:3 / 5;grid-row:5 / 6}.contact-page{grid-column:5 / 7;grid-row:5 / 6}.contact{grid-column:1 / 4;grid-row:6 / 7}.social{grid-column:4 / 7;grid-row:6 / 7}.certifications{grid-column:1 / 4;grid-row:7 / 8}.quick-stats{grid-column:4 / 7;grid-row:7 / 8}.ascii-cat{grid-column:1 / 7;grid-row:8 / 9}}@media (max-width: 480px){.bento-grid{gap:.05rem;padding:3.5rem .05rem .05rem}.bento-item{padding:.3rem;border-radius:clamp(8px,2vw,16px)}.bento-item.hero,.bento-item.profile,.bento-item.about,.bento-item.globe,.bento-item.strava,.bento-item.project,.bento-item.skills,.bento-item.github-repo,.bento-item.projects-page,.bento-item.contact-page,.bento-item.contact,.bento-item.social,.bento-item.certifications,.bento-item.quick-stats,.bento-item.ascii-cat{min-height:auto;max-height:none}.hero h1{font-size:1.75rem}.hero p{font-size:.8rem}.badge{font-size:.65rem;padding:.15rem .5rem}.nav-item{padding:.4rem;font-size:.65rem}.profile-placeholder{width:50px;height:50px;min-width:50px;min-height:50px}.profile-placeholder svg{width:20px;height:20px}.lang-badge{font-size:.45rem;padding:.1rem .25rem}.about p{font-size:.75rem}.stat{font-size:.65rem}.label{font-size:.6rem}.bento-item.project .project-layout{flex-direction:column;align-items:flex-start;gap:.5rem}.bento-item.project .project-mockup{width:100%;justify-content:center}.bento-item.project .project-mockup .project-logo,.bento-item.project .project-mockup svg{width:45px!important;height:45px!important;max-width:45px;max-height:45px}.project-title{font-size:.75rem}.project-tech{font-size:.6rem;word-break:break-word}.strava-stats{grid-template-columns:1fr;gap:.5rem}.strava-periods{flex-direction:column;gap:.5rem}.stat-value{font-size:.9rem}.stat-label{font-size:.55rem}}@media (min-width: 2000px){.bento-grid{gap:clamp(.2rem,.5vw,.8rem);padding:clamp(.2rem,.8vw,1rem);padding-top:4.5rem}.bento-item{padding:clamp(.4rem,.8vw,1rem);border-radius:clamp(12px,1.5vw,20px)}}@media (orientation: landscape) and (max-height: 600px){.bento-grid{gap:clamp(.2rem,.8vw,.8rem);padding:clamp(.2rem,1vw,1rem);padding-top:4rem}.bento-item{padding:clamp(.4rem,1vw,1.2rem)}}.nav-container{display:flex;flex-direction:column;gap:.75rem;width:100%;height:100%}.nav-item{width:100%;flex:1;min-height:0;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;display:flex;align-items:center;justify-content:center;gap:.75rem;color:#fff9;transition:all .2s ease;cursor:pointer;position:relative;overflow:hidden;padding:.75rem;font-size:.8rem;font-weight:500}.nav-item:hover{background:#ffffff14;border-color:#ffffff26;color:#ffffffe6}.nav-item.active{background:#ffffff1f;border-color:#ffffff40;color:#fff}.nav-item span{flex:1;text-align:left}.hero-content{display:flex;flex-direction:column;gap:1rem}.hero h1{font-size:2.75rem;font-weight:700;margin:0;background:linear-gradient(135deg,#fff,#a0a0a0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1;animation:fadeInUp .8s ease-out}.hero p{font-size:1rem;color:#ffffffb3;margin:0;line-height:1.5;animation:fadeInUp .8s ease-out .1s both}.hero-badges{display:flex;gap:.5rem;flex-wrap:wrap;animation:fadeInUp .8s ease-out .2s both}.badge{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:.25rem .75rem;font-size:.75rem;font-weight:500;color:#fffc;transition:all .2s ease}.badge:hover{background:#ffffff1f;border-color:#ffffff40}.seasonal-badge{opacity:.7;font-size:.7rem;text-transform:capitalize}.seasonal-badge:hover{opacity:1;transform:scale(1.05)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.profile-image{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.language-badges{display:flex;gap:.25rem;flex-wrap:wrap;justify-content:center;margin-top:.5rem}.lang-badge{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:.2rem .4rem;font-size:.6rem;font-weight:500;color:#fffc;transition:all .2s ease}.lang-badge:hover{background:#ffffff1f;border-color:#ffffff40}.profile-placeholder{width:80px;height:80px;min-width:80px;min-height:80px;aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,#333,#666);display:flex;align-items:center;justify-content:center;color:#fff;border:2px solid rgba(255,255,255,.1);transition:all .3s ease;flex-shrink:0}.profile-placeholder svg{width:32px;height:32px;flex-shrink:0}.profile-placeholder:hover{border-color:#fff3}.profile-status{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#ffffffb3}.status-dot{width:8px;height:8px;background:#10b981;border-radius:50%;animation:pulse 2s infinite}.bento-item:hover .label:after{width:100%}.about p{font-size:.9rem;line-height:1.4;margin:0 0 1rem;flex-grow:1;color:#fffc}.about-stats{display:flex;gap:1rem;margin-bottom:1rem}.stat{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#fff9;transition:color .2s ease}.bento-item:hover .stat{color:#fffc}.bento-item:hover .arrow{color:#fff9}.bento-item.about:hover{background:#ffffff0d;border-color:#fff3}.bento-item.about:hover .arrow{color:#fffc}.bento-item.about{border:none;background:inherit;font:inherit;color:inherit;text-align:inherit;cursor:pointer;outline:none;width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-between}.bento-item.about:focus{outline:none}.globe-info{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.country-info{display:flex;flex-direction:column;gap:.25rem;transition:all .2s ease}.country-info:hover{color:#fff}.country-name{font-size:.8rem;font-weight:600;color:#ffffffe6}.country-detail{font-size:.7rem;color:#ffffff80}.project-mockup{flex-grow:1;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}.mockup-screen{width:160px;height:100px;background:transparent;border-radius:10px;display:flex;align-items:center;justify-content:center;border:none;transition:all .3s ease}.mockup-screen:hover{border-color:#fff3}.mockup-content{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#fffc}.bento-item.project .project-mockup{padding:0}.bento-item.project .project-mockup .project-logo{display:block}.project-info{display:flex;flex-direction:column;gap:.25rem}.project-title{font-weight:600;font-size:.9rem;color:#ffffffe6}.project-tech{font-size:.7rem;color:#ffffff80}.project-logo{background:transparent;object-fit:contain}.bento-item.project,.work-item.mahara-project{background:linear-gradient(135deg,#6e40c91f,#8a2be214)}.project-layout{display:flex;align-items:center;gap:.5rem;flex-grow:1}.bento-item.project .project-mockup{flex-shrink:0;margin-bottom:0;width:60px;height:60px;display:flex;align-items:center;justify-content:flex-start}.bento-item.project .project-mockup .project-logo,.bento-item.project .project-mockup svg{width:60px!important;height:60px!important;max-width:60px;max-height:60px}.bento-item.project .project-info{flex:1;min-width:0}.skills-carousel{flex-grow:1;overflow:hidden;position:relative;border-radius:8px;background:transparent;min-height:80px;display:flex;align-items:center;justify-content:center}.skills-carousel:before,.skills-carousel:after{content:"";position:absolute;top:0;bottom:0;width:40px;z-index:2;pointer-events:none}.skills-carousel:before{left:0;background:linear-gradient(to right,#000,#000c 30%,#0000)}.skills-carousel:after{right:0;background:linear-gradient(to left,#000,#000c 30%,#0000)}.skills-carousel{overflow:hidden;width:100%;position:relative}.skills-track{display:flex;width:fit-content;gap:1rem;animation:scrollSkills 40s linear infinite}.skills-track:hover{animation-play-state:paused}@keyframes scrollSkills{0%{transform:translate(0)}to{transform:translate(-25%)}}.skill-item{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:.5rem;display:flex;align-items:center;justify-content:center;font-size:.75rem;transition:all .2s ease;white-space:nowrap;min-width:50px;width:50px;height:50px;text-decoration:none;color:inherit}.skill-item:hover{background:#ffffff14;border-color:#ffffff26;cursor:pointer}.skill-item:hover img{opacity:1}.skill-item svg{flex-shrink:0;color:#fff9}.skill-item img{width:24px;height:24px;object-fit:contain;opacity:.9;transition:all .2s ease;flex-shrink:0}.skill-item span{font-weight:500;color:#fffc}.contact h3{font-size:.9rem;margin:0 0 .75rem;font-weight:600;color:#ffffffe6}.copy-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:.75rem 1rem;color:#fff;display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:all .2s ease;font-size:.9rem;font-weight:500;min-height:44px;justify-content:center}.copy-btn:hover{background:#ffffff14;border-color:#ffffff26}.social-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;height:100%;align-content:center;justify-content:center}.bento-item.social{justify-content:center;align-items:center;padding:1rem}.cat-button{background:#ffffff0d!important;border:1px solid rgba(255,255,255,.1)!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important;cursor:pointer!important;position:relative!important;overflow:hidden!important;align-items:center!important;justify-content:center!important}.cat-ascii{font-family:Courier New,monospace;font-size:1.1rem;color:#fff;display:block;line-height:1;transition:all .3s ease;-webkit-user-select:none;user-select:none;align-items:center;justify-content:center}.cat-button:hover .cat-ascii{filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px #6e40c9)}.mobile-nav-item.cat-button{justify-content:center;align-items:center;min-height:60px;background:#ffffff14!important;border:2px solid rgba(255,255,255,.15)!important;margin-bottom:1rem;align-items:center!important;justify-content:center!important}.mobile-nav-item.cat-button:hover{background:#ffffff26!important;border-color:#ffffff40!important}.mobile-nav-item .cat-ascii{font-size:1.3rem}.ascii-cat-container{display:flex;justify-content:center;align-items:center;height:100%;overflow:hidden}.ascii-cat-art{font-family:Courier New,monospace;font-size:.6rem;line-height:1;color:#fff;margin:0;white-space:pre;text-align:center;-webkit-user-select:none;user-select:none;opacity:.8;transition:all .3s ease}.bento-item:hover .ascii-cat-art{opacity:1;filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px #6e40c9)}@media (max-width: 768px){.ascii-cat-art{font-size:.4rem}}@media (max-width: 480px){.ascii-cat-art{font-size:.3rem}}.social-grid a{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#fff;transition:all .2s ease}.social-grid a:hover{background:#ffffff14;border-color:#ffffff26}.certifications-list{display:flex;flex-direction:column;gap:.6rem;flex-grow:1;overflow-y:auto;max-height:100%}.certification-item{display:flex;flex-direction:column;gap:.4rem;padding:.6rem;background:#ffffff08;border-radius:6px;transition:all .2s ease;border:1px solid rgba(255,255,255,.05)}.certification-info{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:0}.certification-title{font-size:.75rem;font-weight:600;color:#ffffffe6;line-height:1.3}.certification-details{display:flex;flex-direction:column;gap:.15rem;margin-top:.2rem;padding-top:.4rem;border-top:1px solid rgba(255,255,255,.05)}.certification-date{font-size:.65rem;color:#fff9}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;flex-grow:1}.quick-stat{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:#ffffffb3;transition:all .2s ease}.quick-stat:hover{color:#ffffffe6}.quick-stat svg{color:#ffffff80;transition:color .2s ease}.quick-stat:hover svg{color:#ffffffb3}@media (max-width: 480px){.app{padding:.75rem}.bento-item{padding:1rem}.hero h1{font-size:2rem}.hero p{font-size:.85rem}.profile-placeholder{width:60px;height:60px;min-width:60px;min-height:60px}.profile-placeholder svg{width:24px;height:24px}.mockup-screen{width:120px;height:75px}.strava-stats{grid-template-columns:1fr;gap:.5rem}.strava-periods,.stats-grid{flex-direction:column;gap:.5rem}}.app.light .bento-item{background:#00000005;border-color:#00000014}.app.light .bento-item:hover{background:#0000000a;border-color:#00000026;box-shadow:0 8px 32px #0000001a}.app.light .bento-item:before{background:linear-gradient(135deg,#00000008,#00000003)}.app.light .hero h1{background:linear-gradient(135deg,#000,#404040);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app.light .hero p{color:#000000b3}.app.light .label,.app.light .arrow{color:#0006}.app.light .profile-placeholder{background:linear-gradient(135deg,#e0e0e0,silver);color:#000}.app.light .mockup-screen{background:linear-gradient(135deg,#f0f0f0,#e0e0e0);border-color:#0000001a}.app.light .mockup-content{color:#000c}.app.light .skill-item{background:#00000008;border-color:#00000014}.app.light .skill-item:hover{background:#00000014;border-color:#00000026}.app.light .skill-item svg{color:#0009}.app.light .skill-item span{color:#000c}.app.light .copy-btn,.app.light .download-btn,.app.light .social-grid a{background:#00000008;border-color:#00000014;color:#000}.app.light .copy-btn:hover,.app.light .download-btn:hover,.app.light .social-grid a:hover{background:#00000014;border-color:#00000026}.app.light .nav-item{background:#00000008;border-color:#00000014;color:#0009}.app.light .nav-item:hover{background:#00000014;border-color:#00000026;color:#000000e6}.app.light .nav-item.active{background:#0000001f;border-color:#00000040;color:#000}.app.light .badge{background:#00000014;border-color:#00000026;color:#000c}.app.light .badge:hover{background:#0000001f;border-color:#00000040}.app.light .status-dot{background:#059669}.app.light .about p{color:#000c}.app.light .stat{color:#0009}.app.light .country-name{color:#000000e6}.app.light .country-detail{color:#00000080}.app.light .strava-header{color:#000c}.app.light .stat-value{color:#000}.app.light .stat-label{color:#00000080}.app.light .period-label{color:#0006}.app.light .period-value{color:#000c}.app.light .project-title{color:#000000e6}.app.light .project-tech,.app.light .category-title{color:#00000080}.app.light .contact h3{color:#000000e6}.app.light .quick-stat{color:#000000b3}.app.light .quick-stat svg{color:#00000080}.globe-container{width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;overflow:hidden;min-height:0}.globe-wrapper{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;perspective:1000px;flex:1;min-height:0;overflow:hidden}.globe-svg{transition:transform .1s ease;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));animation:float 6s ease-in-out infinite;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.country-path{transition:fill .3s ease}.country-path:hover{fill:#ffffff4d;stroke:#fff9;stroke-width:1.2;cursor:pointer}.globe-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:#fff9}.globe-loading span{font-size:.875rem;font-weight:500}.app.light .globe-svg{filter:drop-shadow(0 4px 8px rgba(0,0,0,.1))}.app.light .country-path{fill:#00000026;stroke:#0000004d;stroke-width:.8}.app.light .country-path:hover{fill:#0000004d;stroke:#0009;stroke-width:1.2}.app.light .country-path[data-country=Switzerland],.app.light .country-path[data-country=China]{fill:#000c!important;stroke:#000000e6!important;stroke-width:1.5!important}.app.light .globe-loading{color:#0009}@media (min-width: 1400px){.globe-svg{max-width:240px;max-height:240px}}@media (min-width: 1800px){.globe-svg{max-width:280px;max-height:280px}}.about-item:hover .label:after{width:100%}.nav-item,.nav-link,.mobile-nav-item,a.nav-item,a.nav-link,a.mobile-nav-item,.bento-item a,.about-item a{text-decoration:none!important}.about-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(4,1fr);gap:clamp(.3rem,1vw,1rem);padding:16px;padding-top:4rem;height:100vh;min-height:100vh;max-height:none;width:100%;max-width:100vw;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;margin:0;position:relative;left:0;top:0}@media (min-width: 1200px){.about-grid{min-height:1080px}.about-item{min-height:0}}.about-item{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:clamp(12px,2vw,20px);padding:clamp(.5rem,1.5vw,1.5rem);position:relative;overflow-y:auto;overflow-x:hidden;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;justify-content:flex-start;min-height:0}.about-item.social{justify-content:center;align-items:center;padding:1rem}.about-item:hover .ascii-cat-art{opacity:1;filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px #6e40c9)}.about-item:hover{border-color:#ffffff26}.about-item.personal-story{grid-column:1 / 7;grid-row:1 / 3;z-index:5}.about-item.globe{grid-column:1 / 4;grid-row:3 / 5;z-index:5}.about-item.skills-expertise{grid-column:4 / 7;grid-row:3 / 4;z-index:5}.about-item.languages{grid-column:4 / 7;grid-row:4 / 5;z-index:5}.about-item.certifications{grid-column:7 / 10;grid-row:2 / 3;z-index:5}.about-item.interests{grid-column:7 / 10;grid-row:1 / 2;z-index:5}.about-item.contact-cta{grid-column:10 / 13;grid-row:1 / 2;z-index:5}.about-item.social{grid-column:7 / 9;grid-row:2 / 3;z-index:5}.about-item.certifications{grid-column:9 / 13;grid-row:2 / 3;z-index:5}.about-item.tech-stack{grid-column:10 / 13;grid-row:3 / 4;z-index:5}.about-item.live-stats{grid-column:10 / 13;grid-row:4 / 5;z-index:5}.about-item.strava{grid-column:7 / 10;grid-row:3 / 4;z-index:5}.about-item.ascii-cat{grid-column:7 / 10;grid-row:4 / 5;z-index:5}.about-item h3{font-size:1.1rem;font-weight:600;color:#ffffffe6;margin:0 0 .75rem}.about-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin:.75rem 0}.personal-story h1{font-size:2.25rem;font-weight:700;margin:0 0 .5rem;background:linear-gradient(135deg,#fff,#a0a0a0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1}.personal-story h3{font-size:1.1rem;font-weight:600;color:#ffffffe6;margin:1rem 0 .75rem}.personal-story p{font-size:.85rem;line-height:1.3;margin:0 0 .75rem;color:#fffc}.story-stats{display:flex;flex-direction:row;gap:.75rem;margin-top:.75rem;flex-wrap:wrap}.expertise-grid{display:flex;flex-direction:column;gap:.75rem;flex-grow:1;height:100%;justify-content:space-evenly}.expertise-item{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;background:#ffffff08;border-radius:8px;transition:all .2s ease;flex:1}.expertise-item:hover{background:#ffffff0d}.expertise-content h4{font-size:.8rem;font-weight:600;color:#ffffffe6;margin:0 0 .2rem}.expertise-content p{font-size:.75rem;color:#fff9;margin:0;line-height:1.2}.language-grid{display:flex;flex-direction:column;gap:.5rem;flex-grow:1;height:100%;justify-content:space-evenly}.live-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;flex-grow:1}.live-stat{text-align:center;padding:.75rem;background:#ffffff08;border-radius:8px;transition:all .2s ease}.live-stat:hover{background:#ffffff0d}.live-stat-value{font-size:1.2rem;font-weight:700;color:#fff;margin-bottom:.25rem;background:linear-gradient(135deg,#fff,#a0a0a0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.live-stat-label{font-size:.7rem;color:#fff9;text-transform:uppercase;letter-spacing:.05em}.strava-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.8rem;font-weight:600;color:#fffc}.strava-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:auto;margin-bottom:auto}.strava-stat{text-align:center;transition:transform .2s ease}.strava-stat:hover{color:#fff}.stat-value{font-size:1.1rem;font-weight:700;color:#fff;margin-bottom:.25rem}.stat-label{font-size:.65rem;color:#ffffff80;text-transform:uppercase;letter-spacing:.05em}.strava-periods{display:flex;justify-content:space-between;gap:.5rem}.period{display:flex;flex-direction:column;gap:.25rem;text-align:center;transition:transform .2s ease}.period:hover{color:#fff}.period-label{font-size:.65rem;color:#fff6;text-transform:uppercase}.period-value{font-size:.8rem;font-weight:600;color:#fffc}.language-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#ffffff08;border-radius:8px;transition:all .2s ease;flex:1}.language-item:hover{background:#ffffff0d}.language-flag{font-size:1.5rem;flex-shrink:0}.language-info{display:flex;flex-direction:column;gap:.25rem}.language-name{font-size:.8rem;font-weight:600;color:#ffffffe6}.language-level{font-size:.75rem;color:#fff9}.certifications-list{display:flex;flex-direction:column;gap:.75rem;flex-grow:1;overflow-y:auto;max-height:100%}.certification-item{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:#ffffff08;border-radius:8px;transition:all .2s ease;border:1px solid rgba(255,255,255,.05)}.certification-item:hover{background:#ffffff0d;border-color:#ffffff1a}.certification-header{display:flex;align-items:flex-start;gap:.5rem}.certification-header svg{color:#fff9;flex-shrink:0;margin-top:.1rem}.certification-info{display:flex;flex-direction:column;gap:.2rem;flex:1}.certification-title{font-size:.8rem;font-weight:600;color:#ffffffe6;line-height:1.3}.certification-issuer{font-size:.7rem;color:#ffffff80;font-weight:500}.certification-details{display:flex;flex-direction:column;gap:.2rem;margin-top:.25rem;padding-top:.5rem;border-top:1px solid rgba(255,255,255,.05)}.certification-date{font-size:.7rem;color:#fff9}.certification-id{font-size:.65rem;color:#fff6;font-family:monospace}.interests-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;flex-grow:1}.interest-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;padding:.75rem;background:#ffffff08;border-radius:8px;transition:all .2s ease;text-align:center}.interest-item:hover{background:#ffffff0d}.interest-item span{font-size:.75rem;color:#fffc;font-weight:500}.contact-cta h3{margin:0 0 .75rem}.primary-btn,.secondary-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:.6rem .8rem;color:#fff;display:flex;align-items:center;gap:.4rem;cursor:pointer;transition:all .2s ease;font-size:.85rem;font-weight:500;position:relative;overflow:hidden}@media (max-width: 1199px) and (min-width: 768px){.about-grid{grid-template-rows:repeat(9,min-content);gap:clamp(.3rem,.8vw,.8rem);padding:clamp(.3rem,1vw,1rem);padding-top:4rem;height:auto;min-height:100vh;max-height:none;overflow-y:auto}.about-item{padding:clamp(.5rem,1vw,1rem)}.about-item.personal-story{grid-column:1 / 9;grid-row:1 / 2}.about-item.contact-cta{grid-column:9 / 13;grid-row:1 / 2}.about-item.globe{grid-column:1 / 7;grid-row:2 / 4}.about-item.skills-expertise{grid-column:7 / 13;grid-row:2 / 3}.about-item.languages{grid-column:7 / 13;grid-row:3 / 4}.about-item.certifications{grid-column:7 / 13;grid-row:4 / 5}.about-item.tech-stack{grid-column:1 / 7;grid-row:4 / 5}.about-item.live-stats{grid-column:1 / 7;grid-row:5 / 6}.about-item.strava{grid-column:7 / 13;grid-row:5 / 6}.about-item.interests{grid-column:1 / 7;grid-row:6 / 7}.about-item.social{grid-column:1 / 3;grid-row:7 / 8}.about-item.ascii-cat{grid-column:3 / 13;grid-row:7 / 8}.about-item.contact-cta{grid-column:1 / 13;grid-row:8 / 9}.about-item{overflow:visible}.about-item.certifications .certifications-list,.about-item.languages .language-grid,.about-item.skills-expertise .expertise-grid{overflow-y:auto;max-height:100%}.about-item.skills-expertise .expertise-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}.about-item.skills-expertise .expertise-content h4{font-size:.7rem}.about-item.skills-expertise .expertise-content p{font-size:.65rem}.about-item.languages .language-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.3rem}.about-item.languages .language-item{padding:.35rem}.about-item.languages .language-name{font-size:.7rem}.about-item.languages .language-level{font-size:.65rem}.about-item.certifications .certifications-list{display:flex;flex-direction:column;gap:.4rem;overflow-y:auto;max-height:100%}.about-item.certifications .certification-item{padding:.4rem}.about-item.certifications .certification-title{font-size:.7rem}.about-item.certifications .certification-issuer,.about-item.certifications .certification-date{font-size:.6rem}.about-item.certifications .certification-id{font-size:.55rem}.about-item.certifications .certification-header svg{width:12px;height:12px}.about-item.strava .strava-stats{grid-template-columns:repeat(3,1fr);gap:.4rem}.about-item.strava .strava-periods{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;margin-top:.5rem}.about-item.strava .stat-value{font-size:.85rem}.about-item.strava .stat-label,.about-item.strava .period-label{font-size:.55rem}.about-item.strava .period-value{font-size:.7rem}.about-item.interests .interests-grid{grid-template-columns:repeat(3,1fr);gap:.3rem}.about-item.interests .interest-item{padding:.4rem}.about-item.interests .interest-item span{font-size:.65rem}}@media (max-width: 768px){.about-grid{grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(9,min-content);gap:.1rem;padding:4rem .1rem .1rem;height:auto;min-height:100vh;max-height:none;overflow-y:auto}.about-item{padding:.4rem}.about-item.personal-story{grid-column:1 / 7;grid-row:1 / 2}.about-item.globe{grid-column:1 / 4;grid-row:3 / 5}.about-item.skills-expertise{grid-column:4 / 7;grid-row:3 / 4}.about-item.languages{grid-column:4 / 7;grid-row:4 / 5}.about-item.tech-stack{grid-column:1 / 4;grid-row:5 / 6}.about-item.live-stats{grid-column:4 / 7;grid-row:5 / 6}.about-item.strava{grid-column:1 / 4;grid-row:6 / 7}.about-item.interests{grid-column:4 / 7;grid-row:6 / 7}.about-item.contact-cta{grid-column:1 / 7;grid-row:7 / 8}.about-item.social{grid-column:1 / 3;grid-row:8 / 9}.about-item.certifications{grid-column:1 / 7;grid-row:2 / 3}.about-item.ascii-cat{grid-column:3 / 7;grid-row:8 / 9}.personal-story h1{font-size:2rem}.interests-grid{grid-template-columns:repeat(2,1fr)}.cta-buttons{flex-direction:column}.live-stat-label{font-size:.65rem;word-break:break-word;line-height:1.2}.live-stat-value{font-size:1.1rem}.stat-label{font-size:.6rem;word-break:break-word}.strava-stats{gap:.5rem}}@media (max-width: 480px){.about-grid{gap:.05rem;padding:3.5rem .05rem .05rem}.about-item{padding:.3rem}.personal-story h1{font-size:1.75rem}.interests-grid{grid-template-columns:1fr}.live-stats-grid{grid-template-columns:repeat(2,1fr);gap:.4rem}.live-stat{padding:.5rem}.live-stat-value{font-size:1rem}.live-stat-label{font-size:.6rem;word-break:break-word;line-height:1.2}.strava-stats{grid-template-columns:repeat(3,1fr);gap:.4rem}.stat-value{font-size:.9rem}.stat-label{font-size:.55rem;word-break:break-word}.strava-periods{flex-direction:column;gap:.4rem}.period-label{font-size:.6rem}.period-value{font-size:.75rem}.language-item{padding:.4rem}.language-name{font-size:.75rem}.language-level{font-size:.7rem}.certification-item{padding:.5rem}.certification-title{font-size:.75rem}.certification-issuer,.certification-date{font-size:.65rem}.certification-id{font-size:.6rem}.interest-item{padding:.5rem}.interest-item span{font-size:.7rem}}.work-item:hover .label:after{width:100%}.nav-item,.nav-link,.mobile-nav-item,a.nav-item,a.nav-link,a.mobile-nav-item,.work-item a{text-decoration:none!important}.work-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(4,1fr);gap:clamp(.3rem,1vw,1rem);padding:16px;padding-top:4rem;height:100vh;min-height:100vh;max-height:none;width:100%;max-width:100vw;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;margin:0;position:relative;left:0;top:0}@media (min-width: 1200px){.work-grid{min-height:1080px}.work-item{min-height:0}}.arrow{align-self:flex-end;color:#fff6;transition:all .2s ease;position:absolute;bottom:25px;right:25px}.work-item:hover .arrow{color:#fff9}.work-item .github-icon{color:#fff;transition:all .3s ease}.work-item:hover .github-icon{color:#fff}.work-item{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:clamp(12px,2vw,20px);padding:clamp(.5rem,1.5vw,1.5rem);position:relative;overflow-y:auto;overflow-x:hidden;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;justify-content:flex-start;min-height:0}.work-item.social{justify-content:center;align-items:center;padding:1rem}.work-item:hover{border-color:#ffffff26}.work-item.hero{grid-column:1 / 8;grid-row:1 / 2;z-index:5}.work-item.github-showcase{grid-column:8 / 13;grid-row:1 / 2;z-index:5}.work-item.mahara-project{grid-column:1 / 7;grid-row:2 / 3;z-index:5}.work-item.project-categories{grid-column:7 / 13;grid-row:2 / 3;z-index:5}.work-item.tech-stack{grid-column:1 / 7;grid-row:3 / 4;z-index:5}.work-item.project-stats{grid-column:7 / 10;grid-row:3 / 4;z-index:5}.work-item.portfolio-showcase{grid-column:10 / 13;grid-row:3 / 4;z-index:5}.work-item.contact-cta{grid-column:1 / 7;grid-row:4 / 5;z-index:5}.work-item.social{grid-column:7 / 10;grid-row:4 / 5;z-index:5}.work-item.ascii-cat{grid-column:10 / 13;grid-row:4 / 5;z-index:5}.work-item:hover .ascii-cat-art{opacity:1;filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px #6e40c9)}.github-showcase{text-align:center;justify-content:center;align-items:center}.github-content{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex-grow:1;justify-content:center}.github-content h3{font-size:1.1rem;font-weight:600;color:#ffffffe6;margin:0}.github-content p{font-size:.75rem;color:#fff9;margin:0;text-align:center}.github-stats{display:flex;gap:.75rem;margin-top:.5rem}.github-stats .stat{display:flex;align-items:center;gap:.25rem;font-size:.7rem;color:#ffffffb3}.project-content{display:flex;align-items:center;gap:1.5rem;flex-grow:1}.project-content .project-text{display:flex;flex-direction:column;gap:.5rem;flex:1}.project-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:transparent}.project-icon .project-logo{background:transparent;object-fit:contain}.project-content .project-text h3{font-size:1.1rem;font-weight:600;color:#ffffffe6;margin:0}.project-content .project-text p{font-size:.75rem;color:#fff9;margin:0;line-height:1.3}.project-tech{display:flex;gap:.25rem;flex-wrap:wrap;margin:.5rem 0}.tech-tag{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:.2rem .4rem;font-size:.65rem;color:#ffffffb3}.project-links{display:flex;gap:.5rem;margin-top:auto}.project-link{display:flex;align-items:center;gap:.25rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:.4rem .6rem;color:#fffc;font-size:.7rem;transition:all .2s ease}.project-link:hover{background:#ffffff14;border-color:#ffffff26}.project-categories h3{font-size:1.1rem;font-weight:600;color:#ffffffe6;margin:0 0 .75rem}.categories-grid{display:flex;flex-direction:column;gap:.5rem;flex-grow:1}.category-item{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem;background:#ffffff08;border-radius:8px;transition:all .2s ease}.category-item:hover{background:#ffffff0d}.category-content h4{font-size:.8rem;font-weight:600;color:#ffffffe6;margin:0 0 .2rem}.category-content p{font-size:.7rem;color:#fff9;margin:0;line-height:1.2}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;flex-grow:1}.stat-item{text-align:center;padding:.75rem;background:#ffffff08;border-radius:8px;transition:all .2s ease}.stat-item:hover{background:#ffffff0d}.stat-value{font-size:1.2rem;font-weight:700;color:#fff;margin-bottom:.25rem;background:linear-gradient(135deg,#fff,#a0a0a0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:.7rem;color:#fff9;text-transform:uppercase;letter-spacing:.05em}.portfolio-showcase h3{font-size:1.1rem;font-weight:600;color:#ffffffe6;margin:0 0 .75rem}.portfolio-grid{display:flex;flex-direction:column;gap:.75rem;flex-grow:1;overflow-y:auto;max-height:100%}.portfolio-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#ffffff08;border-radius:8px;transition:all .2s ease;text-decoration:none;color:inherit;cursor:pointer}.portfolio-item:hover{background:#ffffff0d;transform:translate(4px)}.portfolio-mockup{flex-shrink:0}.mockup-screen{width:60px;height:40px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;display:flex;align-items:center;justify-content:center}.mockup-content{display:flex;flex-direction:column;align-items:center;gap:.2rem;font-size:.6rem;color:#ffffffb3}.portfolio-info{display:flex;flex-direction:column;gap:.2rem;flex-grow:1}.portfolio-title{font-size:.8rem;font-weight:600;color:#ffffffe6}.portfolio-tech{font-size:.7rem;color:#fff9}.contact-cta h3{font-size:1.1rem;font-weight:600;color:#ffffffe6;margin:0 0 .5rem}.contact-cta p{font-size:.85rem;color:#ffffffb3;margin:0 0 1rem;line-height:1.3}.cta-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.primary-btn,.secondary-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:.6rem .8rem;color:#fff;display:flex;align-items:center;gap:.4rem;cursor:pointer;transition:all .2s ease;font-size:.85rem;font-weight:500;position:relative;overflow:hidden;text-decoration:none}.primary-btn{background:#ffffff1a;border-color:#fff3}.primary-btn:hover,.secondary-btn:hover{background:#ffffff1f;border-color:#ffffff40}@media (max-width: 1199px) and (min-width: 768px){.work-grid{grid-template-rows:repeat(6,min-content);gap:clamp(.3rem,.8vw,.8rem);padding:clamp(.3rem,1vw,1rem);padding-top:4rem;height:auto;min-height:100vh;max-height:none;overflow-y:auto}.work-item{padding:clamp(.5rem,1vw,1rem)}.work-item.hero{grid-column:1 / 9;grid-row:1 / 2}.work-item.github-showcase{grid-column:9 / 13;grid-row:1 / 2}.work-item.mahara-project{grid-column:1 / 7;grid-row:2 / 3}.work-item.project-categories{grid-column:7 / 13;grid-row:2 / 3}.work-item.tech-stack{grid-column:1 / 7;grid-row:3 / 4}.work-item.project-stats{grid-column:7 / 13;grid-row:3 / 4}.work-item.portfolio-showcase{grid-column:1 / 7;grid-row:4 / 5}.work-item.contact-cta{grid-column:7 / 13;grid-row:4 / 5}.work-item.social{grid-column:1 / 3;grid-row:5 / 6}.work-item.ascii-cat{grid-column:3 / 13;grid-row:5 / 6}.work-item{overflow:visible}.work-item.portfolio-showcase .portfolio-grid,.work-item.project-categories .categories-grid{overflow-y:auto;max-height:100%}.work-item.hero h1{font-size:1.75rem}.work-item.hero p{font-size:.8rem;line-height:1.3}.work-item.hero .hero-badges{gap:.4rem;flex-wrap:wrap}.work-item.hero .badge{font-size:.65rem;padding:.2rem .5rem}.work-item.mahara-project .project-content{gap:.75rem}.work-item.mahara-project .project-icon .project-logo{width:45px;height:45px}.work-item.mahara-project .project-content .project-text h3{font-size:.95rem}.work-item.mahara-project .project-content .project-text p{font-size:.7rem;line-height:1.2}.work-item.mahara-project .tech-tag{font-size:.6rem;padding:.15rem .35rem}.work-item.project-categories .categories-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}.work-item.project-categories .category-item{padding:.4rem}.work-item.project-categories .category-content h4{font-size:.75rem}.work-item.project-categories .category-content p{font-size:.65rem}}@media (max-width: 768px){.work-grid{grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(6,min-content);gap:.1rem;padding:4rem .1rem .1rem;height:auto;min-height:100vh;max-height:none;overflow-y:auto}.work-item{padding:.4rem}.work-item.hero{grid-column:1 / 7;grid-row:1 / 2}.work-item.github-showcase{grid-column:1 / 4;grid-row:2 / 3}.work-item.mahara-project{grid-column:4 / 7;grid-row:2 / 3}.work-item.project-categories{grid-column:1 / 4;grid-row:3 / 4}.work-item.tech-stack{grid-column:4 / 7;grid-row:3 / 4}.work-item.project-stats{grid-column:1 / 4;grid-row:4 / 5}.work-item.portfolio-showcase{grid-column:4 / 7;grid-row:4 / 5}.work-item.contact-cta{grid-column:1 / 7;grid-row:5 / 6}.work-item.social{grid-column:1 / 3;grid-row:6 / 7}.work-item.ascii-cat{grid-column:3 / 7;grid-row:6 / 7}.hero h1{font-size:2rem}.cta-buttons{flex-direction:column}.stat-label{font-size:.65rem;word-break:break-word;line-height:1.2}.stat-value{font-size:1.1rem}.project-content{gap:1rem}.project-content .project-text h3{font-size:1rem}.project-content .project-text p{font-size:.7rem}}@media (max-width: 480px){.work-grid{gap:.05rem;padding:3.5rem .05rem .05rem}.work-item{padding:.3rem}.hero h1{font-size:1.75rem}.stats-grid{grid-template-columns:repeat(2,1fr);gap:.4rem}.stat-item{padding:.5rem}.stat-value{font-size:1rem}.stat-label{font-size:.6rem;word-break:break-word;line-height:1.2}.project-content{flex-direction:column;gap:.75rem;align-items:flex-start}.project-icon{align-self:center}.project-content .project-text{width:100%}.project-content .project-text h3{font-size:.95rem}.project-content .project-text p{font-size:.7rem}.tech-tag{font-size:.6rem;padding:.15rem .3rem}.github-content h3{font-size:.95rem}.github-content p{font-size:.7rem}.github-stats{flex-direction:column;gap:.5rem}.github-stats .stat{font-size:.65rem}}.label{font-size:.7rem;font-weight:600;color:#fff6;text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem;position:relative}.label:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:#ffffff4d;transition:width .3s ease}.contact-item:hover .label:after{width:100%}.nav-item,.nav-link,.mobile-nav-item,a.nav-item,a.nav-link,a.mobile-nav-item,.contact-item a{text-decoration:none!important}.contact-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(4,1fr);gap:clamp(.3rem,1vw,1rem);padding:16px;padding-top:4rem;height:100vh;min-height:100vh;max-height:none;width:100%;max-width:100vw;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;margin:0;position:relative;left:0;top:0}@media (min-width: 1200px){.contact-grid{min-height:1080px}.contact-item{min-height:0}}.contact-item{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:clamp(12px,2vw,20px);padding:clamp(.5rem,1.5vw,1.5rem);position:relative;overflow-y:auto;overflow-x:hidden;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;justify-content:flex-start;min-height:0}.contact-item.social{justify-content:center;align-items:center;padding:1rem}.contact-item:hover .ascii-cat-art{opacity:1;filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px #6e40c9)}.contact-item:hover{border-color:#ffffff26}.contact-item.hero{grid-column:1 / 7;grid-row:1 / 2;z-index:5}.contact-item.contact-form{grid-column:5 / 10;grid-row:2 / 4;z-index:5}.contact-item.contact-info{grid-column:1 / 5;grid-row:2 / 3;z-index:5}.contact-item.quick-contact{grid-column:7 / 13;grid-row:1 / 2;z-index:5}.contact-item.availability{grid-column:1 / 5;grid-row:3 / 4;z-index:5}.contact-item.social{grid-column:10 / 13;grid-row:3 / 4;z-index:5}.contact-item.faq{grid-column:10 / 13;grid-row:2 / 3;z-index:5}.contact-item.ascii-cat{grid-column:1 / 8;grid-row:4 / 5;z-index:5}.contact-item.ascii-cat-new{grid-column:8 / 13;grid-row:4 / 5;z-index:5}.hero h1{font-size:2.25rem;font-weight:700;margin:0 0 .5rem;background:linear-gradient(135deg,#fff,#a0a0a0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1}.hero p{font-size:.85rem;line-height:1.3;margin:0 0 .75rem;color:#fffc}.hero-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin:.75rem 0}.contact-form{cursor:default}.contact-form:hover{transform:none;box-shadow:none}.contact-form:before,.contact-form:after{display:none}.form{display:flex;flex-direction:column;gap:.75rem;flex-grow:1}.form-group{display:flex;flex-direction:column}.form-input,.form-textarea{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:.75rem;color:#fff;font-size:.85rem;transition:all .2s ease;font-family:inherit}.form-input:focus,.form-textarea:focus{outline:none;border-color:#fff3;background:#ffffff0d;box-shadow:0 0 0 2px #ffffff1a}.form-input::placeholder,.form-textarea::placeholder{color:#fff6}.form-textarea{resize:vertical;min-height:100px}.submit-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:.75rem 1rem;color:#fff;display:flex;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:all .2s ease;font-size:.85rem;font-weight:500;margin-top:.5rem;position:relative;overflow:hidden}.submit-btn:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.submit-btn.submitting{background:#ffffff0d;border-color:#ffffff1a}.submit-btn.success{background:#22c55e33;border-color:#22c55e4d;color:#22c55e}.submit-btn.error{background:#ef444433;border-color:#ef44444d;color:#ef4444}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid #ffffff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.info-grid{display:flex;flex-direction:column;gap:.75rem;flex-grow:1}.info-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:#ffffff08;border-radius:8px;transition:all .2s ease}.info-item:hover{background:#ffffff0d}.info-content h4{font-size:.8rem;font-weight:600;color:#ffffffe6;margin:0 0 .2rem}.info-content p{font-size:.75rem;color:#fff9;margin:0;line-height:1.2}.quick-contact h3{font-size:1.1rem;font-weight:600;color:#ffffffe6;margin:0 0 .75rem}.quick-buttons{display:flex;flex-direction:column;gap:.5rem;flex-grow:1}.quick-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fffc;transition:all .2s ease;font-size:.8rem;font-weight:500}.quick-btn:hover{background:#ffffff14;border-color:#ffffff26;color:#fff}.quick-btn.email:hover{background:#ef44441a;border-color:#ef444433}.quick-btn.linkedin:hover{background:#0077b51a;border-color:#0077b533}.quick-btn.github:hover{background:#ffffff1a;border-color:#fff3}.availability-content{display:flex;flex-direction:column;gap:.75rem;flex-grow:1}.status-indicator{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#22c55e1a;border:1px solid rgba(34,197,94,.2);border-radius:8px;font-size:.8rem;color:#22c55e;font-weight:500}.status-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.availability-details{display:flex;flex-direction:column;gap:.5rem}.detail{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#ffffff08;border-radius:6px}.detail-label{font-size:.7rem;color:#fff9}.detail-value{font-size:.7rem;color:#fffc;font-weight:500}.faq h3{font-size:1.1rem;font-weight:600;color:#ffffffe6;margin:0 0 .75rem}.faq-list{display:flex;flex-direction:column;gap:.75rem;flex-grow:1;overflow-y:auto;max-height:100%}.faq-item{padding:.75rem;background:#ffffff08;border-radius:8px;transition:all .2s ease}.faq-item:hover{background:#ffffff0d}.faq-item h4{font-size:.8rem;font-weight:600;color:#ffffffe6;margin:0 0 .25rem}.faq-item p{font-size:.7rem;color:#fff9;margin:0;line-height:1.3}@media (max-width: 1199px) and (min-width: 768px){.contact-grid{grid-template-rows:repeat(5,min-content);gap:clamp(.3rem,.8vw,.8rem);padding:clamp(.3rem,1vw,1rem);padding-top:4rem;height:auto;min-height:100vh;max-height:none;overflow-y:auto}.contact-item{padding:clamp(.5rem,1vw,1rem)}.contact-item.hero{grid-column:1 / 8;grid-row:1 / 2}.contact-item.quick-contact{grid-column:8 / 13;grid-row:1 / 2}.contact-item.contact-form{grid-column:1 / 7;grid-row:2 / 4}.contact-item.contact-info{grid-column:7 / 13;grid-row:2 / 3}.contact-item.availability{grid-column:7 / 10;grid-row:3 / 4}.contact-item.faq{grid-column:10 / 13;grid-row:3 / 4}.contact-item.social{grid-column:7 / 10;grid-row:4 / 5}.contact-item.ascii-cat{grid-column:1 / 7;grid-row:4 / 5}.contact-item.ascii-cat-new{grid-column:10 / 13;grid-row:4 / 5}.contact-item{overflow:visible}.contact-item.faq .faq-list,.contact-item.contact-form .form{overflow-y:auto;max-height:100%}}@media (max-width: 768px){.contact-grid{grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(8,min-content);gap:.1rem;padding:4rem .1rem .1rem;height:auto;min-height:100vh;max-height:none;overflow-y:auto}.contact-item.ascii-cat-new{grid-column:1 / 4;grid-row:7 / 8}.contact-item{padding:.4rem}.contact-item.hero{grid-column:1 / 7;grid-row:1 / 2}.contact-item.contact-form{grid-column:1 / 7;grid-row:2 / 3}.contact-item.contact-info{grid-column:1 / 4;grid-row:3 / 5}.contact-item.quick-contact{grid-column:4 / 7;grid-row:3 / 4}.contact-item.availability{grid-column:1 / 7;grid-row:5 / 6}.contact-item.social{grid-column:4 / 7;grid-row:4 / 5}.contact-item.faq{grid-column:1 / 7;grid-row:6 / 7}.contact-item.ascii-cat{grid-column:4 / 7;grid-row:7 / 8}.hero h1{font-size:2rem}.quick-buttons{gap:.3rem}.quick-btn{padding:.5rem;font-size:.75rem}}@media (max-width: 480px){.contact-grid{gap:.05rem;padding:3.5rem .05rem .05rem}.contact-item{padding:.3rem}.hero h1{font-size:1.75rem}.form{gap:.5rem}.form-input,.form-textarea{padding:.5rem;font-size:.8rem}.submit-btn{padding:.6rem .8rem;font-size:.8rem}}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;padding:1rem 2rem;transition:all .3s ease;background:transparent}.navbar.scrolled{background:#000000d9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:.75rem 2rem}.navbar-container{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.navbar-brand{text-decoration:none;display:flex;align-items:center;gap:.5rem}.brand-container{position:relative;display:flex;align-items:center}.seasonal-decoration{position:absolute;top:3px;left:-9px;z-index:1;pointer-events:none}.santa-hat,.spring-hat{top:3px;left:-9px;width:20px;height:auto;transform:rotate(-20deg)}.summer-hat{top:0;left:-7px;width:20px;height:auto;transform:rotate(-40deg)}.autumn-hat{top:1px;left:-8px;width:20px;height:auto;transform:rotate(-20deg)}.spring-flower,.summer-sun,.autumn-leaf{font-size:18px;transform:rotate(-15deg);top:-2px;left:-12px}.brand-text{font-size:1.25rem;font-weight:700;color:#fff;letter-spacing:-.02em;background:linear-gradient(135deg,#fff,#a0a0a0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative;z-index:0}.navbar-links{display:flex;align-items:center;gap:.5rem}.navbar-link{display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-radius:10px;text-decoration:none;color:#fff9;font-size:.875rem;font-weight:500;transition:all .2s ease;background:transparent;border:1px solid transparent}.navbar-link:hover{color:#ffffffe6;background:#ffffff0d;border-color:#ffffff14}.navbar-link.active{color:#fff;background:#ffffff1a;border-color:#ffffff26}.navbar-cat{display:flex;align-items:center;justify-content:center;padding:.6rem 1rem;border-radius:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);margin-left:.5rem}.navbar-cat:hover{background:#ffffff1a;border-color:#fff3}.navbar-cat:hover .cat-ascii{filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px #6e40c9)}.cat-ascii{font-family:Courier New,monospace;font-size:.9rem;color:#fff;transition:all .3s ease;-webkit-user-select:none;user-select:none}.navbar-mobile-toggle{display:none;background:#000c;border:1px solid rgba(255,255,255,.15);border-radius:10px;width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;color:#fff;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.navbar-mobile-toggle:hover{background:#000000e6;border-color:#ffffff40}.navbar-mobile-menu{position:fixed;top:0;right:0;width:320px;height:100vh;background:linear-gradient(135deg,#000000fa,#000000f2);-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);border-left:1px solid rgba(255,255,255,.1);z-index:999;padding:2rem 1.5rem;box-sizing:border-box;box-shadow:-10px 0 40px #00000080}.navbar-mobile-content{display:flex;flex-direction:column;gap:.75rem;margin-top:5rem}.navbar-mobile-link{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:1.25rem 1.5rem;color:#fffc;display:flex;align-items:center;gap:1rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);font-size:1rem;font-weight:500;text-decoration:none}.navbar-mobile-link:hover{background:#ffffff14;border-color:#ffffff26;color:#fff}.navbar-mobile-link.active{background:#ffffff1f;border-color:#ffffff40;color:#fff}.navbar-mobile-cat{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:1.25rem 1.5rem;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;margin-top:.5rem}.navbar-mobile-cat:hover{background:#ffffff1a;border-color:#fff3}.navbar-mobile-cat .cat-ascii{font-size:1.2rem}.navbar-mobile-cat:hover .cat-ascii{filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px #6e40c9)}@media (max-width: 768px){.navbar{padding:1rem}.navbar.scrolled{padding:.75rem 1rem}.navbar-links{display:none}.navbar-mobile-toggle{display:flex}}@media (max-width: 480px){.navbar-mobile-menu{width:100%}}
