
:root{--bg:#070707;--fg:#e9e7e2;--mute:#9c9993;--line:#1d1d1c;--font:"Josefin Sans",system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:clip}
body{background:var(--bg);color:var(--fg);font:300 16px/1.6 var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}ul{list-style:none}
img{display:block;width:100%;height:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:focus-visible{outline:1px solid var(--fg);outline-offset:3px}
/* encabezado: nombre chico arriba a la izquierda, Work Stills About */
.hd{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:30px 40px 34px;position:relative;z-index:3}
.name{font-weight:400;font-size:15px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.nav{display:flex;gap:28px;font-size:15px;color:var(--mute)}.nav a{transition:color .2s}.nav a:hover,.nav a[aria-current]{color:var(--fg)}
.is-home .hd{position:absolute;inset:0 0 auto;background:linear-gradient(#0007,#0000)}.is-home .nav{color:#fffc}
/* portada: el video a pantalla completa */
.home{position:relative;height:100vh;height:100dvh;overflow:hidden;background:#000}
.reel{position:absolute;inset:0;overflow:hidden}
.reel-frame{position:absolute;inset:0;opacity:0;transition:opacity 1.2s}.reel.ready .reel-frame{opacity:1}
.reel-frame iframe{position:absolute;left:50%;top:50%;border:0;pointer-events:none;transform:translate(-50%,-50%);
  --h:max(100vh,calc(100vw / var(--ar)));--h:max(100lvh,calc(100vw / var(--ar)));height:var(--h);width:calc(var(--h) * var(--fa,1.7778))}
/* la altura se toma de la pantalla (lvh, la más alta, para que no quede franja cuando el navegador esconde
   su barra), no de un %: un % en el ancho se lee contra el ancho y en celular vertical dejaba el video como
   franja. Con el reel horizontal en celular se ve un tercio del cuadro; la versión vertical lo resuelve */
.reel-btn{position:absolute;right:40px;bottom:28px;z-index:3;font-size:12px;color:#fff9;transition:color .2s}.reel-btn:hover{color:#fff}
/* Work: dos columnas como rosahadit.com/work */
.wrap{max-width:1224px;margin:0 auto;padding:0 40px 96px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.card{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:#111}
.card img{height:100%;object-fit:cover}
.card::after{content:"";position:absolute;inset:0;background:#000;opacity:0;transition:opacity .35s}
.cap{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;padding:16px;text-align:center;
  font-size:15px;font-weight:300;color:#fff;opacity:0;transition:opacity .35s}
.card:hover::after,.card:focus-visible::after{opacity:.5}.card:hover .cap,.card:focus-visible .cap{opacity:1}
@media (hover:none){.card::after{opacity:1;background:linear-gradient(#0000 60%,#000a)}.cap{opacity:1;align-items:flex-end;font-size:13px}}
/* proyecto: el video primero */
.player{position:relative;background:#000}.player iframe,.player video{display:block;width:100%;aspect-ratio:16/9;border:0;background:#000}
/* ficha técnica a la derecha del video, abajo, como rosahadit.com/nada-cambia */
.top{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:36px;align-items:end}
.ficha{font-size:13px;line-height:1.5;color:var(--mute)}.ficha h1{font-size:15px;font-weight:400;color:var(--fg)}
.ficha .cat{margin-top:2px}.ficha ul{margin-top:14px}.ficha li+li{margin-top:6px}
.pj .pn{margin-top:28px}.pj .gal{margin-top:48px}.gal .g{aspect-ratio:16/9;overflow:hidden}.gal .g img{height:100%;object-fit:cover}
.g{display:block;width:100%;padding:0;cursor:zoom-in}.g img{transition:opacity .25s}.g:hover img{opacity:.85}
.pn{display:flex;justify-content:space-between;margin-top:64px;font-size:13px;color:var(--mute)}
.pn a{border-top:1px solid #444;padding-top:8px;min-width:72px;transition:color .2s}.pn a:hover{color:var(--fg)}.pn a:last-child{text-align:right}
/* Stills: ordenadas, sin subtemas */
.mas{columns:3;column-gap:8px}.mas .g{break-inside:avoid;margin-bottom:8px}
/* About: como rosahadit.com/about */
.ab{max-width:1304px;margin:0 auto;padding:16px 40px 96px}
.ab-in{display:grid;grid-template-columns:380px minmax(0,1fr);gap:44px;align-items:start}
.tx h1{font-size:15px;font-weight:400;margin-bottom:16px}.tx p{font-size:16px;color:#cfccc6;max-width:64ch}.tx p+p{margin-top:1em}
.ct{display:flex;justify-content:flex-end;gap:96px;margin-top:96px;text-align:right;font-size:14px}
.ct h2{font-size:14px;font-weight:400;margin-bottom:12px}.ct a{display:block;color:#cfccc6;margin-bottom:6px;transition:color .2s}.ct a:hover{color:var(--fg)}
.funding{display:flex;justify-content:space-between;align-items:center;gap:32px;margin-top:96px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;color:var(--mute)}
.funding p{max-width:560px}.fl{display:flex;gap:12px}.fl img{width:auto;height:30px;background:#fff;padding:3px}
/* CV como imagen */
.nf{padding-top:20vh;text-align:center}.nf h1{font-weight:300;font-size:20px;margin-bottom:16px}
.cvp{max-width:900px;margin:0 auto;padding:0 40px 96px;display:grid;gap:20px}
.cvp img{background:#fff;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}
/* visor */
.lb{position:fixed;inset:0;z-index:50;background:#000f;display:flex;align-items:center;justify-content:center;color:#fff}
.lb[hidden]{display:none}.lb img{max-width:94vw;max-height:90vh;width:auto;height:auto}
.lb button{position:absolute;padding:14px 18px;font-size:13px;color:#fffc}.lb button:hover{color:#fff}
.lb-x{top:10px;right:10px}.lb-p{left:6px;top:50%}.lb-n{right:6px;top:50%}
@media (max-width:700px){
 .hd{padding:20px 16px 22px;gap:14px}.name{font-size:12px;letter-spacing:.12em}.nav{gap:16px;font-size:13px}
 .reel-btn{right:16px;bottom:18px}
 .wrap,.ab,.cvp{padding-left:16px;padding-right:16px}.grid{grid-template-columns:minmax(0,1fr);gap:6px}
 .top{grid-template-columns:minmax(0,1fr);gap:18px}
 .mas{columns:2;column-gap:6px}.mas .g{margin-bottom:6px}
 .ab-in{grid-template-columns:minmax(0,1fr);gap:28px}.ct{justify-content:flex-start;text-align:left;gap:56px;margin-top:56px}
 .funding{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
