:root{color-scheme:light dark;--background:#f5f5f0;--surface:#ecece6;--text:#171814;--muted:#66685f;--line:#d8d8d0;--accent:#456957;--accent-soft:#dfe8e1;--focus:#1d6f49;--content:66rem;--measure:44rem;--page-padding:clamp(1.25rem, 4vw, 3rem);--section-space:clamp(5rem, 10vw, 9rem)}@media (prefers-color-scheme:dark){:root{--background:#11120f;--surface:#1a1b17;--text:#f0f1eb;--muted:#a6a99f;--line:#30322c;--accent:#a9c9b6;--accent-soft:#233128;--focus:#b8e7ca}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{background:var(--background);min-width:20rem;min-height:100vh;color:var(--text);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1rem;line-height:1.65}button,input,textarea{font:inherit}::selection{background:var(--accent-soft);color:var(--text)}img,svg{max-width:100%;display:block}h1,h2,h3,p,ul,ol{margin-top:0}h1,h2,h3{letter-spacing:-.035em;line-height:1.08}h1{font-size:clamp(3.75rem,12vw,8rem)}h2{font-size:clamp(2rem,5vw,3.25rem)}h3{font-size:1.2rem}p{max-width:70ch}a{color:inherit;text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);text-underline-offset:.2em;text-decoration-thickness:.08em}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--focus);outline-offset:4px}main:focus{outline:none}.site-shell{width:min(100%, calc(var(--content) + (2 * var(--page-padding))));padding-inline:var(--page-padding);margin-inline:auto}.skip-link{z-index:10;border:1px solid var(--line);background:var(--background);padding:.6rem .85rem;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{border-bottom:1px solid var(--line)}.header-inner,.footer-inner{justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.header-inner{min-height:4.5rem}.site-name{letter-spacing:-.02em;font-size:.95rem;font-weight:750;text-decoration:none}.site-header nav,.footer-links,.inline-links,.project-links{flex-wrap:wrap;align-items:center;display:flex}.site-header nav{gap:clamp(.8rem,3vw,1.5rem)}.site-header nav a,.footer-links a{color:var(--muted);font-size:.88rem;text-decoration:none}.site-header nav a:hover,.site-header nav a[aria-current=page],.footer-links a:hover{color:var(--text)}.intro{padding-block:clamp(6rem,14vw,11rem) clamp(5rem,10vw,8rem)}.kicker,.section-label,.project-number{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.76rem;font-weight:700}.intro h1{margin:.45rem 0 1.5rem}.lede{max-width:48rem;color:var(--muted);margin-bottom:1.25rem;font-size:clamp(1.2rem,2.6vw,1.7rem);line-height:1.45}.intro-copy{max-width:43rem;margin-bottom:2rem;font-size:1.05rem}.inline-links{gap:.65rem 1.25rem}.inline-links a,.project-links a{font-size:.92rem;font-weight:650}.site-section{padding-block:var(--section-space);border-top:1px solid var(--line)}.section-heading{grid-template-columns:minmax(8rem,.35fr) 1fr;gap:2rem;margin-bottom:clamp(2.75rem,7vw,5rem);display:grid}.section-heading h2{max-width:14ch;margin:0}.project-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.project-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(8rem,.34fr) minmax(0,1fr);gap:2rem;padding-block:2.25rem;display:grid}.project-title{align-items:baseline;gap:.8rem;display:flex}.project-title h3{margin:0}.project-summary{color:var(--muted);margin-bottom:1rem}.project-meta{color:var(--muted);margin-bottom:.8rem;font-size:.82rem}.project-links{gap:.55rem 1rem}.more-work{grid-template-columns:minmax(8rem,.34fr) minmax(0,1fr);gap:2rem;padding-top:2.5rem;display:grid}.more-work h3{margin:0;font-size:.95rem}.more-list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.more-list li{flex-wrap:wrap;gap:.35rem .7rem;display:flex}.more-list span{color:var(--muted)}.fkn-grid{grid-template-columns:minmax(0,1.1fr) minmax(16rem,.9fr);gap:clamp(2.5rem,8vw,6rem);display:grid}.fkn-copy{color:var(--muted);font-size:clamp(1.1rem,2.2vw,1.4rem)}.fkn-details{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.fkn-details li{border-bottom:1px solid var(--line);padding-block:1rem}.fkn-details strong{margin-bottom:.25rem;font-size:.9rem;display:block}.fkn-details span{color:var(--muted)}.contact-grid{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:2rem;display:grid}.contact-grid h2{max-width:15ch;margin-bottom:1.25rem}.contact-grid p{color:var(--muted)}.contact-email{font-size:clamp(1.1rem,2.5vw,1.45rem)}.site-footer{border-top:1px solid var(--line);color:var(--muted)}.footer-inner{min-height:5rem;font-size:.82rem}.footer-links{gap:1rem}.page-header{max-width:var(--measure);padding-block:clamp(4.5rem,10vw,7.5rem) 3rem}.page-header h1{margin:.5rem 0 1.2rem;font-size:clamp(2.8rem,8vw,5.5rem)}.page-header p{color:var(--muted);font-size:1.12rem}.prose{max-width:var(--measure);padding-bottom:var(--section-space)}.prose h2,.prose h3{margin-top:2.5rem}.prose pre{border:1px solid var(--line);background:var(--surface);padding:1rem;overflow-x:auto}.prose code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.post-list{max-width:var(--measure);padding-bottom:var(--section-space);border-top:1px solid var(--line);margin-top:0;list-style:none}.post-row{border-bottom:1px solid var(--line);grid-template-columns:9rem minmax(0,1fr);gap:1.5rem;padding-block:1.75rem;display:grid}.post-date{color:var(--muted);font-size:.82rem}.post-copy h2{margin-bottom:.5rem;font-size:1.3rem}.post-copy p{color:var(--muted);margin:0}.empty-state{max-width:var(--measure);padding-bottom:var(--section-space);color:var(--muted)}@media (width<=44rem){.header-inner{flex-direction:column;justify-content:center;align-items:flex-start;padding-block:1rem}.section-heading,.project-row,.post-row,.more-work,.fkn-grid,.contact-grid{grid-template-columns:1fr}.section-heading,.project-row,.more-work{gap:1.2rem}.contact-grid{align-items:start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
