@charset "UTF-8";
:root{--paper:#f5f3ee;--ink:#242522;--muted:#66665f;--rule:#d2d1c8;--accent:#5a5a55;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;color-scheme:light}
*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--accent)}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}p,h1,h2,h3,figure{margin:0}main{max-width:1440px;padding:0 60px;margin:auto}.masthead{display:flex;align-items:center;justify-content:space-between;padding:29px 0;border-bottom:1px solid var(--rule);gap:20px}.name{font-size:22px;font-weight:600;letter-spacing:-.7px;text-decoration:none}nav{display:flex;align-items:center;gap:28px;font-size:14px}nav a{display:inline-flex;align-items:center;line-height:1.4;white-space:nowrap;text-decoration:none}.intro{padding:65px 0 60px}.eyebrow{font-size:11px;line-height:1.5;letter-spacing:.075em;text-transform:uppercase;font-weight:500}.intro .eyebrow{color:var(--accent);margin-bottom:23px}h1{font-size:clamp(46px,6.1vw,88px);line-height:1.02;font-weight:400;letter-spacing:-.06em;max-width:1080px}.intro-copy{font-size:18px;line-height:1.5;max-width:630px;margin-top:28px;color:var(--muted)} .tools-case{display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);gap:60px;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);padding:32px 0 35px}.tools-heading h2{font-size:36px;font-weight:400;letter-spacing:-1.3px;margin:11px 0 14px}.tools-heading>p:last-child{font-size:14px;line-height:1.6;color:var(--muted);max-width:250px}.tools-text>p{font-size:15px;line-height:1.65;max-width:700px;margin-top:16px}.tools-text>p:first-child{margin-top:0;font-size:18px;line-height:1.5;letter-spacing:-.25px}.suite-note{margin-top:25px;padding-top:18px;border-top:1px solid var(--rule)}.suite-note h3{font-weight:500;font-size:14px;margin-bottom:8px}.suite-note p{font-size:13px;line-height:1.6;color:var(--muted);max-width:690px}.notes{margin-top:24px;font-size:13px;border-top:1px solid var(--rule);padding-top:13px}.notes summary{display:flex;justify-content:space-between;gap:18px;cursor:pointer;list-style:none}.notes p{font-size:13px;line-height:1.6;color:var(--muted);margin-top:13px}details summary::-webkit-details-marker{display:none}.notes[open] summary span{transform:rotate(45deg)}.work-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:42px 0 25px}.work-heading h2{font-size:18px;letter-spacing:-.4px;font-weight:400}.work-heading p{font-size:12px;color:var(--muted)}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:42px 32px}.case{min-width:0}.work-image,.player{display:block;width:100%;aspect-ratio:16/9;background:#deddd5;position:relative;overflow:hidden}.work-image img,.player img{display:block;width:100%;height:100%;object-fit:cover}.work-image img{object-position:center}.player-facade{position:relative;display:block;width:100%;height:100%;color:white}.player-facade:hover{color:white}.play-label{position:absolute;left:16px;bottom:16px;background:rgba(25,25,24,.88);padding:9px 13px;font-size:12px;display:flex;align-items:center;gap:10px}.player iframe{width:100%;height:100%;border:0;display:block}.close-player{position:absolute;top:10px;right:10px;background:var(--paper);color:var(--ink);border:0;padding:9px 12px;cursor:pointer;font-size:12px;z-index:1}.case-meta{display:flex;justify-content:space-between;gap:20px;margin-top:20px;color:var(--muted);align-items:center}.case-meta>span{font-size:11px}.case h3{font-size:25px;font-weight:400;letter-spacing:-.7px;line-height:1.18;margin-top:10px}.project-title{font-size:14px;margin-top:5px;color:var(--muted)}.case>p:not(.project-title){font-size:15px;line-height:1.55;margin-top:17px;max-width:510px}.text-link{display:inline-block;margin-top:17px;font-size:13px}.artists{border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);margin-top:55px;padding:24px 0}.artists summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none}.artists h2{font-size:20px;letter-spacing:-.5px;font-weight:400}.roster-meta{font-size:12px;white-space:nowrap;color:var(--muted)}.details-mark{display:inline-block;font-size:20px;margin-left:15px;vertical-align:middle}.artists[open] .details-mark{transform:rotate(45deg)}.roster{padding:28px 0 0;margin:0;list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px 24px;font-size:13px;line-height:1.4}.roster li{overflow-wrap:anywhere}footer{padding:28px 0 35px;display:flex;justify-content:space-between;gap:24px;font-size:13px}footer p span{display:block;color:var(--muted);font-size:12px;margin-top:7px}footer a{align-self:flex-start}.skip{position:absolute;left:20px;top:-80px;background:var(--paper);padding:12px;z-index:5}.skip:focus{top:10px}
@media(min-width:1440px){h1{font-size:88px}}
@media(max-width:1000px){main{padding:0 34px}.tools-case{gap:30px;grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr)}.work-grid{gap:35px 25px}}
@media(max-width:680px){main{padding:0 22px}.masthead{padding:22px 0}.name{font-size:20px}nav{gap:20px;font-size:12px}.intro{padding:42px 0 40px}h1{font-size:clamp(38px,9.8vw,64px);letter-spacing:-.055em}.intro .eyebrow{margin-bottom:19px}.intro-copy{font-size:16px;margin-top:24px}.tools-case{grid-template-columns:1fr;gap:26px;padding:27px 0 30px}.notes{margin-top:20px;max-width:none}.work-heading{padding:32px 0 20px}.work-heading p{font-size:11px}.work-grid{grid-template-columns:1fr;gap:35px}.case h3{font-size:25px}.case-meta{margin-top:17px}.case>p:not(.project-title){margin-top:13px}.artists{margin-top:38px;padding:21px 0}.artists h2{font-size:17px}.roster-meta{font-size:11px}.details-mark{margin-left:7px}.roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 20px;font-size:12px}footer{font-size:12px;padding:24px 0 30px}footer a{max-width:120px;line-height:1.5}}
/* Career context and the archive systems share the work-led type. */
.intro{padding:48px 0 42px}.intro h1{font-size:clamp(36px,4.6vw,64px);line-height:1.08;letter-spacing:-.045em;max-width:850px}.intro .eyebrow{margin-bottom:16px}.intro-copy{margin-top:20px;max-width:660px;font-size:17px}
.career-context{max-width:680px;font-size:13px;line-height:1.6;color:var(--muted);margin-top:18px}
.practice{list-style:none;display:flex;flex-wrap:wrap;gap:10px 28px;padding:0;margin:25px 0 0;font-size:12px;line-height:1.5;color:var(--accent)}
.systems-heading{padding-top:56px}
.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px;border-bottom:1px solid var(--rule);padding:30px 0 35px}
.archive-case h3{font-size:29px;line-height:1.2;font-weight:400;letter-spacing:-.8px;margin:10px 0 14px}
.archive-case>p:not(.eyebrow){font-size:14px;line-height:1.65;margin-top:14px;max-width:570px}
.archive-case>p.archive-lead{font-size:17px;line-height:1.5;letter-spacing:-.2px;max-width:460px}
.archive-case .notes{max-width:none}
.release-output{display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);gap:60px;border-top:1px solid var(--rule);padding:27px 0;margin-top:40px}
.release-output h2{font-size:19px;line-height:1.35;font-weight:400;letter-spacing:-.4px}
.release-output p{font-size:14px;line-height:1.65;max-width:700px;color:var(--muted)}
.artist-highlights{padding:26px 0 30px;border-top:1px solid var(--rule)}
.artist-highlights ul{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 24px;font-size:19px;line-height:1.3;letter-spacing:-.4px}
.artist-highlights{padding:44px 0 26px;border-top:0}.artist-highlights h2{font-size:20px;font-weight:400;letter-spacing:-.5px;line-height:1.3}.artist-highlights+.artists{margin-top:0;padding:20px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.roster-toggle-label{font-size:14px;line-height:1.4}footer{padding:32px 0 40px;align-items:baseline;line-height:1.5}footer p{margin:0}footer a{align-self:auto;white-space:nowrap;max-width:none}@media(max-width:680px){footer{gap:20px;font-size:12px;padding:28px 0 32px}.artist-highlights{padding-top:32px}.artist-highlights ul{gap:18px 20px;line-height:1.4}.artists summary{gap:16px}}
@media(max-width:1000px){.archive-grid{gap:28px}.release-output{gap:30px}.artist-highlights ul{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.archive-grid{grid-template-columns:1fr;gap:28px;padding:26px 0 30px}.archive-case+.archive-case{border-top:1px solid var(--rule);padding-top:26px}.archive-case h3{font-size:27px}.archive-case>p.archive-lead{font-size:17px}.practice{gap:8px 18px;font-size:11px}.career-context{font-size:12px}.release-output{grid-template-columns:1fr;gap:12px;margin-top:30px;padding:23px 0}.artist-highlights ul{grid-template-columns:repeat(2,minmax(0,1fr));font-size:18px;gap:15px 18px}.systems-heading{padding-top:56px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Reveal: the intro animates on load; main.js adds .reveal to content below the fold. */
@keyframes rise{from{opacity:0;transform:translateY(14px)}}
@keyframes fade{from{opacity:0}}
@keyframes settle{from{scale:1.04}}
@keyframes blink{50%{opacity:0}}
@media(prefers-color-scheme:dark){
:root{--paper:#161715;--ink:#ecebe5;--muted:#a3a29a;--rule:#34352f;--accent:#bdbcb6;color-scheme:dark}
.work-image,.player{background:#262723}.clip-frame{background:#1f201d}
.player-facade:is(:hover,:focus-visible) .play-label{color:var(--paper)}
}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.typed.is-live::after{content:"";display:inline-block;width:.06em;height:.82em;margin-left:.08em;vertical-align:-.04em;background:var(--accent);animation:blink 1.1s steps(1) infinite}
.typed.is-typing::after{animation:none}
.play-label{transition:background-color .3s ease}
.player-facade:is(:hover,:focus-visible) .play-label{background:var(--accent)}
@media(prefers-reduced-motion:no-preference){
.masthead{animation:fade .8s ease both}
.intro>*{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}.intro>:nth-child(1){animation-delay:.1s}.intro>:nth-child(2){animation-delay:.18s}.intro>:nth-child(3){animation-delay:.28s}.intro>:nth-child(4){animation-delay:.36s}
.selected>.work-heading:first-child{animation:rise .9s cubic-bezier(.2,.7,.2,1) .44s both}
.work-grid>.case:nth-child(1){animation:rise 1s cubic-bezier(.2,.7,.2,1) .52s both}
.work-grid>.case:nth-child(1) :is(.work-image,.player-facade)>img{animation:settle 1.6s cubic-bezier(.2,.7,.2,1) .52s both}
@media(min-width:681px){.work-grid>.case:nth-child(2){animation:rise 1s cubic-bezier(.2,.7,.2,1) .62s both}.work-grid>.case:nth-child(2) :is(.work-image,.player-facade)>img{animation:settle 1.6s cubic-bezier(.2,.7,.2,1) .62s both}.work-grid>.case:nth-child(3){animation:rise 1s cubic-bezier(.2,.7,.2,1) .72s both}.work-grid>.case:nth-child(3) :is(.work-image,.player-facade)>img{animation:settle 1.6s cubic-bezier(.2,.7,.2,1) .72s both}.work-grid>.case:nth-child(4){animation:rise 1s cubic-bezier(.2,.7,.2,1) .82s both}.work-grid>.case:nth-child(4) :is(.work-image,.player-facade)>img{animation:settle 1.6s cubic-bezier(.2,.7,.2,1) .82s both}}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0s)}
.reveal.is-visible{opacity:1;transform:none}
:is(.work-image,.player-facade)>img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
:is(.work-image,.player-facade):is(:hover,:focus-visible)>img{transform:scale(1.03)}
.reveal :is(.work-image,.player-facade)>img{scale:1.04;transition:scale 1.4s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0s),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible :is(.work-image,.player-facade)>img{scale:none}
}

@media(max-width:680px){.tools-heading h2{font-size:32px}.tools-heading>p:last-child{max-width:none}.tools-case{gap:24px}.tools-text>p:first-child{font-size:17px}.tools-text>p{font-size:14px}}

/* Supporting motion: full films above retain the larger cards. */
.notable-film{border-top:1px solid var(--rule);padding:23px 0;margin-top:36px;display:flex;flex-wrap:wrap;gap:10px 24px;font-size:12px;color:var(--muted);line-height:1.5}.notable-film span{color:var(--ink)}.notable-film a{margin-left:auto;white-space:nowrap;color:var(--ink)}
.motion-sampler{margin-top:56px;padding-top:28px;border-top:1px solid var(--rule)}.sampler-heading{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px}.sampler-heading h2{font-size:20px;font-weight:400;letter-spacing:-.5px}.sampler-heading p{font-size:12px;color:var(--muted)}.sampler-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px}.motion-card{min-width:0}.clip-frame{position:relative;background:#e7e5df;aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden}.clip-frame video{display:block;aspect-ratio:var(--clip-ratio);width:100%;height:100%;object-fit:contain}.clip-toggle{position:absolute;bottom:10px;left:10px;border:1px solid #ffffff55;background:#242522e6;color:#fff;padding:8px 11px;font-size:11px;cursor:pointer;line-height:1.4}.clip-toggle:focus-visible{outline-color:#fff;outline-offset:2px}.motion-card figcaption{margin-top:12px;font-size:13px;line-height:1.45;display:flex;flex-direction:column;gap:2px}.motion-card figcaption span+span{color:var(--muted);font-size:12px}.motion-card noscript a{font-size:12px}
@media(max-width:680px){.motion-sampler{margin-top:42px}.sampler-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 14px}.sampler-heading{align-items:flex-start;flex-direction:column;gap:8px}.notable-film{gap:8px}.notable-film a{margin-left:0}.notable-film span{width:100%}.clip-toggle{font-size:10px;padding:6px 7px;bottom:7px;left:7px}.motion-card figcaption{font-size:12px}.sampler-heading h2{font-size:19px}}

nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:4px}
.notes-index,.note{padding:56px 0 12px}
.notes-index{max-width:760px}
.note{max-width:680px}
.notes-index .eyebrow,.note .eyebrow{color:var(--accent)}
.notes-index h1,.note h1{font-size:clamp(40px,5vw,64px);font-weight:400;letter-spacing:-.05em;line-height:1.05;margin-top:14px}
.notes-intro,.note-lead{font-size:18px;line-height:1.5;color:var(--muted);margin-top:18px;max-width:42em}
.notes-empty{margin-top:28px;font-size:15px;line-height:1.6;color:var(--muted)}
.note-date{display:block;margin-top:14px;font-size:12px;letter-spacing:.04em;color:var(--muted)}
.note-list{list-style:none;padding:8px 0 0;margin:36px 0 0}
.note-list li{border-top:1px solid var(--rule)}
.note-list a{display:block;padding:22px 0 24px;text-decoration:none}
.note-list time{display:block;font-size:12px;letter-spacing:.04em;color:var(--muted)}
.note-list h2{font-size:28px;font-weight:400;letter-spacing:-.6px;line-height:1.2;margin-top:8px}
.note-list p{margin-top:8px;font-size:15px;line-height:1.55;color:var(--muted);max-width:40em}
.note-list a:hover h2{color:var(--accent)}
.note-figure{margin:32px 0 0}
.note-figure img{display:block;width:100%;height:auto}
.note-figure figcaption{margin-top:.5em;font-size:14px;color:var(--muted)}
.note-body{margin-top:28px;font-size:17px;line-height:1.65}.note .note-body p{text-align:justify;hyphens:auto}
.note-body p,.note-body ul,.note-body ol,.note-body blockquote,.note-body pre,.note-body h2,.note-body h3,.note-body figure{margin-top:1em}
.note-body h2{font-size:28px;font-weight:400;letter-spacing:-.4px;line-height:1.2}
.note-body h3{font-size:20px;font-weight:500;letter-spacing:-.3px}
.note-body ul,.note-body ol{padding-left:1.2em}
.note-body blockquote{padding-left:16px;border-left:1px solid var(--rule);color:var(--muted)}
.note-body pre{overflow:auto;font-size:13px;line-height:1.5}
.note-body img{display:block;width:100%;height:auto}
.note-body figcaption,.note-body em{display:block;margin-top:.5em;font-size:14px;color:var(--muted)}
.note-back{margin-top:36px;font-size:13px}
@media(max-width:680px){.notes-index,.note{padding:36px 0 8px}.notes-index h1,.note h1{font-size:clamp(34px,9vw,48px)}.note-list h2{font-size:24px}.notes-intro,.note-lead,.note-body{font-size:16px}}
