@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--navy: #0a192f;--navy-light: #112240;--navy-lighter: #1d3461;--text-heading: #e6f1ff;--text-body: #ccd6f6;--text-muted: #8892b0;--text-disabled: #495670;--teal: #64ffda;--teal-dim: rgba(100, 255, 218, .1);--teal-border: rgba(100, 255, 218, .2);--teal-glow: rgba(100, 255, 218, .05);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Fira Mono", monospace;--sidebar-width: 40%;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--transition: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--navy);color:var(--text-body);line-height:1.6;overflow-x:hidden;min-height:100vh}a{text-decoration:none;color:inherit}::selection{background:var(--teal);color:var(--navy)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--navy-light)}::-webkit-scrollbar-thumb{background:var(--navy-lighter);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--teal)}#root{display:flex;min-height:100vh;max-width:none;margin:0;padding:0;text-align:left}.layout-sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;display:flex;flex-direction:column;padding:5rem 4rem;z-index:10;overflow:hidden}.layout-content{margin-left:var(--sidebar-width);width:calc(100% - var(--sidebar-width));min-height:100vh}@media(max-width:1024px){#root{flex-direction:column}.layout-sidebar{position:relative;width:100%;height:auto;padding:2.5rem 2rem 1.5rem}.layout-content{margin-left:0;width:100%}}.sidebar-name{font-size:clamp(1.75rem,2.5vw,2.75rem);font-weight:800;color:var(--text-heading);line-height:1.1;margin-bottom:.5rem;letter-spacing:-.02em}.sidebar-title{font-size:.975rem;font-weight:500;color:var(--text-body);margin-bottom:1rem;line-height:1.4}.sidebar-tagline{font-size:.875rem;color:var(--text-muted);line-height:1.7;max-width:300px;margin-bottom:2.5rem}.sidebar-badge{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:2.5rem;padding:.375rem .875rem;border:1px solid var(--teal-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.7rem;color:var(--teal);text-transform:uppercase;letter-spacing:.1em;width:fit-content}.sidebar-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--teal);animation:badge-pulse 2s ease-in-out infinite}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.2}}.sidebar-nav{list-style:none;display:flex;flex-direction:column;gap:0;margin-bottom:auto}.sidebar-nav-link{display:flex;align-items:center;gap:1rem;padding:.625rem 0;color:var(--text-muted);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;transition:color var(--transition);cursor:pointer;background:none;border:none}.sidebar-nav-link:before{content:"";display:block;height:1px;width:24px;background:currentColor;flex-shrink:0;transition:width var(--transition)}.sidebar-nav-link:hover,.sidebar-nav-link.active{color:var(--text-heading)}.sidebar-nav-link.active:before{width:52px}.sidebar-terminal-btn{display:flex;align-items:center;gap:.5rem;margin-top:auto;margin-bottom:1.5rem;background:transparent;border:1px solid var(--teal-border);color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;padding:.5rem .875rem;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--transition),border-color var(--transition);width:fit-content}.sidebar-terminal-btn:hover{color:var(--teal);border-color:var(--teal)}.sidebar-terminal-hint{margin-left:.25rem;font-size:.7rem;color:var(--text-disabled);background:var(--navy-lighter);padding:0 .3rem;border-radius:2px}.sidebar-social{display:flex;gap:1.5rem;margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--navy-lighter)}.sidebar-social a{color:var(--text-muted);display:flex;align-items:center;transition:color var(--transition),transform var(--transition)}.sidebar-social a:hover{color:var(--teal);transform:translateY(-3px)}@media(max-width:1024px){.sidebar-nav{flex-direction:row;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.sidebar-nav-link:before{display:none}.sidebar-nav-link{padding:.35rem .875rem;border:1px solid var(--navy-lighter);border-radius:var(--radius-sm)}.sidebar-nav-link.active{border-color:var(--teal-border);color:var(--teal);background:var(--teal-dim)}.sidebar-social{margin-top:1rem;padding-top:1rem}.sidebar-tagline{display:none}}.section-number{font-family:var(--font-mono);font-size:.875rem;color:var(--teal);margin-bottom:.5rem}.section-heading{font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700;color:var(--text-heading);display:flex;align-items:center;gap:1.25rem;margin-bottom:3rem;white-space:nowrap}.section-heading:after{content:"";display:block;height:1px;flex:1;background:var(--navy-lighter);min-width:40px}.card{background:var(--navy-light);border:1px solid var(--navy-lighter);border-radius:var(--radius-lg);transition:border-color var(--transition),background var(--transition),transform var(--transition)}.card:hover{background:var(--teal-glow);border-color:var(--teal-border);transform:translateY(-2px)}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.75rem;border:1px solid var(--teal);border-radius:var(--radius-md);background:transparent;color:var(--teal);font-family:var(--font-mono);font-size:.875rem;cursor:pointer;transition:background var(--transition),box-shadow var(--transition);text-decoration:none}.btn-primary:hover{background:var(--teal-dim);box-shadow:0 0 20px #64ffda26}.btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.875rem 1.75rem;border:1px solid var(--text-muted);border-radius:var(--radius-md);background:transparent;color:var(--text-body);font-family:var(--font-mono);font-size:.875rem;cursor:pointer;transition:border-color var(--transition),color var(--transition);text-decoration:none}.btn-secondary:hover{border-color:var(--teal);color:var(--teal)}.accent{color:var(--teal);font-family:var(--font-mono)}.tech-tag{font-family:var(--font-mono);font-size:.72rem;color:var(--teal);background:var(--teal-dim);padding:.25rem .625rem;border-radius:var(--radius-sm);white-space:nowrap}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.terminal-overlay{position:fixed;inset:0;background:#000000d9;z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem}.terminal-window{width:100%;max-width:740px;max-height:80vh;background:#0d1117;border:1px solid #30363d;border-radius:var(--radius-md);display:flex;flex-direction:column;font-family:var(--font-mono);font-size:.875rem;overflow:hidden;box-shadow:0 24px 80px #000c}.terminal-titlebar{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#161b22;border-bottom:1px solid #30363d;flex-shrink:0}.terminal-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.terminal-dot-red{background:#ff5f56}.terminal-dot-yellow{background:#ffbd2e}.terminal-dot-green{background:#27c93f}.terminal-title{margin:0 auto;color:#8b949e;font-size:.78rem}.terminal-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem;color:#e6edf3;line-height:1.7;min-height:300px}.terminal-body::-webkit-scrollbar{width:4px}.terminal-body::-webkit-scrollbar-track{background:transparent}.terminal-body::-webkit-scrollbar-thumb{background:#30363d;border-radius:2px}.terminal-line{margin-bottom:.2rem;white-space:pre-wrap;word-break:break-word}.terminal-line-cmd{color:var(--teal)}.terminal-line-out{color:#8b949e}.terminal-line-info{color:#58a6ff}.terminal-prompt-row{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.terminal-prompt-label{color:var(--teal);flex-shrink:0;-webkit-user-select:none;user-select:none}.terminal-input{background:transparent;border:none;outline:none;color:#e6edf3;font-family:var(--font-mono);font-size:.875rem;flex:1;caret-color:var(--teal);width:100%}.terminal-hint{text-align:center;color:#495670;font-family:var(--font-mono);font-size:.72rem;padding:.625rem;border-top:1px solid #30363d;flex-shrink:0}.achievement-toast{position:fixed;bottom:2rem;right:2rem;background:var(--navy-light);border:1px solid var(--teal-border);border-left:3px solid var(--teal);border-radius:var(--radius-md);padding:.875rem 1.25rem;font-family:var(--font-mono);color:var(--text-body);z-index:500;max-width:340px;box-shadow:0 8px 32px #00000080;pointer-events:none}.achievement-label{color:var(--teal);font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.3rem}.achievement-message{color:var(--text-heading);font-size:.8rem}.rpg-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem 2.5rem}@media(max-width:768px){.rpg-grid{grid-template-columns:1fr;gap:2rem}}.rpg-category-title{font-family:var(--font-mono);font-size:.72rem;color:var(--teal);text-transform:uppercase;letter-spacing:.15em;margin-bottom:1.25rem;padding-bottom:.5rem;border-bottom:1px solid var(--navy-lighter)}.rpg-skill-row{display:grid;grid-template-columns:auto 1fr 42px;align-items:center;gap:.75rem;padding:.375rem 0}.rpg-skill-name{font-family:var(--font-mono);font-size:.8rem;color:var(--text-heading);white-space:nowrap;min-width:0}.rpg-bar-track{height:6px;background:var(--navy-lighter);border-radius:2px;overflow:hidden}.rpg-bar-fill{height:100%;background:var(--teal);border-radius:2px;transform-origin:left}.rpg-level{font-family:var(--font-mono);font-size:.72rem;color:var(--teal);text-align:right}.rpg-skill-desc{grid-column:2 / 4;font-size:.72rem;color:var(--text-muted);margin-top:-.25rem;padding-bottom:.375rem;line-height:1.4}.hero-section{padding:6rem 4rem 4rem;max-width:680px}.hero-greeting{font-family:var(--font-mono);font-size:.975rem;color:var(--teal);margin-bottom:1.25rem}.hero-name{font-size:clamp(2.5rem,5vw,4rem);font-weight:800;color:var(--text-heading);line-height:1.05;letter-spacing:-.02em;margin-bottom:.5rem}.hero-role-line{font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:600;color:var(--text-muted);margin-bottom:1.75rem;min-height:2.2rem}.hero-role-text{color:var(--teal);font-family:var(--font-mono)}.hero-cursor{display:inline-block;width:3px;height:1.1em;background:var(--teal);margin-left:2px;vertical-align:text-bottom;animation:blink-cursor 1s infinite}.hero-description{font-size:1rem;color:var(--text-muted);line-height:1.8;max-width:580px;margin-bottom:2rem}.hero-stats{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);margin-bottom:2.5rem;display:flex;gap:1.5rem;flex-wrap:wrap}.hero-stat-item span{color:var(--teal);font-weight:500}.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}@media(max-width:1024px){.hero-section{padding:3rem 2rem 2.5rem}}.projects-section{padding:2rem 4rem 4rem}.projects-grid{display:flex;flex-direction:column;gap:1.25rem}.project-card{padding:1.75rem 2rem;display:grid;grid-template-columns:46px 1fr;gap:1.25rem 1.5rem;align-items:start}.project-icon-wrap{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border:1px solid var(--navy-lighter);border-radius:var(--radius-md);background:var(--navy);flex-shrink:0;margin-top:.2rem;transition:border-color var(--transition)}.card:hover .project-icon-wrap{border-color:var(--teal-border)}.project-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;flex-wrap:wrap}.project-name{font-size:1rem;font-weight:600;color:var(--text-heading);transition:color var(--transition)}.card:hover .project-name{color:var(--teal)}.project-category{font-family:var(--font-mono);font-size:.7rem;color:var(--teal);background:var(--teal-dim);padding:.2rem .5rem;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em}.project-description{font-size:.875rem;color:var(--text-muted);line-height:1.7;margin-bottom:1rem}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.project-highlights{list-style:none;margin-bottom:1rem}.project-highlights li{font-size:.82rem;color:var(--text-muted);padding:.2rem 0 .2rem 1rem;position:relative}.project-highlights li:before{content:"▸";position:absolute;left:0;color:var(--teal);font-size:.7rem;top:.25rem}.project-actions{display:flex;gap:.75rem;flex-wrap:wrap}.project-link{display:inline-flex;align-items:center;gap:.375rem;font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted);transition:color var(--transition)}.project-link:hover{color:var(--teal)}@media(max-width:1024px){.projects-section{padding:2rem}}@media(max-width:640px){.project-card{grid-template-columns:1fr}.project-icon-wrap{display:none}}.contact-section{padding:2rem 4rem 4rem}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.contact-card{padding:2rem}.contact-intro{font-size:.9rem;color:var(--text-muted);line-height:1.8;margin-bottom:1.75rem}.contact-links{display:flex;flex-direction:column;gap:.5rem}.contact-link{display:flex;align-items:center;gap:1rem;padding:.75rem;border-radius:var(--radius-md);transition:background var(--transition);color:var(--text-body)}.contact-link:hover{background:var(--teal-dim);color:var(--teal)}.contact-link-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--navy-lighter);border-radius:var(--radius-sm);flex-shrink:0;color:var(--teal)}.contact-link-label{font-size:.72rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono)}.contact-link-value{font-size:.875rem;color:var(--text-heading)}.contact-cta-title{font-size:1.25rem;font-weight:700;color:var(--text-heading);margin-bottom:.75rem}.contact-cta-text{font-size:.875rem;color:var(--text-muted);line-height:1.8;margin-bottom:1.5rem}.contact-services{list-style:none;margin-bottom:2rem}.contact-services li{font-size:.82rem;color:var(--text-muted);padding:.3rem 0 .3rem 1rem;position:relative}.contact-services li:before{content:"▸";position:absolute;left:0;color:var(--teal);font-size:.7rem;top:.4rem}@media(max-width:1024px){.contact-section{padding:2rem}}@media(max-width:768px){.contact-grid{grid-template-columns:1fr}}.footer{background:var(--navy-light);border-top:1px solid var(--navy-lighter);padding:1.75rem 4rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.footer-brand{font-family:var(--font-mono);font-size:.875rem;color:var(--text-heading);font-weight:600}.footer-center{font-size:.8rem;color:var(--text-disabled);text-align:center}.footer-hint{font-family:var(--font-mono);font-size:.72rem;color:var(--text-disabled)}@media(max-width:1024px){.footer{padding:1.5rem 2rem}}@media(max-width:640px){.footer{flex-direction:column;text-align:center}}.skills-section{padding:2rem 4rem 4rem}@media(max-width:1024px){.skills-section{padding:2rem}}
