/* Damita Joe · hoja de estilos (diseño «Proyección»)
   La sala a oscuras: cada proyecto es un plano en 2.39:1 que se abre al entrar,
   con su bloque de créditos debajo. Los hitos se leen como créditos finales. */

:root{
  --black:#060606; --screen:#0F0F0E; --line:#262522;
  --text:#EDE8DE; --muted:#A39E93; --brass:#C8A15A;
  --display:'Bodoni Moda',Didot,'Bodoni 72',serif;
  --body:'Hanken Grotesk',system-ui,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  --scope:2.39/1;
  --bar-h:64px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-color:var(--line) var(--black);accent-color:var(--brass)}
body{margin:0;background:var(--black);color:var(--text);font:16px/1.6 var(--body);font-optical-sizing:auto}
img{max-width:100%;display:block}
a{color:inherit;text-decoration-color:var(--brass);text-underline-offset:4px;transition:color 150ms ease}
@media (hover:hover) and (pointer:fine){a:hover{color:var(--brass)}}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
::selection{background:var(--brass);color:var(--black)}
[id]{scroll-margin-top:calc(var(--bar-h) + 16px)}
.skip{position:absolute;left:16px;top:-60px;z-index:60;background:var(--brass);color:var(--black);padding:10px 16px;font-weight:600;text-decoration:none}
.skip:focus{top:12px}
.skip:hover{color:var(--black)}

/* ---------- barra: casi invisible, como la sala antes de empezar ---------- */
.bar{position:fixed;inset:0 0 auto;z-index:40;height:var(--bar-h);display:flex;align-items:center;gap:28px;padding:0 32px;background:linear-gradient(var(--black) 0,rgba(6,6,6,.85) 60%,rgba(6,6,6,0));transition:background-color 300ms ease}
.logo{margin-right:auto}
.logo img{height:32px;width:auto}
nav{display:flex;gap:4px}
nav a{position:relative;padding:12px 10px;font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--muted)}
nav a::after{content:"";position:absolute;left:10px;right:10px;bottom:6px;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform 450ms var(--ease)}
nav a[aria-current="true"]{color:var(--text)}
nav a[aria-current="true"]::after{transform:scaleX(1)}
.lang{display:flex;gap:2px;margin:0;padding:0;list-style:none}
.lang a{display:inline-flex;align-items:center;min-height:40px;padding:0 10px;font:500 12px var(--body);letter-spacing:.12em;color:var(--muted);text-decoration:none}
.lang a[aria-current="page"]{color:var(--brass)}

