:root{--bg: #0f0f0f;--bg-surface: #161616;--bg-hover: rgba(97, 218, 251, .04);--border: #242424;--border-hover: #333;--border-accent: rgba(97, 218, 251, .22);--text: #e0e0e0;--text-muted: #888;--text-dim: #4e4e4e;--accent: #61dafb;--accent-low: rgba(97, 218, 251, .08);--accent-mid: rgba(97, 218, 251, .18);--accent-glow: rgba(97, 218, 251, .28);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--font-mono: "Courier New", Courier, monospace;--radius-sm: 4px;--radius-md: 8px;--radius-full: 999px;--ease: .2s ease;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.6;font-weight:400}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.2;font-weight:700}p{margin:0}a{text-decoration:none;color:inherit}ul{list-style:none;padding:0;margin:0}button{font-family:inherit;cursor:pointer}.App{max-width:960px;margin:0 auto;padding:0 1.5rem}.site-header{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 0;border-bottom:1px solid var(--border)}.site-logo{font-size:1.05rem;font-weight:700;color:var(--accent);letter-spacing:.03em}.site-header nav a{margin-left:1.5rem;color:var(--text-muted);font-size:.88rem;transition:color var(--ease)}.site-header nav a:hover{color:var(--text)}.hero{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center;padding:5rem 0 4rem}.hero-greeting{margin:0 0 .3rem;color:var(--accent);font-size:.95rem;font-weight:400}.hero-name{margin:0 0 .75rem;font-size:2.75rem;font-weight:700;color:#fff}.hero-aka{display:block;font-size:.88rem;font-weight:400;color:var(--text-dim);letter-spacing:.02em;margin-top:.3rem}.hero-tagline{margin:0 0 .85rem;font-family:var(--font-mono);font-size:1.1rem;color:var(--accent)}.hero-bio{margin:0 0 1.75rem;color:var(--text-muted);line-height:1.65;font-size:.95rem}.hero-cta{display:inline-block;padding:.6rem 1.4rem;background:var(--accent);color:var(--bg);font-weight:700;font-size:.88rem;border-radius:var(--radius-sm);transition:background var(--ease),transform var(--ease)}.hero-cta:hover{background:#89e8fd}.terminal{background:#111827;border-radius:var(--radius-md);overflow:hidden;border:1px solid #1f2937;font-family:var(--font-mono);font-size:.82rem}.terminal-bar{display:flex;align-items:center;gap:.4rem;padding:.6rem .9rem;background:#0f172a;border-bottom:1px solid #1f2937}.dot{width:11px;height:11px;border-radius:50%}.dot-red{background:#ff5f57}.dot-yellow{background:#febc2e}.dot-green{background:#28c840}.terminal-title{margin-left:auto;color:var(--text-dim);font-size:.72rem}.terminal-body{padding:1rem 1.2rem;line-height:1.75}.terminal-body p{margin:0}.t-prompt{color:var(--accent)}.t-output{color:var(--text)}.t-indent{padding-left:1.2rem}.t-string{color:#98c379}.t-key{color:var(--accent)}.t-punct{color:var(--text-muted)}.t-brace{color:var(--text)}.t-cursor{color:var(--accent);animation:blink 1.1s step-end infinite}@keyframes blink{50%{opacity:0}}.section{padding:2.75rem 0;border-bottom:1px solid var(--border)}.section h2{font-size:1.3rem;font-weight:700;color:#fff;margin-bottom:1.5rem}.project-list{display:flex;flex-direction:column;gap:.85rem}.project-list li{padding:1rem 1.1rem 1rem 1.25rem;background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:0 var(--radius-md) var(--radius-md) 0;transition:background var(--ease),border-right-color var(--ease),border-top-color var(--ease),border-bottom-color var(--ease)}.project-list li:hover{background:var(--bg-hover);border-color:var(--border-hover);border-left-color:var(--accent)}.project-list li strong{font-size:.95rem;color:#fff}.project-list li p{margin:.3rem 0 .6rem;color:var(--text-muted);font-size:.9rem;line-height:1.6}.project-list a{font-size:.82rem;font-weight:600;color:var(--accent);transition:opacity var(--ease)}.project-list a:hover{opacity:.75}#contact p{margin-bottom:.5rem}#contact a{font-size:.9rem;font-weight:600;color:var(--text-muted);transition:color var(--ease)}#contact a:hover{color:var(--accent)}.site-footer{text-align:center;padding:1.5rem 0;font-size:.82rem;color:var(--text-dim);border-top:1px solid var(--border)}@media(max-width:640px){.hero{grid-template-columns:1fr;padding:3rem 0 2rem}.hero-name{font-size:2rem}.terminal{display:none}}.resume-section-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.resume-section-top h2{margin:0}.resume-download-btn{display:inline-flex;align-items:center;gap:.4rem;background:transparent;color:var(--accent);border:1px solid var(--border-accent);padding:.45rem 1.1rem;font-size:.82rem;font-weight:600;border-radius:var(--radius-sm);letter-spacing:.03em;transition:background var(--ease),border-color var(--ease),color var(--ease)}.resume-download-btn:hover{background:var(--accent-low);border-color:var(--accent);color:#fff}.resume-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:.25rem}.resume-stat{padding:.9rem 1rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;transition:border-color var(--ease),background var(--ease)}.resume-stat:hover{border-color:var(--border-accent);background:var(--bg-hover)}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--accent);font-family:var(--font-mono);line-height:1;margin-bottom:.3rem}.stat-label{display:block;font-size:.72rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.resume-block{padding:1.75rem 0;border-bottom:1px solid var(--border)}.resume-block:last-child{border-bottom:none;padding-bottom:0}.resume-section-title{display:flex;align-items:center;gap:.75rem;margin:0 0 1.25rem;font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.resume-section-title:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--border-accent),transparent)}.resume-summary{margin:0;padding:.9rem 1.1rem;background:var(--accent-low);border-left:3px solid rgba(97,218,251,.45);border-radius:0 var(--radius-md) var(--radius-md) 0;color:silver;line-height:1.7;font-size:.9rem}.resume-company-header{display:flex;align-items:baseline;gap:.75rem;margin-bottom:1.25rem}.resume-company-name{font-size:1rem;font-weight:700;color:#fff}.resume-location{font-size:.78rem;color:var(--text-dim)}.resume-timeline{position:relative;padding-left:1.6rem;border-left:1px solid var(--border-accent)}.resume-role{position:relative;margin-bottom:1rem;padding:1rem 1.1rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--ease),background var(--ease)}.resume-role:last-child{margin-bottom:0}.resume-role:hover{border-color:var(--border-hover);background:var(--bg-hover)}.resume-role:before{content:"";position:absolute;left:-1.95rem;top:1.2rem;width:9px;height:9px;border-radius:50%;background:var(--bg);border:1.5px solid var(--accent);transition:background var(--ease)}.resume-role:first-child:before{background:var(--accent);box-shadow:0 0 0 3px var(--accent-low),0 0 10px var(--accent-glow)}.resume-role-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:.4rem;margin-bottom:.65rem}.resume-role-title{font-size:.875rem;font-weight:600;color:var(--text)}.resume-period{display:inline-block;padding:.15rem .6rem;background:var(--accent-low);border:1px solid var(--accent-mid);border-radius:var(--radius-full);font-size:.7rem;color:var(--accent);white-space:nowrap;font-family:var(--font-mono);flex-shrink:0}.resume-bullets{margin:0;padding-left:1.1rem;color:var(--text-muted);font-size:.86rem;line-height:1.7}.resume-bullets li{margin-bottom:.35rem}.resume-bullets li:last-child{margin-bottom:0}.resume-skills-grid{display:flex;flex-direction:column;gap:.8rem}.resume-skill-group{display:flex;align-items:flex-start;gap:1rem}.resume-skill-label{min-width:160px;padding-top:.2rem;font-size:.72rem;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.resume-skill-pills{display:flex;flex-wrap:wrap;gap:.35rem}.resume-pill{display:inline-block;padding:.22rem .7rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-full);font-size:.78rem;color:var(--text-muted);opacity:0;transition:border-color var(--ease),color var(--ease),background var(--ease);cursor:default}.resume-pill:hover{border-color:var(--border-accent);background:var(--accent-low);color:var(--accent)}.resume-projects{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}.resume-project{padding:.9rem 1rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color var(--ease),background var(--ease)}.resume-project:hover{border-color:var(--border-accent);background:var(--bg-hover)}.resume-project-name{display:inline-block;font-size:.875rem;font-weight:600;color:var(--text);transition:color var(--ease);margin-bottom:.3rem}.resume-project-name:hover{color:var(--accent)}.resume-project-desc{margin:0 0 .5rem;font-size:.8rem;color:var(--text-muted);line-height:1.55}.resume-project-stack{display:block;font-size:.72rem;color:#61dafb73;font-family:var(--font-mono)}.print-only{display:none}.resume-name{font-size:2rem;font-weight:700;color:#fff;margin-bottom:.2rem}.resume-headline{font-size:.95rem;color:var(--accent);font-family:var(--font-mono);margin-bottom:.75rem}.resume-header{padding-bottom:1.25rem;border-bottom:2px solid var(--accent)}.resume-contacts{display:flex;flex-wrap:wrap;font-size:.85rem;color:var(--text-muted);gap:0}.resume-contacts a{color:var(--text-muted)}.resume-sep{color:var(--text-dim);margin:0 .5rem}.resume-contact-plain{color:var(--text-muted)}@media print{.no-print,.site-header,.site-footer,.hero,#projects,#hobbies,#contact,.resume-section-top,.resume-stats{display:none!important}.print-only{display:block!important}body,html{background:#fff!important;color:#111!important}.App{max-width:100%!important;padding:0 .75rem!important}#resume{border:none!important;padding:0!important}.resume-block{border-bottom-color:#e5e5e5!important}.resume-section-title{color:#005b87!important}.resume-section-title:after{background:#cde!important}.resume-summary{background:#f0f8ff!important;border-color:#005b87!important;color:#333!important}.resume-name{color:#111!important}.resume-headline{color:#005b87!important}.resume-header{border-color:#005b87!important}.resume-contacts a,.resume-contact-plain{color:#444!important}.resume-sep{color:#bbb!important}.resume-timeline{border-color:#cde!important}.resume-role{background:transparent!important;border-color:#e5e5e5!important}.resume-role:before{background:#005b87!important;box-shadow:none!important}.resume-role-title{color:#111!important}.resume-period{background:#e8f4fb!important;border-color:#9cc!important;color:#005b87!important}.resume-bullets{color:#333!important}.resume-company-name{color:#111!important}.resume-location{color:#666!important}.resume-pill{opacity:1!important;background:#e8f4fb!important;border-color:#9cc!important;color:#005b87!important}.resume-skill-label{color:#555!important}.resume-project{background:transparent!important;border-color:#e5e5e5!important}.resume-project-name{color:#111!important}.resume-project-desc{color:#444!important}.resume-project-stack{color:#005b87!important}}@media(max-width:640px){.resume-stats{grid-template-columns:repeat(2,1fr)}.resume-projects{grid-template-columns:1fr}.resume-skill-group{flex-direction:column;gap:.4rem}.resume-skill-label{min-width:unset}.resume-role-header{flex-direction:column}.resume-company-header{flex-direction:column;gap:.15rem}}
