/* ============================================
   Directory pages — Brands / Talents
   ============================================ */

.nav__link{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);text-decoration:none;margin-right:var(--sp-4)}
.nav__link:hover,.nav__link.is-active{color:var(--acid)}

.dir{padding-top:var(--nav-h);min-height:100vh;background:var(--bg);color:var(--ink)}
.dir__hero{max-width:1600px;margin:0 auto;padding:var(--sp-12) var(--sp-6) var(--sp-6);border-bottom:1px solid var(--line)}
.dir__eyebrow{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--sp-4)}
.dir__title{font-family:var(--font-display);font-weight:700;font-size:clamp(2.2rem,4.5vw,4.2rem);line-height:.98;letter-spacing:-0.03em;margin:0 0 var(--sp-4);max-width:22ch}
.dir__title em{font-style:italic;font-weight:400;color:var(--acid)}
.dir__lede{font-family:var(--font-sans);font-size:var(--fs-lg);line-height:1.45;color:var(--ink-muted);max-width:65ch}
.dir__meta{margin-top:var(--sp-6);display:flex;gap:var(--sp-3);flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-subtle)}

.dir__filter{position:sticky;top:var(--nav-h);z-index:20;background:rgba(11,11,11,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:var(--sp-3) var(--sp-6);display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none}
.dir__filter::-webkit-scrollbar{display:none}
.dir__chip{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;padding:.5rem 1rem;border:1px solid var(--line-strong);background:transparent;color:var(--ink);cursor:pointer;border-radius:999px;transition:all .2s;white-space:nowrap}
.dir__chip:hover{border-color:var(--acid);color:var(--acid)}
.dir__chip.is-active{background:var(--acid);color:var(--bg);border-color:var(--acid)}

.dir__grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(clamp(110px, 14vw, 170px), 1fr));gap:1px;background:var(--line);padding:1px;max-width:1800px;margin:var(--sp-4) auto 0}
.dir__tile{background:var(--bg-elevated);position:relative;aspect-ratio:5/4;display:flex;align-items:center;justify-content:center;padding:clamp(0.6rem, 1.2vw, 1.2rem);overflow:hidden;text-decoration:none;color:var(--ink);transition:background .25s}
.dir__tile:hover{background:var(--bg-soft)}
.dir__tile img{max-width:58%;max-height:50%;object-fit:contain;filter:grayscale(100%) contrast(1.1) brightness(1.1);transition:filter .3s,transform .4s var(--ease-expo);opacity:.85}
.dir__tile:hover img{filter:none;opacity:1;transform:scale(1.03)}
.dir__name{position:absolute;bottom:var(--sp-3);left:var(--sp-3);right:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-xxs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);opacity:0;transition:opacity .25s;text-align:left}
.dir__tile:hover .dir__name{opacity:1;color:var(--ink)}
/* Text-only tiles (no logo img) — always show name centered */
.dir__tile:not(:has(img)) .dir__name{position:static;opacity:1;color:var(--ink);font-size:var(--fs-xs);letter-spacing:.08em;text-align:center;bottom:auto;left:auto;right:auto}
.dir__tile:not(:has(img)):hover .dir__name{color:var(--acid)}
.dir__badge{position:absolute;top:var(--sp-3);right:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-xxs);letter-spacing:.08em;text-transform:uppercase;color:var(--bg);background:var(--acid);padding:.2rem .5rem;opacity:0;transition:opacity .25s}
.dir__tile.has-case:hover .dir__badge{opacity:1}
.dir__tile.has-case::before{content:"";position:absolute;top:.5rem;left:.5rem;width:6px;height:6px;border-radius:50%;background:var(--acid);box-shadow:0 0 8px var(--acid-glow)}

/* Talents — portrait cards */
.dir__grid--talents{grid-template-columns:repeat(4,1fr)}
.dir__tile.is-portrait{aspect-ratio:3/4;padding:0;background:#000;display:block}
.dir__tile.is-portrait img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;filter:none;opacity:.7;transition:opacity .4s,transform .6s var(--ease-expo)}
.dir__tile.is-portrait:hover img{opacity:1;transform:scale(1.04)}
.dir__tile.is-portrait::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.8) 100%);pointer-events:none;z-index:1}
.dir__tile.is-portrait .dir__name{z-index:2;opacity:1;bottom:var(--sp-6);font-family:var(--font-display);font-weight:700;font-size:clamp(1rem,1.4vw,1.35rem);text-transform:none;letter-spacing:-0.01em;color:var(--ink)}
.dir__tile.is-portrait .dir__sub{position:absolute;bottom:var(--sp-3);left:var(--sp-3);right:var(--sp-3);z-index:2;font-family:var(--font-mono);font-size:var(--fs-xxs);letter-spacing:.08em;text-transform:uppercase;color:var(--acid)}

