:root{color-scheme:dark;--paper:#242822;--surface:#30362c;--ink:#fffaf0;--muted:#bcc4b5;--brand:#b2c897;--brand-soft:#353b2e;--button:#40602e;--accent:#efbf15;--line:#4d5746;--focus:#efbf15;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,segoe ui,sans-serif;line-height:1.65;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}a{color:var(--brand);text-underline-offset:.22em}a:hover{text-decoration-thickness:.15em}:focus-visible{outline:3px solid var(--focus);outline-offset:5px}.shell{width:min(100% - 3rem,68rem);margin-inline:auto}.skip-link{position:absolute;top:-8rem;left:1rem;padding:.75rem 1rem;background:var(--surface);z-index:2}.skip-link:focus{top:1rem}.site-header{min-height:7rem;padding-block:1.25rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--line)}.brand{color:var(--ink);text-decoration:none;font-size:1.65rem;font-weight:800;letter-spacing:-.06em}.brand-dot{color:var(--accent)}.brand img{display:block;width:7rem;max-width:100%;height:auto}nav{display:flex;gap:1.5rem;flex-wrap:wrap}nav a{color:var(--ink);text-decoration:none;padding-block:.65rem}nav a[aria-current]{color:var(--brand);text-decoration:underline;text-decoration-thickness:2px}.hero{padding-block:clamp(4rem,10vw,8rem);max-width:52rem}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.8rem;font-weight:700;color:var(--brand)}h1,h2,h3{line-height:1.12;letter-spacing:-.04em;text-wrap:balance}h1{font-size:clamp(2.6rem,7vw,5.6rem);margin-block:1rem 1.5rem}h2{font-size:clamp(1.6rem,3vw,2.2rem)}h3{font-size:1.4rem}.intro{font-size:1.2rem;max-width:40rem;color:var(--muted)}.home-intro{max-width:44rem;font-size:1.0625rem;line-height:1.8}.home-intro>p{margin-block:1.4rem}.home-intro>p:first-child{font-size:1.2rem;color:var(--muted)}.button{display:inline-flex;gap:1.5rem;align-items:center;margin-top:1rem;padding:.8rem 1.3rem;border-radius:.4rem;background:var(--button);color:#fff;text-decoration:none;font-weight:600}.button span{color:var(--accent)}.latest{padding-block:2rem 5rem;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.empty-state{margin-top:1.5rem;background:var(--brand-soft);border-top:4px solid var(--accent);padding:clamp(1.5rem,5vw,3rem);border-radius:.75rem}.empty-state h2,.empty-state h3{margin-top:0}.empty-state p{margin-bottom:0}.article{max-width:46rem;min-height:55vh;padding-block:4rem 6rem}.article h1{font-size:clamp(2.5rem,6vw,4rem)}.post-card{padding-block:1.75rem;border-bottom:1px solid var(--line)}.post-card time,.post-meta{color:var(--muted);font-size:.9rem}.post-card h2,.post-card h3{margin-block:.6rem}.post-card h2 a,.post-card h3 a{color:var(--ink)}.prose{overflow-wrap:anywhere}.prose h2,.prose h3{margin-top:2.5rem}.prose img{display:block;max-width:100%;height:auto}.blog-post .prose img{max-width:calc(100% - .65rem);margin-block:1.5rem;border:1px solid var(--line);border-radius:.5rem;box-shadow:.5rem .5rem 0 var(--paper),.5rem .5rem 0 1px var(--brand),0 1rem 2rem rgb(0 0 0/35%)}.blog-post .prose figure{margin:2rem 0}.blog-post .prose figure img{margin-block:0 1.5rem}.blog-post .prose figcaption{color:var(--muted);font-size:.9rem}.blog-post .prose figcaption p{margin:0}.prose pre{overflow-x:auto;padding:1rem;background:var(--brand-soft)}.prose blockquote{margin-inline:0;padding-left:1.5rem;border-left:3px solid var(--brand)}.projects{min-height:55vh;padding-block:4rem 6rem}.projects-header{max-width:44rem;margin-bottom:2.5rem}.projects h1{font-size:clamp(2.5rem,6vw,4rem)}.project-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}.project-card{min-width:0}.project-card-link{display:flex;flex-direction:column;height:100%;overflow:hidden;border:1px solid var(--line);border-radius:.75rem;background:var(--surface);color:var(--ink);text-decoration:none}.project-card-link:hover{border-color:var(--brand);box-shadow:0 .3rem 1rem rgb(7 62 27/8%)}.project-card img{display:block;width:100%;height:auto;aspect-ratio:6/5;object-fit:cover}.project-card img.project-logo{object-fit:scale-down}.project-card-body{display:flex;flex-direction:column;flex:1;padding:1.5rem}.project-card h2{margin:0;font-size:1.5rem}.project-card p{color:var(--muted)}.project-card-action{margin-top:auto;padding-top:.5rem;color:var(--brand);font-weight:600;text-decoration:underline;text-underline-offset:.22em}.project-contact{color:var(--muted)}.contact-form{display:grid;gap:1.5rem;max-width:40rem;margin-top:2rem}.form-field{display:grid;gap:.5rem;min-width:0}.form-field label{font-weight:600}.form-field input,.form-field textarea{width:100%;min-width:0;padding:.75rem;border:1px solid var(--muted);border-radius:.4rem;background:var(--surface);color:var(--ink);font:inherit}.form-field textarea{resize:vertical}.form-honeypot{display:none}.contact-form button{justify-self:start;margin-top:0;border:0;font:inherit;font-weight:600;cursor:pointer;min-height:2.75rem}.contact-form button:hover{text-decoration:underline;text-underline-offset:.22em}@media(min-width:40rem){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:64rem){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.site-footer{border-top:1px solid var(--line);padding-block:2rem;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;color:var(--muted);font-size:.9rem}.footer-brand{grid-column:2;display:flex;align-items:center;gap:.75rem;white-space:nowrap}.footer-brand img{display:block;width:3rem;height:3rem;filter:grayscale(1)}.footer-links{justify-self:end;gap:.5rem;flex-wrap:nowrap}.footer-links a{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;color:var(--muted);border-radius:.4rem}.footer-links a:hover{color:var(--ink);background:var(--surface)}.footer-links svg{display:block}@media(max-width:36rem){.shell{width:min(100% - 2rem,68rem)}.site-header{align-items:flex-start;flex-direction:column;gap:.5rem;padding-block:1.25rem}nav{gap:1.5rem}.hero{padding-block:3.5rem}.site-footer{grid-template-columns:1fr;justify-items:center}.footer-brand{grid-column:1}.footer-links{justify-self:center;gap:.5rem}}