:root{color-scheme:light;--paper: oklch(97.2% .008 85);--paper-veil: oklch(97.2% .008 85 / .86);--paper-deep: oklch(94% .012 84);--paper-line: oklch(86% .012 82);--ink: oklch(23% .012 60);--ink-soft: oklch(38% .012 62);--muted: oklch(52% .012 66);--oxblood: oklch(44% .12 28);--oxblood-soft: oklch(94% .03 32);--gilt: oklch(72% .09 78);--rule: 1px solid oklch(78% .012 78 / .7);--rule-strong: 1px solid var(--ink);--shadow-frame: 0 .6rem 1.8rem oklch(24% .02 60 / .16);--shadow-frame-hover: 0 1.1rem 2.6rem oklch(24% .02 60 / .22);--sans: "Hanken Grotesk", "Hanken Fallback", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "Fragment Mono", "Fragment Fallback", ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--type-wordmark: 800 clamp(1.1rem, 1.6vw, 1.32rem)/1 var(--sans);--type-display: 800 clamp(2.2rem, 5vw, 4.1rem)/1.04 var(--sans);--type-section: 600 clamp(.72rem, 1vw, .8rem)/1 var(--mono);--type-work-title: 700 clamp(1.4rem, 2.4vw, 2.1rem)/1.1 var(--sans);--type-placard: 700 .72rem/1.4 var(--mono);--type-placard-cap: 800 .66rem/1.1 var(--mono);--type-lead: 400 clamp(1.12rem, 1.5vw, 1.36rem)/1.55 var(--sans);--type-copy: 400 clamp(1rem, 1.05vw, 1.06rem)/1.65 var(--sans);--type-copy-small: 400 .9rem/1.55 var(--sans);--type-nav: 600 .74rem/1 var(--mono);--type-footer-link: 400 .88rem/1.5 var(--sans);--shell: 1280px;--shell-wide: 1600px;--gutter: clamp(20px, 4vw, 56px);--section-gap: clamp(48px, 8vw, 120px);--gap-xl: clamp(28px, 5vw, 72px);--gap-grid: clamp(16px, 2vw, 30px);--tracking-cap: .16em;--radius-pill: 999px;--dur-ui: .2s;--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1)}@font-face{font-family:Hanken Fallback;src:local("Helvetica Neue"),local("Arial");ascent-override:98%;descent-override:26%;line-gap-override:0%;size-adjust:99%}@font-face{font-family:Fragment Fallback;src:local("Menlo"),local("Consolas"),local("monospace");size-adjust:96%}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}body{font:var(--type-copy);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh}img,picture,svg{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}h1,h2,h3,h4{font-weight:inherit}.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--gutter)}.shell-wide{max-width:var(--shell-wide)}.skip-link{position:absolute;left:-999px;top:0;z-index:100;background:var(--ink);color:var(--paper);padding:.6rem 1rem;font:var(--type-nav);letter-spacing:.08em}.skip-link:focus{left:.5rem;top:.5rem}:focus-visible{outline:2px solid var(--oxblood);outline-offset:3px}.eyebrow{font:var(--type-section);text-transform:uppercase;letter-spacing:var(--tracking-cap);color:var(--oxblood)}.site-header{position:sticky;top:0;z-index:50;background:var(--paper-veil);backdrop-filter:blur(10px);@supports not (backdrop-filter: blur(10px)){background:var(--paper)}border-bottom:var(--rule)}.nav-shell{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:clamp(.9rem,1.4vw,1.25rem)}.brand-lockup{display:inline-flex;align-items:center;line-height:1;color:var(--ink)}.brand-signature{display:block;height:clamp(40px,4.6vw,58px);width:auto;color:var(--ink)}.brand-word{font:var(--type-wordmark);text-transform:uppercase;letter-spacing:.18em}.primary-nav{display:flex;gap:clamp(1.2rem,2.4vw,2.4rem)}.primary-nav a{font:var(--type-nav);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);padding:.6rem 0 .2rem;border-bottom:1px solid transparent;transition:color var(--dur-ui) var(--ease-out-quart),border-color var(--dur-ui) var(--ease-out-quart)}.primary-nav a:hover,.primary-nav a[aria-current=page]{color:var(--ink);border-color:var(--oxblood)}.hero{padding-block:clamp(40px,7vw,86px) clamp(28px,4vw,56px)}.hero-name{font:var(--type-display);letter-spacing:-.01em;margin-top:.8rem}.hero-name em{font-style:normal;color:var(--oxblood)}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:var(--gap-xl);align-items:center}.hero-copy{display:flex;flex-direction:column}.hero-copy .eyebrow{margin-bottom:1.2rem}.hero-tagline{font:var(--type-display);font-size:clamp(2.1rem,4.4vw,3.6rem);letter-spacing:-.01em;max-width:16ch}.hero-lead{font:var(--type-lead);color:var(--ink-soft);max-width:42ch;margin-top:1.5rem}.hero-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin-top:1.8rem;font:var(--type-placard);color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.hero-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--oxblood)}.hero-photo{background:var(--paper-deep);box-shadow:var(--shadow-frame)}.hero-photo img{width:100%;height:auto;display:block}.hero-photo figcaption{font:var(--type-placard-cap);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:.7rem .9rem}@media(max-width:880px){.hero-grid{grid-template-columns:1fr;gap:clamp(22px,5vw,36px)}.hero-photo{order:-1}}.section{padding-block:var(--section-gap)}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:1.4rem;margin-bottom:clamp(24px,3vw,44px);border-bottom:var(--rule-strong)}.section-head h2{font:var(--type-section);text-transform:uppercase;letter-spacing:var(--tracking-cap)}.section-head .count{font:var(--type-placard);color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:clamp(20px,3vw,36px)}.prose-narrow{max-width:760px}.filter-count{opacity:.55}.filter-btn{display:inline-flex;align-items:center;min-height:44px;font:var(--type-nav);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);background:none;border:var(--rule);padding:.5rem .95rem;cursor:pointer;border-radius:var(--radius-pill);transition:all var(--dur-ui) var(--ease-out-quart)}.filter-btn:hover{color:var(--ink);border-color:var(--ink)}.filter-btn[aria-pressed=true]{color:var(--paper);background:var(--ink);border-color:var(--ink)}.work-grid{column-count:3;column-gap:var(--gap-grid)}@media(min-width:1440px){.work-grid{column-count:4}}.work-cell{break-inside:avoid;margin-bottom:var(--gap-grid)}.work-card{display:block;position:relative}.work-frame{background:var(--paper-deep);box-shadow:var(--shadow-frame);transition:box-shadow .45s var(--ease-out-expo),transform .45s var(--ease-out-quart);overflow:hidden}.work-card:hover .work-frame{box-shadow:var(--shadow-frame-hover);transform:translateY(-4px)}.work-frame img{width:100%;height:auto}.work-placard{display:flex;flex-direction:column;gap:.15rem;padding-top:.7rem}.work-placard .pt{font:var(--type-placard);color:var(--ink)}.work-placard .pt em{font-style:normal}.work-placard .pm{font:var(--type-placard-cap);color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.work-detail{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--gap-xl);align-items:start;padding-block:clamp(28px,5vw,64px)}.work-detail-img{background:var(--paper-deep);box-shadow:var(--shadow-frame);display:grid;place-items:center}.work-detail-img img{width:auto;max-width:100%;height:auto;max-height:80vh}.work-aside{position:sticky;top:96px}.work-aside .back{font:var(--type-nav);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);display:inline-flex;align-items:center;min-height:44px;margin-bottom:1.4rem}.work-aside .back:hover{color:var(--oxblood)}.work-aside h1{font:var(--type-work-title);margin-bottom:1.4rem}.label-table{border-top:var(--rule-strong)}.label-row{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:var(--rule)}.label-row dt{font:var(--type-placard-cap);text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.label-row dd{font:var(--type-placard);color:var(--ink);text-align:right}.work-nav{display:flex;flex-direction:column;gap:.7rem;margin-top:2rem;padding-top:1.4rem;border-top:var(--rule)}.work-nav a{display:inline-flex;align-items:center;min-height:44px;font:var(--type-nav);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft)}.work-nav a:hover{color:var(--oxblood)}.prose-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(28px,5vw,64px);padding-block:var(--gap-xl)}@media(min-width:880px){.prose-wrap.with-aside{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}.prose p{font:var(--type-copy);color:var(--ink-soft);max-width:60ch}.prose p+p{margin-top:1.2rem}.prose .lead{font:var(--type-lead);color:var(--ink);margin-bottom:1.6rem}.portrait-frame{background:var(--paper-deep);box-shadow:var(--shadow-frame);align-self:start}.portrait-frame img{width:100%;height:auto;display:block;max-height:72vh;object-fit:contain}@media(max-width:880px){.portrait-frame{max-width:340px;margin-inline:auto}.portrait-frame img{max-height:56vh}}.contact-list{border-top:var(--rule-strong);margin-top:1rem}.contact-list .row{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:1rem 0;border-bottom:var(--rule)}.contact-list .k{font:var(--type-placard-cap);text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.contact-list .v{font:var(--type-placard);color:var(--ink);text-align:right}.contact-list .v a:hover{color:var(--oxblood)}.site-footer{border-top:var(--rule-strong);margin-top:var(--section-gap);padding-block:clamp(48px,6vw,84px) clamp(20px,2.6vw,30px)}.footer-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,auto);column-gap:clamp(3rem,8vw,9rem);row-gap:clamp(2.5rem,5vw,4rem);align-items:start}.footer-directory{display:flex;flex-wrap:wrap;gap:2.4rem clamp(2.5rem,5vw,4.5rem)}.footer-nav{min-width:8rem}.footer-reach{min-width:13rem}.footer-signoff{max-width:34ch}.footer-signature{display:block;height:clamp(52px,6vw,76px);width:auto;color:var(--ink)}.footer-sub{font:var(--type-copy-small);color:var(--muted);margin-top:clamp(1.1rem,2vw,1.6rem);max-width:30ch}.footer-col h3{font:var(--type-placard-cap);text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:1.15rem}.footer-col ul{list-style:none;padding:0;margin:0;display:grid;gap:.7rem}.footer-col li{font:var(--type-footer-link);color:var(--ink-soft)}.footer-col a{color:inherit;transition:color var(--dur-ui) var(--ease-out-quart)}.footer-col a:hover{color:var(--oxblood)}.footer-reach ul{gap:.85rem}.footer-email{display:inline-flex;align-items:center;gap:.55rem}.footer-email-icon{flex:none;color:var(--muted);transition:color var(--dur-ui) var(--ease-out-quart)}.footer-email:hover .footer-email-icon{color:var(--oxblood)}.footer-address{color:var(--muted);max-width:22ch}.footer-bottom{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;margin-top:clamp(40px,5vw,64px);padding-top:1.4rem;border-top:var(--rule);font:var(--type-placard-cap);text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.footer-colophon{color:var(--muted)}.motion-ready [data-motion=register]{opacity:0;transform:translateY(14px)}.motion-ready [data-motion=register].is-visible{opacity:1;transform:none;transition:opacity .6s var(--ease-out-expo),transform .6s var(--ease-out-expo)}.motion-ready [data-motion=stagger]{opacity:0;transform:translateY(22px) scale(.985);filter:blur(7px);will-change:opacity,transform,filter}.motion-ready [data-motion=stagger].is-visible{opacity:1;transform:none;filter:none;transition:opacity .62s var(--ease-out-expo),transform .66s var(--ease-out-quart),filter .5s var(--ease-out-expo);transition-delay:calc(var(--stagger-index, 0) * 70ms)}.motion-ready [data-motion=stagger].is-settled{will-change:auto}@media(max-width:980px)and (min-width:861px){.work-detail{grid-template-columns:minmax(0,1fr) 260px}}@media(max-width:860px){.work-detail{grid-template-columns:1fr}.work-aside{position:static}.work-detail-img img{max-height:72vh}}@media(max-width:860px){.footer-grid{grid-template-columns:1fr}.footer-signoff{max-width:none}.footer-directory{gap:2.4rem clamp(3rem,8vw,6rem)}}@media(max-width:640px){.work-grid{column-count:2}}@media(max-width:520px){.footer-directory{flex-direction:column;gap:2.2rem}.footer-bottom{justify-content:flex-start}}@media(max-width:480px){.nav-shell,.primary-nav{gap:1rem}.work-grid{column-gap:14px}.work-cell{margin-bottom:14px}}
