:root{--bg:#fbfaf7;--fg:#1c1b19;--mute:#5f5b53;--line:#e6e2da;--ph:#efece5;--pad:clamp(20px,5vw,72px);--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--sans:"Helvetica Neue",Helvetica,Arial,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img,video{display:block;width:100%;height:auto}ul{list-style:none}
.top{display:flex;align-items:center;justify-content:space-between;padding:28px var(--pad)}.logo{font-size:1.05rem;letter-spacing:.02em}.logo b{font-weight:400}
.top nav{display:flex;gap:32px;font-size:.9rem}.top nav a{color:var(--mute);transition:color .2s}.top nav a:hover,.top nav a[aria-current]{color:var(--fg)}.menu{display:none}
main{padding:0 var(--pad)}.foot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:80px var(--pad) 36px;font-size:.8rem;color:var(--mute)}
.ph{background:var(--ph);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}.ph span{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.pt{font-weight:400}.lede{color:var(--mute);max-width:36em;margin:12px 0 48px}
.masonry{columns:3 280px;column-gap:20px}.masonry a{display:block;margin-bottom:20px;break-inside:avoid;overflow:hidden}.masonry img,.masonry video{transition:transform .6s,opacity .3s}.masonry a:hover img{transform:scale(1.02)}
.kicker{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin:40px 0 16px}.kicker a:hover{color:var(--fg)}
.wt{font-weight:400;margin-bottom:40px}.vid{aspect-ratio:16/9;background:#000;margin-bottom:20px}.vid iframe{width:100%;height:100%;border:0}
.wmeta{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin:56px 0;max-width:1100px}.wmeta dt{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}.wmeta dd{margin:2px 0 18px}
.wabout p{max-width:36em;margin-bottom:1em}.cr li{color:var(--mute);font-size:.92rem}
.next{display:block;border-top:1px solid var(--line);padding:40px 0;font-size:clamp(1.4rem,3vw,2.4rem)}.next span{display:block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.loc{color:var(--mute);margin:-28px 0 40px}.sh{font:400 .72rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin:56px 0 16px}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gal img{aspect-ratio:4/3;object-fit:cover}
.ab{display:grid;grid-template-columns:2fr 1fr;gap:80px;margin-top:48px}.abt p{font-size:1.15rem;max-width:34em;margin-bottom:1.2em}.cl li{color:var(--mute);font-size:.9rem;line-height:1.9}
@media(max-width:760px){.top{padding:20px var(--pad)}.menu{display:block;background:none;border:0;font:inherit;font-size:.85rem;color:var(--fg)}
.top nav{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);padding:8px var(--pad) 24px;z-index:20;border-bottom:1px solid var(--line)}.open .top nav{display:flex}.top nav a{padding:10px 0;font-size:1.3rem;color:var(--fg)}
.top{position:relative}.wmeta,.ab{grid-template-columns:1fr;gap:16px}.gal{grid-template-columns:1fr 1fr}.masonry{columns:2;column-gap:10px}.masonry a{margin-bottom:10px}}
.lbx{position:fixed;inset:0;z-index:100;background:rgba(250,250,248,.98);display:flex;align-items:center;justify-content:center}.lbx[hidden]{display:none}
.lbx-stage{position:absolute;inset:56px 72px;display:flex;align-items:center;justify-content:center;background:center/contain no-repeat}
.lbx-stage img,.lbx-stage video{max-width:100%;max-height:100%;object-fit:contain;opacity:0;transition:opacity .3s}.lbx-stage .in{opacity:1}
.lbx button{position:absolute;background:none;border:0;color:var(--fg);cursor:pointer;font:300 2.4rem/1 var(--sans);padding:12px 18px;opacity:.6}.lbx button:hover{opacity:1}
.lbx-x{top:8px;right:10px}.lbx-p{left:8px;top:50%;transform:translateY(-50%)}.lbx-n{right:8px;top:50%;transform:translateY(-50%)}.lbx.one .lbx-p,.lbx.one .lbx-n{display:none}
.lbx-c{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:var(--mute);font:.75rem var(--sans);letter-spacing:.2em}
@media(max-width:700px){.lbx-stage{inset:52px 0 56px}.lbx-p,.lbx-n{top:auto;bottom:0;transform:none}}.logo,.pt,.wt,.next{font-family:var(--serif)}.logo b{font-style:italic}
.pt{font-size:clamp(3rem,8vw,6.5rem);line-height:1;margin-top:40px;letter-spacing:-.02em}.wt{font-size:clamp(2.4rem,6vw,5rem);line-height:1.05;letter-spacing:-.02em;max-width:14em}
.intro{padding:12vh 0 14vh;max-width:1100px}.intro h1{font:400 clamp(2.4rem,6.2vw,5.6rem)/1.05 var(--serif);letter-spacing:-.025em}.intro h1 em{color:var(--mute)}
.intro p{margin-top:32px;color:var(--mute);max-width:26em;font-size:1.05rem}
.sec{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--fg);padding-top:14px;margin:120px 0 40px}.sec h2{font:400 .78rem var(--sans);letter-spacing:.2em;text-transform:uppercase}.sec a{font-size:.85rem;color:var(--mute)}.sec a:hover{color:var(--fg)}
.asym{display:grid;grid-template-columns:repeat(12,1fr);gap:28px 28px;row-gap:96px}.asym .it:nth-child(4n+1){grid-column:1/8}.asym .it:nth-child(4n+2){grid-column:9/13;margin-top:180px}
.asym .it:nth-child(4n+3){grid-column:2/6}.asym .it:nth-child(4n+4){grid-column:7/13;margin-top:-60px}
.it img{aspect-ratio:16/10;object-fit:cover;transition:opacity .4s}.it:hover img{opacity:.85}.it h3{font:400 1.35rem/1.25 var(--serif);margin-top:16px}.it p{font-size:.82rem;color:var(--mute)}.it .n{font-size:.72rem;color:var(--mute);letter-spacing:.1em}
.feat{display:grid;grid-template-columns:5fr 7fr;gap:56px;align-items:end}.feat h3{font:400 clamp(1.8rem,3.4vw,3rem)/1.1 var(--serif)}.feat p{color:var(--mute);margin-top:16px;max-width:24em}
.strip{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;align-items:start}.strip a:nth-child(2){margin-top:80px}
.anim-list{margin-top:56px}
@media(max-width:760px){.intro{padding:8vh 0}.asym{grid-template-columns:1fr;row-gap:48px}.asym .it{grid-column:1/-1!important;margin-top:0!important}.feat,.strip{grid-template-columns:1fr;gap:20px}.strip a:nth-child(2){margin-top:0}.sec{margin-top:80px}}
/* ---- v2 additions ---- */
.skip{position:absolute;left:-999px;top:8px;background:var(--fg);color:var(--bg);padding:10px 16px;z-index:200}.skip:focus{left:8px}
a:focus-visible,button:focus-visible{outline:2px solid #1c1b19;outline-offset:3px}
.top nav .navcta{color:var(--bg);background:var(--fg);padding:6px 16px;border-radius:2px}.top nav .navcta:hover{color:var(--bg);background:#000}
.btn{display:inline-block;background:var(--fg);color:var(--bg);padding:14px 26px;font-size:.95rem;border:1px solid var(--fg);transition:background .2s,color .2s}.btn:hover{background:#000}
.btn.ghost{background:transparent;color:var(--fg)}.btn.ghost:hover{background:var(--fg);color:var(--bg)}
.ul{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}.ul:hover{text-decoration-color:var(--fg)}
.intro .aud{font:400 clamp(1.15rem,2vw,1.5rem)/1.45 var(--serif);color:var(--fg);max-width:30em;margin-top:28px}
.acts{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px}.intro .small{font-size:.9rem;margin-top:28px}
.clients{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin-top:-4vh;display:grid;grid-template-columns:160px 1fr;gap:12px 24px;align-items:baseline}
.clients .sh{margin:0}.clients ul{display:flex;flex-wrap:wrap;gap:8px 28px;font:400 1.1rem/1.4 var(--serif)}
.lede.wide{max-width:40em;margin:-8px 0 36px}.lede a{color:var(--fg)}
.sum{font:400 clamp(1.15rem,2vw,1.5rem)/1.45 var(--serif);max-width:32em;margin:-8px 0 40px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;max-width:1000px;margin:0 0 40px;border-top:1px solid var(--line)}
.facts div{padding:14px 0;border-bottom:1px solid var(--line)}.facts dt{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}.facts dd{margin-top:2px}.facts .dim{color:var(--mute)}
.cs-body{max-width:36em;margin:0 0 40px}.cs-body p{margin-bottom:1em}.more{margin:8px 0 0}.more a{text-decoration:underline;text-underline-offset:3px}
.sh .cnt{color:var(--mute);letter-spacing:.1em;margin-left:10px}
.vgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.vgrid .vid{margin-bottom:6px}
.vf{margin:0 0 20px}.vf figcaption{font-size:.8rem;color:var(--mute)}.vf figcaption a{text-decoration:underline;text-underline-offset:3px}
.vid{position:relative}.play{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000;cursor:pointer;padding:0}
.play img{width:100%;height:100%;object-fit:cover;opacity:.92;transition:opacity .2s}.play:hover img{opacity:1}
.pi{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:rgba(251,250,247,.94)}
.pi:after{content:"";position:absolute;left:29px;top:22px;border-left:20px solid #1c1b19;border-top:14px solid transparent;border-bottom:14px solid transparent}
.pl-lab{position:absolute;left:12px;bottom:10px;background:rgba(251,250,247,.94);color:#1c1b19;font-size:.75rem;padding:3px 9px}
.cta{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;margin:120px var(--pad) 0;padding:48px 0 0;border-top:1px solid var(--fg)}
.cta h2{font:400 clamp(1.8rem,3.6vw,3rem)/1.1 var(--serif)}.cta p{color:var(--mute);margin-top:12px;max-width:30em}
.foot{padding-top:48px}.foot .fl{display:flex;gap:20px;flex-wrap:wrap}.foot a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}.foot a:hover{text-decoration-color:var(--fg)}
.abt .sh{margin-top:48px}.abt p.btn,.abt .btn{font-size:.95rem}.abt p:last-child{margin-top:28px}
.cl li{color:var(--fg);font-size:.95rem}
/* all work list */
.filters{display:flex;gap:10px;flex-wrap:wrap;margin:-8px 0 24px}.filters[hidden]{display:none}
.filters button{font:inherit;font-size:.85rem;background:none;border:1px solid var(--line);padding:8px 16px;cursor:pointer;color:var(--fg)}.filters button.on,.filters button:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.idx .rh,.row{display:grid;grid-template-columns:88px 56px 1fr minmax(0,1.1fr) minmax(0,.9fr);gap:16px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.idx .rh{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);border-top:1px solid var(--fg);padding:14px 0 12px}.idx .rh .n{grid-column:2}.idx .rh .ti{grid-column:3}.idx .rh .cl{grid-column:4}.idx .rh .ty{grid-column:5}
.row .th img{aspect-ratio:1;object-fit:cover;width:72px;height:72px}.row .th.ph0{display:block;width:72px;height:72px;background:var(--ph)}
.row .n{color:var(--mute);font-size:.8rem;font-variant-numeric:tabular-nums}.row .ti{font:400 clamp(1.1rem,1.8vw,1.4rem)/1.25 var(--serif)}.row .cl,.row .ty{color:var(--mute);font-size:.88rem}
a.row:hover .ti{text-decoration:underline;text-underline-offset:4px}.row.soon .ti{color:var(--mute)}.row[hidden]{display:none}
@media(max-width:760px){.clients{grid-template-columns:1fr;margin-top:0}.facts,.vgrid{grid-template-columns:1fr}.cta{margin-top:80px}
 .idx .rh{display:none}.row{grid-template-columns:72px 1fr;gap:2px 14px}.row .th{grid-row:1/4;grid-column:1}.row .n{display:none}.row .ti,.row .cl,.row .ty{grid-column:2}.row .cl,.row .ty{font-size:.82rem}
 .top nav .navcta{display:inline-block;text-align:center;margin-top:12px;font-size:1.1rem;padding:12px 16px}.menu{padding:10px 4px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.intro .small{max-width:none}.strip img,.strip video{aspect-ratio:4/3;object-fit:cover}.strip a:nth-child(2){margin-top:0}
/*bp-start*/
.bp .lede{margin:20px 0 28px;max-width:40em}.bpa{margin:0 0 56px}.bph{margin-bottom:24px}
.bgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px 24px;margin-bottom:56px}
.bcard .vid.v9{aspect-ratio:9/16;margin-bottom:10px}.bcard .play img{height:100%}.bcard .pi{width:56px;height:56px;margin:-28px 0 0 -28px}.bcard .pi:after{left:22px;top:16px;border-left:16px solid #1c1b19;border-top:12px solid transparent;border-bottom:12px solid transparent}
.bt{font:400 1.05rem/1.3 var(--serif)}.bl{display:inline-block;margin-top:4px;font-size:.8rem;color:var(--mute);text-decoration:underline;text-underline-offset:3px}.bl:hover{color:var(--fg)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.bpn{margin-top:40px;color:var(--mute)}
@media(max-width:1000px){.bgrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.bgrid{grid-template-columns:1fr 1fr;gap:28px 14px}.bcard.playing{grid-column:1/-1}.bcard .pi{width:44px;height:44px;margin:-22px 0 0 -22px}.bcard .pi:after{left:17px;top:12px;border-left:13px solid #1c1b19;border-top:10px solid transparent;border-bottom:10px solid transparent}.bt{font-size:.95rem}}
/*bp-end*/
/*work-start*/
.wbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px 24px;flex-wrap:wrap;margin:0 0 20px}.wbar .filters{margin:0}.wbar [hidden]{display:none}
.filters button[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.views{display:flex}.views button{font:inherit;font-size:.85rem;background:none;border:1px solid var(--line);padding:8px 18px;cursor:pointer;color:var(--fg);margin-left:-1px}
.views button.on,.views button:hover{background:var(--fg);color:var(--bg);border-color:var(--fg);position:relative}
.wcount{font-size:.8rem;color:var(--mute);margin:0 0 28px}
.wk[data-view=grid] .idx{display:none}.wk[data-view=list] .wgrid{display:none}
.wgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 28px}.wc[hidden]{display:none}
.wc a,.wc .wcl{display:block}.wc .wi{display:block;aspect-ratio:4/3;background:var(--ph);overflow:hidden;margin-bottom:12px}
.wc .wi img{width:100%;height:100%;object-fit:cover;transition:opacity .3s,transform .6s}.wc a:hover .wi img{opacity:.88}
.wc[data-cat=illustration] .wi{background:var(--ph)}.wc[data-cat=illustration] .wi img{object-fit:contain}
.wc .wn{display:block;font-size:.72rem;letter-spacing:.1em;color:var(--mute);font-variant-numeric:tabular-nums}
.wc .wtt{display:block;font:400 1.25rem/1.25 var(--serif);margin-top:2px}.wc a:hover .wtt{text-decoration:underline;text-underline-offset:4px}.wc .wcc{display:block;font-size:.85rem;color:var(--mute);margin-top:2px}
.wc.soon .wtt{color:var(--mute)}
.ksep{color:var(--line);margin:0 4px}
.it p.cc{font-size:.88rem;color:var(--fg);margin-top:4px}#featured .sec{margin-top:96px}
@media(max-width:1000px){.wgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.wgrid{gap:28px 14px}.wc .wtt{font-size:1.02rem}.wc .wcc{font-size:.78rem}.wbar{gap:12px}.filters{gap:8px}.filters button{padding:7px 12px;font-size:.8rem}}
/*work-end*/
/*hdr-start*/
html{scroll-padding-top:96px}
.top{padding-top:20px;padding-bottom:20px;position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.top.stuck{border-bottom-color:var(--line);box-shadow:0 1px 10px rgba(28,27,25,.06)}
.top nav{gap:28px}.top nav a{white-space:nowrap}
@media(max-width:1100px) and (min-width:761px){.top nav{gap:18px;font-size:.85rem}.top nav .navcta{padding:6px 12px}}
@media(max-width:860px) and (min-width:761px){.top nav{gap:12px;font-size:.8rem}.top nav .navcta{padding:5px 10px}}
@media(max-width:760px){html{scroll-padding-top:80px}.top{position:sticky;top:0;padding-top:8px;padding-bottom:8px}
.top nav{gap:0;top:100%;max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px);overflow-y:auto;box-shadow:0 8px 14px rgba(28,27,25,.07)}}
/*hdr-end*/
/*v4-start*/
@font-face{font-family:"Manrope Wordmark";src:url(fonts/manrope-600-wordmark.woff2) format("woff2");font-weight:600;font-display:swap}
.logo .wm{font:600 1.2rem/1 "Manrope Wordmark","Manrope",var(--sans);letter-spacing:.01em;font-style:normal}
.wgrid.g169 .wi.r169{aspect-ratio:16/9;background:#000}.wgrid.g169 .wi.r169 img{object-fit:contain}
.mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px 28px;align-items:start}.mc{min-width:0}.mc a{display:block}.mc img{background:var(--ph);margin-bottom:12px;transition:opacity .3s}.mc a:hover img{opacity:.88}
.mc .wn{display:block;font-size:.72rem;letter-spacing:.1em;color:var(--mute);font-variant-numeric:tabular-nums}.mc .wtt{display:block;font:400 1.15rem/1.25 var(--serif);margin-top:2px}
.wk[data-view=list] .mgrid{display:none}.row .th img{object-fit:cover}
.loops{margin-top:80px}.lgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-items:start}.lgrid video{background:var(--ph)}
.inst{border-top:1px solid var(--fg);padding-top:20px;margin-top:64px}.it2{font:400 clamp(1.8rem,3.6vw,3rem)/1.1 var(--serif)}.ism{color:var(--mute);margin:6px 0 28px}
.igal{columns:3 260px;column-gap:20px}.igal li{break-inside:avoid;margin-bottom:20px}.igal img{background:var(--ph)}.inst .lgrid{grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:1000px){.lgrid,.inst .lgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.mgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.mgrid{gap:28px 14px}.mc .wtt{font-size:.98rem}.igal{columns:1}.lgrid,.inst .lgrid{gap:14px}}
/* V4-3 header: 6 items + Contact. Collapse to the menu button at tablet widths. */
@media(max-width:1180px){.top{position:sticky;top:0;padding-top:12px;padding-bottom:12px}.menu{display:block;background:none;border:0;font:inherit;font-size:.9rem;color:var(--fg);cursor:pointer;padding:8px 0}
.top nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);padding:8px var(--pad) 24px;z-index:20;border-bottom:1px solid var(--line);max-height:calc(100vh - 64px);max-height:calc(100dvh - 64px);overflow-y:auto;box-shadow:0 8px 14px rgba(28,27,25,.07);font-size:1rem}
.open .top nav{display:flex}.top nav a{padding:10px 0;font-size:1.3rem;color:var(--fg)}.top nav .navcta{align-self:flex-start;margin-top:10px;padding:8px 18px;font-size:1rem;color:var(--bg)}}
@media(min-width:1181px){.top nav{align-items:center;gap:26px}}
/*v4-end*/
