/* ---------- Z Lab Design — shared shell ---------- */
:root{
  --ink:#0a0b0d;
  --panel:#141518;
  --panel-2:#1b1d21;
  --line:#2c2e33;
  --paper:#ece7dc;
  --paper-dim:#a9a49a;
  --accent:#4dd4e8;
  --accent-dim:#4dd4e866;
  --wa:#25d366;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:'Inter',sans-serif;
  overflow-x:hidden;
  cursor:none;
}
::selection{background:var(--accent);color:#0a0b0d;}
a{color:inherit;text-decoration:none;}
img,video{display:block;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

/* ---------- custom cursor ---------- */
.cursor{
  position:fixed; top:0; left:0; width:16px; height:16px;
  border:1px solid var(--accent); border-radius:50%;
  pointer-events:none; z-index:9999; mix-blend-mode:difference;
  transform:translate(-50%,-50%);
  transition:width .25s ease, height .25s ease, background .25s ease;
}
.cursor.big{width:48px;height:48px;background:var(--accent-dim);}
@media (hover:none), (pointer:coarse){ .cursor{display:none;} body{cursor:auto;} }

.grain{
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- top navbar ---------- */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:500;
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:14px 4vw; border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, rgba(10,11,13,.92), rgba(10,11,13,.7));
  backdrop-filter:blur(8px);
}
.brand{display:flex; align-items:center;}
.brand img{height:34px; width:auto;}
@media (max-width:900px){ .brand img{height:30px;} }
.navlinks{display:flex; gap:30px;}
.navlinks a{
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--paper-dim); padding:6px 0; border-bottom:1px solid transparent; transition:color .3s, border-color .3s;
  white-space:nowrap;
}
.navlinks a:hover, .navlinks a.active{color:var(--paper); border-color:var(--accent);}
.nav-right{display:flex; align-items:center; gap:18px;}
.nav-phone{font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.08em; color:var(--paper-dim);}
.nav-phone:hover{color:var(--accent);}
.btn{
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase;
  padding:12px 20px; border:1px solid var(--line); border-radius:3px; transition:all .3s;
  display:inline-flex; align-items:center; gap:8px; background:none; color:var(--paper);
}
.btn.solid{background:var(--paper); color:var(--ink); border-color:var(--paper); font-weight:600;}
.btn.solid:hover{background:#fff;}
.btn.ghost:hover{border-color:var(--paper); background:rgba(255,255,255,.04);}
.btn.cyan{background:var(--accent); color:var(--ink); border-color:var(--accent); font-weight:600;}
.btn.cyan:hover{background:#7ae2f2;}
@media (max-width:900px){
  .topbar{flex-wrap:wrap; padding:8px 5vw 0; gap:8px;}
  .navlinks{order:3; width:100%; justify-content:flex-start; gap:18px; overflow-x:auto; padding-bottom:2px;}
  .navlinks a{padding:4px 0 8px;}
  .nav-phone{display:none;}
  .btn{padding:9px 14px;}
}

section{
  min-height:100vh; position:relative; display:flex; flex-direction:column;
  justify-content:center; padding:140px 6vw 100px; border-bottom:1px solid var(--line);
  overflow:hidden;
}
.eyebrow{
  font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.3em;
  color:var(--accent); text-transform:uppercase; margin-bottom:18px;
  display:flex; align-items:center; gap:10px;
}
.eyebrow::before{content:'';width:24px;height:1px;background:var(--accent);}

h1,h2,h3{font-family:'Archivo',sans-serif; font-weight:800; line-height:1.02; letter-spacing:-.01em;}

.reveal{opacity:1; transform:none; transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1);}
html.js .reveal{opacity:0; transform:translateY(28px);}
html.js .reveal.in{opacity:1; transform:translateY(0);}
.r1{transition-delay:.05s;} .r2{transition-delay:.15s;} .r3{transition-delay:.25s;} .r4{transition-delay:.35s;}

/* ---------- MARQUEE ---------- */
.marquee{
  border-bottom:1px solid var(--line); background:var(--panel); overflow:hidden; white-space:nowrap;
  padding:14px 0;
}
.marquee div{display:inline-block; animation:marquee 26s linear infinite;}
.marquee span{
  font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.25em; color:var(--paper-dim);
  text-transform:uppercase; padding:0 22px; border-right:1px solid var(--line);
}
.marquee span.hi{color:var(--accent);}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- reel tile (shared by gallery + work page) ---------- */
.reel{
  position:relative; aspect-ratio:9/16; overflow:hidden; border-radius:8px;
  background:var(--panel) linear-gradient(160deg,#1b1d21,#101115);
  border:1px solid var(--line); cursor:none;
  transition:transform .5s cubic-bezier(.2,.7,.2,1), border-color .4s;
}
.reel:hover{transform:translateY(-6px); border-color:#3d4046;}
.reel video, .reel img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .8s cubic-bezier(.2,.7,.2,1), filter .5s;
  filter:brightness(.92);
}
.reel:hover video, .reel:hover img{transform:scale(1.05); filter:brightness(1);}
/* letterboxed source frame — crop the black pillars away */
.reel img.pillar{width:282.7%; max-width:none; margin-left:-91.3%;}
.reel-tag{
  position:absolute; top:12px; left:12px; z-index:3;
  font-family:'JetBrains Mono',monospace; font-size:9px; letter-spacing:.16em; text-transform:uppercase;
  background:rgba(5,6,8,.7); backdrop-filter:blur(4px); border:1px solid var(--line);
  border-radius:100px; padding:6px 11px; color:var(--accent);
}
.reel-cap{
  position:absolute; left:0; right:0; bottom:0; z-index:3; padding:34px 16px 16px;
  background:linear-gradient(0deg, rgba(0,0,0,.85), transparent);
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase;
  transform:translateY(6px); opacity:0; transition:all .35s;
}
.reel:hover .reel-cap{opacity:1; transform:translateY(0);}
.reel-play{
  position:absolute; inset:0; z-index:2; display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .35s;
}
.reel:hover .reel-play{opacity:1;}
.reel-play span{
  width:54px; height:54px; border-radius:50%; border:1px solid var(--accent);
  background:rgba(10,11,13,.55); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; color:var(--accent); font-size:14px; padding-left:3px;
}
@media (hover:none),(pointer:coarse){ .reel-cap{opacity:1; transform:none;} }

.reel-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
@media (max-width:1100px){ .reel-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:760px){ .reel-grid{grid-template-columns:repeat(2,1fr); gap:12px;} }

/* ---------- lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:900; background:rgba(5,6,8,.92); backdrop-filter:blur(10px);
  display:flex; align-items:center; justify-content:center; padding:5vh 5vw;
  opacity:0; pointer-events:none; transition:opacity .35s ease;
}
.lightbox.open{opacity:1; pointer-events:auto;}
.lightbox video{
  max-height:90vh; max-width:100%; border-radius:10px; border:1px solid var(--line);
  box-shadow:0 30px 90px rgba(0,0,0,.7);
}
.lb-close{
  position:absolute; top:20px; right:26px; width:40px; height:40px; border:none; background:none;
  color:var(--paper-dim); font-size:24px; line-height:1; transition:color .3s, transform .3s;
}
.lb-close:hover{color:var(--paper); transform:rotate(90deg);}

.foot{
  border-top:1px solid var(--line); padding:40px 6vw 30px; text-align:center;
  font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.18em; color:var(--paper-dim); text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:22px;
}
.foot-tag{
  font-family:'Archivo',sans-serif; font-weight:800; font-size:clamp(14px,2vw,19px);
  letter-spacing:.16em; color:var(--paper);
}
.foot-tag em{font-style:normal; color:var(--accent); padding:0 6px;}
.socials{display:flex; gap:14px;}
.socials a{
  width:40px; height:40px; border:1px solid var(--line); border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:var(--paper-dim);
  transition:color .3s, border-color .3s, transform .3s;
}
.socials a:hover{color:var(--accent); border-color:var(--accent); transform:translateY(-3px);}
.socials svg{width:17px; height:17px;}
.foot-legal{display:flex; gap:8px 20px; flex-wrap:wrap; justify-content:center;}
.progress{position:fixed; top:0; left:0; height:2px; width:0; background:var(--accent); z-index:700;}
