/* Data partnerships, the homepage. Rides on _editorial.css; only what the page adds. */
.data .opening{background:radial-gradient(ellipse at 78% 40%,#d6e6edaa,transparent 46%),radial-gradient(ellipse at 22% 58%,#f6d9c688,transparent 44%),#fbfaf7}
.data .hero{min-height:0;padding:96px 24px 52px}
.data h1 em{color:#3d595e}
.data .hero .lede{max-width:620px}
/* The duotone is baked into the JPEGs (Core Image, scratchpad/duotone.swift: grayscale, contrast 1.3, black→#2a4b52, white→#fbfaf7, contrast 1.12), so no blend modes are needed here. */
.duotone{position:relative;overflow:hidden;background:#2a4b52;margin:0}
.duotone img{display:block;width:100%;height:100%;object-fit:cover}
.hero-photo{width:var(--shell);margin:0 auto;aspect-ratio:21/9;border-radius:28px}
.hero-photo img{transform:scale(1.035);transition:transform 900ms var(--ease)}
.motion-ready .hero-photo.is-shown img{transform:none}
.data .opening .hero-bottom{position:static;display:flex;justify-content:center;gap:58px;padding:30px 0 70px;font-size:12px;color:var(--muted)}
/* The old ledger of bars, kept for reference; no longer in the markup. */
.ledger{position:absolute;left:50%;bottom:92px;transform:translateX(-50%);display:flex;gap:10px;align-items:flex-end;height:46px;pointer-events:none}
.ledger span{display:block;width:6px;height:100%;border-radius:3px;background:linear-gradient(180deg,#3d595e,#8fa9ad);transform-origin:bottom;transform:scaleY(.18);opacity:.55}
.motion-ready .ledger span{animation:ledger-rise 560ms cubic-bezier(.23,1,.32,1) both;animation-delay:calc(220ms + var(--i) * 40ms)}
@keyframes ledger-rise{to{transform:scaleY(var(--h,.6));opacity:.85}}
.ledger span:nth-child(1){--h:.34}.ledger span:nth-child(2){--h:.52}.ledger span:nth-child(3){--h:.44}.ledger span:nth-child(4){--h:.7}.ledger span:nth-child(5){--h:.58}.ledger span:nth-child(6){--h:.88}.ledger span:nth-child(7){--h:.66}.ledger span:nth-child(8){--h:1}.ledger span:nth-child(9){--h:.74}.ledger span:nth-child(10){--h:.9}.ledger span:nth-child(11){--h:.62}.ledger span:nth-child(12){--h:.8}
.services{grid-template-columns:repeat(4,1fr);gap:32px}
.services h3{margin-top:34px}
.sectors{background:#f0f1eb;padding-block:92px}
.sectors-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center}
.sectors-grid .section-head{display:block}
.sectors-grid .section-head>p{margin-top:20px;max-width:34ch}
.sectors-photo{aspect-ratio:4/3;border-radius:24px}
.process-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:64px;align-items:start}
.process-photo{aspect-ratio:4/5;border-radius:24px;position:sticky;top:110px}
.process-grid .steps{grid-template-columns:repeat(2,1fr);gap:40px 32px}
.sector-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:14px}
.sector-list li{padding:14px 22px;border:1px solid var(--line);border-radius:999px;font:400 15px/1.3 var(--sans);background:var(--paper)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;counter-reset:step}
.steps li{position:relative;padding-top:24px}
.steps li::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--line)}
.steps li::after{content:'';position:absolute;top:0;left:0;width:100%;height:1px;background:#3d595e;transform:scaleX(0);transform-origin:left;transition:transform 700ms cubic-bezier(.23,1,.32,1);transition-delay:calc(var(--n,0) * 90ms + 120ms)}
.steps li:nth-child(2){--n:1}.steps li:nth-child(3){--n:2}.steps li:nth-child(4){--n:3}
.steps li.is-shown::after{transform:scaleX(1)}
.steps .meta{color:var(--muted)}
.steps h3{margin:36px 0 14px}
.steps p{font-size:15px;color:var(--muted);max-width:30ch}
.people-section{background:#eee8df}
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;align-items:start}
.person{background:var(--paper);border-radius:24px;padding:28px 28px 32px}
.portrait{position:relative;width:132px;aspect-ratio:4/5;border-radius:18px;overflow:hidden;background:radial-gradient(ellipse at 30% 25%,#f6d9c6,#d6e6ed 70%);display:grid;place-items:center;margin-bottom:26px}
.portrait::before{content:attr(data-initials);font:400 34px/1 var(--serif);letter-spacing:-.03em;color:#3d595e}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.person h3{font-size:24px}
.person .role{margin:6px 0 16px;font-size:13px;color:var(--muted)}
.person .person-lead{font-size:16px;color:var(--ink);margin-bottom:12px;max-width:40ch}
.person p:not(.role):not(.person-lead){font-size:14.5px;line-height:1.65;color:var(--muted);max-width:44ch}
.company-facts{margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0 48px}
.company-facts>div{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.company-facts>div:nth-child(3){grid-column:1/-1}
.company-facts dt{font:500 11px/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.company-facts dd{margin:0;font-size:15px}
.company-facts a{border-bottom:1px solid currentColor}
.company-note{margin-top:36px;max-width:68ch;font-size:14px;line-height:1.7;color:var(--muted)}
.apps-section{padding-top:0}
.apps-note{display:flex;justify-content:space-between;align-items:center;gap:48px;padding:44px 52px;border:1px solid var(--line);border-radius:28px;background:#f0f1eb}
.apps-note .meta{color:var(--muted);margin-bottom:18px}
.apps-note h2{font-size:clamp(30px,3.4vw,44px);margin-bottom:14px}
.apps-note-copy>p:not(.meta){font-size:15px;line-height:1.7;color:var(--muted);max-width:52ch}
.apps-note .btn{flex:none;border-color:var(--ink);font-weight:500}
.apps-note-side{display:flex;align-items:center;gap:40px;flex:none}
.apps-note .phone{width:118px;border-radius:22px;padding:4px;transform:rotate(6deg);box-shadow:0 18px 36px #18223122,0 2px 4px #0003}
.apps-note .phone img{border-radius:18px}
.apps-note .phone::after{height:8px;top:8px}
.data .contact{border-top:1px solid var(--line)}
.data .contact h2{max-width:18ch}
@media(max-width:1000px){
.services{grid-template-columns:repeat(2,1fr)}
.steps{grid-template-columns:repeat(2,1fr)}
.sectors-grid,.process-grid{grid-template-columns:1fr;gap:40px}
.process-photo{position:static;aspect-ratio:16/9}
.apps-note .phone{display:none}
.company-facts{grid-template-columns:1fr}
}
@media(max-width:700px){
.data .nav a:not(.nav-pill):not(.email-link){display:none}
.hero-photo{aspect-ratio:4/3;border-radius:20px}
.data .opening .hero-bottom{gap:24px;font-size:10px;padding:24px 0 56px}
.sectors-photo,.process-photo{border-radius:18px}
.process-grid .steps{grid-template-columns:1fr;gap:28px}
.apps-note-side{display:block}
.apps-note{display:block;padding:32px 26px;border-radius:22px}
.apps-note .btn{margin-top:24px}
.data .hero{min-height:0;padding:55px 22px 36px}
.data h1{font-size:clamp(46px,11vw,64px)}
.ledger{bottom:78px;height:36px;gap:7px}
.ledger span{width:5px}
.services,.steps,.people{grid-template-columns:1fr;gap:28px}
.sectors{padding-block:68px}
.company-facts>div{grid-template-columns:1fr;gap:6px;padding:16px 0}
.person{padding:24px 22px 28px}
}
@media(prefers-reduced-motion:reduce){
.hero-photo img{transform:none;transition:none}
.motion-ready .ledger span{animation:none;transform:scaleY(var(--h,.6));opacity:.85}
.steps li::after{transition:none;transform:scaleX(1)}
}
