@font-face{font-family:Gelasio;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/gelasio-latin-700-normal.DuRqSYpn.woff2) format("woff2"),url(/_astro/gelasio-latin-700-normal.0U730KkT.woff) format("woff")}@font-face{font-family:"Roboto Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/roboto-serif-latin-400-normal.BgT8Q8TT.woff2) format("woff2"),url(/_astro/roboto-serif-latin-400-normal.C7FmBTOy.woff) format("woff")}@font-face{font-family:"Roboto Serif";font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/roboto-serif-latin-700-normal.DkV0xF3D.woff2) format("woff2"),url(/_astro/roboto-serif-latin-700-normal.DvJqFm85.woff) format("woff")}:root{--color-ink: #000000;--color-dark: #111111;--color-paper: #ffffff;--color-accent: #b34f26;--color-accent-on-ink: #d86934;--color-mark: #c0392b;--color-divider: #d9d9d9;--font-serif: "Roboto Serif", serif;--font-display: "Gelasio", serif;--text-2xs: .75rem;--text-xs: .875rem;--text-sm: 1rem;--text-md: 1.125rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.75rem;--text-3xl: 2.5rem;--text-4xl: 4rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem;--space-9: 3rem;--space-10: 4rem;--space-11: 4.5rem;--space-12: 6.25rem}*{box-sizing:border-box}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}body{margin:0;font-family:var(--font-serif);color:var(--color-ink);background:var(--color-paper);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}.skip-link{position:absolute;left:-9999px;top:0;background:var(--color-dark);color:var(--color-paper);padding:var(--space-3) var(--space-5);z-index:1000}.skip-link:focus{left:12px;top:12px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}ul,ol{list-style:none;margin:0;padding:0}h1,h2,h3,p{margin:0}.copy{font-size:var(--text-xs);line-height:1.6;margin:0}.copy-strong{font-weight:700}.copy-small{font-size:var(--text-xs)}.copy-xs{font-size:var(--text-2xs);line-height:1.5}.site-nav{padding:var(--space-7) 0;box-sizing:border-box;background:var(--color-paper);position:fixed;top:0;left:0;right:0;z-index:30;width:100%;transform:translateY(0);transition:transform .3s ease}.site-nav.is-hidden{transform:translateY(-100%)}.site-nav-spacer{height:var(--site-nav-h, 5.25rem);flex-shrink:0;pointer-events:none}.case-page .site-nav-spacer{display:none}.home-shell{max-width:90rem;margin-inline:auto;width:100%;box-sizing:border-box;padding-inline:var(--space-7);--home-content-columns: repeat(3, minmax(0, 1fr)) minmax(0, 22rem);--home-content-gap: var(--space-7)}.site-nav-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;row-gap:var(--space-2)}.case-page .site-nav--over-hero{background:var(--color-ink);color:var(--color-paper);transition:transform .3s ease,background-color .35s ease,color .35s ease}.case-page .site-nav--over-hero .nav-name,.case-page .site-nav--over-hero .nav-links a{color:var(--color-paper);transition:color .35s ease}.case-page .site-nav--over-hero.is-scrolled{background:var(--color-paper);color:var(--color-ink)}.case-page .site-nav--over-hero.is-scrolled .nav-name,.case-page .site-nav--over-hero.is-scrolled .nav-links a{color:var(--color-ink)}@media (prefers-reduced-motion: reduce){.site-nav{position:sticky;transform:none!important;transition:none}.site-nav-spacer{display:none}.case-page .site-nav--over-hero,.case-page .site-nav--over-hero .nav-name,.case-page .site-nav--over-hero .nav-links a{transition:none}}@media (max-width: 480px){.site-nav{padding:var(--space-5) 0}.nav-links{gap:var(--space-3)}}.nav-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-md);text-decoration:none;color:var(--color-ink);white-space:nowrap;flex-shrink:0}@media (hover: none){.nav-name{display:inline-flex;align-items:center;min-height:2.75rem}}.nav-links{display:flex;gap:var(--space-6);font-size:var(--text-sm);flex-shrink:0}.nav-links a{text-decoration:none;color:var(--color-ink);white-space:nowrap}@media (hover: none){.nav-links a{display:inline-flex;align-items:center;min-height:2.75rem;padding:.625rem var(--space-1)}}@media (hover: none) and (max-width: 480px){.nav-links a{padding:.625rem 0}}.projects-section{background:var(--color-paper);color:var(--color-ink);padding-block:var(--space-12) 0;display:flex;flex-direction:column;gap:var(--space-6);scroll-margin-top:var(--space-12)}.projects-heading{font-size:var(--text-xl);font-weight:700;margin:0;width:100%}.work-list{display:grid;grid-template-columns:var(--home-content-columns);column-gap:var(--home-content-gap);row-gap:var(--space-2);width:100%;contain:layout style;align-items:stretch}.work-item{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:subgrid;grid-row:span 3;column-gap:var(--space-3);align-items:start;padding-bottom:var(--space-7);margin-bottom:calc(var(--space-9) - var(--space-2));border-bottom:1px solid var(--color-divider);min-width:0;text-align:left}.work-item:nth-last-child(-n+4){border-bottom:none;padding-bottom:0;margin-bottom:0}.work-index{grid-column:1;grid-row:1 / -1;font-weight:400;opacity:.5;line-height:inherit;text-align:left}.work-body{display:contents}.work-title{grid-column:2;font-size:var(--text-xl);font-weight:700;margin:0;overflow-wrap:break-word;word-break:break-word;display:flex;align-items:center;gap:var(--space-3);text-align:left;width:100%;min-width:0}.work-title-text{min-width:0}.work-summary{grid-column:2;margin:0;width:100%;min-width:0;text-align:left}.work-metrics{grid-column:2;display:flex;flex-direction:column;align-items:flex-start;text-align:left;color:var(--color-accent);white-space:normal;width:100%;min-width:0}.work-arrow{font-size:inherit;color:var(--color-ink);opacity:.35;transform:translate(0);transition:opacity .2s ease;flex-shrink:0}.work-item:hover .work-arrow,.work-item:focus-within .work-arrow{opacity:1}.work-item:has(a.work-item-link:focus-visible) .work-title-text{outline:3px solid var(--color-accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.work-arrow{transition:none}}@media (hover: none){.work-arrow{opacity:1}}@media (max-width: 1050px){.work-list{grid-template-columns:repeat(2,minmax(0,1fr))}.work-item:nth-last-child(-n+4){border-bottom:1px solid var(--color-divider);padding-bottom:var(--space-7);margin-bottom:calc(var(--space-9) - var(--space-2))}.work-item:nth-last-child(-n+2){border-bottom:none;padding-bottom:0;margin-bottom:0}}@media (max-width: 700px){.work-list{grid-template-columns:1fr;row-gap:var(--space-2)}.work-item{padding-bottom:var(--space-6);margin-bottom:calc(var(--space-7) - var(--space-2))}.work-item:nth-last-child(-n+2){border-bottom:1px solid var(--color-divider);padding-bottom:var(--space-6);margin-bottom:calc(var(--space-7) - var(--space-2))}.work-item--last,.work-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}.work-metrics{flex-direction:row;flex-wrap:wrap;gap:var(--space-4)}}.home-page{background:var(--color-paper);color:var(--color-ink)}.home-section{padding-block:var(--space-12) 0;scroll-margin-top:var(--space-12)}.home-hero{padding-top:var(--space-8);box-sizing:border-box}.home-hero-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,22rem);column-gap:var(--home-content-gap);align-items:end;width:100%}.home-hero-inner{display:flex;flex-direction:column;gap:var(--space-6);width:100%;max-width:none;min-width:0}.home-hero-photo{min-width:0}.home-hero-photo img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block}.home-hero-inner>h2,.home-hero-inner>.copy,.home-hero-inner>.currently{max-width:49.125rem}.beyond-grid{display:grid;grid-template-columns:var(--home-content-columns);gap:var(--home-content-gap);align-items:start}.beyond-heading{grid-column:1 / -1;margin:0}.beyond-col{min-width:0;margin:0}.fade-up{opacity:0;transform:translateY(var(--space-4));transition:opacity .5s ease-out,transform .5s ease-out;transition-delay:var(--fade-delay, 0ms)}html.is-positioned .fade-up--land,html.is-positioned .fade-up.is-shown{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.fade-up{opacity:1;transform:none;transition:none}}.col-experience{display:flex;flex-direction:column;gap:var(--space-6);width:20rem;max-width:100%;min-width:0}.col-photo{min-width:0}#home-heading{font-size:var(--text-2xl);font-weight:700;line-height:2.75rem;margin:0}.text-block{display:flex;flex-direction:column;gap:var(--space-2);max-width:19.9375rem}.text-block--about{width:75%;max-width:75%;gap:var(--space-4)}.beyond-heading,.col-experience>h3{font-size:var(--text-xl);font-weight:700;margin:0}.projects-heading.copy-small,.work-title.copy-small,.work-summary.copy-small,.work-metrics.copy-small,.work-index,.beyond-heading.copy-small,.beyond-col.copy-small,.col-experience>h3.copy-small,.nav-links a.copy-small,.case-project-list-heading.copy-small,.case-project-title.copy-small,.case-project-index.copy-small,.case-project-status.copy-small,.case-summary.copy-small,.case-metrics .copy-small,.case-hero-meta dt.copy-small,.case-hero-meta dd.copy-small{font-size:var(--text-xs)}.currently{display:flex;flex-direction:column;gap:var(--space-2)}.employer-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.employer{margin:0;width:20rem;max-width:100%}.employer-company{margin:0}.photo-frame img{width:100%;height:auto;aspect-ratio:3 / 4;object-fit:cover;display:block}.contact-footer{background:var(--color-dark);color:var(--color-paper);padding-block:var(--space-10);margin-top:var(--space-12);scroll-margin-top:var(--space-12);content-visibility:auto;contain-intrinsic-size:auto 400px}.contact-footer-inner{display:flex;flex-direction:column;gap:var(--space-10)}.contact-footer h2{margin:0}.contact-links{display:flex;flex-direction:column;gap:var(--space-4)}.contact-links a{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-paper);text-decoration:none}@media (hover: none){.contact-links a{min-height:2.75rem;padding:.625rem var(--space-1)}}.contact-links a:hover,.contact-links a:focus-visible{text-decoration:underline}.contact-footer .copy-small{color:var(--color-paper)}.contact-credit-link{color:inherit;text-decoration:none}.contact-credit-link:hover,.contact-credit-link:focus-visible{text-decoration:underline}.case-page{min-height:100vh;display:flex;flex-direction:column;background:var(--color-paper);color:var(--color-ink)}.case-cover{position:relative;isolation:isolate}.case-hero{position:relative;z-index:3;box-sizing:border-box;min-height:100svh;min-height:100dvh;background:var(--color-ink);color:var(--color-paper);padding:calc(var(--case-nav-h, 5.25rem) + var(--space-8)) var(--space-7) var(--space-8);display:flex;flex-direction:column;justify-content:flex-start}.case-hero-inner{max-width:42rem;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:var(--space-4)}.case-cover-overlay{position:fixed;inset:0;z-index:2;background:var(--color-ink);opacity:var(--case-overlay-opacity, .6);pointer-events:none}.case-index{margin:0;opacity:.65;letter-spacing:.04em;text-transform:uppercase}.case-hero h1{font-size:var(--text-2xl);font-weight:700;line-height:2.75rem;margin:0}.case-summary{margin:0;max-width:36rem}.case-metrics{display:flex;flex-direction:column;gap:var(--space-1);color:var(--color-accent-on-ink);margin:var(--space-4) 0 0;padding:0;list-style:none}.case-hero-meta{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-6);padding:0;border-top:1px solid rgba(255,255,255,.16);padding-top:var(--space-5)}.case-hero-meta>div{display:grid;grid-template-columns:6.5rem 1fr;gap:var(--space-4);align-items:baseline}.case-hero-meta dt{margin:0;opacity:.55}.case-hero-meta dd{margin:0;opacity:.92}.case-main{position:relative;z-index:1;flex:1;max-width:104rem;margin:calc(-1 * var(--case-hero-h, 100dvh)) auto 0;padding:0 var(--space-7) var(--space-8);width:100%}.case-main>[data-case-main]{margin-top:var(--case-pin-top, 8.5rem)}.case-reveal-spacer{height:var(--case-hero-h, 100dvh);pointer-events:none}@media (prefers-reduced-motion: reduce),(max-width: 1050px){.case-cover{margin-top:0}.case-hero{min-height:0;justify-content:flex-start;padding:calc(var(--case-nav-h, 5.25rem) + var(--space-4)) var(--space-7) var(--space-8)}.case-cover-overlay{display:none}.case-main{margin-top:0;padding-top:var(--space-12)}.case-main>[data-case-main]{margin-top:0!important;position:static!important;top:auto!important;left:auto!important;right:auto!important;width:auto!important;transform:none!important}.case-reveal-spacer{display:none}}.case-body{display:flex;flex-direction:column;gap:var(--space-6)}.case-body>:not(.case-figure):not(.case-figure-row){max-width:42rem;width:100%;margin-left:auto;margin-right:auto}.case-body>.case-figure{max-width:56rem;margin-left:auto;margin-right:auto}.case-body :where(h2){font-size:var(--text-xs);font-weight:700;margin-top:var(--space-8);margin-bottom:0;line-height:1.6}.case-body :where(h2):first-child{margin-top:0}.case-body :where(h3){font-size:var(--text-xs);font-weight:700;margin-top:var(--space-6);margin-bottom:0;line-height:1.6}.case-body :where(p,li){font-size:var(--text-xs);line-height:1.6;margin-top:0;margin-bottom:0}.case-body :where(strong){font-weight:700}.case-body :where(ul){display:flex;flex-direction:column;gap:var(--space-2);padding-left:var(--space-5)}.case-body :where(hr){border:none;border-top:1px solid var(--color-divider);margin:var(--space-6) 0}.case-result-stat{font-size:var(--text-2xl);font-weight:700;line-height:2.75rem;color:var(--color-accent);margin-top:0;margin-bottom:0}.case-figure{margin:var(--space-4) 0;width:100%}.case-figure-row{display:grid;grid-template-columns:repeat(2,minmax(0,50rem));justify-content:center;gap:var(--space-4);width:100%;margin:var(--space-4) 0}.case-figure-row .case-figure{margin:0;max-width:50rem}.case-figure-row--phones{grid-template-columns:repeat(2,minmax(0,22rem));justify-content:center;align-items:start}.case-figure-row--phones .case-figure{max-width:22rem}.case-figure img{display:block;width:auto;max-width:100%;height:auto;margin-inline:auto;border:1px solid var(--color-divider)}.case-figure-row--phones .case-figure img{width:100%;height:min(70vh,36rem);max-width:22rem;margin-inline:auto;object-fit:contain;object-position:top center}.case-figure--phone img{width:auto;max-width:100%;height:auto;margin-inline:auto}.case-body>.case-figure.case-figure--phone{width:100%;max-width:22rem;margin-left:auto;margin-right:auto}.case-figure--phone{width:100%;max-width:22rem;margin-left:auto;margin-right:auto}.case-project-list{margin-top:var(--space-12);padding-top:0;scroll-margin-top:var(--space-12);max-width:42rem;margin-left:auto;margin-right:auto}.case-project-list-heading{margin:0 0 var(--space-6)}.case-project-list ol{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none}.case-project-list li{border-bottom:1px solid var(--color-divider)}.case-project-list li:last-child{border-bottom:none}.case-project-row{display:flex;align-items:baseline;gap:var(--space-5);padding:var(--space-5) 0;color:var(--color-ink);text-decoration:none}.case-project-index{flex-shrink:0;opacity:.5;min-width:1.75rem}.case-project-title{display:inline-flex;align-items:center;gap:var(--space-3);flex:1;min-width:0}.case-project-arrow{font-size:inherit;opacity:0;transform:translate(-.375rem);transition:opacity .2s ease,transform .2s ease;flex-shrink:0}a.case-project-row:hover .case-project-arrow,a.case-project-row:focus-visible .case-project-arrow{opacity:1;transform:translate(0)}@media (prefers-reduced-motion: reduce){.case-project-arrow{transition:opacity .2s ease;transform:none}}@media (hover: none){.case-project-arrow{opacity:1;transform:none}}.case-project-status{flex-shrink:0;color:var(--color-ink)}.case-project-status--current{display:inline-flex;align-items:baseline;gap:.35em;opacity:1;letter-spacing:.01em}.case-project-status-mark{color:var(--color-accent);font-weight:700;line-height:1}.case-project-list li.is-current .case-project-row{opacity:1}.case-project-list li.is-current .case-project-index{opacity:.7}.case-project-row.is-disabled{opacity:.4;cursor:default}.case-project-row.is-disabled .case-project-status{opacity:1}.case-exit-strip{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-6);max-width:42rem;width:100%;margin:var(--space-12) auto 0;padding:var(--space-8) 0 0;border-top:1px solid var(--color-ink);box-sizing:border-box}.case-exit-link{color:var(--color-ink);text-decoration:none;white-space:nowrap}.case-exit-link--back{min-width:0;white-space:normal}.case-exit-link:hover,.case-exit-link:focus-visible{text-decoration:underline;text-underline-offset:.2em}.back-to-top{position:fixed;right:var(--space-5);bottom:var(--space-5);bottom:calc(var(--space-5) + env(safe-area-inset-bottom,0px));right:calc(var(--space-5) + env(safe-area-inset-right,0px));z-index:40;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin:0;padding:0;border:1px solid var(--color-divider);background:var(--color-paper);color:var(--color-ink);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.back-to-top.is-visible{opacity:1;pointer-events:auto}.back-to-top:hover,.back-to-top:focus-visible{border-color:var(--color-ink)}@media (pointer: coarse){.back-to-top{width:3rem;height:3rem}}@media (prefers-reduced-motion: reduce){.back-to-top{transition:none}}.case-back{display:inline-block;color:var(--color-paper);text-decoration:none;font-size:var(--text-sm);opacity:.75;width:fit-content}.case-back:hover,.case-back:focus-visible{text-decoration:underline;opacity:1}@media (max-width: 1050px){.case-hero{padding:calc(var(--case-nav-h, 5.25rem) + var(--space-4)) var(--space-6) var(--space-8)}.case-hero h1{font-size:var(--text-xl);line-height:1.4}.case-main{padding:0 var(--space-6) var(--space-8);padding-top:var(--space-12)}.case-figure-row{grid-template-columns:minmax(0,50rem);justify-content:center}.case-figure-row--phones{grid-template-columns:minmax(0,22rem)}.case-result-stat{font-size:var(--text-xl);line-height:1.4}.case-hero-meta>div{grid-template-columns:1fr;gap:var(--space-1)}}@media (max-width: 1050px){.home-shell{padding-inline:var(--space-6);--home-content-columns: 1fr;--home-content-gap: var(--space-6)}.home-hero{padding-top:var(--space-6)}.home-hero-layout{grid-template-columns:1fr}.home-hero-photo{display:none}.home-hero-inner{max-width:100%;gap:var(--space-5)}#home-heading{font-size:var(--text-xl);line-height:2.25rem}.beyond-grid{grid-template-columns:var(--home-content-columns);gap:var(--home-content-gap)}.beyond-heading{grid-column:1}.text-block,.text-block--about{max-width:37.5rem;width:100%}.col-experience,.employer{width:20rem;max-width:100%}.beyond-heading,.col-experience>h3{font-size:var(--text-lg)}.projects-heading,.work-title{font-size:var(--text-lg)}.projects-heading.copy-small,.work-title.copy-small,.work-summary.copy-small,.work-metrics.copy-small,.work-index,.beyond-heading.copy-small,.beyond-col.copy-small,.col-experience>h3.copy-small,.nav-links a.copy-small,.case-project-list-heading.copy-small,.case-project-title.copy-small,.case-project-index.copy-small,.case-project-status.copy-small,.case-summary.copy-small,.case-metrics .copy-small,.case-hero-meta dt.copy-small,.case-hero-meta dd.copy-small{font-size:var(--text-xs)}.contact-footer{padding-block:var(--space-8);margin-top:var(--space-12)}}
