:root{
  --dark:#0e0e0e;
  --panel:#171717;
  --cream:#f5f2e8;
  --accent:#d6ff40;
  --gray:#99998f;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--dark);
  color:var(--cream);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

/* ===== NAV ===== */
nav{
  display:flex;justify-content:space-between;align-items:center;
  padding:24px 64px;position:sticky;top:0;z-index:50;
  background:rgba(14,14,14,.85);backdrop-filter:blur(12px);
}
.logo{font-weight:800;font-size:22px;letter-spacing:.04em}
.nav-links{display:flex;gap:28px;flex-wrap:wrap}
.nav-links a{font-weight:500;font-size:15px;transition:color .2s}
.nav-links a:hover,.nav-links a.active{color:var(--accent)}

/* ===== HERO ===== */
.hero{padding:96px 64px}
.kicker{
  color:var(--accent);font-weight:500;font-size:18px;
  letter-spacing:.5em;text-transform:uppercase;margin-bottom:32px;
}
h1{
  font-weight:800;font-size:clamp(56px,9vw,120px);
  line-height:.96;letter-spacing:-.02em;margin-bottom:32px;
}
.hero p{
  color:var(--gray);font-size:20px;line-height:1.5;max-width:640px;margin-bottom:40px;
}
.page-hero{padding:72px 64px 40px}
.page-hero h1{font-size:clamp(44px,7vw,88px)}
.page-hero p{color:var(--gray);font-size:19px;line-height:1.55;max-width:680px}
.btn{
  display:inline-block;font-weight:700;font-size:16px;
  padding:18px 32px;border-radius:999px;transition:transform .2s,background .2s,color .2s;
}
.btn-solid{background:var(--accent);color:var(--dark)}
.btn-solid:hover{transform:scale(1.05)}
.btn-outline{border:2px solid var(--accent);color:var(--accent)}
.btn-outline:hover{background:var(--accent);color:var(--dark)}

/* ===== MARQUEE ===== */
.marquee{
  background:var(--accent);color:var(--dark);
  overflow:hidden;white-space:nowrap;padding:20px 0;
}
.marquee-track{
  display:inline-block;font-weight:700;font-size:20px;letter-spacing:.08em;
  animation:scroll 22s linear infinite;
}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ===== SECTIONS ===== */
.section{padding:96px 64px}
.section-tight{padding:48px 64px}
.section-head{
  display:flex;justify-content:space-between;align-items:center;margin-bottom:48px;flex-wrap:wrap;gap:8px;
}
h2{font-weight:800;font-size:clamp(36px,5vw,56px);letter-spacing:-.01em}
.section-head span{color:var(--gray);font-weight:500;font-size:18px}

/* ===== CARDS GRID ===== */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.card{
  background:var(--panel);border-radius:20px;overflow:hidden;
  transition:transform .25s ease;cursor:pointer;
}
.card:hover{transform:translateY(-6px)}
.thumb{aspect-ratio:8/5;overflow:hidden;background:#111}
.thumb-sq{aspect-ratio:1/1;overflow:hidden;background:#111}
.thumb img,.thumb-sq img{
  width:100%;height:100%;object-fit:cover;transition:transform .35s ease;
}
.card:hover .thumb img,.card:hover .thumb-sq img{transform:scale(1.06)}
.meta{padding:22px 26px 26px}
.meta h3{font-weight:700;font-size:22px;margin-bottom:6px}
.meta p{color:var(--gray);font-size:15px}

/* ===== MASONRY ===== */
.masonry{columns:3;column-gap:24px}
.masonry a{
  display:block;margin-bottom:24px;border-radius:14px;overflow:hidden;
  break-inside:avoid;background:var(--panel);
}
.masonry img{width:100%;transition:transform .3s ease,opacity .3s}
.masonry a:hover img{transform:scale(1.04);opacity:.9}

/* ===== LIGHTBOX ===== */
.lightbox{
  position:fixed;inset:0;background:rgba(10,10,10,.94);z-index:100;
  display:none;align-items:center;justify-content:center;padding:32px;
}
.lightbox.open{display:flex}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:10px}
.lightbox span{
  position:absolute;top:22px;right:34px;font-size:40px;color:var(--cream);
  cursor:pointer;line-height:1;
}

/* ===== ABOUT / RESUME ===== */
.about{
  background:var(--panel);padding:96px 64px;
  display:grid;grid-template-columns:1.4fr 1fr;gap:80px;
}
.about p{color:var(--gray);font-size:18px;line-height:1.6;margin-top:24px}
.stats{display:flex;flex-direction:column;gap:36px}
.stat b{display:block;font-weight:800;font-size:52px;color:var(--accent)}
.stat span{color:var(--gray);font-size:16px}
.timeline{margin-top:40px;border-left:2px solid #2a2a2a;padding-left:28px;display:flex;flex-direction:column;gap:28px}
.tl-item h4{font-weight:700;font-size:18px}
.tl-item .tl-when{color:var(--accent);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.tl-item p{color:var(--gray);font-size:15px;line-height:1.5;margin-top:4px}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.chips span{
  border:1px solid #333;border-radius:999px;padding:8px 16px;
  font-size:14px;color:var(--gray);
}

/* ===== FILM ===== */
.feature{
  background:var(--panel);border-radius:24px;overflow:hidden;margin-bottom:48px;
}
.feature-body{padding:36px 40px}
.feature-body h3{font-weight:800;font-size:30px;margin-bottom:10px}
.feature-body .credit{color:var(--accent);font-weight:600;font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.feature-body p{color:var(--gray);font-size:17px;line-height:1.6;margin-top:14px;max-width:760px}
.stills{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.stills img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9}
video{width:100%;border-radius:14px;background:#000}
.vwrap{position:relative;padding-top:56.25%;background:#000}
.vwrap-sq{position:relative;padding-top:100%;background:#000}
.vwrap iframe,.vwrap-sq iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ===== CONTACT ===== */
.contact{padding:110px 64px 60px}
.contact h2{font-size:clamp(48px,7vw,88px);line-height:1;letter-spacing:-.02em;margin-bottom:32px}
.legal{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  margin-top:80px;color:var(--gray);font-size:14px;
}
.legal a:hover{color:var(--accent)}

/* reveal on scroll (only when JS is active) */
body.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
body.js .reveal.in{opacity:1;transform:none}

@media(max-width:900px){
  nav,.hero,.page-hero,.section,.section-tight,.about,.contact{padding-left:24px;padding-right:24px}
  .grid,.grid-3{grid-template-columns:1fr}
  .masonry{columns:2}
  .about{grid-template-columns:1fr;gap:48px}
  .stills{grid-template-columns:repeat(2,1fr)}
  .kicker{letter-spacing:.25em;font-size:14px}
}
@media(max-width:560px){
  .masonry{columns:1}
}
