:root{--bg:#0a0a0a;--bg-secondary:#111;--card:#1a1a1a;--border:#2a2a2a;--text:#e0e0e0;--text-heading:#fff;--text-muted:#888;--accent:#4fc3f7;--accent-hover:#81d4fa;--badge-bg:#252525;--coming-soon:#ff9800;--header-bg:#0a0a0ad9;--header-bg-scrolled:#0a0a0af2;--link-hover-bg:#222;--shimmer-mid:#2a2a2a;--error-border:#ef535033;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f5f5f5;--bg-secondary:#eee;--card:#fff;--border:#ddd;--text:#333;--text-heading:#111;--text-muted:#4a4a4a;--accent:#0288d1;--accent-hover:#0277bd;--badge-bg:#e8e8e8;--header-bg:#f5f5f5d9;--header-bg-scrolled:#f5f5f5f2;--link-hover-bg:#eee;--shimmer-mid:#e0e0e0;--error-border:#ef535033;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:-1;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;position:fixed;inset:0}a{color:var(--accent);text-decoration:none}.skip-link{background:var(--accent);color:#000;z-index:1000;border-radius:0 0 8px 8px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;position:absolute;top:-9999px;left:-9999px}.skip-link:focus{top:0;left:1rem}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0a;--bg-secondary:#111;--card:#1a1a1a;--border:#2a2a2a;--text:#e0e0e0;--text-heading:#fff;--text-muted:#888;--accent:#4fc3f7;--accent-hover:#81d4fa;--badge-bg:#252525;--header-bg:#0a0a0ad9;--header-bg-scrolled:#0a0a0af2;--shimmer-mid:#2a2a2a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f5f5f5;--bg-secondary:#eee;--card:#fff;--border:#ddd;--text:#333;--text-heading:#111;--text-muted:#666;--accent:#0288d1;--accent-hover:#0277bd;--badge-bg:#e8e8e8;--header-bg:#f5f5f5d9;--header-bg-scrolled:#f5f5f5f2;--shimmer-mid:#e0e0e0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{overflow-x:hidden}body{background:var(--bg);color:var(--text);flex-direction:column;min-height:100vh;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}header h1{letter-spacing:-.02em;background:linear-gradient(135deg,#4fc3f7 0%,#ab47bc 35%,#ff7043 65%,#81d4fa 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(1.3rem,4vw,1.8rem);font-weight:600}header p{color:var(--text-muted);margin-top:.4rem;font-size:.95rem}.projects{flex:1;grid-template-columns:1fr;gap:2rem;width:100%;max-width:900px;margin:2rem auto;padding:0 1.5rem;display:grid}@media (min-width:720px){.projects{grid-template-columns:repeat(2,1fr)}}.theme-toggle{background:var(--card);border:1px solid var(--border);cursor:pointer;z-index:101;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;display:flex;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}#scroll-progress{background:var(--accent);z-index:101;pointer-events:none;width:0%;height:3px;position:fixed;top:0;left:0}@keyframes headerMesh{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}header{text-align:center;z-index:100;background:var(--header-bg);-webkit-backdrop-filter:blur(12px);padding:2.5rem 1rem 1rem;transition:padding .3s,background .3s;position:sticky;top:0;overflow:hidden}header:after{content:"";pointer-events:none;z-index:-1;background:linear-gradient(135deg,#4fc3f70f,#ab47bc0a,#4fc3f70f) 0 0/400% 400%;animation:20s infinite headerMesh;position:absolute;inset:0}header.scrolled{background:var(--header-bg-scrolled);border-bottom:1px solid var(--border);padding:1rem 1rem .6rem}header h1{letter-spacing:-.02em;background:linear-gradient(135deg,#4fc3f7 0%,#ab47bc 35%,#ff7043 65%,#81d4fa 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 20px #4fc3f74d)drop-shadow(0 0 40px #ab47bc26);-webkit-background-clip:text;background-clip:text;font-size:clamp(1.3rem,4vw,1.8rem);font-weight:600;transition:font-size .3s}header p{color:var(--text-muted);margin-top:.4rem;font-size:.95rem;transition:font-size .3s,margin .3s}header.scrolled p{margin-top:.2rem;font-size:.8rem}.header-controls{justify-content:center;align-items:center;gap:1.5rem;margin-top:.6rem;display:flex}header.scrolled .header-controls{margin-top:.3rem}.header-nav{gap:1rem;display:flex}.header-nav a{color:var(--text-muted);letter-spacing:.02em;font-size:.8rem;font-weight:500;text-decoration:none;transition:color .2s}.header-nav a:hover{color:var(--accent)}.header-nav a.active{color:var(--accent);position:relative}.header-nav a.active:after{content:"";background:var(--accent);border-radius:1px;height:2px;position:absolute;bottom:-4px;left:0;right:0}.theme-toggle{background:var(--card);border:1px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--text-muted);z-index:101;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;line-height:1;transition:color .2s,border-color .2s,width .3s,height .3s,font-size .3s;display:flex;position:absolute;top:50%;right:1rem;transform:translateY(-50%)}header.scrolled .theme-toggle{width:30px;height:30px;font-size:.85rem}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.hamburger{background:var(--card);border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--text);z-index:101;border-radius:6px;justify-content:center;align-items:center;font-size:1rem;display:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}@media (max-width:480px){.header-nav{display:none}.hamburger{display:flex}header{padding:1.5rem 1rem .8rem}header.scrolled{padding:.8rem 1rem .5rem}header h1{font-size:1.3rem}header p{margin-top:.2rem;font-size:.8rem}}.mobile-nav-overlay{z-index:200;opacity:0;pointer-events:none;background:#000000d9;flex-direction:column;justify-content:center;align-items:center;transition:opacity .3s,transform .3s;display:flex;position:fixed;inset:0;transform:translate(100%)}.mobile-nav-overlay.active{opacity:1;pointer-events:auto;transform:translate(0)}.mobile-nav-close{color:#fff;cursor:pointer;background:0 0;border:none;padding:.5rem;font-size:2rem;line-height:1;position:absolute;top:1.5rem;right:1.5rem}.mobile-nav-links{text-align:center;flex-direction:column;gap:2rem;display:flex}.mobile-nav-links a{color:#fff;font-size:1.5rem;font-weight:600;text-decoration:none;transition:color .2s}.mobile-nav-links a:hover{color:var(--accent)}.projects{flex:1;grid-template-columns:1fr;gap:2rem;width:100%;max-width:900px;margin:2rem auto;padding:0 1.5rem;display:grid;overflow:hidden}@media (min-width:720px){.projects{grid-template-columns:repeat(2,1fr)}}.projects .card:nth-child(2){--fade-delay:.3s}.projects .card:nth-child(3){--fade-delay:.4s}.projects .card:nth-child(4){--fade-delay:.5s}.projects .card:nth-child(5){--fade-delay:.6s}.projects .card:nth-child(6){--fade-delay:.7s}.projects .card:nth-child(7){--fade-delay:.8s}.card{--shimmer-delay:var(--fade-delay,0s);background:var(--card);border:1px solid var(--border);will-change:transform;border-radius:10px;outline:none;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}.card:focus-visible{box-shadow:0 0 0 3px var(--accent)}.card:hover{box-shadow:0 8px 40px #3d5a7326,0 0 20px #c0ccd614}.card:before{content:"";z-index:-1;opacity:0;background:linear-gradient(90deg,#3d5a73,#7a8a98,#c0ccd6,#7a8a98,#3d5a73) 0 0/400% 100%;border-radius:12px;transition:opacity .4s;animation:8s linear infinite gradientShift;position:absolute;inset:-2px}.card:hover:before,.card:focus-visible:before{opacity:.35}@keyframes gradientShift{0%{background-position:0%}to{background-position:400%}}.card-img{aspect-ratio:16/9;background:var(--bg-secondary);border-radius:10px 10px 0 0;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 24px #0006,0 1px 4px #0000004d,inset 0 1px #ffffff0a}.card-img:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(#0000001a 0%,#0000004d 100%);position:absolute;inset:0}.card-img img{object-fit:cover;width:100%;height:100%;transition:opacity .3s}.card-img .carousel{background:linear-gradient(135deg,#1a1520 0%,#2d1f3a 50%,#1a2030 100%) 0 0/cover}.card-img .carousel:after{content:"";background:linear-gradient(transparent 0%, var(--card) 100%);pointer-events:none;z-index:1;height:40%;position:absolute;bottom:0;left:0;right:0}.card-body{padding:1.2rem}.card-body h2{color:var(--text-heading);letter-spacing:-.02em;flex-wrap:wrap;align-items:baseline;gap:.4rem;margin-bottom:.5rem;font-size:clamp(1.2rem,3.5vw,1.6rem);font-weight:600;display:flex}.card-body h2 .subtitle{color:var(--text-muted);letter-spacing:0;width:100%;margin-top:.15rem;font-size:.8rem;font-weight:400;display:block}.card-body .desc{color:var(--text-muted);margin-bottom:.4rem;font-size:.9rem;line-height:1.5}.card-updated{color:var(--text-muted);opacity:.7;margin-bottom:.75rem;font-size:.72rem}.ci-badge{margin-left:.3rem;font-size:.75rem;font-weight:600}.ci-badge.ci-success{color:#66bb6a}.ci-badge.ci-failure{color:#ef5350}.tech{flex-wrap:wrap;gap:6px;margin-bottom:1.2rem;display:flex}.tech span{background:var(--badge-bg);color:var(--text);border:1px solid var(--border);border-radius:20px;padding:3px 10px;font-size:.72rem}.buttons{gap:.75rem;display:flex}.btn{text-align:center;border:1px solid var(--border);color:var(--text);border-radius:8px;flex:1;padding:.55rem 1rem;font-size:.85rem;font-weight:500;transition:background .15s,color .15s}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:#000;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover)}.btn:not(.btn-primary):hover{background:var(--badge-bg)}.test-badge{color:#a5d6a7;background:#1a2b1a;border:1px solid #2e5930;border-radius:20px;align-items:center;gap:4px;margin-bottom:1rem;padding:3px 10px;font-size:.72rem;font-weight:500;display:inline-flex}[data-theme=light] .test-badge{color:#2e7d32}.card-img-gradient:before,.card-img-gradient-audio:before,.card-img-gradient-inky:before,.card-img-gradient-compresso:before{display:none}.card-img-gradient{background:linear-gradient(135deg,#4fc3f7 0%,#ab47bc 35%,#ff7043 65%,#81d4fa 100%);justify-content:center;align-items:center;display:flex}.card-img-gradient-audio{background:linear-gradient(135deg,#7b1fa2 0%,#ec407a 50%,#ff7043 100%);justify-content:center;align-items:center;display:flex}.card-img-gradient-inky{background:linear-gradient(135deg,#004d40 0%,#00796b 40%,#26a69a 70%,#1a237e 100%);justify-content:center;align-items:center;display:flex}.card-img-gradient-compresso{background:linear-gradient(135deg,#00695c 0%,#26a69a 45%,#5e35b1 100%);justify-content:center;align-items:center;display:flex}.card-meta-badges{gap:.5rem;margin-bottom:.5rem;display:flex}.card-meta-badge{color:var(--text-muted);font-size:.7rem}.card-img-text{color:#fff;text-shadow:0 2px 12px #0000004d;letter-spacing:-.02em;font-size:1.6rem;font-weight:700}.btn-disabled{opacity:.5;pointer-events:none;cursor:default}.card[data-link]{cursor:pointer}.card-img-badges{z-index:2;flex-wrap:wrap;gap:6px;display:flex;position:absolute;bottom:12px;left:10px}.card-img-badge{color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:12px;padding:2px 8px;font-size:.65rem;font-weight:600}.card-img-badge.blue{background:#2196f3b3}.card-img-badge.green{background:#4caf50b3}.card-img-badge.orange{background:#ff9800b3}.lang-bar{margin-bottom:.75rem}.lang-bar-track{background:var(--border);border-radius:2px;height:4px;position:relative;overflow:hidden}.lang-bar-fill{border-radius:2px;height:100%;display:flex;overflow:hidden}.lang-bar-fill span{filter:blur(.3px);min-width:2px;height:100%;transition:width .6s ease-out;position:relative}.lang-tooltip{background:var(--card);border:1px solid var(--border);color:var(--text);white-space:nowrap;pointer-events:none;z-index:10;border-radius:4px;padding:4px 8px;font-size:.7rem;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 12px #0000004d}.lang-tooltip:after{content:"";border:4px solid #0000;border-top-color:var(--border);position:absolute;top:100%;left:50%;transform:translate(-50%)}.lang-legend{flex-wrap:wrap;gap:.5rem;margin-top:.35rem;display:flex}.lang-total{color:var(--text);margin-right:.3rem;font-size:.72rem;font-weight:600}.lang-legend-item{color:var(--text-muted);align-items:center;gap:.25rem;font-size:.65rem;display:flex}.lang-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.heatmap-row{gap:2px;margin-top:.4rem;margin-bottom:.3rem;display:flex}.heatmap-cell{background:var(--border);opacity:0;border-radius:2px;flex:1;height:10px;transition:background .2s,opacity .3s}.heatmap-cell.active{opacity:1}.filter-bar{flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:900px;margin:1rem auto 0;padding:0 1.5rem;display:flex}.filter-pill{background:var(--badge-bg);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:20px;padding:5px 14px;font-family:inherit;font-size:.75rem;transition:background .2s,color .2s,border-color .2s}[data-theme=light] .filter-pill{color:#1a1a1a;background:#d4d4d4;border-color:#bbb}.filter-pill:hover{border-color:var(--accent);color:var(--text)}.filter-pill.active{background:var(--accent);color:#000;border-color:var(--accent)}.card.filter-hidden{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .3s,transform .3s;position:absolute;transform:scale(.95)}.card.filter-visible{opacity:1;visibility:visible;transition:opacity .3s,transform .3s;position:relative;transform:scale(1)}@media (max-width:719px){.projects{gap:1.5rem;padding:0 1rem}}@media (max-width:480px){.card-body{padding:.8rem}.card-body h2{font-size:1.1rem}.card-body .desc{font-size:.8rem;line-height:1.4}.tech span{padding:2px 8px;font-size:.65rem}.card-highlight{font-size:.7rem}.card-updated,.test-badge{font-size:.65rem}.btn{padding:.45rem .8rem;font-size:.8rem}}.card-dots{display:none}.card-dot{background:var(--border);border-radius:50%;width:8px;height:8px;transition:background .2s}.card-dot.active{background:var(--accent)}.also-active-section{width:100%;max-width:900px;margin:0 auto 2rem;padding:0 1.5rem}.also-active-section h2{color:var(--text-heading);text-align:center;margin-bottom:.3rem;font-size:1.3rem;font-weight:600}.also-active-sub{color:var(--text-muted);text-align:center;margin-bottom:1.2rem;font-size:.85rem}.also-active-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (min-width:720px){.also-active-grid{grid-template-columns:repeat(2,1fr)}}.repo-mini-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.9rem 1rem;transition:transform .2s,border-color .2s}.repo-mini-card:hover{border-color:var(--accent);transform:translateY(-2px)}.repo-mini-card h3{align-items:center;gap:.5rem;margin-bottom:.35rem;font-size:1rem;font-weight:600;display:flex}.repo-mini-card h3 a{color:var(--accent)}.repo-mini-card h3 a:hover{color:var(--accent-hover)}.repo-mini-fork-badge{color:var(--text-muted);background:var(--badge-bg);border:1px solid var(--border);border-radius:12px;padding:1px 7px;font-size:.62rem;font-weight:500}.repo-mini-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:.6rem;font-size:.82rem;line-height:1.4;display:-webkit-box;overflow:hidden}.repo-mini-meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.72rem;display:flex}.repo-mini-lang{align-items:center;gap:.3rem;display:inline-flex}.repo-mini-link{color:var(--accent);font-weight:500}.repo-mini-link:hover{color:var(--accent-hover)}.repo-mini-skeleton .skeleton-line{background:linear-gradient(90deg, var(--card) 25%, var(--shimmer-mid) 37%, var(--card) 63%);background-size:400% 100%;border-radius:4px;height:.8rem;margin-bottom:.55rem;animation:1.8s ease-in-out infinite shimmer}.repo-mini-skeleton .skeleton-line-title{width:40%;height:1rem}.repo-mini-skeleton .skeleton-line-meta{width:60%;margin-bottom:0}.repo-mini-card.filter-hidden{display:none}.carousel{touch-action:pan-y;width:100%;height:100%;position:relative}.carousel-slide{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .6s;position:absolute;inset:0}.carousel-slide.active{opacity:1}@keyframes kenBurns{0%{transform:scale(1)}to{transform:scale(1.05)}}.carousel-slide.active.kb-zoom{animation:3.5s ease-out forwards kenBurns}.carousel-dots{z-index:2;gap:4px;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.dot{cursor:pointer;background:#ffffff4d;border-radius:50%;width:6px;height:6px;transition:background .2s}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.3)}}.dot.active{background:#fff;animation:2s ease-in-out infinite dotPulse}.dot:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (max-width:719px){.dot{box-sizing:content-box;width:5px;height:5px;padding:6px}}.timeline-section{width:100%;max-width:700px;margin:.5rem auto 1.5rem;padding:0 1.5rem}.timeline-section h2{color:var(--text-heading);text-align:center;margin-bottom:1rem;font-size:clamp(1.1rem,3vw,1.3rem);font-weight:600}.timeline{padding:1rem 0;position:relative}.timeline-line{background:var(--border);width:2px;position:absolute;top:0;bottom:0;left:8px}.timeline-item{margin-bottom:1rem;padding-left:32px;position:relative}.timeline-dot{background:var(--card);border:2px solid var(--accent);border-radius:50%;width:14px;height:14px;position:absolute;top:4px;left:2px}.timeline-content{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:.6rem .85rem}.commit-msg{color:var(--text);word-break:break-word;margin-bottom:.35rem;font-size:.82rem;line-height:1.4}.commit-msg.expandable{cursor:pointer}.commit-msg.expandable:hover{color:var(--accent)}.repo-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:12px;padding:2px 8px;font-size:.7rem;font-weight:600;transition:box-shadow .2s}.repo-megabonk{color:#e1f5fe;background:#1a2a33}.repo-volttracker{color:#c8e6c9;background:#1a2b1a}.repo-landing-page{color:#e1bee7;background:#2a1a2e}.repo-satellite_processor{color:#ffe0b2;background:#2e2415}.repo-audiowhisper{color:#f8bbd0;background:#2e1520}.repo-dynamic{background:hsl(var(--repo-hue) 35% 16%);color:hsl(var(--repo-hue) 65% 85%)}[data-theme=light] .repo-megabonk{color:#0277bd}[data-theme=light] .repo-volttracker{color:#2e7d32}[data-theme=light] .repo-landing-page{color:#7b1fa2}[data-theme=light] .repo-satellite_processor{color:#e65100}[data-theme=light] .repo-audiowhisper{color:#c2185b}[data-theme=light] .repo-dynamic{background:hsl(var(--repo-hue) 45% 90%);color:hsl(var(--repo-hue) 85% 28%)}.repo-megabonk:hover{box-shadow:0 0 8px #4fc3f780}.repo-volttracker:hover{box-shadow:0 0 8px #4caf5080}.repo-landing-page:hover{box-shadow:0 0 8px #ab47bc80}.repo-satellite_processor:hover{box-shadow:0 0 8px #ff980080}.repo-audiowhisper:hover{box-shadow:0 0 8px #e91e6380}.repo-dynamic:hover{box-shadow:0 0 8px hsl(var(--repo-hue) 70% 60% / .5)}.commit-meta{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.stat-add{color:#66bb6a;font-family:monospace;font-size:.7rem;font-weight:600}.stat-del{color:#ef5350;font-family:monospace;font-size:.7rem;font-weight:600}.commit-time{color:var(--timeline-muted,#aaa);margin-left:auto;font-size:.72rem}.timeline-empty{text-align:center;color:var(--text-muted);padding:2rem 0;font-size:.9rem}a.timeline-link{color:inherit;text-decoration:none;transition:background .15s;display:block}a.timeline-link:hover{background:var(--link-hover-bg)}.view-all-link{text-align:center;color:var(--text-muted);margin-top:1.5rem;font-size:.85rem;text-decoration:none;transition:color .2s;display:block}.view-all-link:hover{color:var(--accent)}@media (min-width:720px){.timeline-line{left:50%;transform:translate(-50%)}.timeline-item{width:50%;padding-left:0}.timeline-item.left{text-align:right;padding-right:32px}.timeline-item.left .timeline-dot{left:auto;right:-7px}.timeline-item.left .timeline-content{text-align:left}.timeline-item.right{margin-left:50%;padding-left:32px}.timeline-item.right .timeline-dot{left:-7px}}.timeline-section{--fade-delay:.9s}.stats-bar,.tech-grid-section,.timeline-section{border-top:1px solid var(--border);padding-top:2rem}.stats-bar{justify-content:center;gap:2.5rem;max-width:700px;margin:.5rem auto 1.5rem;padding:1rem;display:flex}.stat{flex-direction:column;align-items:center;gap:.15rem;display:flex}.stat-value{font-variant-numeric:tabular-nums;background:linear-gradient(135deg,#4fc3f7 0%,#ab47bc 35%,#ff7043 65%,#81d4fa 100%);-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 0 12px #4fc3f740);-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:500;transition:opacity .4s}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}@keyframes counterBounce{0%{transform:scale(1)}40%{transform:scale(1.1)}to{transform:scale(1)}}.stat-value.bounce{animation:.3s ease-out counterBounce}@media (max-width:480px){.stats-bar{gap:1.5rem}.stat-value{font-size:1.2rem}}@media (max-width:360px){.stats-bar{flex-direction:column;gap:1rem}}.stats-bar{--fade-delay:.7s}.tech-grid-section{max-width:900px;margin:0 auto 1.5rem;padding:0 1.5rem}.tech-grid-section h2{color:var(--text-heading);text-align:center;margin-bottom:1.2rem;font-size:clamp(1.1rem,3vw,1.3rem);font-weight:600}.tech-grid{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}@media (min-width:720px){.tech-grid{grid-template-columns:repeat(5,1fr)}}@media (min-width:900px){.tech-grid{grid-template-columns:repeat(6,1fr)}}.tech-item{background:var(--card);border:1px solid var(--border);color:var(--text-muted);border-radius:6px;align-items:center;gap:.4rem;padding:.4rem .6rem;font-size:.74rem;transition:border-color .2s,transform .2s;display:flex}.tech-item:hover{border-color:var(--tc,var(--accent));transform:translateY(-2px)}.tech-item svg{flex-shrink:0}.tech-icon{flex-shrink:0;font-size:1rem}@media (max-width:480px){.tech-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width:360px){.tech-grid{grid-template-columns:repeat(2,1fr)}}.tech-grid-section{--fade-delay:.8s}.tech-grid .tech-item:first-child{--tc:#3178c6}.tech-grid .tech-item:nth-child(2){--tc:#3572a5}.tech-grid .tech-item:nth-child(3){--tc:#f7df1e}.tech-grid .tech-item:nth-child(4){--tc:#e44d26}.tech-grid .tech-item:nth-child(5){--tc:#000}.tech-grid .tech-item:nth-child(6){--tc:#646cff}.tech-grid .tech-item:nth-child(7){--tc:#ff6384}.tech-grid .tech-item:nth-child(8){--tc:#199900}.tech-grid .tech-item:nth-child(9){--tc:#336791}.tech-grid .tech-item:nth-child(10){--tc:#fdb515}.tech-grid .tech-item:nth-child(11){--tc:#d82c20}.tech-grid .tech-item:nth-child(12){--tc:#2496ed}.tech-grid .tech-item:nth-child(13){--tc:#2088ff}.tech-grid .tech-item:nth-child(14){--tc:#f38020}.tech-grid .tech-item:nth-child(15){--tc:#2ead33}.tech-grid .tech-item:nth-child(16){--tc:#729b1b}.lightbox:not([open]){display:none}.lightbox{z-index:1000;cursor:zoom-out;background:#000000e6;border:none;justify-content:center;align-items:center;width:100vw;max-width:none;height:100vh;max-height:none;padding:0;display:flex}.lightbox::backdrop{background:#000000e6}.lightbox-close{color:#fff;cursor:pointer;z-index:1001;background:#333;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:2rem;line-height:1;transition:background .2s;display:flex;position:absolute;top:1rem;right:1rem}.lightbox-close:hover,.lightbox-close:focus-visible{background:#555;outline:2px solid #fff}.lightbox img{border-radius:8px;max-width:90vw;max-height:90vh;box-shadow:0 0 60px #00000080}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background:linear-gradient(90deg, var(--card) 25%, var(--shimmer-mid) 37%, var(--card) 63%);background-size:200% 100%;animation:1.8s ease-in-out infinite shimmer}.timeline-loading{padding-left:32px;transition:opacity .4s}.timeline-loading.fade-out{opacity:0}.skeleton-item{border:1px solid var(--border);background:linear-gradient(90deg, var(--card) 25%, var(--shimmer-mid) 37%, var(--card) 63%);background-size:200% 100%;border-radius:8px;height:52px;margin-bottom:1rem;animation:1.8s ease-in-out infinite shimmer}.stat-value.shimmer-placeholder{background:linear-gradient(90deg, var(--card) 25%, var(--shimmer-mid) 37%, var(--card) 63%);-webkit-text-fill-color:transparent;color:#0000;background-size:200% 100%;-webkit-background-clip:padding-box;background-clip:padding-box;border-radius:4px;width:4rem;height:1.5rem;animation:1.8s ease-in-out infinite shimmer;display:inline-block}.lang-bar-track.shimmer-track .lang-bar-fill{background:linear-gradient(90deg, var(--card) 25%, var(--shimmer-mid) 37%, var(--card) 63%);width:100%;animation:1.8s ease-in-out infinite shimmer;animation-delay:var(--shimmer-delay,0s);background-size:200% 100%}.skeleton-fade{transition:opacity .4s}.skeleton-fade.fade-out{opacity:0}.content-fade-in{animation:.4s forwards contentAppear}@keyframes contentAppear{0%{opacity:0}to{opacity:1}}.fade-in{opacity:0;transition:opacity .6s,transform .6s;transition-delay:var(--fade-delay,0s);transform:translateY(24px)}.fade-in.visible{opacity:1;transform:translateY(0)}#scroll-progress{background:var(--accent);z-index:101;pointer-events:none;width:0%;height:3px;transition:width .1s linear;position:fixed;top:0;left:0}.error-state{text-align:center;background:var(--card);border:1px solid var(--error-border);border-radius:8px;padding:1.5rem 1rem}.error-state p{color:var(--text-muted);margin-bottom:.75rem;font-size:.85rem}.error-state .error-icon{margin-bottom:.5rem;font-size:1.3rem}.retry-btn{color:var(--accent);border:1px solid var(--accent);cursor:pointer;background:0 0;border-radius:6px;padding:.4rem 1.2rem;font-family:inherit;font-size:.8rem;font-weight:500;transition:background .15s,color .15s;display:inline-block}.retry-btn:hover{background:var(--accent);color:#000}footer{text-align:center;color:var(--text-muted);padding:1.2rem 1rem;font-size:.8rem}.footer-content{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.footer-github{color:var(--text-muted);transition:color .2s}.footer-github:hover{color:var(--accent)}.footer-divider{color:var(--border)}.footer-built{color:var(--text-muted)}.back-to-top{background:var(--card);border:1px solid var(--border);width:40px;height:40px;color:var(--text);cursor:pointer;opacity:0;pointer-events:none;z-index:50;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;transition:opacity .3s,background .2s;display:flex;position:fixed;bottom:2rem;right:2rem}.back-to-top.visible{opacity:1;pointer-events:auto}.back-to-top:hover{background:var(--accent);color:#000}.parallax-mesh{z-index:-1;pointer-events:none;will-change:transform;background:radial-gradient(600px 400px at 20% 30%,#4fc3f70a,#0000),radial-gradient(500px 500px at 80% 70%,#ab47bc08,#0000),radial-gradient(400px 300px,#ff704305,#0000);transition:transform .1s linear;position:fixed;inset:0}@media (max-width:720px){.parallax-mesh{display:none}}body.page-exit{opacity:0;transition:opacity .3s}@media (prefers-reduced-motion:reduce){.fade-in{opacity:1;transition:none;transform:none}header:after{animation:none}.card:hover{transform:none}.carousel-slide{transition:none}.carousel-slide.active.kb-zoom,.dot.active,.skeleton-item,.shimmer,.shimmer-placeholder{animation:none}}@media (min-width:1024px){body{font-size:17px}.projects,.tech-grid-section{max-width:1100px}.stats-bar,.timeline-section{max-width:900px}}@keyframes subtitleFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (min-width:1024px){header{padding:3.5rem 1rem 2rem}header h1{font-size:clamp(1.3rem,4vw,2.2rem)}header p{animation:.8s ease-out both subtitleFadeUp}.card-img{transition:transform .3s;overflow:hidden}.card:hover .card-img{transform:scale(1.02)}.card{-webkit-backdrop-filter:blur(8px);background:#1a1a1ad9}[data-theme=light] .card{background:#ffffffd9}}@media (min-width:720px){.heatmap-cell{border-radius:3px;height:14px}.timeline-content{transition:transform .2s,box-shadow .2s}.timeline-item.left:hover .timeline-content{transform:translate(-4px);box-shadow:0 4px 16px #0003}.timeline-item.right:hover .timeline-content{transform:translate(4px);box-shadow:0 4px 16px #0003}}@media (max-width:480px){.back-to-top{width:36px;height:36px;font-size:1rem;bottom:1rem;right:1rem}}@media (min-width:1024px){.tech-grid-section h2,.timeline-section h2{letter-spacing:.08em;text-transform:uppercase}}.wave-divider{width:100%;height:36px;line-height:0;overflow:hidden}.wave-divider svg{width:200%;height:100%;animation:12s linear infinite waveShift;display:block}.wave-divider path{fill:var(--accent);opacity:.12}@keyframes waveShift{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.wave-divider svg{width:100%;animation:none}}.progress-dots{display:none}@media (max-width:720px){.progress-dots{z-index:90;flex-direction:column;gap:8px;display:flex;position:fixed;top:50%;right:10px;transform:translateY(-50%)}.progress-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:background .3s,transform .3s}.progress-dot.active{background:var(--accent);transform:scale(1.3)}}
