@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}img,video{max-width:100%;display:block}button,input,textarea,select{font:inherit}:root{--bg-page:#fff;--bg-sidebar:#f9f9f9;--bg-card:#fff;--bg-input:#f5f5f3;--bg-code:#f0efe9;--surface-hover:#ececec;--surface-active:#e5e5e5;--surface-subtle:#f5f5f3;--text-primary:#171714;--text-secondary:#6b6b6b;--text-muted:#9f9f9b;--text-inverse:#fff;--border-default:#e5e5e5;--border-strong:#cdcdc9;--accent:#b69b67;--accent-light:#d4bc90;--accent-bg:#b69b6714;--accent-bg-hover:#b69b6726;--color-success:#22c55e;--color-error:#ef4444;--color-warning:#f59e0b;--sidebar-width:220px;--sidebar-collapsed-width:64px;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014, 0 2px 4px #0000000a;--shadow-lg:0 10px 30px #0000001a, 0 4px 8px #0000000f;--shadow-card:0 1px 3px #00000012;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:11px;--font-size-sm:13px;--font-size-base:14px;--font-size-md:15px;--font-size-lg:18px;--font-size-xl:24px;--font-size-2xl:32px;--font-size-3xl:42px;--line-height-tight:1.15em;--line-height-normal:1.35em;--line-height-relaxed:1.6em;--letter-spacing-tight:-.04em;--letter-spacing-normal:-.02em;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--z-sidebar:100;--z-topbar:90;--z-modal:200;--z-tooltip:300}[data-theme=dark]{--bg-page:#111110;--bg-sidebar:#171715;--bg-card:#1c1c1a;--bg-input:#1f1f1d;--bg-code:#1a1a18;--surface-hover:#252523;--surface-active:#2c2c2a;--surface-subtle:#1f1f1d;--text-primary:#f0efe9;--text-secondary:#a0a09a;--text-muted:#666660;--text-inverse:#171714;--border-default:#2a2a28;--border-strong:#3a3a38;--accent:#c4a875;--accent-light:#d4bc90;--accent-bg:#c4a87514;--accent-bg-hover:#c4a87526;--shadow-sm:0 1px 3px #0000004d, 0 1px 2px #0003;--shadow-md:0 4px 12px #0006, 0 2px 4px #0003;--shadow-lg:0 10px 30px #00000080, 0 4px 8px #0000004d;--shadow-card:0 1px 3px #0006}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);letter-spacing:var(--letter-spacing-normal);color:var(--text-primary);background-color:var(--bg-page);transition:background-color var(--transition-normal), color var(--transition-normal);min-height:100vh;overflow-x:hidden}h1,h2,h3,h4,h5,h6{color:var(--text-primary);letter-spacing:var(--letter-spacing-tight);font-weight:600;line-height:var(--line-height-tight)}p{color:var(--text-secondary);line-height:var(--line-height-relaxed)}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent-bg);color:var(--text-primary)}.app-shell{background:var(--bg-page);width:100vw;height:100dvh;display:flex;overflow:hidden}.main-content{background:var(--bg-page);transition:background-color var(--transition-normal);flex-direction:column;flex:1;display:flex;overflow:hidden auto}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-default);height:100dvh;z-index:var(--z-sidebar);transition:background-color var(--transition-normal), border-color var(--transition-normal), width var(--transition-normal), min-width var(--transition-normal);flex-direction:column;padding:16px 10px;display:flex;position:relative;overflow:hidden}.sidebar-header{align-items:center;gap:10px;margin-bottom:16px;padding:8px 10px;display:flex}.sidebar-logo{border-radius:var(--radius-sm);background:var(--text-primary);width:32px;height:32px;color:var(--bg-page);letter-spacing:-.02em;transition:background-color var(--transition-normal);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.sidebar-name{font-size:var(--font-size-sm);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal);white-space:nowrap;transition:opacity var(--transition-normal);font-weight:600;overflow:hidden}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden auto}.nav-item{border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);color:var(--text-secondary);font-size:var(--font-size-sm);white-space:nowrap;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 10px;font-weight:500;text-decoration:none;display:flex;position:relative;overflow:hidden}.nav-item:hover{background:var(--surface-hover);color:var(--text-primary)}.nav-item.active{background:var(--surface-active);color:var(--text-primary);font-weight:600}.nav-item svg{opacity:.7;width:16px;height:16px;transition:opacity var(--transition-fast);flex-shrink:0}.nav-item:hover svg,.nav-item.active svg{opacity:1}.nav-label{white-space:nowrap;text-overflow:ellipsis;transition:opacity var(--transition-normal);overflow:hidden}.sidebar-footer{border-top:1px solid var(--border-default);flex-direction:column;gap:8px;padding-top:12px;display:flex}.social-links{flex-wrap:wrap;gap:4px;padding:4px 6px;display:flex}.social-link{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-muted);transition:background-color var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;display:flex}.social-link:hover{background:var(--surface-hover);color:var(--text-primary)}.social-link svg{width:15px;height:15px}.topbar{border-bottom:1px solid var(--border-default);background:var(--bg-page);height:52px;min-height:52px;transition:background-color var(--transition-normal), border-color var(--transition-normal);z-index:var(--z-topbar);justify-content:space-between;align-items:center;padding:0 16px;display:flex;position:sticky;top:0}.topbar-title{font-size:var(--font-size-sm);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal);font-weight:600}.topbar-actions{align-items:center;gap:8px;display:flex}.segmented-tabs{background:var(--surface-hover);border-radius:var(--radius-full);gap:2px;padding:3px;display:flex}.segmented-tab{border-radius:var(--radius-full);font-size:var(--font-size-sm);cursor:pointer;color:var(--text-secondary);transition:background-color var(--transition-fast), color var(--transition-fast);white-space:nowrap;background:0 0;border:none;padding:6px 18px;font-weight:500}.segmented-tab:hover{color:var(--text-primary)}.segmented-tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm);font-weight:600}.icon-btn{border-radius:var(--radius-md);width:34px;height:34px;color:var(--text-muted);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.icon-btn svg{width:16px;height:16px}.page-wrapper{flex:1;width:100%;max-width:900px;margin:0 auto;padding:32px}.page-wrapper-wide{flex:1;width:100%;padding:32px}.section-header{margin-bottom:32px}.section-label{font-size:var(--font-size-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;font-weight:600}.section-title{font-size:var(--font-size-2xl);color:var(--text-primary);letter-spacing:var(--letter-spacing-tight);font-weight:700;line-height:var(--line-height-tight);margin-bottom:8px}.section-description{font-size:var(--font-size-md);color:var(--text-secondary);line-height:var(--line-height-relaxed);max-width:560px}.overview-wrapper{flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:calc(100dvh - 52px);padding:24px 32px 40px;display:flex}.overview-composer-area{flex-direction:column;gap:24px;width:100%;max-width:680px;display:flex}.overview-greeting{font-size:var(--font-size-2xl);color:var(--text-primary);letter-spacing:var(--letter-spacing-tight);font-weight:700;line-height:var(--line-height-tight);text-align:center}.overview-greeting span{color:var(--accent)}.overview-subtitle{font-size:var(--font-size-md);color:var(--text-secondary);text-align:center;line-height:var(--line-height-relaxed)}.typing-wrapper{color:var(--accent);font-weight:600}.composer-box{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-xl);cursor:default;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:16px 20px;display:flex}.composer-box:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.composer-avatar{border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--border-default);flex-shrink:0;width:36px;height:36px}.composer-text{font-size:var(--font-size-sm);color:var(--text-muted);flex:1;line-height:1.4}.composer-badge{background:var(--surface-subtle);border:1px solid var(--border-default);border-radius:var(--radius-full);font-size:var(--font-size-xs);color:var(--text-secondary);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;font-weight:500;display:flex}.quick-actions{flex-wrap:wrap;gap:8px;display:flex}.quick-action-btn{border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--bg-card);color:var(--text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);box-shadow:var(--shadow-sm);align-items:center;gap:8px;padding:9px 16px;font-weight:500;text-decoration:none;display:flex}.quick-action-btn:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--border-strong)}.quick-action-btn.primary{background:var(--text-primary);color:var(--text-inverse);border-color:var(--text-primary)}.quick-action-btn.primary:hover{opacity:.85}.quick-action-btn svg{flex-shrink:0;width:15px;height:15px}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;display:grid}.project-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-card);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);box-shadow:var(--shadow-sm);cursor:pointer;flex-direction:column;display:flex;overflow:hidden}.project-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.project-card-image{aspect-ratio:16/9;object-fit:cover;background:var(--surface-subtle);border-bottom:1px solid var(--border-default);width:100%}.project-card-body{flex-direction:column;flex:1;gap:8px;padding:16px;display:flex}.project-card-title{font-size:var(--font-size-md);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal);font-weight:600;line-height:1.3}.project-card-desc{font-size:var(--font-size-sm);color:var(--text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;line-height:1.5;display:-webkit-box;overflow:hidden}.project-card-footer{border-top:1px solid var(--border-default);justify-content:space-between;align-items:center;margin-top:8px;padding-top:12px;display:flex}.tech-tags{flex-wrap:wrap;gap:6px;display:flex}.tech-tag{font-size:var(--font-size-xs);color:var(--text-muted);background:var(--surface-subtle);border:1px solid var(--border-default);border-radius:var(--radius-full);padding:3px 9px;font-weight:500}.card-links{gap:6px;display:flex}.card-link-btn{border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-card);width:30px;height:30px;color:var(--text-muted);transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;display:flex}.card-link-btn:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--border-strong)}.card-link-btn svg{width:14px;height:14px}.skills-category{margin-bottom:36px}.skills-category-title{font-size:var(--font-size-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:8px;margin-bottom:16px;font-weight:600;display:flex}.skills-category-title:after{content:"";background:var(--border-default);flex:1;height:1px}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.skill-card{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);box-shadow:var(--shadow-sm);flex-direction:column;align-items:center;gap:10px;min-height:125px;padding:16px 12px;display:flex;position:relative;overflow:hidden}.skill-card:hover,.skill-card.active{border-color:var(--accent);box-shadow:var(--shadow-md)}.skill-card-img{object-fit:contain;border-radius:var(--radius-sm);width:48px;height:48px}.skill-card-name{font-size:var(--font-size-xs);color:var(--text-primary);text-align:center;letter-spacing:-.01em;font-weight:600}.skill-card-tooltip{background:var(--bg-card);border-radius:var(--radius-md);opacity:0;pointer-events:none;transition:opacity var(--transition-normal);z-index:2;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--accent) #8080801a;flex-direction:column;padding:12px 8px 12px 12px;display:flex;position:absolute;inset:0;overflow:hidden auto}.skill-card:hover .skill-card-tooltip,.skill-card.active .skill-card-tooltip{opacity:1;pointer-events:auto}.skill-card-tooltip p{font-size:var(--font-size-xs);color:var(--text-secondary);text-align:center;margin:auto 0;line-height:1.5}.skill-card-tooltip::-webkit-scrollbar{width:5px}.skill-card-tooltip::-webkit-scrollbar-track{border-radius:var(--radius-full);background:#80808014}.skill-card-tooltip::-webkit-scrollbar-thumb{background:var(--accent);border-radius:var(--radius-full)}.skill-card-tooltip::-webkit-scrollbar-thumb:hover{background:var(--accent-hover)}.timeline{flex-direction:column;gap:0;display:flex;position:relative}.timeline:before{content:"";background:var(--border-default);width:1px;position:absolute;top:24px;bottom:24px;left:16px}.timeline-item{gap:24px;padding:0 0 32px;display:flex;position:relative}.timeline-dot{flex-direction:column;align-items:center;width:33px;min-width:33px;padding-top:4px;display:flex}.timeline-dot-inner{border-radius:var(--radius-full);background:var(--accent);border:2px solid var(--bg-page);width:9px;height:9px;box-shadow:0 0 0 1px var(--accent);transition:background-color var(--transition-normal);flex-shrink:0}.timeline-content{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);flex:1;padding:20px}.timeline-content:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.timeline-date{font-size:var(--font-size-xs);letter-spacing:.04em;color:var(--accent);text-transform:uppercase;margin-bottom:8px;font-weight:600}.timeline-title{font-size:var(--font-size-md);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal);margin-bottom:4px;font-weight:600}.timeline-org{font-size:var(--font-size-sm);color:var(--text-muted);margin-bottom:10px}.timeline-desc{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed)}.education-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);align-items:flex-start;gap:20px;margin-bottom:12px;padding:24px;display:flex}.education-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.education-icon{border-radius:var(--radius-md);background:var(--accent-bg);width:44px;height:44px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.education-icon svg{width:20px;height:20px}.education-body{flex:1}.education-degree{font-size:var(--font-size-md);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal);margin-bottom:4px;font-weight:600}.education-institution{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:4px}.education-date{font-size:var(--font-size-xs);color:var(--text-muted);font-weight:500}.education-desc{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin-top:8px}.cert-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);align-items:flex-start;gap:16px;margin-bottom:10px;padding:20px;text-decoration:none;display:flex}.cert-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md)}.cert-icon{border-radius:var(--radius-md);background:var(--accent-bg);width:40px;height:40px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.cert-icon svg{width:18px;height:18px}.cert-body{flex:1}.cert-name{font-size:var(--font-size-sm);color:var(--text-primary);letter-spacing:var(--letter-spacing-normal);margin-bottom:3px;font-weight:600}.cert-issuer{font-size:var(--font-size-sm);color:var(--text-secondary)}.cert-date{font-size:var(--font-size-xs);color:var(--text-muted);margin-top:2px}.empty-state{text-align:center;color:var(--text-muted);border:1px dashed var(--border-default);border-radius:var(--radius-lg);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:64px 32px;display:flex}.empty-state svg{opacity:.4;width:40px;height:40px}.empty-state p{font-size:var(--font-size-sm);color:var(--text-muted);max-width:280px}.contact-form{flex-direction:column;gap:18px;max-width:580px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{font-size:var(--font-size-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-weight:600}.form-input,.form-textarea,.form-select{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-input);width:100%;color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-family);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);appearance:none;outline:none;padding:10px 14px}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);background:var(--bg-card)}.form-textarea{resize:vertical;min-height:130px;line-height:var(--line-height-relaxed)}.form-select{cursor:pointer;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236B6B6B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:40px}.form-actions{gap:10px;padding-top:4px;display:flex}.btn-primary{background:var(--text-primary);color:var(--text-inverse);border:1px solid var(--text-primary);border-radius:var(--radius-full);font-size:var(--font-size-sm);cursor:pointer;transition:opacity var(--transition-fast), transform var(--transition-fast);align-items:center;gap:8px;padding:10px 22px;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary:hover{opacity:.85;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-full);font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);background:0 0;align-items:center;gap:8px;padding:10px 18px;font-weight:500;display:inline-flex}.btn-secondary:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--border-strong)}.btn-primary svg,.btn-secondary svg{flex-shrink:0;width:15px;height:15px}.alert{border-radius:var(--radius-md);font-size:var(--font-size-sm);border:1px solid;align-items:center;gap:10px;padding:12px 16px;display:flex}.alert svg{flex-shrink:0;width:16px;height:16px}.alert-success{color:var(--color-success);background:#22c55e14;border-color:#22c55e33}.alert-error{color:var(--color-error);background:#ef444414;border-color:#ef444433}.resume-preview{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-card);box-shadow:var(--shadow-sm);max-width:680px;padding:32px}.resume-header{border-bottom:1px solid var(--border-default);align-items:flex-start;gap:20px;margin-bottom:24px;padding-bottom:24px;display:flex}.resume-photo{border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--border-default);width:72px;height:72px}.resume-name{font-size:var(--font-size-xl);color:var(--text-primary);margin-bottom:4px;font-weight:700}.resume-role{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:8px}.resume-contacts{flex-wrap:wrap;gap:12px;display:flex}.resume-contact-item{font-size:var(--font-size-xs);color:var(--text-muted);align-items:center;gap:5px;display:flex}.resume-contact-item svg{width:12px;height:12px}.resume-section-title{font-size:var(--font-size-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border-default);margin-top:20px;margin-bottom:12px;padding-bottom:6px;font-weight:700}.resume-download-area{border:2px dashed var(--border-default);border-radius:var(--radius-lg);text-align:center;flex-direction:column;align-items:center;gap:16px;margin-top:24px;padding:40px;display:flex}.resume-download-area svg{width:32px;height:32px;color:var(--text-muted)}.about-grid{grid-template-columns:1fr 1fr;gap:24px;margin-top:32px;display:grid}.profile-photo-large{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--border-default);width:100%}.about-text-content{flex-direction:column;gap:16px;display:flex}.about-text-content p{font-size:var(--font-size-md);color:var(--text-secondary);line-height:var(--line-height-relaxed)}.about-highlights{flex-direction:column;gap:8px;margin-top:8px;display:flex}.highlight-item{font-size:var(--font-size-sm);color:var(--text-secondary);align-items:center;gap:10px;display:flex}.highlight-item svg{width:15px;height:15px;color:var(--accent);flex-shrink:0}.project-detail-image{aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-lg);border:1px solid var(--border-default);width:100%;box-shadow:var(--shadow-md);margin-bottom:32px}.project-detail-meta{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.project-detail-links{gap:10px;margin-top:24px;display:flex}.not-found{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:calc(100dvh - 52px);padding:40px 32px;display:flex}.not-found-code{color:var(--border-strong);letter-spacing:-.06em;font-size:80px;font-weight:800;line-height:1}.not-found h1{font-size:var(--font-size-2xl);color:var(--text-primary);font-weight:700}.not-found p{font-size:var(--font-size-md);color:var(--text-secondary);max-width:320px}.prose{max-width:680px}.prose h2{font-size:var(--font-size-lg);color:var(--text-primary);margin-top:28px;margin-bottom:10px;font-weight:600}.prose p{font-size:var(--font-size-md);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin-bottom:14px}.prose ul{margin-bottom:14px;padding-left:20px}.prose li{font-size:var(--font-size-md);color:var(--text-secondary);line-height:var(--line-height-relaxed);margin-bottom:6px}.mobile-nav{background:var(--bg-sidebar);border-top:1px solid var(--border-default);height:60px;z-index:var(--z-sidebar);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-around;align-items:center;padding:0 8px;display:none;position:fixed;bottom:0;left:0;right:0}.mobile-nav-item{border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;flex-direction:column;align-items:center;gap:3px;min-width:50px;padding:6px 10px;font-size:10px;font-weight:500;text-decoration:none;display:flex}.mobile-nav-item svg{width:20px;height:20px}.mobile-nav-item.active{color:var(--text-primary)}.mobile-nav-item span{display:block}.theme-toggle{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-muted);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;margin:0 auto 0 6px;display:flex}.theme-toggle:hover{background:var(--surface-hover);color:var(--text-primary)}.theme-toggle svg{width:15px;height:15px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.fade-in-up{animation:.4s forwards fadeInUp}.fade-in{animation:.3s forwards fadeIn}.spin{animation:1s linear infinite spin}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}@media (width<=900px){.sidebar{width:var(--sidebar-collapsed-width);min-width:var(--sidebar-collapsed-width)}.sidebar-name,.nav-label{display:none}.sidebar-header{justify-content:center;padding:8px 0}.page-wrapper,.page-wrapper-wide{padding:24px 20px}.about-grid,.form-row{grid-template-columns:1fr}}@media (width<=600px){.sidebar{display:none}.mobile-nav{display:flex}.main-content{padding-bottom:60px}.page-wrapper,.page-wrapper-wide{padding:20px 16px}.overview-wrapper{justify-content:flex-start;padding:40px 16px 32px}.overview-greeting{font-size:var(--font-size-xl)}.projects-grid{grid-template-columns:1fr}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.quick-actions{justify-content:center}.resume-header{text-align:center;flex-direction:column;align-items:center}.resume-contacts{justify-content:center}.topbar{padding:0 12px}.segmented-tab{padding:5px 12px;font-size:12px}.not-found-code{font-size:60px}}
