/* ============================================================
   BBVATS — Benjamin Benjamin and Vats
   Design system · "Bold architectural dark"
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@500;600;700;800;900&family=IBM+Plex+Sans:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  /* canvas */
  --bg:        #0b0c0e;
  --bg-1:      #111316;
  --bg-2:      #181b1f;
  --bg-3:      #21252a;
  --bg-card:   #14171a;

  /* ink */
  --ink:       #f1efe9;
  --ink-2:     #b4b2aa;
  --ink-3:     #7c7a72;
  --ink-4:     #56544d;

  /* lines */
  --line:      rgba(241,239,233,.14);
  --line-2:    rgba(241,239,233,.07);
  --line-3:    rgba(241,239,233,.04);

  /* accent — brand mustard / Delhi sandstone (default) */
  --accent:    #a07d35;
  --accent-2:  #bf9d52;
  --accent-3:  #d4bd84;
  --sand:      #c7b395;

  /* type */
  --display: 'Archivo', system-ui, sans-serif;
  --sans:    'IBM Plex Sans', system-ui, sans-serif;
  --mono:    'IBM Plex Mono', ui-monospace, monospace;

  /* metrics */
  --maxw: 1320px;
  --gut:  clamp(20px, 5vw, 72px);
  --nav-h: 76px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; background:var(--bg); }
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  font-size:clamp(16px,1.05vw,17.5px);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
::selection{ background:var(--accent); color:#fff; }
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; cursor:pointer; }

/* ---------- layout primitives ---------- */
.wrap{ max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gut); }
.wrap--wide{ max-width:1620px; }
.section{ padding-block:clamp(72px,11vh,150px); position:relative; }
.section--tight{ padding-block:clamp(48px,7vh,90px); }
.divider{ border:0; border-top:1px solid var(--line); margin:0; }

.grid{ display:grid; gap:clamp(20px,2.4vw,40px); }
.cols-2{ grid-template-columns:repeat(2,1fr); }
.cols-3{ grid-template-columns:repeat(3,1fr); }
.cols-4{ grid-template-columns:repeat(4,1fr); }
.cols-12{ grid-template-columns:repeat(12,1fr); }
@media(max-width:900px){
  .cols-2,.cols-3,.cols-4{ grid-template-columns:1fr; }
  .cols-3.keep2,.cols-4.keep2{ grid-template-columns:1fr 1fr; }
}
@media(max-width:760px){
  .cols-12{ grid-template-columns:1fr; }
  .cols-12 > *{ grid-column:auto !important; }
}

/* ---------- typography ---------- */
.kicker{
  font-family:var(--mono);
  font-size:.74rem;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink-3);
  display:inline-flex;
  align-items:center;
  gap:.7em;
}
.kicker .num{ color:var(--accent-2); }
.kicker::before{
  content:""; width:26px; height:1px; background:var(--accent);
  display:inline-block;
}
.kicker.no-rule::before{ display:none; }

.display{
  font-family:var(--display);
  font-weight:800;
  line-height:.96;
  letter-spacing:-.02em;
  font-size:clamp(2.7rem,8vw,7.5rem);
  text-transform:uppercase;
}
h1,h2,h3,h4{ font-family:var(--display); font-weight:700; line-height:1.02; letter-spacing:-.015em; }
.h-xl{ font-size:clamp(2.4rem,5.5vw,5rem); text-transform:uppercase; letter-spacing:-.02em; line-height:.98; }
.h-lg{ font-size:clamp(1.9rem,3.6vw,3.3rem); text-transform:uppercase; line-height:1.02; }
.h-md{ font-size:clamp(1.4rem,2.3vw,2.1rem); line-height:1.08; }
.h-sm{ font-size:clamp(1.1rem,1.5vw,1.35rem); line-height:1.15; }
.lead{ font-size:clamp(1.15rem,1.7vw,1.5rem); line-height:1.5; font-weight:300; color:var(--ink); letter-spacing:-.01em; }
.body-lg{ font-size:1.12rem; }
.muted{ color:var(--ink-2); }
.faint{ color:var(--ink-3); }
.accent{ color:var(--accent-2); }
.mono{ font-family:var(--mono); }
.upper{ text-transform:uppercase; letter-spacing:.04em; }
p + p{ margin-top:1.1em; }
.measure{ max-width:62ch; }
.measure-sm{ max-width:46ch; }
.text-balance{ text-wrap:balance; }
.text-pretty{ text-wrap:pretty; }

/* ---------- widow / orphan control ---------- */
.lead, .xd, .rd, .bio, p.muted, p.measure, .measure, .measure-sm, .section p, .section li, blockquote, dd, figcaption, .lx-herofoot .lead{ text-wrap:pretty; }
h2, h3, h4, .h-lg, .h-md, .h-sm{ text-wrap:balance; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.7em;
  font-family:var(--mono); font-size:.8rem; font-weight:500;
  letter-spacing:.12em; text-transform:uppercase;
  padding:.95em 1.5em; border:1px solid var(--line);
  background:transparent; color:var(--ink);
  transition:.4s var(--ease); position:relative;
}
.btn .arrow{ transition:transform .4s var(--ease); }
.btn:hover{ border-color:var(--ink); background:var(--ink); color:var(--bg); }
.btn:hover .arrow{ transform:translateX(4px); }
.btn--accent{ background:var(--accent); border-color:var(--accent); color:#fff; }
.btn--accent:hover{ background:var(--accent-2); border-color:var(--accent-2); color:#fff; }
.btn--ghost{ border-color:transparent; padding-inline:0; }
.btn--ghost:hover{ background:transparent; color:var(--accent-2); border-color:transparent; }
.btn--ghost:hover .arrow{ color:var(--accent-2); }

.link-arrow{
  font-family:var(--mono); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:.6em; color:var(--ink);
  border-bottom:1px solid var(--line); padding-bottom:.35em; transition:.3s var(--ease);
}
.link-arrow .arrow{ transition:transform .3s var(--ease); color:var(--accent-2); }
.link-arrow:hover{ color:var(--accent-2); border-color:var(--accent); }
.link-arrow:hover .arrow{ transform:translateX(4px); }

/* ---------- header ---------- */
.site-head{
  position:fixed; inset:0 0 auto 0; z-index:100;
  height:var(--nav-h);
  display:flex; align-items:center;
  border-bottom:1px solid transparent;
  transition:background .4s var(--ease), border-color .4s var(--ease), backdrop-filter .4s;
}
.site-head.solid{
  background:rgba(11,12,14,.82);
  backdrop-filter:blur(14px) saturate(1.2);
  border-bottom:1px solid var(--line-2);
}
.site-head .wrap{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.brand{ display:flex; flex-direction:column; align-items:flex-start; gap:.28rem; line-height:1; }
.brand .mark{
  font-family:var(--display); font-weight:900; font-size:1.45rem; letter-spacing:-.04em;
  line-height:1; text-transform:uppercase;
}
.brand .mark b{ color:var(--accent-2); font-weight:900; transition:color .3s var(--ease); }
.brand .mark .mk-s{ transition:color .3s var(--ease); }
.brand:hover .mark .mk-s{ color:var(--accent-2); }
.brand:hover .mark b{ color:var(--ink); }
.brand .sub{
  font-family:var(--mono); font-size:.54rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-3); display:none; white-space:nowrap;
}
@media(min-width:1120px){ .brand .sub{ display:block; } }

.nav{ display:flex; align-items:center; gap:clamp(11px,1.35vw,24px); }
.nav a{
  font-family:var(--mono); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-2); padding:.4em 0; position:relative; transition:color .3s;
}
.nav a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:var(--accent);
  transition:width .3s var(--ease);
}
.nav a:hover{ color:var(--ink); }
.nav a:hover::after{ width:100%; }
.nav a[aria-current]{ color:var(--ink); }
.nav a[aria-current]::after{ width:100%; }
.nav .nav-contact{
  border:1px solid var(--line); padding:.55em 1.1em; color:var(--ink);
}
.nav .nav-contact:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
.nav .nav-contact::after{ display:none; }

.nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:0; padding:8px 0; }
.nav-toggle span{ width:26px; height:1.5px; background:var(--ink); transition:.3s var(--ease); }
@media(max-width:900px){
  .nav.primary{
    position:fixed; inset:var(--nav-h) 0 auto 0; flex-direction:column; align-items:flex-start;
    gap:0; background:var(--bg-1); border-bottom:1px solid var(--line);
    padding:8px var(--gut) 28px; transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:.32s var(--ease); max-height:calc(100vh - var(--nav-h)); overflow:auto;
  }
  .nav.primary.open{ transform:none; opacity:1; pointer-events:auto; }
  .nav.primary a{ width:100%; padding:14px 0; border-bottom:1px solid var(--line-2); font-size:.95rem; }
  .nav.primary a::after{ display:none; }
  .nav .nav-contact{ border:0; padding:14px 0; }
  .nav-toggle{ display:flex; }
  .nav-toggle.open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  .nav-toggle.open span:nth-child(2){ opacity:0; }
  .nav-toggle.open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }
}

/* ---------- footer ---------- */
.site-foot{ border-top:1px solid var(--line); background:var(--bg-1); }
.foot-cta{ padding-block:clamp(64px,10vh,130px); border-bottom:1px solid var(--line); }
.foot-cta .display{ margin-bottom:.4em; }
.foot-grid{
  display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:40px;
  padding-block:clamp(48px,7vh,80px);
}
@media(max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; gap:34px; } }
@media(max-width:560px){ .foot-grid{ grid-template-columns:1fr; } }
.foot-col h4{ font-family:var(--mono); font-weight:500; font-size:.72rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-3); margin-bottom:1.3em; }
.foot-col ul{ list-style:none; display:flex; flex-direction:column; gap:.7em; }
.foot-col a{ color:var(--ink-2); font-size:.95rem; transition:color .3s; }
.foot-col a:hover{ color:var(--accent-2); }
.foot-brand .mark{ font-family:var(--display); font-weight:900; font-size:1.7rem; letter-spacing:-.03em;
  text-transform:uppercase; line-height:1; margin-bottom:.6em; }
