/* ═══════════════════════════════════════════════════════════
   GRAPHIC ILLUSION — shared chrome for every page
   ═══════════════════════════════════════════════════════════ */
:root{
  --mono:"Oswald","Arial Narrow",sans-serif;
  --sans:"Geist",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --serif:"EB Garamond",Georgia,serif;
  --ink:#1F2A44; --paper:#fff; --mute:#8f97a8; --soft:#4a5468;
  --deep:#090B10;
  --rule:rgba(31,42,68,.13); --rule-d:rgba(31,42,68,.13); --accent:#d9622b;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{width:100%;overflow-x:clip}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);
  -webkit-font-smoothing:antialiased;cursor:none}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none;cursor:none}
button{font:inherit;cursor:none}

/* ── cursor ── */
#cursor{position:fixed;left:0;top:0;width:9px;height:9px;border-radius:50%;background:#fff;
  z-index:200;pointer-events:none;mix-blend-mode:difference;transform:translate(-50%,-50%);
  transition:width .3s,height .3s}
#cursor.big{width:52px;height:52px;background:rgba(255,255,255,.85)}

/* ── nav: the wordmark is the centrepiece ── */
nav{position:fixed;top:0;left:0;right:0;z-index:120;display:grid;
  grid-template-columns:1fr auto 1fr;align-items:center;padding:22px 30px;gap:20px}
nav .l{display:flex;align-items:center;gap:26px;justify-self:start}
nav .r{display:flex;align-items:center;gap:26px;justify-self:end}
.brandmark{height:34px;width:auto;justify-self:center;transition:filter .3s,height .3s}
nav.light .brandmark{filter:invert(1)}
.pill{font-size:11.5px;letter-spacing:.04em;padding:9px 2px;color:#fff;
  background:none;border:0;transition:color .25s,opacity .25s;white-space:nowrap;
  position:relative;opacity:.86}
.pill::after{content:"";position:absolute;left:2px;right:2px;bottom:4px;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;
  transition:transform .4s cubic-bezier(.16,.84,.28,1)}
.pill:hover{opacity:1}
.pill:hover::after{transform:scaleX(1);transform-origin:left}
.pill.on{opacity:1}
.pill.on::after{transform:scaleX(1)}
nav.light .pill{color:var(--ink)}
nav.light .lang{color:var(--ink)}
.side{position:fixed;right:0;top:50%;transform:translateY(-50%) rotate(180deg);z-index:120;
  writing-mode:vertical-rl;background:var(--accent);color:#fff;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;padding:20px 11px}

/* ── page shell (inner pages are dark, like BBDO) ── */
.page{background:var(--paper);color:var(--ink);min-height:100vh;padding:160px 0 0}
.wrap{max-width:1500px;margin:0 auto;padding:0 34px}
.label{font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.page-title{font-family:var(--mono);font-weight:600;text-transform:uppercase;
  font-size:clamp(56px,13vw,190px);line-height:.84;letter-spacing:-.01em;margin:14px 0 0}
.page-intro{max-width:540px;margin-top:34px;font-size:16px;line-height:1.68;color:var(--soft)}

.rise{opacity:0;transform:translateY(28px);
  transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1s cubic-bezier(.22,1,.36,1)}
.rise.in{opacity:1;transform:none}

/* ── BBDO-style staggered work grid ── */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:80px 46px;margin-top:90px;padding-bottom:120px}
.grid2>*:nth-child(even){transform:translateY(74px)}
.grid2>*:nth-child(even).in{transform:translateY(74px)}
.item figure{overflow:hidden;background:#eef0f4}
.item img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
.item:hover img{transform:scale(1.045)}
.item .cap{display:flex;align-items:baseline;gap:14px;margin-top:16px;flex-wrap:wrap}
.item .brand{font-family:var(--mono);font-weight:600;font-size:15px;letter-spacing:.09em;text-transform:uppercase}
.item .dash{width:26px;height:1px;background:rgba(31,42,68,.4);flex:none}
.item .camp{font-size:12.5px;color:var(--soft)}

/* ── news cards ── */
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:80px}
.ncard{position:relative;background:#f2f4f7;padding:30px 26px 34px;min-height:330px;
  display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}
.ncard.img{padding:0;min-height:330px}
.ncard.img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,1,.36,1)}
.ncard.img:hover img{transform:scale(1.05)}
.ncard h3{font-family:var(--mono);font-weight:600;text-transform:uppercase;font-size:19px;
  line-height:1.12;letter-spacing:.02em}
