@font-face{font-family:Inter;font-style:normal;font-weight:400 600;font-display:swap;src:url("assets/fonts/inter-latin.woff2") format("woff2")}
:root{--header-height:80px;--page:#e6ede7;--card:#eef2ed;--subtle:#dce6dd;--ink:#1c3025;--muted:#4b6052;--line:#c4d2c7;--accent:#123d30;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;color:var(--ink);background:var(--page);scroll-padding-top:calc(var(--header-height) + 24px)}
*{box-sizing:border-box}body{margin:0;background:var(--page);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}body>main{flex:1}.site-header,.site-footer{flex-shrink:0}a{color:inherit}p,h1,h2,h3,ul,figure,dl{margin:0}img{display:block;max-width:100%}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.wrap{width:calc(100% - 96px);max-width:1168px;margin-inline:auto}.skip-link{position:fixed;left:24px;top:12px;z-index:30;background:var(--card);padding:12px 18px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:20;background:var(--page);border-bottom:1px solid var(--line)}.nav-shell{min-height:80px;display:flex;flex-wrap:wrap;align-items:center;gap:28px;padding-block:12px}.brand{display:flex;align-items:center;min-height:44px;gap:14px;text-decoration:none;flex-shrink:0}.brand-mark{font-size:2rem;font-weight:600;letter-spacing:-.075em;color:var(--accent);line-height:1}.brand-name{font-size:.75rem;font-weight:600;line-height:1.45;letter-spacing:.065em;border-left:1px solid var(--line);padding-left:14px}.site-header nav{display:flex;flex-wrap:wrap;flex-shrink:0;max-width:100%;gap:24px;margin-left:auto}.site-header nav a{display:flex;align-items:center;min-height:44px;font-size:.875rem;text-decoration:none;color:var(--muted)}.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--ink)}.site-header nav a[aria-current]{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:1px solid var(--accent);border-radius:6px;padding:12px 20px;font-size:.9375rem;line-height:1.4;font-weight:600;background:var(--accent);color:#f5f8f5;text-decoration:none}.button:hover{background:var(--ink);border-color:var(--ink)}.button-small{min-height:44px;padding:10px 17px;font-size:.875rem}.header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:100%}.header-actions .button-secondary{background:transparent;color:var(--accent)}.header-actions .button-secondary:hover{background:var(--subtle);color:var(--ink);border-color:var(--accent)}.hero{display:grid;grid-template-columns:minmax(0,1fr) 252px;gap:72px;padding-block:64px;align-items:start}.hero-copy{width:100%;min-width:0;padding-top:4px}h1{font-size:clamp(2rem,3.4vw,3rem);font-weight:500;letter-spacing:-.025em;line-height:1.12;max-width:25ch;text-wrap:balance}.hero-intro{font-size:1rem;line-height:1.6;max-width:38rem;margin-top:24px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 24px;margin-top:28px}.email-link{max-width:100%;font-size:.9375rem;text-decoration-thickness:1px;text-underline-offset:5px;overflow-wrap:anywhere}.identity{min-width:0}.identity>img{width:220px;height:220px;border-radius:8px;object-fit:cover;object-position:50% 33%;margin-bottom:22px}.identity-name{font-size:1.375rem;font-weight:600;letter-spacing:-.02em;line-height:1.4}.identity-role{font-size:.9375rem;line-height:1.5;color:var(--muted);margin-top:4px}.credential{font-size:.875rem;line-height:1.6;margin-top:18px}.credential strong{font-weight:600}.location span{display:block}.location{font-size:.875rem;color:var(--muted);line-height:1.6;margin-top:14px}.experience{display:flex;align-items:baseline;gap:48px;border-block:1px solid var(--line);padding-block:22px}.experience>p{font-size:.875rem;color:var(--muted)}.experience ul{display:flex;flex-wrap:wrap;gap:16px 34px;list-style:none;padding:0;font-size:1rem;font-weight:500}.section{padding-block:80px}.section-heading{display:grid;grid-template-columns:280px minmax(0,1fr);gap:40px;align-items:start;margin-bottom:32px}h2{font-size:1.75rem;line-height:1.3;font-weight:500;letter-spacing:-.025em}.section-heading>p{font-size:1.0625rem;line-height:1.65;max-width:650px;color:var(--muted)}.featured-work{display:grid;gap:24px}.featured-case{display:grid;grid-template-columns:244px minmax(0,1fr);gap:40px;padding:36px;background:var(--card);border:1px solid var(--line);border-radius:8px}.case-client{font-size:.875rem;font-weight:600;line-height:1.5;display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 18px}.case-client>span{font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums}.case-heading h3{font-size:1.5rem;font-weight:500;letter-spacing:-.02em;line-height:1.3;margin-top:18px}.case-role{font-size:.875rem;color:var(--muted);line-height:1.6;margin-top:16px}.case-body>p,.project-row>div>p:not(.case-client):not(.project-tools),.about-copy p{font-size:1.0625rem;line-height:1.7;max-width:66ch}.case-body>p+p,.about-copy>p+p{margin-top:16px}.case-body strong{font-weight:600}.case-facts{border-top:1px solid var(--line);margin-top:24px;padding-top:18px;display:grid;gap:10px}.case-facts>div{display:grid;grid-template-columns:70px minmax(0,1fr);gap:18px;font-size:.875rem;line-height:1.6}.case-facts dt{color:var(--muted)}.case-facts dd{margin:0}.other-work{margin-top:40px}.project-row{display:grid;grid-template-columns:280px minmax(0,1fr);gap:40px;padding-block:32px;border-top:1px solid var(--line)}.project-row:last-child{border-bottom:0}.project-row h3{font-size:1.375rem;font-weight:500;letter-spacing:-.02em;line-height:1.4;margin-top:12px}.project-tools{font-size:.875rem;color:var(--muted);line-height:1.6;margin-top:18px}.services{border-top:1px solid var(--line)}.platform-figure{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:28px;margin-bottom:48px}.platform-figure figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-size:.875rem;line-height:1.5;margin-bottom:28px}.platform-figure figcaption>span:first-child{font-weight:600}.platform-figure figcaption>span:last-child{color:var(--muted)}.platform-flow{display:grid;grid-template-columns:1fr 1.05fr 2.35fr 1fr;gap:24px;align-items:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.875rem;line-height:1.6}.flow-stage{position:relative;min-width:0}.flow-stage:not(:first-child)::before,.catalog-stage::before{content:"";position:absolute;left:-24px;top:50%;width:24px;height:1px;background:var(--muted)}.diagram-label{font-family:Inter,sans-serif;color:var(--muted);font-size:.875rem;margin-bottom:12px}.flow-stage>p:not(.diagram-label){line-height:1.8}.catalog-stage{position:relative;min-width:0;border:1px solid var(--line);border-radius:6px;padding:18px;background:var(--subtle)}.catalog-heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:16px}.catalog-heading strong{font-size:.875rem;font-weight:600}.catalog-heading>span{font-size:.8125rem;color:var(--muted)}.data-layers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.data-layers>div{position:relative;padding:12px 8px;background:var(--card);border:1px solid var(--line);border-radius:4px;min-width:0}.data-layers>div+div::before{content:"";position:absolute;left:-9px;top:50%;width:8px;height:1px;background:var(--muted)}.data-layers strong{display:block;font-weight:500;font-size:.875rem}.data-layers span{display:block;font-size:.875rem;line-height:1.5;color:var(--muted);margin-top:6px}.environment-note{font-family:Inter,sans-serif;font-size:.8125rem;line-height:1.5;color:var(--muted);margin-top:14px}.flow-outputs ul{list-style:none;padding:0;display:grid;gap:10px}.flow-outputs li{line-height:1.5}.flow-outputs li>span{display:block;font-size:.875rem;color:var(--muted);margin-top:3px}.deployment-lane{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px 24px;border-top:1px solid var(--line);margin-top:28px;padding-top:18px;font-size:.8125rem;line-height:1.6}.deployment-lane>p{font-size:.875rem;color:var(--muted)}.service-row{display:grid;grid-template-columns:280px minmax(0,1fr);gap:40px;padding-block:32px;border-top:1px solid var(--line)}.service-row:last-child{border-bottom:0}.service-row h3{font-size:1.375rem;font-weight:500;line-height:1.35;letter-spacing:-.02em}.service-row>div>p{font-size:1rem;line-height:1.65;margin-top:12px}.text-link{display:inline-block;font-size:.875rem;line-height:1.6;min-height:44px;padding-block:10px;margin-top:12px;text-decoration-thickness:1px;text-underline-offset:4px}.service-row>ul{list-style:none;padding:0;column-count:2;column-gap:32px;font-size:1rem;line-height:1.6}.service-row li{padding-left:14px;position:relative;break-inside:avoid;margin-bottom:18px}.service-row li:last-child{margin-bottom:0}.service-row li::before{content:"";position:absolute;left:0;top:.7em;width:4px;height:4px;border-radius:50%;background:var(--muted)}.about{border-top:1px solid var(--line)}.about-copy{min-width:0}.timeline{margin-left:320px;border-top:1px solid var(--line)}.timeline>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:24px;padding-block:18px;border-bottom:1px solid var(--line);font-size:.875rem;line-height:1.6}.timeline dt{color:var(--muted);font-variant-numeric:tabular-nums}.timeline dd{margin:0}.timeline strong{font-weight:500;font-size:1rem}.timeline dd span{display:block;color:var(--muted);margin-top:4px}.contact{background:#0b291f;color:#e5f0e9;padding-block:52px}.contact h2{font-size:1.125rem;font-weight:400;line-height:1.6;letter-spacing:0;color:#c6d8cc}.contact-email{display:inline-block;font-size:clamp(1.125rem,3vw,2rem);line-height:1.5;letter-spacing:-.015em;text-decoration-thickness:1px;text-underline-offset:7px;margin-top:14px;overflow-wrap:anywhere;max-width:100%}.contact-meta{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;font-size:.875rem;line-height:1.6;color:#c6d8cc;border-top:1px solid #365548;padding-top:24px;margin-top:36px}.contact-meta>span:last-child{margin-left:auto}.contact-meta a{min-height:44px;display:inline-flex;align-items:center;text-underline-offset:4px}.contact a:focus-visible{outline-color:#b9d7c3}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.hero{grid-template-columns:minmax(0,1fr) 230px;gap:40px}.section-heading,.featured-case,.project-row,.service-row{grid-template-columns:240px minmax(0,1fr);gap:32px}.timeline{margin-left:272px}.featured-case{padding:28px;grid-template-columns:212px minmax(0,1fr)}.platform-flow{grid-template-columns:1fr 1fr;align-items:stretch;gap:28px}.flow-stage:nth-child(1){grid-column:1}.flow-stage:nth-child(2){grid-column:2}.catalog-stage{grid-column:1/3}.flow-outputs{grid-column:1/3}.catalog-stage::before,.flow-outputs::before{left:50%;top:-28px;width:1px;height:28px}.flow-outputs ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.flow-stage:not(:first-child)::before{left:-28px;width:28px}.platform-flow>.flow-outputs::before{left:50%!important;top:-28px!important;width:1px!important;height:28px}.platform-figure{padding:24px}.service-row>ul{column-gap:24px}}
@media(max-width:780px){.wrap{width:calc(100% - 40px)}.nav-shell{min-height:76px;gap:20px}.brand-name{display:none}.site-header nav{gap:20px}.hero{grid-template-columns:minmax(0,1fr) 206px;gap:32px;padding-block:48px}.identity>img{width:184px;height:184px}.identity-name{font-size:1.25rem}.section{padding-block:56px}.section-heading{grid-template-columns:1fr;gap:16px;margin-bottom:28px}.section-heading>p{font-size:1rem}.featured-case,.project-row,.service-row{grid-template-columns:1fr;gap:24px}.featured-case{padding:28px;grid-template-columns:1fr}.case-heading h3{margin-top:12px}.case-role{margin-top:10px}.project-row>div{min-width:0}.case-body>p,.project-row>div>p:not(.case-client):not(.project-tools),.about-copy p{font-size:1rem}.service-row>div>p{max-width:65ch}.timeline{margin-left:0}.contact-meta>span:last-child{margin-left:0}.experience{gap:24px;align-items:flex-start}.experience ul{gap:12px 24px}.identity-role{font-size:.875rem}.credential,.location{font-size:.875rem}}
@media(max-width:580px){.wrap{width:calc(100% - 32px)}.nav-shell{min-height:72px;padding-block:12px;gap:10px}.brand-mark{font-size:1.75rem}.site-header nav{order:1;flex-basis:100%;justify-content:center;gap:24px}.header-actions{margin-left:auto}.site-header nav a{font-size:.875rem}.button-small{padding:10px 12px}.hero{display:flex;flex-direction:column;gap:28px;padding-block:32px 40px}.identity{order:-1;display:grid;grid-template-columns:76px minmax(0,1fr);gap:16px;width:100%}.identity>img{width:76px;height:76px;margin:0}.identity-name{font-size:1.25rem}.identity-role{font-size:.875rem;margin-top:2px}.credential{margin-top:12px;font-size:.875rem}.location{margin-top:8px;font-size:.8125rem}.location span{display:inline}.location span+span::before{content:" · "}.hero-copy{padding:0}h1{font-size:clamp(1.625rem,7.5vw,1.875rem);line-height:1.15;letter-spacing:-.02em;max-width:none;text-wrap:balance}.hero-intro{font-size:1rem;line-height:1.6;margin-top:18px}.hero-actions{align-items:flex-start;gap:16px;margin-top:24px}.email-link{font-size:.875rem;min-height:44px;display:flex;align-items:center}.experience{display:block;padding-block:18px}.experience>p{font-size:.8125rem;margin-bottom:12px}.experience ul{gap:10px 22px;font-size:.875rem}.section{padding-block:40px}h2{font-size:1.5rem}.section-heading{gap:12px;margin-bottom:24px}.featured-work{gap:20px}.featured-case{padding:24px;gap:20px}.case-heading h3{font-size:1.375rem;line-height:1.35}.case-client,.case-role,.case-facts{font-size:.875rem}.case-facts>div{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:.875rem}.case-facts dt{flex:0 0 4.375rem}.case-facts dd{flex:1 1 8rem;min-width:0}.other-work{margin-top:28px}.project-row{padding-block:28px;gap:18px}.project-row h3{font-size:1.25rem}.project-tools{font-size:.875rem}.platform-figure{padding:20px;margin-bottom:32px}.platform-figure figcaption{align-items:flex-start;flex-direction:column;gap:4px;margin-bottom:24px}.platform-flow{display:flex;flex-direction:column;gap:32px;font-size:.875rem}.flow-stage:not(:first-child)::before,.catalog-stage::before,.flow-outputs::before{left:18px!important;top:-32px!important;width:1px!important;height:32px}.flow-stage>p:not(.diagram-label){line-height:1.7}.catalog-stage{padding:16px}.data-layers{grid-template-columns:1fr;gap:16px}.data-layers>div{padding:12px}.data-layers>div+div::before{left:18px;top:-17px;width:1px;height:16px}.data-layers>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px}.data-layers strong{min-width:58px}.data-layers span{margin:0}.catalog-heading{margin-bottom:16px}.flow-outputs ul{grid-template-columns:1fr;gap:12px}.deployment-lane{gap:10px;margin-top:24px;padding-top:18px}.deployment-lane>p{width:100%}.deployment-lane>span{width:100%;font-size:.875rem}.service-row{padding-block:28px;gap:18px}.service-row h3{font-size:1.25rem}.service-row>ul{column-count:1;column-gap:0;font-size:1rem}.service-row li{margin-bottom:12px}.text-link{margin-top:8px;font-size:.875rem}.timeline>div{display:flex;flex-wrap:wrap;gap:8px 16px;padding-block:16px}.timeline dt{flex:0 0 6.25rem}.timeline dd{flex:1 1 10rem;min-width:0}.timeline dt{font-size:.8125rem}.timeline strong{font-size:.9375rem}.timeline dd span{font-size:.875rem}.contact{padding-block:36px}.contact h2{font-size:1rem}.contact-email{font-size:1.125rem;letter-spacing:-.02em;text-underline-offset:5px}.contact-meta{display:grid;gap:12px;font-size:.8125rem;margin-top:28px;padding-top:18px}.contact-meta a{justify-self:start}.location{line-height:1.6}.hero,.featured-case,.case-body,.service-row>div,.service-row>ul,.flow-stage,.timeline dd{min-width:0}}
.case-heading{min-width:0;overflow-wrap:break-word}@media(max-width:780px){.featured-case{grid-template-columns:minmax(0,1fr)}}
.hero-secondary{font-size:1.0625rem;line-height:1.65;max-width:600px;margin-top:16px;color:var(--muted);text-wrap:balance}.experience{display:block;padding-block:22px}.experience>p{margin-bottom:16px}.experience ul{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;align-items:center}.experience li{display:flex;justify-content:center;align-items:center;height:60px;min-width:0}.experience li img{width:auto;max-width:90%;object-fit:contain;height:28px}.experience li .logo-bridgestone{height:28px}.experience li .logo-aquafin{height:28px}.experience li .logo-ascendis{height:40px}.experience li .logo-cegeka{height:26px}.experience li .logo-delaware{height:23px}.experience-others{font-size:.875rem;font-weight:400;color:var(--muted)}@media(max-width:780px){.experience ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.experience li{height:52px}}@media(max-width:580px){.hero-secondary{font-size:1rem;margin-top:14px}.experience ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}.experience li{height:50px}}
.credential{text-wrap:balance}.hero-intro{text-wrap:pretty}.keep-together{white-space:nowrap}.site-header.is-wrapped{position:static}@media(min-width:1051px){.platform-flow>.flow-stage:not(:first-child)::before,.platform-flow>.catalog-stage::before{display:none}}@media(min-width:581px) and (max-width:1050px){.platform-flow>.flow-stage:nth-child(2)::before{top:.8em;left:-28px;width:20px}}
.email-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px;max-width:100%;min-width:0}.hero-actions.email-tools{align-items:center}.copy-email{font:inherit;font-size:.9375rem;line-height:1.4;display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:8rem;border:1px solid var(--line);border-radius:6px;padding:12px 20px;color:var(--muted);background:transparent;cursor:pointer;white-space:nowrap}.copy-email:hover{color:var(--ink);border-color:var(--muted)}.copy-status{font-size:.875rem;line-height:1.6;color:var(--muted)}.copy-address{flex-basis:100%;max-width:100%;font-size:.875rem;line-height:1.6;overflow-wrap:anywhere}.contact .email-tools{margin-top:0}.contact .contact-email{margin-top:0}.contact .copy-email{border-color:#365548;color:#c6d8cc}.contact button:focus-visible{outline-color:#b9d7c3}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.contact .button{background:#e5f0e9;border-color:#e5f0e9;color:#0b291f}.contact .button:hover{background:#c6d8cc;border-color:#c6d8cc}.contact-meta{display:block;border:0;padding:0;margin:24px 0 0}.copy-feedback{position:fixed;right:24px;bottom:24px;z-index:40;display:flex;align-items:center;gap:8px;max-width:calc(100% - 48px);padding:0 4px 0 16px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);box-shadow:0 4px 16px rgb(28 48 37 / .12);cursor:pointer}.copy-feedback[hidden]{display:none}.copy-dismiss{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:1.25rem;cursor:pointer}@media(max-width:580px){.copy-feedback{right:16px;bottom:16px;max-width:calc(100% - 32px)}}

.site-footer{background:#0b291f;color:#c6d8cc;padding-block:16px}.site-footer .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;font-size:.8125rem;line-height:1.6}

.hero-intro>p+p{margin-top:14px}
