*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0d1117;--surface:#161b22;--card:#21262d;--border:#30363d;--accent:#58a6ff;--accent-h:#79b8ff;--accent-warm:#f0883e;--accent-warm-h:#ffab70;--accent-purple:#bc8cff;--text:#e6edf3;--muted:#8b949e}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}.nav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);z-index:100;background:#0d1117d9;justify-content:space-between;align-items:center;height:60px;padding:0 2.5rem;display:flex;position:fixed;top:0;left:0;right:0}.nav-logo{color:var(--accent);letter-spacing:1px;font-size:1.1rem;font-weight:700}.nav-logo:hover{color:var(--accent-h)}.nav-links{gap:2rem;list-style:none;display:flex}.nav-links a{color:var(--muted);font-size:.9rem;transition:color .2s}.nav-links a:hover{color:var(--accent)}.nav-hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:space-between;width:24px;height:18px;padding:0;display:none}.nav-hamburger span{background:var(--text);border-radius:2px;width:100%;height:2px;transition:transform .25s,opacity .25s;display:block}.nav-hamburger.open span:first-child{transform:translateY(8px)rotate(45deg)}.nav-hamburger.open span:nth-child(2){opacity:0}.nav-hamburger.open span:nth-child(3){transform:translateY(-8px)rotate(-45deg)}@media (width<=768px){.nav{flex-wrap:wrap;height:auto;padding:0 1.5rem}.nav-logo{align-items:center;height:60px;display:flex}.nav-hamburger{align-items:center;width:24px;display:flex}.nav-links{border-top:1px solid var(--border);flex-direction:column;gap:0;width:100%;display:none}.nav-links.open{display:flex}.nav-links li{width:100%}.nav-links a{border-bottom:1px solid var(--border);padding:1rem 0;font-size:1rem;display:block}.nav-links li:last-child a{border-bottom:none}}.hero{text-align:center;justify-content:center;align-items:center;min-height:100vh;padding:0 1.5rem;display:flex;position:relative;overflow:hidden}.hero-bg{pointer-events:none;z-index:0;position:absolute;inset:0}.hero-grid{background-image:radial-gradient(#e6edf30a 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0}.orb{filter:blur(80px);opacity:.2;border-radius:50%;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;position:absolute}.orb-blue{background:radial-gradient(circle,#58a6ff,#0000 70%);width:600px;height:600px;animation:14s ease-in-out infinite alternate drift-1;top:-10%;left:-5%}.orb-amber{background:radial-gradient(circle,#f0883e,#0000 70%);width:500px;height:500px;animation:18s ease-in-out infinite alternate drift-2;bottom:-10%;right:-5%}.orb-purple{opacity:.08;background:radial-gradient(circle,#bc8cff,#0000 70%);width:400px;height:400px;animation:22s ease-in-out infinite alternate drift-3;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes drift-1{0%{transform:translate(0)}to{transform:translate(60px,40px)}}@keyframes drift-2{0%{transform:translate(0)}to{transform:translate(-50px,-60px)}}@keyframes drift-3{0%{transform:translate(-50%,-50%)scale(1)}to{transform:translate(-50%,-50%)scale(1.15)}}.hero-content{z-index:1;flex-direction:column;align-items:center;gap:1rem;max-width:680px;display:flex;position:relative}.hero-eyebrow{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-size:1rem;font-weight:500}.hero-name{color:var(--text);letter-spacing:-.02em;font-size:clamp(2.5rem,7vw,4.5rem);font-weight:700;line-height:1.1}.hero-title{color:var(--muted);font-size:clamp(1.1rem,3vw,1.4rem);font-weight:400}.hero-tagline{color:var(--muted);max-width:480px;margin-top:.25rem;font-size:1rem;line-height:1.7}.hero-ctas{flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:1.5rem;display:flex}.btn{cursor:pointer;border-radius:6px;padding:.75rem 1.75rem;font-size:.95rem;font-weight:500;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:inline-block}.btn-primary{background:var(--accent);color:#0d1117;border:2px solid var(--accent)}.btn-primary:hover{background:var(--accent-h);border-color:var(--accent-h)}.btn-ghost{color:var(--accent);border:2px solid var(--accent);background:0 0}.btn-ghost:hover{background:#58a6ff1a}.about{padding:6rem 1.5rem 4rem}.about-inner{grid-template-columns:280px 1fr;align-items:start;gap:4rem;max-width:960px;margin:0 auto;display:grid}.about-photo{justify-content:center;display:flex}.about-photo-img{object-fit:cover;object-position:center top;border:3px solid var(--border);border-radius:50%;width:220px;height:220px;display:block}.section-heading{color:var(--text);margin-bottom:1.25rem;padding-bottom:.75rem;font-size:2rem;font-weight:700;position:relative}.section-heading:after{content:"";background:var(--accent);border-radius:2px;width:40px;height:3px;position:absolute;bottom:0;left:0}.about-identity{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.identity-pill{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:20px;align-items:center;gap:.4rem;padding:.3rem .9rem;font-size:.85rem;font-weight:500;display:flex}.identity-icon{font-size:.9rem}.identity-divider{color:var(--accent);font-size:1rem;font-weight:700}.identity-pill.driver{border-color:var(--accent-warm);color:var(--accent-warm)}.about-text p{color:var(--muted);margin-bottom:1rem;line-height:1.8}.about-stats{border-top:1px solid var(--border);gap:2rem;margin-top:2rem;padding-top:2rem;display:flex}.stat{flex-direction:column;gap:.2rem;display:flex}.stat-value{color:var(--accent);font-size:1.75rem;font-weight:700;line-height:1}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.about-states-section{border-top:1px solid var(--border);margin-top:3rem;padding-top:2.5rem}.about-states-inner{max-width:960px;margin:0 auto}.states-label{color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;font-size:.75rem;font-weight:600}.states-container{padding-top:2rem;position:relative}.states-truck{pointer-events:none;will-change:transform;margin-left:-10px;font-size:1.1rem;line-height:1;position:absolute;top:0;left:0}.truck-emoji{transition:transform .15s;display:inline-block}.truck-emoji.east{transform:scaleX(-1)}.states-grid{flex-wrap:wrap;gap:.5rem;display:flex}.state-chip{background:var(--surface);border:1px solid var(--accent-warm);color:var(--accent-warm);letter-spacing:.05em;border-radius:4px;padding:.3rem .6rem;font-size:.75rem;font-weight:600;transition:background .25s,color .25s,box-shadow .25s}.state-chip.active{background:var(--accent-warm);color:#0d1117;box-shadow:0 0 10px #f0883e80}.state-chip:hover{background:var(--accent-warm);color:#0d1117}.stat.warm .stat-value{color:var(--accent-warm)}@media (width<=680px){.about-inner{grid-template-columns:1fr;gap:2.5rem}.about-photo-img{width:160px;height:160px}.about-photo{justify-content:center}.section-heading:after{left:50%;transform:translate(-50%)}.about-text{text-align:center}.about-identity,.about-stats{justify-content:center}}.skills{background:var(--surface);padding:6rem 1.5rem}.skills-inner{max-width:960px;margin:0 auto}.skills-inner .section-heading{margin-bottom:3rem}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem;display:grid}.skill-group{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1.5rem}.skill-category{color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;font-size:.8rem;font-weight:600}.skill-list{flex-wrap:wrap;gap:.5rem;list-style:none;display:flex}.skill-tag{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:4px;padding:.3rem .75rem;font-size:.85rem;transition:color .2s,border-color .2s}.skill-tag:hover{color:var(--text);border-color:var(--accent)}.portfolio{padding:6rem 1.5rem}.portfolio-inner{max-width:960px;margin:0 auto}.portfolio-inner .section-heading{margin-bottom:3rem}.portfolio-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--border);border-radius:8px;flex-direction:column;gap:.75rem;padding:1.5rem;transition:border-color .2s,border-top-color .2s;display:flex}.project-card[data-type=Personal\ Project]{border-top-color:var(--accent)}.project-card[data-type=Professional]{border-top-color:var(--accent-purple)}.project-card[data-type=Freelance]{border-top-color:var(--accent-warm)}.project-card:hover{border-color:var(--border)}.project-card[data-type=Personal\ Project]:hover{border-top-color:var(--accent)}.project-card[data-type=Professional]:hover{border-top-color:var(--accent-purple)}.project-card[data-type=Freelance]:hover{border-top-color:var(--accent-warm)}.project-header{justify-content:space-between;align-items:center;display:flex}.store-links{flex-wrap:wrap;gap:.5rem;display:flex}.store-btn{border:1px solid #0000;border-radius:5px;align-items:center;gap:.4rem;padding:.35rem .8rem;font-size:.78rem;font-weight:600;text-decoration:none;transition:opacity .2s,background .2s;display:inline-flex}.store-btn--ios{color:#f5f5f7;background:#1c1c1e;border-color:#3a3a3c}.store-btn--ios:hover{opacity:.85}.store-btn--android{color:#4caf50;background:#1a2e1a;border-color:#2e5c2e}.store-btn--android:hover{opacity:.85}.store-btn--tester{color:var(--accent);border-color:var(--accent);background:0 0}.store-btn--tester:hover{background:#58a6ff1a}.project-type{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:600}.project-card[data-type=Personal\ Project] .project-type{color:var(--accent)}.project-card[data-type=Professional] .project-type{color:var(--accent-purple)}.project-card[data-type=Freelance] .project-type{color:var(--accent-warm)}.project-links{gap:.75rem;display:flex}.project-links a{color:var(--muted);font-size:.8rem;text-decoration:none;transition:color .2s}.project-links a:hover{color:var(--accent)}.project-name{color:var(--text);font-size:1.15rem;font-weight:600;line-height:1.3}.project-description{color:var(--muted);flex:1;font-size:.9rem;line-height:1.7}.project-footer{justify-content:space-between;align-items:flex-end;gap:.5rem;margin-top:.25rem;display:flex}.project-tags{flex-wrap:wrap;flex:1;gap:.4rem;list-style:none;display:flex}.preview-btn{background:var(--accent);border:1px solid var(--accent);color:#0d1117;cursor:pointer;white-space:nowrap;border-radius:4px;flex-shrink:0;padding:.3rem .85rem;font-family:inherit;font-size:.75rem;font-weight:600;transition:background .2s,border-color .2s}.preview-btn:hover{background:var(--accent-h);border-color:var(--accent-h)}.project-tag{color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:4px;padding:.2rem .6rem;font-size:.75rem}.portfolio-featured{border:1px solid var(--border);border-radius:10px;margin-bottom:3rem;overflow:hidden}.featured-header{background:var(--surface);border-bottom:1px solid var(--border);padding:1.5rem}.featured-header-top{justify-content:space-between;align-items:center;margin-bottom:0;display:flex}.featured-label{color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;font-weight:600}.featured-github{color:var(--muted);font-size:.8rem;text-decoration:none;transition:color .2s}.featured-github:hover{color:var(--accent)}.featured-title{color:var(--text);margin:.4rem 0 .5rem;font-size:1.15rem;font-weight:600}.featured-desc{color:var(--muted);font-size:.875rem;line-height:1.6}.featured-desc kbd{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:3px;padding:.1rem .4rem;font-family:inherit;font-size:.8rem}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000bf;justify-content:center;align-items:center;padding:1.5rem;animation:.2s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;width:100%;max-width:860px;max-height:90vh;animation:.25s slide-up;display:flex;overflow:hidden}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-bar{background:var(--card);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex}.modal-dots{flex-shrink:0;gap:6px;display:flex}.modal-dot{background:var(--border);cursor:pointer;border-radius:50%;width:12px;height:12px;transition:background .2s}.modal-dot:first-child{background:#ff5f57}.modal-dot:first-child:hover{background:#ff3b30}.modal-url{color:var(--muted);background:var(--surface);border:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;flex:1;padding:.2rem .6rem;font-size:.78rem;overflow:hidden}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:.2rem;font-size:.9rem;line-height:1;transition:color .2s}.modal-close:hover{color:var(--text)}.modal-body{flex:1;overflow-y:auto}.modal-screenshot{width:100%;display:block}.modal-footer{border-top:1px solid var(--border);background:var(--card);flex-shrink:0;justify-content:flex-end;padding:1rem 1.25rem;display:flex}.jokes-terminal{border:1px solid var(--border);background:#0d1117;border-radius:10px;font-family:Menlo,Monaco,Courier New,monospace;font-size:.875rem;overflow:hidden}.terminal-titlebar{border-bottom:1px solid var(--border);background:#21262d;align-items:center;gap:.5rem;padding:.6rem 1rem;display:flex}.terminal-dots{gap:6px;display:flex}.dot{border-radius:50%;width:12px;height:12px}.dot-red{background:#ff5f57}.dot-yellow{background:#ffbd2e}.dot-green{background:#28c840}.terminal-title{text-align:center;color:var(--muted);flex:1;margin-left:-2.5rem;font-size:.8rem}.terminal-clear{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:.1rem .4rem;font-family:inherit;font-size:.75rem;transition:color .2s}.terminal-clear:hover{color:var(--text)}.terminal-output{flex-direction:column;gap:.4rem;min-height:140px;max-height:220px;padding:1rem;display:flex;overflow-y:auto}.terminal-output::-webkit-scrollbar{width:4px}.terminal-output::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.terminal-line{word-break:break-word;line-height:1.6}.terminal-info{color:var(--muted)}.terminal-command{color:var(--accent)}.terminal-output{color:#e6edf3}.terminal-error{color:#f85149}.terminal-loading{color:var(--muted)}.ellipsis:after{content:"...";vertical-align:bottom;width:1.5ch;animation:1.2s steps(4,end) infinite ellipsis;display:inline-block;overflow:hidden}@keyframes ellipsis{0%{width:0}to{width:1.5ch}}.terminal-input-row{border-top:1px solid var(--border);background:#161b22;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.terminal-prompt{color:var(--accent);font-weight:700}.terminal-cmd{color:#e6edf3;white-space:nowrap}.terminal-name-input{border:none;border-bottom:1px solid var(--border);color:#e6edf3;background:0 0;outline:none;width:90px;padding:.1rem .25rem;font-family:inherit;font-size:.875rem;transition:border-color .2s}.terminal-name-input::placeholder{color:var(--muted)}.terminal-name-input:focus{border-color:var(--accent)}.terminal-run-btn{background:var(--accent);color:#0d1117;cursor:pointer;border:none;border-radius:4px;margin-left:auto;padding:.3rem 1rem;font-family:inherit;font-size:.8rem;font-weight:600;transition:background .2s}.terminal-run-btn:hover:not(:disabled){background:var(--accent-h)}.terminal-run-btn:disabled{opacity:.5;cursor:not-allowed}.resume{background:var(--surface);padding:6rem 1.5rem}.resume-inner{max-width:860px;margin:0 auto}.resume-top-bar{justify-content:space-between;align-items:center;margin-bottom:3rem;display:flex}.resume-download-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem 1.1rem;font-family:inherit;font-size:.85rem;font-weight:500;transition:background .2s,color .2s}.resume-download-btn:hover{background:var(--accent);color:#0d1117}.resume-doc{flex-direction:column;gap:2.25rem;display:flex}.resume-header{text-align:center;border-bottom:1px solid var(--border);padding-bottom:1.5rem}.resume-header-name{letter-spacing:.04em;color:var(--text);margin-bottom:.4rem;font-size:2rem;font-weight:700}.resume-header-meta{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:.25rem 1rem;font-size:.82rem;display:flex}.resume-header-meta a{color:var(--accent);text-decoration:none}.resume-header-meta a:hover{text-decoration:underline}.resume-summary{border-left:3px solid var(--accent);padding-left:1.25rem}.resume-summary p{color:var(--muted);font-size:.95rem;line-height:1.8}.resume-section-title{color:var(--accent);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:.5rem;font-size:.75rem;font-weight:600}.resume-roles{flex-direction:column;gap:1.75rem;display:flex}.role-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.6rem;display:flex}.role-left{flex-direction:column;gap:.2rem;display:flex}.role-title{color:var(--text);font-size:1rem;font-weight:600}.role-company{color:var(--muted);font-size:.85rem;font-style:italic}.role-period{color:var(--muted);white-space:nowrap;flex-shrink:0;font-size:.8rem}.role-bullets{flex-direction:column;gap:.35rem;padding-left:0;list-style:none;display:flex}.role-bullets li{color:var(--muted);padding-left:1rem;font-size:.875rem;line-height:1.7;position:relative}.role-bullets li:before{content:"–";color:var(--accent);position:absolute;left:0}@media (width<=600px){.role-header{flex-direction:column;gap:.25rem}.role-period{font-size:.75rem}}@media print{.nav,#hero,#about,#skills,#portfolio,#contact,footer,.resume-top-bar{display:none!important}body,html{background:#fff!important;margin:0!important;padding:0!important}#resume{background:#fff!important;padding:0!important}.resume-inner{max-width:100%!important;padding:0!important}.resume-doc{color:#1c2128!important;margin:0!important;padding:2rem 2.5rem!important}.resume-header-name{color:#1c2128!important}.resume-summary p,.role-company,.role-period,.role-bullets li{color:#333!important}.role-title{color:#1c2128!important}.resume-section-title{color:#1a56b0!important;border-bottom-color:#ccc!important}.resume-header{border-bottom-color:#ccc!important}.resume-summary{border-left-color:#1a56b0!important}.resume-header-meta a,.role-bullets li:before{color:#1a56b0!important}}.contact{background:var(--surface);padding:6rem 1.5rem}.contact-inner{max-width:960px;margin:0 auto}.contact-header{margin-bottom:3rem}.contact-sub{color:var(--muted);max-width:480px;margin-top:.5rem;font-size:1rem}.contact-body{grid-template-columns:1fr 1.6fr;align-items:start;gap:3rem;display:grid}.contact-links{flex-direction:column;gap:1rem;display:flex}.contact-link-card{background:var(--card);border:1px solid var(--border);border-radius:8px;align-items:center;gap:1rem;padding:1rem 1.25rem;text-decoration:none;transition:border-color .2s;display:flex}.contact-link-card:hover{border-color:var(--accent)}.contact-link-icon{background:var(--surface);border:1px solid var(--border);width:40px;height:40px;color:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:flex}.contact-link-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.2rem;font-size:.75rem;font-weight:600}.contact-link-value{color:var(--text);font-size:.85rem}.contact-form{flex-direction:column;gap:1.25rem;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:600}.form-group input,.form-group textarea{background:var(--card);border:1px solid var(--border);color:var(--text);resize:none;border-radius:6px;outline:none;padding:.7rem .9rem;font-family:inherit;font-size:.9rem;transition:border-color .2s}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--muted)}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent)}.contact-success{text-align:center;background:var(--card);border:1px solid var(--border);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;height:100%;padding:3rem;display:flex}.contact-success-title{color:var(--text);font-size:1.25rem;font-weight:700}.contact-success-sub{color:var(--muted);font-size:.9rem}@media (width<=720px){.contact-body,.form-row{grid-template-columns:1fr}}.footer{background:var(--bg);border-top:1px solid var(--border);padding:2rem 1.5rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:960px;margin:0 auto;display:flex}.footer-logo{color:var(--accent);letter-spacing:.05em;font-size:1.1rem;font-weight:700}.footer-copy{color:var(--muted);font-size:.8rem}.footer-links{gap:1.25rem;display:flex}.footer-links a{color:var(--muted);font-size:.8rem;text-decoration:none;transition:color .2s}.footer-links a:hover{color:var(--accent)}@media (width<=560px){.footer-inner{text-align:center;flex-direction:column;align-items:center}}