.foot-brand .mark b{ color:var(--accent-2); }
.foot-bottom{ display:flex; flex-wrap:wrap; gap:14px 28px; justify-content:space-between; align-items:center;
  padding-block:24px; border-top:1px solid var(--line-2);
  font-family:var(--mono); font-size:.72rem; letter-spacing:.05em; color:var(--ink-4); text-transform:uppercase; }
.foot-bottom a{ color:var(--ink-3); }
.foot-bottom a:hover{ color:var(--accent-2); }

/* ---------- contact form: muted sample-message placeholder ---------- */
#contactForm input::placeholder,
#contactForm textarea::placeholder{ color:var(--ink-4); opacity:1; }

/* ---------- placeholder image ---------- */
.ph{
  position:relative; overflow:hidden; background:var(--bg-2);
  background-image:
    repeating-linear-gradient(135deg, rgba(199,179,149,.05) 0 1px, transparent 1px 13px);
  border:1px solid var(--line-2);
  display:flex; flex-direction:column; justify-content:space-between;
  color:var(--ink-3);
}
.ph::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(120% 90% at 50% 0%, transparent 40%, rgba(0,0,0,.35));
}
.ph .ph-tag{
  position:relative; z-index:1; font-family:var(--mono); font-size:.62rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--accent-3); padding:14px 16px;
}
.ph .ph-cap{
  position:relative; z-index:1; font-family:var(--mono); font-size:.7rem; line-height:1.4;
  text-transform:uppercase; letter-spacing:.04em; color:var(--ink-2); padding:16px;
  border-top:1px solid var(--line-2); max-width:30ch;
}
.ph.center{ justify-content:center; align-items:center; text-align:center; }
.ph.center .ph-cap{ border:0; }
.r-43{ aspect-ratio:4/3; } .r-169{ aspect-ratio:16/9; } .r-11{ aspect-ratio:1/1; }
.r-34{ aspect-ratio:3/4; } .r-45{ aspect-ratio:4/5; } .r-2{ aspect-ratio:2/1; }
.r-219{ aspect-ratio:21/9; } .r-32{ aspect-ratio:3/2; }

/* real image frame */
.frame{ position:relative; overflow:hidden; background:var(--bg-2); }
.frame img{ width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease), filter .8s; }
.frame.hoverable img{ filter:saturate(.9) brightness(.92); }
.frame.hoverable:hover img{ transform:scale(1.045); filter:saturate(1) brightness(1); }
.frame .cap{
  position:absolute; left:0; bottom:0; right:0; padding:14px 16px;
  font-family:var(--mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-2); background:linear-gradient(transparent,rgba(0,0,0,.7));
}

/* ---------- stats ---------- */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-2);
  border-block:1px solid var(--line); }
.stats.five{ grid-template-columns:repeat(5,1fr); }
.stats.five .stat .num{ font-size:clamp(1.9rem,3.3vw,3rem); white-space:nowrap; }
@media(max-width:1024px){ .stats.five{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:760px){ .stats{ grid-template-columns:1fr 1fr; } .stats.five{ grid-template-columns:1fr 1fr; } }
.stat{ background:var(--bg); padding:clamp(26px,3.4vw,48px) clamp(18px,2vw,30px); }
.stat .num{ font-family:var(--display); font-weight:800; font-size:clamp(2.6rem,4.6vw,4.4rem);
  line-height:.9; letter-spacing:-.03em; }
.stat .num .suf{ color:var(--accent-2); }
.stat .lab{ font-family:var(--mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-3); margin-top:1em; line-height:1.45; }

/* ---------- project cards ---------- */
.proj-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,2.5vw,46px); }
@media(max-width:760px){ .proj-grid{ grid-template-columns:1fr; } }
.proj-grid.three{ grid-template-columns:repeat(3,1fr); }
@media(max-width:980px){ .proj-grid.three{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .proj-grid.three{ grid-template-columns:1fr; } }

.pcard{ display:block; position:relative; }
.pcard .media{ position:relative; overflow:hidden; background:var(--bg-2); aspect-ratio:4/3; }
.pcard .media img{ width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease), filter .6s;
  filter:saturate(.88) brightness(.9); }
.pcard:hover .media img{ transform:scale(1.05); filter:saturate(1) brightness(1); }
.pcard .media .ph{ position:absolute; inset:0; }
.pcard .idx{ position:absolute; top:14px; left:14px; z-index:2; font-family:var(--mono); font-size:.66rem;
  letter-spacing:.1em; color:var(--ink-2); background:rgba(11,12,14,.5); backdrop-filter:blur(4px);
  padding:.35em .7em; border:1px solid var(--line-2); }
.pcard .meta{ display:flex; justify-content:space-between; gap:1rem; padding-top:18px; align-items:baseline; }
.pcard .ptitle{ font-family:var(--display); font-weight:700; font-size:clamp(1.15rem,1.7vw,1.5rem);
  text-transform:uppercase; letter-spacing:-.01em; line-height:1.05; transition:color .3s; }
.pcard:hover .ptitle{ color:var(--accent-2); }
.pcard .ploc{ font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-3); margin-top:.5em; }
.pcard .ptags{ font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--accent-2); white-space:nowrap; }
.pcard .pyear{ font-family:var(--mono); font-size:.8rem; color:var(--ink-3); }

/* ---------- project flip cards ---------- */
.pcard{ cursor:pointer; }
.pcard .media{ overflow:visible; perspective:1400px; transition:transform .6s var(--ease), box-shadow .6s var(--ease); transform-style:preserve-3d; }
.pcard .flip-inner{ position:relative; width:100%; height:100%; transform-style:preserve-3d; transition:transform .8s cubic-bezier(.5,.05,.2,1); }
.pcard .flip-face{ position:absolute; inset:0; overflow:hidden; -webkit-backface-visibility:hidden; backface-visibility:hidden; background:var(--bg-2); }
.pcard .flip-back{ transform:rotateY(180deg); display:flex; flex-direction:column; padding:clamp(16px,2vw,26px);
  background:linear-gradient(160deg,var(--bg-1),var(--bg-2)); border:1px solid var(--line); }
.pcard.flipped{ z-index:6; }
.pcard.flipped .media{ transform:scale(1.06); box-shadow:0 40px 90px rgba(0,0,0,.55); }
.pcard.flipped .flip-inner{ transform:rotateY(180deg); }
@media(prefers-reduced-motion:reduce){ .pcard .flip-inner{ transition:none; } .pcard.flipped .media{ transform:none; } }

.flip-back .fb-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:auto; }
.flip-back .fb-tag{ font-family:var(--mono); font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent-2); }
.flip-back .fb-x{ font-family:var(--display); font-size:1.3rem; line-height:1; color:var(--ink-3); }
.flip-back .fb-title{ font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:-.01em;
  font-size:clamp(1.1rem,1.7vw,1.5rem); line-height:1.02; margin:clamp(10px,1.4vw,16px) 0 clamp(12px,1.6vw,18px); }
.flip-back .fb-rows{ display:flex; flex-direction:column; gap:1px; background:var(--line-2); border-block:1px solid var(--line-2); }
.flip-back .fb-row{ display:flex; justify-content:space-between; gap:1rem; background:var(--bg-1); padding:7px 0; }
.flip-back .fb-row span{ font-family:var(--mono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-4); }
.flip-back .fb-row b{ font-family:var(--mono); font-size:.68rem; font-weight:500; color:var(--ink); text-align:right; }
.flip-back .fb-link{ font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-2);
  margin-top:clamp(12px,1.6vw,18px); display:inline-flex; align-items:center; gap:.5em; }
.flip-back .fb-link .ar{ transition:transform .4s var(--ease); }
.pcard.flipped .flip-back .fb-link:hover .ar{ transform:translateX(5px); }
.pcard:hover .ptitle{ color:var(--accent-2); }

/* ---------- project modal (lightbox) ---------- */
.pmodal{ position:fixed; inset:0; z-index:500; display:none; align-items:center; justify-content:center; padding:clamp(14px,4vw,5vh); perspective:1800px; }
.pmodal.open{ display:flex; }
.pmodal-scrim{ position:absolute; inset:0; background:rgba(8,9,11,.5); backdrop-filter:blur(3px); opacity:0; transition:opacity .4s var(--ease); }
.pmodal.in .pmodal-scrim{ opacity:1; }
.pmodal-card{ position:relative; z-index:1; width:min(80vw,1240px); height:80vh; max-height:880px; background:var(--bg-1); border:1px solid var(--line);
  display:grid; grid-template-columns:1.45fr 1fr; overflow:hidden; box-shadow:0 50px 140px rgba(0,0,0,.6);
  transform:scale(.9); opacity:0; transition:transform .5s cubic-bezier(.16,1,.3,1), opacity .5s var(--ease); }
.pmodal.in .pmodal-card{ transform:scale(1); opacity:1; }
@media(max-width:820px){ .pmodal-card{ grid-template-columns:1fr; grid-template-rows:1fr auto; width:92vw; height:86vh; } }

.pmodal-gallery{ overflow-y:auto; background:var(--bg-2); padding:clamp(10px,1.2vw,16px); display:grid; gap:clamp(10px,1.2vw,16px); align-content:start; }
.pmodal-gallery img{ width:100%; display:block; border:1px solid var(--line-2); background:var(--bg-3); }
.pmodal-gallery .ph{ aspect-ratio:4/3; }
.pmodal-gallery::-webkit-scrollbar{ width:8px; } .pmodal-gallery::-webkit-scrollbar-thumb{ background:var(--line); }

.pmodal-info{ position:relative; padding:clamp(24px,3vw,46px); overflow-y:auto; display:flex; flex-direction:column; }
.pmodal-info .pm-tag{ font-family:var(--mono); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--accent-2); }
.pmodal-info .pm-title{ font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.02em; line-height:.98;
  font-size:clamp(1.7rem,3vw,2.9rem); margin:clamp(12px,1.5vw,18px) 0 clamp(18px,2.4vw,28px); }
.pmodal-info .specs{ border-top:1px solid var(--line); }
.pmodal-info .pm-link{ margin-top:auto; padding-top:clamp(20px,2.5vw,30px); }
.pmodal-x{ position:absolute; top:14px; right:14px; z-index:3; width:42px; height:42px; border:1px solid var(--line);
  background:rgba(11,12,14,.6); backdrop-filter:blur(6px); color:var(--ink); font-family:var(--display); font-size:1.5rem; line-height:1;
  display:grid; place-items:center; transition:.3s var(--ease); }
