*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:#0a0a0a;color:#f3f3ee;font-family:'Space Grotesk',sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}img{display:block}
.mono{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
:focus-visible{outline:2px solid #d7ff3a;outline-offset:3px}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:20px 32px;mix-blend-mode:difference;color:#fff}
.nav .links{display:flex;gap:26px}.nav a:hover{opacity:.6}

/* hero (from preview A) */
.hero{height:100vh;position:relative;display:flex;align-items:flex-end;padding:32px;overflow:hidden}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.6s ease,transform 9s ease;transform:scale(1.08)}
.hero .bg.on{opacity:.55;transform:scale(1)}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#0a0a0a 5%,transparent 55%)}
.hero .title{position:relative;z-index:2;font-weight:700;font-size:clamp(64px,13vw,200px);line-height:.8;letter-spacing:-.07em;text-transform:uppercase}
.hero .title span{display:block}.hero .title span:last-child{font-style:italic;color:#d7ff3a}
.hero .meta{position:absolute;right:32px;bottom:36px;z-index:2;text-align:right;display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.btn{background:#d7ff3a;color:#0a0a0a;padding:12px 16px;font-weight:700;display:inline-block;transition:transform .3s}.btn:hover{transform:translateY(-3px)}
.tc{color:#d7ff3a}

/* client strip (from preview A) */
.marquee{overflow:hidden;border-top:1px solid #2a2a2a;border-bottom:1px solid #2a2a2a;padding:14px 0;white-space:nowrap;background:#0a0a0a}
.marquee div{display:inline-block;animation:m 50s linear infinite;font-size:34px;font-weight:700;letter-spacing:-.05em;text-transform:uppercase}
.marquee em{color:#d7ff3a;font-style:normal;margin:0 24px}@keyframes m{to{transform:translateX(-50%)}}

/* work grid (preview W) */
.lab{display:flex;justify-content:space-between;padding:40px 32px 14px;color:#9a9a94}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.card{position:relative;overflow:hidden;background:#0d0d0d;cursor:pointer;aspect-ratio:16/9;display:block}
.base{position:absolute;inset:0}
.base img{width:100%;height:100%;object-fit:cover;filter:brightness(.34) saturate(.9);transform:scale(1.15);transition:filter 1s cubic-bezier(.2,.8,.2,1),transform 1.3s cubic-bezier(.2,.8,.2,1)}
.card.in .base img{transform:scale(1)}
.card:hover .base img,.card:focus-visible .base img,.card.tap .base img,.card.auto .base img{filter:brightness(1);transform:scale(1.04)}
.base:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.5),transparent 50%);opacity:0;transition:opacity .8s}
.card:hover .base:after,.card:focus-visible .base:after,.card.tap .base:after,.card.auto .base:after{opacity:1}
.mk{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;pointer-events:none;padding:0 6%;
 background-size:cover;background-position:center;background-repeat:no-repeat;
 font-size:clamp(20px,var(--fs,4.8vw),88px);font-weight:700;letter-spacing:-.08em;line-height:.95;text-transform:uppercase;
 color:transparent;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;
 opacity:0;transition:transform 1.1s cubic-bezier(.2,.8,.2,1),opacity .9s ease var(--d,0s)}
.mk:has(span){flex-direction:column}
.mk.inv{background:none!important;color:#fff;-webkit-text-fill-color:#fff;mix-blend-mode:difference}
.card.in .mk{opacity:1}
.card:hover .mk,.card:focus-visible .mk,.card.tap .mk,.card.auto .mk{transform:scale(3.4);opacity:0;transition:transform 1.1s cubic-bezier(.5,0,.2,1),opacity .7s ease .15s}
.cap{position:absolute;left:18px;right:18px;bottom:16px;z-index:3;display:flex;justify-content:space-between;align-items:flex-end;opacity:0;transform:translateY(10px);transition:.5s ease;text-shadow:0 2px 14px rgba(0,0,0,.6);pointer-events:none}
.card:hover .cap,.card:focus-visible .cap,.card.tap .cap,.card.auto .cap{opacity:1;transform:none;transition-delay:.45s}
.cap h3{font-size:clamp(22px,2.4vw,38px);letter-spacing:-.05em;text-transform:uppercase;line-height:.95}
.cap h3 small{display:block;font-size:.5em;letter-spacing:-.02em;font-weight:500;margin-top:6px;text-transform:none;opacity:.85}
.num{position:absolute;top:14px;left:18px;z-index:3;color:#d7ff3a}

/* footer */
.foot{padding:90px 32px 60px;border-top:1px solid #2a2a2a;display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.foot h2{font-size:clamp(44px,8vw,120px);letter-spacing:-.06em;line-height:.88;text-transform:uppercase}
.foot .r{display:flex;flex-direction:column;gap:10px;align-items:flex-end}.foot .r a:hover{color:#d7ff3a}
.legal{padding:18px 32px;color:#6d6d68;display:flex;justify-content:space-between;border-top:1px solid #1d1d1d}

/* project page */
.ph{position:relative;min-height:78vh;display:flex;align-items:flex-end;padding:32px;overflow:hidden}
.ph .bgi{position:absolute;inset:0;background-size:cover;background-position:center;filter:brightness(.62);transform:scale(1.06);animation:settle 2.4s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes settle{to{transform:scale(1)}}
.ph:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#0a0a0a 4%,transparent 60%)}
.ph .in{position:relative;z-index:2;width:100%;display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.ph h1{font-size:clamp(56px,11vw,170px);line-height:.82;letter-spacing:-.075em;text-transform:uppercase;font-weight:700}
.ph h1 em{display:block;font-style:italic;color:#d7ff3a;font-size:.42em;letter-spacing:-.04em;text-transform:none;margin-top:.15em;line-height:1}
.credits{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px;text-align:right;color:#d8d8d2}
.credits li b{color:#d7ff3a;font-weight:400}
.media{padding:60px 32px 0;display:grid;gap:22px}
.media .v{position:relative;aspect-ratio:16/9;background:#000}
.media iframe,.media video{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.quote{padding:90px 32px 30px;max-width:1100px}.quote p{font-size:clamp(22px,2.6vw,38px);line-height:1.2;letter-spacing:-.035em}.quote span{display:block;margin-top:18px;color:#9a9a94}
.stills{padding:60px 0 0}.stills .lab{padding-top:0}
.sg{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:0 6px}
.sg a{display:block;overflow:hidden;background:#111;cursor:zoom-in}.sg a:first-child{grid-column:1/-1}
.sg img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9;filter:brightness(.8);transition:filter .6s,transform 1.2s cubic-bezier(.2,.8,.2,1)}
.sg a:hover img{filter:brightness(1);transform:scale(1.03)}
.next{display:block;position:relative;margin-top:90px;aspect-ratio:21/9;overflow:hidden;background:#111}
.next img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.35);transition:filter .7s,transform 1.2s cubic-bezier(.2,.8,.2,1)}
.next:hover img{filter:brightness(.8);transform:scale(1.04)}
.next div{position:absolute;left:32px;right:32px;bottom:26px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.next h2{font-size:clamp(40px,7vw,110px);line-height:.85;letter-spacing:-.07em;text-transform:uppercase}

/* about, contact */
.pg{padding:150px 32px 90px;max-width:1200px}
.pg h1{font-size:clamp(56px,10vw,150px);line-height:.85;letter-spacing:-.07em;text-transform:uppercase;margin-bottom:50px}
.pg h1 i{color:#d7ff3a}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.pg p{font-size:clamp(18px,1.6vw,24px);line-height:1.45;letter-spacing:-.02em;margin-bottom:22px;color:#e3e3dd}
.pg img{width:100%;aspect-ratio:4/5;object-fit:cover}
.pg .contacts{display:flex;flex-direction:column;gap:14px;margin-top:30px}.pg .contacts a{font-size:clamp(24px,3vw,44px);letter-spacing:-.04em}.pg .contacts a:hover{color:#d7ff3a}

/* lightbox */
#lb{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center}
#lb.on{display:flex}#lb img{max-width:94vw;max-height:90vh;object-fit:contain}
#lb button{position:absolute;background:none;border:0;color:#fff;font:700 13px 'Space Mono',monospace;letter-spacing:.1em;cursor:pointer;padding:18px}
#lb .x{top:6px;right:10px}#lb .p{left:10px;top:50%}#lb .n{right:10px;top:50%}#lb .c{bottom:8px;left:50%;transform:translateX(-50%);color:#9a9a94}

@media(max-width:900px){.grid{grid-template-columns:1fr 1fr}.cols{grid-template-columns:1fr}.credits{text-align:left}.nav{padding:16px 18px}.hero,.ph,.foot,.lab,.media,.pg{padding-left:18px;padding-right:18px}.sg{grid-template-columns:1fr}.next{aspect-ratio:16/9}.marquee div{font-size:24px}}
@media(max-width:560px){.grid{grid-template-columns:1fr}.hero .meta{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* phones and tablets without hover: brighter stills and motion without a cursor */
@media(hover:none){
 .base img{filter:brightness(.62) saturate(1)}
 .card.in .base img{animation:kb 14s ease-in-out infinite alternate}
}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.12)}}

.lab .tp{display:none;font-style:normal}.lab .hv{font-style:normal}
@media(hover:none){.lab .hv{display:none}.lab .tp{display:inline}}
@media(max-width:560px){
 .lab{font-size:2.5vw;letter-spacing:.06em;white-space:nowrap}
 .legal{padding:16px 18px;font-size:2.4vw;letter-spacing:.05em;white-space:nowrap;gap:8px}
}
