:root{--bg: #0a0a0a;--bg-secondary: #111111;--surface: #1a1a1a;--surface-elevated: #252525;--glass-bg: rgba(20, 20, 20, .5);--glass-border: rgba(255, 255, 255, .08);--glass-blur: 14px;--card: #1e1e1e;--card-hover: #2a2a2a;--muted: #a0a0a0;--text: #ffffff;--text-secondary: #e0e0e0;--accent: #ff6b35;--accent-secondary: #ff8a50;--accent-glow: rgba(255, 107, 53, .3);--success: #22c55e;--border: #333333;--border-light: #404040;--gradient-primary: linear-gradient(135deg, #ff6b35 0%, #f7931e 100%);--gradient-secondary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-dark: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .15);--shadow-md: 0 8px 32px rgba(0, 0, 0, .25);--shadow-lg: 0 16px 64px rgba(0, 0, 0, .35);--shadow-glow: 0 0 32px var(--accent-glow);--radius: 16px;--radius-sm: 12px;--radius-lg: 24px;--container: 1200px;--transition-fast: .2s cubic-bezier(.4, 0, .2, 1);--transition-med: .4s cubic-bezier(.4, 0, .2, 1);--transition-slow: .8s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}#app:focus,#app:focus-visible{outline:none!important;box-shadow:none!important}:where(a,button,input,textarea,select,[tabindex]){outline:none}:where(a,button,input,textarea,select,#app):focus-visible{outline:2px solid var(--accent);outline-offset:3px;box-shadow:0 0 0 6px var(--accent-glow);border-radius:var(--radius-sm)}#home :where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:none!important;box-shadow:none!important}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(600px circle at 20% 30%,rgba(255,107,53,.05) 0%,transparent 50%),radial-gradient(800px circle at 80% 70%,rgba(102,126,234,.05) 0%,transparent 50%),radial-gradient(400px circle at 40% 80%,rgba(255,139,80,.03) 0%,transparent 50%);z-index:-1;animation:backgroundShift 20s ease-in-out infinite}body:after{content:"";position:fixed;inset:0;z-index:-2;background-image:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.5) 50%,transparent 51%),radial-gradient(1px 1px at 70% 60%,rgba(255,255,255,.45) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 40% 80%,rgba(255,255,255,.35) 50%,transparent 51%),radial-gradient(.8px .8px at 80% 20%,rgba(255,255,255,.4) 50%,transparent 51%),radial-gradient(1px 1px at 10% 70%,rgba(255,255,255,.35) 50%,transparent 51%);background-repeat:no-repeat;animation:starDrift 60s linear infinite;opacity:.4;pointer-events:none}html:before{content:"";position:fixed;width:200px;height:2px;top:-10%;left:110%;background:linear-gradient(90deg,#fff0,#fff9,#fff0);transform:rotate(-20deg);filter:blur(1px);opacity:.18;animation:cometFly 35s linear infinite;animation-delay:5s;pointer-events:none;z-index:-1}@keyframes backgroundShift{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(-20px,-10px) rotate(1deg)}66%{transform:translate(20px,10px) rotate(-1deg)}}@keyframes starDrift{0%{transform:translateY(0) translate(0)}50%{transform:translateY(-10px) translate(-6px)}to{transform:translateY(0) translate(0)}}@keyframes cometFly{0%{transform:translate(0) rotate(-20deg)}8%{transform:translate(-130vw,45vh) rotate(-20deg)}to{transform:translate(-130vw,45vh) rotate(-20deg)}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--accent);border-radius:3px}header{position:sticky;top:0;z-index:100;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(180%);border-bottom:1px solid var(--glass-border);box-shadow:var(--shadow-md)}.header-inner{max-width:var(--container);margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;gap:2rem}.brand{display:flex;flex-direction:column;align-items:flex-start}.brand h1{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.brand h2{font-size:.875rem;color:var(--muted);font-weight:500;margin-top:.25rem}nav{display:flex;gap:.5rem;align-items:center}.nav-link{display:flex;align-items:center;padding:.75rem 1.25rem;border-radius:var(--radius-sm);font-weight:600;font-size:.875rem;color:var(--text-secondary);text-decoration:none;transition:all var(--transition-fast);position:relative;overflow:hidden}.nav-link:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--gradient-primary);transition:left var(--transition-med);z-index:-1}.nav-link:hover:before,.nav-link[aria-current=page]:before{left:0}.nav-link:hover,.nav-link[aria-current=page]{color:var(--text);transform:translateY(-1px);box-shadow:var(--shadow-glow)}.nav-link:focus-visible{color:var(--text);box-shadow:var(--shadow-glow)}.menu-toggle{display:none;flex-direction:column;cursor:pointer;padding:.5rem}.menu-toggle span{width:25px;height:3px;background:var(--accent);margin:3px 0;transition:var(--transition-fast);border-radius:2px}main{min-height:calc(100vh - 140px);max-width:var(--container);margin:0 auto;padding:2rem 1.5rem;position:relative}.page{display:none;opacity:0;transform:translateY(20px)}.page.exit{position:absolute;inset:0;width:100%;pointer-events:none}.page.active{display:block}@media (prefers-reduced-motion: no-preference){.page.enter{animation:pageIn var(--transition-slow) both}.page.exit{animation:pageOut var(--transition-med) both}@keyframes pageIn{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pageOut{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.98)}}}.hero{padding:clamp(2rem,5vw,4rem);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(160%);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);position:relative;overflow:hidden;margin-bottom:3rem}.hero:before{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:conic-gradient(from 0deg at 50% 50%,transparent 0deg,var(--accent-glow) 60deg,transparent 120deg);animation:rotate 20s linear infinite;opacity:.1}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.hero-content{position:relative;z-index:2}.hero-grid{display:grid;grid-template-columns:70% 30%;align-items:center;gap:2rem;position:relative;z-index:2}.hero-visual{position:relative;justify-self:end;width:100%;max-width:clamp(240px,30vw,420px);aspect-ratio:1 / 1;filter:drop-shadow(0 10px 30px rgba(0,0,0,.25));animation:float 6s ease-in-out infinite;transform-style:preserve-3d;transition:transform var(--transition-fast);pointer-events:auto}.blob-svg{width:100%;height:auto;display:block;filter:drop-shadow(0 8px 22px rgba(0,0,0,.18));will-change:transform;transition:transform var(--transition-fast)}.hero-visual:hover{transform:scale(1.035)}.hero-sky{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.9}@keyframes slow-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.hero h1{font-size:clamp(2.5rem,6vw,4rem);font-weight:900;margin-bottom:1rem;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1}.hero p{font-size:clamp(1.1rem,2vw,1.3rem);color:var(--text-secondary);line-height:1.7;margin-bottom:2rem;max-width:600px}.cta-buttons{display:flex;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.btn-primary{background:var(--gradient-primary);color:#fff;padding:1rem 2rem;border:none;border-radius:var(--radius-sm);font-weight:700;font-size:1rem;cursor:pointer;transition:all var(--transition-fast);text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;box-shadow:var(--shadow-md)}.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg),var(--shadow-glow)}.btn-secondary{background:transparent;color:var(--accent);padding:1rem 2rem;border:2px solid var(--accent);border-radius:var(--radius-sm);font-weight:700;font-size:1rem;cursor:pointer;transition:all var(--transition-fast);text-decoration:none;display:inline-flex;align-items:center;gap:.5rem}.btn-secondary:hover{background:var(--accent);color:#fff;transform:translateY(-2px)}.skills-section{margin:3rem 0}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-top:2rem}.skill-category{background:#000000d9;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);padding:1.5rem;transition:all var(--transition-med);position:relative}.skill-category:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--accent)}.skill-category h4{color:var(--accent);margin-bottom:1rem;font-size:1.1rem;font-weight:700}.chips{display:flex;flex-wrap:wrap;gap:.75rem}.chip{background:var(--surface-elevated);color:var(--text-secondary);padding:.5rem 1rem;border-radius:50px;font-weight:600;font-size:.875rem;border:1px solid var(--border-light);transition:all var(--transition-fast);position:relative;overflow:hidden}.chip:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--gradient-primary);transition:left var(--transition-fast);z-index:-1}.chip:hover:before{left:0}.chip:hover{color:#fff;transform:translateY(-2px) scale(1.05)}.chips-more{overflow:hidden;transition:max-height var(--transition-med),opacity var(--transition-med)}.chips-more.collapsed{max-height:0;opacity:0}.btn-tertiary{background:transparent;color:var(--text-secondary);padding:.5rem .9rem;border:1px dashed var(--border-light);border-radius:999px;font-weight:600;font-size:.85rem;cursor:pointer;transition:all var(--transition-fast);margin-top:1rem}.btn-tertiary:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.grid{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-top:2rem;align-items:stretch}.grid .card{height:100%;display:flex;flex-direction:column}.card{background:#000000e6;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow-md);transition:all var(--transition-med);position:relative;overflow:hidden}.skill-category:after,.card:after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(180deg,#ffffff47,#ffffff0f);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.7;z-index:1}.skill-category:hover:after,.card:hover:after{opacity:1}.skill-category:before,.card:before{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#fff0,#ffffff59,#fff0);pointer-events:none;z-index:2;opacity:.9}@media (hover: hover) and (pointer: fine){.card:hover{transform:translateY(-8px) rotateX(.75deg) rotateY(-.75deg);box-shadow:var(--shadow-lg),0 0 0 2px var(--accent)}}.card h4{font-size:1.4rem;font-weight:700;margin-bottom:1rem;color:var(--text)}.card p{color:var(--muted);line-height:1.6;margin-bottom:1.5rem}.card-meta{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.tech-tag{background:var(--accent-glow);color:var(--accent);padding:.25rem .75rem;border-radius:50px;font-size:.75rem;font-weight:600}.card-cta{display:inline-flex;align-items:center;gap:.5rem;color:var(--accent);font-weight:700;text-decoration:none;transition:all var(--transition-fast)}.card-cta:after{content:"→";transition:transform var(--transition-fast)}.card-cta:hover:after{transform:translate(4px)}.quote{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius);padding:2rem;margin:3rem 0;position:relative;text-align:center;box-shadow:var(--shadow-md)}.inspo-popper{position:fixed;inset:0;pointer-events:none;z-index:200}.confetti{position:absolute;width:10px;height:10px;border-radius:2px;will-change:transform,opacity}@keyframes fallSpin{0%{opacity:1;transform:translate3d(var(--sx, 0),var(--sy, 0),0) rotate(0) scale(1)}to{opacity:0;transform:translate3d(var(--ex, 0),var(--ey, 300px),0) rotate(540deg) scale(.8)}}.hacker-font{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;letter-spacing:.01em}.quote:before{content:"";position:absolute;top:-10px;left:50%;transform:translate(-50%);font-size:4rem;color:var(--accent);opacity:.3;font-family:serif}.quote p{font-size:1.25rem;font-style:italic;color:var(--text-secondary);margin-bottom:1.5rem}.contact{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;margin-top:2rem}.contact-form{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow-md)}.form-group{margin-bottom:1.5rem}.field-error{border-color:#f87171!important;box-shadow:0 0 0 3px #f8717133!important}.error-text{color:#fca5a5;margin-top:.5rem;display:block;font-size:.85rem}label{display:block;font-weight:600;margin-bottom:.5rem;color:var(--text-secondary)}input,textarea{width:100%;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-sm);padding:1rem;color:var(--text);font-family:inherit;transition:all var(--transition-fast);outline:none}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}textarea{resize:vertical;min-height:120px}.contact-info{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow-md);height:fit-content}.contact-list{list-style:none;margin-top:1rem}.contact-list li{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border)}.contact-list li:last-child{border-bottom:none}.contact-icon{width:24px;height:24px;color:var(--accent)}.contact-list a{color:var(--text);text-decoration:none;font-weight:600;letter-spacing:.01em;transition:color var(--transition-fast),transform var(--transition-fast)}.contact-list a:hover,.contact-list a:focus-visible{color:var(--accent)}.contact-list li:hover .contact-icon{transform:translate(4px) scale(1.08)}@media (max-width: 1024px){.header-inner{padding:1rem}main{padding:1.5rem 1rem}.hero{padding:2rem 1.5rem}.hero-grid{grid-template-columns:1fr}.hero-visual{justify-self:center;margin-top:1rem}}@media (max-width: 768px){.menu-toggle{display:flex}nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--surface);flex-direction:column;padding:1rem;border-top:1px solid var(--border);box-shadow:var(--shadow-lg)}nav.open{display:flex}.nav-link{width:100%;justify-content:center;padding:1rem}.contact{grid-template-columns:1fr;gap:2rem}.cta-buttons{flex-direction:column;align-items:center}.btn-primary,.btn-secondary{width:100%;justify-content:center;max-width:300px}.skills-grid{grid-template-columns:1fr}.hero-content{padding-right:0}.hero-visual{position:static;transform:none;width:clamp(200px,60vw,360px);height:clamp(200px,60vw,360px);margin:0 auto}}@media (max-width: 480px){.hero{padding:1.5rem 1rem}.hero-visual{width:clamp(160px,45vw,220px);height:clamp(160px,45vw,220px)}.grid{grid-template-columns:1fr}.card{padding:1.5rem}}.section{margin:3rem 0}.section h3{font-size:2rem;font-weight:800;margin-bottom:1rem;color:var(--text)}.section .subtitle{color:var(--muted);font-size:1.1rem;margin-bottom:2rem}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reveal-on-scroll{opacity:0;transform:translateY(14px) scale(.98);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.reveal-on-scroll.revealed{opacity:1;transform:translateY(0) scale(1)}footer{border-top:1px solid var(--glass-border);background:#0006;backdrop-filter:blur(calc(var(--glass-blur) - 4px));padding:2rem 1rem;text-align:center;color:var(--muted);margin-top:4rem}.footer-content{max-width:var(--container);margin:0 auto}.social-links{display:flex;justify-content:center;gap:1rem;margin-bottom:1rem}.social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--card);border:1px solid var(--border);border-radius:50%;color:var(--muted);fill:currentColor;transition:all var(--transition-fast)}.social-link:hover{background:transparent;color:var(--accent);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 0 18px #ff6b3540}.contact-icon{width:24px;height:24px;fill:currentColor;transition:transform var(--transition-fast),color var(--transition-fast)}.projects-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:2rem}.github-overview{display:flex;gap:1.5rem;flex-shrink:0}.stat{text-align:center;padding:1rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-sm);backdrop-filter:blur(var(--glass-blur))}.stat-number{display:block;font-size:1.5rem;font-weight:700;color:var(--accent);margin-bottom:.25rem}.stat-label{font-size:.875rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.projects-controls{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2rem;flex-wrap:wrap;padding:1.5rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);backdrop-filter:blur(var(--glass-blur))}.filter-group{display:flex;flex-direction:column;gap:.5rem;flex:1;min-width:200px}.filter-group label{font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.25rem}.filter-select{padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.875rem;width:100%;transition:all var(--transition-fast)}.filter-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.refresh-github-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-weight:600;font-size:.875rem;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;flex-shrink:0;min-height:44px}.refresh-github-btn:hover{background:var(--accent-secondary);transform:translateY(-2px);box-shadow:var(--shadow-glow)}.refresh-github-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.refresh-github-btn svg{width:16px;height:16px;flex-shrink:0}.card.featured{background:linear-gradient(135deg,#ff6b351a,#ff6b350d)}.card{display:flex;flex-direction:column;height:100%;min-height:0;border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));border-radius:var(--radius);padding:1.5rem;transition:all var(--transition-fast);position:relative;overflow:hidden}.card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg),0 0 0 2px var(--accent)}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--gradient-primary);transform:scaleX(0);transition:all var(--transition-med);z-index:1}.card:hover:before{transform:scaleX(1);background:var(--accent);height:6px}.card-content{flex:1;min-height:0;display:flex;flex-direction:column;margin-bottom:1rem}.card-header{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.card-meta{display:flex;flex-wrap:wrap;gap:.5rem}.card-badges{display:flex;gap:.5rem;flex-wrap:wrap}.featured-badge{background:var(--accent);color:#fff;padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.github-badge{background:var(--surface);color:var(--text-secondary);padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:500;border:1px solid var(--border);white-space:nowrap}.card-title{font-size:1.25rem;font-weight:700;margin-bottom:.5rem;color:var(--text);line-height:1.3;word-wrap:break-word;overflow-wrap:break-word}.card-subtitle{color:var(--muted);font-size:.875rem;margin-bottom:.75rem;font-style:italic;line-height:1.4}.card-description{color:var(--text-secondary);line-height:1.6;margin-bottom:0;word-wrap:break-word;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;flex:1}.card-footer{margin-top:auto;margin-bottom:1rem}.github-metrics{display:flex;gap:1rem;margin-bottom:1rem;padding:.75rem;background:var(--surface);border-radius:var(--radius-sm);border:1px solid var(--border);flex-wrap:wrap;align-items:center;justify-content:space-between}.flex{display:flex}.gap-2{gap:.5rem}.metric{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary);flex-shrink:0;min-width:0}.metric svg{width:14px;height:14px;color:var(--accent);flex-shrink:0}.metric-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.card-impact{display:flex;align-items:start;gap:.5rem;color:var(--success);font-weight:600;font-size:.9rem;line-height:1.4}.card-impact svg{width:16px;height:16px;flex-shrink:0;margin-top:.15rem}.card-impact span{word-wrap:break-word;overflow-wrap:break-word}.card-actions{display:flex;gap:.75rem;margin-top:auto;flex-wrap:wrap}.card-cta{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius-sm);text-decoration:none;font-weight:600;font-size:.875rem;transition:all var(--transition-fast);flex:1;min-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-cta.primary{background:var(--accent);color:#fff;border:none}.card-cta.primary:hover{background:var(--accent-secondary);transform:translateY(-2px);box-shadow:var(--shadow-glow)}.card-cta.secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.card-cta.secondary:hover{border-color:var(--accent);color:var(--accent);background:#ff6b350d}.card-cta svg{width:16px;height:16px;flex-shrink:0}.card-cta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.github-footer{margin-top:3rem;padding:2rem;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);backdrop-filter:blur(var(--glass-blur));text-align:center}.github-footer p{color:var(--muted);margin-bottom:.5rem}.github-footer a{color:var(--accent);text-decoration:none;font-weight:500}.github-footer a:hover{text-decoration:underline}.no-projects{text-align:center;color:var(--muted);font-style:italic;padding:3rem 1rem}.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.projects-header{flex-direction:column;gap:1rem}.github-overview{width:100%;justify-content:space-around}.projects-controls{flex-direction:column;align-items:stretch;gap:1.5rem}.filter-group{width:100%;min-width:auto}.filter-select{width:100%}.refresh-github-btn{width:100%;justify-content:center}.card-header{flex-direction:column;align-items:stretch;gap:.75rem}.card-meta,.card-badges{justify-content:flex-start}.card-description{-webkit-line-clamp:2;line-clamp:2}.card-actions{flex-direction:column;gap:.5rem}.card-cta{width:100%;justify-content:center;min-width:auto}.github-metrics{flex-direction:column;gap:.75rem;align-items:stretch}.metric{justify-content:space-between;min-width:0}.metric-value{max-width:none;text-align:right}.card-title{font-size:1.125rem}.card-description{font-size:.9rem}}@media (max-width: 480px){.github-overview{flex-direction:column;gap:1rem}.stat{padding:.75rem}.stat-number{font-size:1.25rem}.card-header{gap:.5rem}.card-meta,.card-badges{gap:.375rem}.featured-badge,.github-badge{font-size:.7rem;padding:.2rem .4rem}.github-metrics{padding:.5rem;gap:.5rem}.metric{font-size:.8rem}.card-cta{padding:.625rem .875rem;font-size:.8rem}.projects-controls{gap:1rem}.filter-group{gap:.375rem}.filter-select{padding:.625rem .875rem}.refresh-github-btn{padding:.625rem 1.25rem;font-size:.8rem}}.pwa-update-notification{position:fixed;bottom:2rem;right:2rem;max-width:400px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-lg);z-index:1000;transform:translateY(100px);opacity:0;transition:all var(--transition-smooth);overflow:hidden;display:flex;flex-direction:column}.pwa-update-notification.visible{transform:translateY(0);opacity:1}.pwa-update-notification.hidden{transform:translateY(100px);opacity:0;pointer-events:none}.pwa-update-content{display:flex;align-items:flex-start;flex-direction:column;gap:1rem;padding:1.5rem}@media (max-width: 768px){.pwa-update-notification{bottom:1rem;right:1rem;left:1rem;max-width:none}.pwa-update-content{flex-direction:column;align-items:center;text-align:center}.pwa-update-actions{justify-content:center;flex-wrap:wrap}}@media (prefers-color-scheme: dark){.pwa-update-notification{background:#0a0a0af2;border-color:#ffffff1a}}
