/* Directorio + ficha de talento. Cada opción define sus variables --tu-* en :root */
.tu-layer{position:fixed;inset:0;z-index:1800;background:var(--tu-bg);color:var(--tu-fg);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;visibility:hidden;font-family:var(--tu-font);-webkit-font-smoothing:antialiased}
.tu-layer.is-open{visibility:visible}
.tu-prof{z-index:1850;background:var(--tu-bg)}
.tu-label{font:600 11px/1 var(--tu-label);letter-spacing:.14em;text-transform:uppercase}
.tu-display{font-family:var(--tu-display);font-weight:var(--tu-display-w);text-transform:var(--tu-display-tt);letter-spacing:var(--tu-display-ls);line-height:.92;margin:0}
.tu-badge{display:inline-block;width:.8em;height:.8em;flex:0 0 auto;vertical-align:middle}

/* ---------- top bar ---------- */
.tu-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 4vw;background:var(--tu-bg);border-bottom:1px solid var(--tu-line)}
.tu-bar .tu-brand{font:400 30px/1 var(--tu-logo);letter-spacing:-.03em}
.tu-btn-x{white-space:nowrap;flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 18px;border:1.5px solid currentColor;border-radius:var(--tu-btn-radius);font:600 11px/1 var(--tu-label);letter-spacing:.12em;text-transform:uppercase;transition:background .3s,color .3s}
.tu-btn-x:hover{background:var(--tu-fg);color:var(--tu-bg)}
.tu-crumbs{display:flex;gap:10px;align-items:center;opacity:.7}
.tu-crumbs button{text-decoration:underline;text-underline-offset:4px}

