@font-face{font-family:Arimo;src:url('assets/arimo-regular.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Arimo;src:url('assets/arimo-bold.ttf') format('truetype');font-weight:700 900;font-display:swap}
:root{--paper:#fcf7e7;--ink:#151718;--muted:#625e54;--line:#15171830;--accent:#b9583d;scroll-behavior:smooth;scroll-padding-top:30px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arimo,Arial,sans-serif}a{color:inherit;text-underline-offset:5px}a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:5px}img{display:block;max-width:100%;height:auto}figure{margin:0}figcaption{font-size:12px;line-height:1.6;color:var(--muted);margin:14px 0 0}p{font-size:18px;line-height:1.75;margin:0 0 22px}h1,h2,h3{font-weight:700;letter-spacing:-.055em}h1{font-size:clamp(52px,6.5vw,104px);line-height:1.02;max-width:1120px;margin:26px 0 30px}h2{font-size:clamp(36px,3.5vw,54px);line-height:1.08;margin:20px 0 30px}h3{font-size:26px;line-height:1.15;margin:0 0 18px}.wrap{width:min(1400px,88%);margin-inline:auto}.site-header{width:88%;margin:0 auto;padding:28px 0;display:flex;justify-content:space-between;align-items:center;gap:24px;border-bottom:1px solid var(--line)}.site-header img{filter:brightness(0);width:180px}.back{font-size:13px}.hero{padding:90px 0 48px}.eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;line-height:1.7;margin:0}.intro{font-size:clamp(20px,2vw,28px);line-height:1.5;max-width:830px}.hero-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:24px;margin-top:40px;font-size:12px}.hero-image img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#ddd}.case-body{display:grid;grid-template-columns:210px minmax(0,1fr);gap:7%;padding-top:100px}.case-nav{position:sticky;top:40px;align-self:start}.case-nav nav{display:flex;flex-direction:column;gap:18px;margin-top:26px}.case-nav a{font-size:13px;text-decoration:none}.case-nav a:hover{text-decoration:underline}.story{max-width:970px;min-width:0}.story>section{padding:0 0 110px}.facts{display:grid;grid-template-columns:1fr 1fr;gap:0 30px;margin:42px 0 0}.facts>div{border-top:1px solid var(--line);padding:20px 0}dt{font-size:11px;color:var(--muted);margin-bottom:10px}dd{margin:0;font-size:17px;line-height:1.5}.responsibilities{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:45px}.responsibilities article{border-top:1px solid var(--ink);padding-top:20px}.responsibilities span{font-size:12px;color:var(--accent);display:block;margin-bottom:35px}.responsibilities p,.process p{font-size:15px;line-height:1.7}.responsibilities h3{font-size:24px}.ui-figure{padding-top:25px}.ui-figure img{width:100%;background:white;border:1px solid var(--line);border-radius:5px}.state-layout{display:grid;grid-template-columns:200px 1fr;gap:50px;align-items:center;background:#e9e9df;margin-top:45px;padding:40px}.state-layout figure{max-width:135px;margin:auto}.state-layout p{font-size:16px}.state-layout h3{font-size:34px}.workflow-figure{margin-top:45px}.workflow-scroll{overflow-x:auto;background:#d8d9d4;border:1px solid var(--line);padding:30px 20px;scrollbar-color:var(--accent) #d8d9d4}.workflow-scroll img{width:2300px;max-width:none;height:auto}.process{margin-top:40px;border-top:1px solid var(--ink)}.process>div{display:grid;grid-template-columns:1fr 1.2fr;gap:30px;padding:25px 0;border-bottom:1px solid var(--line)}.process h3{font-size:23px;margin:0}.process p{margin:0}.secondary-image{margin-top:40px}.secondary-image img{width:100%;aspect-ratio:3/2;object-fit:cover}.tags{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:35px 0 0}.tags li{border:1px solid var(--line);padding:10px 14px;border-radius:30px;font-size:12px}.story>.contact{border-top:1px solid var(--ink);padding-top:40px;padding-bottom:70px}.cta{display:inline-block;padding:17px 26px;background:var(--ink);color:var(--paper);border-radius:30px;text-decoration:none;font-size:14px;margin-top:10px}footer{border-top:1px solid var(--line);padding:30px 0 50px;display:flex;gap:35px;justify-content:space-between;align-items:start}footer>a{font-size:15px}.skip{position:absolute;top:-100px;padding:16px;background:var(--ink);color:var(--paper)}.skip:focus{top:0}
@media(min-width:1700px){.hero{padding-top:115px}}
@media(max-width:1000px){.case-body{grid-template-columns:155px minmax(0,1fr);gap:5%}.responsibilities{grid-template-columns:1fr}.responsibilities span{margin-bottom:16px}.responsibilities p{max-width:600px}.state-layout{gap:25px;padding:25px;grid-template-columns:130px 1fr}.state-layout h3{font-size:29px}}
@media(max-width:700px){.wrap,.site-header{width:88%}.site-header{padding:22px 0}.site-header img{width:145px}.hero{padding:55px 0 30px}h1{font-size:clamp(42px,10vw,65px);margin:23px 0}.intro{font-size:20px}.hero-meta{font-size:11px;margin-top:28px}.hero-image{width:100%}.hero-image figcaption{width:88%;margin-inline:auto}.hero-image img{aspect-ratio:4/3}.case-body{display:block;padding-top:45px}.case-nav{position:static;margin-bottom:55px}.case-nav nav{flex-direction:row;flex-wrap:wrap;gap:14px 22px;margin-top:18px}.case-nav a{font-size:12px}.story>section{padding-bottom:65px}p{font-size:17px}h2{font-size:36px}.facts{gap:0 20px}.facts dd{font-size:15px}.state-layout{grid-template-columns:90px 1fr;gap:20px;padding:24px 15px}.state-layout h3{font-size:26px}.state-layout p{font-size:15px}.state-layout figcaption{font-size:10px}.process>div{display:block}.process h3{margin-bottom:12px}.workflow-scroll img{width:2000px}footer{display:block}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}

/* Official company and tool links across all cases. */
.partner-link{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.18em}.partner-link:hover{color:var(--accent)}

/* Keep explanatory diagrams legible without cropping on narrow screens. */
.service-case .hero-image img{aspect-ratio:auto;object-fit:contain;background:#132426}

/* Shared button and link states on all project and service cases. */
.cta{transition:background-color .18s,color .18s,box-shadow .18s}.cta:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.cta:active{background:#8e402d;box-shadow:inset 0 2px 6px #0004}
@media(hover:hover){.cta:hover{background:var(--accent);color:var(--paper)}.back:hover,.case-nav a:hover,footer a:hover{color:var(--accent)}}
@media(prefers-reduced-motion:reduce){.cta{transition:none}}
