:root{--bg-primary:#1e1e1e;--bg-secondary:#252526;--bg-tertiary:#2d2d2d;--bg-sidebar:#252526;--bg-activitybar:#333;--bg-tab-active:#1e1e1e;--bg-tab-inactive:#2d2d2d;--bg-statusbar:#333;--bg-titlebar:#3c3c3c;--bg-input:#3c3c3c;--bg-hover:#2a2d2e;--bg-selection:#264f78;--bg-badge:#4d78cc;--bg-scrollbar:#79797966;--bg-minimap:#79797926;--text-primary:#d4d4d4;--text-secondary:#ccc;--text-muted:gray;--text-accent:#569cd6;--text-statusbar:#fff;--text-link:#3794ff;--text-sidebar:#ccc;--text-sidebar-active:#fff;--syntax-keyword:#569cd6;--syntax-string:#ce9178;--syntax-number:#b5cea8;--syntax-function:#dcdcaa;--syntax-variable:#9cdcfe;--syntax-type:#4ec9b0;--syntax-comment:#6a9955;--syntax-operator:#d4d4d4;--syntax-tag:#569cd6;--syntax-attribute:#9cdcfe;--syntax-punctuation:gray;--syntax-class:#4ec9b0;--syntax-constant:#4fc1ff;--syntax-parameter:#9cdcfe;--syntax-decorator:#dcdcaa;--syntax-regexp:#d16969;--border-primary:#3c3c3c;--border-active:#007acc;--border-input-focus:#007acc;--border-tab:#252526;--accent:#007acc;--accent-hover:#1c8cd9;--accent-foreground:#fff;--activity-bar-width:48px;--sidebar-width:250px;--statusbar-height:22px;--titlebar-height:30px;--tab-height:35px;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-code:"JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--font-size-ui:13px;--font-size-code:14px;--line-height-code:1.6;--shadow-panel:0 0 8px #0000004d;--transition-fast:.15s ease;--transition-normal:.25s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-ui);font-size:var(--font-size-ui);background-color:var(--bg-primary);color:var(--text-primary);width:100vw;height:100vh;overflow:hidden}#root{flex-direction:column;width:100vw;height:100vh;display:flex}a{color:var(--text-link);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}::selection{background:var(--bg-selection)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-scrollbar);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#79797999}.vscode-layout{height:calc(100vh - var(--titlebar-height) - var(--statusbar-height));flex:1;display:flex;overflow:hidden}.titlebar{height:var(--titlebar-height);min-height:var(--titlebar-height);background:var(--bg-titlebar);color:var(--text-secondary);-webkit-user-select:none;user-select:none;-webkit-app-region:drag;z-index:30;border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:center;padding:0 0 0 8px;font-size:12px;display:flex}.titlebar__left{flex-shrink:0;align-items:center;gap:8px;display:flex}.titlebar__logo{flex-shrink:0}.titlebar__menus{align-items:center;gap:2px;display:flex}.titlebar__menu-item{cursor:pointer;transition:background var(--transition-fast);color:var(--text-secondary);border-radius:4px;padding:2px 8px;font-size:12px}.titlebar__menu-item:hover{color:var(--text-primary);background:#ffffff1a}.titlebar__center{color:var(--text-muted);white-space:nowrap;pointer-events:none;font-size:12px;position:absolute;left:50%;transform:translate(-50%)}.titlebar__controls{-webkit-app-region:no-drag;align-items:center;height:100%;display:flex}.titlebar__layout-toggles{align-items:center;gap:2px;margin-right:8px;display:flex}.titlebar__icon-btn{color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px 6px;font-size:14px;display:flex}.titlebar__icon-btn:hover{color:var(--text-primary);background:#ffffff1a}.titlebar__control{cursor:pointer;width:46px;height:100%;transition:background var(--transition-fast);color:var(--text-secondary);justify-content:center;align-items:center;display:flex}.titlebar__control:hover{color:var(--text-primary);background:#ffffff1a}.titlebar__control--close:hover{color:#fff;background:#e81123}.activity-bar{width:var(--activity-bar-width);min-width:var(--activity-bar-width);background:var(--bg-activitybar);border-right:1px solid var(--border-primary);z-index:10;flex-direction:column;align-items:center;padding:4px 0;display:flex}.activity-bar__icon{cursor:pointer;width:48px;height:48px;color:var(--text-muted);transition:color var(--transition-fast);border-left:2px solid #0000;justify-content:center;align-items:center;display:flex;position:relative}.activity-bar__icon:hover{color:var(--text-primary)}.activity-bar__icon--active{color:var(--text-sidebar-active);border-left-color:var(--accent)}.activity-bar__icon .codicon{font-size:24px}.activity-bar__spacer{flex:1}.activity-bar__bottom{flex-direction:column;align-items:center;display:flex}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-primary);transition:width var(--transition-normal), min-width var(--transition-normal);flex-direction:column;display:flex;overflow:hidden}.sidebar--collapsed{border-right:none;width:0;min-width:0}.sidebar__header{text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:10px 20px 10px 12px;font-size:11px;font-weight:600;display:flex}.sidebar__section{margin-bottom:2px}.sidebar__section-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:700;display:flex}.sidebar__section-header:hover{background:var(--bg-hover)}.sidebar__section-header svg{fill:currentColor;width:16px;height:16px;transition:transform var(--transition-fast)}.sidebar__section-header--collapsed svg{transform:rotate(-90deg)}.sidebar__tree{list-style:none}.sidebar__file{color:var(--text-sidebar);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast);align-items:center;gap:6px;padding:3px 8px 3px 28px;font-size:13px;display:flex}.sidebar__file:hover{background:var(--bg-hover)}.sidebar__file--active{background:var(--bg-hover);color:var(--text-sidebar-active)}.sidebar__file-icon{flex-shrink:0;width:16px;height:16px}.sidebar__folder{color:var(--text-sidebar);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:3px 8px 3px 16px;font-size:13px;display:flex}.sidebar__folder:hover{background:var(--bg-hover)}.sidebar__folder-children{list-style:none}.editor-area{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.tabs{background:var(--bg-tab-inactive);border-bottom:1px solid var(--border-primary);min-height:var(--tab-height);scrollbar-width:none;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{height:var(--tab-height);white-space:nowrap;min-width:fit-content;color:var(--text-muted);background:var(--bg-tab-inactive);border-right:1px solid var(--border-tab);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast), color var(--transition-fast);align-items:center;gap:6px;padding:0 16px;font-size:13px;display:flex;position:relative}.tab:hover{background:var(--bg-tertiary)}.tab--active{color:var(--text-primary);background:var(--bg-tab-active);border-bottom:1px solid var(--bg-tab-active);margin-bottom:-1px}.tab--active:before{content:"";background:var(--accent);height:1px;position:absolute;top:0;left:0;right:0}.tab__icon{flex-shrink:0;width:16px;height:16px}.tab__close{opacity:0;width:16px;height:16px;transition:opacity var(--transition-fast), background var(--transition-fast);border-radius:3px;justify-content:center;align-items:center;display:flex}.tab:hover .tab__close,.tab--active .tab__close{opacity:1}.tab__close:hover{background:#ffffff1a}.breadcrumbs{background:var(--bg-primary);height:22px;color:var(--text-muted);border-bottom:1px solid var(--border-primary);align-items:center;gap:4px;padding:0 12px;font-size:12px;display:flex}.breadcrumbs span{cursor:pointer;transition:color var(--transition-fast)}.breadcrumbs span:hover{color:var(--text-primary)}.breadcrumbs__separator{margin:0 2px;font-size:10px}.editor-content{background:var(--bg-primary);flex:1;position:relative;overflow:hidden auto}.editor-content__wrapper{flex-direction:column;min-height:100%;display:flex}.line-numbers{text-align:right;min-width:60px;color:var(--text-muted);font-family:var(--font-code);font-size:var(--font-size-code);line-height:var(--line-height-code);-webkit-user-select:none;user-select:none;opacity:.5;flex-direction:column;padding:16px;display:flex}.code-content{font-family:var(--font-code);font-size:var(--font-size-code);line-height:var(--line-height-code);flex:1;min-width:0;padding:16px 24px 16px 0}.code-content .keyword{color:var(--syntax-keyword)}.code-content .string{color:var(--syntax-string)}.code-content .number{color:var(--syntax-number)}.code-content .function{color:var(--syntax-function)}.code-content .variable{color:var(--syntax-variable)}.code-content .type{color:var(--syntax-type)}.code-content .comment{color:var(--syntax-comment);font-style:italic}.code-content .operator{color:var(--syntax-operator)}.code-content .tag{color:var(--syntax-tag)}.code-content .attribute{color:var(--syntax-attribute)}.code-content .punctuation{color:var(--syntax-punctuation)}.code-content .class-name{color:var(--syntax-class)}.code-content .constant{color:var(--syntax-constant)}.code-content .parameter{color:var(--syntax-parameter)}.code-content .decorator{color:var(--syntax-decorator)}.code-content .property{color:var(--syntax-variable)}.code-line{min-height:calc(var(--font-size-code) * var(--line-height-code));transition:background var(--transition-fast);padding:0 4px}.code-line:hover{background:#ffffff08}.code-line--highlighted{border-left:2px solid var(--accent);background:#ffff000d;padding-left:2px}.statusbar{height:var(--statusbar-height);min-height:var(--statusbar-height);background:var(--bg-statusbar);color:var(--text-statusbar);z-index:20;-webkit-user-select:none;user-select:none;border-top:1px solid var(--border-primary);justify-content:space-between;align-items:center;padding:0;font-size:12px;display:flex}.statusbar__left,.statusbar__right{align-items:center;gap:0;height:100%;display:flex}.statusbar__item{color:inherit;cursor:pointer;height:100%;transition:background var(--transition-fast);white-space:nowrap;background:0 0;border:none;align-items:center;gap:4px;padding:0 6px;font-family:inherit;font-size:12px;display:flex}.statusbar__item:hover{background:#ffffff1f}.statusbar__item--remote{background:var(--accent);height:100%;padding:0 8px}.statusbar__item--remote:hover{background:var(--accent-hover)}.statusbar__item svg{fill:currentColor;width:14px;height:14px}.about-section{max-width:900px}.about-section .intro-block{margin-bottom:24px}.about-section .avatar-area{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;align-items:center;gap:20px;margin:16px 0;padding:16px;display:flex}.about-section .profile-hero-card{background:var(--bg-secondary);border:1px solid var(--border-primary);transition:transform var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);border-radius:12px;align-items:center;gap:24px;margin:20px 0;padding:20px 24px;display:flex;box-shadow:0 4px 20px #00000026}.about-section .profile-hero-card:hover{border-color:var(--accent);box-shadow:0 6px 24px #007acc33}.profile-hero-card__image-container{border:2px solid var(--accent);border-radius:16px;flex-shrink:0;width:110px;height:110px;position:relative;overflow:hidden;box-shadow:0 4px 12px #0000004d}.profile-hero-card__image{object-fit:cover;width:100%;height:100%;transition:transform .3s;display:block}.profile-hero-card:hover .profile-hero-card__image{transform:scale(1.05)}.profile-hero-card__avatar-fallback{background:linear-gradient(135deg, var(--accent), #9b59b6);color:#fff;justify-content:center;align-items:center;width:100%;height:100%;font-size:36px;font-weight:700;display:flex}.profile-hero-card__info{flex-direction:column;gap:6px;display:flex}.profile-hero-card__badge{text-transform:uppercase;letter-spacing:.5px;color:var(--syntax-type);background:#007acc26;border:1px solid #007acc4d;border-radius:20px;align-self:flex-start;padding:3px 10px;font-size:11px;font-weight:600}.profile-hero-card__name{color:var(--syntax-function);letter-spacing:-.3px;margin:2px 0 0;font-size:24px;font-weight:700}.profile-hero-card__location{color:var(--text-muted);align-items:center;gap:4px;font-size:13px;display:flex}.about-section .avatar{background:linear-gradient(135deg, var(--accent), #9b59b6);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:80px;height:80px;font-size:32px;font-weight:700;display:flex}.about-section .avatar-info h2{color:var(--syntax-function);margin-bottom:4px;font-size:20px;font-weight:600}.about-section .avatar-info .role{color:var(--syntax-type);font-size:14px;font-weight:500}.about-section .avatar-info .location{color:var(--text-muted);margin-top:2px;font-size:12px}.social-links{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.social-link{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border-radius:4px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;text-decoration:none;display:flex}.social-link:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent);text-decoration:none}.social-link svg{fill:currentColor;width:14px;height:14px}.skills-section{max-width:1000px}.skills-category{margin-bottom:24px}.skills-category__title{color:var(--syntax-keyword);border-bottom:1px solid var(--border-primary);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:6px;font-size:14px;font-weight:600;display:flex}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.skill-card{background:var(--bg-secondary);border:1px solid var(--border-primary);transition:all var(--transition-fast);cursor:default;text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:10px;padding:16px 12px;display:flex}.skill-card:hover{border-color:var(--accent);background:var(--bg-tertiary);transform:translateY(-2px);box-shadow:0 6px 16px #00000059}.skill-card__icon{transition:transform var(--transition-fast);font-size:36px;line-height:1}img.skill-card__icon{object-fit:contain;width:36px;height:36px}.skill-card:hover .skill-card__icon{transform:scale(1.15)}.skill-card__name{color:var(--text-primary);justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.projects-section{max-width:1100px}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin-top:8px;display:grid}.project-card{background:var(--bg-secondary);border:1px solid var(--border-primary);transition:all var(--transition-normal);cursor:default;border-radius:8px;overflow:hidden}.project-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px #0006}.project-card__header{border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:center;padding:16px;display:flex}.project-card__title{color:var(--syntax-function);align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.project-card__title svg{width:16px;height:16px;fill:var(--text-muted)}.project-card__links{gap:8px;display:flex}.project-card__link{color:var(--text-muted);transition:color var(--transition-fast)}.project-card__link:hover{color:var(--text-primary);text-decoration:none}.project-card__link svg{fill:currentColor;width:18px;height:18px}.project-card__body{padding:16px}.project-card__description{color:var(--text-secondary);margin-bottom:12px;font-size:13px;line-height:1.5}.project-card__tags{flex-wrap:wrap;gap:6px;display:flex}.project-card__tag{background:var(--bg-primary);color:var(--syntax-type);border:1px solid var(--border-primary);font-size:11px;font-family:var(--font-code);border-radius:12px;padding:3px 10px}.education-section{max-width:900px}.education-timeline{padding-left:24px;position:relative}.education-timeline:before{content:"";background:var(--border-primary);width:2px;position:absolute;top:8px;bottom:8px;left:7px}.education-item{background:var(--bg-secondary);border:1px solid var(--border-primary);transition:all var(--transition-fast);border-radius:8px;margin-bottom:28px;padding:16px 20px;position:relative}.education-item:hover{border-color:var(--accent);box-shadow:0 4px 16px #0000004d}.education-item:before{content:"";background:var(--accent);border:2px solid var(--bg-primary);z-index:1;border-radius:50%;width:12px;height:12px;position:absolute;top:22px;left:-21px}.education-item__degree{color:var(--syntax-function);margin-bottom:4px;font-size:15px;font-weight:600}.education-item__school{color:var(--syntax-type);margin-bottom:4px;font-size:13px}.education-item__date{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;display:flex}.education-item__description{color:var(--text-secondary);font-size:13px;line-height:1.5}.education-item__courses{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.education-item__course{background:var(--bg-primary);color:var(--syntax-variable);border:1px solid var(--border-primary);font-size:11px;font-family:var(--font-code);border-radius:12px;padding:3px 10px}.contact-section{max-width:800px}.contact-form-wrapper{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;margin-top:16px;padding:24px}.form-group{margin-bottom:16px}.form-label{color:var(--syntax-variable);font-size:13px;font-family:var(--font-code);margin-bottom:6px;display:block}.form-label .required{color:var(--syntax-regexp)}.form-input,.form-textarea{background:var(--bg-input);border:1px solid var(--border-primary);width:100%;color:var(--text-primary);font-family:var(--font-code);transition:border-color var(--transition-fast);border-radius:4px;outline:none;padding:8px 12px;font-size:13px}.form-input:focus,.form-textarea:focus{border-color:var(--border-input-focus)}.form-textarea{resize:vertical;min-height:120px}.form-submit{background:var(--accent);color:var(--accent-foreground);font-size:13px;font-family:var(--font-ui);cursor:pointer;transition:all var(--transition-fast);border:none;border-radius:4px;align-items:center;gap:8px;padding:8px 20px;font-weight:500;display:inline-flex}.form-submit:hover{background:var(--accent-hover);transform:translateY(-1px)}.form-submit:active{transform:translateY(0)}.contact-info-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:20px;display:grid}.contact-info-card{background:var(--bg-tertiary);border:1px solid var(--border-primary);transition:all var(--transition-fast);cursor:default;border-radius:6px;align-items:center;gap:10px;padding:14px;display:flex}.contact-info-card:hover{border-color:var(--accent);transform:translateY(-1px)}.contact-info-card__icon{background:var(--bg-selection);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.contact-info-card__icon svg{width:16px;height:16px;fill:var(--accent)}.contact-info-card__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;font-size:11px}.contact-info-card__value{color:var(--text-primary);font-size:13px}@media (width<=900px){.sidebar{display:none}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.projects-grid{grid-template-columns:1fr}.titlebar__menus{display:none}.titlebar__center{text-align:center;flex:1;position:static;transform:none}}@media (width<=600px){.activity-bar{display:none}.tabs{overflow-x:auto}.tab{padding:0 10px;font-size:12px}.code-content{padding:12px 16px 12px 0}.line-numbers{min-width:40px;padding-left:8px;padding-right:8px}.about-section .avatar-area,.about-section .profile-hero-card{text-align:center;flex-direction:column;gap:16px;padding:16px}.profile-hero-card__badge{align-self:center}.profile-hero-card__location{justify-content:center}.skills-grid,.contact-info-grid{grid-template-columns:1fr}.social-links{justify-content:center}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in-up{animation:.4s forwards fadeInUp}.animate-fade-in{animation:.3s forwards fadeIn}.animate-slide-in-left{animation:.3s forwards slideInLeft}.stagger-1{opacity:0;animation-delay:50ms}.stagger-2{opacity:0;animation-delay:.1s}.stagger-3{opacity:0;animation-delay:.15s}.stagger-4{opacity:0;animation-delay:.2s}.stagger-5{opacity:0;animation-delay:.25s}.stagger-6{opacity:0;animation-delay:.3s}.stagger-7{opacity:0;animation-delay:.35s}.stagger-8{opacity:0;animation-delay:.4s}.cursor-blink{background:var(--text-primary);vertical-align:text-bottom;width:2px;height:1em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.minimap{background:var(--bg-minimap);pointer-events:none;opacity:.3;width:60px;position:absolute;top:0;bottom:0;right:0}
