:root { --ink:#0a0b0a; --paper:#f0ece3; --line:rgba(240,236,227,.28); --split-travel:clamp(48px,4.8vw,92px); --split-feather:clamp(64px,6.8vw,128px); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--ink); }
body { margin:0; color:var(--paper); background:var(--ink); font-family:var(--mono); }
html.lenis, html.lenis body { height:auto; }
.lenis.lenis-smooth { scroll-behavior:auto !important; }
.lenis.lenis-stopped { overflow:clip; }
a { color:inherit; }
h1,h2,h3 { margin:0; font-family:var(--serif); font-weight:400; letter-spacing:-.055em; }
h1 em,h2 em { font-weight:400; }

.explore-header { position:fixed; z-index:20; top:0; left:0; right:0; display:grid; grid-template-columns:1fr auto 1fr; padding:23px clamp(18px,2.5vw,44px); color:#fff; mix-blend-mode:difference; text-transform:uppercase; font-size:11px; letter-spacing:.12em; pointer-events:none; }
.explore-header a { width:max-content; text-decoration:none; pointer-events:auto; }
.explore-header .brand { display:flex; flex-direction:column; gap:2px; }
.explore-header .brand em { font-style:normal; opacity:.58; }
.context-back { position:fixed; z-index:21; top:76px; left:clamp(18px,2.5vw,44px); display:inline-flex; align-items:center; gap:10px; padding:9px 12px 9px 10px; border:1px solid rgba(255,255,255,.42); color:#fff; background:rgba(8,9,8,.16); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); font-size:9px; font-weight:500; line-height:1; text-decoration:none; text-transform:uppercase; letter-spacing:.13em; mix-blend-mode:difference; }
.context-back span:first-child { font-size:15px; line-height:.7; transform:translateY(-1px); }
.context-back:hover,.context-back:focus-visible { background:#fff; color:#090a09; outline:none; }
.contact-link { justify-self:end; }

.category-hero { position:relative; min-height:100svh; overflow:hidden; isolation:isolate; }
.category-hero>img { position:absolute; inset:-3%; width:106%; height:106%; object-fit:cover; animation:hero-settle 1.5s cubic-bezier(.2,.75,.2,1) both; }
.hero-veil { position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,7,6,.84),rgba(6,7,6,.08) 72%),linear-gradient(0deg,rgba(6,7,6,.5),transparent 48%); }
.hero-copy { position:absolute; z-index:2; left:clamp(22px,6vw,114px); top:50%; width:min(920px,84vw); transform:translateY(-46%); }
.hero-copy p,.section-index,.category-end>p,.project-proof-heading>p { margin:0; text-transform:uppercase; font-size:11px; letter-spacing:.14em; line-height:1.45; opacity:.7; }
.hero-copy h1 { margin:22px 0 30px; font-size:clamp(84px,13vw,220px); line-height:.7; }
.hero-copy>span { display:block; max-width:560px; font-size:14px; line-height:1.7; text-transform:uppercase; letter-spacing:.07em; opacity:.84; }
.scroll-cue { position:absolute; z-index:3; right:clamp(20px,2.5vw,44px); bottom:32px; display:flex; align-items:center; gap:14px; text-decoration:none; text-transform:uppercase; font-size:11px; letter-spacing:.14em; }
.scroll-cue i,.category-end a i { display:grid; place-items:center; width:44px; height:44px; border:1px solid currentColor; font-style:normal; }

.section-index { display:flex; justify-content:space-between; padding-bottom:14px; border-bottom:1px solid rgba(10,11,10,.25); }
.section-index--light { color:var(--paper); border-color:var(--line); }

.approach { padding:clamp(100px,12vh,160px) clamp(22px,5.5vw,104px) clamp(90px,11vh,140px); background:var(--paper); color:var(--ink); }
.approach-lead { max-width:1160px; margin:clamp(64px,8vh,100px) 0 clamp(68px,9vh,110px); font:normal clamp(44px,5.5vw,96px)/.96 var(--serif); letter-spacing:-.05em; }
.approach-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(10,11,10,.25); }
.approach-grid article { min-height:230px; padding:18px 28px 0 0; border-right:1px solid rgba(10,11,10,.25); }
.approach-grid article:nth-child(2),.approach-grid article:last-child { padding-left:28px; }
.approach-grid article:last-child { border-right:0; }
.approach-grid article>span { font-size:11px; letter-spacing:.12em; opacity:.55; }
.approach-grid h2 { margin:44px 0 18px; font-size:clamp(42px,4vw,70px); line-height:.92; }
.approach-grid p { max-width:380px; margin:0; font-size:14px; line-height:1.7; text-transform:uppercase; letter-spacing:.055em; opacity:.72; }

.system-story { position:relative; min-height:92svh; display:grid; grid-template-columns:58% 42%; overflow:hidden; isolation:isolate; background:#111210; }
.system-media { --split-edge:0px; position:relative; z-index:1; width:calc(100% + (var(--split-travel) * 2)); min-height:92svh; margin-inline:calc(var(--split-travel) * -1); overflow:hidden; -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--split-travel) - var(--split-feather) + var(--split-edge)),transparent calc(100% - var(--split-travel) + var(--split-edge))); mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - var(--split-travel) - var(--split-feather) + var(--split-edge)),transparent calc(100% - var(--split-travel) + var(--split-edge))); -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; will-change:transform,-webkit-mask-image,mask-image; }
.system-media>img { position:absolute; inset:-4%; width:108%; height:108%; object-fit:cover; }
.system-veil { position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,6,5,.06),rgba(5,6,5,.22)); }
.system-copy { position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center; padding:clamp(50px,5.5vw,96px); }
.system-copy>p:first-of-type { margin:clamp(56px,8vh,94px) 0 20px; text-transform:uppercase; font-size:11px; letter-spacing:.14em; opacity:.68; }
.system-copy h2 { font-size:clamp(60px,6.8vw,118px); line-height:.76; }
.system-copy>p:last-child { max-width:460px; margin:36px 0 0; font-size:14px; line-height:1.72; text-transform:uppercase; letter-spacing:.055em; opacity:.76; }