.ncard .date{font-size:11px;color:var(--mute);margin-top:12px}
.ncard p{font-size:12.5px;line-height:1.6;color:var(--soft);margin-top:14px}
.ncard .arw{position:absolute;top:24px;right:24px;font-size:15px;color:var(--accent)}

/* ── footer ── */
footer{background:var(--deep);color:#fff;padding:130px 0 30px}
.f-top{display:flex;justify-content:space-between;gap:50px;flex-wrap:wrap}
.f-big{font-family:var(--mono);font-weight:600;text-transform:uppercase;
  font-size:clamp(36px,6.5vw,96px);line-height:.88}
.f-links{display:flex;gap:60px;flex-wrap:wrap}
.f-col h4{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:14px}
.f-col a,.f-col div{display:block;font-size:13px;color:#c3cad3;padding:5px 0}
.f-bar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:90px;
  padding-top:22px;border-top:1px solid rgba(255,255,255,.14);
  font-size:10.5px;letter-spacing:.05em;color:rgba(255,255,255,.5)}
.mail-lg{display:inline-block;margin-top:26px;font-size:16px;
  border-bottom:1px solid rgba(255,255,255,.32);padding-bottom:3px}

/* ── lightbox ── */
#lightbox{position:fixed;inset:0;z-index:300;background:rgba(6,9,12,.96);display:flex;
  align-items:center;justify-content:center;flex-direction:column;gap:18px;padding:5vh 5vw;
  opacity:0;pointer-events:none;transition:opacity .45s cubic-bezier(.22,1,.36,1)}
#lightbox.open{opacity:1;pointer-events:auto}
#lbImg{max-width:100%;max-height:82vh;width:auto;height:auto;object-fit:contain;
  transform:scale(.965);transition:transform .55s cubic-bezier(.22,1,.36,1)}
#lightbox.open #lbImg{transform:none}
#lbCap{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.65)}
#lbClose{position:absolute;top:24px;right:28px;width:42px;height:42px;
  border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;
  font-size:15px;line-height:1;border-radius:50%}
#lbClose:hover{background:rgba(255,255,255,.12)}

@media(max-width:900px){
  body{cursor:auto} a,button{cursor:auto} #cursor{display:none}
  /* three children need three columns — two made the toggle wrap to its own row */
  nav{grid-template-columns:1fr auto auto;padding:14px 18px;gap:14px}
  nav .l{gap:18px}
  nav .r{display:flex;gap:16px}
  nav .r .pill{display:none}
  nav .r .lang{margin-left:0;padding-left:0}
  nav .r .lang::before{display:none}
  .brandmark{height:26px}
  .grid2{grid-template-columns:1fr;gap:44px}
  .grid2>*:nth-child(even),.grid2>*:nth-child(even).in{transform:none}
  .news{grid-template-columns:1fr}
  .side{display:none}
  .f-links{gap:34px}
}
@media(max-width:620px){
  nav{grid-template-columns:auto 1fr;row-gap:10px;padding:12px 16px}
  nav .l{grid-column:1 / -1;grid-row:2;justify-self:center;gap:20px}
  nav .l .pill{font-size:11px}
  .brandmark{height:22px;justify-self:start}
  nav .r{justify-self:end}
  nav.solid{padding-top:10px;padding-bottom:10px}
}

/* inner pages are dark end-to-end — no white can ever show through a gap */
body:has(.page){background:var(--paper);color:var(--ink)}
body[data-theme="dark"]{background:var(--paper);color:var(--ink)}
