:root{
  --bg:#0a0a0a;
  --bg-2:#111;
  --fg:#f5f5f5;
  --muted:#888;
  --line:rgba(255,255,255,.1);
  --accent:#fff;
  --red:#e4322b;
  --maxw:1320px;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--fg);
  font-family:'Inter',system-ui,sans-serif;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img,video{display:block;width:100%;height:100%;object-fit:cover}

/* NAV */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px clamp(20px,4vw,48px);
  backdrop-filter:blur(12px);
  background:rgba(10,10,10,.55);
  border-bottom:1px solid transparent;
  transition:border-color .4s var(--ease),background .4s var(--ease);
}
.nav.scrolled{border-bottom-color:var(--line);background:rgba(10,10,10,.85)}
.nav__logo{font-weight:800;letter-spacing:.04em;font-size:15px}
.nav__links{display:flex;gap:clamp(14px,2vw,30px)}
.nav__links a{font-size:14.5px;color:var(--muted);transition:color .25s}
.nav__links a:hover,.nav__links a.active{color:var(--fg)}
.nav__right{display:flex;align-items:center;gap:18px}
.nav__ig{font-size:13px;color:var(--muted);transition:color .25s}
.nav__ig:hover{color:var(--fg)}
.nav__burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer}
.nav__burger span{width:24px;height:2px;background:var(--fg);transition:.3s var(--ease)}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;padding:clamp(28px,6vw,80px);overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0;background:var(--bg-2);transform:scale(1.06);will-change:transform}
.hero__bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.hero__bg::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,10,10,.35) 0%,rgba(10,10,10,.55) 45%,rgba(10,10,10,.92) 100%)}
.hero__inner{position:relative;z-index:1;max-width:var(--maxw);width:100%}
.hero__title{
  font-weight:800;line-height:.86;letter-spacing:-.02em;
  font-size:clamp(56px,13vw,200px);
  display:flex;flex-direction:column;
}
.hero__title span{font-weight:300;opacity:.6}
.hero__sub{margin-top:14px;font-size:clamp(14px,1.6vw,20px);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.hero__lead{margin-top:22px;max-width:520px;font-size:clamp(14px,1.4vw,17px);line-height:1.6;color:#cfcfcf}
.hero__ctas{display:flex;flex-wrap:wrap;align-items:center;gap:16px 26px;margin-top:30px}
.hero__cta{display:inline-block;font-size:15px;font-weight:600;padding-bottom:3px;border-bottom:1px solid var(--fg);transition:opacity .3s}
.hero__cta:hover{opacity:.7}
.hero__reel{display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:600;padding:13px 24px;border-radius:999px;background:#fff;color:#0a0a0a;transition:transform .3s var(--ease),opacity .3s}
.hero__reel:hover{transform:translateY(-2px);opacity:.92}
.hero__reel-i{font-size:10px}
/* hero entrance */
@keyframes heroIn{from{opacity:0;transform:translateY(34px)}to{opacity:1;transform:none}}
.hero__inner>*{animation:heroIn .9s var(--ease) both}
.hero__title{animation-delay:.05s}
.hero__sub{animation-delay:.18s}
.hero__lead{animation-delay:.28s}
.hero__ctas{animation-delay:.38s}

/* BRANDS — marquee ticker (single row) */
.brands{border-block:1px solid var(--line);overflow:hidden;padding:20px 0}
.brands__track{display:flex;align-items:center;width:max-content;animation:marquee 50s linear infinite;will-change:transform}
.brands__track img{height:20px;width:auto;flex:0 0 auto;padding:0 clamp(22px,3.4vw,46px);opacity:.72;filter:brightness(0) invert(1)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* SECTIONS */
.section{max-width:var(--maxw);margin:0 auto;padding:clamp(60px,9vw,130px) clamp(20px,4vw,48px)}
.section__head{margin-bottom:42px}
.section__head h2{font-size:clamp(28px,4vw,52px);font-weight:700;letter-spacing:-.02em}
.section__head p{margin-top:10px;color:var(--muted);font-size:15px}

/* GRID */
.grid{display:grid;gap:clamp(10px,1.4vw,18px)}
.grid--work{grid-template-columns:repeat(2,1fr)}
.grid--people{grid-template-columns:repeat(4,1fr)}
.grid--vert{grid-template-columns:repeat(4,1fr)}

.tile{
  position:relative;overflow:hidden;border-radius:6px;background:var(--bg-2);
  cursor:pointer;
}
.tile--wide{aspect-ratio:16/9}
.tile--sq{aspect-ratio:1/1}
.tile--vert{aspect-ratio:9/16}
.tile video,.tile .ph{position:absolute;inset:0;transition:transform .7s var(--ease),filter .5s}
.tile:hover video,.tile:hover .ph{transform:scale(1.05)}
.tile__meta{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:16px 18px;
  background:linear-gradient(0deg,rgba(0,0,0,.75),transparent);
  transform:translateY(8px);opacity:0;transition:.4s var(--ease);
}
.tile:hover .tile__meta{transform:none;opacity:1}
.tile__meta h3{font-size:15px;font-weight:600}
.tile__meta span{font-size:12px;color:var(--muted)}
.tile__play{
  position:absolute;top:14px;right:14px;z-index:2;
  width:34px;height:34px;border-radius:50%;
  background:rgba(0,0,0,.45);backdrop-filter:blur(4px);
  display:grid;place-items:center;opacity:0;transition:.4s var(--ease);
}
.tile:hover .tile__play{opacity:1}
.tile__play::before{content:"";border-left:9px solid #fff;border-block:6px solid transparent;margin-left:2px}

/* animated placeholder (gif-like shimmer until real video added) */
.ph{
  background:linear-gradient(120deg,#161616,#222,#161616,#2a2a2a);
  background-size:300% 300%;
  animation:shimmer 6s ease-in-out infinite;
}
.ph--a{animation-delay:-1s}.ph--b{animation-delay:-2s}.ph--c{animation-delay:-3s}
.ph--d{animation-delay:-4s}.ph--e{animation-delay:-5s}
@keyframes shimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}

/* people tiles */
.grid--people .tile{aspect-ratio:3/4}
.grid--people .tile__name{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px;font-size:14px;font-weight:600;background:linear-gradient(0deg,rgba(0,0,0,.8),transparent)}

/* BRANDS — logo + name grid */
.archive{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.brand-cell{
  background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:16px;padding:38px 18px;min-height:152px;transition:background .35s var(--ease);
}
.brand-cell:hover{background:var(--bg-2)}
.brand-cell__logo{height:34px;width:auto;max-width:82%;object-fit:contain;opacity:.72;filter:brightness(0) invert(1);transition:opacity .3s}
.brand-cell:hover .brand-cell__logo{opacity:1}
.brand-cell__name{font-size:12px;letter-spacing:.05em;color:var(--muted);text-align:center}
@media(max-width:860px){.archive{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.archive{grid-template-columns:1fr}}

/* PEOPLE / TALENT */
.people{display:grid;grid-template-columns:1fr 1fr;gap:0 64px;border-top:1px solid var(--line)}
.people__row{display:flex;align-items:center;padding:22px 12px;border-bottom:1px solid var(--line);border-radius:8px;transition:background .4s var(--ease)}
.people__row:hover{background:var(--bg-2)}
.people__name{font-size:clamp(20px,2.6vw,32px);font-weight:500;letter-spacing:-.01em;transition:transform .4s var(--ease)}
.people__row:hover .people__name{transform:translateX(6px)}
@media(max-width:680px){.people{grid-template-columns:1fr}}

/* CONTACT */
.contact{max-width:var(--maxw);margin:0 auto;padding:clamp(48px,7vw,96px) clamp(20px,4vw,48px);display:grid;grid-template-columns:1fr auto;align-items:center;gap:clamp(30px,5vw,72px)}
.contact__video{position:relative;width:clamp(240px,26vw,360px);aspect-ratio:9/16;border-radius:8px;overflow:hidden;background:var(--bg-2)}
.contact__video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-width:760px){.contact{grid-template-columns:1fr;justify-items:start}.contact__video{width:200px;margin-top:8px}}
.contact__title{font-size:clamp(40px,8vw,110px);font-weight:800;line-height:.95;letter-spacing:-.03em}
.contact__links{margin-top:48px;display:flex;flex-wrap:wrap;gap:18px 40px}
.contact__links a{font-size:clamp(16px,2vw,22px);color:var(--muted);transition:color .25s}
.contact__links a:hover{color:var(--fg)}

/* FOOTER */
.footer{display:flex;justify-content:space-between;padding:30px clamp(20px,4vw,48px);border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.footer a:hover{color:var(--fg)}

/* LIGHTBOX */
.lightbox{
  position:fixed;inset:0;z-index:200;display:none;
  background:rgba(0,0,0,.92);backdrop-filter:blur(6px);
  align-items:center;justify-content:center;padding:4vmin;
}
.lightbox.open{display:flex;animation:fade .25s ease}
.lightbox video{max-width:min(92vw,520px);max-height:90vh;width:auto;height:auto;border-radius:8px}
.lightbox__x{
  position:absolute;top:20px;right:24px;font-size:26px;line-height:1;
  color:#fff;background:none;border:0;cursor:pointer;opacity:.8;transition:.2s;
}
.lightbox__x:hover{opacity:1;transform:scale(1.1)}
@keyframes fade{from{opacity:0}to{opacity:1}}

/* reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* RESPONSIVE */
@media(max-width:860px){
  .nav__links{
    position:fixed;inset:0 0 0 auto;width:72%;max-width:320px;
    flex-direction:column;justify-content:center;gap:26px;padding:40px;
    background:var(--bg-2);transform:translateX(100%);transition:transform .45s var(--ease);
  }
  .nav__links.open{transform:none}
  .nav__links a{font-size:20px;color:var(--fg)}
  .nav__burger{display:flex}
  .nav__ig{display:none}
  .grid--people,.grid--vert{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .grid--work{grid-template-columns:1fr}
}

/* ============ CREATIVE PASS ============ */

/* film grain overlay */
.grain{
  position:fixed;inset:-50%;z-index:9990;pointer-events:none;
  opacity:.055;mix-blend-mode:overlay;will-change:transform;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1s steps(3) 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(2%,3%)}
}

/* accent red micro-touches */
.tile__play{background:var(--red);backdrop-filter:none}
.tile__play::before{border-left-color:#fff}
.nav__links a{position:relative}
.nav__links a::after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:var(--red);transition:right .35s var(--ease)}
.nav__links a:hover::after,.nav__links a.active::after{right:0}
.nav__links a.active{color:var(--fg)}
.hero__reel:hover{background:var(--red);color:#fff}
.contact__links a{position:relative}

/* custom cursor (pointer devices only) */
@media (hover:hover) and (pointer:fine){
  html.has-cursor,html.has-cursor body,
  html.has-cursor a,html.has-cursor button,html.has-cursor .tile,html.has-cursor .brand-cell,html.has-cursor [data-lightbox],html.has-cursor .nav__burger{cursor:none}
  html.has-cursor .lightbox video{cursor:auto}
  .cur{position:fixed;top:0;left:0;width:30px;height:30px;border:1px solid rgba(245,245,245,.55);border-radius:50%;
    transform:translate(-50%,-50%);pointer-events:none;z-index:9999;mix-blend-mode:difference;
    transition:width .3s var(--ease),height .3s var(--ease),background .3s var(--ease),border-color .3s var(--ease);will-change:transform}
  .cur--hot{width:62px;height:62px;background:rgba(245,245,245,.12);border-color:transparent}
  .cur__dot{position:fixed;top:0;left:0;width:5px;height:5px;border-radius:50%;background:var(--red);
    transform:translate(-50%,-50%);pointer-events:none;z-index:9999}
}

@media (prefers-reduced-motion:reduce){
  .grain{animation:none}
  .cur,.cur__dot{display:none!important}
  body{cursor:auto}
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
  .brands__track{animation:none}
}

/* ============ SUB-PAGES (project + about) ============ */
.nav--sub{justify-content:space-between}
.nav__back{font-size:14px;color:var(--muted);transition:color .25s}
.nav__back:hover{color:var(--fg)}

/* project page */
.project{max-width:var(--maxw);margin:0 auto;min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:center;padding:120px clamp(20px,4vw,48px) 80px}
.project__media{position:relative;width:100%;max-width:400px;justify-self:center;aspect-ratio:9/16;border-radius:10px;overflow:hidden;background:var(--bg-2)}
.project__media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.project__cat{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.project__title{font-size:clamp(34px,5vw,64px);font-weight:800;letter-spacing:-.02em;line-height:1}
.project__desc{margin-top:24px;max-width:46ch;font-size:clamp(15px,1.5vw,18px);line-height:1.65;color:#cfcfcf}
.project__back2{display:inline-block;margin-top:36px;font-size:14px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:2px;transition:color .25s,border-color .25s}
.project__back2:hover{color:var(--fg);border-color:var(--fg)}
@media(max-width:820px){.project{grid-template-columns:1fr;min-height:auto;padding-top:96px;gap:36px}.project__media{max-width:300px}}

/* about page */
.about{max-width:920px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:140px clamp(20px,4vw,48px) 90px}
.about__eyebrow{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:24px}
.about__title{font-size:clamp(32px,6vw,72px);font-weight:800;letter-spacing:-.03em;line-height:1.04;max-width:16ch}
.about__body{margin-top:44px;display:flex;flex-direction:column;gap:22px;max-width:62ch}
.about__body p{font-size:clamp(16px,1.6vw,20px);line-height:1.7;color:#cfcfcf}
.about__contact{margin-top:46px;display:flex;flex-wrap:wrap;gap:16px 36px}
.about__contact a{font-size:clamp(16px,2vw,20px);color:var(--muted);transition:color .25s}
.about__contact a:hover{color:var(--fg)}
