@import"https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";.App{height:100vh;width:100vw;background-color:#f5f5f0}*{margin:0;font-family:Source Code Pro,monospace}@media (prefers-color-scheme: dark){.w-tc-editor{--color-fg-default: #c9d1d9;--color-canvas-subtle: #161b22;--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-markup-bold: #c9d1d9}}@media (prefers-color-scheme: light){.w-tc-editor{--color-fg-default: #24292f;--color-canvas-subtle: #f6f8fa;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-markup-bold: #24292f}}.w-tc-editor[data-color-mode*=dark],[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default: #c9d1d9;--color-canvas-subtle: #161b22;--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-markup-bold: #c9d1d9}.w-tc-editor[data-color-mode*=light],[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default: #24292f;--color-canvas-subtle: #f6f8fa;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-markup-bold: #24292f}.w-tc-editor{font-family:inherit;font-size:12px;background-color:var(--color-canvas-subtle);color:var(--color-fg-default)}.w-tc-editor-text,.w-tc-editor-preview{min-height:16px}.w-tc-editor-preview pre{margin:0;padding:0;white-space:inherit;font-family:inherit;font-size:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.property-access .token.method,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.keyword{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-value,.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-name{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.selector .class,.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.class-name{color:var(--color-prettylights-syntax-entity)}.hero-section{min-height:calc(100vh - 120px);display:flex;align-items:center;justify-content:center;padding:40px 20px;background:linear-gradient(135deg,#1c2024,#23272f,#1c2024);position:relative;overflow:hidden}.hero-section:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:50px 50px;pointer-events:none}.hero-content{display:flex;align-items:center;gap:50px;max-width:900px;width:100%;position:relative;z-index:1}@media (max-width: 600px){.hero-content{flex-direction:column;gap:30px;padding:0 10px}}.hero-photo-container{position:relative;flex-shrink:0;display:flex;flex-direction:column;align-items:center}@media (max-width: 600px){.hero-photo-container{order:-1}}.photo-glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:280px;height:280px;background:radial-gradient(circle,rgba(49,120,198,.15) 0%,rgba(49,120,198,.05) 40%,transparent 70%);border-radius:50%;filter:blur(20px);animation:pulse-glow 4s ease-in-out infinite}@media (max-width: 600px){.photo-glow{width:200px;height:200px}}@keyframes pulse-glow{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}}.hero-photo{width:220px;height:220px;border-radius:12px;-o-object-fit:cover;object-fit:cover;position:relative;z-index:1;border:2px solid rgba(255,255,255,.1);box-shadow:0 20px 40px #0006,0 0 0 1px #ffffff0d;transition:transform .3s ease,box-shadow .3s ease}.hero-photo:hover{transform:translateY(-4px);box-shadow:0 25px 50px #00000080,0 0 0 1px #ffffff1a}@media (max-width: 600px){.hero-photo{width:160px;height:160px}}.name-display{text-align:center;margin-top:20px;position:relative;z-index:2}.name-display .name-text{font-family:Source Code Pro,monospace;font-size:20px;font-weight:600;color:#d3d3d3;letter-spacing:.5px}@media (max-width: 600px){.name-display{margin-top:16px}.name-display .name-text{font-size:18px}}.availability-badge{margin-top:16px;background:#10b98126;border:1px solid rgba(16,185,129,.3);padding:6px 14px;border-radius:20px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:#10b981;font-family:Source Code Pro,monospace;white-space:nowrap;opacity:0;transition:opacity .5s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.availability-badge.visible{opacity:1}.availability-badge .pulse{width:8px;height:8px;background:#10b981;border-radius:50%;animation:pulse-dot 2s ease-in-out infinite}@media (max-width: 600px){.availability-badge{margin-top:14px}}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 #10b98166}50%{opacity:.8;box-shadow:0 0 0 8px #10b98100}}.hero-code-container{flex:1;max-width:600px}@media (max-width: 600px){.hero-code-container{width:100%;max-width:100%}}.code-window{background:#1e1e1ecc;border-radius:8px;border:1px solid rgba(255,255,255,.1);overflow:hidden;box-shadow:0 10px 40px #0000004d,inset 0 1px #ffffff0d;position:relative}.code-header{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#252526e6;border-bottom:1px solid rgba(255,255,255,.05)}.code-header .file-icon{display:flex;align-items:center}.code-header .file-name{font-family:Source Code Pro,monospace;font-size:13px;color:#d3d3d3}.code-editor{min-height:350px;font-size:13px!important;line-height:1.6!important}@media (max-width: 600px){.code-editor{min-height:280px;font-size:11px!important}}.code-editor textarea{outline:none!important}.typing-cursor{position:absolute;bottom:24px;color:#569cd6;font-family:Source Code Pro,monospace;animation:blink 1s step-end infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.hero-cta{display:flex;gap:12px;margin-top:24px;opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}.hero-cta.visible{opacity:1;transform:translateY(0)}@media (max-width: 600px){.hero-cta{justify-content:center}}.cta-button{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:6px;font-family:Source Code Pro,monospace;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.cta-button.primary{background:linear-gradient(135deg,#3178c6,#235a9e);color:#fff;border:1px solid rgba(255,255,255,.1)}.cta-button.primary:hover{background:linear-gradient(135deg,#3d8be0,#2d6bb8);transform:translateY(-2px);box-shadow:0 4px 15px #3178c64d}.cta-button.secondary{background:#ffffff0d;color:#d3d3d3;border:1px solid rgba(255,255,255,.1)}.cta-button.secondary:hover{background:#ffffff1a;transform:translateY(-2px)}.git-timeline{padding:40px 20px;background:#1c2024}@media (max-width: 600px){.git-timeline{padding:30px 15px}}.section-header{max-width:900px;margin:0 auto 40px}.terminal-prompt{display:inline-flex;align-items:center;gap:10px;background:#0000004d;padding:12px 20px;border-radius:6px;font-family:Source Code Pro,monospace;font-size:14px}.timeline-container{max-width:900px;margin:0 auto}.timeline-graph{display:flex;flex-direction:column}.timeline-item{display:flex;gap:20px;position:relative;cursor:pointer}@media (max-width: 600px){.timeline-item{gap:12px}}.timeline-item:hover .commit-content{background:#ffffff08}.timeline-item.expanded .commit-content{background:#ffffff0d}.graph-column{width:40px;display:flex;flex-direction:column;align-items:center;position:relative;flex-shrink:0}@media (max-width: 600px){.graph-column{width:30px}}.graph-lines{position:absolute;top:0;bottom:0;width:100%}.graph-lines .main-line{position:absolute;left:50%;transform:translate(-50%);width:2px;top:0;bottom:0;opacity:.5}.graph-lines .parallel-line{position:absolute;left:calc(50% + 12px);width:2px;top:0;bottom:0;background:#3b82f6;opacity:.3}.graph-lines .branch-start{position:absolute;left:50%;top:20px;width:24px;height:24px;border-left:2px solid #3b82f6;border-bottom:2px solid #3b82f6;border-radius:0 0 0 12px;opacity:.3}.graph-lines .branch-merge{position:absolute;left:calc(50% + 12px);top:20px;width:12px;height:24px;border-right:2px solid #3b82f6;border-top:2px solid #3b82f6;border-radius:0 12px 0 0;opacity:.3}.commit-dot{width:16px;height:16px;border-radius:50%;position:relative;z-index:2;margin-top:12px;flex-shrink:0;transition:transform .2s ease,box-shadow .2s ease}.commit-dot:hover{transform:scale(1.2);box-shadow:0 0 15px currentColor}.commit-dot .dot-inner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;background:#1c2024;border-radius:50%}.commit-content{flex:1;padding:12px 16px;border-radius:6px;transition:background .2s ease;margin-bottom:8px}@media (max-width: 600px){.commit-content{padding:10px 12px}}.commit-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-family:Source Code Pro,monospace;font-size:14px}@media (max-width: 600px){.commit-header{font-size:12px;gap:8px}}.commit-hash{color:#f59e0b;font-weight:600}@media (max-width: 600px){.commit-hash{display:none}}.commit-message{color:#d3d3d3}.commit-message .commit-type{color:#10b981}.commit-message .commit-scope{color:#3b82f6}.commit-message .commit-title{color:#d3d3d3}.commit-date{color:#9ea5b4;margin-left:auto;font-size:12px}@media (max-width: 600px){.commit-date{width:100%;margin-left:0;margin-top:4px}}.commit-details{max-height:0;overflow:hidden;transition:max-height .3s ease,opacity .3s ease;opacity:0}.commit-details.visible{max-height:500px;opacity:1}.details-content{padding-top:16px;border-top:1px solid rgba(255,255,255,.1);margin-top:12px}.company-badge{display:inline-block;padding:4px 12px;border-radius:4px;border:1px solid;font-family:Source Code Pro,monospace;font-size:12px;color:#d3d3d3;background:#ffffff0d;margin-bottom:12px}.description{color:#9ea5b4;font-size:14px;line-height:1.6;margin-bottom:16px}@media (max-width: 600px){.description{font-size:13px}}.achievements{margin-bottom:16px}.achievements .label{color:#9ea5b4;font-size:12px;text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:8px}.achievements ul{list-style:none;padding:0;margin:0}.achievements li{display:flex;align-items:flex-start;gap:8px;padding:4px 0;font-size:13px;color:#d3d3d3;font-family:Source Code Pro,monospace}.achievements li .diff-add{color:#10b981;font-weight:700;flex-shrink:0}.achievements li .inline-link{background:none;border:none;padding:0;font-family:inherit;font-size:inherit;color:#a855f7;text-decoration:underline;text-decoration-style:dotted;text-decoration-color:#a855f7;text-underline-offset:3px;cursor:pointer;transition:all .2s ease}.achievements li .inline-link:hover{color:#c084fc;text-decoration-color:#c084fc}.achievements li .inline-link.external{color:#3b82f6;text-decoration-color:#3b82f6}.achievements li .inline-link.external:hover{color:#60a5fa;text-decoration-color:#60a5fa}.tech-stack{display:flex;flex-wrap:wrap;gap:8px}.tech-badge{padding:4px 10px;background:#ffffff14;border-radius:4px;font-size:11px;font-family:Source Code Pro,monospace;color:#9ea5b4;border:1px solid rgba(255,255,255,.1)}.timeline-legend{display:flex;justify-content:center;gap:24px;margin-top:40px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1)}@media (max-width: 600px){.timeline-legend{flex-wrap:wrap;gap:16px}}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#9ea5b4;font-family:Source Code Pro,monospace}.legend-dot{width:10px;height:10px;border-radius:50%}.skills-section{padding:50px 20px;background:#1c2024}@media (max-width: 600px){.skills-section{padding:40px 15px}}.skills-container{max-width:900px;margin:0 auto}.section-header{margin-bottom:40px}.section-title .title-bracket{color:#f59e0b}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px}@media (max-width: 600px){.skills-grid{grid-template-columns:1fr;gap:20px}}.skill-category{background:#ffffff05;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:20px;transition:all .2s ease}.skill-category:hover{background:#ffffff0a;border-color:#ffffff1a}.category-name{font-family:Source Code Pro,monospace;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:#9ea5b4;margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}.skill-tags{display:flex;flex-direction:column;gap:12px}.skill-tag{display:flex;flex-direction:column;gap:6px}.skill-name{font-family:Source Code Pro,monospace;font-size:13px;color:#d3d3d3}.skill-bar{height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.skill-fill{height:100%;width:var(--proficiency);background:linear-gradient(90deg,#3178c6,#10b981);border-radius:2px;transition:width .5s ease}.live-projects{padding:50px 20px;background:#23272f}@media (max-width: 600px){.live-projects{padding:40px 15px}}.section-container{max-width:900px;margin:0 auto}.terminal-prompt{display:inline-flex;align-items:center;gap:10px;background:#0000004d;padding:10px 16px;border-radius:6px;font-family:Source Code Pro,monospace;font-size:13px;margin-bottom:16px}.terminal-prompt .prompt-command{color:#d3d3d3}.terminal-prompt .status-indicator{color:#9ea5b4;transition:color .3s ease}.terminal-prompt .status-indicator.done{color:#10b981}.section-title{display:flex;align-items:center;gap:12px;font-family:Source Code Pro,monospace;font-size:24px;font-weight:600;color:#d3d3d3;margin:0}.section-title .title-icon{color:#10b981;animation:blink-status 2s ease-in-out infinite}@keyframes blink-status{0%,to{opacity:1}50%{opacity:.5}}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}@media (max-width: 600px){.projects-grid{grid-template-columns:1fr;gap:12px}}.project-card{position:relative;display:flex;flex-direction:column;padding:20px;background:#25252699;border:1px solid rgba(255,255,255,.08);border-radius:8px;text-decoration:none;transition:all .3s ease;overflow:hidden}.project-card:hover{background:#252526e6;border-color:#ffffff26;transform:translateY(-4px);box-shadow:0 10px 30px #0000004d}.project-card:hover .external-icon{opacity:1;transform:translate(0)}.project-card.loading{pointer-events:none}@media (max-width: 600px){.project-card{padding:14px}}.card-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;position:relative}.status-dot.online{background:#10b981;box-shadow:0 0 10px #10b98180}.status-dot.checking{background:#f59e0b}.status-dot.checking .dot-pulse{position:absolute;top:0;left:0;width:100%;height:100%;background:#f59e0b;border-radius:50%;animation:pulse-check 1s ease-in-out infinite}@keyframes pulse-check{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:0}}.project-name{font-family:Source Code Pro,monospace;font-size:16px;font-weight:600;color:#d3d3d3}@media (max-width: 600px){.project-name{font-size:14px}}.project-description{flex:1;font-size:13px;color:#9ea5b4;line-height:1.5;margin:0 0 16px}@media (max-width: 600px){.project-description{font-size:12px;margin-bottom:12px}}.card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.project-url{font-family:Source Code Pro,monospace;font-size:11px;color:#3178c6;background:#3178c61a;padding:4px 8px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.external-icon{color:#9ea5b4;opacity:0;transform:translate(-5px);transition:all .2s ease;flex-shrink:0}.loading-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#252526cc;display:flex;align-items:center;justify-content:center;border-radius:8px}.skeleton-shimmer{width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.05) 50%,transparent 100%);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.contact-section{padding:40px 20px 100px;background:#1c2024}@media (max-width: 600px){.contact-section{padding:30px 15px 100px}}.contact-container{max-width:800px;margin:0 auto}.contact-header{text-align:center;margin-bottom:40px}.contact-header h2{font-family:Source Code Pro,monospace;font-size:28px;font-weight:600;color:#d3d3d3;margin:0 0 12px}@media (max-width: 600px){.contact-header h2{font-size:24px}}.contact-header p{font-size:15px;color:#9ea5b4;margin:0}.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media (max-width: 600px){.contact-grid{grid-template-columns:1fr;gap:12px}}.contact-card{display:flex;align-items:center;gap:16px;padding:20px;background:#ffffff05;border:1px solid rgba(255,255,255,.06);border-radius:12px;text-decoration:none;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);font-family:inherit;position:relative;overflow:hidden}.contact-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);opacity:0;transition:opacity .25s ease}.contact-card:hover{background:#ffffff0d;border-color:#ffffff1f;transform:translateY(-3px);box-shadow:0 8px 25px #0003}.contact-card:hover:before{opacity:1}.contact-card:hover .card-action{opacity:1;color:#d3d3d3}.contact-card:hover .card-icon{transform:scale(1.05)}.contact-card.copied{border-color:#10b98166;background:#10b9811a}.contact-card.copied .card-icon{color:#10b981}.contact-card.copied .card-action{opacity:1;color:#10b981}@media (max-width: 600px){.contact-card{padding:16px;gap:12px}}.card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#ffffff0a;border-radius:10px;color:#9ea5b4;flex-shrink:0;transition:all .25s cubic-bezier(.4,0,.2,1)}.card-icon.github{color:#f0f6fc}.card-icon.linkedin{color:#0a66c2}.card-icon.blog{color:#10b981}@media (max-width: 600px){.card-icon{width:44px;height:44px}.card-icon svg{width:20px;height:20px}}.card-content{flex:1;display:flex;flex-direction:column;gap:4px;text-align:left}.card-label{font-size:12px;color:#9ea5b4;text-transform:uppercase;letter-spacing:.5px}.card-value{font-family:Source Code Pro,monospace;font-size:14px;color:#d3d3d3}@media (max-width: 600px){.card-value{font-size:13px}}.card-action{color:#9ea5b4;opacity:.5;transition:all .2s ease;flex-shrink:0}.contact-footer{display:flex;justify-content:center;gap:24px;margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08)}.contact-footer span{font-family:Source Code Pro,monospace;font-size:12px;color:#9ea5b4}@media (max-width: 600px){.contact-footer{gap:16px}}.copy-toast{position:fixed;bottom:50px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:12px 20px;background:#10b981f2;color:#fff;border-radius:8px;font-family:Source Code Pro,monospace;font-size:13px;box-shadow:0 4px 20px #0000004d;animation:toastIn .3s ease;z-index:1000}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:flex-end;z-index:1000;animation:fadeIn .2s ease;padding:20px}@media (max-width: 600px){.modal-overlay{padding:0;align-items:flex-end;justify-content:center}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-container{width:60%;max-width:700px;height:calc(100vh - 40px);background:#1c2024;border:1px solid rgba(255,255,255,.1);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;animation:slideIn .3s ease;box-shadow:-10px 0 40px #0006}@media (max-width: 600px){.modal-container{width:100%;height:90vh;max-width:none;border-radius:16px 16px 0 0;animation:slideUp .3s ease}}@keyframes slideIn{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#1e1e1ecc;border-bottom:1px solid rgba(255,255,255,.1)}.modal-header .header-left{display:flex;align-items:center;gap:8px}.modal-header .file-icon{font-size:14px}.modal-header .file-name{font-family:Source Code Pro,monospace;font-size:13px;color:#d3d3d3}.modal-header .close-button{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;cursor:pointer;color:#9ea5b4;transition:all .2s ease}.modal-header .close-button:hover{background:#ffffff1a;color:#d3d3d3}.modal-tabs{display:flex;gap:4px;padding:8px 16px;background:#25252699;border-bottom:1px solid rgba(255,255,255,.05);overflow-x:auto}.modal-tabs::-webkit-scrollbar{display:none}.tab-button{padding:8px 16px;background:transparent;border:none;border-radius:4px;font-family:Source Code Pro,monospace;font-size:12px;color:#9ea5b4;cursor:pointer;transition:all .2s ease;white-space:nowrap}.tab-button:hover{background:#ffffff0d;color:#d3d3d3}.tab-button.active{background:#3178c633;color:#3178c6}.modal-content{flex:1;overflow-y:auto;padding:24px}@media (max-width: 600px){.modal-content{padding:16px}}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:transparent}.modal-content::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.modal-content::-webkit-scrollbar-thumb:hover{background:#fff3}.tab-content{animation:contentFadeIn .2s ease}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.overview .project-title{font-family:Source Code Pro,monospace;font-size:28px;font-weight:700;color:#d3d3d3;margin:0 0 8px}@media (max-width: 600px){.overview .project-title{font-size:22px}}.overview .project-tagline{font-family:Source Code Pro,monospace;font-size:14px;color:#10b981;margin:0 0 24px;padding:12px 16px;background:#10b9811a;border-left:3px solid #10b981;border-radius:0 4px 4px 0}.content-section{margin-bottom:24px}.content-section h2{font-family:Source Code Pro,monospace;font-size:16px;font-weight:600;color:#3178c6;margin:0 0 12px}.content-section p{font-size:14px;line-height:1.7;color:#d3d3d3;margin:0}.feature-list{list-style:none;padding:0;margin:0}.feature-list li{display:flex;align-items:flex-start;gap:12px;padding:8px 0;font-size:14px;color:#d3d3d3;line-height:1.5}.feature-list li .bullet{color:#10b981;font-weight:700;flex-shrink:0}.visit-button{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#3178c6,#235a9e);color:#fff;border-radius:6px;font-family:Source Code Pro,monospace;font-size:13px;text-decoration:none;transition:all .2s ease;margin-top:16px}.visit-button:hover{background:linear-gradient(135deg,#3d8be0,#2d6bb8);transform:translateY(-2px);box-shadow:0 4px 15px #3178c64d}.architecture h2{font-family:Source Code Pro,monospace;font-size:16px;font-weight:600;color:#3178c6;margin:0 0 12px}.architecture p{font-size:14px;color:#9ea5b4;margin:0 0 20px}.architecture-diagram{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:20px;font-family:Source Code Pro,monospace;font-size:12px;line-height:1.4;color:#d3d3d3;overflow-x:auto;white-space:pre}@media (max-width: 600px){.architecture-diagram{font-size:10px;padding:12px}}.tech-stack h2{font-family:Source Code Pro,monospace;font-size:16px;font-weight:600;color:#3178c6;margin:0 0 20px}.tech-categories{display:flex;flex-direction:column;gap:24px}.tech-category h3{font-family:Source Code Pro,monospace;font-size:13px;font-weight:600;color:#9ea5b4;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.tech-badges{display:flex;flex-wrap:wrap;gap:8px}.tech-badge{padding:6px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:4px;font-family:Source Code Pro,monospace;font-size:12px;color:#d3d3d3;transition:all .2s ease}.tech-badge:hover{background:#3178c633;border-color:#3178c64d}.screenshot h2{font-family:Source Code Pro,monospace;font-size:16px;font-weight:600;color:#3178c6;margin:0 0 20px}.screenshot-container{border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 40px #0000004d}.project-screenshot{width:100%;height:auto;display:block}.status-bar{position:fixed;bottom:0;left:0;right:0;height:24px;background:#007acc;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-family:Source Code Pro,monospace;font-size:12px;color:#fff;z-index:100}@media (max-width: 600px){.status-bar{font-size:10px;padding:0 8px}}.status-left,.status-right{display:flex;align-items:center;gap:2px}.status-item{display:flex;align-items:center;gap:6px;padding:0 8px;height:24px;background:transparent;border:none;color:#fff;font-family:inherit;font-size:inherit;cursor:default;transition:background .15s ease}.status-item:hover{background:#ffffff1a}.status-item svg{opacity:.9}@media (max-width: 600px){.status-item{padding:0 6px;gap:4px}}.status-item.available{cursor:pointer}.status-item.available:hover{background:#ffffff26}.status-dot{width:8px;height:8px;background:#10b981;border-radius:50%;animation:pulse-availability 2s ease-in-out infinite}@keyframes pulse-availability{0%,to{opacity:1;box-shadow:0 0 #10b98166}50%{opacity:.8;box-shadow:0 0 0 4px #10b98100}}@media (max-width: 600px){.status-item.branch,.status-item.language{display:none}}.resume{background:#1c2024;min-height:100vh;padding-bottom:24px}html{scroll-behavior:smooth}.featured-projects{padding:50px 20px;background:linear-gradient(180deg,#23272f,#1f2229);border-top:1px solid rgba(255,255,255,.05)}@media (max-width: 600px){.featured-projects{padding:35px 15px}}.featured-container{max-width:900px;margin:0 auto}.section-header{margin-bottom:30px}.section-title{font-family:Source Code Pro,monospace;font-size:24px;font-weight:600;color:#d3d3d3;margin:0}.section-title .title-bracket{color:#3178c6}@media (max-width: 600px){.section-title{font-size:20px}}.project-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}@media (max-width: 600px){.project-cards{grid-template-columns:1fr;gap:16px}}.project-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:24px;background:#25252699;border:1px solid rgba(255,255,255,.08);border-radius:12px;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#3178c6,#10b981);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.project-card:hover{background:#252526e6;border-color:#ffffff26;transform:translateY(-4px);box-shadow:0 10px 40px #0000004d}.project-card:hover:before{transform:scaleX(1)}.project-card:hover .card-action svg{transform:translate(4px)}.project-card.compozerr:before{background:linear-gradient(90deg,#a855f7,#3178c6)}.project-card.starti:before{background:linear-gradient(90deg,#3178c6,#10b981)}.project-card .card-badge{padding:4px 10px;background:#3178c633;border-radius:4px;font-family:Source Code Pro,monospace;font-size:11px;color:#3178c6;margin-bottom:12px}.project-card h3{font-family:Source Code Pro,monospace;font-size:20px;font-weight:600;color:#d3d3d3;margin:0 0 8px}@media (max-width: 600px){.project-card h3{font-size:18px}}.project-card p{font-size:14px;color:#9ea5b4;line-height:1.6;margin:0 0 16px;flex:1}@media (max-width: 600px){.project-card p{font-size:13px}}.project-card .card-tech{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.project-card .card-tech span{padding:4px 10px;background:#ffffff14;border-radius:4px;font-family:Source Code Pro,monospace;font-size:11px;color:#9ea5b4}.project-card .card-action{display:flex;align-items:center;gap:8px;font-family:Source Code Pro,monospace;font-size:13px;color:#3178c6}.project-card .card-action svg{transition:transform .2s ease}.contact{display:grid;height:calc(100vh - 95px);background-color:#0cad5f}.copy{background:none;color:inherit;border:none;padding:0;font:inherit;cursor:copy!important;outline:inherit;pointer-events:all}span,textarea,code,pre{pointer-events:none}.nav-menu{position:sticky;top:0;z-index:100;width:100%;background-color:#23272f;border-bottom:1px solid rgba(255,255,255,.08)}.nav-content{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;max-width:100%;pointer-events:auto}@media (max-width: 600px){.nav-content{padding:10px 16px}}.window-dots{display:flex;gap:8px;flex-shrink:0}@media (max-width: 600px){.window-dots{display:none}}.dot{width:12px;height:12px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.dot.red{background-color:#ff5f57}.dot.yellow{background-color:#fdbc2e}.dot.green{background-color:#28c840}.dot .icon{width:8px;height:8px;opacity:0;transition:opacity .15s ease}.dot .icon.show{opacity:1}.dot .icon.icon-close{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1 1l8 8M9 1L1 9' stroke='%23000' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}.dot .icon.icon-minimize{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1 5h8' stroke='%23000' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}.dot .icon.icon-maximize{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1 3.5L5 8l4-4.5' stroke='%23000' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}.nav-path{display:flex;align-items:center;gap:6px;font-family:Source Code Pro,monospace;font-size:13px;flex:1;justify-content:center;margin:0 20px;position:relative;z-index:10}@media (max-width: 600px){.nav-path{display:none}}.path-prefix{color:#10b981;font-weight:500}.path-separator{color:#9ea5b4;opacity:.5}.section-links{display:flex;align-items:center;gap:4px;pointer-events:auto}.nav-link{background:none;border:none;padding:6px 12px;font-family:Source Code Pro,monospace;font-size:13px;color:#9ea5b4;cursor:pointer;border-radius:4px;transition:all .2s ease;position:relative;z-index:10;pointer-events:auto;-webkit-tap-highlight-color:transparent}.nav-link:hover{color:#d3d3d3;background:#ffffff1a;transform:translateY(-1px)}.nav-link:active{transform:translateY(0);background:#ffffff26}.nav-link.active{color:#d3d3d3;background:#3178c640}.nav-link.active:before{content:"";display:inline-block;width:6px;height:6px;background:#3178c6;border-radius:50%;margin-right:6px;box-shadow:0 0 8px #3178c680}.nav-link.active:hover{background:#3178c659}.link-separator{color:#9ea5b4;opacity:.3;font-size:12px}.mobile-menu-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;width:36px;height:36px;background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:6px;cursor:pointer;padding:8px;gap:4px;transition:all .2s ease}@media (max-width: 600px){.mobile-menu-toggle{display:flex}}.mobile-menu-toggle:hover{background:#ffffff14;border-color:#ffffff40}.mobile-menu-toggle .hamburger-line{width:16px;height:2px;background:#d3d3d3;border-radius:1px;transition:all .3s cubic-bezier(.68,-.55,.265,1.55)}.mobile-menu-toggle.open{border-color:#3178c6}.mobile-menu-toggle.open .hamburger-line:nth-child(1){transform:rotate(45deg) translate(4px,4px)}.mobile-menu-toggle.open .hamburger-line:nth-child(2){opacity:0;transform:scaleX(0)}.mobile-menu-toggle.open .hamburger-line:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}.mobile-menu{display:none;position:absolute;top:100%;left:0;right:0;background:linear-gradient(180deg,#23272f,#1c2026);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 20px 40px #0006;max-height:0;overflow:hidden;opacity:0;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s ease}@media (max-width: 600px){.mobile-menu{display:block}}.mobile-menu.open{max-height:400px;opacity:1}.mobile-menu-header{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06);background:#0003}.terminal-prompt{display:flex;align-items:center;gap:6px;font-family:Source Code Pro,monospace;font-size:12px}.terminal-prompt .prompt-symbol{color:#10b981}.terminal-prompt .prompt-text{color:#9ea5b4}.terminal-prompt .cursor-blink{color:#3178c6;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.mobile-menu-links{padding:8px 0}.mobile-nav-link{display:flex;align-items:center;width:100%;padding:14px 16px;background:transparent;border:none;cursor:pointer;font-family:Source Code Pro,monospace;font-size:14px;color:#9ea5b4;text-align:left;transition:all .2s ease;animation:slideIn .3s ease backwards}.mobile-nav-link:hover{background:#ffffff0d;color:#d3d3d3}.mobile-nav-link:hover .link-prefix{color:#10b981}.mobile-nav-link.active{background:#3178c626;color:#d3d3d3}.mobile-nav-link.active .link-prefix{color:#3178c6}.mobile-nav-link.active .link-name{color:#d3d3d3}.mobile-nav-link .link-prefix{color:#9ea5b4;margin-right:4px;transition:color .2s ease}.mobile-nav-link .link-name{flex:1}.mobile-nav-link .active-indicator{color:#10b981;display:flex;align-items:center}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.mobile-menu-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:-1}@media (max-width: 600px){.mobile-menu-overlay{display:block}}.layout{padding:0}@media (max-width: 600px){.w-tc-editor{font-size:2.6vw}}.loading-screen{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0d1117;z-index:9999;display:flex;align-items:center;justify-content:center;overflow:hidden}.loading-screen:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:50px 50px;mask-image:radial-gradient(ellipse 60% 50% at 50% 50%,transparent 0%,transparent 30%,rgba(0,0,0,.5) 60%,rgb(0,0,0) 100%);-webkit-mask-image:radial-gradient(ellipse 60% 50% at 50% 50%,transparent 0%,transparent 30%,rgba(0,0,0,.5) 60%,rgb(0,0,0) 100%);pointer-events:none}.loading-screen.exiting{animation:fadeOut .6s ease-out forwards}@keyframes fadeOut{to{opacity:0}}.loading-content{display:flex;flex-direction:column;align-items:center;gap:16px}.logo{height:48px;width:auto;animation:fadeIn .6s ease-out,pulse 2s ease-in-out .6s infinite}.tagline{font-family:Source Code Pro,monospace;font-size:14px;color:#7d8590;letter-spacing:1px;opacity:0;transform:translateY(5px);transition:all .5s ease-out}.tagline.visible{opacity:1;transform:translateY(0)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}
