@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600&family=Manrope:wght@400;500;600;650&display=swap');
.ep{--ep-paper:#faf9f6;--ep-ink:#20221f;--ep-muted:#676b65;--ep-line:#dcded7;--ep-accent:#c4e3ed;background:var(--ep-paper);color:var(--ep-ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}.ep *{box-sizing:border-box}.ep a{color:inherit;text-decoration:none}.ep a:focus-visible,.ep button:focus-visible,.ep-viewer button:focus-visible{outline:3px solid #397ba6;outline-offset:5px}.ep img{display:block;max-width:100%}.ep h1,.ep h2,.ep h3,.ep p,.ep figure{margin:0}.ep h1,.ep h2,.ep h3,.ep-headline{font-family:Manrope,Arial,sans-serif;font-weight:500;letter-spacing:-.055em;text-transform:none}.ep .ep-shell{max-width:1360px;margin-inline:auto;padding-inline:64px;width:100%}.ep [id]{scroll-margin-top:135px}.ep .ep-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);column-gap:80px;padding-top:32px}.ep-back{grid-column:1/-1;font-size:12px;color:var(--ep-muted)!important;width:max-content;margin-bottom:58px}.ep-eyebrow,.ep-label{font-size:10px;text-transform:uppercase;letter-spacing:.16em;font-weight:600;line-height:1.5}.ep-eyebrow{display:flex;align-items:center;gap:9px}.ep-dot{width:6px;height:6px;background:currentColor;border-radius:50%;flex-shrink:0}.ep h1{font-size:clamp(48px,6.8vw,92px);line-height:1.12;margin-top:15px;overflow-wrap:anywhere}.ep-title-mark{font-size:.6em;margin-left:15px;vertical-align:top;font-weight:400;color:#93a498}.ep .ep-headline{font-size:25px;line-height:1.4;max-width:480px;margin-top:20px;letter-spacing:-.025em}.ep-summary{padding-top:36px;align-self:center}.ep-summary>p{font-size:15px;line-height:1.85;color:var(--ep-muted)}.ep .ep-visit{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--ep-ink);color:var(--ep-paper);padding:17px 22px;font-size:12px;line-height:1.5;margin-top:25px;border-radius:2px}.ep-visit span{font-size:19px;line-height:1;flex-shrink:0}.ep-visit:hover{opacity:.8}.ep .ep-cover{grid-column:1/-1;margin-top:55px}.ep-cover>img{width:100%;height:auto;max-height:none;object-fit:contain;background:#e9edeb}.ep-cover figcaption{display:flex;justify-content:space-between;font-size:10px;color:var(--ep-muted);padding:14px 0;letter-spacing:.03em;line-height:1.5}.ep .ep-facts{display:grid;grid-template-columns:.7fr 1.1fr 1.2fr;gap:60px;padding-top:34px;padding-bottom:36px;border-bottom:1px solid var(--ep-line)}.ep-label{color:var(--ep-muted)}.ep-facts p{font-size:13px;line-height:1.8;margin-top:10px;max-width:340px}.ep .ep-body{display:grid;grid-template-columns:245px minmax(0,1fr);gap:60px;padding-top:95px}.ep-index{align-self:start;position:sticky;top:125px}.ep-index nav{display:grid;gap:20px;margin-top:30px;font-size:12px}.ep-index nav a{color:var(--ep-muted);display:flex;gap:20px;align-items:baseline}.ep-index nav a:hover{color:var(--ep-ink)}.ep-index nav span{font-size:10px;color:var(--ep-muted)}.ep .ep-index-note{border-top:1px solid var(--ep-line);padding-top:24px;margin-top:42px;font-size:11px;line-height:1.9;color:var(--ep-muted)}.ep h2{font-size:clamp(32px,3.3vw,46px);line-height:1.2}.ep-brief h2,.ep-section-heading h2,.ep-delivery h2{margin:20px 0 28px}.ep .ep-lead{font-size:20px;line-height:1.7;letter-spacing:-.01em;max-width:680px;color:var(--ep-muted)}.ep-brief{padding-bottom:65px;border-bottom:1px solid var(--ep-line);margin-bottom:60px}.ep-rich{font-size:15px;line-height:1.9;color:var(--ep-muted);overflow-wrap:break-word}.ep-rich p,.ep-rich ul,.ep-rich ol{margin:0 0 22px}.ep-rich li{margin-block:10px}.ep-rich ul,.ep-rich ol{padding-left:22px}.ep-rich strong{color:var(--ep-ink);font-weight:550}.ep-rich h2,.ep-rich h3,.ep-rich h4{color:var(--ep-ink);font-family:Manrope,Arial,sans-serif;font-weight:500;font-size:26px;line-height:1.4;margin:30px 0 20px}.ep-rich a{text-decoration:underline;text-underline-offset:3px}.ep .ep-rich figure{margin:38px 0 44px;width:100%;max-width:100%!important;float:none;clear:both}.ep-rich figure>div{width:100%;max-width:100%}.ep-rich img{width:100%;height:auto;max-width:100%}.ep-image-open{display:block;width:100%;border:0;background:#f0f1eb;padding:0;cursor:zoom-in;position:relative;overflow:hidden;font:inherit;text-align:left}.ep-image-hint{position:absolute;right:14px;bottom:14px;background:#fff;color:#232726;border-radius:2px;padding:10px 13px;font-size:10px;line-height:1.5;box-shadow:0 2px 15px #0001}.ep-rich figcaption{font-size:10px;margin-top:12px;color:var(--ep-muted);letter-spacing:.03em}.ep-delivery{border-top:1px solid var(--ep-line);margin-top:65px;padding-top:55px}.ep-deliverables ul,.ep-deliverables ol{list-style:none;margin:0;padding:0;counter-reset:deliverable}.ep-deliverables li{border-bottom:1px solid var(--ep-line);padding:17px 0 17px 50px;position:relative;font-size:14px;line-height:1.75;counter-increment:deliverable}.ep-deliverables li:before{content:counter(deliverable,decimal-leading-zero);font-size:10px;color:var(--ep-muted);position:absolute;left:0;top:20px}.ep-deliverables li p{font-size:inherit;line-height:inherit;margin:0}.ep-deliverables p{font-size:15px;line-height:1.85;margin-bottom:20px}.ep-tools{display:flex;flex-wrap:wrap;gap:7px;margin-top:28px}.ep-tools>span{border:1px solid var(--ep-line);font-size:11px;border-radius:30px;padding:8px 13px;line-height:1.5}.ep .ep-next{margin-top:100px;margin-bottom:80px}.ep-next>a{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-top:40px;border-top:1px solid var(--ep-line)}.ep-next h2{margin:18px 0 12px;font-size:44px}.ep-next h2 span{display:inline-block;font-size:30px;transition:transform .2s}.ep-next a:hover h2 span{transform:translate(4px,-4px)}.ep-next p:last-child{font-size:12px;color:var(--ep-muted)}.ep-next img{width:32%;max-height:200px;object-fit:cover;border-radius:3px}.ep-contact{background:var(--ep-accent);color:#202a2e;padding:65px 0}.ep-contact .ep-shell{display:grid;grid-template-columns:1fr 1fr;align-items:end}.ep-contact .ep-eyebrow{grid-column:1/-1;margin-bottom:20px}.ep-contact h2{font-size:clamp(44px,5vw,68px)}.ep-contact .ep-visit{justify-self:end;background:#202a2e;color:white;min-width:240px;margin-bottom:8px}.ep-archive{margin-top:65px;border-top:1px solid var(--ep-line);padding-top:55px}.ep-archive h2{margin:20px 0 25px;font-size:34px}.ep-archive>p{font-size:15px;line-height:1.8;color:var(--ep-muted);margin-bottom:20px}.ep-archive>.subtitle{font-size:10px;letter-spacing:.16em;color:var(--ep-muted)}.ep-archive>a{display:inline-block;background:none;color:var(--ep-ink);padding:0;margin:0 0 24px;border:0;border-radius:0;font-size:12px;text-decoration:underline;text-underline-offset:4px}.ep .archive-browser{border:1px solid var(--ep-line);border-radius:8px;overflow:hidden;background:white;margin-top:12px}.ep .archive-browser__bar{display:flex;align-items:center;gap:12px;padding:13px;background:#eceee9;font-size:10px;line-height:1.4;color:#5b635a;border-bottom:1px solid var(--ep-line)}.ep .archive-browser__dots{display:flex;gap:4px}.ep .archive-browser__dots i{display:block;width:7px;height:7px;border-radius:50%;background:#bdc7bb}.ep .archive-browser__hint{margin-left:auto}.ep .archive-browser__viewport{height:560px;max-height:65vh;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.ep .archive-browser__viewport img{width:100%;height:auto;max-height:none;object-fit:contain}.ep .archive-browser__viewport:focus-visible{outline:3px solid #397ba6;outline-offset:-3px}.ep-viewer{border:0;background:#f6f6f3;max-width:96vw;width:min(1400px,96vw);max-height:94dvh;padding:56px 20px 20px;color:#222;position:fixed;inset:0;margin:auto;font-family:'DM Sans',Arial,sans-serif}.ep-viewer::backdrop{background:#101715e8}.ep-viewer form{position:sticky;top:-40px;display:flex;justify-content:flex-end;z-index:2;margin-top:-40px;margin-bottom:15px}.ep-viewer button{background:#222;color:white;border:0;padding:12px 18px;cursor:pointer;font:inherit;font-size:13px}.ep-viewer>img{display:block;width:100%;height:auto}.ep-viewer>p{font-size:12px;padding-top:15px}
@media(max-width:1100px){.ep .ep-shell{padding-inline:36px}.ep .ep-hero{column-gap:40px}.ep .ep-body{grid-template-columns:180px minmax(0,1fr);gap:35px}.ep .ep-facts{gap:30px}.ep-index nav a{gap:10px}}
@media(max-width:767px){.ep .ep-shell{padding-inline:22px}.ep .ep-hero{display:flex;flex-direction:column;padding-top:24px;gap:0}.ep-back{margin-bottom:35px}.ep h1{font-size:clamp(40px,11vw,70px)}.ep-title-mark{margin-left:8px}.ep .ep-headline{font-size:22px;margin-top:15px}.ep-summary{padding-top:22px;padding-bottom:0}.ep-summary>p{font-size:14px}.ep .ep-visit{padding:15px 20px}.ep .ep-cover{margin-top:32px}.ep-cover figcaption{font-size:9px;gap:20px;line-height:1.5}.ep-cover figcaption span:last-child{text-align:right}.ep .ep-facts{grid-template-columns:1fr;gap:20px;margin-top:22px;padding-top:22px;padding-bottom:25px}.ep-facts>div{display:grid;grid-template-columns:90px 1fr;gap:15px}.ep-facts p{margin:0;font-size:12px}.ep-facts .ep-label{font-size:9px;padding-top:4px}.ep .ep-body{display:block;padding-top:0}.ep-index{position:static;display:block;padding:23px 0;margin:0 0 36px;border-bottom:1px solid var(--ep-line)}.ep-index>.ep-eyebrow,.ep .ep-index-note{display:none}.ep-index nav{display:flex;gap:18px;margin:0;flex-wrap:wrap;font-size:10px}.ep-index nav a{gap:5px}.ep-brief{padding-bottom:35px;margin-bottom:35px}.ep-brief h2,.ep-section-heading h2,.ep-delivery h2{margin:16px 0 20px}.ep h2{font-size:32px}.ep .ep-lead{font-size:17px}.ep-rich{font-size:14px;line-height:1.85}.ep .ep-rich figure{margin:28px 0}.ep-delivery{margin-top:35px;padding-top:35px}.ep-deliverables li{padding-left:33px;font-size:13px}.ep .ep-next{margin-top:55px;margin-bottom:45px}.ep-next>a{gap:20px;padding-top:28px}.ep-next h2{font-size:28px}.ep-next h2 span{font-size:24px}.ep-next .ep-eyebrow{font-size:8px}.ep-next img{width:34%;height:105px;object-fit:cover}.ep-contact{padding:45px 0}.ep-contact .ep-shell{display:block}.ep-contact h2{font-size:48px}.ep-contact .ep-visit{margin-top:26px;min-width:220px}.ep-image-hint{font-size:9px;padding:8px;right:8px;bottom:8px}.ep-archive{margin-top:35px;padding-top:35px}.ep-archive h2{font-size:28px}.ep .archive-browser__bar{font-size:9px;gap:7px;padding:10px}.ep .archive-browser__viewport{height:430px;max-height:60vh}}
@media(prefers-reduced-motion:reduce){.ep *{transition:none!important;scroll-behavior:auto!important}}

/* Related projects at the end of every case study. */
.ep .ep-related { margin-top: 100px; margin-bottom: 80px; }
.ep-related-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; padding-top: 40px; border-top: 1px solid var(--ep-line); }
.ep-related-heading h2 { margin-top: 14px; font-size: clamp(32px, 3.3vw, 46px); }
.ep-related-heading > a { flex-shrink: 0; font-size: 12px; border-bottom: 1px solid currentColor; padding-bottom: 6px; }
.ep-related-heading > a span { margin-left: 22px; }
.ep-related-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 36px; }
.ep-related-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--ep-line); border-radius: 8px; overflow: hidden; background: #fff; transition: border-color .2s, box-shadow .2s; }
.ep-related-card:hover { border-color: #a5b5b1; box-shadow: 0 12px 28px #20221f10; }
.ep-related-card img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ep-related-card-copy { display: flex; flex-direction: column; flex: 1; gap: 13px; padding: 18px 20px 22px; }
.ep-related-card-category { color: var(--ep-muted); font-size: 10px; line-height: 1.4; letter-spacing: .14em; text-transform: uppercase; }
.ep-related-card-title { display: flex; align-items: start; justify-content: space-between; gap: 12px; margin-top: auto; font: 500 clamp(20px, 1.8vw, 26px)/1.2 Manrope, Arial, sans-serif; letter-spacing: -.04em; }
.ep-related-card-title > span { font-size: 20px; transition: transform .2s; }
.ep-related-card:hover .ep-related-card-title > span { transform: translate(3px, -3px); }
@media (max-width: 900px) { .ep-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
    .ep .ep-related { margin-top: 55px; margin-bottom: 48px; }
    .ep-related-heading { align-items: start; padding-top: 28px; }
    .ep-related-heading h2 { font-size: 32px; }
    .ep-related-heading > a { margin-top: 4px; white-space: nowrap; }
    .ep-related-heading > a span { margin-left: 5px; }
    .ep-related-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 26px; }
    .ep-related-card img { aspect-ratio: 16 / 10; }
}
@media (prefers-reduced-motion: reduce) {
    .ep-related-card, .ep-related-card-title > span { transition: none; }
}