.pmodal-x:hover{ background:var(--accent); border-color:var(--accent); color:#fff; transform:rotate(90deg); }
html.pmodal-lock{ overflow:hidden; }
@media(prefers-reduced-motion:reduce){ .pmodal-card,.pmodal-scrim{ transition:none; } }

/* ---------- image lightbox (project galleries) ---------- */
.lbox{ position:fixed; inset:0; z-index:600; display:none; align-items:center; justify-content:center; }
.lbox.open{ display:flex; }
.lbox-scrim{ position:absolute; inset:0; background:rgba(6,7,9,.86); backdrop-filter:blur(7px); opacity:0; transition:opacity .34s var(--ease); }
.lbox.in .lbox-scrim{ opacity:1; }
html[data-theme="light"] .lbox-scrim{ background:rgba(20,18,14,.8); }
.lbox-stage{ position:relative; z-index:1; margin:0; max-width:92vw; max-height:88vh; display:flex; flex-direction:column; align-items:center; gap:14px;
  opacity:0; transform:scale(.965); transition:opacity .34s var(--ease), transform .34s var(--ease); }
.lbox.in .lbox-stage{ opacity:1; transform:none; }
.lbox-img{ max-width:92vw; max-height:80vh; width:auto; height:auto; display:block; object-fit:contain;
  border:1px solid var(--line-2); background:var(--bg-2); box-shadow:0 40px 120px rgba(0,0,0,.62); }
.lbox-cap{ display:flex; align-items:baseline; justify-content:space-between; gap:24px; width:100%; max-width:min(92vw,1100px);
  font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2); }
.lbox-cap .lbox-count{ color:var(--accent-2); white-space:nowrap; }
.lbox-nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:54px; height:54px; border:1px solid var(--line);
  background:rgba(11,12,14,.5); backdrop-filter:blur(6px); color:var(--ink); font-family:var(--display); font-size:1.35rem; line-height:1;
  display:grid; place-items:center; cursor:pointer; transition:background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease); }
.lbox-prev{ left:clamp(12px,3vw,40px); }
.lbox-next{ right:clamp(12px,3vw,40px); }
.lbox-nav:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
.lbox-x{ position:absolute; top:clamp(12px,2vw,22px); right:clamp(12px,2vw,22px); z-index:2; width:48px; height:48px; border:1px solid var(--line);
  background:rgba(11,12,14,.5); backdrop-filter:blur(6px); color:var(--ink); font-family:var(--display); font-size:1.5rem; line-height:1;
  display:grid; place-items:center; cursor:pointer; transition:.3s var(--ease); }
.lbox-x:hover{ background:var(--accent); border-color:var(--accent); color:#fff; transform:rotate(90deg); }
@media(max-width:640px){ .lbox-nav{ width:44px; height:44px; } .lbox-img{ max-height:70vh; } .lbox-cap{ font-size:.64rem; gap:14px; } }
@media(prefers-reduced-motion:reduce){ .lbox-scrim,.lbox-stage{ transition:none; } }

/* ---------- filters ---------- */
.filterbar{ display:flex; flex-wrap:wrap; gap:8px 8px; align-items:center; }
.filterbar .lab{ font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-4); margin-right:.6em; }
.chip{ font-family:var(--mono); font-size:.74rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-2); padding:.55em 1em; border:1px solid var(--line); background:transparent;
  transition:.25s var(--ease); }
.chip:hover{ border-color:var(--accent); color:var(--accent-2); }
.chip[aria-pressed="true"]{ background:var(--ink); border-color:var(--ink); color:var(--bg); }
.chip .c{ color:var(--ink-4); margin-left:.5em; }
.chip[aria-pressed="true"] .c{ color:var(--bg); opacity:.5; }

/* ---------- spec / data list ---------- */
.specs{ border-top:1px solid var(--line); }
.specs .row{ display:grid; grid-template-columns:minmax(120px,200px) 1fr; gap:1.5rem;
  padding:16px 0; border-bottom:1px solid var(--line-2); }
.specs .k{ font-family:var(--mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); }
.specs .v{ font-size:1rem; color:var(--ink); }
.specs .v b{ font-weight:500; }

/* ---------- editorial blocks ---------- */
.pull{ font-family:var(--display); font-weight:600; font-size:clamp(1.5rem,3vw,2.6rem);
  line-height:1.12; letter-spacing:-.015em; text-transform:none; }
.pull b{ color:var(--accent-2); font-weight:600; }
.note{ font-family:var(--mono); font-size:.78rem; line-height:1.65; color:var(--ink-2);
  border-left:2px solid var(--accent); padding:4px 0 4px 18px; }

/* ---------- founders / people ---------- */
.person .portrait{ aspect-ratio:3/4; }
.person h3{ font-family:var(--display); font-weight:700; font-size:1.5rem; text-transform:uppercase;
  margin-top:20px; letter-spacing:-.01em; }
.person .role{ font-family:var(--mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--accent-2); margin-top:.6em; }
.person .years{ font-family:var(--mono); font-size:.72rem; color:var(--ink-3); }
.person p{ color:var(--ink-2); margin-top:1em; font-size:.98rem; }

/* ---------- process steps ---------- */
.steps{ counter-reset:step; border-top:1px solid var(--line); }
.step{ display:grid; grid-template-columns:auto 1fr; gap:clamp(20px,4vw,64px);
  padding-block:clamp(28px,4vw,52px); border-bottom:1px solid var(--line-2); align-items:start; }
.step .si{ font-family:var(--mono); font-size:.8rem; color:var(--accent-2); letter-spacing:.1em; padding-top:.4em; }
.step h3{ font-size:clamp(1.5rem,2.6vw,2.4rem); text-transform:uppercase; line-height:1.02; }
.step .sd{ color:var(--ink-2); max-width:60ch; margin-top:1em; }
.step:hover h3{ color:var(--accent-3); transition:color .3s; }

/* ---------- expertise list ---------- */
.xlist{ border-top:1px solid var(--line); }
.xrow{ display:grid; grid-template-columns:80px 1.3fr 2fr auto; gap:clamp(16px,2.5vw,40px);
  align-items:center; padding-block:clamp(26px,3vw,40px); border-bottom:1px solid var(--line-2);
  transition:padding .4s var(--ease); }
.xrow:hover{ padding-left:14px; }
.xrow .xn{ font-family:var(--mono); font-size:.8rem; color:var(--ink-4); }
.xrow h3{ font-size:clamp(1.5rem,2.6vw,2.4rem); text-transform:uppercase; line-height:1; }
.xrow:hover h3{ color:var(--accent-3); transition:color .3s; }
.xrow .xd{ color:var(--ink-2); font-size:.98rem; max-width:50ch; }
.xrow .xtag{ font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-2); }
@media(max-width:860px){
  .xrow{ grid-template-columns:1fr; gap:14px; }
  .xrow .xtag{ order:-1; }
}
/* sustainability list — uniform stacked rows, neater in the narrow column */
@media(min-width:861px){
  #sustainability .xrow{
    grid-template-columns:36px 1fr auto;
    grid-template-areas:"n title tag" ".  desc  desc";
    align-items:start; column-gap:clamp(14px,1.5vw,22px); row-gap:10px;
    padding-block:clamp(20px,2.3vw,30px);
  }
  #sustainability .xrow .xn{ grid-area:n; padding-top:.4em; }
  #sustainability .xrow h3{ grid-area:title; font-size:clamp(1.2rem,1.6vw,1.6rem); }
  #sustainability .xrow .xtag{ grid-area:tag; padding-top:.55em; white-space:nowrap; }
  #sustainability .xrow .xd{ grid-area:desc; max-width:none; margin-top:2px; text-align:left; }
  #sustainability .xrow:hover{ padding-left:8px; }
}

/* ---------- hero ---------- */
.hero{ position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:flex-end;
  padding-bottom:clamp(40px,7vh,80px); overflow:hidden; }
.hero .hero-bg{ position:absolute; inset:0; z-index:0; }
.hero .hero-bg img{ width:100%; height:100%; object-fit:cover; }
.hero .scrim{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(11,12,14,.62) 0%, rgba(11,12,14,.28) 38%, rgba(11,12,14,.86) 100%); }
.hero .scrim.left{ background:
  linear-gradient(180deg, rgba(11,12,14,.55) 0%, rgba(11,12,14,.2) 40%, rgba(11,12,14,.92) 100%),
  linear-gradient(90deg, rgba(11,12,14,.72) 0%, rgba(11,12,14,.05) 55%); }
.hero .wrap{ position:relative; z-index:2; width:100%; }

/* page hero (interior) */
.phero{ padding-top:calc(var(--nav-h) + clamp(56px,9vh,120px)); padding-bottom:clamp(40px,6vh,72px); }
.phero .display{ margin-top:.2em; }

/* page hero with background image (behind text) */
.phero--img{ position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end;
  min-height:clamp(440px,64vh,660px); padding-top:calc(var(--nav-h) + clamp(48px,8vh,96px)); padding-bottom:clamp(40px,6vh,72px); }
.phero--img .hero-bg{ position:absolute; inset:0; z-index:0; }
.phero--img .hero-bg img{ width:100%; height:100%; object-fit:cover; filter:saturate(.92) brightness(.8); }
.phero--img .scrim{ position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(120% 120% at 50% 28%, rgba(11,12,14,.30) 0%, rgba(11,12,14,.62) 62%, rgba(11,12,14,.88) 100%),
    linear-gradient(180deg, rgba(11,12,14,.80) 0%, rgba(11,12,14,.42) 34%, rgba(11,12,14,.66) 72%, rgba(11,12,14,.94) 100%); }
