/* Brand assets retain their authored geometry and fills. No image inversion. */
.brand-link .brand-logo{display:block;width:100%;height:100%;object-fit:contain;object-position:left center}
.brand-link .logo-dark{display:none}
.header .brand-link{display:block;width:190px;height:40px;flex-shrink:0}
.footer-wordmark.brand-link{display:block;width:100%;height:auto;aspect-ratio:5.1;margin:65px 0;line-height:normal;font-size:inherit}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:100px;background:var(--paper);color:var(--ink);font-size:11px;flex-shrink:0;transition:background .2s,border-color .2s,color .2s}
.theme-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle:hover{background:var(--soft);border-color:#9b9f9f}
.header-actions{gap:16px}
.menu-toggle{min-width:44px;min-height:44px;align-content:center;justify-content:center}
input::placeholder,textarea::placeholder{color:#9a9a94;opacity:1}
:root[data-theme="dark"]{--paper:#101419;--ink:#e8edf2;--muted:#adb8c4;--line:#353f4b;--soft:#191f27;--gold:#d2ba7c;color-scheme:dark}
[data-theme="dark"] .brand-link .logo-light{display:none}
[data-theme="dark"] .brand-link .logo-dark{display:block}
[data-theme="dark"] .header{background:#101419f7;border-color:#303a46}
[data-theme="dark"] .desktop-nav a{color:#c0c9d2}
[data-theme="dark"] .desktop-nav a:after{background:#d2ba7c}
[data-theme="dark"] .language span{color:#a7b3c0}
[data-theme="dark"] .menu-toggle span{background:#e8edf2}
[data-theme="dark"] #mobile-nav{background:#191f27;border-color:#353f4b;box-shadow:0 18px 35px #0004}
[data-theme="dark"] #mobile-nav a>span:first-child{color:#a7b3c0}
[data-theme="dark"] .skip-link{background:#242e39;color:#e8edf2}
[data-theme="dark"] .button{background:#e8edf2;color:#101419;border-color:#e8edf2;box-shadow:none}
[data-theme="dark"] .button:hover{background:#d2ba7c;border-color:#d2ba7c;box-shadow:0 8px 25px #0003}
[data-theme="dark"] .hero-description,
[data-theme="dark"] .intro-bottom p,
[data-theme="dark"] .heading-row>p,
[data-theme="dark"] .service-description,
[data-theme="dark"] .process-step p,
[data-theme="dark"] .fit-copy>p:not(.eyebrow),
[data-theme="dark"] .fit small,
[data-theme="dark"] details>p,
[data-theme="dark"] .project-meta>span,
[data-theme="dark"] .footer-top,
[data-theme="dark"] .footer-bottom{color:#adb8c4}
[data-theme="dark"] .card-top>span,
[data-theme="dark"] .process-step>span:first-child,
[data-theme="dark"] .project-status{color:#a7b3c0}
[data-theme="dark"] .service-card{background:#191f27;border-color:#353f4b;box-shadow:0 8px 24px #0002}
[data-theme="dark"] .service-card:hover{background:#1e2630;border-color:#657386;box-shadow:0 16px 32px #0004}
[data-theme="dark"] .card-top svg{stroke:#d2ba7c}
[data-theme="dark"] .tags li{border-color:#546171;color:#c9d2dc}
[data-theme="dark"] .service-link:hover .round-arrow{background:#d2ba7c;color:#101419;border-color:#d2ba7c}
[data-theme="dark"] .project-visual{background:#202832}
[data-theme="dark"] .project-open{background:#1b232d;color:#e8edf2;border:1px solid #596777}
[data-theme="dark"] .project-card:hover .project-open{background:#d2ba7c;color:#101419}
[data-theme="dark"] .fit-list{border-color:#3a4653}
[data-theme="dark"] .fit-row{border-color:#3a4653;color:#e8edf2}
[data-theme="dark"] .process-step>span:first-child{color:#8e98a4}
[data-theme="dark"] .process-icon{stroke:#e8edf2}
[data-theme="dark"] .footer-top a{color:#e8edf2}
[data-theme="dark"] .system-section{background:#0a0e13;color:#e8edf2;border-top:1px solid #303a46;border-bottom:1px solid #303a46}
[data-theme="dark"] .system-section .eyebrow,
[data-theme="dark"] .system-section .heading-row>p,
[data-theme="dark"] .node-detail p,
[data-theme="dark"] .lifecycle small{color:#adb8c4}
[data-theme="dark"] .system-map,[data-theme="dark"] .node-detail{border-color:#43505f}
[data-theme="dark"] .system-node{color:#bdc8d4;border-color:#354150}
[data-theme="dark"] .system-node:hover{color:#e8edf2;background:#202b37}
[data-theme="dark"] .system-node.selected{background:#d2ba7c;color:#101419}
[data-theme="dark"] .system-node:not(:last-child):after{color:#a7b3c0}
[data-theme="dark"] .detail-index{color:#c9d2dc}
[data-theme="dark"] .detail-arrow{color:#d2ba7c}
[data-theme="dark"] .lifecycle p{color:#d6dee6}
[data-theme="dark"] .lifecycle>div{border-color:#354150}
[data-theme="dark"] .contact-section{background:#0a0e13;color:#e8edf2;border-top:1px solid #303a46}
[data-theme="dark"] .contact-intro>.eyebrow,
[data-theme="dark"] .contact-intro>p:not(.eyebrow),
[data-theme="dark"] .demo-note,
[data-theme="dark"] form label,
[data-theme="dark"] #brief-ready p{color:#adb8c4}
[data-theme="dark"] .contact-mark,[data-theme="dark"] .ready-icon{color:#d2ba7c}
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea{color:#e8edf2;border-color:#697789}
[data-theme="dark"] select option{background:#191f27;color:#e8edf2}
[data-theme="dark"] input:hover,[data-theme="dark"] select:hover,[data-theme="dark"] textarea:hover{border-color:#d2ba7c}
[data-theme="dark"] input::placeholder,[data-theme="dark"] textarea::placeholder{color:#9eacbc}
[data-theme="dark"] #brief-text{border-color:#43505f;background:#141b24;color:#d6dee6}
[data-theme="dark"] dialog{background:#1b232d;color:#e8edf2;border-color:#556374;box-shadow:0 35px 100px #0008}
[data-theme="dark"] dialog::backdrop{background:#000a}
[data-theme="dark"] dialog p{color:#bdc8d4}
[data-theme="dark"] .dialog-close{background:#303d4c;color:#e8edf2}
[data-theme="dark"] .dialog-image{background:#121921}
[data-theme="dark"] :is(a,button,summary,input,select,textarea):focus-visible{outline:2px solid #e5cb89;outline-offset:5px}
[data-theme="dark"] .theme-toggle:hover{border-color:#7d8b9c}
[data-theme="dark"] ::selection{background:#d2ba7c;color:#101419}
/* Film and on-film text keep their own contrast, independently of the page theme. */
[data-theme="dark"] .story-bottom .scroll-icon,[data-theme="dark"] .skip-film{border-color:#758394}
[data-theme="dark"] .chapter-line{background:#566476}
[data-theme="dark"] .story.expanded .chapter-line{background:#a5a8ac}
@media(max-width:1100px){.desktop-nav{display:none}.menu-toggle{display:grid}}
@media(max-width:650px){.header .brand-link{width:155px;height:36px}.header-actions{gap:8px}.header{gap:10px}.theme-toggle{padding:10px;width:44px}.theme-toggle span{display:none}.footer-wordmark.brand-link{margin:40px 0;min-height:70px}.language{min-height:44px;align-items:center}[data-theme="dark"] .story-caption{color:#e8edf2}[data-theme="dark"] .caption-body{color:#adb8c4}[data-theme="dark"] .story.expanded .story-bottom{color:#e8edf2}}
@media(max-width:380px){.header .brand-link{width:120px}.header-actions{gap:3px}.header{gap:7px}.language{font-size:9px}}
@media(prefers-reduced-motion:reduce){.theme-toggle{transition:none}}

/* Optional analytics: a non-modal card, removed from layout after a choice. */
.analytics-consent{position:fixed;z-index:45;left:max(20px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));width:min(400px,calc(100vw - 40px));max-height:calc(100dvh - var(--header,80px) - 40px);overflow:auto;overscroll-behavior:contain;padding:24px;background:var(--paper,#fff);color:var(--ink,#18202a);border:1px solid var(--line,#d8dde2);border-radius:14px;box-shadow:0 8px 32px #10243d12;font-family:inherit;animation:consent-enter 180ms ease-out;}
.analytics-consent[hidden]{display:none!important}
.consent-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.consent-heading svg{width:24px;height:24px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.analytics-consent h2{font-size:19px;font-weight:500;line-height:1.3;letter-spacing:-.03em;margin:0}
.analytics-consent p{font-size:13px;line-height:1.7;color:var(--muted,#59616b);margin:0 0 20px}
.consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.consent-actions button{min-height:46px;padding:10px 12px;border:1px solid var(--line,#d8dde2);border-radius:7px;background:var(--soft,#f5f6f7);color:inherit;font:inherit;font-size:12px;font-weight:500;line-height:1.4;cursor:pointer;transition:background 160ms,border-color 160ms}
.consent-actions button:hover{background:var(--paper,#fff);border-color:var(--muted,#59616b)}
.analytics-consent .consent-policy{display:inline-flex;align-items:center;min-height:44px;margin-top:8px;font-size:12px;color:inherit;text-decoration:underline;text-underline-offset:4px}
.site-footer .cookie-preferences{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
.analytics-consent :is(button,a):focus-visible,.site-footer .cookie-preferences:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.analytics-consent:focus{outline:none}
@keyframes consent-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:520px){.analytics-consent{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));width:auto;padding:20px;max-height:calc(100dvh - var(--header,64px) - 24px)}.analytics-consent h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){.analytics-consent{animation:none}.consent-actions button{transition:none}}

/* Let's Talk keeps a white canvas in both site themes. Scope its palette so
   service choices, review and confirmation stay legible without changing BPO. */
#contact.contact-section{
 --paper:#fff;--ink:#18202a;--muted:#59616b;--soft:#f5f6f7;--line:#d8dde2;--gold:#806a32;
 background:#fff;color:var(--ink);color-scheme:light;border-top:1px solid #e7e9ec;
}
#contact .contact-intro>.eyebrow,#contact .contact-intro>p:not(.eyebrow),
#contact .demo-note,#contact form label,#contact #brief-ready p,
#contact #request-summary dt{color:var(--muted)}
#contact .contact-mark,#contact .ready-icon{color:var(--gold)}
#contact .demo-note{border-color:var(--gold)}
#contact input,#contact select,#contact textarea{
 color:var(--ink);caret-color:var(--ink);border-color:#a8b0b9;color-scheme:light;
}
#contact input:not([type=checkbox]):not([type=radio]),#contact select,#contact textarea{
 background:#f8f9fa;border:1px solid #c4cbd2;border-radius:8px;padding:12px 14px;
}
#contact input:hover,#contact select:hover,#contact textarea:hover{border-color:#727e8a}
#contact input::placeholder,#contact textarea::placeholder{color:#69737d;opacity:1}
#contact select option{background:#fff;color:var(--ink)}
#contact input:autofill{box-shadow:0 0 0 1000px #f3f6fa inset;-webkit-text-fill-color:#18202a;caret-color:#18202a}
#contact :is(a,button,summary,input,select,textarea):focus-visible{outline:2px solid #345a80;outline-offset:3px}
#contact .button,#contact .inquiry-next .button{background:#18202a;color:#fff;border-color:#18202a}
#contact .button:hover,#contact .inquiry-next .button:hover{background:#304258;border-color:#304258}
#contact .brief-actions .text-link{color:var(--ink)}
#contact .field-error{color:#a52828}
#contact #request-summary section,#contact .inquiry-next,#contact details{border-color:var(--line)}
#contact .inquiry-success .success-check{color:#287348}
#contact :is(.wd-contact-interests,.mk-contact-interests,.mm-contact){
 --paper:#fff;--ink:#18202a;--muted:#59616b;--soft:#f5f6f7;--line:#d8dde2;--gold:#806a32;
 background:#fff;color:var(--ink);border-color:var(--line);border-radius:10px;
}
#contact .mk-contact-interests p{color:var(--muted)}
#contact [data-marketing-summary],#contact [data-interest-summary]{color:#675322}
#contact .wd-addon-options label{border-color:#c4cbd2;border-radius:6px}
#contact .wd-addon-options label:has(:checked){background:#f5f2e9;border-color:var(--gold)}
#contact input[type=checkbox],#contact input[type=radio]{accent-color:#806a32}
