:root{
  --tinta:#1A1815;
  --hueso:#F3EEE5;
  --hueso-60:rgba(243,238,229,.60);
  --hueso-38:rgba(243,238,229,.38);
  --hueso-14:rgba(243,238,229,.14);
  --gut:clamp(1.5rem,5vw,5rem);
  --stack:clamp(5rem,12vw,10rem);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--tinta);
  color:var(--hueso);
  font-family:"Jost",system-ui,sans-serif;
  font-weight:300;
  font-size:clamp(1rem,.95rem + .3vw,1.125rem);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img,video{display:block;max-width:100%}
h2,h3{font-weight:400;margin:0}
p{margin:0}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.skip{position:absolute;left:-999px;top:0;z-index:20;background:var(--hueso);color:var(--tinta);padding:.6rem 1rem}
.skip:focus{left:.5rem;top:.5rem}

:focus-visible{outline:2px solid var(--hueso);outline-offset:4px}

/* ---------- language switch ---------- */
.lang{
  position:fixed;top:clamp(1rem,2.5vw,2rem);right:clamp(1rem,2.5vw,2rem);z-index:10;
  background:none;border:1px solid var(--hueso-38);color:var(--hueso);
  font:inherit;font-size:.75rem;letter-spacing:.14em;
  padding:.45rem .8rem;cursor:pointer;
  transition:border-color .25s,background-color .25s;
}
.lang:hover{border-color:var(--hueso);background:rgba(243,238,229,.06)}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;
  display:grid;place-items:center;
  overflow:hidden;
}
.hero__video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;
}
/* Portrait screens are served the 9:16 reframe, so it can fill the frame. */
.hero__scrim{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 70% 55% at 50% 50%, rgba(26,24,21,.72) 0%, rgba(26,24,21,.42) 55%, rgba(26,24,21,.65) 100%),
    linear-gradient(to bottom, rgba(26,24,21,.35), transparent 30%, transparent 70%, rgba(26,24,21,.55));
}
.hero__mark{
  position:relative;text-align:center;padding-inline:var(--gut);
  animation:rise 1.4s cubic-bezier(.2,.7,.3,1) both;
}
.hero__mark img{
  width:min(30rem,68vw);height:auto;margin-inline:auto;
}
.tagline{
  margin-top:clamp(1.75rem,4vw,2.75rem);
  font-size:clamp(.8rem,.7rem + .5vw,1rem);
  letter-spacing:.24em;
  color:var(--hueso-60);
}
@keyframes rise{from{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:none}}

.hero__cue{
  position:absolute;bottom:clamp(1.5rem,4vw,2.75rem);left:50%;transform:translateX(-50%);
  color:var(--hueso-38);text-decoration:none;
  font-size:.72rem;letter-spacing:.2em;
  padding:.5rem;transition:color .3s;
}
.hero__cue:hover{color:var(--hueso)}
.hero__cue span::after{content:"";display:block;width:1px;height:2.25rem;margin:.6rem auto 0;background:currentColor}

/* ---------- work grid ---------- */
.work{padding:var(--stack) var(--gut) 0;max-width:78rem;margin-inline:auto}

.grid{
  display:grid;gap:clamp(.75rem,2vw,1.5rem);
  grid-template-columns:1fr;
}
@media (min-width:46rem){.grid{grid-template-columns:1fr 1fr}}

.tile{
  position:relative;display:block;width:100%;padding:0;
  aspect-ratio:4/3;overflow:hidden;
  background:#0E0D0B;border:0;cursor:pointer;
  font:inherit;color:inherit;text-align:left;
  -webkit-tap-highlight-color:transparent;
}
.tile__v{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.7,.3,1),opacity .4s;
}
.tile:hover .tile__v,.tile:focus-visible .tile__v{transform:scale(1.03)}

