@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap";.cursor-crosshair{cursor:crosshair}.navbar{position:fixed;top:0;left:0;right:0;height:64px;z-index:1000;transition:all var(--transition-normal);background-color:transparent}.navbar.scrolled{background-color:#0c0c0cd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.navbar-container{display:flex;align-items:center;justify-content:space-between;height:100%}.logo{display:flex;align-items:center;gap:.6rem;font-weight:600;font-size:1rem;font-family:var(--font-mono);color:var(--color-text-primary);letter-spacing:-.01em}.logo-icon{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1.5px solid var(--color-border-light);cursor:crosshair}.logo:hover .logo-icon{border-color:var(--color-border-light)}.photo-modal-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease}.photo-modal-content{position:relative;max-width:90%;max-height:90vh}.photo-modal-image{max-width:400px;max-height:90vh;width:auto;height:auto;border-radius:8px;border:1px solid var(--color-border-light)}.photo-modal-close{position:absolute;top:-12px;right:-12px;width:32px;height:32px;border-radius:50%;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-light);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.photo-modal-close:hover{background:var(--color-text-primary);color:var(--color-bg-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.nav-links{display:flex;gap:2rem;align-items:center}.nav-links a{color:var(--color-text-tertiary);font-weight:400;font-size:.875rem;position:relative;transition:color var(--transition-fast)}.nav-links a:hover,.nav-links a.active{color:var(--color-text-primary)}.nav-links a:after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--color-accent);transition:width var(--transition-fast)}.nav-links a.active:after,.nav-links a:hover:after{width:100%}.nav-actions{display:flex;align-items:center}.mobile-toggle{display:none;background:none;border:none;color:var(--color-text-primary)}.mobile-only-btn{display:none}@media(max-width:768px){.nav-links{position:fixed;top:64px;left:0;width:100%;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);flex-direction:column;padding:1.5rem;gap:1.25rem;transform:translateY(-100%);opacity:0;transition:transform .3s ease,opacity .3s ease;pointer-events:none}.nav-links.mobile-open{transform:translateY(0);opacity:1;pointer-events:all}.desktop-only-btn{display:none}.mobile-only-btn{display:flex;width:100%}.mobile-toggle{display:block}}.hero{padding-top:120px;padding-bottom:3rem;overflow:hidden;position:relative}.hero-container{display:flex;align-items:center;justify-content:space-between;gap:4rem;margin-bottom:6rem}.hero-content{flex:1;max-width:520px;display:flex;flex-direction:column;align-items:flex-start;text-align:left}.hero-greeting{font-size:1rem;color:var(--color-text-tertiary);margin-bottom:.5rem;font-family:var(--font-mono)}.hero-title{font-size:clamp(2.5rem,3vw + 1rem,3.75rem);line-height:1.1;font-weight:700;color:var(--color-text-primary);margin-bottom:.5rem;letter-spacing:-.03em;font-family:var(--font-mono)}.cursor{color:var(--color-accent);animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.hero-role{font-size:clamp(1rem,.5vw + .8rem,1.2rem);color:var(--color-accent);margin-bottom:1.25rem;font-weight:500}.hero-subtitle{font-size:clamp(.95rem,.3vw + .8rem,1.1rem);color:var(--color-text-secondary);margin-bottom:2rem;line-height:1.7;max-width:95%}.hero-actions{display:flex;gap:.75rem}.hero-terminal{flex:1.2;max-width:600px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.terminal-header{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.terminal-dots{display:flex;gap:6px}.dot{width:10px;height:10px;border-radius:50%}.dot-red{background:#ff5f57}.dot-yellow{background:#febc2e}.dot-green{background:#28c840}.terminal-title{font-size:.75rem;color:var(--color-text-tertiary);font-family:var(--font-mono)}.terminal-body{padding:1.25rem;font-family:var(--font-mono);font-size:clamp(.8rem,.2vw + .7rem,.9rem);line-height:1.7;color:var(--color-accent);min-height:200px;margin:0;white-space:pre;overflow-x:auto}.terminal-body code{font-family:inherit}.terminal-cursor{color:var(--color-accent);animation:blink .8s step-end infinite}.hero-carousel-wrapper{width:100%;overflow:hidden;position:relative;padding:1.25rem 0;margin-top:2rem;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 8%,black 92%,transparent)}.hero-carousel-track{display:flex;gap:3rem;width:max-content;animation:scroll 50s linear infinite}.hero-carousel-track:hover{animation-play-state:paused}.carousel-item{display:flex;align-items:center;gap:.5rem;color:var(--color-text-secondary);white-space:nowrap;transition:color var(--transition-fast)}.carousel-item:hover{color:var(--color-text-primary)}.carousel-icon{width:24px;height:24px;object-fit:contain;opacity:.9;transition:opacity var(--transition-fast)}.carousel-item:hover .carousel-icon{opacity:1}.carousel-name{font-weight:500;font-size:.85rem;font-family:var(--font-mono);letter-spacing:.02em}@keyframes scroll{0%{transform:translate(0)}to{transform:translate(-33.333%)}}@media(max-width:968px){.hero-container{flex-direction:column;text-align:center;gap:2.5rem}.hero-content{align-items:center;text-align:center;max-width:100%}.hero-title{font-size:2.25rem}.hero-terminal{max-width:100%}.hero-carousel-track{gap:2rem;animation-duration:25s}}.features-section{background-color:var(--color-bg-primary)}.dev-activity-bar{display:flex;align-items:center;gap:.6rem;padding:.5rem .9rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-tertiary);margin-bottom:2.5rem;width:fit-content}.activity-dot{width:7px;height:7px;border-radius:50%;background:var(--color-text-tertiary)}.activity-dot.active{background:var(--color-accent);box-shadow:0 0 6px #4ec9b066}.activity-text{color:var(--color-text-tertiary)}.activity-separator{color:var(--color-border-light)}.activity-branch{color:var(--color-accent);padding:.1rem .4rem;background:#4ec9b014;border-radius:3px}.section-header{margin-bottom:2.5rem}.section-title{font-size:2rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em}.section-subtitle{font-size:1rem;color:var(--color-text-secondary);max-width:550px;margin-top:.5rem}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.feature-card{background:var(--color-bg-secondary);transition:background var(--transition-fast);position:relative}.feature-card:hover{background:var(--color-bg-tertiary)}.card-content{padding:2rem 1.75rem 1.75rem;display:flex;flex-direction:column;align-items:flex-start;position:relative}.feature-line-number{position:absolute;top:.6rem;right:.8rem;font-family:var(--font-mono);font-size:.65rem;color:var(--color-border-light);opacity:.6;-webkit-user-select:none;user-select:none}.feature-card:hover .feature-line-number{color:var(--color-accent);opacity:.8}.feature-icon-wrapper{width:40px;height:40px;display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem}.feature-icon{width:28px;height:28px;object-fit:contain;opacity:.85;transition:opacity var(--transition-fast)}.feature-card:hover .feature-icon{opacity:1}.feature-title{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text-primary);font-family:var(--font-mono)}.feature-description{color:var(--color-text-secondary);line-height:1.6;font-size:.875rem}.dev-footer-line{display:flex;align-items:center;gap:.5rem;margin-top:2rem;padding:.6rem 1rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-tertiary);width:fit-content}.line-prompt{color:var(--color-accent);font-weight:700}.line-command{color:var(--color-text-secondary)}.line-result{color:#28c840;margin-left:.5rem}@media(max-width:640px){.features-grid{grid-template-columns:1fr}.dev-activity-bar{flex-wrap:wrap}}.focus-section{padding:5rem 0;background-color:var(--color-bg-primary)}.focus-block{display:flex;align-items:flex-start;gap:4rem;margin-bottom:5rem}.focus-block:last-of-type{margin-bottom:2rem}.focus-block.reverse{flex-direction:row-reverse}.focus-content{flex:1}.focus-file-tab{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-tertiary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.25rem .6rem;margin-bottom:1rem}.file-dot{width:6px;height:6px;border-radius:50%;background:var(--color-accent)}.focus-tag{font-family:var(--font-mono);font-size:.8rem;color:var(--color-accent);display:inline-block;margin-bottom:.75rem;margin-left:1rem}.focus-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin-bottom:1rem;line-height:1.3;letter-spacing:-.01em}.focus-text{font-size:.95rem;color:var(--color-text-secondary);margin-bottom:1.25rem;line-height:1.6}.focus-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.focus-list li{font-size:.8rem;color:var(--color-text-secondary);font-family:var(--font-mono);line-height:1.5;display:flex;align-items:baseline;gap:.75rem}.list-line-num{color:var(--color-border-light);font-size:.65rem;min-width:1.2rem;-webkit-user-select:none;user-select:none}.focus-actions{display:flex;gap:.75rem}.focus-image-wrapper{flex:1;border-radius:var(--radius-md);overflow:hidden;background-color:var(--color-bg-secondary);border:1px solid var(--color-border)}.image-tab-bar{display:flex;align-items:center;gap:6px;padding:.5rem .75rem;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.tab-dot{width:8px;height:8px;border-radius:50%}.tab-dot.red{background:#ff5f57}.tab-dot.yellow{background:#febc2e}.tab-dot.green{background:#28c840}.tab-filename{font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-tertiary);margin-left:.5rem}.focus-img{width:100%;height:auto;display:block;transition:transform var(--transition-normal)}.focus-image-wrapper:hover .focus-img{transform:scale(1.01)}.commit-line{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-tertiary);width:fit-content;margin-top:1rem}.commit-hash{color:var(--color-accent);background:#4ec9b014;padding:.1rem .4rem;border-radius:3px}.commit-msg{color:var(--color-text-secondary)}.commit-time{color:var(--color-text-tertiary);opacity:.7}@media(max-width:968px){.focus-block{flex-direction:column;gap:2rem;margin-bottom:4rem}.focus-block.reverse{flex-direction:column}.commit-line{flex-wrap:wrap}}.footer{background-color:var(--color-bg-secondary);color:var(--color-text-primary);padding:4rem 0 1.5rem;border-top:1px solid var(--color-border)}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:4rem;margin-bottom:3rem}.footer-brand{font-size:1.1rem;font-weight:600;margin-bottom:.75rem;color:var(--color-text-primary);font-family:var(--font-mono)}.footer-desc{color:var(--color-text-tertiary);margin-bottom:1.25rem;line-height:1.6;font-size:.875rem}.contact-info{display:flex;flex-direction:column;gap:.4rem;color:var(--color-text-secondary);font-size:.8rem}.contact-item{display:flex;align-items:center;gap:.4rem}.social-links{display:flex;gap:.75rem;margin-top:1.25rem}.social-link{color:var(--color-text-tertiary);transition:color var(--transition-fast)}.social-link:hover{color:var(--color-accent)}.footer-heading{font-size:.75rem;font-weight:600;margin-bottom:1.25rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-tertiary);font-family:var(--font-mono)}.footer-links{list-style:none;display:flex;flex-direction:column;gap:.6rem}.footer-links a{color:var(--color-text-secondary);font-size:.875rem;transition:color var(--transition-fast)}.footer-links a:hover{color:var(--color-text-primary)}.footer-bottom{padding-top:1.5rem;border-top:1px solid var(--color-border);color:var(--color-text-tertiary);font-size:.75rem;font-family:var(--font-mono)}@media(max-width:768px){.footer-grid{grid-template-columns:1fr;gap:2.5rem}}.scroll-to-top{position:fixed;bottom:24px;right:24px;width:48px;height:48px;cursor:pointer;z-index:1000;opacity:0;visibility:hidden;transform:scale(.9);transition:opacity .2s ease,visibility .2s ease,transform .2s ease;display:flex;align-items:center;justify-content:center}.scroll-to-top.visible{opacity:1;visibility:visible;transform:scale(1)}.scroll-to-top:hover{transform:scale(1.08)}.progress-ring{width:48px;height:48px}.progress-ring-circle-bg{fill:var(--color-bg-secondary);stroke:var(--color-border);stroke-width:2}.progress-ring-circle{fill:none;stroke:var(--color-accent);stroke-width:2;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .1s ease}.arrow-icon{position:absolute;width:18px;height:18px;color:var(--color-accent);transition:transform .2s ease}.scroll-to-top:hover .arrow-icon{transform:translateY(-2px)}@media(max-width:768px){.scroll-to-top{bottom:16px;right:16px;width:42px;height:42px}.progress-ring{width:42px;height:42px}.arrow-icon{width:16px;height:16px}}.projects-page{min-height:100vh;background-color:var(--color-bg-primary);color:var(--color-text-primary);padding-top:100px}.projects-header{margin-bottom:3rem}.back-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--color-text-tertiary);font-size:.8rem;margin-bottom:1.5rem;font-family:var(--font-mono);transition:color var(--transition-fast)}.back-link:hover{color:var(--color-text-primary)}.section-label{font-family:var(--font-mono);font-size:.8rem;color:var(--color-accent);display:block;margin-bottom:.5rem}.projects-title{font-size:2rem;font-weight:700;margin-bottom:.75rem;color:var(--color-text-primary);letter-spacing:-.02em}.projects-subtitle{color:var(--color-text-secondary);font-size:1rem}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:var(--spacing-lg)}.project-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--transition-fast)}.project-card:hover{border-color:var(--color-border-light)}.card-chrome{display:flex;align-items:center;gap:6px;padding:.45rem .75rem;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.chrome-filename{font-family:var(--font-mono);font-size:.6rem;color:var(--color-text-secondary);margin-left:.4rem}.chrome-line-count{font-family:var(--font-mono);font-size:.55rem;color:var(--color-text-tertiary);margin-left:auto}.project-image-container{position:relative;overflow:hidden;aspect-ratio:16 / 10;border-bottom:1px solid var(--color-border)}.project-image{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.project-card:hover .project-image{transform:scale(1.03)}.project-overlay{position:absolute;inset:0;background:#0a0a0ab3;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast)}.project-card:hover .project-overlay{opacity:1}.project-links{display:flex;gap:.75rem}.icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-light);background:var(--color-bg-secondary);color:var(--color-text-primary);transition:all var(--transition-fast)}.icon-btn:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg-primary)}.project-content{display:flex}.code-gutter{display:flex;flex-direction:column;padding:1rem 0;min-width:2rem;border-right:1px solid var(--color-border);-webkit-user-select:none;user-select:none}.gutter-line{font-family:var(--font-mono);font-size:.55rem;color:var(--color-border-light);text-align:center;line-height:1.9;opacity:.5}.project-card:hover .gutter-line{opacity:.8}.project-content-inner{padding:1rem 1.25rem;flex:1}.project-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.tag{font-family:var(--font-mono);font-size:.65rem;padding:.15rem .5rem;background:var(--color-bg-tertiary);color:var(--color-text-secondary);border-radius:3px}.project-title{font-size:1rem;font-weight:600;margin-bottom:.5rem;color:var(--color-text-primary)}.project-description{font-size:.8rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:.75rem}.project-link-text{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--color-accent);font-family:var(--font-mono);transition:gap var(--transition-fast)}.project-link-text:hover{gap:.6rem}@media(max-width:768px){.projects-grid{grid-template-columns:1fr}}.experience-page{min-height:100vh;background-color:var(--color-bg-primary);color:var(--color-text-primary);padding-top:100px}.experience-container{padding-bottom:var(--spacing-lg)}.experience-header{margin-bottom:3rem}.experience-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.02em}.experience-subtitle{color:var(--color-text-secondary);font-size:1rem}.timeline-section{margin-bottom:3rem}.section-title-wrapper{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}.section-icon{color:var(--color-accent)}.section-title{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);font-family:var(--font-mono)}.branch-label{font-family:var(--font-mono);font-size:.65rem;color:var(--color-accent);background:#4ec9b01a;border:1px solid rgba(78,201,176,.2);padding:.15rem .5rem;border-radius:10px;margin-left:auto}.timeline{display:flex;flex-direction:column;gap:0}.timeline-item{display:flex;gap:1.5rem;position:relative}.git-graph{display:flex;flex-direction:column;align-items:center;width:28px;flex-shrink:0;position:relative}.git-line-top,.git-line-bottom{width:2px;flex:1;background:var(--color-border)}.git-line-top{min-height:10px}.git-line-bottom{min-height:20px}.git-node{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-tertiary);transition:all var(--transition-fast)}.git-node.node-work{border-color:var(--color-accent);color:var(--color-accent)}.git-node.node-edu{border-color:#a78bfa;color:#a78bfa}.timeline-item:hover .git-node{background:var(--color-bg-secondary);transform:scale(1.1)}.editor-tab-bar{display:flex;align-items:center;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-bottom:none;border-radius:var(--radius-md) var(--radius-md) 0 0;overflow:hidden}.editor-tab{display:flex;align-items:center;gap:.4rem;padding:.4rem .9rem;font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-right:1px solid var(--color-border);border-bottom:2px solid var(--color-accent)}.tab-icon{font-size:.75rem}.tab-hash{font-family:var(--font-mono);font-size:.55rem;color:var(--color-text-tertiary);margin-left:auto;padding:0 .75rem;opacity:.6}.timeline-content{flex:1;margin-bottom:1.5rem}.timeline-body{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);padding:1.5rem}.timeline-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.timeline-title{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.25rem}.timeline-company{font-family:var(--font-mono);font-size:.8rem;color:var(--color-accent)}.timeline-period{display:flex;align-items:center;gap:.3rem;font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-tertiary);white-space:nowrap;padding:.2rem .5rem;background:var(--color-bg-tertiary);border-radius:var(--radius-sm)}.timeline-description{font-size:.85rem;color:var(--color-text-secondary);line-height:1.6;margin-bottom:1rem}.timeline-technologies{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tech-badge{display:flex;align-items:center;gap:.4rem;padding:.3rem .6rem;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-secondary)}.tech-logo{width:16px;height:16px;object-fit:contain}.timeline-achievements,.timeline-highlights{list-style:none;display:flex;flex-direction:column;gap:.4rem}.timeline-achievements li,.timeline-highlights li{font-size:.8rem;color:var(--color-text-secondary);line-height:1.5;padding-left:1rem;position:relative}.timeline-achievements li:before,.timeline-highlights li:before{content:"›";position:absolute;left:0;color:var(--color-accent);font-weight:700}@media(max-width:768px){.timeline-header{flex-direction:column}.git-graph{width:20px}.git-node{width:22px;height:22px}.git-node svg{width:10px;height:10px}.branch-label{display:none}}.contact-page{min-height:100vh;background-color:var(--color-bg-primary);color:var(--color-text-primary)}.contact-hero{padding:120px 0 3rem}.contact-title{font-size:2rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.02em}.contact-subtitle{color:var(--color-text-secondary);font-size:1rem}.contact-content{padding-bottom:var(--spacing-lg)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start}.contact-info{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.info-terminal-bar{display:flex;align-items:center;gap:6px;padding:.45rem .75rem;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.chrome-dot{width:8px;height:8px;border-radius:50%}.chrome-dot.red{background:#ff5f57}.chrome-dot.yellow{background:#febc2e}.chrome-dot.green{background:#28c840}.terminal-bar-title{font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-secondary);margin-left:.4rem}.info-terminal-body{padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.terminal-line{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.7rem;padding:.25rem 0}.prompt{color:var(--color-accent);font-weight:700}.cmd{color:var(--color-text-secondary)}.cursor-block{color:var(--color-accent);animation:blink-cursor 1s step-end infinite}@keyframes blink-cursor{50%{opacity:0}}.terminal-line.blinking{margin-top:.5rem}.info-item{display:flex;align-items:flex-start;gap:.75rem;padding:.5rem .75rem;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);border-left:2px solid var(--color-accent)}.info-icon{color:var(--color-accent);flex-shrink:0;margin-top:.1rem}.info-text h3{font-size:.75rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.15rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em}.info-text a,.info-text p{font-size:.8rem;color:var(--color-text-secondary);transition:color var(--transition-fast)}.info-text a:hover{color:var(--color-accent)}.social-icons{display:flex;gap:.6rem;padding-left:.5rem}.social-link{display:flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.7rem;transition:all var(--transition-fast)}.social-link:hover{border-color:var(--color-accent);color:var(--color-accent)}.contact-form-container{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.form-editor-bar{display:flex;align-items:center;gap:6px;padding:.45rem .75rem;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.editor-bar-title{font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-secondary);margin-left:.4rem}.editor-unsaved{color:var(--color-accent);font-size:.9rem;margin-left:.25rem;line-height:1}.contact-form{display:flex}.form-line-numbers{display:flex;flex-direction:column;padding:1.5rem 0;min-width:2.5rem;border-right:1px solid var(--color-border);-webkit-user-select:none;user-select:none}.line-num{font-family:var(--font-mono);font-size:.6rem;color:var(--color-border-light);text-align:center;line-height:2.6;opacity:.5}.form-fields{flex:1;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.75rem;font-family:var(--font-mono);color:var(--color-text-tertiary);text-transform:lowercase}.form-group input,.form-group textarea{background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.65rem .75rem;color:var(--color-text-primary);font-size:.85rem;transition:border-color var(--transition-fast)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-accent)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-tertiary)}.submit-btn{display:flex;align-items:center;gap:.5rem;width:fit-content}.form-status.success{font-family:var(--font-mono);font-size:.8rem;color:#28c840;padding:.5rem .75rem;background:#28c84014;border:1px solid rgba(40,200,64,.2);border-radius:var(--radius-sm)}@media(max-width:768px){.contact-grid{grid-template-columns:1fr}.form-line-numbers{display:none}}.project-detail-page{min-height:100vh;background-color:var(--color-bg-primary);padding-top:80px}.project-detail-container{padding-top:3rem;padding-bottom:4rem}.project-detail-header{margin-bottom:2.5rem}.project-detail-title{font-size:2rem;font-weight:700;color:var(--color-text-primary);margin-bottom:.75rem;letter-spacing:-.02em}.project-detail-subtitle{font-size:1rem;color:var(--color-text-secondary);max-width:700px;line-height:1.6}.project-hero-image{margin:2rem 0;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border)}.project-hero-image img{width:90%;height:auto;display:block;margin:0 auto}.project-section{margin:3rem 0}.section-text{font-size:.95rem;color:var(--color-text-secondary);line-height:1.7;max-width:800px}.project-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;margin:2rem 0;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.info-card{background:var(--color-bg-secondary);padding:1.25rem;display:flex;align-items:center;gap:.75rem;transition:background var(--transition-fast)}.info-card:hover{background:var(--color-bg-tertiary)}.info-icon{color:var(--color-accent);flex-shrink:0}.info-content{flex:1}.info-title{font-size:.7rem;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.15rem;font-family:var(--font-mono)}.info-value{font-size:.95rem;font-weight:600;color:var(--color-text-primary)}.tech-stack-grid{display:grid;grid-template-columns:repeat(var(--stack-cols, 4),1fr);gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.tech-stack-item{text-align:center;padding:1.5rem;background:var(--color-bg-secondary);transition:background var(--transition-fast)}.tech-stack-item:hover{background:var(--color-bg-tertiary)}.tech-stack-item img{width:48px;height:48px;margin:0 auto .75rem;display:block;opacity:.85}.tech-stack-item:hover img{opacity:1}.tech-stack-item h4{font-size:.95rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.3rem;font-family:var(--font-mono)}.tech-stack-item p{font-size:.8rem;color:var(--color-text-tertiary);line-height:1.5}.features-list{display:grid;gap:1rem}.feature-item{display:flex;gap:.75rem;padding:1.25rem;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.feature-item:hover{border-color:var(--color-border-light)}.feature-icon{color:var(--color-accent);flex-shrink:0;margin-top:.15rem}.feature-content h4{font-size:.95rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.3rem}.feature-content p{color:var(--color-text-secondary);line-height:1.6;font-size:.875rem}.challenges-grid{display:grid;gap:1.25rem}.challenge-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--radius-md);padding:1.5rem}.challenge-card h4{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.75rem}.challenge-card p{color:var(--color-text-secondary);line-height:1.6;margin-bottom:.75rem;font-size:.9rem}.challenge-card p:last-child{margin-bottom:0}.challenge-card strong{color:var(--color-accent);font-weight:600}.results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.result-card{text-align:center;padding:1.5rem;background:var(--color-bg-secondary)}.result-number{font-size:2rem;font-weight:700;color:var(--color-accent);margin-bottom:.3rem;font-family:var(--font-mono)}.result-text{font-size:.85rem;color:var(--color-text-secondary);line-height:1.5}.fade-in-up{animation:fadeInUp .5s ease-out forwards;opacity:0}.project-carousel{display:flex;align-items:center;gap:.75rem;position:relative}.carousel-viewport{flex:1;overflow:hidden;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-secondary)}.carousel-image{width:100%;height:auto;display:block;aspect-ratio:16 / 9;object-fit:cover;transition:opacity .3s ease}.carousel-caption{text-align:center;padding:.75rem 1rem;font-size:.8rem;color:var(--color-text-tertiary);font-family:var(--font-mono);border-top:1px solid var(--color-border)}.carousel-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:all .2s ease}.carousel-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:rgba(var(--color-accent-rgb, 99, 102, 241),.08)}.carousel-dots{display:flex;justify-content:center;gap:.5rem;margin-top:1rem}.carousel-dot{width:8px;height:8px;border-radius:50%;border:1px solid var(--color-border);background:transparent;cursor:pointer;padding:0;transition:all .2s ease}.carousel-dot.active{background:var(--color-accent);border-color:var(--color-accent);transform:scale(1.25)}.carousel-dot:hover:not(.active){border-color:var(--color-text-tertiary)}.doc-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.25rem}.doc-card{display:flex;flex-direction:column;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.5rem;transition:border-color var(--transition-fast),box-shadow .2s ease}.doc-card:hover{border-color:var(--color-border-light);box-shadow:0 4px 16px #0000001a}.doc-card-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-md);background:rgba(var(--color-accent-rgb, 99, 102, 241),.1);color:var(--color-accent);margin-bottom:1rem;transition:background .2s ease}.doc-card:hover .doc-card-icon{background:rgba(var(--color-accent-rgb, 99, 102, 241),.18)}.doc-card-content{flex:1;margin-bottom:1.25rem}.doc-card-content h4{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.4rem}.doc-card-content p{font-size:.85rem;color:var(--color-text-secondary);line-height:1.6}.doc-card-actions{display:flex;gap:.75rem;padding-top:1rem;border-top:1px solid var(--color-border)}.doc-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1rem;border-radius:var(--radius-md);font-size:.8rem;font-weight:600;font-family:var(--font-mono);text-decoration:none;cursor:pointer;transition:all .2s ease;white-space:nowrap}.doc-btn-outline{color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-border)}.doc-btn-outline:hover{color:var(--color-accent);border-color:var(--color-accent);background:rgba(var(--color-accent-rgb, 99, 102, 241),.06)}.doc-btn-primary{color:#fff;background:var(--color-accent);border:1px solid var(--color-accent)}.doc-btn-primary:hover{filter:brightness(1.15);box-shadow:0 4px 12px rgba(var(--color-accent-rgb, 99, 102, 241),.3)}@media(max-width:768px){.project-detail-title{font-size:1.75rem}.project-detail-subtitle{font-size:.9rem}.tech-stack-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.result-number{font-size:1.5rem}.project-info-grid,.doc-cards-grid{grid-template-columns:1fr}}.techwatch-section{background-color:var(--color-bg-primary);padding-top:2rem;padding-bottom:4rem}.techwatch-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:2rem}.tech-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:1.5rem;transition:all var(--transition-fast);display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;overflow:hidden}.tech-card:hover{transform:translateY(-4px);border-color:var(--color-border-light);box-shadow:0 10px 30px -10px #00000080}.tech-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:var(--color-accent);transform:scaleX(0);transform-origin:center;transition:transform var(--transition-fast)}.tech-card:hover:before{transform:scaleX(1)}.tech-card-header{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1rem}.tech-tag{font-family:var(--font-mono);font-size:.7rem;padding:.2rem .5rem;border-radius:var(--radius-sm);background:rgba(var(--color-accent-rgb, 99, 102, 241),.1);color:var(--color-accent);border:1px solid rgba(var(--color-accent-rgb, 99, 102, 241),.2)}.tech-date{font-size:.8rem;color:var(--color-text-tertiary);font-family:var(--font-mono)}.tech-title{font-size:1.15rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.75rem;line-height:1.4}.tech-description{color:var(--color-text-secondary);font-size:.9rem;line-height:1.6;margin-bottom:1.5rem;flex-grow:1}.tech-link{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-mono);font-size:.85rem;color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast);align-self:center}.tech-link:hover{color:var(--color-text-primary)}@media(max-width:768px){.techwatch-grid{grid-template-columns:1fr}}:root{--color-bg-primary: #0c0c0c;--color-bg-secondary: #141414;--color-bg-tertiary: #1c1c1c;--color-text-primary: #e8e8e8;--color-text-secondary: #a0a0a0;--color-text-tertiary: #666;--color-primary: #e8e8e8;--color-primary-hover: #ffffff;--color-accent: #4EC9B0;--color-accent-hover: #6fd8c4;--color-border: #222;--color-border-light: #333;--font-sans: "IBM Plex Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace;--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 4rem;--spacing-xl: 8rem;--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 4px 12px rgb(0 0 0 / .3);--shadow-lg: 0 8px 24px rgb(0 0 0 / .4);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:clamp(15px,.9vw + 10px,19px)}body{font-family:var(--font-sans);background-color:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;cursor:crosshair}*,*:before,*:after{cursor:crosshair!important}a{text-decoration:none;color:inherit;transition:color var(--transition-fast)}button{cursor:pointer;border:none;font-family:inherit}.container{max-width:1280px;margin:0 auto;padding:0 var(--spacing-md)}.text-center{text-align:center}.text-accent{color:var(--color-accent)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1.25rem;border-radius:var(--radius-sm);font-weight:500;font-size:.9rem;transition:all var(--transition-fast);font-family:var(--font-sans)}.btn-primary{background-color:var(--color-accent);color:#0c0c0c}.btn-primary:hover{background-color:var(--color-accent-hover)}.btn-secondary{background-color:transparent;color:var(--color-text-primary);border:1px solid var(--color-border-light)}.btn-secondary:hover{border-color:var(--color-text-secondary);background-color:var(--color-bg-secondary)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{color:var(--color-text-primary)}.section{padding:var(--spacing-lg) 0;opacity:0;transform:translateY(20px);transition:opacity .6s ease-out,transform .6s ease-out}.section.visible{opacity:1;transform:translateY(0)}.stagger-1{transition-delay:80ms}.stagger-2{transition-delay:.16s}.stagger-3{transition-delay:.24s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .5s ease-out both}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-bg-primary)}::-webkit-scrollbar-thumb{background:var(--color-border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}
