@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&display=swap');
:root{--paper:#f3f3f1;--ink:#181a19;--muted:#737773;--line:#e3e5e1;--accent:#ad3d2b;--white:#fff;--soft:#f8f8f6}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 'DM Sans',Arial,sans-serif;padding:32px 4% 0}h1,h2,h3,p{margin-top:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}a,button,input,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px}header{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:28px 32px;background:var(--white);border-radius:8px 8px 0 0}.logo{display:inline-flex;align-items:baseline;font-size:28px;line-height:1;font-weight:650;letter-spacing:-1.5px}.logo span{font-weight:450}.logo i{width:5px;height:5px;margin-left:4px;border-radius:50%;background:var(--accent)}nav{display:flex;gap:28px;font-size:12px}nav a:hover,nav a.active{color:var(--accent)}.talk{font-size:12px;display:flex;gap:25px;align-items:center}.talk span{font-size:20px}.talk:hover{color:var(--accent)}main{min-height:60vh}h1,h2,h3{font-weight:500;letter-spacing:-.035em}.hero{display:grid;grid-template-columns:1.25fr 1fr;gap:9%;align-items:end;background:var(--white);padding:100px 32px 44px;border-radius:0 0 8px 8px}.eyebrow{font-size:10px;color:var(--muted);font-weight:450;letter-spacing:.02em;margin-bottom:16px}.hero h1{font-size:clamp(30px,3.4vw,52px);line-height:1.08;margin:0;letter-spacing:-.045em}.hero-brief p{font-size:15px;line-height:1.6;max-width:375px;margin-bottom:24px}.hero-actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.button-link{display:inline-flex;gap:26px;align-items:center;background:var(--ink);color:white;padding:11px 15px;font-size:11px;border-radius:5px;transition:background .2s}.button-link:hover{background:var(--accent)}.text-link{display:inline-flex;align-items:center;gap:25px;font-size:12px}.text-link:hover{color:var(--accent)}.section{padding:70px 0}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;margin-bottom:28px}.section-heading h2,.about-compact h2{font-size:29px;line-height:1.15;margin:0}.section-heading>p{font-size:12px;color:var(--muted);line-height:1.5;margin:0}.services-overview{display:grid;grid-template-columns:1fr 2fr;gap:9%;padding-top:60px;padding-bottom:65px}.services-overview .section-heading{display:block}.services-overview .section-heading h2{margin-bottom:20px}.service-grid{min-width:0}.service-summary{display:grid;grid-template-columns:22px 1.1fr 1.15fr 15px;align-items:baseline;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.service-summary:first-child{padding-top:0}.service-number{font-size:10px;color:var(--muted)}.service-summary h3{font-size:15px;line-height:1.35;font-weight:500;letter-spacing:-.025em;margin:0}.service-summary p{font-size:11px;line-height:1.5;color:var(--muted);margin:0}.service-arrow{font-size:15px}.service-summary:hover h3,.service-summary:hover .service-arrow{color:var(--accent)}.selected-work{padding-top:10px}.selected-work .section-heading{align-items:center}.curated-projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.project{display:block;min-width:0}.project-art{aspect-ratio:1.15;background:#e9ebe8;border-radius:6px;overflow:hidden;display:flex;align-items:center;justify-content:center}.project-art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s}.project:hover .project-art img{transform:scale(1.025)}.project-art.nokia{padding:25px 18px;background:#e3e7e4}.project-art.nokia img{object-fit:contain;box-shadow:0 8px 22px #16231e18;border-radius:2px}.project-art.bridging{background:#efedf4}.project-art.bridging img{object-fit:contain}.project-art.orb img{object-position:center}.project-meta{display:flex;justify-content:space-between;gap:15px;padding:17px 2px 0}.project-meta h3{font-size:16px;line-height:1.4;font-weight:500;letter-spacing:-.03em;margin:0 0 7px}.project-meta p{font-size:10px;color:var(--muted);margin:0 0 5px}.project-meta>span{font-size:18px;line-height:1.5}.project-credit{display:block;font-size:10px;color:var(--muted)}.caption{font-size:10px;line-height:1.65;color:var(--muted);max-width:640px;margin:24px 0 0}.approach-compact{padding-top:25px}.approach-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.approach-grid article{background:var(--white);border-radius:7px;padding:26px;min-height:218px;display:flex;flex-direction:column}.num{font-size:10px;color:var(--muted)}.approach-grid h3{font-size:21px;margin:25px 0 12px;line-height:1.2}.approach-grid p{font-size:13px;line-height:1.55;color:var(--muted);max-width:290px;margin:0}.about-compact{display:grid;grid-template-columns:1fr 2fr;gap:9%;padding-top:25px;padding-bottom:80px}.about-compact p{font-size:21px;line-height:1.5;letter-spacing:-.025em;max-width:650px;margin-bottom:25px}.cta{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:40px 32px;background:var(--white);border-radius:8px}.cta .eyebrow{margin-bottom:16px}.cta h2{font-size:34px;line-height:1.1;margin:0}.cta p{font-size:13px;color:var(--muted);margin:13px 0 0}.cta .text-link{background:var(--ink);color:var(--white);border-radius:5px;padding:12px 17px;gap:45px;flex-shrink:0}.cta .text-link:hover{background:var(--accent)}footer{display:flex;justify-content:space-between;gap:30px;padding:35px 0 30px;font-size:11px}footer .logo{font-size:24px}footer p{color:var(--muted);margin:0;line-height:1.5}footer div{display:flex;flex-direction:column;gap:12px}small{font-size:10px;color:var(--muted)}.page-intro{background:var(--white);padding:75px 32px 45px;border-radius:0 0 8px 8px;margin-bottom:55px}.page-intro h1{font-size:clamp(34px,4.1vw,62px);line-height:1.06;margin:20px 0 25px;max-width:850px;letter-spacing:-.045em}.lede{font-size:17px;line-height:1.65;max-width:700px;margin:0}.service-details{padding-top:0}.cap-block{display:grid;grid-template-columns:1fr 1.5fr;gap:10%;padding:32px 0;border-bottom:1px solid var(--line)}.cap-block:first-child{padding-top:0}.cap-block h2{font-size:25px;line-height:1.2;margin:12px 0}.cap-block p{font-size:17px;line-height:1.6;max-width:700px}.cap-block .service-scope{font-size:14px;color:var(--muted);line-height:1.7}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{background:#e9ebe7;border-radius:4px;padding:6px 9px;font-size:10px;color:#606760}.projects{display:grid;grid-template-columns:1fr 1fr;gap:40px 24px}.projects .project-art{aspect-ratio:1.55}.people{display:grid;grid-template-columns:1fr 1fr;gap:50px}.person{padding:26px;background:white;border-radius:7px}.monogram{font-size:40px;height:90px;letter-spacing:-2px}.person h3{font-size:24px;margin:10px 0 5px}.person p{font-size:14px;line-height:1.7;color:var(--muted);max-width:470px;margin:22px 0}.person a{font-size:12px}.section-head{display:grid;grid-template-columns:1fr 2fr;gap:9%;margin-bottom:35px}.section-head h2{font-size:30px;line-height:1.2;margin:0}.section-more{margin-top:28px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%}.contact-grid>div>p{font-size:20px;line-height:1.5;max-width:350px;margin-top:25px}label{display:block;font-size:12px;margin-bottom:24px}input,textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid #cbd0ca;border-radius:0;padding:12px 0;outline:none;font-size:15px;color:var(--ink)}input:focus,textarea:focus{border-color:var(--ink)}textarea{resize:vertical;min-height:110px}.submit{width:100%;display:flex;justify-content:space-between;background:var(--ink);color:white;border:0;border-radius:5px;padding:15px 20px;font-size:13px;cursor:pointer}.submit:hover{background:var(--accent)}.form-note{font-size:11px;line-height:1.7;color:var(--muted);margin-top:18px}.case-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:30px 0}.case-facts p{font-size:14px;line-height:1.6;margin:0}.case-facts small{display:block;font-size:10px;letter-spacing:.4px;margin-bottom:8px}.case-art .project-art{aspect-ratio:1.8;padding:20px}.case-art .project-art img{object-fit:contain;box-shadow:none}.case-copy{margin:45px 0 0 33.333%;max-width:700px;font-size:17px;line-height:1.7}.case-copy h2{font-size:25px;margin:32px 0 15px}.case-copy p{color:var(--muted)}.back{font-size:12px}.delivery-note{font-size:12px;line-height:1.6;color:var(--muted);max-width:750px;margin-top:24px}.reveal{animation:arrive .2s ease both}@keyframes arrive{from{opacity:.6}to{opacity:1}}@media(min-width:1500px){body{max-width:1500px;margin:auto}}@media(max-width:1000px){.hero{gap:5%;padding-top:80px}.hero h1{font-size:36px}.hero-actions{gap:16px}.hero-brief p{font-size:14px}.services-overview{grid-template-columns:1fr 2.5fr;gap:6%}.service-summary{grid-template-columns:18px 1fr 1fr 12px;gap:10px}.project-meta h3{font-size:15px}}@media(max-width:700px){body{padding:14px 5% 0}header{padding:23px 20px;gap:20px}.logo{font-size:25px}nav{gap:15px;font-size:11px}.talk{font-size:0;gap:0}.talk span{font-size:20px}.hero{padding:65px 20px 30px;grid-template-columns:1fr;gap:28px}.hero h1{font-size:clamp(27px,7.5vw,42px);line-height:1.1}.eyebrow{font-size:9px;margin-bottom:14px}.hero-brief p{font-size:14px;max-width:400px;margin-bottom:22px}.hero-actions{gap:19px}.button-link{font-size:10px;gap:20px;padding:11px 13px}.hero .text-link{font-size:10px;gap:8px}.section{padding:45px 0}.section-heading h2,.about-compact h2{font-size:25px}.section-heading{margin-bottom:24px;gap:20px}.section-heading>p{font-size:11px}.services-overview{display:block;padding-top:40px}.services-overview .section-heading{display:flex;align-items:flex-start;margin-bottom:26px}.services-overview .section-heading h2{margin:0}.service-summary{grid-template-columns:18px 1fr 14px;gap:10px;padding:17px 0}.service-summary h3{font-size:15px}.service-summary p{grid-column:2;grid-row:2;font-size:12px;max-width:290px}.service-summary .service-arrow{grid-row:1;grid-column:3}.selected-work{padding-top:0}.curated-projects{grid-template-columns:1fr;gap:30px}.curated-projects .project-art{aspect-ratio:1.4}.project-meta h3{font-size:17px}.project-art.nokia{padding:25px 20px}.selected-work .text-link{font-size:11px;gap:10px}.approach-compact{padding-top:0}.approach-grid{grid-template-columns:1fr;gap:10px}.approach-grid article{padding:23px;min-height:0}.approach-grid h3{margin:18px 0 12px}.approach-grid p{max-width:none}.about-compact{grid-template-columns:1fr;gap:25px;padding-top:0}.about-compact p{font-size:19px}.cta{padding:30px 23px;align-items:flex-start;flex-direction:column;gap:24px}.cta h2{font-size:30px}.cta .text-link{font-size:11px}footer{padding:30px 0;gap:20px}footer p{display:none}footer div{font-size:11px}.page-intro{padding:55px 20px 30px;margin-bottom:35px}.page-intro h1{font-size:35px;margin:18px 0 22px}.lede{font-size:15px}.service-details{padding-top:0}.cap-block{grid-template-columns:1fr;gap:8px;padding:28px 0}.cap-block h2{font-size:24px;margin:8px 0}.cap-block p{font-size:16px}.cap-block .service-scope{font-size:14px}.projects{grid-template-columns:1fr;gap:30px}.people{grid-template-columns:1fr;gap:16px}.monogram{height:65px}.section-head{grid-template-columns:1fr;gap:16px}.section-head h2{font-size:27px}.contact-grid{grid-template-columns:1fr;gap:35px}.case-facts{grid-template-columns:1fr;gap:20px}.case-copy{margin-left:0;font-size:16px}.case-art .project-art{aspect-ratio:1.25;padding:12px}.caption{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Continuous white canvas, restrained surfaces and scroll-linked typography. */
:root{--paper:#fff;--white:#fff;--soft:#f7f7f5;--ink:#20211f;--muted:#7d7e79;--line:#ededeb;--accent:#677c29}body{padding:0;background:white;max-width:none}header{position:relative;max-width:1280px;margin:auto;padding:24px 5%;border-radius:0;height:84px;gap:35px}.logo i{background:#8a9a49}nav{font-size:13px;gap:30px}.talk{border-radius:30px;padding:9px 18px;background:var(--ink);color:white;font-size:12px}.talk:hover{color:white;background:#42463b}.hero{max-width:1100px;margin:0 auto;display:block;background:transparent;padding:115px 25px 105px;text-align:center;border-radius:0}.hero-label{display:inline-flex;align-items:center;gap:8px;border:1px solid #ededeb;border-radius:30px;padding:6px 12px;font-size:12px;color:#666861;margin-bottom:26px}.hero-label span{width:5px;height:5px;border-radius:50%;background:#8a9a49}.hero h1{font-size:clamp(39px,4.3vw,62px);line-height:1.12;font-weight:400;letter-spacing:-.045em;margin:0 auto 27px}.hero-copy{max-width:570px;margin:0 auto 32px;font-size:18px;line-height:1.55;color:var(--muted)}.hero-actions{justify-content:center;gap:28px}.button-link{border-radius:30px;font-size:13px;font-weight:400;padding:12px 23px}.text-link{font-size:13px;display:inline-block;text-decoration:underline;text-decoration-color:#d5d7ce;text-underline-offset:5px;text-decoration-thickness:1px}.text-link:hover{text-decoration-color:var(--accent)}.hero-note{font-size:11px;color:#96988f;margin:55px 0 0}.section{max-width:1160px;padding:95px 0;margin:auto}.center-heading{text-align:center;max-width:780px;margin:0 auto 65px}.eyebrow{font-size:12px;letter-spacing:0;color:#85867f;font-weight:400;margin-bottom:18px}.center-heading h2,.about-compact h2{font-size:clamp(30px,3vw,43px);line-height:1.18;font-weight:400;letter-spacing:-.04em;margin:0 0 23px}.center-heading>p:last-child{font-size:17px;line-height:1.55;color:var(--muted);margin:0}.services-overview{display:block;max-width:1000px;padding-top:65px}.service-grid{max-width:920px;margin:auto}.service-summary{grid-template-columns:30px 1fr 1.15fr 85px;gap:25px;padding:26px 0;align-items:start}.service-summary:first-child{padding-top:26px}.service-summary h3{font-size:18px;font-weight:400;line-height:1.3}.service-summary p{font-size:14px;line-height:1.6}.service-number{font-size:11px;color:#a3a49e;padding-top:3px}.service-detail{font-size:11px;color:#8b8d85;text-align:right;padding-top:3px}.service-summary:hover .service-detail{color:var(--accent)}.selected-work{padding-top:90px}.experience-stories{display:flex;flex-direction:column;gap:125px}.experience-story{display:grid;grid-template-columns:.85fr 1.35fr;gap:10%;align-items:center}.story-copy h3{font-weight:400;font-size:31px;line-height:1.18;letter-spacing:-.035em;margin:0 0 25px}.story-copy>p:not(.eyebrow){font-size:15px;line-height:1.7;color:var(--muted);margin-bottom:24px;max-width:360px}.story-copy small{display:block;font-size:11px;margin:0 0 25px;color:#909187}.experience-story:nth-child(2){grid-template-columns:1.35fr .85fr}.experience-story:nth-child(2) .story-copy{order:2}.story-image{min-width:0;display:block}.story-image .project-art{aspect-ratio:1.17;border-radius:18px;background:#f7f7f5;padding:35px;overflow:hidden}.story-image .project-art img{object-fit:contain;box-shadow:none;border-radius:5px}.story-image .orb{padding:0;background:#f7f7f5}.story-image .orb img{object-fit:cover;border-radius:0}.story-image .bridging{background:#f7f6f9}.section-action{text-align:center;margin-top:60px}.button-link.secondary{background:#f5f5f2;color:#44473c}.button-link.secondary:hover{background:#eaedde}.approach-compact{padding-top:100px}.approach-grid{gap:20px}.approach-grid article{background:#f8f8f6;border-radius:16px;padding:30px;min-height:255px;opacity:calc(.6 + var(--enter,1)*.4);transform:translateY(calc((1 - var(--enter,1))*12px))}.approach-grid h3{font-size:23px;font-weight:400;margin:32px 0 18px}.approach-grid p{font-size:15px;line-height:1.6}.about-compact{grid-template-columns:1fr 1fr;gap:12%;padding-top:95px;padding-bottom:110px}.about-compact h2{margin:0}.about-compact>div:last-child{padding-top:34px}.about-compact>div:last-child>p{font-size:18px;line-height:1.65;color:var(--muted);font-weight:400;letter-spacing:-.015em;margin-bottom:28px}.cta{display:block;max-width:1160px;margin:0 auto;padding:85px 20px 95px;border-radius:0;background:white;text-align:center;border-top:1px solid var(--line)}.cta h2{font-size:44px;font-weight:400;margin-bottom:22px}.cta p{font-size:16px;color:var(--muted);margin:0 0 30px}.cta .text-link{display:inline-block;border-radius:30px;font-size:13px;padding:12px 25px;text-decoration:none}footer{max-width:1160px;margin:auto;padding:40px 0 35px;border-top:1px solid var(--line)}.page-intro{max-width:1160px;margin:0 auto 70px;padding:90px 0 30px;background:transparent;border-radius:0}.page-intro h1{font-weight:400;font-size:clamp(36px,4.5vw,62px)}.page-intro .lede{color:var(--muted);font-size:18px}.service-details{padding-top:0}.cap-block h2,.section-head h2,.person h3,.case-copy h2{font-weight:400}.tags span{background:#f5f5f2;color:#797d72;border-radius:20px}.person{background:#f8f8f6;border-radius:16px}.monogram{color:#747f51;font-weight:400}.contact-grid{padding-top:0}.submit{border-radius:30px;font-size:13px}.projects .project-art{border-radius:14px;background:#f5f6f3}.project-meta>span{display:none}.project-meta h3{font-weight:400}.case-art .project-art{background:#f7f7f5}.reveal{animation:none}.reveal-char{color:var(--reveal-color,var(--ink))}
@media(max-width:1250px){.section,.page-intro,footer,.cta{width:90%}.services-overview{max-width:1000px}.experience-story{gap:7%}.story-image .project-art{padding:25px}.story-image .orb{padding:0}}
@media(max-width:700px){body{padding:0}header{height:76px;padding:22px 5%;gap:16px}.logo{font-size:26px}nav{font-size:11px;gap:16px}.talk{font-size:11px;white-space:nowrap;padding:8px 13px}.talk{max-width:90px;line-height:1.25;text-align:center}.hero{padding:75px 5% 65px}.hero h1{font-size:clamp(34px,8.8vw,52px);line-height:1.14;margin-bottom:25px}.hero h1 br{display:none}.hero-label{font-size:11px;margin-bottom:24px}.hero-copy{font-size:16px;line-height:1.65;max-width:360px;margin-bottom:28px}.hero-actions{gap:22px}.button-link{font-size:12px;padding:12px 19px}.hero .text-link{font-size:12px}.hero-note{font-size:10px;margin-top:40px}.section{padding:60px 0;width:90%}.center-heading{margin-bottom:40px}.center-heading h2,.about-compact h2{font-size:32px}.center-heading>p:last-child{font-size:15px}.eyebrow{font-size:11px}.services-overview{padding-top:35px}.service-summary{grid-template-columns:20px 1fr;gap:10px 14px;padding:23px 0}.service-summary:first-child{padding-top:23px}.service-summary h3{font-size:18px}.service-summary p{grid-column:2;grid-row:2;font-size:14px}.service-detail{display:none}.service-number{padding-top:4px}.selected-work{padding-top:50px}.experience-stories{gap:65px}.experience-story,.experience-story:nth-child(2){grid-template-columns:1fr;gap:28px}.experience-story .story-copy,.experience-story:nth-child(2) .story-copy{order:1}.experience-story .story-image{order:2}.story-copy h3{font-size:29px;margin-bottom:18px}.story-copy>p:not(.eyebrow){font-size:15px;max-width:none;margin-bottom:18px}.story-copy small{margin-bottom:16px}.story-copy .eyebrow{margin-bottom:14px}.story-image .project-art{aspect-ratio:1.15;padding:25px;border-radius:14px}.story-image .orb{padding:0}.section-action{margin-top:40px}.approach-compact{padding-top:60px}.approach-grid{gap:14px}.approach-grid article{padding:27px;min-height:215px}.approach-grid h3{margin:26px 0 15px}.approach-grid p{font-size:15px}.about-compact{grid-template-columns:1fr;gap:26px;padding-top:60px;padding-bottom:70px}.about-compact>div:last-child{padding:0}.about-compact>div:last-child>p{font-size:17px}.cta{padding:65px 0 70px}.cta h2{font-size:35px}.cta p{font-size:15px}.cta .text-link{font-size:12px}.page-intro{padding:60px 0 20px;margin-bottom:40px}.page-intro h1{font-size:38px}.page-intro .lede{font-size:16px}.service-details{padding-top:0}.contact-grid{padding-top:0}.case-facts{margin-top:25px}footer{padding:30px 0;gap:30px}footer .logo{font-size:24px}.section-head{gap:18px}}
@media(prefers-reduced-motion:reduce){.reveal-char{color:var(--ink)}[data-enter]{opacity:1;transform:none}}
.talk span{font-size:inherit}.talk-mobile{display:none}.talk{flex-shrink:0}.logo{flex-shrink:0}@media(max-width:700px){.talk-desktop{display:none}.talk-mobile{display:inline}.talk{max-width:none;white-space:normal;line-height:1.3;padding:9px 14px}header{gap:12px}nav{gap:14px}}
/* Open, non-interactive overview: one destination for the complete services. */
.services-overview{max-width:1160px}.services-overview .center-heading{text-align:left;max-width:760px;margin:0 0 68px}.services-overview .center-heading h2 br{display:none}.services-overview .center-heading h2{max-width:740px}.services-overview .center-heading>p:last-child{max-width:650px}.services-overview .center-heading>p:last-child br{display:none}.services-overview .service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:55px;row-gap:50px;max-width:none;margin:0}.services-overview .service-summary,.services-overview .service-summary:first-child{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:17px;padding:0;border:0}.service-icon{color:#696d65;padding-top:2px;line-height:1}.service-icon svg{display:block}.services-overview .service-summary h3{font-size:18px;line-height:1.35;font-weight:400;margin:0 0 8px;color:var(--ink)}.services-overview .service-summary p{font-size:14px;line-height:1.6;margin:0;color:var(--muted)}.service-overview-link{margin-top:42px}.services-overview .service-summary:hover h3{color:var(--ink)}@media(max-width:1000px){.services-overview .service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}}@media(max-width:700px){.services-overview .center-heading{margin-bottom:38px}.services-overview .service-grid{grid-template-columns:1fr;gap:30px}.services-overview .service-summary,.services-overview .service-summary:first-child{gap:15px}.services-overview .service-summary h3{font-size:18px}.services-overview .service-summary p{font-size:14px;grid-column:auto;grid-row:auto}.service-overview-link{margin-top:32px}}

.reveal-word{white-space:nowrap}.reveal-char{display:inline-block;opacity:var(--reveal-opacity,1);filter:blur(var(--reveal-blur,0px))}@media(prefers-reduced-motion:reduce){.reveal-char{opacity:1;filter:none}}

/* Neutral interaction states; colour is reserved for imagery and rainbow reveals. */
:root{--accent:#20211f}
a,a:hover{text-decoration:none}.text-link,.text-link:hover{text-decoration:none}
a,button,input,textarea{transition:color 170ms ease,background-color 170ms ease,border-color 170ms ease}
nav a{color:#777874}nav a:hover,nav a.active{color:#20211f}
.text-link,.back,.person a,footer div>a{color:#747570}.text-link:hover,.back:hover,.person a:hover,footer div>a:hover{color:#20211f}
.button-link,.talk,.submit,.cta .text-link{background:#20211f;color:#fff}
.button-link:hover,.talk:hover,.submit:hover,.cta .text-link:hover{background:#3b3b39;color:#fff}
.button-link.secondary{background:#f3f3f3;color:#50504e}.button-link.secondary:hover{background:#e9e9e9;color:#20211f}
a:focus-visible,button:focus-visible{outline:2px solid #20211f;outline-offset:5px}
/* Beside-style title fade, followed by the body copy lifting into place. */
.text-arrival-title,.text-arrival-copy{opacity:0}.text-arrival-copy{transform:translateY(12px)}
.text-arrival-title.text-arrival-visible{animation:text-arrival-fade 500ms ease-out 180ms both}
.text-arrival-copy.text-arrival-visible{animation:text-arrival-copy 600ms cubic-bezier(.22,1.15,.36,1) 400ms both}
@keyframes text-arrival-fade{from{opacity:0}to{opacity:1}}
@keyframes text-arrival-copy{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.text-arrival-title,.text-arrival-copy{opacity:1;transform:none;animation:none!important}}

.cta{padding:120px 20px 125px}.cta .eyebrow{margin-bottom:26px}.cta h2{font-size:clamp(39px,4.3vw,62px);line-height:1.12;font-weight:400;letter-spacing:-.045em;margin:0 0 27px}.cta p{margin:0 0 32px}.cta .text-link{padding:12px 23px}@media(max-width:700px){.cta{padding:85px 0 90px}.cta h2{font-size:clamp(34px,8.8vw,52px);line-height:1.14;margin-bottom:25px}.cta .eyebrow{margin-bottom:24px}}

/* Inner pages share the homepage's introduction scale and open layout rhythm. */
.page-intro-centered{text-align:center;max-width:1000px;padding:115px 20px 85px;margin:0 auto 0}.page-intro-centered .eyebrow{margin-bottom:26px}.page-intro-centered h1{font-size:clamp(39px,4.3vw,62px);line-height:1.12;letter-spacing:-.045em;margin:0 auto 27px;max-width:850px}.page-intro-centered .lede{font-size:18px;line-height:1.55;max-width:650px;margin:0 auto;color:var(--muted)}
.service-details{padding:20px 0 95px;max-width:1040px}.service-details .cap-block{grid-template-columns:1fr 1.35fr;gap:10%;padding:58px 0;border-bottom:1px solid #ededeb}.service-details .cap-block:first-child{padding-top:28px}.service-details .cap-block:last-child{border-bottom:0}.service-detail-title{display:flex;align-items:flex-start;gap:20px}.service-detail-title .service-icon{padding-top:5px}.service-detail-title svg{width:26px;height:26px}.service-details .cap-block h2{font-size:27px;line-height:1.2;letter-spacing:-.035em;font-weight:400;margin:0;max-width:300px}.service-detail-copy>p:first-child{font-size:18px;line-height:1.55;margin-bottom:21px}.service-details .service-scope{font-size:15px;line-height:1.7;margin-bottom:24px}.service-activities{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;padding:0;margin:0;list-style:none;font-size:12px;color:#85867f}
.work-index{padding-top:15px;padding-bottom:95px}.work-index .projects{gap:55px 30px}.work-index .project-art{aspect-ratio:1.3;border-radius:18px;background:#f7f7f5;padding:30px}.work-index .project-art img{object-fit:contain;box-shadow:none}.work-index .orb,.work-index .balanc{padding:0}.work-index .orb img,.work-index .balanc img{object-fit:cover}.work-index .bridging{background:#f7f6f9}.work-index .project-meta{padding:20px 0 0;gap:20px}.work-index .project-meta h3{font-size:20px;font-weight:400;line-height:1.35;margin-bottom:9px}.work-index .project-meta p{font-size:12px;line-height:1.5;margin-bottom:7px}.work-index .project-credit{font-size:11px}.work-index .caption{margin-top:40px;max-width:760px;font-size:11px;color:#92948b}
.team-section{padding-top:20px;padding-bottom:80px}.team-section .center-heading{margin-bottom:45px}.team-section .center-heading h2{font-size:36px;line-height:1.2}.team-section .people{gap:25px}.team-section .person{padding:35px;background:#f8f8f6;border:0;border-radius:16px}.team-section .person h3{font-size:27px;line-height:1.2;margin:0 0 12px}.team-section .person>small{font-size:12px;line-height:1.4}.team-section .person p{font-size:15px;line-height:1.7;margin:27px 0 25px;max-width:none}.team-section .person a{font-size:13px}.about-engagement{display:grid;grid-template-columns:1fr 1fr;gap:12%;padding-top:40px;padding-bottom:110px}.about-engagement h2{font-size:36px;line-height:1.2;font-weight:400;letter-spacing:-.04em;margin:0}.about-engagement>div:last-child{padding-top:32px}.about-engagement>div:last-child>p{font-size:17px;line-height:1.65;color:var(--muted);margin:0 0 23px}.about-engagement .text-link{margin-top:5px}
@media(max-width:1250px){.service-details{width:86%}.page-intro-centered{width:90%}}
@media(max-width:700px){.page-intro-centered{width:90%;padding:75px 0 55px;margin:0 auto}.page-intro-centered h1{font-size:clamp(34px,8.8vw,52px);line-height:1.14;margin:0 auto 25px}.page-intro-centered .eyebrow{margin-bottom:24px}.page-intro-centered .lede{font-size:16px;line-height:1.65}.service-details{padding:0 0 60px;width:90%}.service-details .cap-block,.service-details .cap-block:first-child{grid-template-columns:1fr;gap:25px;padding:35px 0}.service-detail-title{gap:15px}.service-details .cap-block h2{font-size:25px;max-width:300px}.service-detail-title .service-icon{padding-top:2px}.service-detail-title svg{width:23px;height:23px}.service-detail-copy>p:first-child{font-size:17px}.service-details .service-scope{font-size:14px}.service-activities{font-size:12px;gap:10px 15px}.work-index{padding:0 0 65px}.work-index .projects{gap:35px}.work-index .project-art{aspect-ratio:1.25;padding:22px;border-radius:14px}.work-index .orb,.work-index .balanc{padding:0}.work-index .project-meta h3{font-size:20px}.work-index .caption{font-size:10px;margin-top:30px}.team-section{padding:0 0 55px}.team-section .center-heading{margin-bottom:30px}.team-section .center-heading h2{font-size:30px}.team-section .people{gap:18px}.team-section .person{padding:27px}.team-section .person h3{font-size:25px}.team-section .person p{font-size:14px}.about-engagement{grid-template-columns:1fr;gap:25px;padding-top:10px;padding-bottom:70px}.about-engagement h2{font-size:31px}.about-engagement>div:last-child{padding:0}.about-engagement>div:last-child>p{font-size:16px}}

/* Nokia case study: original animated product components in isolated frames. */
.nokia-motion{margin:80px 0 96px}.nokia-motion-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.nokia-motion-heading h2{font-size:clamp(26px,3vw,42px);line-height:1.15;margin:0;font-weight:500;letter-spacing:-.04em}.nokia-theme-toggle{flex-shrink:0;border:1px solid #d3d5d0;background:transparent;color:#343831;border-radius:8px;padding:9px 14px;font:inherit;font-size:12px;cursor:pointer}.nokia-motion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}.nokia-motion-example{min-width:0;margin:0}.nokia-motion-example iframe{display:block;width:100%;height:330px;border:1px solid #e0e2dc;border-radius:12px;background:#fff}.nokia-motion-example--time-series iframe,.nokia-motion-example--scatter iframe{height:440px}.nokia-motion-example figcaption{font-size:12px;color:#656a61;margin-top:12px}.nokia-motion.is-dark iframe{background:#0c1428;border-color:#303a4e}.nokia-theme-toggle:focus-visible{outline:2px solid #343831;outline-offset:4px}@media(max-width:600px){.nokia-motion-grid{grid-template-columns:1fr}.nokia-motion-example iframe{height:330px}.nokia-motion-example--time-series iframe,.nokia-motion-example--scatter iframe{height:440px}}@media(max-width:560px){.nokia-motion{margin-block:48px}.nokia-motion-heading{align-items:center}.nokia-motion-heading h2{font-size:28px}.nokia-motion-example--donut iframe{height:300px}.nokia-motion-example--glow iframe{height:340px}}

/* Source-led case-study narrative; Nokia is the first project using this layout. */
.case-study .case-facts{padding-bottom:26px;border-bottom:1px solid var(--line);margin-bottom:36px}.case-story-row{display:grid;grid-template-columns:1fr 1.2fr;gap:10%;padding:72px 0;border-bottom:1px solid var(--line)}.case-story-row h2,.case-story-heading h2,.case-capability h2{font-size:clamp(26px,2.7vw,38px);line-height:1.2;margin:0;letter-spacing:-.035em}.case-story-copy p,.case-process p,.case-outcome-copy p,.case-capability p{color:#62685f;font-size:16px;line-height:1.75;max-width:64ch}.case-story-copy p:last-child{margin-bottom:0}.case-process{padding:72px 0;border-bottom:1px solid var(--line)}.case-process-steps{list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}.case-step-number{display:block;font-size:11px;color:#72796c;margin-bottom:18px}.case-process h3{font-size:19px;line-height:1.35;margin-bottom:12px}.case-process-steps p{font-size:15px;margin-bottom:0}.case-decisions{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:40px;padding-top:30px;border-top:1px solid var(--line)}.case-decisions h3{font-size:15px}.case-decisions p{font-size:14px;margin-bottom:0}.case-solution .case-story-row{border-bottom:0;padding-bottom:32px}.case-workflow{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin:0;padding:0 0 48px;border-bottom:1px solid var(--line)}.case-workflow li{font-size:13px;line-height:1.5;padding-top:16px;border-top:2px solid #d5d9d0}.case-workflow span{display:block;font-size:10px;color:#72796c;margin-bottom:8px}.case-study .nokia-motion{margin-block:64px}.case-outcome{display:grid;grid-template-columns:1fr 1.2fr;gap:10%;padding:52px 40px;background:#fff;border-radius:12px}.case-outcome-metric strong{display:block;font-size:clamp(70px,8vw,112px);font-weight:400;line-height:1;letter-spacing:-.07em;margin-bottom:20px}.case-outcome-metric>p:last-child{font-size:15px;max-width:24ch;margin:0}.case-outcome-copy{align-self:center}.case-outcome-copy h2{font-size:30px;line-height:1.2}.case-outcome-copy .text-link{font-size:11px}.case-capability{display:grid;grid-template-columns:1fr 1.2fr;gap:10%;padding:64px 0 32px}.case-capability ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px;padding:0;margin:24px 0 0;color:#62685f;font-size:12px}.case-attribution{font-size:12px;color:#6b7265;max-width:78ch;line-height:1.6;margin:0 0 64px}.case-project-contact{padding:48px 0;border-top:1px solid var(--line)}.case-project-contact h2{font-size:clamp(28px,3vw,40px);line-height:1.2;max-width:24ch;margin-bottom:20px}.case-project-contact>p{font-size:16px;color:#62685f;margin-bottom:24px}@media(max-width:800px){.case-story-row,.case-capability{grid-template-columns:1fr;gap:24px}.case-process-steps{grid-template-columns:1fr;gap:26px}.case-process-steps li{display:grid;grid-template-columns:28px 1fr;gap:12px}.case-step-number{margin-top:5px}.case-outcome{grid-template-columns:1fr;gap:32px;padding:32px 24px}.case-workflow{grid-template-columns:1fr 1fr;gap:18px}.case-story-row,.case-process{padding-block:44px}.case-capability{padding-top:44px}.case-attribution{margin-bottom:40px}}@media(max-width:560px){.case-decisions{grid-template-columns:1fr;gap:22px}.case-study .case-facts{gap:18px;margin-top:20px}.case-study .nokia-motion{margin-block:44px}.case-story-copy p,.case-outcome-copy p,.case-capability p{font-size:15px}.case-outcome-copy h2{font-size:26px}}

/* Compact case-study story, using the existing typography and spacing. */
.case-outcome--concise{align-items:center}.case-outcome--concise .case-outcome-metric strong{margin-bottom:0}.case-outcome--concise .case-outcome-copy>p{font-size:clamp(22px,2.5vw,32px);line-height:1.35;color:var(--ink);max-width:25ch;margin:0 0 20px}.case-project-contact--concise{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:48px}.case-project-contact--concise h2{margin:0}.case-project-contact--concise .button-link{flex-shrink:0}@media(max-width:600px){.case-project-contact--concise{align-items:flex-start;flex-direction:column}}

.nokia-motion-video{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#fff;border:0;border-radius:0}

/* Homepage-only decorative motion; content retains its original geometry. */
.hero{position:relative;isolation:isolate;overflow:hidden}.hero>.hero-dots{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}

.hero>:not(.hero-dots){position:relative;z-index:1}

.case-story-row--factual h2,.case-study #case-organization{font-size:28px;line-height:1.25;letter-spacing:-.025em;margin:0}.case-factual-list{margin:18px 0 0;padding-left:20px;color:#62685f;font-size:16px;line-height:1.7}.case-factual-list li{padding-left:3px;margin:10px 0}.case-factual-list strong{font-weight:600;color:var(--ink)}@media(max-width:600px){.case-factual-list{font-size:15px}}

.case-study .case-story-row[aria-labelledby="case-organization"]{border-bottom:0}.case-study .case-story-row[aria-labelledby="case-organization"]+.case-project-contact{border-top:0}

.td-case-visuals{padding:32px 0 48px}.td-case-visuals figure{margin:0 0 36px}.td-case-visuals img{display:block;width:100%;height:auto;border-radius:8px;border:1px solid var(--line)}.td-case-visuals figcaption{font-size:12px;color:var(--muted);margin-top:12px}.td-case-visuals .text-link{margin-top:4px}.story-image .td img{width:100%;height:100%;object-fit:cover;object-position:top}

/* Three considered beats guide the homepage hero. */
.hero-sequence .hero-label,.hero-sequence .hero-copy,.hero-sequence .hero-actions,.hero-sequence .hero-note{opacity:0;transform:translate3d(0,12px,0)}
.hero-sequence .hero-label.hero-sequence-visible{animation:hero-copy-settle 420ms cubic-bezier(.2,.75,.25,1) both}
.hero-sequence .hero-copy.hero-sequence-visible{animation:hero-copy-settle 640ms cubic-bezier(.2,.75,.25,1) both}
.hero-sequence .hero-actions.hero-sequence-visible{animation:hero-actions-settle 620ms cubic-bezier(.22,.85,.25,1) both}
.hero-sequence .hero-note.hero-sequence-visible{animation:hero-copy-settle 460ms cubic-bezier(.2,.75,.25,1) both}
@keyframes hero-copy-settle{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes hero-actions-settle{0%{opacity:0;transform:translate3d(0,14px,0) scale(.985)}76%{opacity:1;transform:translate3d(0,-1px,0) scale(1.004)}100%{opacity:1;transform:translate3d(0,0,0) scale(1)}}
@media(prefers-reduced-motion:reduce){.hero-sequence .hero-label,.hero-sequence .hero-copy,.hero-sequence .hero-actions,.hero-sequence .hero-note{opacity:1;transform:none;animation:none!important}}

/* Scroll-aware site navigation: hide on descent, reveal on ascent. */
body>header{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid transparent;transition:transform 260ms cubic-bezier(.2,.8,.2,1),border-color 180ms ease,box-shadow 180ms ease}
body>header.site-nav-scrolled{border-bottom-color:var(--line);box-shadow:0 8px 22px rgba(32,33,31,.055)}
body>header.site-nav-hidden{transform:translateY(calc(-100% - 1px))}
@media(prefers-reduced-motion:reduce){body>header{transition:none}}

#services{scroll-margin-top:112px}

/* Founder introduction */
.hero .hero-label{display:block;width:fit-content;max-width:100%;margin:0 auto 30px;padding:0;border:0;border-radius:0;font-size:13px;line-height:1.65;font-weight:400;letter-spacing:0;color:var(--muted)}
.hero-label a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;transition:text-decoration-color 180ms ease}
.hero-label a:hover{text-decoration-color:var(--ink)}
@media(max-width:700px){.hero .hero-label{font-size:12px;max-width:310px;margin-bottom:26px}}
