:root{--color-paper: oklch(14% .012 75);--color-paper-2: oklch(17% .014 75);--color-paper-3: oklch(20% .015 75);--color-ink: oklch(93% .012 80);--color-ink-2: oklch(76% .02 75);--color-muted: oklch(64% .015 75);--color-rule: oklch(30% .01 75);--color-rule-2: oklch(24% .01 75);--color-accent: oklch(76% .14 75);--color-accent-2: oklch(82% .12 75);--color-focus: oklch(72% .16 75);--color-btn: oklch(52.3% .101 67.3);--color-btn-2: oklch(57% .101 67.3);--font-display: "Fraunces", ui-serif, Georgia, serif;--font-body: "Instrument Sans", ui-sans-serif, system-ui, sans-serif;--font-outlier: "JetBrains Mono", ui-monospace, monospace;--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4.5rem;--space-3xl: 6rem;--text-xs: .8rem;--text-sm: .9rem;--text-base: 1.0625rem;--text-md: 1.25rem;--text-lg: 1.5625rem;--text-xl: 1.9531rem;--text-2xl: 2.4414rem;--text-3xl: 3.0518rem;--text-display: clamp(2.5rem, 5vw + 1rem, 4rem);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-fast: .12s;--dur-med: .2s;--radius: 2px;--radius-sm: 2px;--container: 1100px;--page-gutter: clamp(1.25rem, 4vw, 2.5rem);--z-base: 1;--z-raised: 10;--z-dropdown: 100;--z-sticky: 200;--z-modal: 400;--z-toast: 500;--z-tooltip: 600}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{overflow-x:clip;scroll-behavior:smooth}body{overflow-x:clip;font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;background:var(--color-paper);color:var(--color-ink);-webkit-font-smoothing:antialiased}::selection{background:var(--color-accent);color:var(--color-paper)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--color-paper)}::-webkit-scrollbar-thumb{background:var(--color-rule);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}a{color:var(--color-accent);text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:2px}section{scroll-margin-top:5rem}.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--page-gutter)}.nav{border-bottom:1px solid var(--color-rule)}.nav-inner{max-width:var(--container);margin-inline:auto;padding-inline:var(--page-gutter);display:flex;align-items:center;justify-content:space-between;height:64px}.nav-logo{font-family:var(--font-display);font-size:var(--text-md);font-weight:600;letter-spacing:-.01em;color:var(--color-ink);white-space:nowrap}.nav-links{display:flex;gap:var(--space-lg)}.nav-links a{color:var(--color-ink-2);font-size:var(--text-sm);white-space:nowrap}.nav-links a:hover{color:var(--color-ink)}.nav-menu{display:none}.hero{padding-top:var(--space-2xl);padding-bottom:var(--space-3xl)}.hero h1{font-family:var(--font-display);font-size:var(--text-display);font-weight:600;letter-spacing:-.02em;line-height:1.05;max-width:18ch;overflow-wrap:anywhere;min-width:0}.hero h1 .accent{color:var(--color-accent)}.hero-lede{color:var(--color-ink-2);font-size:var(--text-md);line-height:1.6;max-width:52ch;margin-top:var(--space-md)}.hero-actions{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-top:var(--space-xl)}.btn{display:inline-flex;align-items:center;gap:var(--space-2xs);padding:var(--space-xs) var(--space-md);background:var(--color-btn);color:var(--color-ink);font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--color-btn-2)}.btn-ghost{background:transparent;border-color:var(--color-rule);color:var(--color-ink)}.btn-ghost:hover{border-color:var(--color-accent);color:var(--color-accent);background:transparent}.section{padding-block:var(--space-3xl)}.section-head{margin-bottom:var(--space-xl)}.section-head h2{font-family:var(--font-display);font-size:clamp(1.75rem,3vw + .5rem,2.5rem);font-weight:600;letter-spacing:-.01em;line-height:1.1;overflow-wrap:anywhere;min-width:0}.section-desc{color:var(--color-muted);max-width:55ch;line-height:1.6;margin-top:var(--space-xs)}.services-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.service-wide{grid-column:1 / -1;max-width:42rem;margin-inline:auto}.service{background:var(--color-paper-2);border:1px solid var(--color-rule);border-radius:var(--radius);padding:var(--space-lg);display:flex;flex-direction:column}.service h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em}.service-title{display:flex;align-items:center;gap:var(--space-2xs)}.service-title svg{color:var(--color-accent);flex-shrink:0}.service p{color:var(--color-ink-2);font-size:var(--text-sm);line-height:1.6;margin-top:var(--space-xs)}.service-meta{margin-top:auto;padding-top:var(--space-sm)}.tags{display:flex;flex-wrap:wrap;gap:var(--space-2xs) var(--space-sm);list-style:none}.tag{font-size:var(--text-sm);color:var(--color-muted);white-space:nowrap}.engagements-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.engagement{padding:var(--space-md) 0}.engagement:before{content:"";display:block;width:1.5rem;height:2px;background:var(--color-accent);margin-bottom:var(--space-sm)}.engagement-num{font-family:var(--font-outlier);font-size:var(--text-xs);color:var(--color-accent)}.engagement h3{font-family:var(--font-display);font-size:var(--text-md);font-weight:600;letter-spacing:-.01em;margin-top:var(--space-2xs)}.engagement p{color:var(--color-ink-2);font-size:var(--text-sm);line-height:1.6;margin-top:var(--space-2xs)}.about{background:var(--color-paper-2);border-block:1px solid var(--color-rule)}.about-prose{max-width:65ch}.about-prose p{font-size:var(--text-base);line-height:1.65;margin-bottom:var(--space-md);color:var(--color-ink-2)}.about-prose p:first-child{color:var(--color-ink);font-size:var(--text-lg);line-height:1.5}.projects{display:flex;flex-direction:column}.project{display:block;padding-block:var(--space-xl);border-top:1px solid var(--color-rule);color:var(--color-ink)}.project:last-child{border-bottom:1px solid var(--color-rule)}.project-status{font-size:var(--text-sm);color:var(--color-accent);display:block;margin-bottom:var(--space-2xs)}.project h3{font-family:var(--font-display);font-size:clamp(1.5rem,2.5vw,2.25rem);font-weight:600;letter-spacing:-.01em;line-height:1.1}.project p{color:var(--color-ink-2);font-size:var(--text-base);line-height:1.6;max-width:55ch;margin-top:var(--space-xs)}.project-link{display:inline-block;font-size:var(--text-sm);font-weight:500;color:var(--color-accent);margin-top:var(--space-sm);white-space:nowrap}a.project:hover h3{color:var(--color-accent)}.contact{background:var(--color-paper-2);border-top:1px solid var(--color-rule)}.contact-lede{color:var(--color-ink-2);max-width:45ch;line-height:1.6}.contact-links{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-top:var(--space-sm)}.contact-links a{color:var(--color-ink);font-size:var(--text-base);border-bottom:1px solid var(--color-rule-2);padding-bottom:1px;white-space:nowrap}.contact-links a:hover{color:var(--color-accent);border-color:var(--color-accent)}.contact-sep{color:var(--color-muted)}.testimonial{background:var(--color-paper-2);border:1px solid var(--color-rule);border-radius:var(--radius);padding:var(--space-lg);margin-bottom:var(--space-md)}.testimonial p{font-family:var(--font-display);font-size:var(--text-md);line-height:1.5;max-width:45ch}.testimonial footer{font-family:var(--font-outlier);font-size:var(--text-xs);color:var(--color-muted);margin-top:var(--space-sm)}.writing-item{background:var(--color-paper-2);border:1px solid var(--color-rule);border-radius:var(--radius);padding:var(--space-lg);margin-bottom:var(--space-md)}.writing-tag{font-size:var(--text-sm);color:var(--color-muted);display:block;margin-bottom:var(--space-2xs)}.writing-item h3{font-family:var(--font-display);font-size:var(--text-md);font-weight:600;letter-spacing:-.01em}.writing-item p{color:var(--color-ink-2);font-size:var(--text-sm);line-height:1.6;max-width:55ch;margin-top:var(--space-2xs)}.notfound{min-height:60dvh;display:flex;align-items:center;padding-block:var(--space-3xl)}.notfound h1{font-family:var(--font-display);font-size:clamp(3rem,8vw,6rem);font-weight:600;letter-spacing:-.02em;line-height:1}.notfound p{color:var(--color-ink-2);margin-top:var(--space-sm);margin-bottom:var(--space-lg)}.foot{border-top:1px solid var(--color-rule);padding-block:var(--space-lg)}.foot-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);flex-wrap:wrap}.foot p{color:var(--color-muted);font-size:var(--text-sm)}.foot a{color:var(--color-muted);font-size:var(--text-sm);white-space:nowrap}.foot a:hover{color:var(--color-accent)}@media(max-width:40rem){.nav-links{display:none}.nav-menu{display:block;position:relative}.nav-menu summary{list-style:none;cursor:pointer;color:var(--color-ink-2);font-size:var(--text-sm);padding:var(--space-2xs) var(--space-xs);border:1px solid var(--color-rule);border-radius:var(--radius-sm);white-space:nowrap}.nav-menu summary::-webkit-details-marker{display:none}.nav-menu[open] summary{color:var(--color-ink);border-color:var(--color-accent)}.nav-menu .nav-menu-links{position:absolute;top:calc(100% + var(--space-2xs));right:0;display:flex;flex-direction:column;gap:0;background:var(--color-paper-2);border:1px solid var(--color-rule);border-radius:var(--radius);padding:var(--space-2xs);min-width:180px}.nav-menu a{display:block;padding:var(--space-xs) var(--space-sm);color:var(--color-ink-2);font-size:var(--text-sm);border-radius:var(--radius-sm);white-space:nowrap}.nav-menu a:hover{color:var(--color-ink);background:var(--color-paper-3)}.hero{padding-block:var(--space-2xl)}.hero h1{font-size:clamp(2.25rem,8vw,3rem)}.services-grid,.engagements-grid{grid-template-columns:1fr}.section{padding-block:var(--space-2xl)}.foot-inner{flex-direction:column;text-align:center}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