.dir__cta{max-width:1600px;margin:0 auto;padding:var(--sp-16) var(--sp-6);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--sp-4);border-top:1px solid var(--line)}
.dir__cta p{font-family:var(--font-display);font-weight:500;font-style:italic;font-size:clamp(1.4rem,2.5vw,2rem);color:var(--ink);margin:0}
.dir__cta a{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--acid);text-decoration:none;border-bottom:1px solid var(--acid);padding-bottom:.25rem}

/* Talents stays column-fixed; brand grid uses auto-fit above */
@media (max-width:1100px){.dir__grid--talents{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){
  .dir__grid{grid-template-columns:repeat(auto-fit, minmax(clamp(90px, 28vw, 140px), 1fr))}
  .dir__grid--talents{grid-template-columns:repeat(2,1fr)}
  .dir__name{font-size:0.58rem;bottom:0.5rem;left:0.5rem;right:0.5rem}
}

/* ============================================
   Editorial hero (ticker + split column)
   ============================================ */
.dir__hero--editorial{padding:0;max-width:none;border-bottom:1px solid var(--line)}
.dir__ticker{display:flex;gap:1.5rem;align-items:center;padding:.9rem var(--sp-6);border-bottom:1px solid var(--line);background:var(--bg-elevated);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);white-space:nowrap;overflow:hidden;mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent);position:relative}
.dir__ticker span{flex:0 0 auto;animation:tickerSlide 80s linear infinite}
.dir__ticker span:nth-child(even){color:var(--acid)}
@keyframes tickerSlide{from{transform:translateX(0)}to{transform:translateX(-60vw)}}
.dir__hero-grid{max-width:1600px;margin:0 auto;padding:var(--sp-12) var(--sp-6) var(--sp-8);display:grid;grid-template-columns:1.2fr 1fr;gap:var(--sp-10);align-items:end}
.dir__hero-copy{padding-left:var(--sp-6);border-left:1px solid var(--line)}
.dir__lede--sub{margin-top:var(--sp-3);font-size:var(--fs-md);color:var(--ink-subtle)}
@media (max-width:900px){.dir__hero-grid{grid-template-columns:1fr;gap:var(--sp-6)}.dir__hero-copy{padding-left:0;border-left:none;border-top:1px solid var(--line);padding-top:var(--sp-6)}}

/* ============================================
   Faces sub-section (inside brands)
   ============================================ */
.dir__faces{max-width:1800px;margin:var(--sp-16) auto 0;padding:var(--sp-12) var(--sp-6) 0;border-top:1px solid var(--line);position:relative}
.dir__faces::before{content:"03→";position:absolute;top:-12px;left:var(--sp-6);background:var(--bg);padding:0 .6rem;font-family:var(--font-mono);font-size:var(--fs-xxs);letter-spacing:.12em;color:var(--acid)}
.dir__faces-head{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--sp-8);align-items:end;margin-bottom:var(--sp-8)}
.dir__faces-title{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,4.5vw,3.8rem);line-height:.98;letter-spacing:-0.03em;margin:var(--sp-3) 0 0;max-width:14ch}
.dir__faces-title em{font-style:italic;font-weight:400;color:var(--acid)}
.dir__faces-lede{font-family:var(--font-sans);font-size:var(--fs-md);line-height:1.5;color:var(--ink-muted);max-width:52ch}
.dir__faces-count{display:block;margin-top:var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-subtle)}
@media (max-width:900px){.dir__faces-head{grid-template-columns:1fr}}

