:root{--bg: #0d1117;--bg-2: #131a23;--line: #21262d;--text: #c9d1d9;--dim: #8b949e;--faint: #6e7681;--green: #7ee787;--green-d: #58a065;--white: #f0f3f6;--mono: "SF Mono", "JetBrains Mono", "Fira Code", ui-monospace, Menlo, Consolas, "Liberation Mono", monospace;--maxw: 920px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--mono);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;background-image:linear-gradient(var(--bg-2) 1px,transparent 1px),linear-gradient(90deg,var(--bg-2) 1px,transparent 1px);background-size:44px 44px;background-position:-1px -1px}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:22px 0 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#0d1117d9;backdrop-filter:blur(6px);z-index:10}.brand{color:var(--white);font-weight:700;letter-spacing:.5px}.brand:hover{text-decoration:none}.cursor{color:var(--green);animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.nav a{color:var(--dim);margin-left:22px;font-size:14.5px}.nav a:hover{color:var(--green);text-decoration:none}.hero{display:grid;grid-template-columns:1fr 200px;gap:44px;align-items:center;padding:74px 0 66px}.prompt{color:var(--dim);font-size:14px;margin:0 0 20px}.prompt .path{color:var(--green-d)}.prompt .dollar{color:var(--green)}h1{font-size:clamp(28px,5vw,44px);line-height:1.18;letter-spacing:-.5px;color:var(--white);font-weight:700;margin:0 0 22px}.role{color:var(--dim);font-size:14.5px;margin:0 0 20px}.role a{color:var(--green)}.role .arrow{color:var(--green-d);font-size:12px}.lede{color:var(--text);max-width:52ch;margin:0 0 26px}.stack{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0 0 30px}.stack li{font-size:13px;color:var(--dim);border:1px solid var(--line);border-radius:4px;padding:3px 10px}.stack li:before{content:"› ";color:var(--green-d)}.cta{display:flex;gap:14px;flex-wrap:wrap}.btn{border:1px solid var(--green-d);color:var(--green);padding:10px 18px;border-radius:6px;font-size:14.5px;transition:background .15s ease,border-color .15s ease}.btn:hover{background:#7ee78714;text-decoration:none}.btn.ghost{border-color:var(--line);color:var(--dim)}.btn.ghost:hover{color:var(--white);border-color:var(--faint);background:transparent}.hero-photo img{width:100%;height:auto;border-radius:10px;border:1px solid var(--line);filter:grayscale(18%) contrast(1.02);display:block}.block{padding:54px 0;border-top:1px solid var(--line)}.section-head{color:var(--white);font-size:20px;font-weight:700;margin:0 0 8px}.section-head .hash{color:var(--green-d);margin-right:8px}.section-note{color:var(--dim);margin:0 0 30px;max-width:60ch}.work-group{margin-top:38px}.work-group:first-of-type{margin-top:10px}.group-head{color:var(--white);font-size:15px;font-weight:700;letter-spacing:.3px;margin:0 0 16px;padding-bottom:8px;border-bottom:1px dashed var(--line)}.group-head .arrow{color:var(--green);margin-right:8px}.empty-note{color:var(--faint);font-size:13.5px;margin:0 0 4px}.projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}.project{border:1px solid var(--line);border-radius:8px;padding:20px 20px 18px;background:linear-gradient(180deg,var(--bg-2),var(--bg));transition:border-color .15s ease,transform .15s ease}.project:hover{border-color:var(--green-d);transform:translateY(-2px)}.project-top{display:flex;justify-content:flex-end;align-items:center;margin-bottom:8px}.tag{font-size:12px;color:var(--green);background:#7ee78714;border:1px solid rgba(126,231,135,.25);border-radius:4px;padding:2px 8px}.year{font-size:12px;color:var(--faint)}.project h4{color:var(--white);font-size:17px;margin:0 0 8px}.project-title-link{color:var(--white);text-decoration:none}.project-title-link:hover{color:var(--green);text-decoration:none}.project-title-link .go{color:var(--green-d);opacity:0;margin-left:2px;transition:opacity .15s ease}.project:hover .project-title-link .go{opacity:1}.project p{color:var(--dim);font-size:14px;margin:0 0 14px}.chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0 0 14px}.chips li{font-size:12px;color:var(--faint)}.chips li:before{content:"#";color:var(--green-d)}.project-links{display:flex;gap:16px;font-size:13.5px}.about-grid{display:grid;grid-template-columns:1fr 220px;gap:40px}.about-body p{margin:0 0 16px;color:var(--text)}.about-body em{color:var(--green);font-style:normal}.about-side h4{color:var(--white);font-size:14px;margin:0 0 12px;text-transform:uppercase;letter-spacing:1px}.about-side ul{list-style:none;padding:0;margin:0}.about-side li{color:var(--dim);font-size:14px;padding:5px 0;border-bottom:1px dashed var(--line)}.about-side li:before{content:"- ";color:var(--green-d)}.links{list-style:none;padding:0;margin:0}.links li{display:flex;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.link-key{color:var(--faint);font-size:13px;min-width:110px}.link-key:before{content:"→ ";color:var(--green-d)}.app-page{padding:40px 0 20px}.crumb{font-size:13px;color:var(--faint);margin:0 0 34px}.crumb a{color:var(--dim)}.crumb a:hover{color:var(--green);text-decoration:none}.crumb .sep{color:var(--line);margin:0 6px}.crumb .here{color:var(--green-d)}.app-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.app-page h1{font-size:clamp(26px,5vw,38px);margin:0 0 20px}.app-lede{color:var(--text);max-width:60ch;margin:0 0 22px;font-size:15.5px}.app-chips{margin:0 0 30px;gap:8px}.app-chips li{font-size:13px;color:var(--dim)}.app-actions{display:flex;flex-wrap:wrap;gap:14px;padding:6px 0 30px;border-bottom:1px solid var(--line)}.btn.play{background:#7ee78714;border-color:var(--green-d);color:var(--green)}.btn.play:hover{background:#7ee78729}.back-link{margin-top:26px;font-size:14px}.back-link a{color:var(--dim)}.back-link a:hover{color:var(--green);text-decoration:none}.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:30px 0 46px;border-top:1px solid var(--line);color:var(--faint);font-size:13px}@media(max-width:680px){.hero{grid-template-columns:1fr;gap:30px;padding:48px 0 44px}.hero-photo{order:-1;width:120px}.about-grid{grid-template-columns:1fr;gap:28px}.nav a{margin-left:16px}body{background-size:34px 34px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto}}
