/* Restore the original Inventum blue-led palette: yellow is now a small signal, not the main accent. */
:root{--ink:#071f33;--deep:#002b4e;--blue:#0063b4;--sky:#70a7d5;--paper:#f3f8fc;--mist:#dceefb;--line:#b6d5ec;--signal:#0063b4}.brand-logo{display:inline-flex;align-items:center}.brand-logo img{display:block;width:128px;height:40px}.button-primary{background:linear-gradient(135deg,#0063b4,#005294);box-shadow:7px 7px 0 #70a7d5}.button-primary:hover{box-shadow:4px 4px 0 #70a7d5}.hero h1 em:after{background:linear-gradient(90deg,#0063b4,#34d399)}.method h2 em{color:#70a7d5}.portfolio-page .site-header{background:linear-gradient(180deg,#eaf5fd,rgba(234,245,253,0))}.portfolio-page .work-visual{box-shadow:14px 14px 0 #70a7d5}.portfolio-page .surface-bar{background:#eaf5fd;color:#002b4e}.portfolio-page .portfolio-hero{background:radial-gradient(circle at 72% 36%,rgba(112,167,213,.16),transparent 31%)}.portfolio-close .button-primary{background:linear-gradient(135deg,#0063b4,#005294);color:#fff;box-shadow:7px 7px 0 #70a7d5}.portfolio-close h2 em{color:#70a7d5}@media(max-width:800px){.portfolio-page .work-visual{box-shadow:8px 8px 0 #70a7d5}.brand-logo img{width:115px;height:auto}}
.language-picker{position:relative;display:inline-flex;align-items:center;margin-right:-1.1rem;z-index:30}.language-toggle{display:inline-flex;align-items:center;gap:.42rem;min-height:38px;padding:.42rem .62rem .42rem .56rem;border:1px solid #0063b4;border-radius:999px;background:#fff;color:#002b4e;font:700 .73rem var(--body);letter-spacing:-.01em;cursor:pointer;box-shadow:3px 3px 0 #b6d5ec;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.language-toggle:hover,.language-picker.is-open .language-toggle{background:#eaf5fd;transform:translate(-1px,-1px);box-shadow:5px 5px 0 #70a7d5}.language-toggle:focus-visible,.language-option:focus-visible{outline:2px solid #0063b4;outline-offset:3px}.language-flag,.language-option-flag{font-family:"Apple Color Emoji","Segoe UI Emoji",sans-serif;font-size:1rem;line-height:1}.language-name{white-space:nowrap}.language-caret{color:#0063b4;font-size:1.05rem;line-height:.6;transition:transform .2s ease}.language-picker.is-open .language-caret{transform:rotate(180deg)}.language-fan{position:absolute;top:calc(100% + 11px);right:-.35rem;display:grid;grid-template-columns:repeat(2,minmax(132px,1fr));gap:6px;width:286px;padding:8px;border:1px solid #0063b4;background:rgba(255,255,255,.98);box-shadow:9px 9px 0 #b6d5ec;opacity:0;visibility:hidden;transform:translateY(-10px) scale(.9);transform-origin:top right;transition:opacity .18s ease,transform .22s cubic-bezier(.2,.8,.2,1),visibility .22s}.language-picker.is-open .language-fan{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.language-option{display:flex;align-items:center;gap:.48rem;min-height:40px;padding:.48rem .55rem;border:1px solid transparent;background:#f3f8fc;color:#002b4e;font:700 .76rem var(--body);letter-spacing:0;text-align:left;cursor:pointer;opacity:0;transform:translate(calc((var(--fan-index) + 1) * 13px),calc((var(--fan-index) - 3) * -8px)) rotate(calc((var(--fan-index) - 3) * 2deg));transition:opacity .16s ease calc(var(--fan-index) * 28ms),transform .28s cubic-bezier(.2,.8,.2,1) calc(var(--fan-index) * 28ms),background .16s ease,color .16s ease}.language-picker.is-open .language-option{opacity:1;transform:translate(0,0) rotate(0)}.language-option:hover{background:#dceefb}.language-option.is-selected{background:#0063b4;color:#fff}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:800px){.language-picker{margin:0}.language-toggle{font-size:.72rem}.language-fan{right:0;width:min(286px,calc(100vw - 38px))}}

/* Interaction pass: the hero map responds like a system being brought into focus. */
.language-flag,.language-option-flag{display:inline-grid;place-items:center;flex:0 0 1.1em;width:1.1em;height:1.1em;translate:0 -.025em}.language-caret{display:inline-grid;place-items:center;width:.8em;height:.8em;line-height:1;translate:0 -.04em}.hero-orbit .orbit-ring{transition:border-color .65s ease,opacity .65s ease,rotate .9s cubic-bezier(.2,.8,.2,1),scale .9s cubic-bezier(.2,.8,.2,1)}.hero-orbit .orbit-core{transition:scale .55s cubic-bezier(.2,.8,.2,1),box-shadow .55s ease}.hero-orbit .orbit-node{transition:translate .55s cubic-bezier(.2,.8,.2,1),filter .45s ease}.hero-orbit .orbit-node i{transition:scale .4s ease,box-shadow .4s ease}.hero-orbit .orbit-line{transition:opacity .45s ease,scale .55s cubic-bezier(.2,.8,.2,1)}.capability .cap-icon b,.capability .cap-icon:before,.capability .cap-icon:after{transition:translate .32s cubic-bezier(.2,.8,.2,1),scale .32s ease,background .25s ease,box-shadow .25s ease}@media (hover:hover) and (prefers-reduced-motion:no-preference){.hero-orbit:hover .ring-one{rotate:24deg;border-color:rgba(0,99,180,.45)}.hero-orbit:hover .ring-two{rotate:-22deg;border-color:rgba(0,99,180,.52)}.hero-orbit:hover .ring-three{rotate:9deg;scale:1.025;border-color:rgba(0,99,180,.28)}.hero-orbit:hover .orbit-core{scale:1.055;box-shadow:0 25px 56px rgba(0,43,78,.27)}.hero-orbit:hover .node-a{translate:8px -8px;filter:drop-shadow(0 4px 8px rgba(0,99,180,.16))}.hero-orbit:hover .node-b{translate:10px 3px;filter:drop-shadow(0 4px 8px rgba(0,99,180,.16))}.hero-orbit:hover .node-c{translate:-8px 8px;filter:drop-shadow(0 4px 8px rgba(0,99,180,.16))}.hero-orbit:hover .orbit-node i{scale:1.25;box-shadow:0 0 0 8px rgba(0,99,180,.14)}.hero-orbit:hover .orbit-line{opacity:.78;scale:1.07}.capability:hover .icon-route b:nth-child(1){translate:5px -4px}.capability:hover .icon-route b:nth-child(2){scale:1.3}.capability:hover .icon-route b:nth-child(3){translate:-5px 4px}.capability:hover .icon-grid b:nth-child(2){scale:.84}.capability:hover .icon-grid b:nth-child(3){translate:5px -5px}.capability:hover .icon-window{translate:4px -3px}}@media(prefers-reduced-motion:reduce){.hero-orbit .orbit-ring,.hero-orbit .orbit-core,.hero-orbit .orbit-node,.hero-orbit .orbit-node i,.hero-orbit .orbit-line,.capability .cap-icon b,.capability .cap-icon:before,.capability .cap-icon:after{transition:none!important}}

/* A drawn chevron avoids the font-baseline drift of the previous glyph. */
.language-caret{width:.5rem;height:.5rem;border-right:2px solid #0063b4;border-bottom:2px solid #0063b4;color:transparent;font-size:0;line-height:0;translate:0;transform:rotate(45deg);transition:transform .2s ease}.language-picker.is-open .language-caret{transform:rotate(225deg)}

/* A quieter desktop frame: the work reads as a considered system, not a full-bleed poster. */
@media(min-width:801px){html{font-size:15px}.site-header,.hero,.capabilities,.contact,footer{max-width:1280px}.site-header{height:78px;padding-inline:clamp(2rem,4.5vw,4rem)}.menu{gap:1.75rem}.hero{min-height:calc(100svh - 78px);padding-inline:clamp(2rem,4.5vw,4rem);grid-template-columns:minmax(0,1fr) minmax(350px,.88fr);gap:clamp(3.75rem,8vw,7.25rem)}.hero h1{font-size:clamp(3.35rem,6.3vw,6.5rem);max-width:680px}.hero-orbit{height:min(39vw,510px);min-height:390px}.capabilities,.contact{padding-inline:clamp(2rem,4.5vw,4rem)}.capabilities{padding-block:clamp(4.5rem,9vw,8rem)}.section-intro h2,.method h2,.contact h2{font-size:clamp(2.55rem,4.3vw,4.65rem)}.method{grid-template-columns:minmax(0,.86fr) minmax(0,1fr);gap:clamp(4rem,8.5vw,7.5rem);padding-inline:max(2rem,calc((100vw - 1200px)/2));padding-block:clamp(4.5rem,8vw,7.5rem)}.contact{gap:clamp(4rem,8.5vw,7.5rem);padding-block:clamp(4.5rem,8vw,7.5rem)}footer{padding-inline:clamp(2rem,4.5vw,4rem)}}

/* Scroll-led data flow. Modern engines trace the map into focus; every other browser keeps the static, complete diagram. */
@keyframes inventum-trace-line{from{clip-path:inset(0 100% 0 0);opacity:.08}to{clip-path:inset(0 0 0 0);opacity:.4}}@keyframes inventum-caption-focus{from{opacity:.25;letter-spacing:.14em}to{opacity:.72;letter-spacing:.1em}}@supports (animation-timeline:view()){@media(prefers-reduced-motion:no-preference){.hero-orbit .line-a{animation:inventum-trace-line linear both;animation-timeline:view();animation-range:entry 8% cover 43%}.hero-orbit .line-b{animation:inventum-trace-line linear both;animation-timeline:view();animation-range:entry 16% cover 51%}.hero-orbit .line-c{animation:inventum-trace-line linear both;animation-timeline:view();animation-range:entry 24% cover 59%}.hero-orbit .orbit-caption{animation:inventum-caption-focus linear both;animation-timeline:view();animation-range:entry 8% cover 46%}}}

/* Service rows stay anchored. The focus state travels beneath the content, like a signal on a circuit, so reading never jumps. */
.capability{position:relative;isolation:isolate;transition:none}.capability>*{position:relative;z-index:1}.capability:before,.capability:after{content:"";position:absolute;pointer-events:none;z-index:0;opacity:0}.capability:before{inset:.45rem -.9rem;background:linear-gradient(90deg,rgba(220,238,251,.92),rgba(220,238,251,.46) 62%,transparent);transform:scaleX(.94);transform-origin:left;transition:opacity .28s ease,transform .52s cubic-bezier(.2,.8,.2,1)}.capability:after{left:-.9rem;top:.45rem;bottom:.45rem;width:3px;background:#0063b4;transform:scaleY(.25);transform-origin:center;transition:opacity .2s ease,transform .42s cubic-bezier(.2,.8,.2,1)}@media(hover:hover) and (prefers-reduced-motion:no-preference){.capability:hover{padding-left:0;padding-right:0;background:transparent}.capability:hover:before{opacity:1;transform:scaleX(1)}.capability:hover:after{opacity:1;transform:scaleY(1)}}@media(prefers-reduced-motion:reduce){.capability:before,.capability:after{transition:none!important}}

/* Hero entrance: a concise fan-out from the central decision to the operating signals around it. */
@keyframes inventum-core-arrive{0%{opacity:0;transform:scale(.42);box-shadow:0 0 0 rgba(0,43,78,0)}68%{opacity:1;transform:scale(1.075);box-shadow:0 28px 66px rgba(0,43,78,.3)}100%{opacity:1;transform:scale(1);box-shadow:0 20px 45px rgba(0,43,78,.2)}}@keyframes inventum-ring-arrive{from{opacity:0;transform:scale(.28)}to{opacity:1;transform:scale(1)}}@keyframes inventum-line-arrive{from{opacity:0;transform:scaleX(0)}to{opacity:.4;transform:scaleX(1)}}@keyframes inventum-node-a-arrive{from{opacity:0;transform:translate(-78px,62px) scale(.74)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes inventum-node-b-arrive{from{opacity:0;transform:translate(-80px,-52px) scale(.74)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes inventum-node-c-arrive{from{opacity:0;transform:translate(78px,-52px) scale(.74)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes inventum-caption-arrive{from{opacity:0;transform:translateY(14px);letter-spacing:.2em}to{opacity:.72;transform:translateY(0);letter-spacing:.1em}}@media(prefers-reduced-motion:no-preference){.hero-orbit.is-visible .orbit-core{animation:inventum-core-arrive .72s cubic-bezier(.2,.82,.2,1) both .24s}.hero-orbit.is-visible .ring-three{animation:inventum-ring-arrive .72s cubic-bezier(.2,.82,.2,1) both .3s}.hero-orbit.is-visible .ring-two{animation:inventum-ring-arrive .66s cubic-bezier(.2,.82,.2,1) both .42s}.hero-orbit.is-visible .ring-one{animation:inventum-ring-arrive .6s cubic-bezier(.2,.82,.2,1) both .54s}.hero-orbit.is-visible .orbit-line{animation:inventum-line-arrive .55s cubic-bezier(.2,.82,.2,1) both .68s}.hero-orbit.is-visible .line-b{animation-delay:.78s}.hero-orbit.is-visible .line-c{animation-delay:.88s}.hero-orbit.is-visible .node-a{animation:inventum-node-a-arrive .58s cubic-bezier(.2,.82,.2,1) both .82s}.hero-orbit.is-visible .node-b{animation:inventum-node-b-arrive .58s cubic-bezier(.2,.82,.2,1) both .94s}.hero-orbit.is-visible .node-c{animation:inventum-node-c-arrive .58s cubic-bezier(.2,.82,.2,1) both 1.06s}.hero-orbit.is-visible .orbit-caption{animation:inventum-caption-arrive .48s cubic-bezier(.2,.82,.2,1) both .66s}.hero-orbit.is-visible .caption-bottom{animation-delay:1.12s}}@media(prefers-reduced-motion:reduce){.hero-orbit.is-visible .orbit-core,.hero-orbit.is-visible .orbit-ring,.hero-orbit.is-visible .orbit-line,.hero-orbit.is-visible .orbit-node,.hero-orbit.is-visible .orbit-caption{animation:none!important}}

/* Directly sampled from the logo gradient: Inventum blue is the structure; turquoise is the light arriving at the edge. */
:root{--ink:#062d4a;--deep:#003b6d;--blue:#0063b4;--sky:#84c8ea;--paper:#f7fcff;--mist:#e2f5fb;--line:#b9dff0;--signal:#34d399;--aqua:#34d399}.button-primary{background:linear-gradient(115deg,#0063b4 0%,#007bc3 62%,#079ca5 100%);box-shadow:7px 7px 0 #76ddcb}.button-primary:hover{box-shadow:4px 4px 0 #76ddcb}.hero h1 em:after{background:linear-gradient(90deg,#0063b4 0%,#008ec1 54%,#34d399 100%)}.hero-orbit{background:radial-gradient(circle at 50% 51%,#fff 0 15%,transparent 15.5%),radial-gradient(circle at 50% 51%,rgba(52,211,153,.15),transparent 45%),radial-gradient(circle at 50% 51%,rgba(0,99,180,.15),transparent 67%)}.orbit-core{background:linear-gradient(135deg,#0063b4 0%,#0088c5 60%,#34d399 132%)}.orbit-node i{background:#34d399;box-shadow:0 0 0 5px rgba(52,211,153,.18)}.node-b i{background:#007bc3;box-shadow:0 0 0 5px rgba(0,123,195,.14)}.method{background:radial-gradient(circle at 88% 22%,rgba(52,211,153,.15),transparent 28%),linear-gradient(125deg,#003160,#004d83 62%,#006b91 100%)}.method h2 em{color:#76ddcb}.method-steps li>span{color:#76ddcb}.contact-form{border-top-color:#0088c5;box-shadow:12px 12px 0 #76ddcb}.portfolio-page .site-header{background:linear-gradient(180deg,#edfbff,rgba(237,251,255,0))}.portfolio-page .surface-bar{background:#e4f8f4;color:#003b6d}.portfolio-page .portfolio-hero{background:radial-gradient(circle at 72% 36%,rgba(52,211,153,.16),transparent 31%)}.portfolio-page .work-visual{box-shadow:14px 14px 0 #76ddcb}.portfolio-close .button-primary{background:linear-gradient(115deg,#0063b4,#007bc3 62%,#079ca5)}.capability:before{background:linear-gradient(90deg,rgba(216,247,239,.94),rgba(226,245,251,.58) 62%,transparent)}.capability:after{background:#34d399}@media(max-width:800px){.contact-form{box-shadow:8px 8px 0 #76ddcb}.portfolio-page .work-visual{box-shadow:8px 8px 0 #76ddcb}}
