:root{--bg: #f4f7f5;--surface: #ffffff;--ink: #0f1a16;--muted: #56655f;--line: #d9e2dd;--pass: #0c8a5f;--pass-deep: #0a6e4c;--pass-soft: #e2f1e9;--warn: #b45309;--terminal-bg: #0f1a16;--terminal-ink: #cfe0d7;--terminal-dim: #7d9188;--font-display: "Archivo", sans-serif;--font-body: "IBM Plex Sans", sans-serif;--font-mono: "IBM Plex Mono", monospace;--container: 1080px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased}::selection{background:var(--pass);color:#fff}a{color:inherit}:focus-visible{outline:2px solid var(--pass);outline-offset:3px;border-radius:2px}.container{max-width:var(--container);margin:0 auto;padding:0 24px}.nav{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:60px}.nav-brand{font-family:var(--font-mono);font-size:.85rem;font-weight:600;text-decoration:none;display:flex;align-items:center;gap:8px}.nav-brand .tick{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:5px;background:var(--pass);color:#fff;font-size:.7rem}.nav-links{display:flex;gap:4px}.nav-links a{font-family:var(--font-mono);font-size:.78rem;text-decoration:none;color:var(--muted);padding:6px 10px;border-radius:6px;transition:color .15s,background .15s}.nav-links a:hover{color:var(--ink);background:var(--pass-soft)}.hero{padding:72px 0 88px}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}.hero-eyebrow{font-family:var(--font-mono);font-size:.78rem;color:var(--pass-deep);letter-spacing:.04em;margin-bottom:18px;display:flex;align-items:center;gap:10px}.hero-eyebrow:before{content:"";width:26px;height:1px;background:var(--pass)}.hero h1{font-family:var(--font-display);font-weight:850;font-stretch:108%;font-size:clamp(2.6rem,5.4vw,4.1rem);line-height:1.02;letter-spacing:-.02em;margin-bottom:20px}.hero h1 .accent{color:var(--pass)}.hero-lede{color:var(--muted);font-size:1.06rem;max-width:46ch;margin-bottom:30px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.btn{font-family:var(--font-mono);font-size:.85rem;font-weight:600;text-decoration:none;padding:12px 20px;border-radius:8px;border:1px solid transparent;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex;align-items:center;gap:8px}.btn-primary{background:var(--pass);color:#fff}.btn-primary:hover{background:var(--pass-deep);transform:translateY(-1px);box-shadow:0 6px 16px #0c8a5f40}.btn-ghost{border-color:var(--line);color:var(--ink);background:var(--surface)}.btn-ghost:hover{border-color:var(--pass);transform:translateY(-1px)}.terminal{background:var(--terminal-bg);border-radius:14px;box-shadow:0 24px 60px -20px #0f1a1673;overflow:hidden;font-family:var(--font-mono);font-size:.8rem}.terminal-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.terminal-bar .dot{width:10px;height:10px;border-radius:50%;background:#ffffff24}.terminal-bar .title{margin-left:auto;color:var(--terminal-dim);font-size:.72rem}.terminal-body{padding:20px 20px 24px;color:var(--terminal-ink);min-height:300px}.term-cmd{color:#fff;margin-bottom:14px;word-break:break-all}.term-cmd .prompt{color:var(--pass);margin-right:8px}.term-line{display:flex;align-items:baseline;gap:10px;padding:3px 0}.term-line .name{white-space:nowrap}.term-line .name .file{color:var(--terminal-dim)}.term-line .leader{flex:1;border-bottom:1px dotted rgba(255,255,255,.18);transform:translateY(-4px);min-width:12px}.term-line .status{color:var(--pass);font-weight:600;animation:pop-in .25s ease both}.term-summary{margin-top:16px;padding:8px 12px;border-radius:6px;background:#0c8a5f29;color:#6fd3ac;text-align:center;animation:pop-in .3s ease both}.cursor{display:inline-block;width:8px;height:1em;background:var(--pass);vertical-align:text-bottom;animation:blink .9s steps(1) infinite}@keyframes blink{50%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.section{padding:88px 0 0}.section:last-of-type{padding-bottom:96px}.section-head{display:flex;align-items:baseline;gap:18px;margin-bottom:40px;border-top:1px solid var(--line);padding-top:26px}.section-eyebrow{font-family:var(--font-mono);font-size:.78rem;color:var(--pass-deep);white-space:nowrap}.section-head h2{font-family:var(--font-display);font-weight:800;font-stretch:105%;font-size:clamp(1.5rem,2.6vw,2rem);letter-spacing:-.015em}.section-head .count{margin-left:auto;font-family:var(--font-mono);font-size:.78rem;color:var(--muted)}.xp-entry{display:grid;grid-template-columns:300px 1fr;gap:40px;padding:36px 0}.xp-entry+.xp-entry{border-top:1px dashed var(--line)}.xp-meta{position:sticky;top:84px;align-self:start}.xp-duration{font-family:var(--font-mono);font-size:.78rem;color:var(--pass-deep);background:var(--pass-soft);display:inline-block;padding:3px 10px;border-radius:999px;margin-bottom:12px}.xp-role{font-family:var(--font-display);font-weight:750;font-size:1.2rem;line-height:1.25;margin-bottom:6px}.xp-company{color:var(--muted);font-size:.93rem}.xp-highlights{list-style:none;display:grid;gap:12px}.xp-highlights li{padding-left:26px;position:relative;color:#2b3a34;font-size:.96rem}.xp-highlights li:before{content:"✓";position:absolute;left:0;top:1px;color:var(--pass);font-weight:700;font-family:var(--font-mono)}.xp-projects{margin-top:26px;display:grid;gap:14px}.case-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px 20px;transition:border-color .15s,box-shadow .15s}.case-card:hover{border-color:var(--pass);box-shadow:0 8px 24px -12px #0c8a5f40}.case-card h4{font-family:var(--font-mono);font-size:.85rem;font-weight:600;display:flex;align-items:center;gap:8px;margin-bottom:10px}.case-card h4:before{content:"▸";color:var(--pass)}.case-card ul{list-style:none;display:grid;gap:7px}.case-card li{font-size:.9rem;color:var(--muted);padding-left:16px;position:relative}.case-card li:before{content:"·";position:absolute;left:2px;color:var(--pass);font-weight:700}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.skill-group{background:var(--surface);padding:22px 24px}.skill-group h3{font-family:var(--font-mono);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:14px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{font-family:var(--font-mono);font-size:.8rem;padding:5px 12px;border:1px solid var(--line);border-radius:999px;background:var(--bg);transition:border-color .15s,background .15s}.chip:hover{border-color:var(--pass);background:var(--pass-soft)}.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.project-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:26px;text-decoration:none;display:block;transition:border-color .15s,transform .15s,box-shadow .15s}.project-card:hover{border-color:var(--pass);transform:translateY(-2px);box-shadow:0 12px 32px -16px #0c8a5f4d}.project-card .repo{font-family:var(--font-mono);font-size:.75rem;color:var(--pass-deep);margin-bottom:12px;display:block}.project-card h3{font-family:var(--font-display);font-weight:750;font-size:1.15rem;margin-bottom:8px}.project-card p{color:var(--muted);font-size:.93rem}.creds-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.cred-block{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:26px}.cred-block h3{font-family:var(--font-mono);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:16px}.cred-block ul{list-style:none;display:grid;gap:14px}.cred-item strong{display:block;font-weight:600;font-size:.95rem}.cred-item span{color:var(--muted);font-size:.87rem}.award-item{padding-left:26px;position:relative;font-size:.93rem;color:#2b3a34}.award-item:before{content:"★";position:absolute;left:0;color:var(--warn);font-size:.85rem}.footer{margin-top:96px;background:var(--terminal-bg);color:var(--terminal-ink);padding:80px 0 40px}.footer-eyebrow{font-family:var(--font-mono);font-size:.78rem;color:var(--pass);margin-bottom:16px}.footer h2{font-family:var(--font-display);font-weight:850;font-stretch:108%;font-size:clamp(2rem,4.5vw,3.2rem);letter-spacing:-.02em;color:#fff;line-height:1.05;margin-bottom:18px;max-width:18ch}.footer-lede{color:var(--terminal-dim);max-width:52ch;margin-bottom:32px}.footer-actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:64px}.footer .btn-ghost{background:transparent;border-color:#fff3;color:var(--terminal-ink)}.footer .btn-ghost:hover{border-color:var(--pass)}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:24px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-family:var(--font-mono);font-size:.75rem;color:var(--terminal-dim)}.footer-bottom a{color:var(--terminal-dim);text-decoration:none}.footer-bottom a:hover{color:#fff}.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}.reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.term-line .status,.term-summary,.cursor{animation:none}}@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px}.xp-entry{grid-template-columns:1fr;gap:20px}.xp-meta{position:static}}@media(max-width:680px){.hero{padding:48px 0 64px}.skills-grid,.projects-grid,.creds-grid{grid-template-columns:1fr}.nav-links a:not(:last-child){display:none}.terminal-body{min-height:0}.term-line .name{white-space:normal;word-break:break-all}}
