: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 ---------- */
.work{padding:var(--stack) var(--gut) 0;max-width:82rem;margin-inline:auto}

.piece + .piece{margin-top:var(--stack)}

.piece__frame{position:relative;aspect-ratio:16/9;background:#0E0D0B;border:1px solid var(--hueso-14)}
.piece__frame iframe,.piece__frame video{position:absolute;inset:0;width:100%;height:100%;border:0}

.piece__text{
  margin-top:1.5rem;
  display:grid;gap:.5rem 3rem;
  grid-template-columns:minmax(0,1fr);
}
.piece__text h3{font-size:clamp(1.35rem,1.1rem + 1vw,1.9rem);letter-spacing:.05em}
.piece__meta{
  display:flex;flex-wrap:wrap;gap:.4rem 1.25rem;
  font-size:.78rem;letter-spacing:.14em;color:var(--hueso-60);
}
.piece__len{color:var(--hueso-38)}
.piece__body{max-width:46ch;color:var(--hueso-60);margin-top:.4rem}


@media (min-width:56rem){
  .piece__text{grid-template-columns:1fr 1fr;align-items:start}
  .piece__body{grid-column:2;grid-row:1 / span 2;margin-top:0}
}

/* ---------- 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__link{
  display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.5rem 1.25rem;
  margin-top:2rem;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}
}