.capabilities { padding:clamp(100px,12vh,160px) clamp(22px,5.5vw,104px); color:var(--ink); background:var(--paper); }
.capabilities-heading { display:grid; grid-template-columns:34% 66%; align-items:end; margin:clamp(66px,9vh,110px) 0 clamp(66px,9vh,110px); }
.capabilities-heading>p { align-self:start; margin:8px 0 0; text-transform:uppercase; font-size:11px; letter-spacing:.14em; opacity:.68; }
.capabilities-heading h2 { font-size:clamp(70px,8vw,140px); line-height:.74; }
.capability-list { border-top:1px solid rgba(10,11,10,.3); }
.capability-row { display:grid; grid-template-columns:9% 32% 1fr; align-items:center; min-height:112px; border-bottom:1px solid rgba(10,11,10,.3); }
.capability-row>span { font-size:11px; letter-spacing:.12em; opacity:.55; }
.capability-row h3 { font-size:clamp(34px,3.5vw,60px); line-height:.92; }
.capability-row p { max-width:520px; margin:0; font-size:13px; line-height:1.7; text-transform:uppercase; letter-spacing:.055em; opacity:.68; }

.project-proof { position:relative; min-height:92svh; display:grid; grid-template-columns:42% 58%; overflow:hidden; isolation:isolate; background:#111210; }
.proof-copy { position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center; min-height:92svh; padding:clamp(50px,5.5vw,96px); }
.proof-copy .section-index { border-color:var(--line); }
.proof-copy>p:first-of-type { margin:clamp(56px,8vh,94px) 0 20px; text-transform:uppercase; font-size:11px; letter-spacing:.14em; opacity:.68; }
.proof-copy h2 { font-size:clamp(60px,6.8vw,118px); line-height:.76; }
.project-proof-copy { max-width:460px; margin:36px 0 0; font-size:14px; line-height:1.72; text-transform:uppercase; letter-spacing:.055em; opacity:.76; }
.proof-visual { --split-edge:0px; position:relative; z-index:1; width:calc(100% + (var(--split-travel) * 2)); min-height:92svh; margin-block:0; margin-inline:calc(var(--split-travel) * -1); overflow:hidden; background:#090a09; -webkit-mask-image:linear-gradient(90deg,transparent 0,transparent calc(var(--split-travel) - var(--split-feather) + var(--split-edge)),#000 calc(var(--split-travel) + var(--split-edge)),#000 100%); mask-image:linear-gradient(90deg,transparent 0,transparent calc(var(--split-travel) - var(--split-feather) + var(--split-edge)),#000 calc(var(--split-travel) + var(--split-edge)),#000 100%); -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; will-change:transform,-webkit-mask-image,mask-image; }
.proof-visual>img { position:absolute; inset:-4%; width:108%; height:108%; object-fit:cover; object-position:center; }

.category-end { min-height:78svh; display:flex; flex-direction:column; justify-content:center; padding:clamp(90px,12vh,150px) clamp(22px,5.5vw,104px); background:#0d0e0d; }
.category-end h2 { margin:22px 0 44px; font-size:clamp(88px,12vw,200px); line-height:.72; }
.category-end>a { display:flex; align-items:center; justify-content:space-between; width:min(540px,100%); padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-decoration:none; text-transform:uppercase; font-size:11px; letter-spacing:.13em; }
.category-switcher { display:flex; flex-wrap:wrap; gap:0 26px; margin-top:72px; padding-top:14px; border-top:1px solid var(--line); }
.category-switcher a { padding:10px 0; text-decoration:none; text-transform:uppercase; font-size:11px; letter-spacing:.12em; opacity:.52; }
.category-switcher a:hover,.category-switcher a[aria-current="page"] { opacity:1; }
.page-leave { position:fixed; z-index:100; inset:0; background:var(--ink); transform:translateY(100%); pointer-events:none; }

@keyframes hero-settle { from { transform:scale(1.08); filter:brightness(.7); } to { transform:scale(1); filter:brightness(1); } }

@media (max-width:760px) {
  .context-back { top:64px; padding:9px 10px; }
  .context-back span:last-child { display:none; }
  .explore-header { grid-template-columns:1fr 1fr; }
  .explore-header>span { display:none; }
  .hero-copy { left:22px; top:45%; }
  .hero-copy h1 { font-size:clamp(72px,24vw,116px); }
  .scroll-cue span { display:none; }
  .approach-lead { font-size:clamp(42px,12vw,64px); }
  .approach-grid { grid-template-columns:1fr; }
  .approach-grid article,.approach-grid article:nth-child(2),.approach-grid article:last-child { min-height:0; padding:24px 0; border-right:0; border-bottom:1px solid rgba(10,11,10,.25); }
  .approach-grid h2 { margin:26px 0 12px; }
  .system-story { min-height:0; grid-template-columns:1fr; }
  .system-media { width:calc(100% + (var(--split-travel) * 2)); min-height:58svh; -webkit-mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - var(--split-feather)),transparent 100%); mask-image:linear-gradient(180deg,#000 0,#000 calc(100% - var(--split-feather)),transparent 100%); }
  .system-copy { min-height:68svh; padding:64px 22px; }
  .system-copy>p:first-of-type { margin-top:52px; }
  .system-copy h2 { font-size:clamp(58px,18vw,92px); }
  .capabilities-heading { grid-template-columns:1fr; }
  .capabilities-heading h2 { margin-top:24px; font-size:clamp(62px,19vw,98px); }
  .capability-row { grid-template-columns:14% 1fr; gap:0 8px; padding:24px 0; }
  .capability-row p { grid-column:2; margin-top:14px; }
  .project-proof { min-height:0; grid-template-columns:1fr; }
  .proof-copy { min-height:68svh; padding:64px 22px; }
  .proof-copy>p:first-of-type { margin-top:52px; }
  .proof-copy h2 { font-size:clamp(58px,18vw,92px); }
  .proof-visual { min-height:58svh; -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 var(--split-feather),#000 100%); mask-image:linear-gradient(180deg,transparent 0,#000 var(--split-feather),#000 100%); }
  .category-end h2 { font-size:clamp(78px,23vw,118px); }
  .category-switcher { gap:0 18px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .category-hero>img { animation:none; }
  .project-grid img { transition:none; }
}
