/* DOTR — Dusk of the Raptor. Monochrome, minimal. */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

:root{
  --black:#000;
  --paper:#efefef;
  --dim:#7a7a7a;
  --faint:#333;
  --line:rgba(255,255,255,.10);
  --sans:'Archivo',-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:'Space Mono',ui-monospace,monospace;
  --ease:cubic-bezier(.16,1,.3,1);
}

html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{background:var(--black);color:var(--paper);font-family:var(--sans);line-height:1.5;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}

.grain{
  position:fixed;inset:-50%;z-index:9999;pointer-events:none;opacity:.10;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 800ms steps(2) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}
  50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-2%)}100%{transform:translate(0,0)}
}

/* --- NAV --- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 28px;mix-blend-mode:difference;
}
.nav__mark{font-weight:900;font-size:.95rem;letter-spacing:.16em}
.nav__links{display:flex;gap:24px;list-style:none}
.nav__links a{font-family:var(--mono);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;opacity:.65;transition:opacity .3s}
.nav__links a:hover{opacity:1}

/* --- HERO --- */
.hero{position:relative;height:100svh;min-height:520px;display:flex;align-items:flex-end;overflow:hidden}
.hero__media{position:absolute;inset:0;z-index:0}
.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.hero__bw{filter:grayscale(1) contrast(1.12) brightness(.6);transform:scale(1.05);transition:transform 2.4s var(--ease)}
.hero.in .hero__bw{transform:scale(1)}
/* the band from the original frame: a full-colour copy clipped to a strip */
.hero__band{
  clip-path:inset(46% 0 38% 0);
  filter:saturate(1.25) contrast(1.04) brightness(.92);
  transform:scale(1.05);transition:transform 2.4s var(--ease);
}
.hero.in .hero__band{transform:scale(1)}
.hero__media::after{
  content:'';position:absolute;left:0;right:0;top:46%;height:16%;z-index:1;pointer-events:none;
  border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);
}
.hero__veil{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(to bottom,rgba(0,0,0,.5) 0%,transparent 32%,rgba(0,0,0,.4) 66%,#000 100%);
}
.wordmark{
  position:relative;z-index:2;display:block;padding:0 24px 48px;
  font-size:clamp(4rem,21vw,16rem);font-weight:900;letter-spacing:-.02em;line-height:.82;
}
.wordmark::before,.wordmark::after{content:attr(data-text);position:absolute;inset:0;padding:inherit;pointer-events:none}
.wordmark::before{color:#ff2ea6;mix-blend-mode:screen;animation:s1 9s infinite steps(1)}
.wordmark::after{color:#00e5ff;mix-blend-mode:screen;animation:s2 9s infinite steps(1)}
@keyframes s1{0%,95%{transform:translate(0,0);opacity:0}96%{transform:translate(-4px,2px);opacity:.85}98%{transform:translate(2px,-2px);opacity:.85}99%,100%{opacity:0}}
@keyframes s2{0%,95%{transform:translate(0,0);opacity:0}96%{transform:translate(4px,-2px);opacity:.85}98%{transform:translate(-2px,2px);opacity:.85}99%,100%{opacity:0}}

/* --- SECTIONS --- */
.sec{padding:88px 24px}
.label{
  display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--dim);margin-bottom:20px;
}

/* --- PHOTOS --- */
.shots{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
.shot{position:relative;overflow:hidden;aspect-ratio:4/5;cursor:pointer;background:#0c0c0c}
.shot img{
  width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.06) brightness(.82);
  transition:filter .5s var(--ease),transform .8s var(--ease);
}
.shot:hover img{filter:none;transform:scale(1.03)}

/* --- RELEASES --- */
.rels{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.rel__cover{
  position:relative;display:block;width:100%;aspect-ratio:1;padding:0;border:0;cursor:pointer;
  background:repeating-linear-gradient(45deg,#0d0d0d 0 9px,#121212 9px 18px);overflow:hidden;
}
.rel__cover img{
  position:relative;z-index:1;width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.04) brightness(.8);
  transition:filter .45s var(--ease),transform .7s var(--ease);
}
.rel__cover:hover img,.rel.on .rel__cover img{filter:none;transform:scale(1.04)}
.rel__cover::before{
  content:attr(data-fallback);position:absolute;inset:0;z-index:0;
  display:flex;align-items:center;justify-content:center;text-align:center;padding:12px;
  color:var(--faint);font-family:var(--mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;
}
.rel__play{
  position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%) scale(.9);
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.7);
  background:rgba(0,0,0,.35);backdrop-filter:blur(3px);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:.72rem;padding-left:2px;
  opacity:0;transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.rel__cover:hover .rel__play,.rel.on .rel__play{opacity:1;transform:translate(-50%,-50%) scale(1)}
.rel__title{margin-top:10px;font-size:.82rem;font-weight:500;letter-spacing:.02em;color:var(--dim)}
.rel.on .rel__title{color:var(--paper)}

/* --- PLAYER --- */
.player{margin-top:14px;border:1px solid var(--line)}
.player__bar{
  display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;
  border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);
}
.player__x{background:none;border:0;color:var(--paper);font-size:1.3rem;line-height:1;cursor:pointer;padding:0 4px}
.player__frame{position:relative;aspect-ratio:16/9;background:#000}
.player__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* --- FOOTER --- */
.foot{
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:26px 24px;border-top:1px solid var(--line);
  font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;color:var(--dim);
}
.foot a:hover{color:var(--paper)}

/* --- LIGHTBOX --- */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.96);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s var(--ease)}
.lightbox.on{opacity:1;pointer-events:auto}
.lightbox img{max-width:92vw;max-height:90vh;object-fit:contain}
.lightbox__x{position:absolute;top:18px;right:24px;background:none;border:0;color:var(--paper);font-size:2rem;line-height:1;cursor:pointer}

/* --- REVEAL --- */
[data-rise]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-rise].on{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .grain,.wordmark::before,.wordmark::after{animation:none}
  [data-rise]{opacity:1;transform:none;transition:none}
}

@media (max-width:640px){
  .sec{padding:64px 18px}
  .nav{padding:16px 18px}
  .rels{grid-template-columns:1fr 1fr}
  .shots{grid-template-columns:1fr}
  .wordmark{padding:0 18px 36px}
}
