*{box-sizing:border-box;margin:0;padding:0}
:root{--ink:#111;--mute:#8a8a8a;--bg:#fff;--pad:clamp(16px,2.4vw,32px)}
html{-webkit-text-size-adjust:100%}
body{font-family:"Inter Tight","Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img,video{display:block;width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:var(--pad);font-weight:500;letter-spacing:-.01em;color:#fff;mix-blend-mode:difference}
.nav nav{display:flex;gap:clamp(16px,2.5vw,36px)}
.nav a:hover{opacity:.6}

/* hero */
.hero{position:relative;height:100svh;min-height:520px;background:#000;overflow:hidden}
.hero-v{position:absolute;inset:0;height:100%;object-fit:cover}
.hero-txt{position:absolute;left:var(--pad);right:var(--pad);bottom:var(--pad);display:flex;justify-content:space-between;align-items:flex-end;gap:24px;color:#fff}
.hero h1{font-size:clamp(28px,4.6vw,68px);font-weight:500;line-height:1;letter-spacing:-.035em}
.reel-btn{border:1px solid rgba(255,255,255,.7);border-radius:999px;padding:10px 20px;font-weight:500;white-space:nowrap;transition:.2s}
.reel-btn:hover{background:#fff;color:#000}

/* sections */
.sec-head{display:flex;justify-content:space-between;align-items:baseline;padding:clamp(56px,8vw,120px) var(--pad) 20px}
h2{font-size:15px;font-weight:500;letter-spacing:-.01em}
.sec-head span{color:var(--mute)}

/* grid */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--pad) calc(var(--pad)*.6);padding:0 var(--pad)}
.tile .frame{position:relative;aspect-ratio:9/16;background:#eee;overflow:hidden}
.tile img,.tile video{position:absolute;inset:0;height:100%;object-fit:cover;transition:opacity .35s, transform .8s}
.tile video{opacity:0}
.tile.playing video{opacity:1}
.tile:hover img{transform:scale(1.02)}
.cap{display:grid;grid-template-columns:1fr auto;padding-top:10px;line-height:1.3}
.cap .c{font-weight:500}
.cap .t{grid-column:1;color:var(--mute)}
.cap .y{grid-column:2;grid-row:1;color:var(--mute)}

/* clients */
.clients{padding:clamp(80px,12vw,180px) var(--pad) 0}
.clients ul{list-style:none;margin-top:20px;font-size:clamp(30px,5.4vw,84px);font-weight:500;line-height:1.02;letter-spacing:-.04em}
.clients li{display:inline}
.clients li:not(:last-child)::after{content:", ";color:var(--mute)}

/* footer */
.foot{padding:clamp(100px,14vw,200px) var(--pad) var(--pad)}
.cta{display:block;font-size:clamp(40px,9vw,148px);font-weight:500;line-height:.95;letter-spacing:-.05em;transition:opacity .2s}
.cta:hover{opacity:.5}
.foot-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:clamp(40px,6vw,80px);padding-top:16px;border-top:1px solid #e6e6e6;color:var(--mute)}
.foot-row .links{display:flex;gap:20px}
.foot-row a:hover{color:var(--ink)}

/* inner pages */
body:not([data-page=home]) main{padding-top:calc(var(--pad)*4)}

.page-head,.proj-head{padding:clamp(40px,6vw,90px) var(--pad) clamp(30px,4vw,60px)}
.page-head h1,.proj-head h1{font-size:clamp(48px,10vw,160px);font-weight:500;line-height:.9;letter-spacing:-.055em}
.kicker{color:var(--mute);font-weight:500;margin-bottom:10px}
.meta{display:flex;gap:48px;margin-top:28px}
.meta dt{color:var(--mute)}
.meta dd{font-weight:500}

.proj-media{display:flex;justify-content:center;gap:var(--pad);padding:0 var(--pad);background:#000;padding:clamp(24px,4vw,64px) var(--pad)}
.proj-media video.tall{width:auto;max-width:100%;height:min(86svh,1100px);aspect-ratio:9/16;background:#111}
.proj-media video.wide{max-width:1500px;aspect-ratio:16/9;background:#111}
.proj-media.multi video.tall{height:min(72svh,900px)}

.stills{columns:3;column-gap:calc(var(--pad)*.6);padding:var(--pad) var(--pad) 0}
.stills img{margin-bottom:calc(var(--pad)*.6);break-inside:avoid;background:#f1f1f1}
.pset{margin-bottom:clamp(40px,6vw,90px)}
.pset h2{padding:0 var(--pad)}

.next{display:block;padding:clamp(80px,10vw,150px) var(--pad) 0}
.next span{display:block;color:var(--mute);margin-bottom:8px}
.next strong{font-size:clamp(32px,6vw,96px);font-weight:500;line-height:.95;letter-spacing:-.045em;transition:opacity .2s}
.next:hover strong{opacity:.5}

.about{display:grid;grid-template-columns:1fr 1fr;gap:var(--pad);padding:0 var(--pad);max-width:1600px}
.about .lede{grid-column:1/-1;font-size:clamp(24px,3.4vw,52px);font-weight:500;line-height:1.08;letter-spacing:-.035em;max-width:36ch}
.about p{max-width:52ch}
.contact{grid-column:1/-1;margin-top:clamp(40px,6vw,90px)}
.contact ul{list-style:none;margin-top:12px;font-size:clamp(24px,3vw,44px);font-weight:500;letter-spacing:-.03em;line-height:1.15}
.contact a:hover{opacity:.5}
.contact p{color:var(--mute);margin-top:6px}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:50;background:#000;display:flex;align-items:center;justify-content:center}
.lightbox[hidden]{display:none}
.lightbox video{max-height:100svh;max-width:100vw;width:auto}
.lb-close{position:absolute;top:var(--pad);right:var(--pad);color:#fff;font-weight:500;z-index:2}

@media (max-width:900px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .stills{columns:2}
  .about{grid-template-columns:1fr}
  .hero-txt{flex-direction:column;align-items:flex-start}
}
@media (max-width:520px){
  .stills{columns:1}
  .meta{gap:28px}
}
/* feature */
.feature{padding:clamp(56px,8vw,120px) var(--pad) 0}
.feature .kicker{margin-bottom:6px}
.feature h2.big{font-size:clamp(36px,6.5vw,110px);font-weight:500;line-height:.92;letter-spacing:-.05em;margin-bottom:18px}
.feature .note{font-weight:500;margin-bottom:24px}
.feature .blurb{max-width:60ch;color:var(--mute);margin-top:18px}
.yt{position:relative;aspect-ratio:16/9;background:#000;width:100%}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.credit{color:var(--mute);margin-top:10px;font-weight:500}
.yt-list{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--pad);padding:clamp(24px,4vw,64px) var(--pad);background:#000}
@media (max-width:900px){.yt-list{grid-template-columns:1fr}}
/* logo marquee */
.marquee{overflow:hidden;margin-top:28px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.track{display:flex;align-items:center;gap:clamp(48px,6vw,96px);width:max-content;animation:scroll 40s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.track img{height:clamp(28px,3.4vw,44px);width:auto;object-fit:contain;filter:grayscale(1) brightness(0)}
.track img.inv{filter:grayscale(1) invert(1) brightness(0)}
.track span{font-size:clamp(22px,2.6vw,36px);font-weight:600;letter-spacing:-.03em;white-space:nowrap}
@keyframes scroll{to{transform:translateX(-50%)}}
/* contact form */
.cform{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin:28px 0 36px;max-width:820px}
.cform label{display:flex;flex-direction:column;gap:6px}
.cform label.full{grid-column:1/-1}
.cform span{color:var(--mute);font-size:13px}
.cform input,.cform textarea{font:inherit;font-size:17px;color:var(--ink);background:transparent;border:0;border-bottom:1px solid #cfcfcf;padding:8px 0;border-radius:0;outline:none;resize:vertical}
.cform input:focus,.cform textarea:focus{border-bottom-color:var(--ink)}
.cform button{justify-self:start;background:var(--ink);color:#fff;border-radius:999px;padding:12px 26px;font-weight:500;transition:opacity .2s}
.cform button:hover{opacity:.8}.cform button:disabled{opacity:.4;cursor:default}
.cform-status{grid-column:1/-1;color:var(--ink);min-height:1.4em}
@media (max-width:600px){.cform{grid-template-columns:1fr}}
