/* Artist pages: the cinematic opening, marquee and scroll-lit biography (artist-cinema.js) */
.pc-hero {
  --bg: #0a0a0a; --ink: #f2f2f0; --ink2: rgba(242, 242, 240, .72); --ink3: rgba(242, 242, 240, .5); --line: rgba(255, 255, 255, .2);
  position: relative; isolation: isolate; overflow: hidden; min-height: 100svh; color: var(--ink); background: #0a0a0a;
  display: grid; grid-template-rows: auto 1fr auto; padding: 0 var(--pf-gutter);
}
.pc-media { position: absolute; inset: 0 0 0 30%; z-index: -3; will-change: transform;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 34%); mask-image: linear-gradient(90deg, transparent 0, #000 34%); }
.pc-img { position: absolute; left: 0; top: -6%; width: 100%; height: 112%; object-fit: cover; object-position: var(--pc-focus, 50% 25%);
  filter: grayscale(.4) contrast(1.06) brightness(.6); animation: pc-img-in 2.4s var(--k-ease) both; }
.pc-lit { filter: grayscale(.05) contrast(1.1) brightness(1.12); animation: pc-img-in 2.4s var(--k-ease) both;
  -webkit-mask-image: radial-gradient(circle 250px at var(--mx, 62%) var(--my, 38%), #000 0, rgba(0, 0, 0, .55) 50%, transparent 100%);
  mask-image: radial-gradient(circle 250px at var(--mx, 62%) var(--my, 38%), #000 0, rgba(0, 0, 0, .55) 50%, transparent 100%); }
@keyframes pc-img-in { from { opacity: 0; transform: scale(1.12); } to { opacity: 1; transform: none; } }
.pc-shade { position: absolute; inset: 0; z-index: -2; pointer-events: none;
  background: linear-gradient(90deg, #0a0a0a 0, #0a0a0a 34%, rgba(10, 10, 10, .6) 52%, transparent 78%), linear-gradient(0deg, #0a0a0a 0, transparent 40%), linear-gradient(180deg, rgba(10, 10, 10, .75), transparent 24%); }
.pc-hero::after { content: ''; position: absolute; inset: -20%; z-index: -1; pointer-events: none; background: url('/koan/assets/noise.svg'); opacity: .06; mix-blend-mode: screen; animation: pc-grain .25s steps(3) infinite; }
@keyframes pc-grain { 0% { transform: translate(0, 0); } 33% { transform: translate(2%, -3%); } 66% { transform: translate(-3%, 2%); } 100% { transform: translate(0, 0); } }

.pc-bar { display: flex; justify-content: space-between; align-items: center; padding: clamp(18px, 2.6vw, 34px) 0; animation: pc-fade 1.4s ease .3s both; }
.pc-brand { display: inline-flex; align-items: center; gap: 12px; font: 700 15px/1 Arial, sans-serif; letter-spacing: .28em; color: var(--ink); }
.pc-brand small { display: block; margin-top: 6px; font: 400 8px/1 var(--k-font-mono); letter-spacing: .22em; opacity: .7; }
.pc-brand img { display: block; filter: brightness(0) invert(1); }
.pc-bar .pf-nav { padding: 0; }
.pc-bar .pf-nav a { color: var(--ink); }
@keyframes pc-fade { from { opacity: 0; } to { opacity: 1; } }

.pc-body { align-self: end; padding-bottom: clamp(18px, 3.4vh, 40px); }
.pc-kicker { font: 400 11px/1.5 var(--k-font-mono); letter-spacing: .22em; text-transform: uppercase; color: var(--ink3); animation: pc-fade 1.4s ease .5s both; }
.pc-name { margin: .18em 0 .26em !important; font: 400 min(calc(var(--pc-vw) * 1vw), 13.4svh)/.88 var(--k-font-logo) !important; letter-spacing: -.025em; color: var(--ink); text-wrap: nowrap; }
.pc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.pc-w { display: block; overflow: hidden; padding: .02em .06em .24em 0; margin: 0 -.06em -.2em 0; }
.pc-l { display: inline-block; transform: translateY(112%); animation: pc-rise 1.25s var(--k-ease) forwards; animation-delay: calc(.35s + var(--i) * .05s); }
@keyframes pc-rise { to { transform: none; } }
.pc-role { font: 500 clamp(17px, 2vw, 32px)/1.1 var(--k-font-display); text-transform: uppercase; letter-spacing: .03em; color: var(--ink2); animation: pc-up 1.3s var(--k-ease) 1.1s both; }
.pc-role em { font: italic 400 1.2em var(--k-font-logo); text-transform: none; letter-spacing: 0; color: var(--ink); }
@keyframes pc-up { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.pc-stats { list-style: none; display: flex; flex-wrap: wrap; gap: 26px clamp(40px, 6vw, 110px); margin: clamp(18px, 3vh, 34px) 0 0; padding: 0 0 clamp(30px, 6vh, 64px); animation: pc-up 1.3s var(--k-ease) 1.4s both; }
.pc-stats li { padding-top: 22px; position: relative; }
.pc-stats li::before { content: ''; position: absolute; left: 0; top: 0; width: 28px; height: 1px; background: var(--ink3); }
.pc-stats li { display: grid; gap: 5px; }
.pc-stats b { font: 500 clamp(24px, 2.6vw, 40px)/1 var(--k-font-display); color: var(--ink); }
.pc-stats span { font: 400 10px/1.4 var(--k-font-mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink3); max-width: 26em; }
.pc-cue { position: absolute; right: var(--pf-gutter); bottom: clamp(20px, 4vh, 44px); display: grid; justify-items: center; gap: 10px; font: 400 10px/1 var(--k-font-mono); letter-spacing: .28em; text-transform: uppercase; color: var(--ink3); animation: pc-fade 1.6s ease 2s both; }
.pc-cue i { display: block; width: 1px; height: 54px; background: linear-gradient(var(--ink), transparent); transform-origin: top; animation: pc-cue 2.2s ease-in-out infinite; }
@keyframes pc-cue { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(1); opacity: 0; } }

/* About */
.pc-about { display: grid; grid-template-columns: minmax(0, .3fr) minmax(0, 1fr); gap: clamp(24px, 6vw, 100px); padding: clamp(70px, 11vw, 170px) var(--pf-gutter); background: var(--bg); border-bottom: 1px solid var(--line); }
.pc-about-l { font: 400 11px/1.5 var(--k-font-mono); letter-spacing: .22em; text-transform: uppercase; color: var(--ink3); }
.pc-lede { font: 400 clamp(26px, 3.3vw, 54px)/1.2 var(--k-font-logo); color: var(--ink); max-width: 28em; }
.pc-about .pf-about-links { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; margin-top: clamp(28px, 4vw, 56px); padding: 0; }
.pc-progress { position: fixed; left: 0; top: 0; height: 2px; width: 100%; z-index: 60; transform: scaleX(0); transform-origin: left; background: #f2f2f0; mix-blend-mode: difference; pointer-events: none; }

@media (max-width: 900px) {
  .pc-media { inset: 0; -webkit-mask-image: none; mask-image: none; }
  .pc-img { object-position: var(--pc-focus-m, var(--pc-focus, 50% 25%)); }
  .pc-shade { background: linear-gradient(0deg, #0a0a0a 0, rgba(10, 10, 10, .78) 34%, transparent 62%), linear-gradient(180deg, rgba(10, 10, 10, .75), transparent 22%); }
  .pc-name { font-size: min(calc(var(--pc-vw) * 1.75vw), 14svh) !important; }
  .pc-cue { display: none; }
  .pc-bar .pf-nav { gap: 16px; }
  .pc-bar .pf-nav a { font-size: 12px; }
  .pc-brand span { display: none; }
  .pc-about { grid-template-columns: 1fr; gap: 20px; }
}


/* ── selected work: rails of large cards (premium, scannable, scales to any number of titles) ── */
.pc-work { background: var(--bg); padding: clamp(90px, 11vw, 180px) 0 clamp(90px, 11vw, 160px); overflow: hidden; }
.pc-work-bar { display: flex; flex-wrap: wrap; gap: 26px 40px; justify-content: space-between; align-items: flex-end; padding: 0 var(--pf-gutter); margin-bottom: clamp(44px, 6vw, 90px); }
.pc-work-h { margin: 0; font: 400 clamp(40px, 5.4vw, 88px)/.95 var(--k-font-logo); letter-spacing: -.02em; color: var(--ink); }
.pc-work-h em { font-style: italic; }
.pc-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 34px; }
.pc-filters { display: flex; flex-wrap: wrap; gap: 6px 26px; }
.pc-tab { min-height: 0; padding: 6px 0; border: 0; border-bottom: 1px solid transparent; background: none; color: var(--ink3); font: 400 11px/1 var(--k-font-mono); letter-spacing: .18em; text-transform: uppercase; cursor: pointer; transition: color .3s, border-color .3s; }
.pc-tab:hover { color: var(--ink); } .pc-tab.is-on { color: var(--ink); border-bottom-color: var(--ink); }
.pc-search { display: flex; align-items: center; gap: 10px; min-width: 200px; border-bottom: 1px solid var(--line); color: var(--ink2); transition: border-color .3s; }
.pc-search[hidden] { display: none; } .pc-search:focus-within { border-color: var(--ink); }
.pc-search svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; flex: none; }
.pc-search input { flex: 1; min-width: 0; min-height: 36px; border: 0; outline: 0; background: none; color: var(--ink); font: 400 13px/1 var(--k-font-body); }
.pc-search input::placeholder { color: var(--ink3); }

.pc-rail { margin-bottom: clamp(56px, 7vw, 110px); }
.pc-rail[hidden] { display: none; }
.pc-rail-h { display: flex; justify-content: space-between; align-items: baseline; padding: 0 var(--pf-gutter); margin-bottom: clamp(18px, 2.4vw, 32px); }
.pc-rail-h h3 { margin: 0; font: 400 clamp(26px, 2.8vw, 44px)/1 var(--k-font-logo); letter-spacing: -.01em; color: var(--ink); }
.pc-rail-h small { margin-left: 10px; font: 400 11px/1 var(--k-font-mono); letter-spacing: .16em; color: var(--ink3); vertical-align: middle; }
.pc-rail-ctl { display: flex; gap: 8px; }
.pc-rail-ctl button { width: 42px; height: 42px; min-height: 0; padding: 0; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: none; color: var(--ink); cursor: pointer; transition: background .3s, color .3s, opacity .3s; }
.pc-rail-ctl button:hover { background: var(--ink); color: var(--bg); }
.pc-rail-ctl svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.pc-rail.at-start .pc-prev, .pc-rail.at-end .pc-next { opacity: .25; pointer-events: none; }
.pc-rail.at-start.at-end .pc-rail-ctl { display: none; }
.pc-track { display: flex; gap: clamp(16px, 2vw, 30px); overflow-x: auto; scroll-snap-type: x proximity; scroll-padding: 0 var(--pf-gutter); padding: 4px var(--pf-gutter) 10px; scrollbar-width: none; cursor: grab; }
.pc-track::-webkit-scrollbar { display: none; }
.pc-track.is-drag { cursor: grabbing; scroll-snap-type: none; }
.pc-card { flex: 0 0 clamp(250px, 30vw, 470px); scroll-snap-align: start; }
.pc-card[hidden] { display: none; }
.pc-card.rise { opacity: 0; transform: translateY(26px); transition: opacity .9s var(--k-ease), transform .9s var(--k-ease); }
.pc-card.rise.in { opacity: 1; transform: none; }
.pc-card-m { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; overflow: hidden; background: radial-gradient(90% 90% at 30% 20%, #232328, #0b0b0d); color: #f2f2f0; cursor: pointer; }
.pc-card-m.is-still { cursor: default; }
.pc-card-m img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--k-ease), filter .6s; filter: saturate(.92) brightness(.9); }
.pc-card-m img.is-art { object-fit: contain; }
.pc-card-ph { position: absolute; inset: 0; z-index: -0; display: grid; place-items: end start; padding: 7%; font: italic 400 clamp(18px, 1.6vw, 24px)/1.1 var(--k-font-logo); color: rgba(242, 242, 240, .72); }
.pc-card-m img ~ .pc-card-ph { display: none; }
.pc-card-m::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, rgba(10, 10, 10, .45), transparent 45%); opacity: .8; transition: opacity .5s; }
.pc-card-play { position: absolute; z-index: 2; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .6); background: rgba(10, 10, 10, .25); backdrop-filter: blur(6px); opacity: 0; transform: scale(.8); transition: opacity .4s, transform .5s var(--k-ease), background .3s; }
.pc-card-play::before { content: ''; position: absolute; left: 50%; top: 50%; transform: translate(-30%, -50%); border-left: 14px solid #f2f2f0; border-top: 9px solid transparent; border-bottom: 9px solid transparent; }
.pc-card.has-video:hover .pc-card-m img, .pc-card-m:focus-visible img { transform: scale(1.06); filter: saturate(1.05) brightness(1.02); }
.pc-card.has-video:hover .pc-card-play, .pc-card-m:focus-visible .pc-card-play { opacity: 1; transform: scale(1); }
.pc-card.has-video:hover .pc-card-m::after { opacity: .3; }
.pc-card-t { margin: 16px 0 0; font: 400 clamp(20px, 1.9vw, 28px)/1.12 var(--k-font-logo); letter-spacing: -.01em; color: var(--ink); }
.pc-card-meta { margin: 8px 0 0 !important; font: 400 10px/1.5 var(--k-font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink3); }
.pc-card-links { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 12px 0 0 !important; }
.pc-card-links a { font: 400 10px/1 var(--k-font-mono); letter-spacing: .16em; text-transform: uppercase; color: var(--ink2); border-bottom: 1px solid var(--line); padding-bottom: 4px; transition: color .3s, border-color .3s; }
.pc-card-links a:hover { color: var(--ink); border-color: var(--ink); }
/* searching or choosing one category: a plain wrapping grid, easy to scan */
.pc-rails.is-grid .pc-track { flex-wrap: wrap; overflow: visible; cursor: auto; row-gap: clamp(30px, 4vw, 56px); }
.pc-rails.is-grid .pc-card { flex: 0 0 calc((100% - 2 * clamp(16px, 2vw, 30px)) / 3); }
.pc-rails.is-grid .pc-rail-ctl { display: none; }
.pc-none { padding: 40px var(--pf-gutter); color: var(--ink3); font: 400 14px/1.5 var(--k-font-body); }
@media (max-width: 900px) {
  .pc-work { padding-top: 76px; }
  .pc-card { flex-basis: 74vw; }
  .pc-rail-ctl { display: none; }
  .pc-track { scroll-snap-type: x mandatory; cursor: auto; }
  .pc-rails.is-grid .pc-card { flex-basis: 100%; }
  .pc-rails.is-grid .pc-track { flex-direction: column; flex-wrap: nowrap; }
  .pc-search { flex: 1 1 100%; }
  .pc-card-play { opacity: 1; transform: none; width: 52px; height: 52px; margin: -26px 0 0 -26px; }
}


/* Filmography bridge: a usable chapter index with room before the biography. */
.pc-index {
  display:grid; grid-template-columns:clamp(150px,17vw,260px) minmax(0,1fr);
  gap:30px clamp(32px,5vw,90px); align-items:start;
  padding:clamp(40px,5vw,78px) var(--pf-gutter) clamp(70px,7vw,112px);
  background:var(--bg); border-bottom:1px solid var(--line);
}
.pc-index-k { display:flex; flex-direction:column; gap:9px; padding-top:11px; color:var(--ink3); font:400 10px/1.5 var(--k-font-mono); letter-spacing:.18em; text-transform:uppercase; }
.pc-index-k span { color:var(--ink2); letter-spacing:.08em; }
.pc-index nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 clamp(20px,2.4vw,46px); }
.pc-index a { display:flex; align-items:baseline; gap:12px; min-width:0; padding:10px 0 15px; border-bottom:1px solid var(--line); color:var(--ink2); font:400 clamp(19px,1.7vw,28px)/1.15 var(--k-font-logo); letter-spacing:-.02em; transition:color .25s,border-color .25s,padding-left .25s; }
.pc-index a small { flex:none; color:var(--ink3); font:400 9px/1 var(--k-font-mono); letter-spacing:.12em; }
.pc-index a:hover,.pc-index a:focus-visible { color:var(--ink); border-color:var(--ink); padding-left:5px; }
.pc-about { padding:clamp(85px,9vw,135px) var(--pf-gutter) clamp(100px,10vw,160px); }
.pc-about-l { padding-top:9px; }
.pc-lede { max-width:34em; font:400 clamp(27px,2.8vw,44px)/1.3 var(--k-font-logo); letter-spacing:-.018em; color:var(--ink2); }
.pc-role { font-family:var(--k-font-logo); font-weight:400; text-transform:none; letter-spacing:0; }
.pc-stats b { font:400 clamp(30px,2.9vw,44px)/1 var(--k-font-logo); }

/* Project program: a leading cinematic frame, then the next work in view. */
.pc-work { padding-top:clamp(95px,10vw,150px); }
.pc-work-bar { margin-bottom:clamp(54px,6vw,88px); }
.pc-rail { margin-bottom:clamp(90px,10vw,160px); }
.pc-rail-h { align-items:center; margin-bottom:clamp(22px,2.7vw,38px); }
.pc-rail-h h3 { font-size:clamp(31px,3.2vw,52px); }
.pc-rail-ctl { align-items:center; gap:10px; }
.pc-rail-count { min-width:88px; margin-right:16px; text-align:right; color:var(--ink3); font:400 10px/1 var(--k-font-mono); letter-spacing:.16em; }
.pc-track { gap:clamp(16px,2vw,30px); scroll-snap-type:x mandatory; padding-bottom:18px; }
.pc-card { flex:0 0 clamp(430px,63vw,980px); }
.pc-card-m { aspect-ratio:16/9; background:#161616; }
.pc-card-m::before { content:''; position:absolute; inset:12px; z-index:2; border:1px solid rgba(255,255,255,.25); pointer-events:none; }
.pc-card-m::after { z-index:1; background:linear-gradient(0deg,rgba(0,0,0,.72),transparent 44%),linear-gradient(180deg,rgba(0,0,0,.38),transparent 27%); }
.pc-card-m img { filter:saturate(.9) brightness(.92); }
.pc-card-m img.is-art { background:#1d1d1d; }
.pc-frame-no { position:absolute; z-index:2; top:clamp(24px,3vw,42px); left:clamp(25px,3vw,42px); color:#f5f3ef; font:400 10px/1.4 var(--k-font-mono); letter-spacing:.18em; text-transform:uppercase; text-shadow:0 2px 12px #000; }
.pc-frame-title { position:absolute; z-index:2; left:clamp(25px,3vw,42px); right:clamp(25px,3vw,42px); bottom:clamp(24px,3vw,42px); color:#fff; text-align:left; font:400 clamp(32px,4vw,64px)/.98 var(--k-font-logo); letter-spacing:-.035em; text-wrap:balance; text-shadow:0 3px 20px rgba(0,0,0,.55); opacity:0; transform:translateY(12px); transition:opacity .45s,transform .6s var(--k-ease); }
.pc-card-m:hover .pc-frame-title,.pc-card-m:focus-visible .pc-frame-title { opacity:1; transform:none; }
.pc-card-m:not(:has(img)) > .pc-frame-no,.pc-card-m:not(:has(img)) > .pc-frame-title,.pc-card-m:not(:has(img))::before { display:none; }
.pc-card-t { margin-top:20px; padding-top:20px; border-top:1px solid var(--line); font-size:clamp(27px,2.5vw,38px); }
.pc-card-meta { margin-top:10px !important; }
.pc-card-links { margin-top:16px !important; }
.pc-rails.is-grid .pc-card { flex:0 0 calc((100% - 2 * clamp(16px,2vw,30px))/3); }
.pc-rails.is-grid .pc-frame-title { font-size:clamp(22px,2.1vw,32px); }
@media(max-width:900px) {
  .pc-index { display:block; padding:34px var(--pf-gutter) 70px; }
  .pc-index-k { padding:0 0 18px; }
  .pc-index nav { display:flex; gap:0 28px; overflow-x:auto; scrollbar-width:none; margin-right:calc(-1 * var(--pf-gutter)); padding-right:var(--pf-gutter); }
  .pc-index nav::-webkit-scrollbar { display:none; }
  .pc-index a { flex:none; font-size:22px; padding:12px 0 17px; }
  .pc-about { padding-top:78px; padding-bottom:100px; }
  .pc-lede { font-size:clamp(28px,7vw,38px); line-height:1.28; }
  .pc-work { padding-top:86px; }
  .pc-rail { margin-bottom:92px; }
  .pc-rail-h { margin-bottom:18px; }
  .pc-rail-count { min-width:75px; margin-right:0; }
  .pc-card { flex-basis:88vw; }
  .pc-card-m { aspect-ratio:4/3; }
  .pc-card-m::before { inset:8px; }
  .pc-card-m img { object-fit:cover; }
  .pc-frame-no { top:21px; left:21px; font-size:9px; }
  .pc-frame-title { display:none; }
  .pc-card-t { font-size:29px; }
  .pc-rails.is-grid .pc-card { flex-basis:100%; }
}

@media(max-width:900px) {
  html body .pc-rail .pc-rail-ctl { display:flex; }
  .pc-rail-ctl button { display:none; }
}
/* Let actual poster typography stand on its own. */
.pc-card-m.is-still .pc-frame-title { display:none; }
/* Keep every poster intact while its own colours fill the wider film frame. */
.pc-card-m.is-still:has(img.is-art) { isolation:isolate; background:#211d1a; }
.pc-card-m.is-still img.pc-art-atmosphere {
  inset:-10%; width:120%; height:120%; object-fit:cover;
  filter:blur(28px) brightness(.78) saturate(.82);
  transform:scale(1.04); pointer-events:none;
}
.pc-card-m.is-still img.is-art {
  z-index:2; object-fit:contain; background:transparent;
  filter:drop-shadow(0 14px 24px rgba(0,0,0,.35));
}
.pc-card-m.is-still:has(img.is-art)::after {
  background:linear-gradient(90deg,rgba(0,0,0,.15),transparent 30%,transparent 70%,rgba(0,0,0,.15));
  opacity:1;
}
.pc-card-m.is-still:has(img.is-art) .pc-frame-no {
  padding:7px 9px; margin:-7px -9px; background:rgba(14,12,12,.72);
  backdrop-filter:blur(8px);
}

/* A moving filmography ribbon with quiet, category-specific line icons. */
.pc-index { display:block; padding:0; overflow:hidden; }
.pc-index-k { display:flex; flex-direction:row; justify-content:space-between; gap:18px; padding:22px var(--pf-gutter) 0; font-size:10px; }
.pc-index-k span { color:var(--ink3); }
.pc-marquee { display:block; overflow:hidden; padding:26px 0 34px; }
.pc-marquee-track { display:flex; width:max-content; animation:pc-marquee-drift 52s linear infinite; }
.pc-marquee:hover .pc-marquee-track,.pc-marquee:focus-within .pc-marquee-track { animation-play-state:paused; }
.pc-marquee-set { display:flex; align-items:center; flex:none; }
.pc-index .pc-marquee a { display:flex; align-items:center; flex:none; gap:13px; min-width:0; margin:0; padding:0 32px 0 0; border:0; color:var(--ink2); font:400 clamp(29px,3.8vw,58px)/1.05 var(--k-font-logo); letter-spacing:-.035em; white-space:nowrap; transition:color .3s; }
.pc-index .pc-marquee a:hover,.pc-index .pc-marquee a:focus-visible { color:var(--ink); padding-left:0; }
.pc-marquee-name { display:block; }
.pc-marquee-set a:nth-child(even) .pc-marquee-name { font-style:italic; }
.pc-index .pc-marquee a small { align-self:start; padding-top:5px; font:400 9px/1 var(--k-font-mono); letter-spacing:.12em; color:var(--ink3); }
.pc-marquee-icon { display:grid; place-items:center; width:32px; height:32px; color:var(--ink3); }
.pc-marquee-icon svg { display:block; width:28px; height:28px; }
@keyframes pc-marquee-drift { to { transform:translateX(-50%); } }

/* Project contact sheets: several titles in view, with a considered caption. */
.pc-work { padding-top:clamp(76px,8vw,120px); }
.pc-rail { margin-bottom:clamp(70px,8vw,118px); }
.pc-rail-h { margin-bottom:23px; }
.pc-rail-h h3 { font-size:clamp(32px,3vw,46px); }
.pc-card { flex-basis:clamp(360px,47vw,680px); padding:0; border:0; border-top:1px solid var(--line); background:transparent; transition:border-color .3s; }
.pc-card:nth-child(3n+2) { flex-basis:clamp(330px,38vw,550px); }
.pc-card:nth-child(3n+3) { flex-basis:clamp(340px,41vw,590px); }
.pc-card:hover,.pc-card:focus-within { border-color:var(--ink2); }
.pc-card-head { display:flex; justify-content:space-between; gap:12px; padding:15px 0 13px; color:var(--ink3); font:400 9px/1.3 var(--k-font-mono); letter-spacing:.15em; text-transform:uppercase; }
.pc-card-head span:first-child { color:var(--ink2); }
.pc-card-m { aspect-ratio:3/2; }
.pc-card-m { border-radius:8px; }
.pc-card-m::before,.pc-card-m .pc-frame-no,.pc-card-m .pc-frame-title { display:none !important; }
.pc-card-m::after { background:linear-gradient(0deg,rgba(0,0,0,.34),transparent 40%); }
.pc-card-m.is-still:has(img.is-art)::after { background:linear-gradient(90deg,rgba(0,0,0,.12),transparent 30%,transparent 70%,rgba(0,0,0,.12)); }
.pc-card-m .pc-card-play {
  left:auto; right:16px; top:16px; width:44px; height:44px; margin:0;
  border:0; background:#f2f2f0; opacity:1; transform:none;
}
.pc-card-m .pc-card-play::before { border-left-color:#151515; border-left-width:11px; border-top-width:7px; border-bottom-width:7px; }
.pc-card-copy { padding:20px 0 12px; }
.pc-card-t { margin:0; padding:0; border:0; font:500 clamp(25px,2.25vw,34px)/1.08 var(--k-font-body); letter-spacing:-.045em; }
.pc-card-meta { margin-top:9px !important; }
.pc-card-links { margin-top:19px !important; }
.pc-card-links a { padding-bottom:6px; }
.pc-card:hover .pf-ph-form { filter:brightness(1.1); }
.pc-rails.is-grid .pc-card { flex-basis:calc((100% - 2 * clamp(16px,2vw,30px))/3); }

.pc-lede .pc-wd { opacity:.22; transition:opacity .45s ease; }
.pc-lede .pc-wd.is-lit { opacity:1; }
@media(max-width:900px) {
  .pc-index { padding:0; }
  .pc-index-k { padding:17px var(--pf-gutter) 0; }
  .pc-index .pc-marquee { display:block; overflow:hidden; padding:24px 0 27px; margin:0; }
  .pc-index .pc-marquee a { font-size:35px; padding-right:25px; gap:9px; }
  .pc-marquee-icon { width:26px; height:26px; }
  .pc-marquee-icon svg { width:23px; height:23px; }
  .pc-card,.pc-card:nth-child(3n+2),.pc-card:nth-child(3n+3) { flex-basis:82vw; }
  .pc-card-m { aspect-ratio:4/3; }
  .pc-card-copy { padding:17px 0 12px; }
  .pc-card-t { font-size:29px; }
  .pc-rails.is-grid .pc-card { flex-basis:100%; }
}


/* Desktop filmography: category on the left, an open editorial gallery on the right. */
body.pf .pc-stats { padding-bottom:clamp(44px,6svh,80px); }
@media(min-width:901px) {
  .pc-work { overflow:clip; }
  .pc-rail {
    display:grid; grid-template-columns:minmax(205px,25%) minmax(0,1fr);
    gap:clamp(32px,4.5vw,76px); align-items:start;
    margin:0 var(--pf-gutter) clamp(110px,11vw,180px);
    padding-top:clamp(28px,3.5vw,54px); border-top:1px solid var(--line);
  }
  .pc-rail-h {
    position:sticky; top:28px; display:flex; flex-direction:column;
    align-items:flex-start; justify-content:flex-start; gap:26px;
    min-width:0; margin:0; padding:0;
  }
  .pc-rail-index {
    display:block; font:400 clamp(95px,11vw,170px)/.75 var(--k-font-body);
    letter-spacing:-.09em; color:var(--ink3); opacity:.42;
  }
  .pc-rail-caption { display:block; margin-bottom:15px; color:var(--ink3); font:400 10px/1.3 var(--k-font-mono); letter-spacing:.16em; text-transform:uppercase; }
  .pc-rail-h h3 { max-width:7em; font-size:clamp(43px,4vw,64px); line-height:1.02; }
  .pc-rail-h h3 small { display:block; margin:17px 0 0; font-size:11px; }
  .pc-rail-h h3 small::after { content:' projects'; }
  .pc-rail-ctl { display:none; }
  .pc-track {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(34px,4vw,60px) clamp(18px,2vw,30px);
    overflow:visible; cursor:auto; padding:0; scroll-snap-type:none;
  }
  .pc-card,.pc-card:nth-child(3n+2),.pc-card:nth-child(3n+3) { min-width:0; width:auto; }
  .pc-rail .pc-card:nth-child(4n+1) {
    grid-column:span 2; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
    column-gap:clamp(24px,3vw,46px); align-items:end;
  }
  .pc-rail .pc-card:nth-child(4n+1) .pc-card-head { grid-column:1 / -1; }
  .pc-rail .pc-card:nth-child(4n+1) .pc-card-m { grid-column:1; aspect-ratio:4/3; }
  .pc-rail .pc-card:nth-child(4n+1) .pc-card-copy { grid-column:2; padding:0 0 10px; }
  .pc-rail .pc-card:nth-child(4n+1) .pc-card-t { font-size:clamp(29px,3vw,46px); }
  .pc-rail .pc-card:not(:nth-child(4n+1)):not(:has(.pc-card-m img)) .pc-card-t {
    position:absolute; width:1px; height:1px; overflow:hidden;
    white-space:nowrap; clip-path:inset(50%);
  }
  .pc-rail .pc-card:not(:nth-child(4n+1)):not(:has(.pc-card-m img)) .pc-card-copy { padding-top:12px; }
  .pc-rails.is-grid .pc-track { display:grid; }
  .pc-rails.is-grid .pc-card { width:auto; }
}
@media(max-width:900px) {
  .pc-rail-index,.pc-rail-caption { display:none; }
  body.pf .pc-stats { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1.55fr) minmax(0,.75fr); gap:14px; padding-bottom:clamp(82px,12svh,132px); }
  .pc-stats li { min-width:0; }
  .pc-stats span { overflow-wrap:anywhere; }
  .pc-card-head { display:none; }
  .pc-card-m > .pf-ph .pf-ph-k { display:none; }
  .pc-card:not(:has(.pc-card-m img)) .pc-card-t {
    position:absolute; width:1px; height:1px; overflow:hidden;
    white-space:nowrap; clip-path:inset(50%);
  }
  .pc-card:not(:has(.pc-card-m img)) .pc-card-copy { padding-top:12px; }
}