.dir__faces-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);padding:1px}
.dir__face{position:relative;aspect-ratio:3/4;overflow:hidden;text-decoration:none;color:var(--ink);background:#000;display:block}
.dir__face img{width:100%;height:100%;object-fit:cover;object-position:center 20%;filter:grayscale(100%) contrast(1.05);opacity:.75;transition:all .5s var(--ease-expo)}
.dir__face:hover img{filter:none;opacity:1;transform:scale(1.04)}
.dir__face::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.85));pointer-events:none}
.dir__face-meta{position:absolute;bottom:var(--sp-3);left:var(--sp-3);right:var(--sp-3);z-index:2;display:flex;flex-direction:column;gap:.25rem}
.dir__face-name{font-family:var(--font-display);font-weight:700;font-size:clamp(.95rem,1.2vw,1.2rem);letter-spacing:-0.01em;color:var(--ink)}
.dir__face-sub{font-family:var(--font-mono);font-size:var(--fs-xxs);letter-spacing:.1em;text-transform:uppercase;color:var(--acid)}
.dir__face.has-case::before{content:"→ case";position:absolute;top:var(--sp-3);right:var(--sp-3);z-index:2;font-family:var(--font-mono);font-size:var(--fs-xxs);letter-spacing:.08em;text-transform:uppercase;color:var(--bg);background:var(--acid);padding:.2rem .5rem;opacity:0;transition:opacity .3s}
.dir__face.has-case:hover::before{opacity:1}
@media (max-width:1100px){.dir__faces-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.dir__faces-grid{grid-template-columns:repeat(2,1fr)}}

/* ============================================
   Featured cases rail (synced with /works)
   ============================================ */
.dir__cases{max-width:1800px;margin:0 auto;padding:var(--sp-10) var(--sp-6) var(--sp-6);border-bottom:1px solid var(--line)}
.dir__cases-head{display:grid;grid-template-columns:auto 1fr auto;gap:var(--sp-6);align-items:end;margin-bottom:var(--sp-6)}
.dir__cases-title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.6rem,3vw,2.6rem);line-height:1;letter-spacing:-0.02em;margin:0}
.dir__cases-title em{font-style:italic;font-weight:400;color:var(--acid)}
.dir__cases-all{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--acid);text-decoration:none;border-bottom:1px solid var(--acid);padding-bottom:.2rem;white-space:nowrap}
@media (max-width:800px){.dir__cases-head{grid-template-columns:1fr}}

.dir__cases-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4)}
.dir__case{position:relative;display:flex;flex-direction:column;text-decoration:none;color:var(--ink);background:var(--bg-elevated);border:1px solid var(--line);overflow:hidden;transition:transform .35s var(--ease-expo),border-color .25s}
.dir__case:hover{transform:translateY(-4px);border-color:var(--c,var(--acid))}
.dir__case-media{position:relative;aspect-ratio:4/5;overflow:hidden;background:#000}
.dir__case-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-expo),opacity .4s}
.dir__case-media img:first-child{filter:contrast(1.05)}
.dir__case:hover .dir__case-media img:first-child{transform:scale(1.05)}
.dir__case-alt{position:absolute;inset:auto var(--sp-3) var(--sp-3) auto;width:44px;height:44px;object-fit:contain;background:rgba(255,255,255,.94);padding:6px;border-radius:4px;filter:none !important;opacity:.9;mix-blend-mode:normal}
.dir__case::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--c,var(--acid));z-index:3;transform:scaleX(.12);transform-origin:left;transition:transform .4s var(--ease-expo)}
.dir__case:hover::before{transform:scaleX(1)}
.dir__case-info{padding:var(--sp-4);display:flex;flex-direction:column;gap:.5rem}
.dir__case-idx{font-family:var(--font-mono);font-size:var(--fs-xxs);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-subtle)}
.dir__case-info h3{font-family:var(--font-display);font-weight:700;font-size:clamp(1rem,1.25vw,1.25rem);letter-spacing:-0.01em;margin:0;line-height:1.15}
.dir__case-info p{font-family:var(--font-sans);font-size:var(--fs-sm);color:var(--ink-muted);margin:0;line-height:1.4}
.dir__case-cta{margin-top:auto;font-family:var(--font-mono);font-size:var(--fs-xxs);letter-spacing:.12em;text-transform:uppercase;color:var(--c,var(--acid));padding-top:var(--sp-2);border-top:1px dashed var(--line)}
.dir__cases-hint{margin:var(--sp-6) 0 0;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--ink-subtle);text-align:center}

@media (max-width:1100px){.dir__cases-rail{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.dir__cases-rail{grid-template-columns:1fr}}
