@font-face{font-family:'Hanken';src:url('../fonts/HankenGrotesk.ttf') format('truetype');font-weight:300 800;font-display:swap}
@font-face{font-family:'News';src:url('../fonts/Newsreader.ttf') format('truetype');font-weight:200 600;font-display:swap}
@font-face{font-family:'Display';src:url('../fonts/Archivo.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--bg:#0d0d0d;--bg2:#141414;--tx:#eaeaea;--mut:#8a8a8a;--line:rgba(255,255,255,.12);--maxw:1240px}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Hanken',sans-serif;background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
.mut{color:var(--mut)}

/* top bar */
header.bar{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;
  padding:22px 32px;mix-blend-mode:difference}
header.bar .name{font-size:14px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:#fff}
header.bar nav{display:flex;gap:30px;font-size:12.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
header.bar nav a{color:#fff;opacity:.75;transition:opacity .2s}
header.bar nav a:hover,header.bar nav a.active{opacity:1}

/* hero */
.hero{padding:170px 0 60px}
.hero h1{font-family:'Display';font-weight:680;font-size:clamp(34px,6.2vw,70px);line-height:1.0;letter-spacing:-.03em;color:#fff}
.hero h1 em{font-style:normal;color:var(--mut)}
.hero .role{margin-top:20px;font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--mut);font-weight:600}

/* filters */
.filters{display:flex;gap:26px;padding:30px 0 40px;border-bottom:1px solid var(--line)}
.filters button{background:none;border:none;color:var(--mut);font-family:inherit;font-size:12.5px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;cursor:pointer;padding:0;transition:color .2s}
.filters button:hover,.filters button.active{color:#fff}

/* project grid */

.filters-wrap{padding-top:104px;padding-bottom:4px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:46px 0 90px}
.proj{position:relative;display:block;overflow:hidden;cursor:pointer;background:var(--bg2)}
.proj .ar{aspect-ratio:3/2;overflow:hidden;position:relative}
.proj img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .4s;opacity:.88}
.proj:hover img{transform:scale(1.04);opacity:1}
.proj .meta{position:absolute;left:0;right:0;bottom:0;padding:18px 18px;display:flex;justify-content:space-between;align-items:flex-end;
  background:linear-gradient(transparent,rgba(0,0,0,.7));opacity:0;transform:translateY(8px);transition:.4s}
.proj:hover .meta{opacity:1;transform:none}
.proj .meta h3{font-size:15px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.proj .meta .yr{font-size:12px;color:#cfcfcf;letter-spacing:.1em}
.proj.hide{display:none}
.empty{padding:90px 0 120px;text-align:center;color:var(--mut);font-family:'Hanken';font-size:15px;letter-spacing:.04em}

/* project detail */
.detail{padding:150px 0 100px}
.detail .back{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);transition:color .2s}
.detail .back:hover{color:#fff}
.detail .head{margin:34px 0 16px;display:flex;flex-wrap:wrap;align-items:baseline;gap:18px}
.detail h1{font-family:'Display';font-weight:680;font-size:clamp(30px,5vw,52px);color:#fff;letter-spacing:-.02em}
.detail .tag{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
.detail .intro{font-family:'Hanken';font-size:clamp(15px,1.8vw,18px);color:var(--mut);max-width:620px;line-height:1.6;margin-bottom:54px}
.shots{display:flex;flex-direction:column;gap:18px;max-width:780px;margin:0 auto}
.shots img{width:100%;height:auto;cursor:zoom-in;background:var(--bg2)}
.detail .next{margin-top:70px;padding-top:30px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.detail .next a{color:var(--mut)}.detail .next a:hover{color:#fff}

/* about */
.about{padding:170px 0 100px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.about h1{font-family:'Display';font-weight:680;font-size:clamp(28px,5vw,48px);color:#fff;margin-bottom:24px;letter-spacing:-.02em}
.about p{font-size:15.5px;color:#cdcdcd;margin-bottom:16px;max-width:520px}
.about img.ph{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center;display:block;border:1px solid var(--line)}
.about .ph{aspect-ratio:4/5;background:var(--bg2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:#555;font-size:13px;letter-spacing:.1em}
.about .contact{margin-top:26px;font-size:14px;letter-spacing:.04em}
.about .contact a{color:#fff;border-bottom:1px solid var(--mut);padding-bottom:2px}

/* legal */
.legal{padding:150px 0 100px;max-width:800px}
.legal h1{font-family:'Display';font-weight:680;font-size:clamp(26px,5vw,40px);color:#fff;margin-bottom:30px}
.legal h2{font-size:16px;letter-spacing:.04em;color:#fff;margin:28px 0 8px}
.legal p,.legal li{font-size:14px;color:#bdbdbd;margin-bottom:9px}.legal ul{padding-left:20px}.legal a{color:#fff;text-decoration:underline}

/* footer */
footer{border-top:1px solid var(--line);padding:40px 0;margin-top:40px}
.foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.foot a:hover{color:#fff}

/* lightbox */
.lb{position:fixed;inset:0;z-index:1000;background:rgba(8,8,8,.96);display:none;align-items:center;justify-content:center}
.lb.open{display:flex}
.lb img{max-width:92vw;max-height:90vh}
.lb .x{position:absolute;top:20px;right:28px;color:#fff;font-size:30px;cursor:pointer;opacity:.7}
.lb .x:hover{opacity:1}
.lb .nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:38px;cursor:pointer;opacity:.55;padding:18px 22px;user-select:none}
.lb .nav:hover{opacity:1}.lb .prev{left:6px}.lb .next{right:6px}

/* tablet */
@media(max-width:1000px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .about{gap:48px}
}
/* mobile */
@media(max-width:760px){
  header.bar{padding:14px 18px;mix-blend-mode:normal;
    background:linear-gradient(180deg,rgba(13,13,13,.94) 40%,rgba(13,13,13,0))}
  header.bar .name{font-size:12px;letter-spacing:.12em;white-space:nowrap;color:#fff}
  header.bar nav{gap:16px;font-size:11px;letter-spacing:.1em;flex-shrink:0}
  header.bar nav a{color:#fff;white-space:nowrap}
  .wrap{padding:0 18px}
  .filters-wrap{padding-top:72px;padding-bottom:0}
  .filters{gap:20px;padding:20px 0 22px}
  .grid{grid-template-columns:repeat(2,1fr);gap:8px;padding:22px 0 64px}
  .proj .meta{opacity:1;transform:none;padding:12px}      /* no hover on touch: always show */
  .proj .meta h3{font-size:12px;letter-spacing:.1em}
  .proj img{opacity:1}
  .about{grid-template-columns:1fr;gap:26px;padding:100px 0 64px;align-items:start}
  .about img.ph{max-width:380px}
  .about p{font-size:15px}
  .detail{padding:90px 0 60px}
  .detail .head{gap:10px;margin:22px 0 12px}
  .detail .next{flex-wrap:wrap;gap:16px}
  .shots{gap:12px}
  .legal{padding:92px 0 60px}
  .lb .nav{font-size:30px;padding:10px 14px}
}
/* small phones */
@media(max-width:480px){
  header.bar .name{font-size:11px;letter-spacing:.04em}
  header.bar nav{gap:13px;font-size:10.5px;letter-spacing:.04em}
  .grid{grid-template-columns:1fr;gap:10px}
  .filters{gap:18px;font-size:12px}
  .foot{flex-direction:column;gap:8px;text-align:left}
}

.proj .play{position:absolute;inset:0;margin:auto;width:54px;height:54px;border:1.5px solid rgba(255,255,255,.9);border-radius:50%;background:rgba(0,0,0,.22);pointer-events:none;transition:background .3s}
.proj:hover .play{background:rgba(0,0,0,.4)}
.proj .play::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-42%,-50%);border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent #fff}
.detail .video{position:relative;width:100%;max-width:960px;margin:0 auto 40px;aspect-ratio:16/9;background:#000}
.detail .video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}

/* services */
.services{padding-top:150px;padding-bottom:100px}
.services h1{font-family:'Display';font-weight:680;font-size:clamp(28px,5vw,48px);color:#fff;margin-bottom:22px;letter-spacing:-.02em}
.services .lead{font-size:16px;color:#cdcdcd;max-width:640px;margin-bottom:80px;line-height:1.6}
.services .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:56px;padding-bottom:90px;margin-bottom:90px;border-bottom:1px solid var(--line)}
.services .col h2{font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--mut);margin-bottom:30px;font-weight:600;padding-bottom:14px;border-bottom:1px solid var(--line)}
.services .item{margin-bottom:24px}
.services .item:last-child{margin-bottom:0}
.services .item h3{font-family:'Display';font-size:17px;color:#fff;margin-bottom:6px;font-weight:600;letter-spacing:-.005em}
.services .item p{font-size:14.5px;color:#bdbdbd;line-height:1.55}
.services .how{margin-bottom:90px;padding-bottom:90px;border-bottom:1px solid var(--line)}
.services .how h2{font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--mut);margin-bottom:40px;font-weight:600}
.services .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
.services .step .num{font-family:'Display';font-size:30px;color:var(--mut);margin-bottom:10px;font-weight:300;letter-spacing:-.01em}
.services .step h3{font-size:13px;color:#fff;margin-bottom:8px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.services .step p{font-size:14.5px;color:#bdbdbd;line-height:1.55;max-width:300px}
.services .closing{max-width:640px}
.services .pricing-note{font-size:14.5px;color:var(--mut);margin-bottom:34px;line-height:1.6}
.services .cta{display:inline-block;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:#fff;border-bottom:1px solid var(--mut);padding-bottom:4px;transition:border-color .2s}
.services .cta:hover{border-bottom-color:#fff}

@media(max-width:1000px){
  .services .cols{grid-template-columns:repeat(2,1fr);gap:48px}
}
@media(max-width:760px){
  .services{padding-top:100px;padding-bottom:64px}
  .services .lead{margin-bottom:56px;font-size:15.5px}
  .services .cols{grid-template-columns:1fr;gap:44px;padding-bottom:64px;margin-bottom:64px}
  .services .how{margin-bottom:64px;padding-bottom:64px}
  .services .steps{grid-template-columns:1fr;gap:32px}
  .services .step p{max-width:none}
}