.phero--img .wrap{ position:relative; z-index:2; width:100%; }
.phero--img, .phero--img .display, .phero--img h1, .phero--img .lead{ color:#f1efe9; }
.phero--img .kicker{ color:#cfcdc6; }
.phero--img .kicker .num{ color:var(--accent-2); }
.phero--img .accent{ color:var(--accent-3); }
.phero--img .note{ color:#e7e5df; }
.phero--img .display, .phero--img .lead{ text-shadow:0 2px 34px rgba(0,0,0,.55); }
@media(prefers-reduced-motion:no-preference){ .phero--img .hero-bg img{ animation:kenburns 18s ease-in-out infinite alternate; transform-origin:58% 42%; } }

/* full-image hero: show whole image (contain) with a blurred copy filling the sides */
.phero--fit .hero-bg .fill{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:blur(34px) saturate(.85) brightness(.55); transform:scale(1.15); animation:none !important; }
.phero--fit .hero-bg .main{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; filter:none;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%);
  mask-image:linear-gradient(90deg, transparent 0%, #000 14%, #000 86%, transparent 100%); }
@media(prefers-reduced-motion:no-preference){ .phero--fit .hero-bg .main{ animation:kenburns 18s ease-in-out infinite alternate; transform-origin:50% 45%; } }
/* awards hero: pan left→right instead of zoom */
@media(prefers-reduced-motion:no-preference){ [data-page="awards"] .phero--fit .hero-bg .main{ animation:hpan 22s ease-in-out infinite alternate; transform-origin:50% 50%; } }
@keyframes hpan{ from{ transform:scale(1.08) translateX(-3.5%); } to{ transform:scale(1.08) translateX(3.5%); } }
/* fade left & right edges into blackness */
.phero--fit .scrim{
  background:
    linear-gradient(90deg, #0b0c0e 0%, rgba(11,12,14,.7) 12%, rgba(11,12,14,0) 30%, rgba(11,12,14,0) 70%, rgba(11,12,14,.7) 88%, #0b0c0e 100%),
    radial-gradient(120% 120% at 50% 28%, rgba(11,12,14,.18) 0%, rgba(11,12,14,.5) 62%, rgba(11,12,14,.82) 100%),
    linear-gradient(180deg, rgba(11,12,14,.78) 0%, rgba(11,12,14,.38) 34%, rgba(11,12,14,.6) 72%, rgba(11,12,14,.94) 100%); }

/* ---------- misc utilities ---------- */
.flex{ display:flex; } .between{ justify-content:space-between; } .items-end{ align-items:flex-end; }
.items-center{ align-items:center; } .gap-s{ gap:12px; } .gap-m{ gap:24px; } .gap-l{ gap:40px; }
.wrap-flex{ flex-wrap:wrap; }
.mt-s{ margin-top:14px; } .mt-m{ margin-top:28px; } .mt-l{ margin-top:48px; } .mt-xl{ margin-top:72px; }
.mb-m{ margin-bottom:28px; } .mb-l{ margin-bottom:48px; }
.tag-row{ display:flex; flex-wrap:wrap; gap:8px; }
.tag{ font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--ink-2); border:1px solid var(--line); padding:.45em .8em; }
.tag.on{ color:var(--accent-2); border-color:var(--accent); }
.full-bleed{ width:100vw; margin-left:50%; transform:translateX(-50%); }

/* ---------- forms ---------- */
.field{ display:flex; flex-direction:column; gap:.6em; margin-bottom:24px; }
.field label{ font-family:var(--mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3); }
.field input,.field select,.field textarea{
  background:var(--bg-1); border:1px solid var(--line); color:var(--ink);
  padding:14px 16px; font-family:var(--sans); font-size:1rem; transition:border-color .3s; }
.field textarea{ resize:vertical; min-height:130px; }
.field input:focus,.field select,.field textarea:focus{ outline:none; border-color:var(--accent); }
.field select{ font-family:var(--sans); }
.formnote{ font-family:var(--mono); font-size:.72rem; color:var(--ink-4); }

/* ---------- reveal ---------- */
@media(prefers-reduced-motion:no-preference){
  .reveal{ opacity:0; transform:translateY(28px); filter:blur(6px); transition:opacity 1s var(--ease), transform 1s var(--ease), filter 1s var(--ease); }
  .reveal.in{ opacity:1; transform:none; filter:blur(0); }
  .reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; }
  .reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }
  .lineclip{ overflow:hidden; }
  .lineclip > *{ display:inline-block; transform:translateY(105%); transition:transform 1s var(--ease); }
  .lineclip.in > *{ transform:none; }
}

/* marquee */
.marquee{ overflow:hidden; border-block:1px solid var(--line); padding-block:18px; }
.marquee .track{ display:flex; gap:3rem; width:max-content; animation:scroll 38s linear infinite; }
.marquee:hover .track{ animation-play-state:paused; }
.marquee .item{ font-family:var(--display); font-weight:700; font-size:clamp(1.1rem,1.6vw,1.5rem);
  text-transform:uppercase; letter-spacing:.01em; color:var(--ink-2); display:flex; align-items:center; gap:3rem; }
.marquee .item::after{ content:"◆"; color:var(--accent); font-size:.7em; }
@keyframes scroll{ to{ transform:translateX(-50%); } }
@media(prefers-reduced-motion:reduce){ .marquee .track{ animation:none; } }

/* ============================================================
   PREMIUM INTERACTION LAYER
   ============================================================ */

/* film grain */
.grain{ position:fixed; inset:0; z-index:140; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNDAnIGhlaWdodD0nMTQwJz48ZmlsdGVyIGlkPSduJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMC44JyBudW1PY3RhdmVzPScyJyBzdGl0Y2hUaWxlcz0nc3RpdGNoJy8+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgZmlsdGVyPSd1cmwoI24pJy8+PC9zdmc+");
  background-size:150px 150px; }
@media(prefers-reduced-motion:reduce){ .grain{ display:none; } }

/* scroll progress */
.scroll-prog{ position:fixed; top:0; left:0; height:2px; width:0; background:var(--accent); z-index:200; }

/* vignette texture */
.vignette{ position:fixed; inset:0; z-index:139; pointer-events:none; opacity:0; transition:opacity .5s var(--ease);
  background:radial-gradient(120% 90% at 50% 42%, transparent 52%, rgba(0,0,0,.5) 100%); }
.vignette.on{ opacity:1; }

/* intro loader */
.intro{ position:fixed; inset:0; z-index:300; background:var(--bg); display:flex; align-items:center; justify-content:center;
  flex-direction:column; transition:transform 1.05s var(--ease), clip-path 1.05s var(--ease); will-change:transform; }
.intro.lift{ transform:translateY(-101%); }
.intro-inner{ text-align:center; }
.intro-mark{ font-family:var(--display); font-weight:900; font-size:clamp(2.6rem,8vw,5.4rem); letter-spacing:-.045em; text-transform:uppercase; line-height:1; }
.intro-mark b{ color:var(--accent-2); }
.intro-sub{ font-family:var(--mono); font-size:.68rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-3); margin-top:1.3em; }
.intro-bar{ width:min(280px,54vw); height:1px; background:var(--line); margin:2.6em auto 0; position:relative; overflow:hidden; }
.intro-bar span{ position:absolute; left:0; top:0; height:100%; width:0; background:var(--accent); }
.intro-count{ font-family:var(--mono); font-size:clamp(1rem,2.2vw,1.5rem); color:var(--ink-2); letter-spacing:.08em; font-weight:500; margin-top:1.5em; text-align:center; }
body.intro-lock{ overflow:hidden; }
html.intro-lock{ overflow:hidden; }
html.intro-cover body > *:not(.intro){ visibility:hidden !important; }
html.no-intro .intro[data-intro]{ display:none !important; }
@media(prefers-reduced-motion:reduce){ .intro{ display:none; } }

/* page-to-page transitions */
body.leaving{ animation:pageOut .4s var(--ease) forwards; }
@keyframes pageOut{ from{ opacity:1; transform:none; } to{ opacity:0; transform:translateY(-14px); } }
@media(prefers-reduced-motion:no-preference){
  html.page-enter body{ animation:pageIn .85s var(--ease); }
}
@keyframes pageIn{ 0%{ opacity:0; transform:translateY(26px); } 100%{ opacity:1; transform:none; } }

/* custom cursor */
.cursor-dot,.cursor-ring{ position:fixed; left:0; top:0; pointer-events:none; z-index:600; border-radius:50%; transform:translate(-50%,-50%); }
.cursor-dot{ width:6px; height:6px; background:var(--accent-2); }
.cursor-ring{ width:34px; height:34px; border:1px solid var(--line); transition:width .25s var(--ease),height .25s var(--ease),border-color .25s,background .25s; }
.cursor-ring.hot{ width:56px; height:56px; border-color:var(--accent); background:rgba(193,91,52,.05); }

/* cursor style variants (set via [data-cursor] on <html>) */
[data-cursor="dot"] .cursor-ring{ display:none !important; }
[data-cursor="dot"] .cursor-dot{ width:12px; height:12px; }
[data-cursor="disc"] .cursor-dot{ display:none !important; }
[data-cursor="disc"] .cursor-ring{ width:24px; height:24px; border:0; background:var(--accent-2); mix-blend-mode:difference; }
[data-cursor="disc"] .cursor-ring.hot{ width:48px; height:48px; background:#fff; }
[data-cursor="cross"] .cursor-dot{ display:none !important; }
[data-cursor="cross"] .cursor-ring{ width:24px; height:24px; border:0; border-radius:0; }
[data-cursor="cross"] .cursor-ring::before,[data-cursor="cross"] .cursor-ring::after{ content:""; position:absolute; left:50%; top:50%; background:var(--accent-2); transition:width .25s var(--ease),height .25s var(--ease); }
[data-cursor="cross"] .cursor-ring::before{ width:1.5px; height:20px; transform:translate(-50%,-50%); }
[data-cursor="cross"] .cursor-ring::after{ width:20px; height:1.5px; transform:translate(-50%,-50%); }
[data-cursor="cross"] .cursor-ring.hot::before{ height:30px; } [data-cursor="cross"] .cursor-ring.hot::after{ width:30px; }
[data-cursor="halo"] .cursor-dot{ width:5px; height:5px; }
[data-cursor="halo"] .cursor-ring{ width:46px; height:46px; border-color:var(--accent); }
[data-cursor="halo"] .cursor-ring.hot{ width:72px; height:72px; background:rgba(193,91,52,.07); }
@media (hover:hover) and (pointer:fine){ body.cursor-on{ cursor:none; } body.cursor-on a, body.cursor-on button, body.cursor-on .pcard, body.cursor-on .chip{ cursor:none; } }
@media (hover:none),(pointer:coarse){ .cursor-dot,.cursor-ring{ display:none; } }

/* hero ken burns + legibility */
@media(prefers-reduced-motion:no-preference){
  .hero .hero-bg img{ animation:kenburns 18s ease-in-out infinite alternate; transform-origin:58% 42%; }
}
@keyframes kenburns{ from{ transform:scale(1.03); } to{ transform:scale(1.13); } }
.hero .display{ text-shadow:0 4px 60px rgba(0,0,0,.45); }
.hero .display{ font-size:clamp(2.4rem,6.6vw,6.2rem); }
.hero .lead{ text-shadow:0 2px 30px rgba(0,0,0,.5); }

/* scroll cue */
.scrollcue{ position:absolute; left:var(--gut); bottom:24px; z-index:2; display:flex; align-items:center; gap:.8em;
  font-family:var(--mono); font-size:.64rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-3); }
.scrollcue i{ width:30px; height:1px; background:var(--accent); display:block; transform-origin:left; animation:cue 2.4s var(--ease) infinite; }
@keyframes cue{ 0%,100%{ transform:scaleX(.35); opacity:.45; } 50%{ transform:scaleX(1); opacity:1; } }
@media(max-width:760px){ .scrollcue{ display:none; } }

/* card hover lift */
.pcard{ transition:transform .55s var(--ease); }
.pcard:hover{ transform:translateY(-6px); }

/* button sweep */
.btn{ position:relative; overflow:hidden; isolation:isolate; }
.btn::before{ content:""; position:absolute; inset:0; z-index:-1; background:var(--ink); transform:translateY(101%); transition:transform .5s var(--ease); }
.btn--accent::before{ background:#fff; }
.btn:hover::before{ transform:translateY(0); }
.btn--accent:hover{ color:var(--accent); }
.btn--ghost::before{ display:none; }

/* static clients band */
.clients{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--line-2); border:1px solid var(--line-2); }
.clients span{ background:var(--bg); display:flex; align-items:center; min-height:84px; padding:0 22px;
  font-family:var(--mono); font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-2); transition:color .35s var(--ease); }
