/* ====================================================================
   Agencia Nº 10 — Versión B · hoja de estilos única (now-playing + roster)
   Reglas comunes + específicas por página (body.page-np / body.page-roster)
   ==================================================================== */

:root{
  --bg:#f7f5ef;--paper:#fffdfa;--ink:#11100e;--muted:#6f6b63;
  --line:rgba(17,16,14,.14);--line-strong:rgba(17,16,14,.28);--soft:rgba(17,16,14,.04);
  --cream:#f4f0e7;--max:1520px;--pad:clamp(20px,4vw,58px);
  --display:"Schibsted Grotesk","Inter",sans-serif;--body:"Inter",ui-sans-serif,system-ui,sans-serif
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.45;letter-spacing:-.02em;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}

/* ===== HEADER (común) =====
   Velo negro translúcido (15%) + blur en lugar del negro opaco; sin parpadeo.
   Sobre el hero queda totalmente transparente. */
/* velo oscuro translúcido SIEMPRE (también sobre el hero), para que el menú sea legible
   sobre cualquier fondo: vídeo claro, pistacho o degradado */
.site-header{position:fixed;inset:0 0 auto 0;z-index:40;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:18px var(--pad);color:var(--cream);background:rgba(0,0,0,.25);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.brand{font-family:var(--display);font-weight:700;letter-spacing:-.04em;font-size:16px}
.main-nav{display:flex;justify-content:center;gap:clamp(16px,2.4vw,34px);font-size:13px;color:rgba(244,240,231,.82)}
.main-nav a:hover,.main-nav a.is-here{color:var(--cream)}

/* ===== Secciones / tipografía común ===== */
.sec{max-width:var(--max);margin:0 auto;padding:clamp(64px,7vw,110px) var(--pad)}
.eyebrow{margin:0;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600}

/* ===== FOOTER (común) ===== */
.site-footer{display:flex;justify-content:space-between;gap:24px;padding:34px var(--pad);border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.site-footer nav{display:flex;gap:24px}

/* ====================================================================
   NOW PLAYING (body.page-np)
   ==================================================================== */

/* Hero = carrusel de vídeos de fondo */
.page-np .hero{position:relative;min-height:100svh;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden;color:#fff;background:#0a0a0c}
.np-bg{position:absolute;inset:0;z-index:0;overflow:hidden;background:#0a0a0c}
.np-bg .hvid{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover}
.np-bg::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 30% 20%,#23262e,transparent 50%),linear-gradient(150deg,#15151b,#0a0a0c)}
/* scrim ligero: ayuda a la legibilidad junto con el mix-blend del texto */
.np-bg::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(to top,rgba(0,0,0,.35),rgba(0,0,0,.05) 55%)}
.np-heroarrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.22);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:22px;line-height:46px;text-align:center;cursor:pointer;opacity:.7;transition:opacity .2s,background .2s}
.np-heroarrow:hover{opacity:1;background:rgba(0,0,0,.4)}
.np-heroarrow.prev{left:clamp(12px,2vw,30px)}
.np-heroarrow.next{right:clamp(12px,2vw,30px)}
/* texto del hero legible sobre cualquier vídeo (se invierte según el fondo) */
/* título pegado a la izquierda, con el MISMO margen a la izquierda que abajo (sin centrar el bloque) */
.page-np .hero-inner{position:relative;z-index:2;max-width:none;margin:0;width:100%;padding:0 var(--pad) clamp(28px,7vh,80px) clamp(28px,7vh,80px);mix-blend-mode:difference;color:#fff}
.page-np .hero-eyebrow{margin:0 0 20px;text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:#fff;opacity:.85}
.page-np .hero h1{font-family:var(--display);margin:0;font-size:clamp(48px,9.5vw,146px);line-height:1.0;letter-spacing:-.05em;font-weight:800;color:#fff}
/* crédito discreto del reel actual del carrusel (talento que participa) */
.np-credit{position:absolute;right:var(--pad);bottom:26px;z-index:3;max-width:62%;text-align:right;color:rgba(255,255,255,.92);font-size:12px;line-height:1.4;letter-spacing:.03em;text-shadow:0 1px 8px rgba(0,0,0,.7);pointer-events:none}
.np-credit .w{text-transform:uppercase;letter-spacing:.14em;font-size:10px;opacity:.8;display:block;margin-bottom:3px}
.np-credit .n{font-weight:600}
.np-credit a{pointer-events:auto;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.45);transition:border-color .2s}
.np-credit a:hover{border-bottom-color:#fff}

.sec-head{display:grid;grid-template-columns:.7fr 1.3fr auto;align-items:end;gap:28px;margin-bottom:40px}
.sec-head h2{font-family:var(--display);margin:0;font-size:clamp(35px,6vw,80px);line-height:.92;letter-spacing:-.06em;font-weight:700}
.sec-note{margin:0;color:var(--muted);max-width:320px;font-size:13px}
.np-gridwrap{position:relative}
.np-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.4vw,22px)}
.np-card{position:relative;aspect-ratio:16/9;cursor:pointer}
.np-card[hidden]{display:none}
.np-media{position:absolute;inset:0;overflow:hidden;background:#15151b;transform-origin:center;transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s ease;will-change:transform}
.np-media .np-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.np-media::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 30% 20%,#3a3630,transparent 45%),linear-gradient(150deg,#15151b,#2a2620 60%,#0d0d10)}
.np-shadow{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(8,8,10,.82),rgba(8,8,10,.12) 62%);transition:opacity .4s ease}
.np-rest{position:absolute;left:18px;right:18px;bottom:16px;z-index:2;color:var(--cream);transition:opacity .25s ease}
.np-rest .proj{font-family:var(--display);font-weight:700;letter-spacing:-.03em;font-size:clamp(16px,1.5vw,23px);line-height:1.04}
.np-rest .cat{margin-top:6px;font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:rgba(244,240,231,.66)}
.np-zoom{position:absolute;right:0;bottom:0;z-index:3;transform:scale(0);opacity:0;transform-origin:bottom right;pointer-events:none;text-align:right;padding:0 26px 22px 0;color:var(--cream);transition:opacity .35s ease .12s}
.np-zoom .proj{font-family:var(--display);font-weight:800;letter-spacing:-.04em;font-size:30px;line-height:1;margin-bottom:14px}
.np-zoom .who{font-size:15px;line-height:1.55}
.np-zoom .who{cursor:pointer}
.np-zoom .who .nm{border-bottom:1px solid rgba(244,240,231,.5);transition:border-color .2s}
.np-zoom .who:hover .nm{border-bottom-color:var(--cream)}
.np-zoom .who .role{color:rgba(244,240,231,.7)}
.np-close{position:absolute;top:0;right:0;z-index:4;transform:scale(0);opacity:0;transform-origin:top right;width:58px;height:58px;border:0;background:transparent;color:var(--cream);font-size:32px;line-height:58px;text-align:center;cursor:pointer;pointer-events:none;transition:opacity .3s ease .1s}
/* cursor "mano" (pointer) sobre los nombres del reel ampliado, en vez del carrete */
.np-zoom .who,.np-zoom .who *{cursor:pointer}
body.cursor-film .np-zoom .who,body.cursor-film .np-zoom .who *{cursor:pointer!important}
.np-backdrop{position:fixed;inset:0;z-index:30;background:rgba(10,10,12,.66);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .45s ease}
.np-backdrop.show{opacity:1;pointer-events:auto}
.np-card.is-active{z-index:60}
.np-card.closing{z-index:60}
.np-card.is-active .np-media{box-shadow:0 50px 130px rgba(0,0,0,.6);pointer-events:none}
.np-card.is-active .np-shadow{opacity:.92}
.np-card.is-active .np-rest{opacity:0}
.np-card.is-active .np-zoom{transform:scale(calc(1/var(--sc,1.6)));opacity:1;pointer-events:auto}
.np-card.is-active .np-close{transform:scale(calc(1/var(--sc,1.6)));opacity:1;pointer-events:auto}
@keyframes slideR{from{opacity:0;transform:translateX(70px)}to{opacity:1;transform:none}}
@keyframes slideL{from{opacity:0;transform:translateX(-70px)}to{opacity:1;transform:none}}
.np-card.appearR{animation:slideR .62s cubic-bezier(.16,.8,.3,1) both}
.np-card.appearL{animation:slideL .62s cubic-bezier(.16,.8,.3,1) both}
.np-lessbar{display:flex;justify-content:center;min-height:48px;margin-top:18px}
.np-lessbar[hidden]{display:none}
.np-showless{border:1px solid var(--ink);background:var(--ink);color:var(--bg);padding:11px 20px;cursor:pointer;font-size:13px;border-radius:999px;transition:background .2s,color .2s,box-shadow .2s}
.np-showless:hover{background:var(--paper);color:var(--ink)}
.np-showless.floating{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:80;box-shadow:0 16px 44px rgba(0,0,0,.3)}
.np-controls{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:18px}
.np-controls[hidden]{display:none}
.np-showall{border:1px solid var(--ink);background:var(--ink);color:var(--bg);padding:10px 18px;cursor:pointer;font-size:13px;border-radius:999px;transition:background .2s,color .2s}
.np-showall:hover{background:transparent;color:var(--ink)}
.np-showall[hidden]{display:none}
.np-pagerow{display:flex;align-items:center;justify-content:center;gap:14px}
.np-perpage{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:8px}
.np-perpage select{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);padding:7px 10px;cursor:pointer}
.np-pager{display:flex;align-items:center;gap:8px}
.np-pager button{border:1px solid var(--line-strong);background:transparent;min-width:40px;padding:9px 13px;cursor:pointer;font-size:13px;transition:background .2s,color .2s}
.np-pager button:hover:not(:disabled){background:var(--soft)}
.np-pager button.is-active{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.np-pager button:disabled{opacity:.35;cursor:default}

/* ====================================================================
   ROSTER (body.page-roster)
   ==================================================================== */

/* Hero pistacho + polaroids cayendo */
.page-roster .hero{position:relative;min-height:64vh;display:flex;align-items:flex-end;overflow:hidden;color:var(--ink);background:#bcd9a0}
.hero-polys{position:absolute;inset:0;z-index:0;pointer-events:none}
.poly{position:absolute;top:-230px;background:#fff;padding:7px 7px 22px;border-radius:2px;box-shadow:0 16px 34px rgba(20,40,10,.22);will-change:transform;animation:polyDrop linear infinite}
.poly img{display:block;width:clamp(76px,7vw,116px);height:clamp(76px,7vw,116px);object-fit:cover;background:#d9d9d9}
@keyframes polyDrop{0%{transform:translateY(0) rotate(var(--r0));opacity:0}5%{opacity:1}95%{opacity:1}100%{transform:translateY(calc(64vh + 340px)) rotate(var(--r1));opacity:1}}
.page-roster .hero-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;width:100%;padding:0 var(--pad) 6vh}
.page-roster .hero-eyebrow{margin:0 0 16px;text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:rgba(17,16,14,.55)}
.page-roster .hero h1{font-family:var(--display);margin:0;font-size:clamp(48px,9vw,128px);line-height:.92;letter-spacing:-.05em;font-weight:800}
/* barra superior: toggle (izq) + filtros (der) */
.roster-top{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:24px}
.view-toggle{display:inline-flex;border:1px solid var(--line-strong);border-radius:999px;overflow:hidden;flex:none}
.view-toggle button{position:relative;border:0;background:transparent;padding:9px 14px;cursor:pointer;display:flex;align-items:center;color:var(--muted);transition:background .2s,color .2s}
.view-toggle button svg{display:block;width:18px;height:18px}
.view-toggle button:hover:not(.is-active){background:var(--soft);color:var(--ink)}
.view-toggle button.is-active{background:var(--ink);color:var(--bg);cursor:default}
/* tooltip encima de los botones del toggle */
.view-toggle button[data-tip]::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 9px);left:50%;transform:translateX(-50%) translateY(4px);background:var(--ink);color:var(--bg);font-size:11px;line-height:1;letter-spacing:0;padding:6px 9px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease}
.view-toggle button[data-tip]:hover::after{opacity:1;transform:translateX(-50%) translateY(0)}
.profiles{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 18px;color:var(--muted)}
.profiles button{border:0;background:transparent;padding:0 0 3px;cursor:pointer;color:inherit;border-bottom:1px solid transparent;transition:color .15s,border-color .15s;font-size:14px}
.profiles button.is-active,.profiles button:hover{color:var(--ink);border-bottom-color:var(--ink)}

/* al cambiar de página, el scroll vuelve aquí sin que el header fijo tape el primer resultado */
#roster{scroll-margin-top:84px}
/* vista lista (tabla) */
.rtable{width:100%;border-collapse:collapse;border-top:1px solid var(--line-strong)}
.rtable[hidden]{display:none}
.rtable th,.rtable td{text-align:left;padding:18px 14px;border-bottom:1px solid var(--line);font-size:15px}
.rtable th{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600;cursor:pointer;user-select:none;white-space:nowrap}
.rtable th.nosort{cursor:default}
.rtable th .arr{opacity:.5;margin-left:6px;font-size:10px}.rtable th.sorted .arr{opacity:1}
.rtable td.col-id{color:var(--muted);width:60px}
.rtable td.col-name{font-family:var(--display);font-weight:700;letter-spacing:-.03em;font-size:19px}
.rtable td.col-prof,.rtable td.col-city{color:var(--muted)}
.rtable tr.row:hover td{background:var(--soft)}
.verficha{border:1px solid var(--ink);background:transparent;padding:8px 14px;cursor:pointer;font-size:13px;border-radius:999px;white-space:nowrap;transition:background .2s,color .2s}
.verficha:hover{background:var(--ink);color:var(--bg)}
.rtable td.col-act{text-align:right;width:120px}

/* vista cuadrícula */
.rgridwrap{position:relative}
.rgridwrap[hidden]{display:none}
.rgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.2vw,30px)}
.rcard{display:flex;flex-direction:column}
/* media = caja aspect-ratio; .rcard-box es lo que se amplía al centro (igual que Now Playing) */
.rcard-media{position:relative;aspect-ratio:16/9;cursor:pointer}
.rcard-box{position:absolute;inset:0;overflow:hidden;background:#15151b;transform-origin:center;transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s ease;will-change:transform}
.rcard-box::before{content:"";position:absolute;inset:0;background:linear-gradient(150deg,#15151b,#33302a 60%,#0d0d10)}
.rcard-box .rcard-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;background:#15151b}
.rcard-box .sh{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(8,8,10,.7),transparent 55%);transition:opacity .4s ease}
/* ID sobre la esquina inferior derecha del vídeo */
.rcard-id{position:absolute;right:14px;bottom:10px;z-index:2;font-family:var(--display);font-weight:800;letter-spacing:-.03em;font-size:30px;line-height:1;color:var(--cream);text-shadow:0 2px 14px rgba(0,0,0,.5);transition:opacity .25s ease}
/* título grande al ampliar (sólo el nombre, como pediste) */
.rcard-zoom{position:absolute;left:0;bottom:0;z-index:3;transform:scale(0);opacity:0;transform-origin:bottom left;pointer-events:none;padding:0 0 22px 26px;color:var(--cream);transition:opacity .35s ease .12s}
.rcard-zoom .proj{font-family:var(--display);font-weight:800;letter-spacing:-.04em;font-size:30px;line-height:1.05}
.rcard-zoom .sub{margin-top:6px;font-size:13px;text-transform:uppercase;letter-spacing:.14em;color:rgba(244,240,231,.72)}
.rcard-close{position:absolute;top:0;right:0;z-index:4;transform:scale(0);opacity:0;transform-origin:top right;width:58px;height:58px;border:0;background:transparent;color:var(--cream);font-size:32px;line-height:58px;text-align:center;cursor:pointer;pointer-events:none;transition:opacity .3s ease .1s}
/* ID grande abajo-derecha cuando la miniatura está ampliada (junto al nombre, que va abajo-izq) */
.rcard-zoomid{position:absolute;right:0;bottom:0;z-index:3;transform:scale(0);opacity:0;transform-origin:bottom right;pointer-events:none;padding:0 24px 22px 0;color:var(--cream);font-family:var(--display);font-weight:800;letter-spacing:-.03em;font-size:30px;line-height:1;text-shadow:0 2px 14px rgba(0,0,0,.45);transition:opacity .35s ease .12s}
.rcard.is-active{z-index:60}
.rcard.closing{z-index:60}
.rcard.is-active .rcard-box{box-shadow:0 50px 130px rgba(0,0,0,.6);pointer-events:none}
.rcard.is-active .rcard-box .sh{opacity:.92}
/* al ampliar, el vídeo se ve COMPLETO (sin recortar) y centrado */
.rcard.is-active .rcard-vid{object-fit:contain;background:#0a0a0c}
.rcard.is-active .rcard-id{opacity:0}
.rcard.is-active .rcard-zoom{transform:scale(calc(1/var(--sc,1.6)));opacity:1;pointer-events:auto}
.rcard.is-active .rcard-zoomid{transform:scale(calc(1/var(--sc,1.6)));opacity:1}
.rcard.is-active .rcard-close{transform:scale(calc(1/var(--sc,1.6)));opacity:1;pointer-events:auto}
.rcard-foot{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-top:14px}
.rcard-info{min-width:0}
.rcard-name{font-family:var(--display);font-weight:700;letter-spacing:-.03em;font-size:20px;color:var(--ink);line-height:1.05}
.rcard-meta{margin-top:3px;color:var(--muted);font-size:13px}
.rcard-foot .verficha{flex:none}
/* slide escalonado al mostrar (mismo efecto que Now Playing; lo aplica el JS) */
.rcard.appearR{animation:slideR .55s cubic-bezier(.16,.8,.3,1) both}
.rcard.appearL{animation:slideL .55s cubic-bezier(.16,.8,.3,1) both}
.fc-thumb.appearR{animation:slideR .55s cubic-bezier(.16,.8,.3,1) both}
.fc-thumb.appearL{animation:slideL .55s cubic-bezier(.16,.8,.3,1) both}
.rtable tr.row.appearR{animation:slideR .5s cubic-bezier(.16,.8,.3,1) both}
.rtable tr.row.appearL{animation:slideL .5s cubic-bezier(.16,.8,.3,1) both}
/* flechas laterales de la cuadrícula (cambiar de página) */
/* flechas laterales: altura FIJA (54px) y el JS las coloca a la mitad de las 2 primeras
   filas, así no se mueven aunque la última página tenga una sola fila */
.rgrid-arrow{position:absolute;top:0;height:54px;width:clamp(26px,3vw,40px);display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--muted);font-size:26px;cursor:pointer;transform:translateY(-50%);transition:color .2s,opacity .2s;z-index:5}
.rgrid-arrow:hover:not(:disabled){color:var(--ink)}
.rgrid-arrow:disabled{opacity:.25;cursor:default}
.rgrid-arrow.prev{left:calc(-1 * clamp(28px,3.5vw,46px))}
.rgrid-arrow.next{right:calc(-1 * clamp(28px,3.5vw,46px))}
/* controles de paginación de la cuadrícula (reutilizan estilo np) */
.rgrid-controls{display:flex;flex-direction:column;align-items:center;gap:18px;margin-top:40px}
.rgrid-controls[hidden]{display:none}
.rgrid-lessbar{display:flex;justify-content:center;min-height:48px;margin-top:18px}
.rgrid-lessbar[hidden]{display:none}

/* FICHA PERSONA */
.ficha{position:relative;max-width:var(--max);margin:0 auto;padding:clamp(60px,7vw,110px) var(--pad);border-top:1px solid var(--line)}
.ficha.flash{animation:flash 1s ease}@keyframes flash{0%{background:rgba(17,16,14,.06)}100%{background:transparent}}
.fc-arrow{position:absolute;z-index:6;width:46px;height:46px;border:1px solid var(--line-strong);background:var(--paper);border-radius:50%;cursor:pointer;font-size:20px;line-height:44px;text-align:center;transform:translateY(-50%);transition:background .2s,color .2s}
.fc-arrow:hover{background:var(--ink);color:var(--bg)}
.fc-arrow.prev{left:0}.fc-arrow.next{right:0}
@keyframes fcFromR{from{opacity:0;transform:translateX(64px)}to{opacity:1;transform:none}}
@keyframes fcFromL{from{opacity:0;transform:translateX(-64px)}to{opacity:1;transform:none}}
.slideR{animation:fcFromR .5s cubic-bezier(.16,.8,.3,1) both}
.slideL{animation:fcFromL .5s cubic-bezier(.16,.8,.3,1) both}
.fc-head{display:flex;flex-direction:column;gap:6px;margin-bottom:26px}
.fc-back{align-self:flex-start;border:1px solid var(--line-strong);background:transparent;border-radius:999px;padding:8px 16px;cursor:pointer;font-size:13px;margin-bottom:10px;transition:background .2s,color .2s}
.fc-back:hover{background:var(--ink);color:var(--bg)}
.fc-back[hidden],.fc-worktitle[hidden]{display:none}
.fc-worktitle{margin:0;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.14em}
.fc-name{font-family:var(--display);margin:0;font-size:clamp(40px,6vw,88px);line-height:.9;letter-spacing:-.06em;font-weight:800}
.fc-sub{margin:8px 0 0;color:var(--muted);font-size:18px}
.fc-top{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,56px);align-items:start;margin-bottom:8px}
.fc-main{position:relative;aspect-ratio:16/9;background:#15151b;overflow:hidden;cursor:pointer;transform-origin:center;transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s ease;will-change:transform}
.fc-main video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;background:#15151b}
/* vídeo principal de la ficha ampliable (mismo comportamiento que las miniaturas) */
.fc-main.is-zoom{z-index:60;box-shadow:0 50px 130px rgba(0,0,0,.6);pointer-events:none}
.fc-main.is-zoom .roles{opacity:0}
.fc-close{position:absolute;top:0;right:0;z-index:4;transform:scale(0);opacity:0;transform-origin:top right;width:58px;height:58px;border:0;background:transparent;color:var(--cream);font-size:32px;line-height:58px;text-align:center;cursor:pointer;pointer-events:none;transition:opacity .3s ease .1s}
.fc-main.is-zoom .fc-close{transform:scale(calc(1/var(--sc,1.6)));opacity:1;pointer-events:auto}
/* nombre del vídeo al ampliar el vídeo principal de la ficha */
.fc-zoomtitle{position:absolute;left:0;bottom:0;z-index:3;transform:scale(0);opacity:0;transform-origin:bottom left;pointer-events:none;padding:0 0 22px 26px;color:var(--cream);font-family:var(--display);font-weight:800;letter-spacing:-.03em;font-size:30px;line-height:1.05;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.fc-main.is-zoom .fc-zoomtitle{transform:scale(calc(1/var(--sc,1.6)));opacity:1}
.fc-main::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 120% at 30% 20%,#3a3630,transparent 45%),linear-gradient(150deg,#15151b,#2a2620 60%,#0d0d10)}
.fc-main .roles{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:60px 24px 20px;color:var(--cream);background:linear-gradient(to top,rgba(8,8,10,.82),transparent)}
.fc-main .roles b{font-family:var(--display);font-weight:800;letter-spacing:-.03em;font-size:21px;display:block;margin-bottom:4px}
.fc-main .roles span{font-size:14px;color:rgba(244,240,231,.82)}
.fc-tech{margin:0;border-top:1px solid var(--line-strong)}
.fc-tech div{display:grid;grid-template-columns:.8fr 1.2fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.fc-tech dt{color:var(--muted);font-size:13px}.fc-tech dd{margin:0;font-size:14px}
.fc-works{margin-top:54px}
.fc-works .eyebrow{margin-bottom:18px}
.fc-lessbar{display:flex;justify-content:center;min-height:46px;margin-top:14px}
.fc-lessbar[hidden]{display:none}
.fc-showless{border:1px solid var(--ink);background:var(--ink);color:var(--bg);padding:10px 18px;cursor:pointer;font-size:13px;border-radius:999px;transition:background .2s,color .2s,box-shadow .2s}
.fc-showless:hover{background:var(--paper);color:var(--ink)}
.fc-showless.floating{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:80;box-shadow:0 16px 44px rgba(0,0,0,.3)}
.fc-worksgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.fc-thumb{position:relative;aspect-ratio:16/9;overflow:hidden;background:#15151b;cursor:pointer;border:0;text-align:left;padding:0;will-change:transform}
.fc-thumb::before{content:"";position:absolute;inset:0;background:linear-gradient(150deg,#15151b,#33302a 60%,#0d0d10)}
.fc-thumb .poster,.fc-thumb video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;background:#15151b}
.fc-thumb .sh{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(8,8,10,.85),transparent 60%)}
.fc-thumb .lbl{position:absolute;left:12px;right:12px;bottom:11px;z-index:2;color:var(--cream)}
.fc-thumb .lbl .p{font-family:var(--display);font-weight:700;letter-spacing:-.02em;font-size:14px;line-height:1.1}
.fc-thumb .lbl .r{margin-top:4px;font-size:11px;color:rgba(244,240,231,.72)}
.fc-thumb:hover{outline:2px solid var(--ink);outline-offset:-2px}
@keyframes thumbInL{from{opacity:0;transform:translateX(-46px)}to{opacity:1;transform:none}}
.fc-wcontrols{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:28px}
.fc-wcontrols[hidden]{display:none}
.fc-showall{border:1px solid var(--ink);background:var(--ink);color:var(--bg);padding:9px 16px;cursor:pointer;font-size:13px;border-radius:999px;transition:background .2s,color .2s}
.fc-showall:hover{background:transparent;color:var(--ink)}.fc-showall[hidden]{display:none}
.fc-wpagerow{display:flex;align-items:center;justify-content:center;gap:12px}
.fc-wperpage{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:8px}
.fc-wperpage select{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);padding:6px 9px;cursor:pointer}
.fc-wpager{display:flex;gap:6px}
.fc-wpager button{border:1px solid var(--line-strong);background:transparent;min-width:34px;padding:7px 10px;cursor:pointer;font-size:12px;transition:background .2s,color .2s}
.fc-wpager button:hover:not(:disabled){background:var(--soft)}
.fc-wpager button.is-active{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.fc-wpager button:disabled{opacity:.35;cursor:default}

/* ====================================================================
   CONTACTO (body.page-contact)
   ==================================================================== */
/* Hero "campo de color vivo": degradado animado de la paleta + grano de film */
.page-contact .hero{position:relative;min-height:56vh;display:flex;align-items:flex-end;overflow:hidden;color:var(--ink);background:linear-gradient(120deg,#bcd9a0,#f4f0e7,#a6e3d7,#d7e9c2,#bcd9a0);background-size:320% 320%;animation:ctflow 22s ease-in-out infinite}
@keyframes ctflow{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.page-contact .hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.page-contact .hero-inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;width:100%;padding:0 var(--pad) 7vh}
.page-contact .hero-eyebrow{margin:0 0 18px;text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:600;color:rgba(17,16,14,.55)}
.page-contact .hero h1{font-family:var(--display);margin:0;font-size:clamp(48px,9vw,128px);line-height:.9;letter-spacing:-.05em;font-weight:800;color:var(--ink)}
@media(prefers-reduced-motion:reduce){.page-contact .hero{animation:none}}
.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(40px,6vw,96px);align-items:start}
.ct-col h2{font-family:var(--display);margin:0 0 28px;font-size:clamp(26px,3vw,40px);letter-spacing:-.04em;font-weight:700}
.ct-line{display:block;margin:0 0 6px}
.ct-line .lbl{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600;margin-bottom:8px}
.ct-line a,.ct-line span.big{font-family:var(--display);font-weight:700;letter-spacing:-.03em;font-size:clamp(22px,2.4vw,32px);line-height:1.1;border-bottom:1px solid transparent;transition:border-color .2s}
.ct-line a:hover{border-bottom-color:var(--ink)}
.ct-line+.ct-line{margin-top:34px}
.ct-social{margin-top:34px;display:flex;gap:18px;align-items:center}
.ct-social a{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-strong);border-radius:999px;padding:9px 16px;font-size:14px;transition:background .2s,color .2s}
.ct-social a:hover{background:var(--ink);color:var(--bg)}
.ct-social svg{width:17px;height:17px}
/* newsletter */
.newsletter{border:1px solid var(--line-strong);border-radius:14px;padding:clamp(24px,3vw,38px);background:var(--paper)}
.newsletter h2{margin-top:0}
.newsletter p{color:var(--muted);font-size:14px;margin:0 0 20px}
.nl-field{display:flex;gap:10px;flex-wrap:wrap}
.nl-field input[type=email]{flex:1;min-width:180px;font:inherit;padding:13px 15px;border:1px solid var(--line-strong);border-radius:999px;background:var(--bg);color:var(--ink)}
.nl-field input[type=email]:focus{outline:none;border-color:var(--ink)}
.nl-send{border:1px solid var(--ink);background:var(--ink);color:var(--bg);padding:13px 22px;border-radius:999px;cursor:pointer;font-size:14px;transition:background .2s,color .2s}
.nl-send:hover{background:transparent;color:var(--ink)}
.nl-rgpd{display:flex;align-items:flex-start;gap:9px;margin-top:16px;color:var(--muted);font-size:12px;line-height:1.5}
.nl-rgpd input{margin-top:2px}
.nl-rgpd a{border-bottom:1px solid var(--line-strong)}
.ct-note{margin-top:14px;color:var(--muted);font-size:12px;font-style:italic}

/* ====================================================================
   RESPONSIVE
   ==================================================================== */
@media(max-width:1080px){
  .site-header{grid-template-columns:1fr auto}
  .main-nav{display:none}
  .sec-head{grid-template-columns:1fr}
  .fc-top{grid-template-columns:1fr}
  .fc-worksgrid{grid-template-columns:repeat(2,1fr)}
  .fc-arrow{transform:none;top:auto!important;bottom:8px}
  .rgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rgrid-arrow.prev{left:0}.rgrid-arrow.next{right:0}
  .contact-grid{grid-template-columns:1fr;gap:48px}
}
@media(max-width:760px){
  .np-grid{grid-template-columns:1fr}
  .np-pagerow{flex-direction:column}
  .rtable td.col-prof,.rtable th.th-prof{display:none}
  .fc-worksgrid{grid-template-columns:1fr}
  .rgrid{grid-template-columns:1fr}
  .site-footer{display:grid}
}
@media(prefers-reduced-motion:reduce){
  .np-media{transition:none}
  .np-card.appearR,.np-card.appearL{animation:none}
}

/* ====================================================================
   Cursor "carrete de film" girando (sobre miniaturas de vídeo y zoom)
   ==================================================================== */
body.cursor-film,body.cursor-film *{cursor:none!important}
.film-cursor{position:fixed;left:0;top:0;width:46px;height:46px;margin:-23px 0 0 -23px;z-index:9999;pointer-events:none;opacity:0;transition:opacity .15s ease}
.film-cursor.show{opacity:1}
.film-cursor.over-link{opacity:0}
/* sobre la X de cerrar se usa la mano (pointer), no el carrete */
body.cursor-film .np-close,body.cursor-film .rcard-close,body.cursor-film .fc-close{cursor:pointer!important}
.film-cursor svg{display:block;width:100%;height:100%;animation:filmspin 2.4s linear infinite;filter:drop-shadow(0 2px 6px rgba(0,0,0,.55))}
@keyframes filmspin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.film-cursor svg{animation:none}}

/* texto de ayuda pequeño ("mantén el cursor 1,5 s…") */
.zoom-hint{margin:0;color:var(--muted);font-size:11px;letter-spacing:.04em}
.grid-hint{margin:0 0 16px;color:var(--muted);font-size:11px;letter-spacing:.04em}
.grid-hint[hidden]{display:none}
