@font-face{font-family:'Open Sans';src:url('assets/open-sans-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Open Sans';src:url('assets/open-sans-semibold.woff2') format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:'Open Sans';src:url('assets/open-sans-bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
:root{color-scheme:light;--paper:#f5f5f5;--ink:#171717;--muted:#626262;--line:#d5d5d5;--dark:#0a0a0a;--red:#c31642;--content-max:1660px;--gutter:max(7vw,calc((100vw - var(--content-max))/2));--surface:#e9e9e9;--input:#fff}
body{font-family:'Open Sans',sans-serif;font-weight:400}h1,h2,h3{font-weight:600}.lead,.hero-note,.eyebrow,.service-row p,.section-heading>p,.steps p,.quote-section span,.aside p,.small,.contact-aside p,.project-label,.filter-count,.tech-strip p{color:var(--muted)}
.theme-toggle{order:3;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:2px;padding:10px 12px;font-size:12px;min-height:44px;white-space:nowrap}.theme-toggle:hover{background:var(--surface)}.header .brand{order:1}.header nav{order:2;margin-left:auto}.header .menu-toggle{order:4}.header{gap:22px}.header nav{gap:23px}.header nav .button{gap:18px}
.project-section,.aside,.form-note,.detail-image img,footer{background:var(--surface)}input,select,textarea{background:var(--input);border-color:var(--line);color:var(--ink)}.filters button{color:var(--ink)}.filters button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.button.secondary{color:var(--ink)}.button.secondary:hover{background:var(--surface)}
@media(min-width:901px){
 .header,.hero,.page-intro,.section:not(.narrow),.detail-image{width:calc(100% - 14vw);max-width:var(--content-max);padding-inline:0;margin-inline:auto}
 .trustline,.tech-strip{width:calc(100% - 14vw);max-width:var(--content-max);margin-inline:auto}
 .project-section{width:100%;max-width:none;padding-inline:var(--gutter)}
 .cta,footer,.demo{padding-inline:var(--gutter)}
 .quote-section{width:calc(100% - 14vw);max-width:var(--content-max);margin-inline:auto;padding-inline:5vw}
 .dark-feature{padding-inline:var(--gutter)}
 .hero{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(35px,5vw,110px)}
 .hero-copy,.architecture{min-width:0}.hero .lead{max-width:730px}
}
@media(min-width:761px) and (max-width:1100px){.header{flex-wrap:wrap;gap:16px}.header nav{gap:15px;font-size:13px}.header nav .button{font-size:12px;padding:12px}.theme-toggle{font-size:11px}.brand{flex-basis:130px}.brand img{width:130px;height:82px}}
@media(max-width:760px){.header{gap:9px}.header nav{margin-left:0}.header .brand{margin-right:auto}.theme-toggle{font-size:10px;padding:9px 8px;min-height:44px}.menu-toggle{padding:10px 9px;gap:8px}.header nav.open{color:var(--ink)}.hero h1{font-size:38px}.header .brand img{width:100px;height:63px}.header .brand{flex-basis:100px}.demo{font-size:8px}.hero{padding-top:28px}}
:root[data-theme=dark]{color-scheme:dark;--paper:#0a0a0a;--ink:#eeeeee;--muted:#b5b5b5;--line:#393939;--surface:#171717;--input:#151515;--red:#e51950}
[data-theme=dark] .header nav{background:var(--paper)}
[data-theme=dark] .service-row:hover h3{color:#fa7697}
[data-theme=dark] .project-image{background:#202020}
[data-theme=dark] .architecture{box-shadow:12px 12px 0 #242424}
[data-theme=dark] .button:not(.secondary){background:#c31642;border-color:#c31642}
[data-theme=dark] .button:not(.secondary):hover{background:#a40a33}
[data-theme=dark] .row-number,[data-theme=dark] .steps article>span{color:#fa7697}
[data-theme=dark] .footer-bottom{border-color:var(--line)}
[data-theme=dark] hr{border-color:var(--line)}
[data-theme=dark] .cta,[data-theme=dark] .dark-feature{background:#111;border-block:1px solid #292929}
[data-theme=dark] .skip{background:#fff;color:#111}
[data-theme=dark] #form-status{background:#252525;color:#eee}
[data-theme=dark] .menu-toggle{color:var(--ink)}
@media(max-width:760px){[data-theme=dark] .architecture{box-shadow:7px 7px 0 #242424}}

/* Technology marks: locally stored SVGs, monochrome in both themes. */
.tech-strip .tech-list{list-style:none;padding:0;margin:0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px 32px}
.tech-list li{display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:20px;letter-spacing:-.025em;color:var(--ink)}
.tech-strip .tech-list span{color:inherit}
.tech-icon{display:block;flex:0 0 32px;width:32px;height:32px;background:currentColor;mask:var(--tech-mark) center/contain no-repeat;-webkit-mask:var(--tech-mark) center/contain no-repeat}
.tech-icon-typo3{--tech-mark:url('assets/tech/typo3.svg')}
.tech-icon-nuxt{--tech-mark:url('assets/tech/nuxt.svg')}
.tech-icon-vue{--tech-mark:url('assets/tech/vuedotjs.svg')}
.tech-icon-laravel{--tech-mark:url('assets/tech/laravel.svg')}
.tech-icon-api{--tech-mark:url('assets/tech/api.svg')}
.tech-icon-docker{--tech-mark:url('assets/tech/docker.svg')}
.tech-icon-ai{--tech-mark:url('assets/tech/local-ai.svg')}
@media(max-width:1100px){.tech-strip .tech-list{justify-content:flex-start;gap:24px 36px}}
@media(max-width:760px){.tech-strip .tech-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}.tech-list li{font-size:17px;gap:10px}.tech-icon{width:28px;height:28px;flex-basis:28px}}

/* Keep the approved client-logo scale independent of responsive file density. */
.customer-logo img{width:calc(var(--logo-source-width,300) * 700px / 1280)}
@media(max-width:1100px){.customer-logo img{width:calc(var(--logo-source-width,300) * 46vw / 1280)}}
@media(max-width:700px){.customer-logo img{width:calc(var(--logo-source-width,300) * 92vw / 1280)}}