.clients span:hover{ color:var(--accent-2); }
@media(max-width:820px){ .clients{ grid-template-columns:repeat(2,1fr); } .clients span{ min-height:70px; font-size:.72rem; } }

/* sector cards (Expertise) hover */
[data-screen-label="Expertise — Sectors"] .grid a{ transition:border-color .3s var(--ease); }
[data-screen-label="Expertise — Sectors"] .grid a h3{ transition:color .3s var(--ease); }
[data-screen-label="Expertise — Sectors"] .grid a .mono{ transition:color .3s var(--ease), transform .3s var(--ease); display:inline-block; }
[data-screen-label="Expertise — Sectors"] .grid a:hover{ border-top-color:var(--accent) !important; }
[data-screen-label="Expertise — Sectors"] .grid a:hover h3{ color:var(--accent-2); }
[data-screen-label="Expertise — Sectors"] .grid a:hover .mono{ color:var(--accent-2); transform:translateX(4px); }

/* ===== V2 awestruck pages ===== */
.v2hero{ position:relative; min-height:92vh; min-height:92svh; display:flex; align-items:flex-end; overflow:hidden;
  padding-bottom:clamp(36px,6vh,72px); }
.v2hero .hero-bg{ position:absolute; inset:0; z-index:0; }
.v2hero .hero-bg img{ width:100%; height:100%; object-fit:cover; filter:brightness(.5) saturate(.9); }
@media(prefers-reduced-motion:no-preference){ .v2hero .hero-bg img{ animation:kenburns 18s ease-in-out infinite alternate; transform-origin:55% 45%; } }
.v2hero .scrim{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(11,12,14,.55) 0%,rgba(11,12,14,.2) 42%,rgba(11,12,14,.96) 100%),
  radial-gradient(120% 80% at 50% 50%, transparent 45%, rgba(11,12,14,.6)); }
.v2hero .wrap{ position:relative; z-index:2; width:100%; }
.v2hero .display{ text-shadow:0 4px 60px rgba(0,0,0,.5); }
.v2hero .giant{ font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.03em;
  line-height:.9; font-size:clamp(3rem,11vw,9.5rem); }
.v2-overline{ font-family:var(--mono); font-size:.74rem; letter-spacing:.34em; text-transform:uppercase; color:var(--accent-2);
  display:flex; align-items:center; gap:1em; margin-bottom:1.6em; }
.v2-overline::before{ content:""; width:46px; height:1px; background:var(--accent); }

.v2-rows{ border-top:1px solid var(--line); }
.v2-row{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:clamp(16px,3vw,48px);
  padding:clamp(22px,3.4vw,40px) 0; border-bottom:1px solid var(--line-2); position:relative; transition:padding-left .45s var(--ease); }
.v2-row::before{ content:""; position:absolute; left:0; top:0; height:100%; width:0; background:
  linear-gradient(90deg, color-mix(in srgb, var(--accent) 14%, transparent), transparent); transition:width .45s var(--ease); z-index:-1; }
.v2-row:hover{ padding-left:18px; }
.v2-row:hover::before{ width:100%; }
.v2-row .v2-rk{ font-family:var(--mono); font-size:.72rem; color:var(--ink-4); letter-spacing:.1em; }
.v2-row .v2-rt{ font-family:var(--display); font-weight:700; text-transform:uppercase; line-height:1.02;
  font-size:clamp(1.4rem,2.8vw,2.4rem); letter-spacing:-.01em; }
.v2-row .v2-rs{ font-family:var(--mono); font-size:.78rem; color:var(--ink-3); margin-top:.5em; letter-spacing:.02em; }
.v2-row:hover .v2-rt{ color:var(--accent-3); transition:color .3s; }
.v2-row .v2-go{ font-family:var(--mono); font-size:.78rem; color:var(--ink-2); display:inline-flex; align-items:center; gap:.5em;
  letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.v2-row .v2-go .ar{ transition:transform .4s var(--ease); color:var(--accent-2); }
.v2-row:hover .v2-go .ar{ transform:translateX(6px); }
@media(max-width:680px){ .v2-row{ grid-template-columns:auto 1fr; } .v2-row .v2-go{ display:none; } }

.v2-field{ position:relative; margin-bottom:30px; }
.v2-field input,.v2-field textarea,.v2-field select{ width:100%; background:transparent; border:0; border-bottom:1px solid var(--line);
  color:var(--ink); padding:14px 2px 12px; font-family:var(--sans); font-size:1.06rem; transition:border-color .3s; }
.v2-field textarea{ resize:vertical; min-height:90px; }
.v2-field select option{ background:var(--bg-1); color:var(--ink); }
.v2-field label{ position:absolute; left:2px; top:14px; font-family:var(--mono); font-size:.92rem; letter-spacing:.02em;
  color:var(--ink-3); pointer-events:none; transition:.28s var(--ease); }
.v2-field input:focus,.v2-field textarea:focus,.v2-field select:focus{ outline:none; border-color:var(--accent); }
.v2-field input:focus + label,.v2-field input:not(:placeholder-shown) + label,
.v2-field textarea:focus + label,.v2-field textarea:not(:placeholder-shown) + label,
.v2-field select:focus + label{
  top:-10px; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--accent-2); }
.v2-field .lab-static{ position:static; display:block; margin-bottom:8px; font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); }

.v2-acc{ border-top:1px solid var(--line); }
.v2-acc details{ border-bottom:1px solid var(--line-2); }
.v2-acc summary{ list-style:none; cursor:pointer; display:grid; grid-template-columns:auto 1fr auto; gap:clamp(14px,2.5vw,38px);
  align-items:center; padding:clamp(20px,3vw,34px) 0; transition:padding-left .4s var(--ease); }
.v2-acc summary::-webkit-details-marker{ display:none; }
.v2-acc summary:hover{ padding-left:14px; }
.v2-acc .v2-an{ font-family:var(--mono); font-size:.74rem; color:var(--ink-4); }
.v2-acc .v2-at{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:clamp(1.4rem,2.6vw,2.3rem); line-height:1; }
.v2-acc summary:hover .v2-at{ color:var(--accent-3); transition:color .3s; }
.v2-acc .v2-plus{ position:relative; width:20px; height:20px; flex:none; }
.v2-acc .v2-plus::before,.v2-acc .v2-plus::after{ content:""; position:absolute; background:var(--accent-2); transition:.3s var(--ease); }
.v2-acc .v2-plus::before{ left:0; top:9px; width:20px; height:2px; }
.v2-acc .v2-plus::after{ left:9px; top:0; width:2px; height:20px; }
.v2-acc details[open] .v2-plus::after{ transform:rotate(90deg); opacity:0; }
.v2-acc .v2-ab{ overflow:hidden; max-height:0; transition:max-height .5s var(--ease), padding .5s var(--ease); }
.v2-acc details[open] .v2-ab{ max-height:240px; padding:0 0 clamp(22px,3vw,34px) 0; }
.v2-acc .v2-ab p{ color:var(--ink-2); max-width:62ch; }

.v2-availbar{ display:flex; flex-wrap:wrap; gap:10px 12px; }
.v2-availbar .pill{ font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-2);
  border:1px solid var(--line); padding:.6em 1em; display:inline-flex; align-items:center; gap:.6em; }
.v2-availbar .pill .dot{ width:7px; height:7px; border-radius:50%; background:var(--accent-2); animation:pulse 2.4s infinite; }
@keyframes pulse{ 0%{ box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent);} 70%{ box-shadow:0 0 0 9px transparent;} 100%{ box-shadow:0 0 0 0 transparent;} }

/* ===== WOW pages (contact-v2, careers-v2) ===== */
.wow{ --glow: color-mix(in srgb, var(--accent) 60%, transparent); }
.wow-hero{ position:relative; min-height:100vh; min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end;
  overflow:hidden; padding-bottom:clamp(40px,7vh,90px); }
