:root{--bg: #0a0a0b;--bg-alt: #111114;--ink: #ededee;--ink-dim: #8a8a94;--gold: #d4a13a;--gold-bright: #f2c25b;--accent: #7cf2b8;--rule: #1e1e24;--max: 1080px;--mono: "JetBrains Mono", "SF Mono", ui-monospace, "Menlo", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--bg)}body{font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:transparent;color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}.pyrite-bg{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:-1;pointer-events:none}a{color:var(--gold-bright);text-decoration:none}a:hover{text-decoration:underline}.nav{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;max-width:var(--max);margin:0 auto;font-family:var(--mono);font-size:.9rem}.brand{font-size:1rem;letter-spacing:.02em;display:inline-flex;align-items:baseline}.brand-mark{color:var(--gold);margin-right:.5rem}.brand-name{color:var(--ink);font-weight:700}.brand-rest{color:var(--ink-dim);font-weight:400}.nav nav a{color:var(--ink-dim);margin-left:1.5rem}.nav nav a:hover{color:var(--ink);text-decoration:none}.nav nav a.cta{color:var(--bg);background:var(--gold);padding:.4rem .8rem;border-radius:4px;font-weight:600}.nav nav a.cta:hover{background:var(--gold-bright);color:var(--bg)}main{max-width:var(--max);margin:0 auto;padding:0 2rem}.hero{padding:6rem 0 5rem}.eyebrow{font-family:var(--mono);font-size:.8rem;color:var(--gold);margin:0 0 1.25rem}.hero h1{font-size:clamp(2.2rem,5.4vw,3.4rem);line-height:1.1;margin:0 0 1.5rem;max-width:22ch;font-weight:500}.hero h1 .accent{color:var(--ink-dim);font-weight:500}.hero h1 .heroEmphasis{color:var(--gold-bright)}.lede{font-size:1.1rem;color:var(--ink-dim);max-width:60ch;margin:0 0 2rem}.hero-cta{display:flex;gap:.75rem;flex-wrap:wrap}.btn{display:inline-block;padding:.75rem 1.25rem;border-radius:4px;font-weight:600;font-size:.95rem;font-family:var(--mono)}.btn-primary{background:var(--gold);color:var(--bg)}.btn-primary:hover{background:var(--gold-bright);text-decoration:none;color:var(--bg)}.btn-ghost{border:1px solid var(--rule);color:var(--ink)}.btn-ghost:hover{border-color:var(--gold);text-decoration:none}.section{padding:4rem 0;border-top:1px solid var(--rule)}.section-alt{background:var(--bg-alt);margin:0 -2rem;padding:4rem 2rem;border-top:1px solid var(--rule)}.section h2{font-family:var(--mono);font-size:1rem;color:var(--gold);margin:0 0 2rem;font-weight:500;letter-spacing:.02em}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.card{background:#111114bf;border:1px solid var(--rule);border-radius:0;padding:1.5rem;transition:border-color .12s}.card:hover{border-color:var(--accent)}.card-tag{font-family:var(--mono);font-size:.7rem;color:var(--accent);background:#7cf2b814;padding:.2rem .5rem;border-radius:3px;display:inline-block;margin-bottom:.75rem}.card h3{margin:0 0 .6rem;font-size:1.05rem;color:var(--ink);letter-spacing:-.01em}.card p{margin:0;color:var(--ink-dim);font-size:.95rem}.card-long{padding:2rem 2.25rem;max-width:78ch}.card-long h3{font-size:1.3rem;margin-bottom:.5rem}.card-long p{margin:0 0 1rem;line-height:1.7}.card-long p:last-child{margin-bottom:0}.card-long code{font-family:var(--mono);font-size:.88em;color:var(--accent);background:#7cf2b812;padding:.05em .35em;border-radius:3px}.card-long strong{color:var(--ink);font-weight:600}.card-stack{font-family:var(--mono);font-size:.78rem;color:var(--gold);margin:0 0 1.25rem!important;letter-spacing:.02em}.card-role{border-left:2px solid var(--gold);padding-left:1rem;color:var(--ink-dim);margin-top:1.25rem!important}.hero-compact{padding:4rem 0 2.5rem}.section-footnote{font-family:var(--mono);font-size:.85rem;color:var(--ink-dim);margin-top:2rem}.section-footnote a{color:var(--accent)}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem}.two-col h3{color:var(--ink);margin-top:0;font-family:var(--mono);font-size:1rem;font-weight:600}.two-col p{color:var(--ink-dim)}.experience{list-style:none;padding:0;margin:0;display:grid;gap:1rem;max-width:72ch}.experience li{display:flex;align-items:flex-start;gap:1.25rem;background:transparent;border-radius:0}.exp-content{padding:1.25rem 1.5rem;border-left:2px solid var(--gold);flex:1;min-width:0}.exp-logo{height:28px;width:auto;max-width:110px;flex-shrink:0;object-fit:contain;margin-top:1.35rem}.exp-role{font-family:var(--mono);font-size:.95rem;color:var(--ink);font-weight:600;margin-bottom:.4rem}.exp-co{color:var(--gold)}.exp-body{color:var(--ink-dim);font-size:.95rem}.about-body{max-width:68ch;color:var(--ink-dim)}.about-body strong{color:var(--ink)}.about-grid{display:flex;gap:2rem;align-items:flex-start}.headshot{width:120px;height:120px;border-radius:50%;border:1px solid var(--rule);flex-shrink:0;object-fit:cover;margin-top:3rem}@media (max-width: 720px){.about-grid{flex-direction:column}.headshot{width:90px;height:90px;margin-top:0}}.contact-lede{max-width:60ch;color:var(--ink-dim);margin-bottom:1.5rem}footer{max-width:var(--max);margin:0 auto;padding:2rem;border-top:1px solid var(--rule);display:flex;justify-content:space-between;color:var(--ink-dim);font-family:var(--mono);font-size:.8rem;flex-wrap:wrap;gap:.5rem}footer>span:first-child:before{content:"[ online ] ";color:var(--accent)}.footer-tag{color:var(--gold)}.email-link{font-family:var(--mono);font-size:1rem;color:var(--gold-bright);display:inline-block}.email-link:hover{text-decoration:underline}.tool-card{margin-top:2rem}.tool-image{margin:-1.5rem -1.5rem 1.5rem;aspect-ratio:4 / 3;background:var(--bg-alt);border-bottom:1px solid var(--rule);overflow:hidden;display:flex;align-items:center;justify-content:center}.tool-image img{width:100%;height:100%;object-fit:cover;display:block}.tool-image-placeholder{font-size:4rem;color:var(--gold);opacity:.4}.tool-listing{font-family:var(--mono);font-size:1rem;margin:1.5rem 0;padding:1rem;border:1px solid var(--rule);border-left:2px solid var(--gold)}.store-badges{display:flex;gap:.75rem;margin-top:1.25rem;flex-wrap:wrap}.store-badge{font-family:var(--mono);font-size:.8rem;padding:.6rem .9rem;border:1px solid var(--rule);color:var(--ink-dim);opacity:.6;pointer-events:none}@media (max-width: 640px){.nav{flex-direction:column;gap:1rem;padding:1rem}.nav nav a{margin:0 .75rem}main{padding:0 1.25rem}.section-alt{margin:0 -1.25rem;padding:3rem 1.25rem}.hero{padding:4rem 0 3rem}}
