@import"https://fonts.googleapis.com/css2?family=Fira+Code:wght@300;400;500;600;700&display=swap";:root{--bg-primary: #0a0a0a;--bg-secondary: #0d0d0d;--bg-card: #111111;--bg-card-hover: #161616;--green-primary: #00ff41;--green-secondary: #00b300;--green-dim: rgba(0, 255, 65, .07);--green-border: rgba(0, 255, 65, .18);--cyan: #00d4ff;--yellow: #f9ca24;--orange: #ff9f43;--purple: #a29bfe;--red: #ff4757;--text-primary: #c8ffc8;--text-secondary: #5a8a5a;--text-dim: #2a4a2a;--font-mono: "Fira Code", "JetBrains Mono", "Consolas", monospace;--glow: 0 0 8px rgba(0,255,65,.4), 0 0 16px rgba(0,255,65,.2);--glow-strong: 0 0 12px rgba(0,255,65,.8), 0 0 24px rgba(0,255,65,.4), 0 0 48px rgba(0,255,65,.15);--transition: .25s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--green-secondary) var(--bg-primary)}html::-webkit-scrollbar{width:5px}html::-webkit-scrollbar-track{background:var(--bg-primary)}html::-webkit-scrollbar-thumb{background:var(--green-secondary);border-radius:3px}body{font-family:var(--font-mono);background-color:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.7;overflow-x:hidden}::selection{background:#00ff4140;color:#fff}a{color:var(--green-primary);text-decoration:none;transition:color var(--transition),text-shadow var(--transition)}a:hover{color:#fff;text-shadow:var(--glow)}.scanlines{position:fixed;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.025) 2px,rgba(0,0,0,.025) 4px);pointer-events:none;z-index:9999}.app{position:relative;min-height:100vh}.section{padding:90px 24px;max-width:1120px;margin:0 auto}.section-header{margin-bottom:52px}.section-title{font-size:1.75rem;font-weight:700;color:var(--green-primary);text-shadow:var(--glow);letter-spacing:.04em;display:flex;align-items:center;gap:10px}.section-title:before{content:">";color:var(--green-secondary);animation:blink 1.2s step-end infinite}.section-subtitle{font-size:.82rem;color:var(--text-secondary);margin-top:6px}.section-subtitle:before{content:"// ";color:var(--text-dim)}.section-divider{height:1px;background:linear-gradient(90deg,var(--green-secondary) 0%,transparent 70%);margin-top:14px;opacity:.35}.card{background:var(--bg-card);border:1px solid var(--green-border);border-radius:3px;padding:24px;transition:border-color var(--transition),background var(--transition),box-shadow var(--transition)}.card:hover{border-color:#00ff4173;background:var(--bg-card-hover);box-shadow:0 0 20px #00ff410d}.tag{display:inline-block;padding:2px 8px;font-size:.72rem;border:1px solid var(--green-border);color:var(--green-primary);border-radius:2px;background:var(--green-dim);margin:2px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 22px;font-family:var(--font-mono);font-size:.85rem;font-weight:500;cursor:pointer;border-radius:3px;transition:all var(--transition);letter-spacing:.03em}.btn-primary{background:var(--green-primary);color:#000;border:1px solid var(--green-primary)}.btn-primary:hover{background:transparent;color:var(--green-primary);text-shadow:var(--glow);box-shadow:var(--glow)}.btn-outline{background:transparent;color:var(--green-primary);border:1px solid var(--green-border)}.btn-outline:hover{border-color:var(--green-primary);box-shadow:var(--glow);text-shadow:var(--glow)}.terminal-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:#1a1a1a;border-bottom:1px solid var(--green-border);border-radius:3px 3px 0 0}.terminal-dot{width:11px;height:11px;border-radius:50%}.terminal-dot.red{background:#ff5f57}.terminal-dot.yellow{background:#febc2e}.terminal-dot.green{background:#28c840}.terminal-title{margin-left:8px;font-size:.78rem;color:var(--text-secondary)}.terminal-body{padding:16px;background:#0d0d0d;border:1px solid var(--green-border);border-top:none;border-radius:0 0 3px 3px}.terminal-line{display:flex;align-items:center;margin:4px 0}.terminal-prompt{color:var(--green-primary);margin-right:6px}.terminal-cmd{color:var(--text-primary)}.terminal-output{color:var(--text-secondary);font-size:.8rem;padding-left:20px;margin:2px 0}.terminal-output.green,.terminal-cursor{color:var(--green-primary)}.blink{animation:blink 1s step-end infinite}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:14px 32px;background:#0a0a0ad9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color var(--transition),background var(--transition)}.navbar--scrolled{border-bottom-color:var(--green-border);background:#0a0a0af7}.navbar-brand{display:flex;align-items:center;font-size:.88rem;font-weight:600}.navbar-prompt{color:var(--green-primary);text-shadow:var(--glow)}.navbar-sep{color:var(--text-secondary);margin:0 1px}.navbar-path{color:var(--cyan)}.navbar-cursor{color:var(--green-primary);margin-left:3px;animation:blink 1s step-end infinite}.navbar-links{display:flex;list-style:none;gap:28px}.navbar-link{font-size:.82rem;color:var(--text-secondary);transition:color var(--transition);position:relative}.navbar-link:hover{color:var(--green-primary);text-shadow:var(--glow)}.navbar-link-prefix{color:var(--text-dim);transition:color var(--transition)}.navbar-link:hover .navbar-link-prefix{color:var(--green-secondary)}.navbar-cv-btn{position:absolute;left:50%;transform:translate(-50%);background:transparent;border:1px solid var(--green-primary);color:var(--green-primary);padding:5px 13px;border-radius:3px;font-family:var(--font-mono);font-size:.72rem;cursor:pointer;letter-spacing:.03em;transition:background var(--transition),color var(--transition);white-space:nowrap}.navbar-cv-btn:hover{background:var(--green-primary);color:#000}.hero{min-height:100vh;display:flex;align-items:center;justify-content:space-between;gap:48px;padding:100px 48px 60px;max-width:1120px;margin:0 auto;position:relative}.hero-content{flex:1;max-width:560px}.hero-meta{margin-bottom:20px}.hero-meta-line{font-size:.8rem;color:var(--text-secondary)}.hero-name{font-size:2.2rem;font-weight:700;margin-bottom:4px;line-height:1.2;animation:fadeInUp .6s ease both}.hero-name-prefix{color:var(--cyan)}.hero-name-text{color:var(--green-primary);text-shadow:var(--glow)}.hero-name-eq{color:var(--text-secondary);margin:0 6px}.hero-name-brace{color:var(--yellow)}.hero-role-line,.hero-location-line,.hero-status-line{font-size:1rem;padding-left:20px;margin:4px 0;animation:fadeInUp .6s ease both}.hero-role-line{animation-delay:.1s}.hero-location-line{animation-delay:.2s}.hero-status-line{animation-delay:.3s}.hero-key{color:var(--cyan)}.hero-string{color:var(--orange)}.hero-string.green{color:var(--green-primary)}.hero-typing{color:var(--orange)}.hero-cursor{color:var(--green-primary);font-size:.9rem}.hero-comma{color:var(--text-secondary)}.hero-close{color:var(--yellow);font-size:1.1rem;margin-bottom:32px;animation:fadeInUp .6s .4s ease both}.hero-actions{display:flex;gap:16px;flex-wrap:wrap;animation:fadeInUp .6s .5s ease both}.hero-terminal{flex:0 0 380px;animation:fadeInUp .8s .3s ease both}.about-grid{display:grid;grid-template-columns:200px 1fr;gap:48px;align-items:start}.avatar-container{display:flex;flex-direction:column;align-items:center;gap:16px}.avatar-placeholder{width:160px;height:192px;border-radius:4px;border:2px solid var(--green-border);background:var(--bg-card);overflow:hidden;position:relative;z-index:10000;transition:border-color var(--transition),box-shadow var(--transition)}.avatar-img{width:100%;height:100%;object-fit:cover;display:block}.avatar-placeholder:hover{border-color:var(--green-primary);box-shadow:var(--glow)}.avatar-initials{font-size:2.5rem;font-weight:700;color:var(--green-primary);text-shadow:var(--glow)}.avatar-status{display:flex;align-items:center;gap:8px;font-size:.75rem;color:var(--text-secondary);white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--green-primary);box-shadow:0 0 6px var(--green-primary);animation:pulse-glow 2s ease-in-out infinite}.about-code-block{display:flex;flex-direction:column;margin-bottom:20px}.code-comment{color:var(--text-dim);font-size:.8rem;line-height:1.5}.about-p{color:var(--text-primary);margin-bottom:14px;font-size:.9rem;opacity:.9}.highlight{color:var(--green-primary);font-weight:500}.about-stats{display:flex;gap:32px;margin-top:28px;padding-top:20px;border-top:1px solid var(--green-border)}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-value{font-size:1.8rem;font-weight:700;color:var(--green-primary);text-shadow:var(--glow);line-height:1}.stat-label{font-size:.72rem;color:var(--text-secondary)}.skills-section{background:linear-gradient(180deg,transparent 0%,rgba(0,255,65,.02) 50%,transparent 100%)}.skills-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}.skills-category-title{font-size:.9rem;font-weight:400;margin-bottom:20px;color:var(--text-secondary)}.code-key{color:var(--cyan)}.skill-bars{display:flex;flex-direction:column;gap:14px}.skill-bar-header{display:flex;justify-content:space-between;margin-bottom:5px;font-size:.82rem}.skill-name{color:var(--text-primary)}.skill-level{font-weight:600;font-size:.78rem}.skill-bar-track{height:6px;background:#ffffff0d;border-radius:2px;overflow:hidden;border:1px solid rgba(255,255,255,.05)}.skill-bar-fill{height:100%;border-radius:2px;position:relative;transition:width 1s ease}.skills-close{color:var(--text-secondary);font-size:.85rem;margin-top:8px}.soft-skills-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.soft-skill-tag{font-size:.82rem;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.soft-skill-prefix{color:var(--green-primary);font-weight:700}.software-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.exp-legend{display:flex;gap:20px;margin-bottom:32px;font-size:.78rem;color:var(--text-secondary)}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%}.exp-list{display:flex;flex-direction:column}.exp-item{display:flex;gap:0}.exp-timeline{display:flex;flex-direction:column;align-items:center;width:40px;flex-shrink:0;padding-top:6px}.exp-dot{width:12px;height:12px;border-radius:50%;border:2px solid;background:var(--bg-primary);flex-shrink:0;z-index:1}.exp-line{flex:1;width:1px;background:var(--green-border);margin-top:4px}.exp-item:last-child .exp-line{display:none}.exp-content{flex:1;margin-bottom:20px;margin-left:16px}.exp-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;flex-wrap:wrap;gap:8px}.exp-title{font-size:1rem;font-weight:600;margin-bottom:2px}.exp-company{font-size:.82rem;color:var(--text-secondary)}.exp-period{font-size:.75rem;color:var(--text-dim);white-space:nowrap;padding:3px 8px;border:1px solid var(--green-border);border-radius:2px}.exp-points{list-style:none;margin-bottom:14px}.exp-point{font-size:.82rem;color:var(--text-secondary);margin-bottom:5px;display:flex;gap:8px}.exp-point-prefix{color:var(--green-secondary);flex-shrink:0}.exp-tech{display:flex;flex-wrap:wrap;gap:4px}.edu-list{display:flex;flex-direction:column;gap:20px}.edu-period{font-size:.75rem;color:var(--text-dim);margin-bottom:6px}.edu-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:4px;display:flex;align-items:center;gap:6px}.edu-icon{font-style:normal}.edu-institution{font-size:.82rem;color:var(--green-primary);margin-bottom:12px;opacity:.8}.edu-details{list-style:none}.edu-detail{font-size:.8rem;color:var(--text-secondary);margin-bottom:4px;display:flex;gap:8px}.edu-detail-prefix{color:var(--cyan);flex-shrink:0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}.contact-code-block{background:var(--bg-card);border:1px solid var(--green-border);border-radius:3px;padding:28px}.contact-line{display:flex;align-items:center;gap:4px;margin-bottom:12px;font-size:.85rem;flex-wrap:wrap}.contact-line:last-child{margin-bottom:0}.code-sep{color:var(--text-secondary)}.code-string{color:var(--orange)}.code-string:hover{color:var(--green-primary)}.footer{border-top:1px solid var(--green-border);padding:20px 48px;background:var(--bg-secondary)}.footer-content{max-width:1120px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:var(--text-dim)}.footer-code{color:var(--text-secondary)}.footer-made{color:var(--text-dim)}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 4px var(--green-primary)}50%{box-shadow:0 0 12px var(--green-primary),0 0 24px var(--green-primary)}}@keyframes glitch{0%,to{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}80%{transform:translate(2px,-2px)}}.projects-list{display:flex;flex-direction:column;gap:24px}.project-header{margin-bottom:12px}.project-title-row{display:flex;align-items:center;gap:14px;margin-bottom:4px}.project-name{font-size:1.1rem;font-weight:600;color:var(--green-primary);text-shadow:var(--glow)}.project-status-badge{display:flex;align-items:center;gap:5px;font-size:.7rem;padding:2px 8px;border-radius:2px;border:1px solid rgba(40,200,64,.3);background:#28c84012;color:#28c840}.project-status-badge.live .project-status-dot{width:6px;height:6px;border-radius:50%;background:#28c840;box-shadow:0 0 5px #28c840;animation:pulse-glow 2s ease-in-out infinite}.project-url{font-size:.78rem;color:var(--text-secondary)}.project-url:hover{color:var(--cyan);text-shadow:0 0 8px var(--cyan)}.project-description{font-size:.85rem;color:var(--text-secondary);margin-bottom:14px;line-height:1.6}.project-tech{margin-bottom:16px}.project-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:0}.project-game{margin-top:20px;border:1px solid var(--green-border);border-radius:3px;overflow:hidden;animation:fadeInUp .3s ease both}.project-game-bar{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#1a1a1a;border-bottom:1px solid var(--green-border)}.project-game-title{margin-left:8px;font-size:.75rem;color:var(--text-secondary)}.ttt-container{padding:24px;max-width:360px;margin:0 auto}.ttt-score{display:flex;align-items:center;justify-content:center;gap:32px;margin-bottom:20px;padding:14px 20px;background:var(--bg-secondary);border:1px solid var(--green-border);border-radius:3px}.ttt-score-item{display:flex;flex-direction:column;align-items:center;gap:4px}.ttt-score-label{font-size:.7rem;color:var(--text-secondary)}.ttt-score-value{font-size:1.8rem;font-weight:700;line-height:1}.ttt-score-item.x .ttt-score-value{color:var(--green-primary);text-shadow:var(--glow)}.ttt-score-item.o .ttt-score-value{color:var(--cyan);text-shadow:0 0 8px var(--cyan)}.ttt-score-divider{font-size:.75rem;color:var(--text-dim)}.ttt-status{text-align:center;font-size:.82rem;margin-bottom:14px;min-height:20px}.ttt-status-win{color:var(--green-primary);text-shadow:var(--glow);font-weight:600}.ttt-status-draw{color:var(--yellow)}.ttt-status-turn{color:var(--text-secondary)}.ttt-prompt{color:var(--green-primary);margin-right:4px}.ttt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:16px}.ttt-cell{aspect-ratio:1;background:var(--bg-card);border:1px solid var(--green-border);border-radius:3px;font-family:var(--font-mono);font-size:2rem;font-weight:700;cursor:default;transition:all var(--transition);color:transparent;display:flex;align-items:center;justify-content:center;width:100%}.ttt-cell.clickable{cursor:pointer}.ttt-cell.clickable:hover{border-color:#00ff4173;background:#00ff410a}.ttt-cell.X{color:var(--green-primary);text-shadow:var(--glow)}.ttt-cell.O{color:var(--cyan);text-shadow:0 0 8px var(--cyan)}.ttt-cell.win.X{border-color:var(--green-primary);background:#00ff411a;box-shadow:inset 0 0 12px #00ff4126}.ttt-cell.win.O{border-color:var(--cyan);background:#00d4ff1a;box-shadow:inset 0 0 12px #00d4ff26}.ttt-reset{width:100%;justify-content:center}@media (max-width: 900px){.hero{flex-direction:column;padding:100px 24px 60px;text-align:left}.hero-terminal{flex:none;width:100%}.about-grid{grid-template-columns:1fr}.avatar-container{flex-direction:row;align-items:center}.skills-grid,.contact-grid{grid-template-columns:1fr}.navbar-links{display:none}}@media (max-width: 600px){.section{padding:60px 16px}.hero-name{font-size:1.5rem}.section-title{font-size:1.3rem}.about-stats{gap:20px}.exp-header{flex-direction:column}.footer-content{flex-direction:column;gap:6px;text-align:center}.navbar-cv-btn{display:none}}#cv-print{display:none}.cvp-page{font-family:Helvetica Neue,Arial,sans-serif;color:#1a202c;background:#fff;max-width:210mm;margin:0 auto;font-size:10pt;line-height:1.5}.cvp-header{display:flex;align-items:center;gap:20px;padding-bottom:14px;border-bottom:2px solid #2b6cb0;margin-bottom:16px}.cvp-avatar{width:86px;height:86px;border-radius:50%;object-fit:cover;flex-shrink:0}.cvp-name{font-size:22pt;font-weight:700;color:#1a365d;margin:0 0 3px;line-height:1.1}.cvp-subtitle{font-size:10pt;color:#4a5568;margin:0 0 8px;font-style:italic}.cvp-contact-row{display:flex;flex-wrap:wrap;gap:2px 16px;font-size:8.5pt;color:#4a5568}.cvp-body{display:grid;grid-template-columns:170px 1fr;gap:20px}.cvp-sidebar{border-right:1px solid #e2e8f0;padding-right:16px}.cvp-section{margin-bottom:14px}.cvp-section-title{font-size:9pt;font-weight:700;color:#2b6cb0;text-transform:uppercase;letter-spacing:.07em;margin:0 0 7px;padding-bottom:3px;border-bottom:1px solid #bee3f8}.cvp-skills-group{margin-bottom:9px}.cvp-skills-group-title{font-size:7.5pt;font-weight:600;color:#4a5568;text-transform:uppercase;letter-spacing:.05em;margin:0 0 3px}.cvp-skills-group ul,.cvp-soft-list,.cvp-lang-list{list-style:none;padding:0;margin:0;font-size:8.5pt;color:#2d3748}.cvp-skills-group ul li,.cvp-soft-list li,.cvp-lang-list li{padding:1px 0}.cvp-summary{font-size:9pt;color:#4a5568;margin:0;line-height:1.55}.cvp-exp-item,.cvp-edu-item{margin-bottom:9px;padding-bottom:9px;border-bottom:1px solid #f0f4f8}.cvp-exp-item:last-child,.cvp-edu-item:last-child{border-bottom:none;margin-bottom:0}.cvp-exp-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:2px}.cvp-exp-title{font-size:9.5pt;font-weight:600;color:#1a365d}.cvp-exp-company{font-size:8.5pt;color:#4a5568}.cvp-exp-period{font-size:8pt;color:#718096;white-space:nowrap;flex-shrink:0}.cvp-exp-tech{font-size:8pt;color:#2b6cb0;margin:2px 0 3px;font-style:italic}.cvp-exp-points{margin:0 0 0 14px;padding:0;font-size:8.5pt;color:#4a5568}.cvp-exp-points li{padding:1px 0}@media print{#app-container{display:none!important}#cv-print{display:block!important}@page{size:A4;margin:14mm 15mm}body{background:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