.wow-hero .bg{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.wow-hero .bg img{ width:100%; height:120%; object-fit:cover; filter:brightness(.42) saturate(.85) contrast(1.05);
  will-change:transform; }
@media(prefers-reduced-motion:no-preference){ .wow-hero .bg img{ animation:wowdrift 22s ease-in-out infinite alternate; transform-origin:50% 40%; } }
@keyframes wowdrift{ from{ transform:scale(1.08) translateY(0); } to{ transform:scale(1.2) translateY(-3%); } }
.wow-hero .veil{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(11,12,14,.5),rgba(11,12,14,.1) 35%,rgba(11,12,14,.97)),
  radial-gradient(80% 60% at 75% 30%, color-mix(in srgb,var(--accent) 16%,transparent), transparent 60%); }
.wow-hero .wrap{ position:relative; z-index:2; width:100%; }

.wow-tag{ font-family:var(--mono); font-size:.76rem; letter-spacing:.4em; text-transform:uppercase; color:var(--accent-2);
  display:flex; align-items:center; gap:1.1em; margin-bottom:clamp(20px,4vh,42px); opacity:0; transform:translateY(14px);
  transition:opacity .8s var(--ease), transform .8s var(--ease); }
.wow-tag::before{ content:""; width:60px; height:1px; background:var(--accent); }
.wow-hero.in .wow-tag{ opacity:1; transform:none; transition-delay:.1s; }

.wow-kin{ font-family:var(--display); font-weight:900; text-transform:uppercase; letter-spacing:-.035em; line-height:.82;
  font-size:clamp(3.4rem,15vw,15rem); margin:0; }
.wow-kin .ln{ display:block; overflow:hidden; }
.wow-kin .ln > span{ display:block; transform:translateY(108%); transition:transform 1.05s cubic-bezier(.16,1,.3,1); }
.wow-hero.in .wow-kin .ln > span{ transform:none; }
.wow-hero.in .wow-kin .ln:nth-child(1) > span{ transition-delay:.16s; }
.wow-hero.in .wow-kin .ln:nth-child(2) > span{ transition-delay:.28s; }
.wow-hero.in .wow-kin .ln:nth-child(3) > span{ transition-delay:.40s; }
.wow-kin em{ font-style:normal; color:var(--accent-2); }

.wow-sub{ opacity:0; transform:translateY(16px); transition:opacity .9s var(--ease) .5s, transform .9s var(--ease) .5s; }
.wow-hero.in .wow-sub{ opacity:1; transform:none; }

.wow-scrolldot{ position:absolute; left:50%; bottom:22px; z-index:2; transform:translateX(-50%);
  font-family:var(--mono); font-size:.6rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-3);
  display:flex; flex-direction:column; align-items:center; gap:10px; opacity:0; transition:opacity 1s .9s; }
.wow-hero.in .wow-scrolldot{ opacity:.8; }
.wow-scrolldot i{ width:1px; height:38px; background:linear-gradient(var(--accent),transparent); display:block; animation:wowdrop 1.8s var(--ease) infinite; }
@keyframes wowdrop{ 0%{ transform:scaleY(0); transform-origin:top; } 45%{ transform:scaleY(1); transform-origin:top; } 55%{ transform:scaleY(1); transform-origin:bottom; } 100%{ transform:scaleY(0); transform-origin:bottom; } }
@media(max-width:700px){ .wow-scrolldot{ display:none; } }

/* giant display email / link */
.wow-mega{ display:inline-block; font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.03em;
  line-height:.95; font-size:clamp(2rem,7vw,6.2rem); color:var(--ink); position:relative; transition:color .4s var(--ease); }
.wow-mega::after{ content:""; position:absolute; left:0; bottom:.06em; width:100%; height:3px; background:var(--accent);
  transform:scaleX(0); transform-origin:left; transition:transform .55s cubic-bezier(.16,1,.3,1); }
.wow-mega:hover{ color:var(--accent-2); }
.wow-mega:hover::after{ transform:scaleX(1); }

/* big channel list */
.wow-list{ border-top:1px solid var(--line); }
.wow-li{ display:grid; grid-template-columns:clamp(46px,6vw,90px) 1fr auto; align-items:baseline; gap:clamp(14px,3vw,44px);
  padding:clamp(26px,4vw,52px) 0; border-bottom:1px solid var(--line-2); position:relative; isolation:isolate;
  transition:padding-left .5s cubic-bezier(.16,1,.3,1); }
.wow-li .n{ font-family:var(--mono); font-size:clamp(.8rem,1vw,1rem); color:var(--accent-2); }
.wow-li .t{ font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:-.015em; line-height:1;
  font-size:clamp(1.7rem,4.6vw,3.6rem); transition:color .35s; }
.wow-li .s{ font-family:var(--mono); font-size:.8rem; color:var(--ink-3); margin-top:.7em; letter-spacing:.03em; }
.wow-li .go{ font-family:var(--mono); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2); white-space:nowrap; }
.wow-li .go .ar{ display:inline-block; color:var(--accent-2); transition:transform .45s var(--ease); }
.wow-li::before{ content:""; position:absolute; inset:0 -100vw 0 -100vw; z-index:-1;
  background:linear-gradient(90deg, transparent, color-mix(in srgb,var(--accent) 12%,transparent) 50%, transparent);
  opacity:0; transition:opacity .45s; }
.wow-li:hover{ padding-left:clamp(10px,1.6vw,26px); }
.wow-li:hover::before{ opacity:1; }
.wow-li:hover .t{ color:var(--accent-3); }
.wow-li:hover .go .ar{ transform:translateX(8px); }
@media(max-width:680px){ .wow-li{ grid-template-columns:auto 1fr; } .wow-li .go{ display:none; } }

/* clock / meta chips */
.wow-meta{ display:flex; flex-wrap:wrap; gap:12px 14px; }
.wow-chip{ font-family:var(--mono); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2);
  border:1px solid var(--line); padding:.7em 1.1em; display:inline-flex; align-items:center; gap:.7em; }
.wow-chip .dot{ width:7px; height:7px; border-radius:50%; background:var(--accent-2); animation:pulse 2.4s infinite; }
.wow-chip b{ color:var(--ink); font-weight:500; font-variant-numeric:tabular-nums; }

/* wow form */
.wow-field{ position:relative; margin-bottom:clamp(26px,3.5vw,40px); }
.wow-field input,.wow-field textarea,.wow-field select{ width:100%; background:transparent; border:0; border-bottom:1px solid var(--line);
  color:var(--ink); padding:16px 2px 14px; font-family:var(--display); font-weight:500; font-size:clamp(1.3rem,2.4vw,1.9rem);
  letter-spacing:-.01em; transition:border-color .4s; }
.wow-field textarea{ resize:vertical; min-height:64px; font-family:var(--sans); font-weight:300; font-size:1.1rem; letter-spacing:0; }
.wow-field select option{ background:var(--bg-1); color:var(--ink); font-size:1rem; }
.wow-field label{ position:absolute; left:2px; top:20px; font-family:var(--mono); font-size:1rem; color:var(--ink-3);
  pointer-events:none; transition:.3s var(--ease); }
.wow-field input:focus,.wow-field textarea:focus,.wow-field select:focus{ outline:none; border-color:var(--accent); }
.wow-field input:focus + label,.wow-field input:not(:placeholder-shown) + label,
.wow-field textarea:focus + label,.wow-field textarea:not(:placeholder-shown) + label,
.wow-field select:focus + label{ top:-12px; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--accent-2); }
.wow-field .lab-static{ position:static; display:block; margin-bottom:10px; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3); }

/* careers role panels */
.wow-roles{ border-top:1px solid var(--line); }
.wow-role{ display:grid; grid-template-columns:clamp(46px,6vw,90px) 1fr; gap:clamp(14px,3vw,44px); align-items:start;
  padding:clamp(28px,4.2vw,56px) 0; border-bottom:1px solid var(--line-2); position:relative; isolation:isolate; transition:padding-left .5s cubic-bezier(.16,1,.3,1); }
.wow-role::before{ content:""; position:absolute; inset:0 -100vw; z-index:-1;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 10%,transparent) 50%,transparent); opacity:0; transition:opacity .45s; }
.wow-role:hover{ padding-left:clamp(10px,1.6vw,26px); }
.wow-role:hover::before{ opacity:1; }
.wow-role .n{ font-family:var(--mono); font-size:clamp(.8rem,1vw,1rem); color:var(--accent-2); padding-top:.4em; }
.wow-role .rt{ font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.02em; line-height:.95;
  font-size:clamp(2rem,6vw,5rem); transition:color .35s; }
.wow-role:hover .rt{ color:var(--accent-3); }
.wow-role .rd{ color:var(--ink-2); max-width:60ch; margin-top:1em; font-size:1.02rem; }
.wow-role .rtag{ font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-4); margin-top:1.1em; }

.wow-pull{ font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:-.02em; line-height:.98;
  font-size:clamp(2.2rem,6.5vw,5.6rem); }
.wow-pull em{ font-style:normal; color:var(--accent-2); }

/* project gallery */
.proj-gallery{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.proj-gallery .frame{ aspect-ratio:4/3; }
.proj-gallery .frame.tall{ aspect-ratio:auto; grid-row:span 2; }
@media(max-width:700px){ .proj-gallery{ grid-template-columns:1fr; } }

/* ============================================================
   SELECTION GUARD · DEVICE PREVIEW
   ============================================================ */
.no-select{ -webkit-user-select:none; -moz-user-select:none; user-select:none; -webkit-touch-callout:none; }
.no-select input, .no-select textarea, .no-select select, .no-select [contenteditable]{ -webkit-user-select:text; user-select:text; }

/* desktop / mobile toolbar */
#dev-toolbar{ position:fixed; top:calc(var(--nav-h) + 16px); right:18px; z-index:130; display:flex; gap:3px;
  background:rgba(11,12,14,.72); backdrop-filter:blur(12px) saturate(1.2); border:1px solid var(--line-2); padding:4px; border-radius:3px; }
.dev-btn{ width:36px; height:31px; display:grid; place-items:center; background:transparent; border:0; color:var(--ink-3); border-radius:2px; transition:.2s var(--ease); }
.dev-btn svg{ width:19px; height:19px; }
.dev-btn[aria-pressed="true"]{ background:var(--ink); color:var(--bg); }
.dev-btn:not([aria-pressed="true"]):hover{ color:var(--ink); }
.dev-div{ width:1px; align-self:stretch; margin:3px 1px; background:var(--line); }
@media(max-width:760px){ #dev-toolbar{ top:auto; bottom:16px; left:16px; right:auto; } }

/* mobile preview stage */
html.dev-lock{ overflow:hidden; }
#dev-stage{ position:fixed; inset:0; z-index:360; background:rgba(5,6,7,.88); backdrop-filter:blur(7px);
  display:flex; align-items:center; justify-content:center; padding:24px; animation:devfade .3s var(--ease) both; }
