/* Conson / connected systems. Light reading surfaces, blue environments, warm links. */
:root{--paper:#f8fafb;--ink:#243b53;--quiet:#556a80;--rule:#d2dce7;--signal:#e6aa85;--signal-ink:#9c482b;--night:#203f5d;--night-type:#f5f9fa;--max:1500px}
body{background:var(--paper)}
/* A geometric circle sits on the text baseline, independent of the font glyph. */
.brand{font:400 43px/1 var(--display);align-items:baseline;flex-shrink:0}
.brand .wordmark{font-size:inherit;line-height:inherit}
.brand-dot,.footer-bottom .brand-dot{font:inherit;letter-spacing:0;line-height:1;width:.42em;height:auto;align-self:baseline;margin:0 0 0 .03em;padding:0;flex-shrink:0}
.brand-dot::before{content:'';position:absolute;inset:-8px -5px}
.brand-dot span,.footer-bottom .brand-dot span{position:static;display:inline-block;vertical-align:baseline;top:auto;bottom:auto;left:auto;width:.21em;height:.21em;background:currentColor;color:var(--signal);border-radius:50%;transform:none;transition:color .2s}
.brand-dot:hover span,.brand-dot:focus-visible span,.brand-dot[aria-expanded=true] span,.footer-bottom .brand-dot:hover span,.footer-bottom .brand-dot:focus-visible span,.footer-bottom .brand-dot[aria-expanded=true] span{transform:none;color:var(--signal-ink)}
.footer-bottom .brand{font-size:32px}
.header{height:104px}.contact-nav{border:1px solid var(--rule);border-radius:6px;padding:11px 18px}.desktop-nav{gap:28px}
.home-page>.header{color:#eff7f8;background:#203f5d;max-width:none;padding-inline:max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)))}
.home-page .header .contact-nav{border-color:#637e99}.home-page .header a:hover{color:#f5bf9f}
.hero-shell{color:#f4f8fa;background:radial-gradient(ellipse at 92% 90%,#476487 0,transparent 52%),radial-gradient(ellipse at 9% 5%,#314f70 0,transparent 53%),#203f5d;position:relative}
.hero{padding-top:12px;padding-bottom:20px;overflow:hidden}.hero-meta{color:#c2d6dd;border-color:#68889460;padding-top:18px;font-size:11px;letter-spacing:.06em}
.hero-grid{display:grid;grid-template-columns:.88fr 1.3fr;gap:24px;align-items:center;min-height:560px;padding-block:30px 24px}
.hero h1{font-size:clamp(52px,5.2vw,78px);letter-spacing:-.065em;line-height:1.12;white-space:normal;margin:0 0 26px}
.hero .period{display:inline;color:#efb48f;position:static}
.hero-lead{font-size:clamp(23px,2.2vw,32px);line-height:1.42;font-family:var(--display);letter-spacing:-.028em}
.hero-explanation{font-size:16px;line-height:1.7;color:#c3d7dd;max-width:410px;margin-top:24px}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:34px}
.button-primary{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;background:#efb48f;color:#243b53;border:1px solid #efb48f;padding:13px 19px;border-radius:6px;font-size:15px;min-height:48px;transition:background .2s}
.button-primary:hover{color:#243b53;background:#ffccae;border-color:#ffccae}.hero-secondary{font-size:14px;color:#e1ecef;display:inline-flex;gap:10px;padding-block:12px;border-bottom:1px solid #7b9aa3}
.hero-secondary:hover{color:#ffccae}
.graph-panel{min-width:0;position:relative}.company-graph{display:block;width:100%;height:auto;overflow:visible}
.graph-heading{fill:#edf6f8;font:400 17px var(--display);letter-spacing:-.02em}
.graph-node text{fill:#c9dfe6;font:400 13px var(--body)}.node-halo{fill:var(--node-color);opacity:.07}.node-dot{fill:var(--node-color);stroke:var(--node-color);stroke-width:1}
.graph-edge{fill:none;stroke-linecap:round;stroke-dasharray:1;vector-effect:non-scaling-stroke;stroke-width:1}
.edge-local{stroke:#87b5c06b}.edge-flow{stroke:#edb08b;stroke-width:1.7}.edge-ai{stroke:#97c9ec;stroke-width:1.6}
.graph-ai-label rect{fill:#35597a;stroke:#97c9ec;stroke-width:1}.graph-ai-label text{fill:#f3fbfd;font:500 19px var(--display)}
.graph-caption{max-width:465px;margin:0 auto;text-align:center;color:#c2d7dd;font-size:13px;line-height:1.6}
.graph-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #68889470;padding-top:12px}
.graph-stages{display:flex;gap:28px;flex-wrap:wrap}.graph-stages button{font-size:13px;color:#c6dbe0;padding:13px 0;border-top:2px solid transparent;text-align:left;min-height:44px}
.graph-stages button span{color:#9ebdc7;margin-right:8px}.graph-stages button[aria-pressed=true]{color:#fff;border-color:#efb48f}.graph-stages button[aria-pressed=true] span{color:#efb48f}
.graph-toggle{color:#d8e7ec;min-height:44px;font-size:13px;border:1px solid #71909a;padding:6px 16px;border-radius:30px;white-space:nowrap;flex-shrink:0}
.graph-toggle:hover{border-color:#e1f4f9;color:#fff}
.section{padding-block:96px}.section-opening{margin:0 0 42px}.section-opening h2{font-size:clamp(36px,4vw,56px)}
.competence{background:var(--paper)}.competence-matrix tbody tr:hover{background:#eef3f8}
.experience{border-top:1px solid var(--rule);padding-block:58px;background:#f0f4f9;box-shadow:0 0 0 100vmax #f0f4f9;clip-path:inset(0 -100vmax)}
.client-list{margin-top:32px}.client{border-color:#ccdcdf}.client img{mix-blend-mode:multiply}
.practice{background:#f8fafb}.project-card>a{background:#fff;border-radius:8px;overflow:hidden}.project-art{background:#edf3f5;color:#526e7a}.project-card>a:hover{border-color:#638797}.project-track{scrollbar-color:#93aeb7 transparent}
.software{background:radial-gradient(ellipse at 0 0,#345b7f,transparent 60%),#203f5d;color:#f4f8f9}
.software .section-index,.software .section-opening p,.product-meta{color:#c1d7df}.product-list{border-color:#66828d}.product-row{border-color:#4b6986;gap:6%;grid-template-columns:.85fr 1.15fr;padding-block:48px}
.product-row p{color:#c8dbe2;max-width:420px}.product-meta{font-size:16px;line-height:1.5;letter-spacing:0}.product-row h3{font-size:clamp(28px,3vw,44px)}.product-more{width:auto;max-width:185px;color:#f0b794}
.product-preview{min-width:0;background:#eaf1f4;border:1px solid #ffffff20;border-radius:8px;overflow:hidden;box-shadow:0 18px 45px #062a3733}
.product-preview img{display:block;width:100%;height:auto;transition:transform .35s}.product-row:hover .product-preview img{transform:scale(1.018)}
.product-preview .preview-caption{display:block;padding:10px 14px;font-size:11px;line-height:1.5;color:#445e69;background:#eef3f8}
.product-preview.schematic{background:#294b6c;padding:25px}.product-preview.schematic svg{width:100%;height:auto}.product-preview.schematic .preview-caption{background:transparent;color:#bfd4dc;padding:12px 0 0}
.journal{background:var(--paper)}.article-list{column-gap:56px}.article-row:hover h3{color:var(--signal-ink)}.article-byline{display:flex;flex-wrap:wrap;gap:12px;font-size:14px;color:var(--quiet);margin-top:28px}
.community-section{background:#eaf0f7;border-block:1px solid #ccd9e8;padding-block:68px}.community-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:7%;align-items:center}.community-grid .eyebrow{color:#426a76}.community-grid h2{font-size:clamp(32px,3.5vw,49px);letter-spacing:-.045em;line-height:1.25;margin:0}.community-grid p{font-size:17px;line-height:1.75}.community-topics{color:var(--quiet);margin-top:14px}.community-grid .button-primary{margin-top:25px}
.footer{padding-top:64px}.contact-body{padding:0 0 64px;align-items:center}.contact-body h2{font-size:clamp(38px,4.4vw,62px)}.contact-intro{color:var(--quiet);max-width:440px;margin-top:24px;font-size:17px;line-height:1.75}.contact-channel{font-size:17px;margin-top:28px;color:var(--quiet)}.contact-people{gap:14px;flex-wrap:wrap;margin-top:14px}.contact-people a{font-size:20px;display:flex;flex-direction:row;justify-content:space-between;gap:28px;align-items:center;border:1px solid var(--rule);border-radius:6px;padding:12px 16px;min-height:52px;flex:1;min-width:170px}.contact-people a:hover{border-color:var(--signal-ink);color:var(--signal-ink)}.contact-details{align-self:center}
.product-gallery{display:grid;gap:28px;margin:0 0 64px}.product-shot{margin:0;min-width:0}.product-shot>a{display:block;border:1px solid var(--rule);border-radius:8px;overflow:hidden;background:#e9f0f3;cursor:zoom-in}.product-shot img{display:block;width:100%;height:auto;max-height:650px;object-fit:contain}.product-shot figcaption{font-size:13px;color:var(--quiet);margin-top:12px;line-height:1.6}.product-shot figcaption span{white-space:nowrap;color:var(--signal-ink)}
.product-display{border-radius:8px;background:#294b6c}.product-cta{border-top:1px solid var(--rule);padding-top:30px;margin-top:44px}.product-cta p{margin-bottom:20px}.reading-copy .button-primary{text-decoration:none}.reading-copy code{background:#ebf2f5}
.image-dialog{padding:18px;border:1px solid var(--rule);border-radius:10px;background:var(--paper);color:var(--ink);width:min(1500px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto}.image-dialog::backdrop{background:#092632df;backdrop-filter:blur(5px)}.image-dialog-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:14px;margin-bottom:12px}.image-dialog-close{border:1px solid var(--rule);padding:8px 15px;border-radius:5px;min-height:44px;flex-shrink:0}.image-dialog img{display:block;width:100%;height:auto}.image-dialog a{text-decoration:underline;font-size:13px;display:inline-block;margin-top:12px}
@media(min-width:1500px){.hero-grid{min-height:635px}}
@media(max-width:1050px){.hero-grid{grid-template-columns:.92fr 1.1fr;gap:14px}.hero h1{font-size:58px}.hero-explanation{font-size:15px}.hero-meta .meta-right{display:none}.desktop-nav{gap:18px;font-size:13px}.header{gap:24px}.graph-heading{font-size:18px}.hero-actions{gap:12px}.graph-stages{gap:18px}}
@media(max-width:1000px){.hero-grid{grid-template-columns:1fr;gap:25px;min-height:0;padding-block:40px 26px}.hero-copy{max-width:560px}.hero h1{font-size:66px}.hero-lead{font-size:29px}.hero-lead br{display:block}.hero-explanation{max-width:520px;font-size:16px}.graph-panel{max-width:650px;width:100%;margin:auto}.graph-caption{max-width:460px}.hero-actions{margin-top:26px;gap:22px}.graph-controls{align-items:flex-end}.graph-stages{gap:4px 24px}.graph-stages button{font-size:12px}.graph-heading{font-size:17px}.community-grid{gap:40px;grid-template-columns:1fr}.community-grid p{max-width:610px}}
@media(max-width:700px){.header{height:88px}.header .brand{font-size:37px}.home-page .mobile-menu{background:#203f5d;color:#f4f8fa;border-color:#597884}.hero{padding-top:0;padding-bottom:16px}.hero-grid{padding-top:32px;gap:24px}.hero h1{font-size:clamp(46px,11vw,64px);margin-bottom:22px}.hero-lead{font-size:24px;line-height:1.5}.hero-lead br{display:block}.hero-explanation{font-size:15px;margin-top:18px}.hero-actions{gap:16px}.hero-secondary{font-size:13px}.button-primary{font-size:14px;padding-inline:16px}.company-graph{width:calc(100% + 24px);margin-left:-12px}.graph-heading{font-size:20px}.graph-node text{font-size:18px}.graph-caption{font-size:12px;line-height:1.65;margin-top:8px}.graph-controls{align-items:center;gap:8px}.graph-stages{display:flex;flex-direction:column;gap:0}.graph-stages button{padding:8px 0;min-height:38px;border-top:0;border-bottom:1px solid transparent;font-size:12px}.graph-stages button span{margin-right:7px}.graph-toggle{font-size:12px;padding-inline:12px}.section{padding-block:65px}.experience{padding-block:42px}.section-opening{margin:0 0 28px;gap:22px}.section-opening h2{font-size:36px}.product-row{grid-template-columns:1fr;gap:24px;padding-block:34px}.product-row h3{font-size:31px;margin:15px 0}.product-row p{max-width:none}.product-preview{max-width:none;width:100%}.product-more{margin-top:20px}.community-section{padding-block:45px}.community-grid{gap:25px}.community-grid h2{font-size:clamp(28px,7.6vw,36px);margin:0}.community-grid p{font-size:16px}.footer{padding-top:40px}.contact-body{padding-top:28px;padding-bottom:48px}.contact-body h2{font-size:43px}.contact-people{gap:24px}.contact-mail{font-size:30px}.article-byline{gap:8px;font-size:13px}.product-gallery{gap:24px;margin-bottom:40px}.product-shot figcaption{font-size:12px}.image-dialog{padding:12px;width:calc(100vw - 16px)}.image-dialog-bar{font-size:12px;align-items:flex-start}.image-dialog-close{font-size:12px;padding:8px}.reading-header h1{font-size:40px}.article-list{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.graph-toggle{display:none}.product-preview img{transition:none}}

.hero .period{font-size:inherit;width:auto;height:auto;min-width:0;min-height:0;background:none;border-radius:0;margin:0}.group-data,.group-bi{--node-color:#97c9ec}.group-crm{--node-color:#a6bff1}.group-ops{--node-color:#f0b794}

.phone-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:25px 35px;align-items:start;background:radial-gradient(ellipse at 30% 20%,#d7e6f6,transparent 70%),#eaf0f7}.phone-pair img{border-radius:14px;border:1px solid #c9dbdf;box-shadow:0 9px 20px #203f5d1a;max-height:420px;object-fit:contain;object-position:top;background:#f8fafb}.product-row:hover .phone-pair img{transform:none}.portrait-gallery{grid-template-columns:1fr 1fr;max-width:800px;margin-inline:auto;gap:35px}.portrait-gallery .product-shot img{max-height:none}.portrait-gallery .product-shot>a{border-radius:16px}
@media(max-width:700px){.phone-pair{padding:20px;gap:14px}.portrait-gallery{gap:16px}.portrait-gallery .product-shot>a{border-radius:8px}}
.hero h1{animation:none}.product-shot figcaption span{white-space:normal}.reading-top{gap:20px}.button-primary{max-width:100%}
@media(max-width:700px){.graph-heading{font-size:26px}.graph-node text{font-size:24px}}

/* Crawlable navigation mirrors the actual hierarchy. */
.breadcrumbs{padding-top:24px;color:var(--quiet);font-size:12px}.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:6px 12px;list-style:none;padding:0;margin:0}.breadcrumbs li+li::before{content:'/';margin-right:12px;color:#8198a1}.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}.breadcrumbs+.reading{padding-top:24px}.footer-resources{display:flex;flex-wrap:wrap;gap:16px 28px;padding:24px 0;border-top:1px solid var(--rule);font-size:14px}.hub .reading-header{padding-top:35px}.hub-products{padding:0 30px;border-radius:10px}.hub-products .product-list{border-top:0}.service-page .reading-header>.eyebrow{display:block;margin-bottom:22px}.service-page .reading-copy li+li{margin-top:8px}
@media(max-width:700px){.breadcrumbs{padding-top:16px;font-size:11px}.breadcrumbs li+li::before{margin-right:8px}.breadcrumbs+.reading{padding-top:12px}.hub-products{padding:0 18px}.footer-resources{gap:12px 22px;font-size:13px}}

/* Keep the footer and community distinct without a second label above the heading. */
.experience .section-opening h2{font-size:clamp(30px,3.4vw,46px)}.experience .section-opening{margin-bottom:30px}.experience .client-list{margin-top:0}.footer{padding-top:64px}.home-page .header .brand-dot:hover span,.home-page .header .brand-dot:focus-visible span{color:#ffccae}
@media(max-width:700px){.contact-body{padding-top:0}.contact-people{gap:12px}.contact-people a{font-size:18px;min-width:0;flex:1 1 135px;padding:12px}.contact-mail{font-size:clamp(25px,7vw,32px)}.footer{padding-top:44px}.experience .section-opening h2{font-size:32px}}