.tile__veil{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(26,24,21,.85) 0%,rgba(26,24,21,.25) 38%,transparent 70%);
  opacity:0;transition:opacity .35s;
}
.tile__meta{
  position:absolute;left:0;right:0;bottom:0;
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:clamp(.9rem,2.2vw,1.4rem);
  opacity:0;transform:translateY(.4rem);
  transition:opacity .35s,transform .35s;
}
.tile__label{font-size:clamp(.9rem,.8rem + .4vw,1.1rem);letter-spacing:.04em}
.tile__dur{font-size:.72rem;letter-spacing:.14em;color:var(--hueso-60)}

.tile:hover .tile__veil,.tile:focus-visible .tile__veil,
.tile:hover .tile__meta,.tile:focus-visible .tile__meta{opacity:1}
.tile:hover .tile__meta,.tile:focus-visible .tile__meta{transform:none}

/* Touch screens have no hover, so the label stays on. */
@media (hover:none){
  .tile__veil,.tile__meta{opacity:1;transform:none}
}

/* ---------- lightbox ---------- */
.lb{
  position:fixed;inset:0;z-index:50;
  display:grid;place-items:center;
  padding:clamp(1rem,4vw,3rem);
  background:rgba(14,13,11,.96);
  animation:fade .3s ease both;
}
.lb[hidden]{display:none}
@keyframes fade{from{opacity:0}to{opacity:1}}

.lb__inner{width:min(72rem,100%);max-height:100%;overflow-y:auto}
.lb__frame{position:relative;aspect-ratio:16/9;background:#000}
.lb__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lb__text{padding-top:1.25rem;display:grid;gap:.5rem}
.lb__text h3{font-size:clamp(1.1rem,1rem + .6vw,1.45rem);letter-spacing:.04em}
.lb__text p{color:var(--hueso-60);max-width:60ch}

.lb__close{
  position:absolute;top:clamp(.75rem,2.5vw,1.5rem);right:clamp(.75rem,2.5vw,1.5rem);
  width:2.75rem;height:2.75rem;line-height:1;
  background:none;border:1px solid var(--hueso-38);color:var(--hueso);
  font-size:1.5rem;cursor:pointer;
  transition:border-color .25s,background-color .25s;
}
.lb__close:hover{border-color:var(--hueso);background:rgba(243,238,229,.06)}

/* ---------- info ---------- */
.info{padding:var(--stack) var(--gut);max-width:82rem;margin-inline:auto}
.info h2{
  font-size:.78rem;letter-spacing:.22em;color:var(--hueso-38);
  padding-bottom:1.25rem;border-bottom:1px solid var(--hueso-14);
}
.info__grid{display:grid;gap:2.5rem 4rem;padding-top:2.5rem}
@media (min-width:56rem){.info__grid{grid-template-columns:1fr 1fr}}

.info__lead{font-size:clamp(1.15rem,1rem + .9vw,1.6rem);line-height:1.45;max-width:26ch}

.info__list{margin:0;display:grid;gap:.35rem}
.info__list dt{font-size:.78rem;letter-spacing:.14em;color:var(--hueso-38)}
.info__list dd{margin:0 0 1.4rem;color:var(--hueso-60);max-width:42ch}
.info__list dd:last-child{margin-bottom:0}

/* ---------- contact ---------- */
.contact{margin-top:var(--stack)}
.contact__ask{font-size:clamp(1.6rem,1.1rem + 2.6vw,3.4rem);line-height:1.15;max-width:16ch}
.contact__links{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;margin-top:2rem}
.contact__link{
  display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;
  padding-bottom:.5rem;
  color:var(--hueso);text-decoration:none;
  border-bottom:1px solid var(--hueso-38);
  transition:border-color .25s;
}
.contact__link:hover{border-color:var(--hueso)}
.contact__num{color:var(--hueso-38);font-size:.85rem;letter-spacing:.1em}

/* ---------- footer ---------- */
.foot{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:2.5rem var(--gut);border-top:1px solid var(--hueso-14);
  font-size:.78rem;letter-spacing:.12em;color:var(--hueso-38);
}
.foot img{width:2rem;height:2rem;opacity:.55}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
