:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a25;--bg-card: #15151f;--border: #2a2a3a;--text-primary: #f0f0f5;--text-secondary: #9090a0;--text-muted: #606070;--text-on-accent: #ffffff;--accent: #6366f1;--accent-hover: #7c3aed;--accent-glow: rgba(99, 102, 241, .3);--accent-10: rgba(99, 102, 241, .1);--accent-20: rgba(99, 102, 241, .2);--accent-40: rgba(99, 102, 241, .4);--accent-60: rgba(99, 102, 241, .6);--success: #22c55e;--success-10: rgba(34, 197, 94, .1);--warning: #f59e0b;--info: #06b6d4;--error: #ef4444;--gradient-1: linear-gradient(135deg, #6366f1, #8b5cf6);--gradient-2: linear-gradient(135deg, #06b6d4, #22c55e);--scrollbar-track: #12121a;--scrollbar-thumb: #2a2a35;--scrollbar-thumb-hover: #3a3a48;--overlay-bg: rgba(30, 30, 35, .95);--overlay-bg-hover: rgba(40, 40, 48, .98);--radius: 12px;--radius-sm: 8px}[data-theme=light]{--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-tertiary: #f1f5f9;--bg-card: #ffffff;--border: #e2e8f0;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-on-accent: #ffffff;--accent: #6366f1;--accent-hover: #4f46e5;--accent-glow: rgba(99, 102, 241, .2);--accent-10: rgba(99, 102, 241, .08);--accent-20: rgba(99, 102, 241, .12);--accent-40: rgba(99, 102, 241, .2);--accent-60: rgba(99, 102, 241, .35);--success: #16a34a;--success-10: rgba(22, 163, 74, .1);--warning: #d97706;--info: #0891b2;--error: #dc2626;--scrollbar-track: #f1f5f9;--scrollbar-thumb: #e2e8f0;--scrollbar-thumb-hover: #d1d5db;--overlay-bg: rgba(255, 255, 255, .95);--overlay-bg-hover: rgba(248, 250, 252, .98)}*{margin:0;padding:0;box-sizing:border-box}html{overflow-x:hidden;overflow-y:auto}body,#root{min-height:100vh;overflow:visible;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary)}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}@media(pointer:fine){html{overflow-x:auto}body{min-width:930px}}.portfolio{min-height:100vh;display:flex;flex-direction:column;padding:16px;gap:16px}.bento-grid-container{position:relative;flex:1;min-height:200px}.bento-grid,.react-grid-layout{position:relative}.react-grid-item.react-grid-placeholder{display:none}.bento-item{min-width:0;display:flex;height:100%}.bento-item>.card{flex:1;display:flex;flex-direction:column;overflow:hidden;transition:filter .5s cubic-bezier(.2,0,0,1),transform .5s cubic-bezier(.2,0,0,1),opacity .3s cubic-bezier(.2,0,0,1)}.bento-item.dimmed>.card{filter:blur(4px) brightness(.4);transform:scale(.98)}[data-theme=light] .bento-item.dimmed>.card{filter:blur(4px)}.bento-item.dimmed{pointer-events:none}.bento-item.invisible{visibility:hidden;pointer-events:none}.expanded-project-card{position:absolute;top:0;left:0;border-radius:var(--radius);overflow:hidden;pointer-events:auto;z-index:100;background:var(--bg-secondary);will-change:transform,width,height}.expanded-project-card:has(.case-study-open){overflow:visible}.expanded-project-card>.card{width:100%;height:auto;animation:none;opacity:1}.card{background:var(--bg-secondary);border-radius:var(--radius);padding:16px;animation:fadeIn .5s ease-out forwards}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.card-badge{font-size:10px;padding:4px 8px;background:var(--bg-tertiary);border-radius:4px;color:var(--text-muted)}.profile-card{text-align:center;justify-content:center}.avatar-container{position:relative;width:140px;height:140px;margin:0 auto 12px}.avatar{width:100%;height:100%;border-radius:50%;background:var(--gradient-1);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;object-fit:cover}.avatar-badge{position:absolute;bottom:2px;right:2px;width:20px;height:20px;background:var(--success);border:3px solid var(--bg-secondary);border-radius:50%}.profile-name{font-size:18px;font-weight:700;margin-bottom:4px}.profile-title{font-size:12px;color:var(--text-secondary);margin-bottom:8px}.profile-location{display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;color:var(--text-muted)}.contact-card{justify-content:center}.contact-card .contact-item{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:12px}.contact-card .contact-item:last-child{border-bottom:none;padding-bottom:0}.contact-card .contact-item:first-child{padding-top:0}.contact-icon{width:32px;height:32px;background:var(--bg-tertiary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.contact-label{color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px}.contact-value{color:var(--text-primary);font-weight:500;font-size:11px}.reveal-email-btn{background:var(--accent-10);border:1px solid var(--accent);color:var(--accent);font-size:11px;padding:4px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s ease;font-weight:500}.reveal-email-btn:hover{background:var(--accent-20)}.cv-download{color:var(--accent);text-decoration:none;cursor:pointer;transition:opacity .2s ease}.cv-download:hover{opacity:.8}.social-grid{display:flex;justify-content:center;align-items:center;gap:8px;flex:1}.social-btn{flex:1;aspect-ratio:1;background:var(--bg-tertiary);border:none;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;font-size:18px;color:var(--text-primary)}.social-btn:hover{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.education-item{padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-sm);flex:1;display:flex;flex-direction:column;justify-content:center}.certifications-list{display:flex;flex-direction:column;gap:8px}.certification-item{padding:10px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.education-degree,.certification-name{font-size:13px;font-weight:600;margin-bottom:2px}.education-school,.certification-issuer{font-size:11px;color:var(--accent);margin-bottom:2px}.education-year,.certification-year{font-size:10px;color:var(--text-muted)}.about-text{font-size:13px;line-height:1.7;color:var(--text-secondary)}.about-text strong{color:var(--text-primary)}.highlight{color:var(--accent);font-weight:500}.skills-chart{display:flex;flex-direction:column;gap:8px;flex:1;justify-content:space-between}.skill-row{display:flex;align-items:center;gap:10px}.skill-name{width:70px;font-size:10px;color:var(--text-secondary);font-family:JetBrains Mono,monospace}.skill-bar-container{flex:1;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.skill-bar{height:100%;border-radius:3px;transition:width 1s ease-out}.skill-years{width:40px;font-size:10px;font-family:JetBrains Mono,monospace;color:var(--text-muted);text-align:right}.timeline{display:flex;flex-direction:column;gap:8px;flex:1}.timeline-item{display:flex;gap:10px;flex:1}.timeline-marker{display:flex;flex-direction:column;align-items:center}.timeline-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0}.timeline-line{width:2px;flex:1;background:var(--border);margin-top:4px}.timeline-item.expanded .timeline-marker{position:relative}.timeline-item.expanded .timeline-dot{width:12px;height:12px;border:2px solid var(--accent);background:var(--bg-primary)}.timeline-item.expanded:first-child .timeline-dot{background:var(--accent);box-shadow:0 0 0 4px var(--accent-20)}.timeline-item.expanded .timeline-line{width:2px;background:linear-gradient(to bottom,var(--accent),var(--border))}.timeline-content{flex:1;padding-bottom:8px}.timeline-item:last-child .timeline-content{padding-bottom:0}.timeline-title{font-size:12px;font-weight:600;margin-bottom:2px}.timeline-company{font-size:10px;color:var(--accent);margin-bottom:2px}.timeline-date{font-size:9px;color:var(--text-muted)}.experience-card.expanded{height:auto}.experience-card.expanded .timeline{gap:16px}.experience-card.expanded .timeline-item{gap:16px;padding:16px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.experience-card.expanded .timeline-title{font-size:16px;margin-bottom:4px}.experience-card.expanded .timeline-company{font-size:13px;margin-bottom:4px}.experience-card.expanded .timeline-date{font-size:11px}.timeline-description{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-top:12px}.timeline-achievements{margin-top:12px}.achievements-title{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px}.achievements-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.achievements-list li{font-size:12px;color:var(--text-secondary);padding-left:16px;position:relative}.achievements-list li:before{content:"→";position:absolute;left:0;color:var(--accent)}.timeline-skills{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.skill-tag{font-size:10px;padding:4px 8px;background:var(--bg-secondary);border-radius:4px;color:var(--text-secondary)}.projects-card{display:flex;flex-direction:column}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;flex:1}@media(max-width:690px){.projects-grid:not(.expanded){grid-template-columns:1fr}}.project-item{background:var(--bg-primary);border-radius:var(--radius-sm);padding:10px;cursor:pointer;transition:background .15s ease;display:flex;flex-direction:column;border:1px solid transparent}.project-item:hover{background:var(--bg-tertiary)}.project-item.selected{cursor:default}.project-item.selected:hover{background:var(--bg-primary)}.project-header{display:flex;align-items:center;gap:12px;margin-bottom:6px}.project-icon{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:14px}.project-logo{width:28px;height:28px;border-radius:var(--radius-sm);object-fit:cover}.project-links-row{display:flex;gap:8px;margin-bottom:12px}.project-links{display:flex;gap:4px}.project-link{width:22px;height:22px;background:var(--bg-secondary);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-muted);transition:color .2s}.project-link:hover{color:var(--accent)}.project-close-btn{position:sticky;top:20px;align-self:flex-end;margin-bottom:-24px;width:24px;height:24px;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text-primary);cursor:pointer;transition:all .2s;line-height:1;z-index:10}.project-close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--text-muted)}.project-close-btn.pinned-bottom{position:absolute;top:auto;bottom:20px;right:20px;margin-bottom:0}.view-case-study-btn{flex-shrink:0;padding:6px 12px;background:transparent;border:1px solid var(--accent);border-radius:5px;color:var(--accent);font-size:11px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.view-case-study-btn:hover{background:var(--accent);color:var(--text-on-accent)}.project-name{font-size:12px;font-weight:600}.project-desc{font-size:10px;color:var(--text-muted);line-height:1.4;flex:1}.project-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:auto;gap:12px}.project-tech{display:flex;flex-wrap:wrap;gap:4px}.tech-tag{font-size:8px;padding:2px 5px;background:var(--bg-secondary);border-radius:3px;color:var(--text-secondary);font-family:JetBrains Mono,monospace}.projects-card.expanded{height:100%}.projects-card.expanded .projects-grid{grid-template-columns:1fr;gap:16px}.projects-card.expanded .project-item{padding:20px;position:relative}.projects-card.expanded .project-item.selected{overflow:visible}.projects-card.expanded .project-header{margin-bottom:12px}.projects-card.expanded .project-icon{width:40px;height:40px;font-size:18px}.projects-card.expanded .project-logo{width:40px;height:40px}.projects-card.expanded .project-name{font-size:16px}.projects-card.expanded .project-desc{font-size:13px;line-height:1.6;margin-bottom:16px}.project-item.dimmed{opacity:.4;transition:opacity .3s ease}.scroll-to-top-btn{position:fixed!important;bottom:24px;left:0;right:0;margin:0 auto;width:fit-content;padding:10px 20px;background:var(--overlay-bg);border:1px solid var(--border);border-radius:24px;color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;z-index:9999;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 20px #00000026;transition:background .2s,border-color .2s,transform .2s}.scroll-to-top-btn:hover{background:var(--overlay-bg-hover);border-color:var(--accent)}.project-metrics{display:flex;gap:16px;margin-bottom:16px;padding:12px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.project-metric{flex:1;text-align:center}.metric-value{display:block;font-size:18px;font-weight:700;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:2px}.metric-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.project-highlights{margin-bottom:12px}.highlights-title{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:8px}.highlights-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.highlights-list li{font-size:12px;color:var(--text-secondary);padding-left:16px;position:relative}.highlights-list li:before{content:"→";position:absolute;left:0;color:var(--accent)}.projects-card.expanded .project-tech{margin-top:16px}.projects-card.expanded .tech-tag{font-size:10px;padding:4px 8px}.project-deep-dive{margin-top:16px;padding:16px;background:var(--bg-secondary);border-radius:var(--radius-sm);border-left:3px solid var(--accent)}.deep-dive-title{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);margin-bottom:8px;font-weight:600}.deep-dive-content{font-size:13px;color:var(--text-secondary);line-height:1.8;margin:0;white-space:pre-line}.project-case-study{margin-top:20px;display:flex;flex-direction:column;gap:20px}.case-study-meta{display:flex;gap:12px;flex-wrap:wrap;padding:12px 16px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.meta-item{display:flex;flex-direction:column;gap:2px;flex:1;min-width:80px}.meta-label{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.meta-value{font-size:12px;font-weight:600;color:var(--text-primary)}.case-study-links{display:flex;gap:12px;flex-wrap:wrap}.case-study-link{display:inline-flex;align-items:center;padding:8px 14px;background:var(--accent);border-radius:6px;color:var(--text-on-accent);font-size:12px;font-weight:500;text-decoration:none;transition:all .2s}.case-study-link:hover{background:var(--accent-hover)}.case-study-section{padding:16px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.section-title{font-size:14px;font-weight:700;color:var(--text-primary);margin:0 0 8px;display:flex;align-items:center;gap:8px}.section-desc{font-size:13px;color:var(--text-secondary);line-height:1.6;margin:0 0 12px}.pain-points{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.pain-points li{font-size:12px;color:var(--text-secondary);padding-left:16px;position:relative}.pain-points li:before{content:"×";position:absolute;left:0;color:var(--error);font-weight:700}.architecture-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.arch-card{display:flex;flex-direction:column;gap:4px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.arch-layer{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);font-weight:600}.arch-tech{font-size:12px;font-weight:600;color:var(--text-primary);font-family:JetBrains Mono,monospace}.arch-desc{font-size:11px;color:var(--text-muted)}.features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.feature-card{display:flex;flex-direction:column;gap:4px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.feature-name{font-size:12px;font-weight:600;color:var(--text-primary)}.feature-desc{font-size:11px;color:var(--text-muted);line-height:1.4}.results-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.result-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px;background:var(--bg-tertiary);border-radius:var(--radius-sm);text-align:center}.result-metric{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.result-comparison{display:flex;align-items:center;gap:8px}.result-before{font-size:14px;color:var(--text-muted);text-decoration:line-through}.result-arrow{color:var(--success);font-weight:700}.result-after{font-size:18px;font-weight:700;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.result-improvement{font-size:11px;color:var(--success);font-weight:600}.project-timeline{display:flex;flex-direction:column;gap:12px}.timeline-phase{display:flex;gap:12px;align-items:flex-start}.phase-marker{display:flex;flex-direction:column;align-items:center}.phase-number{width:24px;height:24px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff}.phase-content{flex:1;display:flex;flex-direction:column;gap:2px;padding-bottom:12px;border-bottom:1px solid var(--border)}.timeline-phase:last-child .phase-content{border-bottom:none;padding-bottom:0}.phase-name{font-size:13px;font-weight:600;color:var(--text-primary)}.phase-duration{font-size:11px;color:var(--accent);font-weight:500}.phase-activities{font-size:11px;color:var(--text-muted);line-height:1.4}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(2,1fr);gap:8px;flex:1}.stat-item{background:var(--bg-tertiary);border-radius:var(--radius-sm);padding:10px;text-align:center;display:flex;flex-direction:column;justify-content:center}.stat-value{font-size:22px;font-weight:700;background:var(--gradient-1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-label{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.activity-card{display:flex;flex-direction:column}.interests-list{display:flex;flex-direction:column;gap:10px;flex:1}.interest-item{display:flex;flex-direction:column;gap:1px}.interest-title{font-size:11px;font-weight:500;background:var(--interest-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.interest-desc{font-size:10px;color:var(--text-muted)}.languages-list{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;align-content:start}.stages-header{margin-top:12px}.language-item{display:flex;align-items:center;gap:8px}.language-color{width:10px;height:10px;border-radius:50%;flex-shrink:0}.language-name{flex:1;font-size:11px}.language-percent{font-size:10px;font-family:JetBrains Mono,monospace;color:var(--text-muted)}.tech-stack-card{display:flex;flex-direction:column}.tech-categories{display:flex;flex-direction:column;gap:10px;flex:1;justify-content:space-between}.tech-category{display:flex;flex-direction:column;gap:8px;flex:1}.tech-category-name{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.tech-icons{display:flex;gap:8px}.tech-icon{flex:1;max-width:48px;aspect-ratio:1;background:var(--bg-tertiary);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;color:var(--text-primary)}.tech-icon svg{width:20px;height:20px}.tech-icon:hover{background:var(--accent);border-color:var(--accent)}.tech-icon:hover svg{color:var(--text-on-accent)!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media(max-width:690px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.portfolio{padding:12px;gap:12px}.projects-grid{grid-template-columns:1fr}}@media(max-width:600px){.architecture-grid,.features-grid,.results-grid{grid-template-columns:1fr}.case-study-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.meta-item{flex-direction:column;text-align:center}.project-metrics{grid-template-columns:repeat(2,1fr)}.expanded-project-card .project-item{border-radius:0;margin-top:12px;margin-bottom:12px}.project-item.selected{padding:16px}.project-close-btn{width:32px;height:32px;font-size:18px;top:80px}.project-close-btn.pinned-bottom{top:auto}.expanded-project-card{position:fixed;left:0!important;right:0;top:0!important;width:100vw!important;height:100vh!important;border-radius:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-top:env(safe-area-inset-top);padding-bottom:0;background:var(--bg-secondary)}.expanded-project-card>.card{border-radius:0;min-height:100%;padding-left:0;padding-right:0;padding-bottom:env(safe-area-inset-bottom)}.expanded-project-card .card-header{padding:8px 16px;min-height:44px;display:flex;align-items:center}.has-expanded{overflow:hidden;height:100vh}.has-expanded:before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top);background:var(--bg-secondary);z-index:9999}.expanded-project-card .card-badge{display:none}.expanded-project-card:has(.case-study-open){overflow-y:auto}}@media(max-width:600px){*{-webkit-tap-highlight-color:transparent}.project-item:hover{background:var(--bg-primary)}.reveal-email-btn:hover,.cv-download:hover,.social-btn:hover,.project-link:hover,.project-close-btn:hover,.view-case-study-btn:hover,.scroll-to-top-btn:hover,.case-study-link:hover{background:transparent;transform:none;color:var(--text-secondary)}.tech-icon:hover{background:var(--bg-tertiary)}.tech-icon:hover svg{color:var(--text-primary)!important}}html{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}html::-webkit-scrollbar{width:8px;height:8px}html::-webkit-scrollbar-track{background:var(--scrollbar-track)}html::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}html::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}html::-webkit-scrollbar-corner{background:var(--scrollbar-track)}.header{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--bg-secondary);border-radius:var(--radius)}.logo{display:flex;align-items:center;gap:12px}.logo-icon{width:36px;height:36px;background:var(--gradient-1);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:var(--text-on-accent)}.logo-text{font-weight:600;font-size:18px;letter-spacing:-.5px}.nav{display:flex;gap:8px;position:relative}.nav-slider{position:absolute;height:100%;background:var(--bg-tertiary);border-radius:var(--radius-sm);transition:left .3s ease,width .3s ease;z-index:0}.nav-item{padding:8px 16px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:color .2s;position:relative;z-index:1}.nav-item:hover,.nav-item.active{color:var(--text-primary)}.header-actions{display:flex;align-items:center;gap:12px}.status-badge{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--success-10);border-radius:20px;font-size:12px;color:var(--success)}.status-dot{width:8px;height:8px;background:var(--success);border-radius:50%;animation:pulse 2s infinite}.btn-primary{padding:8px 16px;background:var(--gradient-1);border:none;border-radius:var(--radius-sm);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:transform .2s,box-shadow .2s}.btn-primary:hover{box-shadow:0 4px 20px var(--accent-glow)}.nav-mobile{display:none;align-items:center;gap:8px;position:relative}.hamburger-btn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;background:var(--bg-tertiary);border:none;border-radius:var(--radius-sm);cursor:pointer;padding:10px}.hamburger-line{display:block;width:18px;height:2px;background:var(--text-primary);border-radius:1px;transition:transform .2s ease,opacity .2s ease}.hamburger-btn.open .hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger-btn.open .hamburger-line:nth-child(2){opacity:0}.hamburger-btn.open .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--bg-secondary);border-radius:var(--radius);box-shadow:0 4px 20px #00000026;padding:8px;min-width:160px;z-index:100}.nav-dropdown-item{display:block;width:100%;padding:12px 16px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:14px;font-weight:500;text-align:left;cursor:pointer;transition:background .2s,color .2s}.nav-dropdown-item:hover,.nav-dropdown-item.active{background:var(--bg-tertiary);color:var(--text-primary)}@media(max-width:600px){.header{display:none}.nav-mobile{display:flex;position:fixed;top:16px;right:16px;z-index:1000}.nav-dropdown{z-index:1001}}.theme-toggle{padding:8px 12px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.theme-toggle:hover{background:var(--bg-tertiary);color:var(--text-primary)}.theme-toggle svg{width:16px;height:16px}