/* ---------- el plano ---------- */
.frame{position:relative;margin:0;aspect-ratio:var(--scope);overflow:hidden;background:var(--screen)}
.frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,center)}
.frame::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.72));pointer-events:none}
.title-card{font-family:var(--display);font-weight:400;line-height:.92;letter-spacing:-.015em;margin:0;color:#F3EEE4}
.frame .title-card{position:absolute;z-index:2;left:4%;bottom:7%;font-size:clamp(32px,3.2vw,46px);font-weight:500;max-width:80%}
.scene--feature .frame .title-card,.frame--open .title-card{font-weight:400}
.title-card--sans{font-family:var(--body);font-weight:600;letter-spacing:.08em}
.red{color:#D9443A}
.cap{position:absolute;z-index:2;top:12px;left:14px;font-size:12px;font-weight:500;letter-spacing:.04em;color:rgba(255,255,255,.85);background:rgba(0,0,0,.5);padding:3px 8px;border-radius:12px}

/* ---------- apertura ---------- */
.open{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:calc(var(--bar-h) + 24px) 4vw 40px;text-align:center}
.frame--open{width:min(1400px,92vw,calc((100svh - 260px) * 2.39))}
.reel img{opacity:0;transition:opacity 2400ms ease}
.reel img.on{opacity:1}
.frame--open::after{background:radial-gradient(ellipse at center,rgba(6,6,6,.15),rgba(6,6,6,.7))}
.frame--open .title-card{left:0;right:0;bottom:auto;top:50%;transform:translateY(-50%);max-width:none;font-size:clamp(56px,10vw,168px);text-shadow:0 2px 30px rgba(0,0,0,.4)}
.frame--open .title-card span{display:inline-block}
.tagline{margin:0;max-width:46ch;font-size:clamp(15px,1.3vw,18px);color:#D8D2C6}
.now{margin:0;font-size:14px;letter-spacing:.02em;color:var(--muted)}
.now a{color:var(--text);font-weight:500;font-size:15px;letter-spacing:0;text-decoration:none}

@keyframes shutter{from{clip-path:inset(49.6% 0 49.6% 0)}to{clip-path:inset(0)}}
@keyframes creditIn{from{opacity:0;letter-spacing:.16em;filter:blur(6px)}to{opacity:1;letter-spacing:-.015em;filter:blur(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.frame--open{animation:shutter 1.8s var(--ease) .2s both}
.frame--open .title-card span{animation:creditIn 1.8s var(--ease) 1.4s both}
.frame--open .title-card span+span{animation-delay:1.75s}
.tagline{animation:fadeUp 1.2s var(--ease) 2.6s both}
.now{animation:fadeUp 1.2s var(--ease) 3s both}

/* ---------- intertítulos y grupos ---------- */
.intertitle{text-align:center;padding:140px 4vw 72px}
.intertitle h2{font-family:var(--display);font-weight:400;font-size:clamp(40px,5vw,72px);line-height:1;margin:0}
.intertitle p{margin:14px auto 0;max-width:48ch;font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.group{display:flex;align-items:center;gap:20px;max-width:1280px;margin:120px auto 40px;padding:0 4vw;font:600 12px var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--brass)}
.group::before,.group::after{content:"";flex:1;height:1px;background:var(--line)}

/* ---------- escenas ---------- */
.scene{max-width:1280px;margin:0 auto;padding:0 4vw}
.scene--feature{margin-bottom:160px}
.scene--feature .frame .title-card{font-size:clamp(56px,8vw,128px)}
.scene--feature .frame{margin:0 calc(-4vw + 0px)}
.genre{margin:28px 0 0;text-align:center;font-size:14px;letter-spacing:.02em;color:var(--muted)}
.stage{display:inline-block;margin-left:10px;border:1px solid currentColor;border-radius:20px;padding:2px 10px;color:var(--brass);letter-spacing:.02em}
/* bloque de créditos de cartel: rol pequeño encima, nombre en versalitas */
.billing{display:flex;flex-wrap:wrap;justify-content:center;gap:18px 44px;margin:22px 0 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center}
.billing dt{font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.billing dd{margin:4px 0 0;font-weight:600;font-size:15px;letter-spacing:.14em;text-transform:uppercase}
.scene-text{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;margin-top:36px;align-items:start}
.syn{margin:0;max-width:56ch;font-size:17px;color:#D8D2C6}
.scene--feature .syn{font-size:clamp(17px,1.4vw,19px);line-height:1.6;color:var(--text)}
.hitos{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14px}
.hitos li{display:flex;gap:12px}
.hitos b{font-weight:600;color:var(--brass);font-variant-numeric:tabular-nums;min-width:3em}
.ask{display:inline-flex;align-items:center;min-height:44px;margin-top:14px;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brass);text-decoration:none;background:linear-gradient(var(--brass),var(--brass)) left calc(100% - 10px)/0 1px no-repeat;transition:background-size 400ms var(--ease)}
@media (hover:hover) and (pointer:fine){.ask:hover{background-size:100% 1px}}

.pair{display:grid;grid-template-columns:1fr 1fr;gap:72px 4vw;max-width:1280px;margin:0 auto;padding:0 4vw}
.pair .scene{padding:0;max-width:none;display:flex;flex-direction:column}
.pair .genre,.pair .billing{text-align:left;justify-content:flex-start}
.pair .billing{gap:12px 32px;padding:14px 0}
.pair .billing dd{font-size:13px}
.pair .syn{margin-top:18px;font-size:15px}
.pair .hitos{margin-top:16px}
.pair .ask{margin-top:auto;padding-top:14px}

/* ---------- créditos finales: rol a la derecha, nombre a la izquierda ---------- */
.roll{margin:0 auto;max-width:960px;padding:0 4vw;display:grid;gap:16px}
.roll > div{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:baseline}
.roll dt{text-align:right;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.roll dd{margin:0;font-size:15px}
.roll dd span{display:block;margin-top:4px;font-size:13px;color:var(--muted)}
.roll--slate dt{font-weight:500;font-size:17px;letter-spacing:0;text-transform:none;color:var(--text)}
.year{margin:0 auto 64px}
.year h3{text-align:center;margin:0 0 24px;font-family:var(--display);font-weight:500;font-size:40px;color:var(--brass);font-variant-numeric:lining-nums tabular-nums}
.logos{list-style:none;margin:96px auto 0;padding:0 4vw;max-width:1100px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:32px 48px}
.logos img{height:36px;width:auto;opacity:.55;transition:opacity 300ms ease}
.logos img.tall{height:56px}
@media (hover:hover) and (pointer:fine){.logos img:hover{opacity:1}}

/* ---------- equipo ---------- */
.team{display:grid;grid-template-columns:1fr 1fr;gap:6vw;max-width:1100px;margin:0 auto;padding:0 4vw}
.person img{width:min(240px,60%);height:auto;aspect-ratio:4/5;object-fit:cover;filter:grayscale(1) contrast(1.05);margin-bottom:22px}
.person h3{font-family:var(--display);font-weight:500;font-size:32px;margin:0}
.role{margin:4px 0 14px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.person p{margin:0 0 10px;font-size:15px}
.aw{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px;font-size:14px;color:#D8D2C6}
.aw li{padding-left:14px;border-left:1px solid var(--brass)}
.imdb{display:inline-flex;align-items:center;min-height:44px;font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--brass)}

/* ---------- contacto y pie ---------- */
.contact{text-align:center;padding:200px 4vw 80px}
.contact .title-card{font-size:clamp(64px,10vw,150px)}
.lead{margin:20px auto 48px;max-width:40ch;font-size:18px;color:#D8D2C6}
.who{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 64px}
.who a{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px;text-decoration:none;font-size:15px;color:var(--muted);overflow-wrap:anywhere}
.who a span{font-family:var(--display);font-weight:500;font-size:30px;color:var(--text)}
footer{display:flex;flex-direction:column;align-items:center;gap:16px;padding:64px 4vw 56px;border-top:1px solid var(--line);text-align:center;font-size:13px;letter-spacing:.04em;color:var(--muted)}
footer img{height:40px;width:auto}
footer p{margin:0}

/* ---------- revelado: el plano se abre como un obturador ---------- */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity 1000ms var(--ease),transform 1000ms var(--ease)}
.js .reveal.in{opacity:1;transform:none}
.js .scene.reveal{opacity:1;transform:none}
.js .scene.reveal .frame{clip-path:inset(49.6% 0 49.6% 0);transition:clip-path 1500ms var(--ease)}
.js .scene.reveal.in .frame{clip-path:inset(0)}
.js .scene.reveal .frame img{transform:scale(1.08);transition:transform 2600ms var(--ease)}
.js .scene.reveal.in .frame img{transform:none}
.js .scene.reveal .frame .title-card,.js .scene.reveal > :not(.frame){opacity:0;transform:translateY(10px);transition:opacity 1000ms var(--ease),transform 1000ms var(--ease)}
.js .scene.reveal .frame .title-card{transition-delay:900ms}
.js .scene.reveal > :not(.frame){transition-delay:1100ms}
.js .scene.reveal.in .frame .title-card,.js .scene.reveal.in > :not(.frame){opacity:1;transform:none}
.js .pair .scene.reveal:nth-child(2) .frame{transition-delay:180ms}

/* ---------- móvil ---------- */
@media (max-width:860px){
  :root{--scope:2/1;--bar-h:56px}
  .bar{padding:0 16px;gap:8px}
  nav a:not([href="#contacto"]){display:none}
  .logo img{height:28px}
  .frame--open{width:100vw}
  .scene{padding:0 20px}
  .scene--feature .frame{margin:0 -20px}
  .scene--feature{margin-bottom:112px}
  .scene-text{grid-template-columns:1fr;gap:28px}
  .billing{gap:14px 28px}
  .pair{grid-template-columns:1fr;padding:0 20px;gap:88px}
  .pair .frame{margin:0 -20px}
  .roll > div{grid-template-columns:1fr;gap:4px;text-align:center}
  .roll dt{text-align:center}
  .team{grid-template-columns:1fr;gap:72px}
  .intertitle{padding:112px 20px 56px}
}

/* ---------- reducir movimiento ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:1ms!important;transition-delay:0ms!important}
  .js .reveal,.js .scene.reveal > *,.js .scene.reveal .frame .title-card{opacity:1;transform:none}
  .js .scene.reveal .frame{clip-path:none}
  .js .scene.reveal .frame img{transform:none}
}
