:root{--bg:#f7f6f3;--panel:#ffffff;--ink:#22211e;--muted:#6d685f;--accent:#88c335;--accent-ink:#0f1503;--line:#e6e3dc;--dark:#0e0f11}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font:16.5px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);padding-top:64px}
body.no-scroll{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent)}
h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.08;letter-spacing:-.02em;font-weight:800;color:#161613}
h2{font-size:clamp(1.3rem,2.6vw,1.85rem);margin:2.8rem 0 .8rem;letter-spacing:-.01em;color:#161613;position:relative;padding-bottom:.45rem}
h2::after{content:"";position:absolute;left:0;bottom:0;width:44px;height:3px;background:var(--accent);border-radius:2px}
h3{color:#1b1b18}
p{margin:.75rem 0}
::selection{background:var(--accent);color:var(--accent-ink)}
/* header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 5vw;background:rgba(13,14,16,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.site-header img{height:38px;width:auto}
.nav{display:flex;gap:1.7rem;align-items:center}
.nav a{color:#d6d3cc;text-decoration:none;font-size:.8rem;text-transform:uppercase;letter-spacing:.14em;font-weight:600;transition:color .2s}
.nav a:hover{color:#fff}
.nav-cta{border:1px solid var(--accent);color:var(--accent)!important;padding:.45rem 1rem;border-radius:99px;transition:all .2s}
.nav-cta:hover{background:var(--accent);color:var(--accent-ink)!important}
.nav-toggle{display:none;background:none;border:0;color:#fff;font-size:1.6rem;cursor:pointer}
main{min-height:60vh}
.wrap{max-width:1140px;margin:0 auto;padding:2.6rem 5vw 3.4rem}
.lead{font-size:1.13rem;max-width:66ch;color:#403e38}
.crumbs{font-size:.8rem;color:var(--muted);margin-bottom:1.1rem;text-transform:uppercase;letter-spacing:.1em}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--accent)}
.note{background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent);padding:1rem 1.2rem;border-radius:0 10px 10px 0;margin:1.5rem 0;color:#44423c}
/* hero */
.hero{position:relative;margin-top:-64px;background:#000}
.hero img{width:100%;height:min(86vh,760px);min-height:520px;object-fit:cover;opacity:.9}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,14,16,.55) 0%,rgba(13,14,16,0) 30%,rgba(13,14,16,.15) 55%,rgba(13,14,16,.92) 100%)}
.hero-copy h1{color:#fff}
.hero-copy{position:absolute;inset:auto 0 0 0;z-index:2;padding:0 5vw 4.2rem;max-width:980px}
.hero-copy p{max-width:56ch;font-size:1.15rem;color:#e6e3dc;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.btn{display:inline-block;background:var(--accent);color:var(--accent-ink)!important;font-size:1.02rem;text-decoration:none;font-weight:700;padding:.8rem 1.6rem;border-radius:99px;margin-top:1rem;letter-spacing:.02em;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(136,195,53,.4)}
/* tile grid */
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-top:1.4rem}
.grid a{position:relative;display:block;overflow:hidden;border-radius:14px;background:var(--panel);border:1px solid var(--line);transition:transform .3s,box-shadow .3s,border-color .3s}
.grid img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .5s ease}
.grid a:hover{transform:translateY(-5px);box-shadow:0 16px 40px rgba(25,25,20,.18);border-color:rgba(136,195,53,.65)}
.grid a:hover img{transform:scale(1.07)}
.grid .lab{position:absolute;inset:auto 0 0 0;padding:.9rem .9rem .7rem;background:linear-gradient(transparent,rgba(0,0,0,.85));color:#fff;font-size:.95rem;font-weight:700;letter-spacing:.01em}
/* masonry */
.masonry{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:1.6rem}
.masonry figure{margin:0;overflow:hidden;border-radius:12px;background:#eceae4;box-shadow:0 2px 10px rgba(25,25,20,.07)}
.masonry img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;transition:transform .45s ease,filter .3s}
.masonry figure:hover img{transform:scale(1.04);filter:brightness(1.1)}
.masonry figcaption{font-size:.82rem;color:var(--muted);padding:.5rem .7rem .6rem}
/* video cards */
.vid-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:1.4rem}
.vid-grid h3{font-size:1.03rem;margin:.7rem 0 .1rem;font-weight:700}
.vid-grid p{font-size:.85rem;color:var(--muted);margin:0;text-transform:uppercase;letter-spacing:.08em}
.vid-facade{position:relative;aspect-ratio:16/9;background:#000 center/cover no-repeat;border-radius:12px;cursor:pointer;overflow:hidden;border:1px solid var(--line);transition:transform .3s,box-shadow .3s}
.vid-facade::after{content:"▶";position:absolute;top:50%;left:50%;width:62px;height:62px;margin:-31px 0 0 -31px;border-radius:50%;background:rgba(10,10,12,.62);border:2px solid rgba(255,255,255,.85);color:#fff;font-size:1.25rem;display:grid;place-items:center;padding-left:4px;transition:all .25s}
.vid-facade:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(25,25,20,.22)}
.vid-facade:hover::after{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
/* filter bar */
.filters{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.6rem 0 .4rem}
.filters button{background:#fff;border:1px solid var(--line);color:#55534c;padding:.5rem 1.05rem;border-radius:99px;font-size:.83rem;letter-spacing:.05em;cursor:pointer;transition:all .2s}
.filters button:hover{border-color:var(--accent);color:#1b1b18}
.filters button.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}
/* logo wall */
.logo-wall{display:grid;gap:1.7rem 2.4rem;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));align-items:center}
.logo-wall img{filter:grayscale(1);opacity:.8}
.logo-wall img{max-height:86px;width:auto;margin:0 auto;transition:all .25s}
.logo-wall img:hover{opacity:1;filter:none}
/* two col + cta */
.two-col{display:grid;gap:2.2rem;grid-template-columns:1.05fr .95fr;align-items:start}
.cta-band{background:linear-gradient(135deg,#191a1e 0%,#0d0e10 70%);border-top:1px solid var(--line);color:#fff;text-align:center;padding:3.4rem 5vw}
.cta-band h2{margin:0 auto .4rem;display:inline-block}
.cta-band h2::after{left:50%;transform:translateX(-50%)}
.cta-band p{max-width:60ch;margin:.8rem auto;color:#cfccc5}
.cta-band a{color:#b9e082}
.cta-band a.btn{color:var(--accent-ink)!important}
.cta-band h2{color:#fff}
/* forms */
input,textarea{width:100%;padding:.7rem .8rem;border:1px solid #d8d5cd;border-radius:8px;background:#fff;color:var(--ink);font:inherit}
input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
button.btn{border:0;cursor:pointer;font:inherit;font-weight:700}
/* footer */
.site-footer{background:#0a0b0c;border-top:1px solid var(--line);color:#b7b3aa;padding:3rem 5vw 1.6rem;font-size:.93rem}
.site-footer a{color:#dcd9d2;text-decoration:none}
.site-footer a:hover{color:var(--accent)}
.site-footer strong{color:#fff;text-transform:uppercase;font-size:.78rem;letter-spacing:.12em}
.foot-grid{display:grid;gap:2.2rem;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));max-width:1140px;margin:0 auto}
.fineprint{text-align:center;margin-top:2.4rem;color:#77736b;font-size:.8rem}
/* lightbox */
#lightbox{position:fixed;inset:0;background:rgba(6,6,8,.96);display:none;z-index:99}
#lightbox.on{display:block}
.lb-stage{position:absolute;inset:0;display:grid;place-items:center;padding:4vh 6vw}
.lb-stage img{max-width:100%;max-height:88vh;width:auto;height:auto;border-radius:8px;box-shadow:0 20px 80px rgba(0,0,0,.7)}
.lb-video{width:min(92vw,1100px);aspect-ratio:16/9;border-radius:12px;overflow:hidden;box-shadow:0 20px 80px rgba(0,0,0,.7)}
.lb-video iframe{width:100%;height:100%;border:0;display:block}
.lb-x{position:fixed;top:.9rem;right:1.1rem;z-index:2;font-size:2.1rem;background:none;border:0;color:#fff;cursor:pointer;line-height:1;opacity:.85}
.lb-x:hover{opacity:1;color:var(--accent)}
.lb-prev,.lb-next{position:fixed;top:50%;transform:translateY(-50%);z-index:2;width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(20,20,24,.55);color:#fff;font-size:1.15rem;cursor:pointer;display:none;place-items:center;transition:all .2s}
#lightbox.is-photo .lb-prev,#lightbox.is-photo .lb-next{display:grid}
.lb-prev{left:1rem}.lb-next{right:1rem}
.lb-prev:hover,.lb-next:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.lb-count{position:fixed;top:1.2rem;left:1.3rem;z-index:2;color:#cfccc5;font-size:.85rem;letter-spacing:.08em}
.lb-cap{position:fixed;bottom:1.1rem;left:50%;transform:translateX(-50%);z-index:2;color:#d8d5ce;font-size:.86rem;max-width:84vw;text-align:center}
/* reveal */
.rv{opacity:0;transform:translateY(16px);transition:opacity .55s ease,transform .55s ease}
.rv.in{opacity:1;transform:none}
/* mobile */
@media(max-width:820px){
 body{padding-top:58px}
 .site-header{padding:.55rem 5vw}
 .site-header img{height:32px}
 .nav{display:none;position:fixed;top:58px;left:0;right:0;background:rgba(10,11,12,.97);backdrop-filter:blur(10px);flex-direction:column;padding:1.2rem 5vw 1.6rem;gap:1.1rem;border-bottom:1px solid var(--line)}
 .nav.open{display:flex}
 .nav-toggle{display:block}
 .hero{margin-top:-58px}
 .hero img{height:68vh;min-height:440px}
 .hero-copy{padding-bottom:2.6rem}
 .two-col{grid-template-columns:1fr}
 .masonry{grid-template-columns:repeat(2,1fr)}
 .lb-prev{left:.5rem}.lb-next{right:.5rem}
 .lb-prev,.lb-next{width:44px;height:44px}
}

@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.rv{opacity:1;transform:none}}

/* logo ticker */
.logo-ticker{overflow:hidden;margin:1.6rem 0 2.2rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.logo-track{display:flex;align-items:center;gap:4.6rem;will-change:transform;width:max-content;animation:tick 48s linear infinite}
.logo-ticker:hover .logo-track{animation-play-state:paused}
.logo-track img{max-height:86px;width:auto;filter:grayscale(1);opacity:.85;transition:all .25s}
.logo-track img:hover{filter:none;opacity:1}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}


/* case-study carousel */
.case-carousel{position:relative;margin:1.4rem 0 2rem}
.car-track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding-bottom:.4rem;scrollbar-width:thin}
.car-track figure{flex:0 0 auto;width:min(420px,76vw);margin:0;scroll-snap-align:start;overflow:hidden;border-radius:12px}
.car-track img{width:100%;aspect-ratio:3/2;object-fit:cover;cursor:zoom-in;transition:transform .4s}
.car-track figure:hover img{transform:scale(1.04)}
.car-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;color:#333;font-size:1.1rem;cursor:pointer;box-shadow:0 4px 14px rgba(25,25,20,.18);transition:all .2s}
.car-btn:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.car-prev{left:-8px}.car-next{right:-8px}
.case-hero{border-radius:14px;overflow:hidden;margin:1.2rem 0}
.case-hero img{width:100%;aspect-ratio:21/9;object-fit:cover}

/* footer social icon badges */
.soc{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.5rem}
.soc a{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.28);display:grid;place-items:center;color:#dcd9d2;transition:all .2s}
.soc a:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.soc svg{width:17px;height:17px;display:block}
