:root{--bg:#0b0d10;--surface:#120e09bd;--surface-hover:#1a140bdb;--border:#f59e0b2e;--border-hover:#f59e0b73;--text:#f3f4f6;--text-sub:#f3f4f6b8;--text-muted:#f3f4f673;--accent:#f59e0b;--accent-warm:#06b6d4;--accent-glow:#f59e0b38;--linkedin-blue:#0a66c2;--github-dark:#1f2937;--nav-h:76px;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--transition:.28s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{scroll-behavior:smooth;background-color:var(--bg);width:100%;max-width:100vw;overflow-x:hidden!important}body{color:var(--text);background-color:#0000;min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.65;position:relative}body:after{content:"";z-index:-2;pointer-events:none;background-image:url(/moon1.gif);background-position:50%;background-size:cover;width:100vw;height:100vh;position:fixed;top:0;left:0}body:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(90deg,#08090fad 0% 56%,#08090f00 86%);width:100vw;height:100vh;position:fixed;top:0;left:0}@media (width<=960px){body:before{background:#08090f85}}@media (prefers-reduced-motion:reduce){body:after{opacity:.08;animation:none}}#root{z-index:1;position:relative}h1,h2,h3,h4,h5,h6{font-family:Outfit,sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}ul{list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.container{max-width:1180px;margin:0 auto;padding:0 2rem}.page-wrapper{padding-top:var(--nav-h)}.glass-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--transition), background var(--transition), transform var(--transition), box-shadow var(--transition)}@media (hover:hover){.glass-card:hover{background:var(--surface-hover);border-color:var(--border-hover);box-shadow:0 12px 40px #00000059, 0 0 0 1px var(--accent-glow)}}.navbar{height:var(--nav-h);z-index:200;transition:background var(--transition), border-color var(--transition);position:fixed;top:0;left:0;right:0}.navbar--scrolled{border-bottom:1px solid var(--border);background:#08090fd9}.nav-content{justify-content:space-between;align-items:center;max-width:1240px;height:100%;margin:0 auto;padding:0 2rem;display:flex}.nav-logo--emblem{background:radial-gradient(circle at 50% 0,#f59e0b29,#0b0d10b3);border:1px solid #f59e0b59;border-radius:10px;align-items:center;gap:.65rem;padding:.35rem .75rem;transition:all .28s cubic-bezier(.4,0,.2,1);display:inline-flex;box-shadow:0 4px 14px -2px #0006,inset 0 1px #fef08a40}.nav-logo--emblem:hover{border-color:#f59e0ba6;transform:translateY(-1px)scale(1.04);box-shadow:0 6px 20px -4px #f59e0b66,inset 0 1px 1px #fef08a66}.nav-logo-text{letter-spacing:3px;background:linear-gradient(135deg,#fff 30%,#f59e0b 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-family:Outfit,sans-serif;font-size:1.15rem;font-weight:800}.nav-right{align-items:center;gap:2.5rem;display:flex}.nav-links{align-items:center;gap:.5rem;display:flex}.nav-link{letter-spacing:.5px;color:var(--text-sub);border-radius:var(--radius-sm);align-items:center;gap:.45rem;padding:.5rem 1rem;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative}.nav-link:hover{color:var(--text);background:#ffffff14;transform:translateY(-1px)}.nav-link--active{transform:translateY(-1px)scale(1.03);color:#fff!important;background:linear-gradient(135deg,#f59e0b38,#d9770626)!important;border:1px solid #f59e0b73!important;font-weight:700!important;box-shadow:0 4px 16px -2px #f59e0b59,inset 0 1px #f4d06f4d!important}.nav-link--active svg{filter:drop-shadow(0 0 6px #f59e0bd9);transform:scale(1.1);color:var(--accent)!important}.nav-actions{align-items:center;gap:.8rem;display:flex}.mobile-nav-controls{align-items:center;gap:.6rem;display:none}.mobile-menu-toggle-btn{border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);background:#ffffff14;justify-content:center;align-items:center;padding:.45rem;display:flex}.mobile-menu-toggle-btn:hover{border-color:var(--border-hover);background:#ffffff26}.mobile-dropdown-menu{top:calc(var(--nav-h) + 4px);border:1px solid var(--border);border-radius:var(--radius-md);z-index:1000;background:#0b0d10eb;flex-direction:column;gap:.4rem;padding:.8rem;animation:.22s ease-out slide-down;display:flex;position:absolute;left:1rem;right:1rem;box-shadow:0 16px 40px #000000b3}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.mobile-nav-item{border-radius:var(--radius-sm);color:var(--text-sub);text-align:left;cursor:pointer;width:100%;transition:all var(--transition);background:0 0;border:1px solid #0000;align-items:center;gap:.75rem;padding:.75rem 1rem;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:500;display:flex}.mobile-nav-item:hover{color:var(--text);background:#ffffff0f}.mobile-nav-item--active{color:#fff!important;background:linear-gradient(135deg,#f59e0b38,#d9770626)!important;border:1px solid #f59e0b66!important;font-weight:700!important}.social-btn{border-radius:var(--radius-sm);letter-spacing:.3px;transition:all var(--transition);border:1px solid var(--border);color:var(--text);background:#ffffff0d;align-items:center;gap:.55rem;padding:.5rem .95rem;font-family:Outfit,sans-serif;font-size:.85rem;font-weight:600;display:inline-flex}.social-btn--lg{padding:.7rem 1.3rem;font-size:.9rem}.social-btn--github:hover{background:#24292ecc;border-color:#ffffff59;transform:translateY(-2px);box-shadow:0 4px 20px #0006,0 0 12px #ffffff26}.social-btn--linkedin:hover{background:#0a66c2d9;border-color:#0a66c299;transform:translateY(-2px);box-shadow:0 4px 20px #0a66c259,0 0 12px #0a66c24d}.lang-toggle-btn{border-radius:var(--radius-sm);color:var(--accent);transition:all var(--transition);background:#7eb8f714;border:1px solid #7eb8f74d;align-items:center;gap:.4rem;padding:.45rem .85rem;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:700;display:inline-flex}.lang-toggle-btn:hover{border-color:var(--accent);background:#7eb8f72e;transform:translateY(-1px)}.hero{min-height:calc(100vh - var(--nav-h));flex-direction:column;justify-content:center;padding:3rem 0;display:flex;position:relative}.hero-inner{grid-template-columns:1fr 340px;align-items:center;gap:4rem;display:grid}.hero-eyebrow{letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:.75rem;font-family:Outfit,sans-serif;font-size:.9rem;font-weight:600}.hero-title{letter-spacing:-2px;margin-bottom:1rem;font-size:clamp(3rem,5.5vw,5.2rem);font-weight:800;line-height:1.05}.hero-name{background:linear-gradient(135deg,#f3f4f6 30%,#f59e0b 70%,#06b6d4 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero-role{color:var(--accent-warm);min-height:2.2rem;margin-bottom:1.25rem;font-family:Outfit,sans-serif;font-size:1.35rem;font-weight:600}.hero-bio{color:var(--text-sub);max-width:520px;margin-bottom:2.2rem;font-size:1.05rem}.hero-cta{flex-wrap:wrap;align-items:center;gap:.9rem;display:flex}.hero-status-pill{color:var(--accent);background:#7eb8f714;border:1px solid #7eb8f759;border-radius:100px;align-items:center;gap:.55rem;margin-bottom:1.25rem;padding:.35rem .95rem;font-family:Outfit,sans-serif;font-size:.8rem;font-weight:600;display:inline-flex;box-shadow:0 0 16px #7eb8f726}.status-dot-pulse{background:#34d399;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse-dot;box-shadow:0 0 10px #34d399}@keyframes pulse-dot{0%,to{opacity:.7;transform:scale(.9)}50%{opacity:1;transform:scale(1.3)}}.hero-photo-wrap{justify-content:center;align-items:center;display:flex;position:relative}.hero-photo-card{border-radius:var(--radius-md);background:var(--surface);border:1px solid var(--border);width:280px;max-width:100%;box-shadow:0 16px 40px #0000008c, 0 0 0 1px var(--accent-glow);z-index:1;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);padding:.55rem;position:relative;overflow:hidden}.hero-photo-card:hover{border-color:var(--accent);box-shadow:0 20px 50px #000000a6, 0 0 16px var(--accent-glow);transform:translateY(-4px)scale(1.02)}.photo-inner{aspect-ratio:3/4;border-radius:calc(var(--radius-md) - 4px);border:1px solid var(--border);background:#0b0d10;width:100%;position:relative;overflow:hidden}.hero-profile-img{object-fit:cover;object-position:center top;width:100%;height:100%;transition:transform .4s}.hero-photo-card:hover .hero-profile-img{transform:scale(1.04)}.photo-overlay-badge{border-radius:var(--radius-sm);border:1px solid var(--border);background:#0b0d10e0;align-items:center;gap:.5rem;padding:.45rem .65rem;display:flex;position:absolute;bottom:.6rem;left:.6rem;right:.6rem}.photo-badge-text{color:var(--text);letter-spacing:.2px;font-family:Outfit,sans-serif;font-size:.76rem;font-weight:600}.hero-photo-glow{background:radial-gradient(circle, var(--accent-glow) 0%, transparent 70%);z-index:0;border-radius:50%;width:250px;height:250px;position:absolute}.scroll-cue{color:var(--text-muted);transition:color var(--transition), transform var(--transition);align-self:center;margin-top:2rem}.scroll-cue:hover{color:var(--accent);transform:translateY(4px)}.section{padding:6rem 0}.section-label{letter-spacing:3px;text-transform:uppercase;color:var(--accent);background:#120e09a8;border:1px solid #f59e0b47;border-radius:100px;margin-bottom:.75rem;padding:.3rem .9rem;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:600;display:inline-block}.section-title{letter-spacing:-1px;color:var(--text);margin-bottom:2rem;font-size:clamp(2rem,3.8vw,3rem);font-weight:800}.section-sub{color:var(--text-sub);max-width:580px;margin-bottom:3rem;font-size:1.05rem}.about-card{padding:2.5rem}.about-text{color:var(--text-sub);margin-bottom:1.25rem;font-size:1.05rem}.about-tools-divider{border-top:1px solid var(--border);margin-top:2.2rem;padding-top:1.8rem}.about-tools-title{color:var(--accent);letter-spacing:.5px;text-transform:uppercase;margin-bottom:1.2rem;font-family:Outfit,sans-serif;font-size:1.15rem;font-weight:700}.about-stat{flex-direction:column;gap:.3rem;display:flex}.stat-num{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-warm) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-family:Outfit,sans-serif;font-size:2.2rem;font-weight:800;line-height:1}.stat-label{color:var(--text-muted);font-size:.85rem;font-weight:500}.skills-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:1rem;display:grid}.skill-card{contain:paint;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);flex-direction:column;gap:.95rem;padding:1.35rem 1.45rem;display:flex;position:relative;overflow:hidden}.skill-card:hover{border-color:#f59e0b73;transform:translateY(-3px);box-shadow:0 14px 36px #00000080,0 0 0 1px #f59e0b33}.skill-category-title{color:var(--accent);letter-spacing:.6px;text-transform:uppercase;border-bottom:1px solid var(--border);padding-bottom:.5rem;font-family:Outfit,sans-serif;font-size:.88rem;font-weight:700}.patch-marquee-wrapper{contain:paint;width:100%;padding:.25rem 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 8% 92%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 8% 92%,#0000 100%)}.patch-marquee-track{will-change:transform;align-items:center;gap:.65rem;width:max-content;animation:40s linear infinite patch-slide;display:flex}.patch-marquee-track--reverse{animation:40s linear infinite patch-slide-reverse}.skill-card:hover .patch-marquee-track{animation-play-state:paused}@keyframes patch-slide{0%{transform:translate(0)}to{transform:translate(-33.33%)}}@keyframes patch-slide-reverse{0%{transform:translate(-33.33%)}to{transform:translate(0)}}.skill-tech-pill{border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap;transition:all var(--transition);cursor:pointer;background:#ffffff0a;flex-shrink:0;align-items:center;gap:.5rem;padding:.42rem .8rem;display:inline-flex}.skill-tech-pill:hover{color:#fff;background:#f59e0b2e;border-color:#f59e0b80;box-shadow:0 0 12px #f59e0b40}.skill-tech-icon{object-fit:contain;flex-shrink:0;width:16px;height:16px}.skill-tech-name{color:var(--text);font-family:Outfit,sans-serif;font-size:.84rem;font-weight:600;line-height:1}.skill-dot{background:var(--accent-warm);width:6px;height:6px;box-shadow:0 0 8px var(--accent-warm);border-radius:50%;flex-shrink:0}.lang-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.lang-dot--python{background:#3572a5;box-shadow:0 0 8px #3572a599}.lang-dot--cpp{background:#f34b7d;box-shadow:0 0 8px #f34b7d99}.lang-dot--matlab{background:#e16737;box-shadow:0 0 8px #e1673799}.lang-dot--jupyter{background:#da5b0b;box-shadow:0 0 8px #da5b0b99}.lang-dot--c{background:#555;box-shadow:0 0 8px #5559}.lang-dot--coppelia{background:#00a3e0;box-shadow:0 0 8px #00a3e099}.lang-dot--lua{background:navy;box-shadow:0 0 8px #00008099}.timeline-grid{grid-template-columns:1fr 1fr;gap:3rem;display:grid}.timeline-column-title{align-items:center;gap:.6rem;margin-bottom:2rem;font-size:1.5rem;font-weight:700;display:flex}.timeline-icon{color:var(--accent)}.timeline-list{flex-direction:column;gap:1.25rem;display:flex}.timeline-card{flex-direction:column;gap:.5rem;padding:1.75rem;display:flex}.timeline-card-meta{align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.timeline-period{color:var(--accent);background:#7eb8f71a;border-radius:4px;align-items:center;gap:.35rem;padding:.2rem .6rem;font-size:.8rem;font-weight:600;display:inline-flex}.timeline-role{color:var(--text);font-size:1.15rem;font-weight:700}.timeline-org{color:var(--accent-warm);align-items:center;gap:.35rem;font-size:.9rem;font-weight:500;display:inline-flex}.timeline-desc{color:var(--text-sub);margin-top:.5rem;font-size:.92rem;line-height:1.6}.timeline-thesis-badge{border-radius:var(--radius-sm);color:var(--accent-warm);background:#f59e0b14;border:1px solid #f59e0b47;align-items:center;gap:.55rem;margin-top:.85rem;padding:.6rem .9rem;font-family:Outfit,sans-serif;font-size:.88rem;font-weight:600;display:flex;box-shadow:0 4px 12px #f59e0b14}.thesis-icon{color:var(--accent);flex-shrink:0}.project-filters{flex-wrap:wrap;gap:.6rem;margin-bottom:2.5rem;display:flex}.filter-btn{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);color:var(--text-sub);transition:all var(--transition);padding:.5rem 1.1rem;font-family:Outfit,sans-serif;font-size:.88rem;font-weight:600}.filter-btn:hover{background:var(--surface-hover);color:var(--text)}.filter-btn--active{border-color:var(--accent);color:var(--text);background:#7eb8f726}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:2rem;margin:-.5rem;padding:.5rem;display:grid;overflow:visible}.project-card{transition:transform .35s cubic-bezier(.34, 1.56, .64, 1), border-color var(--transition), background var(--transition), box-shadow var(--transition);flex-direction:column;gap:1.25rem;padding:2.25rem;display:flex;position:relative;overflow:hidden}@media (hover:hover){.project-card:hover{background:var(--surface-hover);border-color:var(--accent);box-shadow:0 16px 48px #0000008c, 0 0 0 1px var(--accent-glow);z-index:10;transform:translateY(-6px)}}.project-media-container{border-radius:var(--radius-sm);border:1px solid var(--border);background:#00000080;width:100%;height:280px;position:relative;overflow:hidden}.project-media-img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition)}.project-card:hover .project-media-img{transform:scale(1.04)}.project-card-header{justify-content:space-between;align-items:center;display:flex}.project-category-badge{letter-spacing:1px;color:var(--accent);align-items:center;gap:.4rem;font-size:.75rem;font-weight:700;display:inline-flex}.project-metrics-badge{color:var(--accent-warm);background:#d4956a26;border:1px solid #d4956a4d;border-radius:4px;padding:.2rem .55rem;font-size:.75rem;font-weight:600}.project-title{color:var(--text);font-size:1.25rem;font-weight:700}.project-desc{color:var(--text-sub);flex-grow:1;font-size:.95rem;line-height:1.6}.project-stack{flex-wrap:wrap;gap:.4rem;display:flex}.tech-tag{border:1px solid var(--border);color:var(--text-sub);background:#ffffff0f;border-radius:4px;padding:.2rem .55rem;font-size:.78rem;font-weight:500}.project-card-footer{border-top:1px solid var(--border);align-items:center;gap:.75rem;margin-top:auto;padding-top:1rem;display:flex}.project-link-btn{color:var(--text-sub);transition:color var(--transition);align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;display:inline-flex}.project-link-btn:hover{color:var(--accent)}.project-link-btn--github{color:var(--text)}.contact-layout{grid-template-columns:340px 1fr;align-items:start;gap:2rem;display:grid}.contact-links{flex-direction:column;gap:1rem;display:flex}.contact-link{align-items:center;gap:1.25rem;padding:1.25rem 1.5rem;display:flex}.contact-icon-wrap{border-radius:var(--radius-sm);border:1px solid var(--border);background:#ffffff0f;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.contact-icon--email{color:var(--accent)}.contact-icon--linkedin{color:#0a66c2}.contact-icon--github{color:var(--text)}.contact-icon--cv{color:var(--accent)}.contact-link-label{letter-spacing:1px;text-transform:uppercase;color:var(--text-muted);font-size:.75rem;font-weight:600;display:block}.contact-link-value{color:var(--text);font-size:.95rem;font-weight:600;display:block}.contact-form{flex-direction:column;gap:1.25rem;padding:2rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-label{letter-spacing:.5px;color:var(--text-sub);text-transform:uppercase;font-size:.82rem;font-weight:600}.form-input{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);transition:border-color var(--transition), background var(--transition), box-shadow var(--transition);background:#ffffff0d;outline:none;width:100%;padding:.85rem 1rem;font-family:inherit;font-size:.95rem}.form-input:focus{border-color:var(--accent);background:#7eb8f70f;box-shadow:0 0 0 3px #7eb8f726}.form-textarea{resize:vertical;min-height:130px}.btn{border-radius:var(--radius-sm);letter-spacing:.3px;transition:all var(--transition);cursor:pointer;border:none;align-items:center;gap:.55rem;padding:.7rem 1.4rem;font-family:Outfit,sans-serif;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{color:#0b0d10;background:linear-gradient(135deg,#d97706,#f59e0b);font-weight:700;box-shadow:0 4px 18px #f59e0b59}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 28px #f59e0b8c}.btn-cv-nav{color:var(--accent-warm);background:#d4956a26;border:1px solid #d4956a66;padding:.48rem .95rem;font-size:.85rem}.btn-cv-nav:hover{border-color:var(--accent-warm);background:#d4956a47;transform:translateY(-1px)}.btn-full{justify-content:center;width:100%}.bento-container{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;margin-top:2rem;display:grid}.bento-card{min-height:150px;transition:transform var(--transition), border-color var(--transition), box-shadow var(--transition);flex-direction:column;justify-content:space-between;gap:.85rem;padding:1.35rem;display:flex}.bento-card:hover{border-color:#ffffff40;transform:translateY(-4px);box-shadow:0 12px 32px #0006}.bento-card--strava:hover{border-color:#f9731680;box-shadow:0 12px 32px #f9731626}.bento-card--android:hover{border-color:#ef444499;box-shadow:0 12px 32px #ef444440}.bento-card--ritual:hover{border-color:#22c55e80;box-shadow:0 12px 32px #22c55e26}.bento-header{justify-content:space-between;align-items:center;display:flex}.bento-badge{letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:.4rem;font-family:Outfit,sans-serif;font-size:.75rem;font-weight:700;display:inline-flex}.bento-badge--strava{color:#f97316}.bento-badge--android,.bento-icon-android{color:#ef4444}.bento-badge--green{color:#22c55e}.bento-pulse{background:#f97316;border-radius:50%;width:7px;height:7px;animation:1.8s ease-in-out infinite pulse-dot;box-shadow:0 0 8px #f97316}.bento-icon-strava{color:#f97316}.bento-icon-accent{color:var(--accent)}.bento-icon-warm{color:var(--accent-warm)}.bento-icon-green{color:#22c55e}.bento-big-metric{color:var(--text);font-family:Outfit,sans-serif;font-size:1.8rem;font-weight:800;line-height:1}.bento-sub-title{color:var(--text);margin-bottom:.25rem;font-family:Outfit,sans-serif;font-size:1.05rem;font-weight:700}.bento-desc{color:var(--text-sub);font-size:.88rem;line-height:1.5}.bento-highlight-text{color:var(--text);font-size:.92rem;font-weight:600;line-height:1.5}.bento-authors-list{flex-wrap:wrap;gap:.4rem;margin-top:.2rem;display:flex}.bento-author-pill{border:1px solid var(--border);color:var(--text);background:#ffffff0f;border-radius:6px;padding:.2rem .6rem;font-size:.76rem;font-weight:500}.bento-footer{border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;padding-top:.6rem;font-size:.78rem;display:flex}.bento-tag{color:var(--text-muted);font-weight:500}.bento-link-hint{color:var(--accent);align-items:center;gap:.25rem;font-size:.75rem;font-weight:600;display:inline-flex}.bento-music-bars{align-items:flex-end;gap:2px;height:14px;display:flex}.bento-music-bars .bar{background:#22c55e;border-radius:2px;width:3px;animation:1.2s ease-in-out infinite alternate eq-bounce}.bento-music-bars .bar-1{height:100%;animation-delay:.1s}.bento-music-bars .bar-2{height:60%;animation-delay:.3s}.bento-music-bars .bar-3{height:80%;animation-delay:.5s}.bento-card--widget{min-height:220px;overflow:hidden}.bento-strava-widget-wrapper{border-radius:var(--radius-sm);border:1px solid var(--border);background:#0000004d;width:100%;margin-top:.5rem;overflow:hidden}.bento-strava-iframe{border:none;width:100%;height:160px;display:block}.bento-badge--chess{color:#eab308}.bento-username-tag{color:#eab308;background:#eab3081f;border:1px solid #eab3084d;border-radius:6px;padding:.2rem .55rem;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:700}.bento-tag--android{align-items:center;gap:.35rem;text-decoration:none;transition:all .2s;display:inline-flex;color:#f87171!important;background:#ef444424!important;border-color:#ef444466!important}.bento-tag--android:hover{transform:translateY(-1px);background:#ef444442!important;border-color:#ef444499!important}.bento-desc--android-alert{text-shadow:0 0 16px #ef444459;margin:0;font-family:Outfit,sans-serif;font-size:1.15rem;font-weight:800;line-height:1.35;color:#ef4444!important}.bento-pulse--red{background:#ef4444!important;box-shadow:0 0 10px #ef4444!important}.bento-alert-box{background:#ef444414;border:1px solid #ef44444d;border-radius:10px;align-items:center;gap:.75rem;margin-top:.3rem;margin-bottom:.3rem;padding:.85rem 1rem;display:flex;box-shadow:0 0 20px #ef44441f}.bento-icon-danger-flashing{color:#ef4444;flex-shrink:0;animation:1.5s ease-in-out infinite alert-flash}@keyframes alert-flash{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.18)}}.bento-chess-stats-grid{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.4rem;display:grid}.bento-chess-stat{border-radius:var(--radius-sm);border:1px solid var(--border);background:#ffffff0d;flex-direction:column;gap:.2rem;padding:.55rem .75rem;display:flex}.chess-stat-label{color:var(--text-muted);align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;display:inline-flex}.chess-icon-zap{color:#eab308}.bento-link-btn-chess:hover{color:#fff}.chess-icon-swords{color:var(--accent)}.chess-stat-val{color:var(--text);font-size:.88rem;font-weight:700}.bento-link-btn-chess{color:#fbbf24;transition:color var(--transition), text-shadow var(--transition);align-items:center;gap:.35rem;font-size:.78rem;font-weight:600;display:inline-flex}.bento-link-btn-chess:hover{color:#fff;text-shadow:0 0 8px #f59e0b99}@keyframes eq-bounce{0%{height:30%}to{height:100%}}.collapsible-section{transition:padding var(--transition)}.collapsible-header-btn{text-align:left;cursor:pointer;border-radius:var(--radius-md);width:100%;transition:background var(--transition);background:0 0;border:none;justify-content:space-between;align-items:center;gap:1.5rem;margin:-.75rem -1rem;padding:.75rem 1rem;display:flex}.collapsible-header-btn:hover{background:#f59e0b0d}.collapsible-header-text{flex:1}.collapsible-header-text .section-title{margin-bottom:.25rem}.collapsible-trigger-badge{border:1px solid var(--border);color:var(--accent);transition:all var(--transition);background:#f59e0b14;border-radius:20px;flex-shrink:0;align-items:center;gap:.5rem;padding:.45rem .95rem;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:600;display:inline-flex}.collapsible-header-btn:hover .collapsible-trigger-badge{border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow);background:#f59e0b2e}.collapsible-chevron{color:var(--accent);transition:transform .35s cubic-bezier(.4,0,.2,1)}.collapsible-chevron--open{transform:rotate(180deg)}.collapsible-body{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.4,0,.2,1),opacity .35s,margin-top .35s;display:grid;overflow:hidden}.collapsible-body--open{opacity:1;grid-template-rows:1fr;margin-top:1.5rem;overflow:visible!important}.collapsible-content-wrap{min-height:0;transition:overflow .3s;overflow:hidden}.collapsible-body--open .collapsible-content-wrap{margin:-.75rem;padding:.75rem;overflow:visible!important}@media (width<=960px){.hero-inner{text-align:center;grid-template-columns:1fr;gap:3rem}.hero-bio{margin-left:auto;margin-right:auto}.hero-cta,.hero-photo-wrap{justify-content:center}.timeline-grid,.contact-layout{grid-template-columns:1fr}.nav-right{gap:1rem}.nav-logo{margin-right:1rem}.skills-grid{grid-template-columns:1fr}.skill-card--wide{grid-column:span 1}}@media (width<=680px){body:after{background-position:top;background-size:cover}.desktop-only-nav{display:none!important}.mobile-nav-controls{display:flex!important}.nav-content{padding:0 .75rem}.nav-logo{letter-spacing:2px;margin-right:.5rem;font-size:1.25rem}.social-btn span{display:none}.social-btn{padding:.5rem}.btn-cv-nav span{display:none}.lang-toggle-btn{padding:.45rem .65rem}.section{padding:4rem 0}.projects-grid{grid-template-columns:1fr}.project-card{padding:1.5rem}.project-media-container{height:210px}.skills-grid{grid-template-columns:1fr}.skill-card--wide{grid-column:span 1}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
