:root{color-scheme:dark;--bg:#0a0a0b;--bg-elevated:#141416;--border:#27272a;--text:#fafafa;--text-muted:#a1a1aa;--accent:#22c55e;--accent-dim:#166534;--code-bg:#18181b;--max-width:43rem;--radius:6px;--font-sans:"IBM Plex Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html{background:var(--bg);color:var(--text);font-family:var(--font-sans);scroll-behavior:smooth;font-size:16px;line-height:1.6}body{background:radial-gradient(circle at top left, #22c55e14, transparent 28rem), var(--bg);min-height:100vh;margin:0}a{color:inherit;text-underline-offset:.22em;text-decoration-color:#22c55e73}a:hover{color:var(--accent);text-decoration-color:var(--accent)}.shell{width:min(100% - 2rem, var(--max-width));padding:2rem 0 calc(4rem + env(safe-area-inset-bottom,0px));padding-left:max(0px, env(safe-area-inset-left,0px));padding-right:max(0px, env(safe-area-inset-right,0px));margin:0 auto}.site-header{font-family:var(--font-mono);color:var(--text-muted);justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0 4rem;font-size:.82rem;display:flex}.wordmark{color:var(--text);align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.wordmark img{width:auto;height:1.75rem;display:block}.site-header nav{gap:1rem;display:flex}.site-header nav a{text-decoration:none}.hero,.section{padding:0 0 3.5rem}.eyebrow,.metric-label,.project-meta,.stack-line{font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;font-size:.76rem}.eyebrow,.project-meta,.stack-line{color:var(--accent)}h1,h2,h3,p{margin:0}h1{letter-spacing:-.06em;max-width:16ch;margin-top:.85rem;font-size:clamp(2rem,7vw,3.85rem);line-height:.98}.page-hero h1,.case-study-header h1{max-width:none;font-size:clamp(1.75rem,5vw,2.75rem);line-height:1.08}.lede{max-width:39rem;color:var(--text-muted);margin-top:1.35rem;font-size:1.06rem}.hero-actions{font-family:var(--font-mono);flex-wrap:wrap;gap:.75rem 1.1rem;margin-top:1.6rem;font-size:.86rem;display:flex}.ai-content-link{color:var(--accent);border:1px solid #22c55e5c;border-radius:999px;padding:.14rem .55rem;text-decoration:none}.ai-content-link:hover,.ai-content-link:focus-visible{border-color:var(--accent);background:#22c55e14;outline:none}.status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:0 0 3.5rem;display:grid}.status-grid>div,.project-card,.diagram{border:1px solid var(--border);border-radius:var(--radius);background:#141416b8}.status-grid>div{padding:1rem}.metric-label{color:var(--text-muted);margin-bottom:.35rem;display:inline-block}h2{letter-spacing:-.035em;margin-top:.45rem;font-size:clamp(1.45rem,4vw,2.15rem);line-height:1.12}.project-list{gap:1rem;margin-top:1.4rem;display:grid}.project-card{padding:1.25rem}.project-card h3{letter-spacing:-.02em;margin-top:.35rem;font-size:1.18rem}.project-card p{color:var(--text-muted);margin-top:.55rem}.project-card ul{color:var(--text);gap:.4rem;margin:1rem 0 0;padding-left:1.15rem;display:grid}.stack-line{text-transform:none;letter-spacing:normal;color:var(--text-muted)!important;margin-top:1rem!important}.diagram{margin-top:1.4rem;padding:1rem;overflow-x:auto}.diagram pre{color:var(--text);font-family:var(--font-mono);margin:0;font-size:.84rem;line-height:1.7}.skills{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.skills span{border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);border-radius:999px;padding:.3rem .58rem;font-size:.75rem}.footer{border-top:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);padding-top:1.5rem;font-size:.78rem}.footer-links{flex-wrap:wrap;gap:.75rem 1.1rem;margin-top:.75rem;display:flex}.vent-lede{margin-top:.85rem}.quote-list{gap:.75rem;margin-top:1.25rem;display:grid}.quote-carousel{margin-top:1.25rem}.quote-carousel-viewport{outline:none}.quote-carousel-track{display:grid}.quote-carousel-slide{opacity:0;visibility:hidden;grid-area:1/1;transition:opacity .25s,visibility .25s}.quote-carousel-slide.is-active{opacity:1;visibility:visible}.quote-carousel-controls{justify-content:center;align-items:center;margin-top:.75rem;display:flex}.quote-carousel-dots{justify-content:center;align-items:center;gap:.45rem;display:flex}.quote-carousel-dot{border:1px solid var(--border);cursor:pointer;box-sizing:content-box;background:0 0;border-radius:999px;width:.5rem;height:.5rem;padding:.65rem}.quote-carousel-dot.is-active{background:var(--accent);border-color:var(--accent)}.quote-carousel-dot:hover,.quote-carousel-dot:focus-visible{border-color:var(--accent);outline:none}@media (prefers-reduced-motion:reduce){.quote-carousel-slide{transition:none}}.quote-card{border:1px solid var(--border);border-radius:var(--radius);background:#141416b8;margin:0;padding:1rem 1.1rem}.quote-card p{color:var(--text);font-size:.98rem}.quote-card footer{color:var(--text-muted);font-family:var(--font-mono);margin-top:.55rem;font-size:.76rem}.placeholder-note{color:var(--text-muted);font-family:var(--font-mono);margin-top:.85rem;font-size:.72rem}.project-card--featured{border-color:#22c55e59}.project-meta{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.project-badge{color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.68rem}.project-card h3 a{text-decoration:none}.project-card h3 a:hover{color:var(--accent)}.project-link{font-family:var(--font-mono);margin-top:.85rem;font-size:.82rem}.project-link a{text-decoration:none}.contact-section{padding:0 0 2rem}.contact-lede{margin-top:.65rem}.contact-form{gap:1rem;max-width:32rem;margin-top:1.25rem;display:grid}.form-field{gap:.35rem;display:grid}.form-field label{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.76rem}.form-field input,.form-field textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);width:100%;color:var(--text);font:inherit;padding:.65rem .75rem;line-height:1.5}.form-field input:focus,.form-field textarea:focus{outline-offset:1px;border-color:#22c55e73;outline:2px solid #22c55e59}.form-honeypot{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.form-turnstile{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.form-turnstile--visible{clip:auto;white-space:normal;width:auto;height:auto;margin:0 0 .75rem;position:static;overflow:visible}.form-submit{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);color:var(--text);font-family:var(--font-mono);cursor:pointer;justify-self:start;padding:.55rem 1rem;font-size:.82rem}.form-submit:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.form-submit:disabled{opacity:.6;cursor:not-allowed}.form-status{min-height:1.25rem;font-family:var(--font-mono);color:var(--text-muted);margin:0;font-size:.8rem}.form-status--success{color:var(--accent)}.form-status--error{color:#f87171}.case-study{padding-bottom:1rem}.case-study-header{padding-bottom:2rem}.case-study-stack{margin-top:1rem!important}.case-section{padding-bottom:2.5rem}.case-section h2{margin-bottom:.65rem;font-size:1.35rem}.case-section p,.case-section li{color:var(--text-muted)}.case-section p+p,.case-section p+.hint-box,.case-section p+.point-card,.case-section p+.diagram,.case-section .hint-box+p,.case-section .point-card+.case-screenshot,.case-section .rag-flow-diagram,.case-section .case-screenshot+.case-screenshot,.case-section .screenshot-placeholder+.screenshot-placeholder{margin-top:1rem}.case-section ul,.finding-list{gap:.5rem;margin:.75rem 0 0;padding-left:1.15rem;display:grid}.case-section li{color:var(--text)}.case-section code{font-family:var(--font-mono);color:var(--accent);font-size:.88em}.case-section--muted{border-top:1px solid var(--border);padding-top:2rem}.diagram--inline{margin-top:1rem}.hint-box{border:1px solid var(--border);border-radius:var(--radius);background:#141416b8;gap:.85rem;margin-top:1rem;padding:.95rem 1rem;display:flex}.hint-box-icon{width:1.55rem;height:1.55rem;color:var(--accent);font-family:var(--font-mono);border:1px solid #22c55e73;border-radius:999px;flex-shrink:0;place-items:center;font-size:.82rem;font-weight:600;line-height:1;display:grid}.hint-box-title{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.76rem}.hint-box-content{margin-top:.45rem}.hint-box-content :where(p){color:var(--text-muted);margin:0;font-size:.94rem}.hint-box-content :where(p+p){margin-top:.65rem}.hint-box-content :where(a){color:var(--text)}.point-card{border:1px solid var(--border);border-radius:var(--radius);background:#141416b8;margin-top:1rem;padding:1rem 1.1rem}.point-card-title{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 .75rem;font-size:.76rem}.point-card-body :where(ul){gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.point-card-body :where(li){color:var(--text);padding-left:.95rem;font-size:.94rem;line-height:1.55;position:relative}.point-card-body :where(li):before{content:"";background:var(--accent);border-radius:999px;width:.35rem;height:.35rem;position:absolute;top:.55em;left:0}.screenshot-placeholder{margin:1.25rem 0 0}.screenshot-placeholder-box{border:1px dashed var(--border);border-radius:var(--radius);background:#14141680;justify-content:center;align-items:center;min-height:10rem;display:flex}.screenshot-placeholder-icon{color:var(--text-muted);font-family:var(--font-mono);opacity:.5;font-size:1.5rem}.screenshot-placeholder figcaption{gap:.2rem;margin-top:.45rem;display:grid}.screenshot-placeholder-label{color:var(--text-muted);font-size:.88rem}.screenshot-placeholder-file{font-family:var(--font-mono);color:var(--accent-dim);font-size:.72rem}.placeholder-page ul{margin-top:.75rem}.case-screenshot{margin:1.25rem 0 0}.case-screenshot-trigger{width:100%;color:inherit;cursor:default;text-align:inherit;background:0 0;border:0;padding:0;display:block}.case-screenshot-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.case-screenshot-frame{border-radius:var(--radius);width:100%;box-shadow:0 0 0 1px var(--border);background:var(--bg);display:block;position:relative;overflow:hidden}.case-screenshot-frame:after{content:"";border-radius:inherit;pointer-events:none;background:#0a0a0b24;position:absolute;inset:0}.case-screenshot--desktop .case-screenshot-frame{aspect-ratio:1189/650}.case-screenshot--mobile .case-screenshot-frame{aspect-ratio:1320/2868;width:min(100%,15rem);margin-inline:auto}.case-screenshot--diagram .case-screenshot-frame{aspect-ratio:16/9}.case-screenshot--diagram .case-screenshot-frame img{object-fit:contain;object-position:center}.case-screenshot-frame img{object-fit:cover;object-position:top center;width:100%;max-width:none;height:100%;max-height:none;display:block}.case-screenshot-caption{color:var(--text-muted);text-align:center;margin-top:.45rem;font-size:.88rem;display:block}.screenshot-lightbox{z-index:20;color:var(--text);background:#0a0a0be6;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.screenshot-lightbox[hidden]{display:none}.screenshot-lightbox-close{z-index:1;border:1px solid var(--border);border-radius:var(--radius);width:2rem;height:2rem;color:var(--text-muted);font-family:var(--font-mono);cursor:pointer;background:#141416eb;place-items:center;font-size:1.15rem;line-height:1;display:grid;position:absolute;top:.65rem;right:.65rem}.screenshot-lightbox-close:hover,.screenshot-lightbox-close:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.screenshot-lightbox-body{border-radius:var(--radius);width:min(94vw,69rem);max-height:92vh;box-shadow:0 0 0 1px var(--border);background:var(--bg);position:relative;overflow:hidden}.screenshot-lightbox-body:after{content:"";z-index:1;border-radius:inherit;pointer-events:none;background:#0a0a0b1a;position:absolute;inset:0}.screenshot-lightbox-body img{width:100%;max-width:none;height:auto;max-height:88vh;display:block}.rag-flow-diagram{margin:1.25rem 0 0}.rag-flow-diagram__canvas{justify-content:center;align-items:center;padding:1.5rem 1.25rem;display:flex}.rag-flow-diagram__svg{width:100%;max-width:34rem;height:auto;margin-inline:auto;display:block}.rag-flow-diagram__node rect{fill:var(--bg-elevated);stroke:var(--border);stroke-width:1px}.rag-flow-diagram__node--accent rect{stroke:#22c55e8c}.rag-flow-diagram__node text{fill:var(--text);font-family:var(--font-mono);font-size:11px}.rag-flow-diagram__node-subtitle{fill:var(--text-muted);font-family:var(--font-mono);font-size:9px}.rag-flow-diagram__edge{fill:none;stroke:#22c55e38;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.rag-flow-diagram__edge-pulse{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14 86;stroke-dashoffset:100px;filter:drop-shadow(0 0 4px #22c55e73);animation:2.8s linear infinite rag-flow-travel;animation-delay:var(--flow-delay,0s)}.rag-flow-diagram__arrowhead{fill:#22c55e8c}.rag-flow-diagram__caption{color:var(--text-muted);text-align:center;margin-top:.45rem;font-size:.88rem;display:block}@keyframes rag-flow-travel{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.rag-flow-diagram__edge-pulse{stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:.35;filter:none;animation:none}}.thought-list{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-top:1.25rem;display:grid}.thought-list--full{grid-template-columns:1fr;max-width:100%}.thought-card{border:1px solid var(--border);border-radius:var(--radius);background:#141416b8;flex-direction:column;gap:.45rem;padding:1rem 1.1rem;display:flex}.thought-date{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.03em;font-size:.7rem}.thought-title{letter-spacing:-.015em;margin:0;font-size:.98rem;font-weight:600;line-height:1.35}.thought-list--full .thought-title{font-size:1.1rem}.thought-title a{text-decoration:none}.thought-title a:hover{color:var(--accent)}.thought-excerpt{color:var(--text-muted);flex:1;margin:0;font-size:.86rem;line-height:1.5}.thought-link{font-family:var(--font-mono);margin:.35rem 0 0;font-size:.75rem}.thought-link a{text-decoration:none}.thoughts-all{font-family:var(--font-mono);margin-top:1rem;font-size:.82rem}.thoughts-all a{text-decoration:none}.thoughts-index{padding-bottom:3.5rem}.thought-article{padding-bottom:2rem}.thought-article-header{padding-bottom:2.5rem}.thought-article-header h1{max-width:none;font-size:clamp(1.75rem,5vw,2.75rem);line-height:1.08}.thought-article-meta{font-family:var(--font-mono);color:var(--text-muted);margin-top:.75rem;font-size:.76rem}.thought-body{max-width:39rem}.thought-body h2{margin-top:2rem;font-size:clamp(1.2rem,3vw,1.5rem)}.thought-body h3{margin-top:1.5rem;font-size:1.1rem}.thought-body p{color:var(--text-muted);margin-top:1rem;font-size:1.02rem;line-height:1.7}.thought-body p:first-child{margin-top:0}.thought-body ul,.thought-body ol{gap:.45rem;margin:1rem 0 0;padding-left:1.25rem;display:grid}.thought-body li{color:var(--text-muted);font-size:1.02rem;line-height:1.65}.thought-body strong{color:var(--text);font-weight:600}.thought-body a{color:var(--text)}.thought-body code{font-family:var(--font-mono);color:var(--accent);font-size:.88em}.thought-body pre{border:1px solid var(--border);border-radius:var(--radius);background:var(--code-bg);font-family:var(--font-mono);margin-top:1rem;padding:1rem;font-size:.85rem;line-height:1.6;overflow-x:auto}.thought-body blockquote{border-left:3px solid var(--accent-dim);color:var(--text-muted);margin:1.25rem 0 0;padding:.75rem 1rem;font-size:1.02rem}.thought-body hr{border:none;border-top:1px solid var(--border);margin:2rem 0}@media (width<=640px){.shell{width:min(100% - 1.25rem, var(--max-width));padding-top:1rem}.status-grid{grid-template-columns:1fr}.site-header{flex-direction:column;align-items:flex-start;padding-bottom:2rem}.site-header nav{flex-wrap:wrap;gap:.35rem 1.1rem}.site-header nav a{align-items:center;min-height:2.75rem;padding:.15rem 0;display:inline-flex}.hero h1{max-width:none;line-height:1.02}.hero,.section{padding-bottom:2.5rem}.lede{font-size:1rem}.thought-body p,.thought-body li,.thought-body blockquote{font-size:.98rem}.case-section p,.case-section li{font-size:.94rem}.resume-skills-grid,.thought-list{grid-template-columns:1fr}}.resume{padding-bottom:2rem}.resume-header h1{max-width:none;font-size:clamp(1.85rem,5vw,2.5rem);line-height:1.1}.resume-headline{color:var(--accent);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;margin-top:.5rem;font-size:.88rem}.resume-location{color:var(--text-muted);margin-top:.35rem;font-size:.95rem}.resume-links{font-family:var(--font-mono);margin-top:.65rem;font-size:.84rem}.resume-actions{margin-top:1rem}.resume-section{border-top:1px solid var(--border);margin-top:1.75rem;padding:1.75rem 0 0}.resume-section:first-of-type{border-top:none;margin-top:1.25rem;padding-top:0}.resume-section h2{margin-bottom:.75rem;font-size:1.15rem}.resume-section p,.resume-section li{color:var(--text-muted)}.resume-job+.resume-job{margin-top:1.25rem}.resume-job h3{letter-spacing:-.02em;font-size:1.05rem}.resume-job-meta{color:var(--text-muted);font-family:var(--font-mono);margin-top:.25rem;font-size:.78rem}.resume-job-sep{opacity:.5;margin:0 .35rem}.resume-job-years{color:var(--text-muted)}.resume-job ul,.resume-section>ul{gap:.45rem;margin:.65rem 0 0;padding-left:1.15rem;display:grid}.resume-job li,.resume-section>ul>li,.resume-project-list li{color:var(--text)}.resume-project-years{color:var(--text-muted);font-family:var(--font-mono);font-size:.82rem}.resume-skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.resume-skills-grid ul{margin:.35rem 0 0;padding-left:1.1rem;font-size:.92rem}.resume-skills-grid li{color:var(--text-muted)}.back-to-top{right:calc(1.25rem + env(safe-area-inset-right,0px));bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));z-index:30;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--bg-elevated) 92%, transparent);backdrop-filter:blur(8px);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;opacity:0;visibility:hidden;pointer-events:none;align-items:center;gap:.35rem;padding:.5rem .75rem;font-size:.76rem;text-decoration:none;transition:opacity .2s,visibility .2s,transform .2s,border-color .15s,color .15s;display:inline-flex;position:fixed;transform:translateY(.35rem)}.back-to-top--visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.back-to-top:hover,.back-to-top:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.back-to-top span:first-child{font-size:.9rem;line-height:1}@media (prefers-reduced-motion:reduce){.back-to-top{transition:none;transform:none}.back-to-top--visible{transform:none}}@media (width<=640px){.back-to-top{right:calc(1rem + env(safe-area-inset-right,0px));bottom:calc(1rem + env(safe-area-inset-bottom,0px));padding:.55rem .65rem}.back-to-top-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}