@keyframes devfade{ from{ opacity:0; } to{ opacity:1; } }
.dev-phone{ position:relative; width:390px; max-width:calc(100vw - 32px); height:min(844px, calc(100vh - 48px));
  background:#000; border:11px solid #16191e; border-radius:46px; box-shadow:0 50px 150px rgba(0,0,0,.75), 0 0 0 1px rgba(255,255,255,.04) inset;
  overflow:hidden; animation:devpop .42s var(--ease) both; }
@keyframes devpop{ from{ opacity:0; transform:translateY(18px) scale(.97); } to{ opacity:1; transform:none; } }
.dev-cam{ position:absolute; top:13px; left:50%; transform:translateX(-50%); width:96px; height:22px; background:#0a0b0d; border-radius:20px; z-index:2; }
.dev-frame{ width:100%; height:100%; border:0; border-radius:35px; background:var(--bg); display:block; }

/* hide chrome inside the embedded mobile preview */
[data-embedded] #dev-toolbar, [data-embedded] .intro, [data-embedded] #tw,
[data-embedded] .cursor-dot, [data-embedded] .cursor-ring{ display:none !important; }
[data-embedded] body{ cursor:auto !important; }

/* ============================================================
   LIGHT THEME
   ============================================================ */
html[data-theme="light"]{
  --bg:#f5f3ec; --bg-1:#efece3; --bg-2:#e7e3d7; --bg-3:#ddd8c9; --bg-card:#f0ede5;
  --ink:#1b1813; --ink-2:#4f4a40; --ink-3:#766f5d; --ink-4:#a39c8a;
  --line:rgba(27,24,19,.17); --line-2:rgba(27,24,19,.10); --line-3:rgba(27,24,19,.055);
  --sand:#9c8a6a;
}
html[data-theme="light"] body{ -webkit-font-smoothing:auto; }
/* header: keep a readable light bar even over the dark hero image */
html[data-theme="light"] .site-head{ background:rgba(245,243,236,.72); backdrop-filter:blur(12px) saturate(1.1); border-bottom:1px solid var(--line-2); }
html[data-theme="light"] .site-head.solid{ background:rgba(245,243,236,.9); }
html[data-theme="light"] #dev-toolbar{ background:rgba(245,243,236,.82); border-color:var(--line); }
/* the hero always sits on a dark photo + scrim → keep its text & controls light in BOTH themes */
.hero .display{ color:#f4f2ec; }
.hero .lead{ color:#f4f2ec; }
.hero .kicker{ color:#d8d6cd !important; }
.hero .scrollcue{ color:#cfcdc4; }
.hero .btn{ color:#f4f2ec; border-color:rgba(244,242,236,.32); }
.hero .btn:hover{ background:#f4f2ec; color:#16140f; border-color:#f4f2ec; }
.hero .btn--accent{ color:#fff; border-color:var(--accent); }
.hero .btn--accent::before{ background:#fff; }
.hero .btn--accent:hover{ color:var(--accent); }
/* subtle paper depth on cards in light theme */
html[data-theme="light"] .grain{ mix-blend-mode:multiply; opacity:.04; }
html[data-theme="light"] .frame img,html[data-theme="light"] .pcard .media img{ filter:saturate(.96) brightness(.99); }
html[data-theme="light"] .dev-phone{ background:#16191e; }

/* ---- page heroes: paper-white vignette + dark text in light mode ---- */
html[data-theme="light"] .phero--img .hero-bg img{ filter:saturate(.97) brightness(1.03); }
html[data-theme="light"] .phero--img .scrim{
  background:
    radial-gradient(120% 120% at 50% 28%, rgba(245,243,236,.28) 0%, rgba(245,243,236,.66) 62%, rgba(245,243,236,.9) 100%),
    linear-gradient(180deg, rgba(245,243,236,.82) 0%, rgba(245,243,236,.44) 34%, rgba(245,243,236,.7) 72%, rgba(245,243,236,.96) 100%); }
html[data-theme="light"] .phero--fit .hero-bg .fill{ filter:blur(34px) saturate(.92) brightness(1.18); }
html[data-theme="light"] .phero--fit .scrim{
  background:
    linear-gradient(90deg, #f5f3ec 0%, rgba(245,243,236,.72) 12%, rgba(245,243,236,0) 30%, rgba(245,243,236,0) 70%, rgba(245,243,236,.72) 88%, #f5f3ec 100%),
    radial-gradient(120% 120% at 50% 28%, rgba(245,243,236,.18) 0%, rgba(245,243,236,.52) 62%, rgba(245,243,236,.85) 100%),
    linear-gradient(180deg, rgba(245,243,236,.8) 0%, rgba(245,243,236,.4) 34%, rgba(245,243,236,.64) 72%, rgba(245,243,236,.96) 100%); }
html[data-theme="light"] .phero--img,
html[data-theme="light"] .phero--img .display,
html[data-theme="light"] .phero--img h1,
html[data-theme="light"] .phero--img .lead{ color:#1b1813; }
html[data-theme="light"] .phero--img .kicker{ color:#4f4a40; }
html[data-theme="light"] .phero--img .note{ color:#332f27; }
html[data-theme="light"] .phero--img .display,
html[data-theme="light"] .phero--img .lead{ text-shadow:0 2px 30px rgba(245,243,236,.75); }


/* ===== LX luxury editorial layer ===== */
.lx-tall{ min-height:min(92svh,940px); }
.lx-over{ font-family:var(--mono); font-size:.72rem; letter-spacing:.38em; text-transform:uppercase; color:var(--accent-2);
  display:flex; align-items:center; gap:1.1em; margin-bottom:clamp(18px,3.4vh,36px); }
.lx-over::before{ content:""; width:54px; height:1px; background:var(--accent); }
.lx-over .thin{ color:var(--ink-3); letter-spacing:.22em; }

/* line-masked headline (self-running animation; base state visible) */
.lx-lines{ overflow:visible; }
.lx-lines > .ln{ display:block; overflow:hidden; transform:none !important; }
.lx-lines .ln > span{ display:inline-block; }
@keyframes lxrise{ from{ transform:translateY(112%); } to{ transform:translateY(0); } }
@media(prefers-reduced-motion:no-preference){
  .lx-lines .ln > span{ animation:lxrise 1.05s cubic-bezier(.16,1,.3,1) backwards; }
  .lx-lines .ln:nth-child(2) > span{ animation-delay:.14s; }
  .lx-lines .ln:nth-child(3) > span{ animation-delay:.28s; }
}
.lx-lines .ln em{ font-style:normal; color:var(--accent-2); }

.lx-display{ font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.028em; line-height:.9;
  font-size:clamp(2.7rem,8.6vw,8rem); }

/* ---- editorial: justified body copy ---- */
.lead, p.muted, .bio, .pull, .xd, blockquote, p.measure{ text-align:justify; text-justify:inter-word; }
/* short UI / label text must never justify */
.kicker, .lx-over, .foot-col p, .foot-col, .si, .k, .v, .ptitle, .ploc, .ptags, .pyear, .xn, .xtag{ text-align:left; }

/* ---- interior hero: keep each stanza on one line (desktop/tablet) ---- */
@media(min-width:768px){
  [data-page="studio"] .lx-lines .ln > span,
  [data-page="careers"] .lx-lines .ln > span,
  [data-page="collaborate"] .lx-lines .ln > span,
  [data-page="expertise"] .lx-lines .ln > span{ white-space:nowrap; }
}
[data-page="studio"] .lx-display{ font-size:clamp(2.15rem,5.9vw,5.2rem); }
[data-page="expertise"] .lx-display{ font-size:clamp(2.4rem,7vw,6.6rem); }
[data-page="careers"] .lx-display{ font-size:clamp(2rem,5.1vw,4.8rem); }
[data-page="collaborate"] .lx-display{ font-size:clamp(1.8rem,4.2vw,4rem); }

/* ---- home hero: accent the opening words ---- */
.hero h1 .hhl{ color:var(--accent-2); }

/* glass */
.lx-glass{ background:color-mix(in srgb, var(--bg) 58%, transparent); backdrop-filter:blur(16px) saturate(1.15);
  -webkit-backdrop-filter:blur(16px) saturate(1.15); border:1px solid var(--line); box-shadow:0 30px 90px rgba(0,0,0,.22); }
.lx-fact{ padding:clamp(18px,2vw,28px) clamp(20px,2.2vw,32px); min-width:min(320px,100%); }
.lx-fact .fr{ display:flex; justify-content:space-between; gap:1.25rem; padding:.55em 0; border-bottom:1px solid var(--line-2); align-items:baseline; }
.lx-fact .fr:last-child{ border-bottom:0; }
.lx-fact .fk{ font-family:var(--mono); font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); flex:0 0 auto; }
.lx-fact .fv{ font-family:var(--mono); font-size:.78rem; color:var(--ink); text-align:right; flex:1 1 auto; min-width:0; }

/* studio hero lead — trim to 3 lines */
.phero .lx-herofoot .lead{ font-size:clamp(1rem,1.32vw,1.2rem); line-height:1.46; max-width:60ch; }

/* hero colophon — one quiet line, no box */
.lx-strip{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline;
  gap:1em clamp(1.6em,3.4vw,3.4em); width:100%; margin-top:clamp(28px,4.5vh,48px);
  border-top:1px solid color-mix(in srgb, var(--ink) 26%, transparent); padding-top:clamp(14px,1.7vw,22px);
  font-family:var(--mono); font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3);
  text-shadow:0 1px 14px color-mix(in srgb, var(--bg) 55%, transparent); }
.lx-strip .si b{ font-weight:600; color:var(--ink); margin-right:.9em; letter-spacing:.18em; }
.lx-strip .si em{ font-style:normal; color:var(--accent-2); }
.lx-herofoot{ display:flex; align-items:flex-end; justify-content:space-between; gap:clamp(24px,4vw,72px); flex-wrap:wrap; }
.lx-chips{ display:flex; flex-wrap:wrap; gap:10px 12px; }
.lx-chip{ font-family:var(--mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-2);
  padding:.75em 1.15em; display:inline-flex; align-items:baseline; gap:.6em; }
.lx-chip b{ font-family:var(--display); font-weight:800; font-size:1.15rem; color:var(--ink); letter-spacing:0; }
.lx-chip b .suf{ color:var(--accent-2); }

/* sticky editorial label */
.lx-side{ position:sticky; top:calc(var(--nav-h) + 28px); align-self:start; }
@media(max-width:860px){ .lx-side{ position:static; } }

/* manifesto */
.lx-manifesto{ font-family:var(--display); font-weight:600; letter-spacing:-.02em; line-height:1.22; text-transform:none;
  font-size:clamp(1.5rem,2.4vw,2.15rem); max-width:42ch; text-wrap:pretty; }
.lx-manifesto em{ font-style:normal; color:var(--accent-2); }

/* ledger stats */
.lx-ledger{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
@media(max-width:860px){ .lx-ledger{ grid-template-columns:1fr 1fr; } }
.lx-cell{ padding:clamp(26px,3.4vw,52px) clamp(16px,2vw,34px) clamp(26px,3.4vw,52px) 0; border-bottom:1px solid var(--line-2); position:relative; }
.lx-cell + .lx-cell{ border-left:1px solid var(--line-2); padding-left:clamp(16px,2vw,34px); }
@media(max-width:860px){ .lx-cell:nth-child(3){ border-left:0; padding-left:0; } }
.lx-cell .num{ font-family:var(--display); font-weight:800; letter-spacing:-.03em; line-height:.9; font-size:clamp(2.6rem,5.4vw,5.4rem); transition:color .4s var(--ease); }
.lx-cell .num .suf{ color:var(--accent-2); }
.lx-cell:hover .num{ color:var(--accent-3); }
.lx-cell .lab{ font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-top:1.1em; line-height:1.55; }

/* editorial rows (timeline / process / index) */
.lx-rows{ border-top:1px solid var(--line); }
.lx-row{ display:grid; grid-template-columns:clamp(120px,17vw,250px) 1fr auto; gap:clamp(16px,3vw,52px); align-items:baseline;
  padding:clamp(26px,4vw,54px) 0; border-bottom:1px solid var(--line-2); position:relative; isolation:isolate; transition:padding-left .5s cubic-bezier(.16,1,.3,1); }
.lx-row::before{ content:""; position:absolute; inset:0 -100vw; z-index:-1;
  background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 10%, transparent) 50%, transparent);
  opacity:0; transition:opacity .45s var(--ease); }
.lx-row:hover{ padding-left:clamp(8px,1.4vw,22px); }
.lx-row:hover::before{ opacity:1; }
.lx-row .rn{ font-family:var(--display); font-weight:900; letter-spacing:-.03em; line-height:.85; font-size:clamp(2rem,5vw,4.6rem);
  color:color-mix(in srgb, var(--ink) 16%, transparent); transition:color .45s var(--ease); }
.lx-row:hover .rn{ color:var(--accent-2); }
.lx-row .rt{ font-family:var(--display); font-weight:700; text-transform:uppercase; letter-spacing:-.015em; line-height:1;
  font-size:clamp(1.45rem,3vw,2.6rem); transition:color .35s; }
.lx-row:hover .rt{ color:var(--accent-3); }
.lx-row .rd{ color:var(--ink-2); max-width:62ch; margin-top:.9em; text-wrap:pretty; }
.lx-row .rtag{ font-family:var(--mono); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-4); white-space:nowrap; }
.lx-row:hover .rtag{ color:var(--accent-2); }
@media(max-width:700px){ .lx-row{ grid-template-columns:minmax(64px,auto) 1fr; } .lx-row .rtag{ display:none; } }

/* hollow award numerals */
.lx-row .rn.hollow{ color:color-mix(in srgb, var(--ink) 10%, transparent); -webkit-text-stroke:1.4px var(--ink-3); transition:.45s var(--ease); }
.lx-row:hover .rn.hollow{ color:var(--accent-2); -webkit-text-stroke:1.4px var(--accent-2); }

/* partner profiles */
.lx-people{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(22px,2.6vw,44px);
  border-top:1px solid var(--line); padding-top:clamp(30px,3.6vw,54px); align-items:start; }
.lx-person{ display:block; padding:0; border-bottom:none; }
@media(max-width:860px){ .lx-people{ grid-template-columns:1fr; gap:clamp(40px,8vw,64px); } }
.lx-portrait{ position:relative; overflow:hidden; aspect-ratio:3/4; width:100%; margin-bottom:clamp(18px,1.8vw,26px); }
.lx-portrait img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.4) contrast(1.02) brightness(.96);
  transition:transform 1.2s var(--ease), filter .9s var(--ease); }
.lx-person:hover .lx-portrait img{ transform:scale(1.045); filter:grayscale(0) contrast(1) brightness(1); }
.lx-portrait::after{ content:""; position:absolute; inset:0; border:1px solid var(--line-2); pointer-events:none; }
.lx-portrait .pn{ position:absolute; left:14px; bottom:12px; font-family:var(--mono); font-size:.64rem; letter-spacing:.22em;
  text-transform:uppercase; color:#e8e6e0; text-shadow:0 1px 14px rgba(0,0,0,.6); }
.lx-person .name{ font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.02em; line-height:.95;
  font-size:clamp(1.7rem,2.2vw,2.25rem); }
.lx-person .role{ font-family:var(--mono); font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--accent-2); margin-top:1em; }
.lx-person .cred{ font-family:var(--mono); font-size:.66rem; letter-spacing:.05em; color:var(--ink-3); margin-top:.5em; }
.lx-person .bio{ color:var(--ink-2); margin-top:1.2em; font-size:.9rem; max-width:none; text-wrap:pretty; }

/* quote band */
.lx-quote{ position:relative; overflow:hidden; padding:clamp(84px,16vh,190px) 0; }
.lx-quote .bg{ position:absolute; inset:0; }
.lx-quote .bg img{ width:100%; height:100%; object-fit:cover; filter:brightness(.55) saturate(.85); }
[data-theme="light"] .lx-quote .bg img{ filter:brightness(.94) saturate(.8); }
.lx-quote .veil{ position:absolute; inset:0;
  background:linear-gradient(90deg, color-mix(in srgb, var(--bg) 92%, transparent), color-mix(in srgb, var(--bg) 60%, transparent) 55%, color-mix(in srgb, var(--bg) 14%, transparent)); }
.lx-quote .wrap{ position:relative; }
.lx-quote blockquote{ font-family:var(--display); font-weight:600; letter-spacing:-.018em; line-height:1.1; text-transform:none;
  font-size:clamp(1.55rem,3.3vw,2.9rem); max-width:26ch; text-wrap:pretty; }
.lx-quote blockquote em{ font-style:normal; color:var(--accent-2); }
.lx-quote .att{ font-family:var(--mono); font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-3); margin-top:2em; }

/* sector tiles */
.lx-tiles{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-2); border:1px solid var(--line-2); }
@media(max-width:900px){ .lx-tiles{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .lx-tiles{ grid-template-columns:1fr; } }
.lx-tile{ background:var(--bg); padding:clamp(24px,3vw,46px); display:block; position:relative; transition:background .4s var(--ease); }
.lx-tile:hover{ background:var(--bg-1); }
.lx-tile .ti{ font-family:var(--mono); font-size:.66rem; letter-spacing:.16em; color:var(--ink-4); }
.lx-tile h3{ font-family:var(--display); font-weight:700; text-transform:uppercase; font-size:clamp(1.15rem,1.7vw,1.5rem);
  margin-top:2.4em; letter-spacing:-.01em;
  background-image:linear-gradient(var(--accent),var(--accent)); background-repeat:no-repeat; background-size:0 2px; background-position:0 100%;
  transition:background-size .5s cubic-bezier(.16,1,.3,1); display:inline; padding-bottom:3px; }
.lx-tile:hover h3{ background-size:100% 2px; }
.lx-tile p{ color:var(--ink-2); font-size:.92rem; margin-top:1.1em; }
.lx-tile .ar{ position:absolute; top:clamp(20px,2.4vw,38px); right:clamp(20px,2.4vw,38px); color:var(--accent-2);
  font-size:1.05rem; transition:transform .45s var(--ease); }
.lx-tile:hover .ar{ transform:translate(5px,-5px); }
.lx-tile h3wrap{ display:block; }

/* win list */
.lx-wins{ border-top:1px solid var(--line); }
.lx-win{ display:grid; grid-template-columns:clamp(110px,14vw,190px) 1fr; gap:clamp(14px,3vw,44px); align-items:baseline;
  padding:16px 0; border-bottom:1px solid var(--line-2); position:relative; transition:padding-left .4s var(--ease); }
.lx-win::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--accent); transform:scaleY(0); transition:transform .4s var(--ease); transform-origin:top; }
.lx-win:hover{ padding-left:14px; }
.lx-win:hover::before{ transform:scaleY(1); }
.lx-win .wk{ font-family:var(--mono); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:var(--accent-2); }
.lx-win .wv{ color:var(--ink); font-size:1.02rem; }
.lx-win:hover .wv{ color:var(--accent-3); transition:color .3s; }

/* ghost section numeral */
.lx-ghost{ position:relative; }
.lx-ghost::after{ content:attr(data-n); position:absolute; right:0; top:-.28em; font-family:var(--display); font-weight:900;
  font-size:clamp(5rem,14vw,12rem); line-height:1; letter-spacing:-.04em; color:color-mix(in srgb, var(--ink) 5%, transparent);
  pointer-events:none; z-index:-1; }

.lx-endnote{ border-top:1px solid var(--line); padding-top:clamp(36px,6vh,64px); display:flex; align-items:flex-end;
  justify-content:space-between; gap:clamp(20px,4vw,60px); flex-wrap:wrap; }
.lx-endnote .big{ font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:-.02em; line-height:.95;
  font-size:clamp(1.9rem,4.6vw,4rem); }