/* ---------- directory ---------- */
.tu-dir-head{padding:7vh 4vw 3vh;display:grid;grid-template-columns:1fr auto;align-items:end;gap:4vw}
.tu-dir-head h2{font-size:clamp(56px,10vw,170px)}
.tu-dir-head h2 sup{font-size:.22em;vertical-align:top;margin-left:.2em;color:var(--tu-accent);letter-spacing:0}
.tu-dir-head p{margin:18px 0 0;max-width:46ch;font:500 clamp(14px,1.05vw,17px)/1.55 var(--tu-font);opacity:.7}
.tu-search{display:flex;align-items:center;gap:12px;border-bottom:1.5px solid currentColor;padding:10px 2px;min-width:min(360px,80vw)}
.tu-search input{flex:1;background:none;border:0;outline:0;color:inherit;font:500 16px/1.2 var(--tu-font)}
.tu-search input::placeholder{color:currentColor;opacity:.45}
.tu-cats{position:sticky;top:77px;z-index:4;display:flex;gap:8px;flex-wrap:wrap;padding:14px 4vw 18px;background:var(--tu-bg)}
.tu-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 15px;border:1px solid var(--tu-line-strong);border-radius:var(--tu-btn-radius);font:600 11px/1 var(--tu-label);letter-spacing:.1em;text-transform:uppercase;transition:background .35s,color .35s,border-color .35s}
.tu-chip i{font-style:normal;opacity:.55}
.tu-chip:hover{border-color:var(--tu-fg)}
.tu-chip.on{background:var(--tu-accent);color:var(--tu-accent-ink);border-color:var(--tu-accent)}
.tu-chip.on i{opacity:.8}
.tu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:22px 18px;padding:2vh 4vw 12vh}
.tu-card{display:block;text-align:left;cursor:pointer;color:inherit}
.tu-card[hidden]{display:none}
.tu-ph{display:block;aspect-ratio:4/5;border-radius:var(--tu-radius);overflow:hidden;background:var(--tu-panel);position:relative}
.tu-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;transition:transform 1s cubic-bezier(.16,1,.3,1),filter .6s}
.tu-card:hover .tu-ph img{transform:scale(1.06)}
.tu-ph .tu-go{position:absolute;right:12px;bottom:12px;width:38px;height:38px;border-radius:50%;background:var(--tu-accent);color:var(--tu-accent-ink);display:grid;place-items:center;transform:scale(0) rotate(-45deg);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.tu-card:hover .tu-go{transform:scale(1) rotate(0)}
.tu-meta{display:block;padding:12px 2px 0}
.tu-meta b{display:flex;align-items:center;gap:8px;font:700 16px/1.15 var(--tu-font)}
.tu-meta small{display:block;margin-top:6px;font:500 12px/1.3 var(--tu-font);opacity:.6}
.tu-empty{display:none;padding:10vh 4vw;font:600 20px/1.4 var(--tu-font);opacity:.6}
.tu-empty.on{display:block}

/* ---------- profile ---------- */
.tu-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:calc(100vh - 77px)}
.tu-hero-ph{position:relative;overflow:hidden;background:var(--tu-panel)}
.tu-hero-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.tu-hero-ph .tu-ref{position:absolute;left:20px;top:20px;padding:8px 12px;background:var(--tu-accent);color:var(--tu-accent-ink);border-radius:var(--tu-btn-radius)}
.tu-hero-info{padding:8vh 4vw 6vh;display:flex;flex-direction:column;gap:3vh}
.tu-hero-info h2{font-size:clamp(46px,6.4vw,118px);display:flex;flex-wrap:wrap;align-items:center;gap:.18em}
.tu-hero-info h2 .w{padding-bottom:.08em}
.tu-name .tu-badge{width:.42em;height:.42em}
.tu-tags{display:flex;gap:8px;flex-wrap:wrap}
.tu-soc{list-style:none;margin:0;padding:0;border-top:1px solid var(--tu-line)}
.tu-soc li a{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--tu-line);transition:padding .5s cubic-bezier(.16,1,.3,1),color .3s}
.tu-soc li a:hover{padding-left:12px;color:var(--tu-accent)}
.tu-soc .net{opacity:.55}
.tu-soc .h{font:600 clamp(17px,1.4vw,22px)/1.2 var(--tu-font);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tu-bio p{margin:0 0 12px;font:500 clamp(14px,1.05vw,17px)/1.65 var(--tu-font);opacity:.85;max-width:58ch}
.tu-bio p:last-child{margin-bottom:0}
.tu-mail{display:flex;flex-direction:column;gap:8px;padding:18px 20px;border:1px solid var(--tu-line-strong);border-radius:var(--tu-radius);transition:background .4s,color .4s,border-color .4s}
.tu-mail span{opacity:.6}
.tu-mail b{font:700 clamp(16px,1.3vw,21px)/1.2 var(--tu-font);overflow-wrap:anywhere}
.tu-mail:hover{background:var(--tu-accent);color:var(--tu-accent-ink);border-color:var(--tu-accent)}
.tu-dir-mail{margin-top:10px!important;opacity:1!important}
.tu-dir-mail a{text-decoration:underline;text-underline-offset:4px}
.tu-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto}
.tu-btn{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 24px;border-radius:var(--tu-btn-radius);background:var(--tu-accent);color:var(--tu-accent-ink);font:700 12px/1 var(--tu-label);letter-spacing:.1em;text-transform:uppercase;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.tu-btn:hover{transform:translateY(-3px)}
.tu-btn.ghost{background:none;color:var(--tu-fg);border:1.5px solid currentColor}
.tu-sec{padding:11vh 4vw 0}
.tu-sec-h{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:4vh}
.tu-sec-h h3{font-size:clamp(32px,3.8vw,66px)}
.tu-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1.5px solid var(--tu-fg)}
.tu-kpi{padding:22px 20px 0 0}
.tu-kpi b{display:block;font:var(--tu-display-w) clamp(30px,3.6vw,64px)/1 var(--tu-display);letter-spacing:var(--tu-display-ls)}
.tu-kpi span{display:block;margin-top:10px;opacity:.6}
.tu-svcs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.tu-svc{padding:26px 22px 30px;border:1px solid var(--tu-line-strong);border-radius:var(--tu-radius);min-height:230px;display:flex;flex-direction:column;gap:14px;transition:background .4s,color .4s,border-color .4s}
.tu-svc:hover{background:var(--tu-fg);color:var(--tu-bg);border-color:var(--tu-fg)}
.tu-svc .n{opacity:.5}
.tu-svc h4{overflow-wrap:anywhere;margin:auto 0 0;font:700 clamp(18px,1.4vw,23px)/1.1 var(--tu-font)}
.tu-svc p{margin:0;font:500 13px/1.5 var(--tu-font);opacity:.75}
.tu-works{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}
.tu-work{position:relative;border-radius:var(--tu-radius);overflow:hidden;min-height:46vh;background:var(--tu-panel);display:block}
.tu-work img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.tu-work:hover img{transform:scale(1.05)}
.tu-work::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.75),transparent 55%)}
.tu-work .tu-wcap{position:absolute;z-index:2;left:24px;right:24px;bottom:22px;color:#fff}
.tu-work .tu-wcap b{display:block;margin-top:10px;font:700 clamp(20px,1.8vw,30px)/1.1 var(--tu-font)}
.tu-work.cta{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:26px;border:1.5px dashed var(--tu-line-strong);background:none}
.tu-work.cta::after{display:none}
.tu-work.cta b{font:700 clamp(20px,1.8vw,30px)/1.1 var(--tu-font);margin:10px 0 18px}
.tu-rel{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.tu-pn{display:grid;grid-template-columns:1fr 1fr;margin-top:12vh;border-top:1px solid var(--tu-line)}
.tu-pn button{display:flex;flex-direction:column;gap:12px;padding:5vh 4vw;text-align:left;transition:background .4s,color .4s}
.tu-pn button + button{text-align:right;align-items:flex-end;border-left:1px solid var(--tu-line)}
.tu-pn button:hover{background:var(--tu-accent);color:var(--tu-accent-ink)}
.tu-pn b{font:700 clamp(22px,2.4vw,40px)/1 var(--tu-font)}
.tu-src{padding:4vh 4vw 6vh;opacity:.5}
.tu-src a{text-decoration:underline;text-underline-offset:3px}

/* home: "ver directorio" card at the end of the talent track */
.tu-more{flex:0 0 auto;display:flex;flex-direction:column;justify-content:space-between;text-align:left;padding:4vh 2.4vw;cursor:pointer}
.tu-more .tu-more-n{font:var(--tu-display-w) clamp(80px,9vw,170px)/.85 var(--tu-display);letter-spacing:var(--tu-display-ls)}
.tu-more .tu-more-faces{display:flex}
.tu-more .tu-more-faces img{width:54px;height:54px;border-radius:50%;object-fit:cover;border:2px solid var(--tu-bg);margin-left:-12px}
.tu-more .tu-more-faces img:first-child{margin-left:0}
.tu-more b{display:block;font:700 clamp(20px,1.7vw,30px)/1.1 var(--tu-font);margin:2vh 0}

@media (max-width:860px){
  .tu-bar{padding:14px 20px}
  .tu-bar > .tu-label,.tu-crumbs{display:none}
  .tu-cats{top:69px;padding:12px 20px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .tu-chip{flex:0 0 auto}
  .tu-dir-head{grid-template-columns:1fr;padding:5vh 20px 2vh}
  .tu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;padding:2vh 20px 10vh}
  .tu-meta b{font-size:14px}
  .tu-hero{grid-template-columns:1fr;min-height:0}
  .tu-hero-ph{height:62vh}
  .tu-hero-info{padding:5vh 20px}
  .tu-soc li a{grid-template-columns:90px 1fr auto}
  .tu-sec{padding:8vh 20px 0}
  .tu-kpis{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px}
  .tu-svcs{grid-template-columns:minmax(0,1fr)}
  .tu-svc{min-height:180px}
  .tu-works{grid-template-columns:1fr}
  .tu-rel{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tu-pn button{padding:4vh 20px}
}
