:root{
    --bg:#f3f0ec; --tint:#ebe4de; --paper:#f8f6f3; --ink:#1c1a18; --body:#3f3b37; --muted:#625d58;
    --line:#d8d0c8; --accent:#8a5a44; --inverse-bg:#1c1a18; --inverse-ink:#ece7e1; --inverse-muted:#a59d94;
    --ph-a:#d8d0c7; --ph-b:#b9aea3;
    --serif:"Prata", Georgia, serif; --sans:"Jost", "Helvetica Neue", Arial, sans-serif;
    --ease:cubic-bezier(.16,1,.3,1);
    color-scheme: light dark;
  }
  @media (prefers-color-scheme: dark){
    :root{
      --bg:#171615; --tint:#201e1c; --paper:#1d1b1a; --ink:#ece7e1; --body:#cfc8c0; --muted:#a59d94;
      --line:#35312d; --accent:#c99a80; --inverse-bg:#0f0e0d; --inverse-ink:#ece7e1; --inverse-muted:#9a928a;
      --ph-a:#2b2825; --ph-b:#3a3531;
    }
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.7;font-size:16px;-webkit-font-smoothing:antialiased}
  a{color:inherit;text-decoration:none}
  img{display:block;max-width:100%}
  :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
  .wrap{max-width:1240px;margin:0 auto;padding:0 40px}
  .serif{font-family:var(--serif);font-weight:400}
  .label{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
  .skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--bg);padding:10px 14px;z-index:30}
  .skip:focus{left:12px;top:12px}

  /* header */
  header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
  .bar{display:flex;align-items:center;justify-content:space-between;height:72px;gap:24px}
  .brand{display:flex;align-items:baseline;gap:16px;min-width:0}
  .brand .name{font-family:var(--serif);font-size:18px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
  .brand .role{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  nav ul{display:flex;gap:28px;list-style:none}
  nav a{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--body);padding:6px 0;background:linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat;transition:background-size .35s var(--ease)}
  nav a:hover,nav a:focus-visible,nav a[aria-current="page"]{background-size:100% 1px}
  nav a[aria-current="page"]{color:var(--ink)}

  /* hero: asymmetric split, text left, portrait right */
  .hero{background:var(--tint)}
  .hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding-top:72px;padding-bottom:72px}
  .hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(54px,7.2vw,96px);line-height:.98;text-transform:uppercase}
  .dash{width:32px;height:1px;background:var(--ink);margin:30px 0 22px}
  .hero .sub{font-size:17px;color:var(--body);max-width:30ch}
  .cta{display:inline-flex;align-items:center;gap:12px;margin-top:36px;padding:14px 26px;background:var(--ink);color:var(--bg);font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;transition:transform .2s var(--ease),background-color .2s}
  .cta:hover{background:var(--accent)}
  .cta:active{transform:scale(.98)}
  .cta span{transition:transform .35s var(--ease)}
  .cta:hover span{transform:translateX(4px)}
  .portrait{aspect-ratio:4/5;overflow:hidden;background:linear-gradient(160deg,var(--ph-a),var(--ph-b))}
  .portrait img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
  .portrait .ph{height:100%;display:flex;align-items:flex-end;padding:20px;color:var(--muted);font-size:12px;letter-spacing:.16em;text-transform:uppercase}

  /* brands: official logos, rendered monochrome */
  .brands{border-bottom:1px solid var(--line)}
  .brands ul{list-style:none;display:grid;grid-template-columns:repeat(6,1fr)}
  .brands li{display:flex;align-items:center;justify-content:center;padding:34px 14px;min-height:96px}
  .brands img{display:block;width:auto;max-width:100%;height:16px;opacity:.55;transition:opacity .3s}
  .brands li:hover img{opacity:1}
  .brands img.l-slava{height:26px}
  .brands img.l-allsaints{height:15px}
  .brands img.l-uterque{height:23px}
  .brands img.l-custo{height:26px}
  @media (prefers-color-scheme:dark){.brands img{filter:invert(1)}}

  section{padding:104px 0}
  h2{font-family:var(--serif);font-weight:400;font-size:clamp(32px,3.6vw,48px);line-height:1.1}

  /* expertise: statement rows, not cards */
  .expertise{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .ex{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px}
  .ex dl div{padding:28px 0}
  .ex dl div+div{border-top:1px solid var(--line)}
  .ex dt{font-family:var(--serif);font-size:24px;line-height:1.25}
  .ex dd{margin-top:8px;color:var(--body);max-width:56ch}

  /* about + cv grouped */
  .about-intro{max-width:62ch}
  .about-intro p{color:var(--body);font-size:17px}
  .about-intro p+p{margin-top:18px}
  .cv{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:72px}
  .cv h3.group{margin-bottom:20px}
  .cv ul{list-style:none;display:grid;gap:26px}
  .cv .when{font-size:12px;letter-spacing:.14em;color:var(--muted)}
  .cv .t{font-family:var(--serif);font-size:20px;line-height:1.3;margin-top:4px}
  .cv .org{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:2px}
  .cv p{font-size:15px;color:var(--body);margin-top:6px;max-width:48ch}

  /* contact: stacked, narrow */
  .contact{background:var(--tint)}
  .contact .inner{max-width:620px}
  .contact p.lead{color:var(--body);margin-top:16px}
  .contact a.inline{border-bottom:1px solid currentColor}
  form{display:grid;gap:22px;margin-top:40px}
  .field{display:grid;gap:8px}
  label{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
  input,textarea{width:100%;padding:12px 0;border:0;border-bottom:1px solid var(--muted);background:transparent;font:inherit;color:var(--ink);border-radius:0;transition:border-color .2s}
  input:focus,textarea:focus{outline:none;border-bottom-color:var(--accent);box-shadow:0 1px 0 0 var(--accent)}
  textarea{min-height:120px;resize:vertical}
  .hint{font-size:13px;color:var(--muted)}
  button{justify-self:start;background:var(--ink);color:var(--bg);border:0;padding:14px 28px;font:inherit;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:transform .2s var(--ease),background-color .2s}
  button:hover{background:var(--accent)}
  button:active{transform:scale(.98)}
  .hidden{display:none}

  footer{background:var(--inverse-bg);color:var(--inverse-ink);padding:56px 0 40px}
  footer .top{display:flex;justify-content:space-between;align-items:end;gap:24px;padding-bottom:28px;border-bottom:1px solid #3a3632}
  footer .fn{font-family:var(--serif);font-size:22px;text-transform:uppercase;letter-spacing:.04em}
  footer .fr{font-size:12px;letter-spacing:.14em;color:var(--inverse-muted);margin-top:4px}
  footer ul{list-style:none;display:flex;gap:28px}
  footer ul a{font-size:12px;letter-spacing:.14em;text-transform:uppercase}
  footer ul a:hover{color:var(--inverse-muted)}
  footer .legal{padding-top:22px;font-size:12.5px;color:var(--inverse-muted);max-width:640px;line-height:1.6}


  /* page heads */
  .pagehead{padding:88px 0 56px;border-bottom:1px solid var(--line)}
  .pagehead .label{display:block;margin-bottom:18px}
  .pagehead h1{font-family:var(--serif);font-weight:400;font-size:clamp(40px,6vw,76px);line-height:1;text-transform:uppercase;text-wrap:balance}
  .pagehead p.lead{margin-top:24px;font-size:18px;color:var(--body);max-width:60ch}
  .brands a{display:flex;align-items:center;justify-content:center}

  /* case study */
  .cs-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding:28px 0;border-bottom:1px solid var(--line)}
  .cs-meta dt{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
  .cs-meta dd{margin-top:6px;font-size:16px}
  .cs-body{display:grid;grid-template-columns:.35fr .65fr;gap:56px;padding:64px 0}
  .cs-body h2{font-size:14px;font-family:var(--sans);font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
  .scope p{font-size:17px;color:var(--body);max-width:62ch}
  .scope p+p{margin-top:16px}
  .scope p.first{font-family:var(--serif);font-size:22px;line-height:1.45;color:var(--ink)}
  .tags{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
  .tags li{font-size:12px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);padding:6px 12px;color:var(--body)}
  .cs-gallery{padding-bottom:24px}
  .films{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:28px}
  .embed{min-width:0}
  .embed .frame{position:relative;aspect-ratio:16/9;background:var(--ph-a)}
  .embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
  .embed .play{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;display:block}
  .embed .play img{width:100%;height:100%;object-fit:cover;transition:opacity .3s}
  .embed .play:hover img{opacity:.85}
  .embed .pi{position:absolute;left:50%;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border:1px solid rgba(255,255,255,.85);border-radius:50%;background:rgba(0,0,0,.25);transition:background-color .3s,transform .3s}
  .embed .pi::after{content:"";position:absolute;left:26px;top:21px;border-style:solid;border-width:11px 0 11px 17px;border-color:transparent transparent transparent #fff}
  .embed .play:hover .pi{background:rgba(0,0,0,.45);transform:scale(1.06)}
  .embed figcaption{font-size:12.5px;color:var(--muted);margin-top:8px;letter-spacing:.03em}
  .press{padding:0}
  .presslist{list-style:none;border-top:1px solid var(--line)}
  .presslist li{border-bottom:1px solid var(--line)}
  .presslist a{display:grid;grid-template-columns:160px 1fr auto;gap:20px;align-items:baseline;padding:18px 0}
  .presslist .pub{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
  .presslist .pt{font-family:var(--serif);font-size:20px}
  .presslist .arr{transition:transform .35s var(--ease)}
  .presslist a:hover .arr{transform:translate(3px,-3px)}
  .presslist a:hover .pt{color:var(--accent)}
  .next{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:40px 0;border-top:1px solid var(--line);margin-top:64px}
  .next .label{display:block}
  .next a{font-family:var(--serif);font-size:clamp(26px,3vw,40px);text-transform:uppercase}
  .next a span{display:inline-block;transition:transform .35s var(--ease)}
  .next a:hover span{transform:translateX(6px)}

  /* work gallery grids */
  .gallery{display:grid;gap:14px}
  .g3{grid-template-columns:repeat(3,1fr)}
  .g4{grid-template-columns:repeat(4,1fr)}
  .g5{grid-template-columns:repeat(5,1fr)}
  .gallery figure{min-width:0}
  .gallery .ph{overflow:hidden;aspect-ratio:3/4;background:linear-gradient(160deg,var(--ph-a),var(--ph-b))}
  .gallery .ph.fit{background:var(--paper);border:1px solid var(--line)}
  .gallery .ph.fit img{object-fit:contain;padding:10px}
  .gallery .wide{grid-column:span 2}
  .gallery .wide .ph{aspect-ratio:3/2}
  .gallery .wide{display:flex;flex-direction:column}
  .gallery .wide .ph{aspect-ratio:auto;flex:1;min-height:0;position:relative}
  .gallery .wide .ph img{position:absolute;inset:0;object-position:center top}
  .gallery .full{grid-column:1/-1}
  .gallery .full .ph{aspect-ratio:16/9}
  .gallery img,.gallery video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--ease)}
  .gallery figure:hover img{transform:scale(1.03)}
  .gallery figcaption{font-size:12.5px;color:var(--muted);margin-top:8px;letter-spacing:.03em}
  .credit{font-size:12px;color:var(--muted);margin-top:14px}
  .rights{margin-top:48px;font-size:13px;color:var(--muted);max-width:70ch}

  /* work overview */
  .cases{list-style:none}
  .cases li{border-bottom:1px solid var(--line)}
  .cases a{display:grid;grid-template-columns:120px 1fr auto;gap:32px;align-items:center;padding:28px 0}
  .cases .thumb{aspect-ratio:3/4;overflow:hidden;background:linear-gradient(160deg,var(--ph-a),var(--ph-b));display:flex;align-items:center;justify-content:center}
  .cases .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
  .cases .thumb img.logo{width:70%;height:auto;object-fit:contain;opacity:.6}
  .cases a:hover .thumb img{transform:scale(1.04)}
  .cases h2{font-size:clamp(26px,3vw,40px);text-transform:uppercase}
  .cases .r{display:block;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:8px}
  .cases .go{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
  .cases .go span{display:inline-block;transition:transform .35s var(--ease)}
  .cases a:hover .go span{transform:translateX(5px)}
  .earlier{margin-top:56px}
  .earlier ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:28px 48px;margin-top:20px}
  .earlier .t{font-family:var(--serif);font-size:20px}
  .earlier .org{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:2px}
  .earlier p{font-size:15px;color:var(--body);margin-top:8px;max-width:52ch}

  /* home teasers */
  .teasers{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:40px}
  .teasers a{display:block}
  .teasers .ph{aspect-ratio:3/4;overflow:hidden;background:linear-gradient(160deg,var(--ph-a),var(--ph-b))}
  .teasers img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
  .teasers a:hover img{transform:scale(1.03)}
  .teasers h3{font-family:var(--serif);font-weight:400;font-size:20px;margin-top:14px}
  .teasers .r{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:2px}
  .sechead{display:flex;justify-content:space-between;align-items:end;gap:24px}
  .more{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:2px;white-space:nowrap}

  /* sustainability */
  .facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .facts div{padding:36px 28px 36px 0}
  .facts div+div{padding-left:28px;border-left:1px solid var(--line)}
  .facts strong{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,64px);line-height:1;font-variant-numeric:tabular-nums}
  .facts span{display:block;margin-top:12px;color:var(--body);font-size:15px;max-width:30ch}
  .blocks{display:grid;gap:0}
  .block{display:grid;grid-template-columns:.35fr .65fr;gap:56px;padding:56px 0;border-bottom:1px solid var(--line)}
  .block h2{font-size:clamp(24px,2.6vw,32px)}
  .block .org{display:block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:10px}
  .block ul{list-style:none;display:grid;gap:14px}
  .block li{color:var(--body);font-size:16.5px;max-width:62ch;padding-left:22px;position:relative}
  .block li::before{content:"";position:absolute;left:0;top:.8em;width:10px;height:1px;background:var(--accent)}
  .block p{color:var(--body);font-size:16.5px;max-width:62ch}
  .block p+p,.block p+ul{margin-top:14px}
  .block ul.tags{display:flex;gap:8px}
  .block .tags li{padding:6px 12px;font-size:12px;max-width:none}
  .block .tags li::before{display:none}
  .band{background:var(--inverse-bg);color:var(--inverse-ink);padding:88px 0}
  .band h2{color:var(--inverse-ink)}
  .band p{color:var(--inverse-muted);max-width:56ch;margin-top:16px;font-size:17px}
  .band .cta{background:var(--inverse-ink);color:var(--inverse-bg)}
  .band .cta:hover{background:var(--accent);color:var(--inverse-ink)}
  .sus-home{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start}
  .sus-home ul{list-style:none;display:grid;gap:0}
  .sus-home li{padding:18px 0;border-bottom:1px solid #3a3632;color:var(--inverse-ink);font-size:16.5px}
  .sus-home li:first-child{border-top:1px solid #3a3632}

  @media (max-width:900px){
    .cs-body,.block,.sus-home{grid-template-columns:1fr;gap:24px}
    .teasers{grid-template-columns:repeat(3,1fr)}
    .g4,.g5{grid-template-columns:repeat(3,1fr)}
    .earlier ul{grid-template-columns:1fr}
  }
  @media (max-width:640px){
    .bar{height:auto;flex-wrap:wrap;padding-top:14px;padding-bottom:12px;gap:10px 24px}
    nav{width:100%}
    nav ul{gap:0;justify-content:space-between}
    nav a{font-size:11px;letter-spacing:.08em}
    .films{grid-template-columns:1fr}
    .cs-meta{grid-template-columns:1fr;gap:14px}
    .presslist a{grid-template-columns:1fr auto;gap:4px 12px}
    .presslist .pub{grid-column:1/-1}
    .g3,.g4,.g5{grid-template-columns:repeat(2,1fr)}
    .gallery .wide .ph,.g5 .wide .ph{aspect-ratio:4/3;flex:none}
    .gallery .wide .ph img{position:static}
    .cases a{grid-template-columns:84px 1fr;gap:18px}
    .cases .go{display:none}
    .teasers{grid-template-columns:repeat(2,1fr)}
    .facts{grid-template-columns:1fr}
    .facts div,.facts div+div{padding:24px 0;border-left:0}
    .facts div+div{border-top:1px solid var(--line)}
    .sechead{flex-direction:column;align-items:start}
    .next{flex-direction:column;align-items:start}
    .pagehead{padding:56px 0 40px}
  }

  /* motion: reveal on scroll, only when motion is allowed */
  @media (prefers-reduced-motion: no-preference){
    .js .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
    .js .reveal.in{opacity:1;transform:none}
    .hero h1,.hero .sub,.hero .dash,.hero .cta{animation:up .9s var(--ease) both}
    .hero .dash{animation-delay:.08s}.hero .sub{animation-delay:.14s}.hero .cta{animation-delay:.2s}
    @keyframes up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
  }
  @media (prefers-reduced-motion: reduce){ *{scroll-behavior:auto!important;transition:none!important;animation:none!important} }

  @media (max-width:900px){
    .wrap{padding:0 20px}
    .hero .wrap{grid-template-columns:1fr;gap:40px;padding-top:48px;padding-bottom:48px}
    .brands ul{grid-template-columns:repeat(3,1fr)}
    .ex,.cv{grid-template-columns:1fr;gap:40px}
    section{padding:72px 0}
  }
  @media (max-width:640px){
    .bar{height:64px}
    .brand .role{display:none}
    nav ul{gap:18px} nav a{font-size:11.5px;letter-spacing:.1em}
    .brands ul{grid-template-columns:repeat(2,1fr)}
    .brands li{padding:22px 8px;min-height:76px}
    footer .top{flex-direction:column;align-items:start}
  }
