@import"https://fonts.googleapis.com/css2?family=Overpass:wght@600;700;800&family=Public+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--asphalt: #0b0e14;--asphalt-raised: #11151e;--asphalt-edge: #1c222e;--reflective: #f2f4f8;--dim: #a8b0bd;--faint: #5d6674;--ghost: #3a414d;--centerline: #f5a524;--centerline-bright: #ffbe45;--guide-green: #22a06b;--interstate-blue: #4d8dd6;--font-display: "Overpass", "Helvetica Neue", sans-serif;--font-body: "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", Menlo, monospace}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh;background:var(--asphalt);color:var(--reflective)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--centerline);outline-offset:2px;border-radius:4px}.page{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:4rem 1.5rem 2rem;max-width:560px;margin:0 auto;position:relative}.page:before{content:"";position:absolute;left:0;top:5.5rem;bottom:5rem;width:3px;background-image:linear-gradient(to bottom,var(--centerline) 0 16px,transparent 16px 30px);background-size:3px 30px;opacity:.45;animation:route-draw 1.2s ease-out}.page:after{content:"";position:absolute;right:0;top:5.5rem;bottom:5rem;width:3px;background:var(--reflective);opacity:.18;animation:route-draw 1.2s ease-out}@keyframes route-draw{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}@media(prefers-reduced-motion:reduce){.page:before,.page:after{animation:none}}@media(max-width:620px){.page:before,.page:after{display:none}.section-title:before,.footer-location:before{display:none}}.hero{text-align:center;margin-bottom:3.5rem}.headshot-wrap{width:120px;height:120px;border-radius:50%;padding:3px;background:linear-gradient(135deg,var(--centerline-bright),var(--centerline));margin:0 auto 1.5rem}.headshot{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.name{font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:var(--reflective);margin-bottom:.5rem;letter-spacing:.12em}.initial{font-size:1em;color:var(--centerline)}.tagline{font-family:var(--font-mono);font-size:.8rem;color:var(--faint);font-weight:400;margin-bottom:1.25rem;letter-spacing:.01em}.socials{display:flex;justify-content:center;gap:1rem}.social-link{color:var(--faint);transition:color .15s ease,transform .15s ease;display:flex;align-items:center;justify-content:center;padding:.375rem;border-radius:8px}.social-link:hover{color:var(--centerline);transform:translateY(-1px)}.section{width:100%;margin-bottom:2.5rem}.section-title{font-family:var(--font-display);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--dim);margin-bottom:.75rem;padding-left:.25rem;position:relative}.section-title:before{content:"";position:absolute;left:calc(-1.5rem - 4px);top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--asphalt);border:2px solid var(--centerline);opacity:.7}.cards{display:flex;flex-direction:column;gap:.625rem}.card{display:flex;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;background:var(--asphalt-raised);border:1px solid var(--asphalt-edge);border-radius:12px;transition:background .15s ease,border-color .15s ease,transform .15s ease;cursor:pointer}.card:hover{background:#141926;border-color:var(--ghost);transform:translateY(-1px)}.card-title{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:var(--reflective);letter-spacing:.01em}.card:hover .card-title{color:var(--centerline)}.card-playground{border-left:3px solid var(--centerline)}.card-opensource{border-left:3px solid var(--interstate-blue)}.card-opensource:hover .card-title{color:var(--interstate-blue)}.card-build{border-left:3px solid var(--guide-green)}.card-build:hover .card-title{color:var(--guide-green)}.card-build-meta{display:flex;align-items:center;gap:.375rem;font-family:var(--font-mono);font-size:.7rem;color:var(--faint)}.card-dot{color:var(--ghost)}.card-desc{font-size:.825rem;color:var(--dim);line-height:1.4}.footer{margin-top:auto;padding-top:2rem;text-align:center;display:flex;flex-direction:column;gap:.25rem;width:100%}.footer-email{font-family:var(--font-mono);font-size:.775rem;color:var(--faint);transition:color .15s ease}.footer-email:hover{color:var(--centerline)}.footer-location{font-family:var(--font-mono);font-size:.725rem;color:var(--ghost);position:relative}.footer-location:before{content:"";position:absolute;left:calc(-1.5rem - 4px);top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;background:var(--centerline);opacity:.7}.builds-page{min-height:100vh;max-width:560px;margin:0 auto;padding:3rem 1.5rem 2rem}.builds-nav{margin-bottom:2rem}.builds-back{font-family:var(--font-mono);font-size:.775rem;color:var(--faint);transition:color .15s ease}.builds-back:hover{color:var(--guide-green)}.builds-heading{font-family:var(--font-display);font-size:1.5rem;font-weight:800;color:var(--reflective);margin-bottom:.5rem;letter-spacing:.02em}.builds-subheading{font-size:.9rem;color:var(--dim);margin-bottom:2rem}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.article-page{min-height:100vh;max-width:720px;margin:0 auto;padding:3rem 1.5rem 4rem}.article-nav{margin-bottom:2.5rem}.article-back{font-family:var(--font-mono);font-size:.775rem;color:var(--faint);transition:color .15s ease}.article-back:hover{color:var(--guide-green)}.article-header{margin-bottom:2.5rem;border-bottom:1px solid var(--asphalt-edge);padding-bottom:2rem}.article-title{font-family:var(--font-display);font-size:1.75rem;font-weight:800;color:var(--reflective);line-height:1.3;margin-bottom:.75rem;letter-spacing:.01em}.article-meta{display:flex;align-items:center;gap:.375rem;font-family:var(--font-mono);font-size:.775rem;color:var(--faint);margin-bottom:.75rem}.article-meta-dot{color:var(--ghost)}.article-tags{display:flex;flex-wrap:wrap;gap:.375rem}.article-tag{font-family:var(--font-mono);font-size:.675rem;color:var(--dim);background:var(--asphalt-raised);border:1px solid var(--asphalt-edge);border-radius:4px;padding:.125rem .5rem}.article-also-published{font-size:.8rem;color:var(--faint);margin-top:.75rem}.article-also-published a{color:var(--dim);text-decoration:underline;text-underline-offset:2px;transition:color .15s ease}.article-also-published a:hover{color:var(--guide-green)}.article-not-found{color:var(--dim);font-size:.9rem}.article-not-found a{color:var(--guide-green)}.article-content{line-height:1.75;color:#ccd2dc}.article-content h2{font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:var(--reflective);margin-top:2.5rem;margin-bottom:1rem}.article-content h3{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:#dde2ea;margin-top:2rem;margin-bottom:.75rem}.article-content h4{font-family:var(--font-display);font-size:.95rem;font-weight:600;color:#ccd2dc;margin-top:1.5rem;margin-bottom:.5rem}.article-content p{margin-bottom:1.25rem}.article-content strong{color:#dde2ea;font-weight:600}.article-content em{font-style:italic}.article-content a{color:var(--guide-green);text-decoration:underline;text-underline-offset:2px}.article-content a:hover{color:#35c184}.article-content ul,.article-content ol{margin-bottom:1.25rem;padding-left:1.5rem}.article-content li{margin-bottom:.375rem}.article-content li>ul,.article-content li>ol{margin-top:.375rem;margin-bottom:0}.article-content code:not(pre code){font-family:var(--font-mono);font-size:.85em;background:var(--asphalt-raised);border:1px solid var(--asphalt-edge);border-radius:4px;padding:.125rem .375rem;color:#dde2ea}.article-content pre{margin-bottom:1.5rem;border-radius:8px;border:1px solid var(--asphalt-edge);overflow-x:auto}.article-content pre code{font-family:var(--font-mono);font-size:.825rem;line-height:1.6;display:block;padding:1rem 1.25rem}.article-content blockquote{border-left:3px solid var(--ghost);padding-left:1rem;margin-bottom:1.25rem;color:var(--dim)}.article-content table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:.875rem}.article-content th{text-align:left;font-weight:600;color:#dde2ea;border-bottom:2px solid var(--asphalt-edge);padding:.625rem .75rem}.article-content td{border-bottom:1px solid var(--asphalt-edge);padding:.625rem .75rem;color:var(--dim)}.article-content hr{border:none;border-top:1px solid var(--asphalt-edge);margin:2.5rem 0}.article-figure{margin:1.5rem 0}.article-image{max-width:100%;border-radius:8px;border:1px solid var(--asphalt-edge)}.article-caption{font-family:var(--font-mono);font-size:.75rem;color:var(--faint);text-align:center;margin-top:.5rem}.callout{border-left:3px solid var(--interstate-blue);background:var(--asphalt-raised);border-radius:0 8px 8px 0;padding:1rem 1.25rem;margin-bottom:1.5rem}.callout-header{display:flex;align-items:center;gap:.375rem;font-family:var(--font-display);font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.5rem}.callout-icon{font-size:.75rem}.callout-body{font-size:.875rem;line-height:1.6;color:var(--dim)}.callout-body p:last-child{margin-bottom:0}.callout-body ul,.callout-body ol{margin-bottom:.5rem}
