@keyframes flow{to{stroke-dashoffset:-24px}}@keyframes scan-x{0%,to{transform:translate(0)}50%{transform:translate(84px)}}@keyframes trace{0%{stroke-dashoffset:100px}55%,to{stroke-dashoffset:0}}@keyframes tool-pass{0%,to{transform:translate(0)}50%{transform:translate(46px)}}@keyframes chips{0%,to{opacity:.2}50%{opacity:1}}@keyframes pulse-ring{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}@keyframes blink{0%,to{opacity:.35}50%{opacity:1}}.loop-flow{stroke-dasharray:6 6;animation:1.6s linear infinite flow}.loop-scan{animation:3.6s ease-in-out infinite scan-x}.loop-trace{stroke-dasharray:100;animation:4.2s ease-in-out infinite trace}.loop-tool{animation:3.4s ease-in-out infinite tool-pass}.loop-chips{animation:.9s ease-in-out infinite chips}.loop-check{stroke-dasharray:100;animation:3.2s ease-out infinite trace}.viewer{aspect-ratio:4/3;color:var(--text);background:linear-gradient(var(--line-soft) 1px, transparent 1px) 0 0 / 100% 2rem, linear-gradient(90deg, var(--line-soft) 1px, transparent 1px) 0 0 / 2rem 100%;border:1px solid var(--line);position:relative;overflow:hidden}.viewer:before,.viewer:after{content:"";z-index:2;border:2px solid var(--accent-text);pointer-events:none;width:1rem;height:1rem;position:absolute}.viewer:before{border-bottom:0;border-right:0;top:-1px;left:-1px}.viewer:after{border-top:0;border-left:0;bottom:-1px;right:-1px}.viewer>svg,.viewer>canvas{width:100%;height:100%;transition:opacity var(--dur-3) var(--ease);position:absolute;inset:0}.viewer>svg{opacity:.55;padding:18%}.viewer>canvas{opacity:0}.viewer[data-ready=true]>canvas{opacity:1}.viewer[data-ready=true]>svg{opacity:0}.viewer--tall{aspect-ratio:1}@media (min-width:1024px){.viewer--tall{aspect-ratio:5/4}}.callouts{pointer-events:none;position:absolute;inset:0}.callouts svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.callouts line{stroke:var(--c-ink);stroke-width:1px;opacity:0}.callouts circle{fill:var(--c-blue);opacity:0}.callout{background:var(--c-white);border:1px solid var(--c-ink);font-size:var(--fs-label);white-space:nowrap;opacity:0;will-change:transform, opacity;padding:.1rem .5rem;line-height:1.5;position:absolute;top:0;left:0}@media (max-width:479px){.callout{padding:0 .35rem;font-size:.6875rem}}.rev{gap:var(--s-6);display:grid}.rev__caption{align-items:baseline;gap:var(--s-3);margin-top:var(--s-3);font-size:var(--fs-h3);font-stretch:var(--w-heading);font-weight:650;display:flex}.rev__caption .t-data{color:var(--accent-text)}.rev__note{margin-top:var(--s-1)}.rev__steps{border-top:1.5px solid var(--text);margin:0;padding:0;list-style:none;display:grid}.rev__step{gap:0 var(--s-4);padding:var(--s-3) 0 var(--s-3) var(--s-3);border-bottom:1px solid var(--line);transition:background-color var(--dur-2) var(--ease);grid-template-columns:2.25rem 4.5rem minmax(0,1fr);align-items:center;display:grid;position:relative}.rev__step:before{content:"";background:var(--accent-text);transform-origin:top;width:3px;transition:transform var(--dur-3) var(--ease);position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.rev__step[data-active=true]{background:var(--surface)}.rev__step[data-active=true]:before{transform:scaleY(1)}.rev__num{border:1.5px solid var(--text);width:2.25rem;height:2.25rem;transition:background-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease);place-items:center;display:grid}.rev__step[data-active=true] .rev__num{background:var(--text);color:var(--bg)}.rev__art{width:4.5rem;color:var(--text)}.rev__art .accent{stroke:var(--accent-text)}.rev__step:not([data-active=true]) .rev__art *{animation-play-state:paused}.rev__body h3{font-size:1.0625rem}.rev__body button{font:inherit;color:inherit;text-align:left;background:0 0;border:0;padding:0}.rev__body button:after{content:"";position:absolute;inset:0}.rev__body p{font-size:var(--fs-small);color:var(--text-muted);margin-top:.15rem}@media (min-width:1024px){.rev{gap:var(--s-8);grid-template-columns:minmax(0,6fr) minmax(0,6fr);align-items:start}.rev__stage{top:calc(var(--header-h) + var(--s-5));position:sticky}}.mx{gap:var(--s-6);display:grid}.mx__panel{gap:var(--s-4);align-content:start;display:grid}.mx__name{font-size:clamp(1.375rem,1.1rem + 1vw,1.875rem);font-stretch:var(--w-display);font-weight:700;line-height:1.1}.mx__info{gap:var(--s-2);display:grid}.mx__tag{margin-right:var(--s-2);border:1px solid var(--line);font-size:var(--fs-label);color:var(--text);padding:0 .4rem;font-weight:600;display:inline-block}.envelope{max-width:16rem;margin-top:var(--s-2)}.envelope svg{width:100%;height:auto}@media (min-width:1024px){.mx{gap:var(--s-7);grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start}.mx__panel{top:calc(var(--header-h) + var(--s-5));position:sticky}.mx .machine-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:640px) and (max-width:1023px){.mx__panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}}.machine[data-selected=true]{background:var(--surface)}.machine[data-selected=true]:before{opacity:1}.machine__actions{align-items:center;gap:var(--s-2) var(--s-5);flex-wrap:wrap;margin-top:auto;display:flex}.machine__actions+details{margin-top:0}.machine__show{align-items:center;gap:var(--s-3);min-height:2.75rem;font-size:var(--fs-small);color:var(--accent-text);background:0 0;border:0;padding:0;font-weight:600;display:inline-flex}.machine__pulse{background:currentColor;width:.5rem;height:.5rem;position:relative;transform:rotate(45deg)}.machine__show[aria-pressed=true] .machine__pulse:after{content:"";border:1px solid;animation:1.8s ease-out infinite pulse-ring;position:absolute;inset:0}.tl{gap:var(--s-6);display:grid}.tl__aside{gap:var(--s-4);display:grid}.tl__year{letter-spacing:-.04em;font-variant-numeric:tabular-nums;height:clamp(4rem,2rem + 12vw,11rem);font-size:clamp(4rem,2rem + 12vw,11rem);font-weight:800;font-stretch:125%;line-height:1;position:relative;overflow:hidden}.tl__year span{opacity:0;transition:opacity var(--dur-3) var(--ease), transform var(--dur-3) var(--ease);position:absolute;inset:0 auto auto 0;transform:translateY(35%)}.tl__year span[data-active=true]{opacity:1;transform:none}.tl__rail{padding-top:var(--s-4);border-top:1.5px solid var(--line);justify-content:space-between;display:flex;position:relative}.tl__rail:before{content:"";background:var(--accent-text);width:100%;height:1.5px;transform:scaleX(var(--tl-progress,0));transform-origin:0;transition:transform var(--dur-3) var(--ease);position:absolute;top:-1.5px;left:0}.tl__rail a{min-height:2.75rem;font-size:var(--fs-small);font-variant-numeric:tabular-nums;color:var(--text-muted);align-items:center;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.tl__rail a:before{content:"";left:0;top:calc(-1 * var(--s-4) - 5px);background:var(--bg);border:1.5px solid var(--line);width:9px;height:9px;transition:background-color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease);position:absolute;transform:rotate(45deg)}.tl__rail a:last-child:before{left:auto;right:0}.tl__rail a[data-reached=true]:before{border-color:var(--accent-text);background:var(--accent-text)}.tl__rail a[aria-current=true]{color:var(--text)}.tl__list{margin:0;padding:0;list-style:none;display:grid}.tl__item{border-top:1px solid var(--line);padding-block:clamp(2rem,6vw,4.5rem);scroll-margin-top:12rem}.tl__item:last-child{border-bottom:1px solid var(--line)}.tl__item{padding-left:var(--s-5);position:relative}.tl__item:before{content:"";background:var(--accent-text);transform-origin:top;width:3px;transition:transform var(--dur-3) var(--ease);position:absolute;top:-1px;bottom:0;left:0;transform:scaleY(0)}.tl__item[data-active=true]:before{transform:scaleY(1)}.tl__item h3{transition:color var(--dur-3) var(--ease)}.js-motion .tl__item:not([data-active=true]) h3{color:var(--text-muted)}.tl__item-year{color:var(--accent-text)}.tl__item h3{margin-top:var(--s-2)}.tl__item p{margin-top:var(--s-3);max-width:30em;font-size:var(--fs-lead);color:var(--text-muted)}@media (max-width:1023px){.tl__aside{top:var(--header-h);z-index:1;padding-block:var(--s-3);background:var(--bg);position:sticky}}@media (min-width:1024px){.tl{gap:var(--s-8);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}.tl__aside{top:calc(var(--header-h) + var(--s-6));position:sticky}.tl__item{scroll-margin-top:5rem}}.tl-row{padding:var(--s-6) 0 0;gap:var(--s-6);margin:0;list-style:none;display:grid;position:relative}.tl-row:before,.tl-row:after{content:"";background:var(--line);width:100%;height:1.5px;position:absolute;top:0;left:0}.tl-row:after{background:var(--accent-text);transform:scaleX(var(--tl-progress,0));transform-origin:0;transition:transform .9s var(--ease)}.tl-row__item{transition:opacity var(--dur-3) var(--ease), transform var(--dur-3) var(--ease);position:relative}.js-motion .tl-row__item:not([data-reached=true]){transform:translateY(.75rem)}.tl-row__year{transition:color var(--dur-3) var(--ease)}.js-motion .tl-row__item:not([data-reached=true]) .tl-row__year{color:var(--text-muted)}.tl-row__year{font-size:clamp(2.25rem,1.5rem + 3vw,4rem);font-stretch:var(--w-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:700;line-height:1;display:block}.tl-row__item h3{margin-top:var(--s-3)}.tl-row__item p{margin-top:var(--s-2);color:var(--text-muted)}@media (min-width:640px){.tl-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.tl-row{grid-template-columns:repeat(4,minmax(0,1fr))}.tl-row__item:before{content:"";left:0;top:calc(-1 * var(--s-6) - 5px);background:var(--bg);border:1.5px solid var(--line);width:9px;height:9px;transition:background-color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease);position:absolute;transform:rotate(45deg)}.tl-row__item[data-reached=true]:before{background:var(--accent-text);border-color:var(--accent-text)}}.demo{gap:var(--s-6);display:grid}.demo__view{gap:var(--s-2);display:grid}.demo__tabs{gap:var(--s-2);margin-bottom:var(--s-5);flex-wrap:wrap;display:flex}.demo__tabs button{align-items:center;gap:var(--s-2);min-height:2.75rem;padding:0 var(--s-4);box-shadow:inset 0 0 0 1px var(--line);font-size:var(--fs-small);color:var(--text);background:0 0;border:0;font-weight:600;display:inline-flex}.demo__tabs button:hover{box-shadow:inset 0 0 0 1px var(--text)}.demo__tabs button[aria-selected=true]{background:var(--text);color:var(--bg);box-shadow:none}.demo__tabs .t-data{opacity:.7}.demo__panel{gap:var(--s-4);display:grid}.demo__panel>p{max-width:34em;color:var(--text-muted)}@media (min-width:1024px){.demo{gap:var(--s-8);grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}}.locmap{aspect-ratio:auto;color:var(--text);background:0 0;border:0;margin:0}.locmap svg{background:var(--surface);border:1px solid var(--line);width:100%;height:auto;display:block}.locmap figcaption{margin-top:var(--s-2)}.locmap__town{fill:var(--text-muted);font-size:11px}.locmap__road{letter-spacing:.04em;fill:var(--text-muted);font-size:10px;font-weight:600}.locmap__home{fill:currentColor;font-size:15px;font-weight:700}.locmap__pulse{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-out infinite pulse-ring}.cta-band:before{content:"";pointer-events:none;background:repeating-linear-gradient(115deg,#0000 0 46px,#ffffff12 46px 47px);animation:28s linear infinite band-drift;position:absolute;inset:0}@keyframes band-drift{to{background-position:520px 0}}.hero__block .titleblock{position:relative}.hero__block .titleblock:after{content:"";background:var(--c-blue);width:3rem;height:1.5px;animation:9s ease-in-out infinite alternate scale-run;position:absolute;top:-1.5px;left:0}@keyframes scale-run{to{left:calc(100% - 3rem)}}.theme-dark .machine__show{color:var(--c-blue-on-dark)}.machine__type,.machine-row__type{animation:none}.mx__panel .machine__type:before{content:"";background:currentColor;width:.4rem;height:.4rem;margin-right:.5rem;animation:2.2s ease-in-out infinite blink;display:inline-block}:root{--loop-slow:6s;--loop-mid:4.2s;--loop-fast:3s;--reveal:.8s}@keyframes g-feed-y{0%,to{transform:translateY(0)}45%,60%{transform:translateY(5px)}}@keyframes g-feed-x{0%,to{transform:translate(0)}50%{transform:translate(38px)}}@keyframes g-sweep{0%,to{transform:translate(0)}50%{transform:translate(44px)}}@keyframes g-sweep-wide{0%,to{transform:translate(0)}50%{transform:translate(210px)}}@keyframes g-spin{to{transform:rotate(360deg)}}@keyframes g-ping{0%,55%{opacity:0;transform:scale(1)}60%{opacity:1}to{opacity:0;transform:scale(2.4)}}@keyframes g-wire{0%,35%{opacity:1}55%,90%{opacity:0}to{opacity:1}}@keyframes g-solid{0%,35%{opacity:0}55%,90%{opacity:1}to{opacity:0}}.g-feed-y{animation:g-feed-y var(--loop-fast) ease-in-out infinite}.g-feed-x{animation:g-feed-x var(--loop-mid) ease-in-out infinite}.g-sweep{animation:g-sweep var(--loop-mid) ease-in-out infinite}.g-sweep-wide{animation:g-sweep-wide var(--loop-slow) ease-in-out infinite}.g-dash{animation:1.8s linear infinite flow}.g-spin,.g-spin-back,.g-ping,.g-ping-soft{transform-box:fill-box;transform-origin:50%}.g-spin{animation:18s linear infinite g-spin}.g-spin-back{animation:10.5s linear infinite reverse g-spin}.g-ping{animation:g-ping var(--loop-fast) ease-out infinite}.g-ping-soft{animation:blink var(--loop-fast) ease-in-out infinite}.g-wire{animation:g-wire var(--loop-slow) ease-in-out infinite}.g-solid{animation:g-solid var(--loop-slow) ease-in-out infinite}.g-trace{stroke-dasharray:100;animation:trace var(--loop-mid) ease-in-out infinite}.service .service__glyph *,.industry__glyph *{animation-play-state:paused}.services.is-inview .service__glyph *,.industries.is-inview .industry__glyph *,.service:hover .service__glyph *,.industry:hover .industry__glyph *{animation-play-state:running}[data-spot]{isolation:isolate;position:relative}[data-spot]:after{content:"";z-index:-1;background:radial-gradient(14rem circle at var(--mx,50%) var(--my,50%), #0000f512, transparent 70%);opacity:0;transition:opacity var(--dur-2) var(--ease);pointer-events:none;position:absolute;inset:0}[data-spot]:hover:after{opacity:1}.service h3{transition:color var(--dur-2) var(--ease)}.service:hover h3{color:var(--c-blue)}.cap{gap:var(--s-5);display:grid}.cap__figure{color:var(--text)}.cap__figure svg{background:linear-gradient(var(--line-soft) 1px, transparent 1px) 0 0 / 100% 1.5rem, linear-gradient(90deg, var(--line-soft) 1px, transparent 1px) 0 0 / 1.5rem 100%;border:1px solid var(--line);width:100%;height:auto;display:block}.cap__figure text{fill:var(--text-muted);stroke:none;font-size:11px;font-weight:600}.cap__part{transition:opacity var(--dur-3) var(--ease)}.cap__part[data-dim=true]{opacity:.18}.cap__layer{opacity:0;transition:opacity var(--dur-3) var(--ease)}.cap__layer[data-active=true]{opacity:1}.cap__layer:not([data-active=true]) *{animation-play-state:paused}.cap .accent-stroke{stroke:var(--c-blue)}.cap .accent-fill{fill:var(--c-blue)}.cap__caption{margin-top:var(--s-2);color:var(--accent-text)}.cap__row{padding-left:var(--s-4);transition:background-color var(--dur-2) var(--ease);position:relative}.cap__row:before{content:"";background:var(--accent-text);transform-origin:top;width:3px;transition:transform var(--dur-3) var(--ease);position:absolute;top:0;bottom:0;left:0;transform:scaleY(0)}.cap__row[data-active=true]{background:var(--bg)}.cap__row[data-active=true]:before{transform:scaleY(1)}@media (max-width:1023px){.cap__figure{top:var(--header-h);z-index:1;padding-block:var(--s-3);background:var(--surface);position:sticky}.cap__figure svg{max-height:38svh}}@media (min-width:1024px){.cap{gap:var(--s-8);grid-template-columns:minmax(0,6fr) minmax(0,6fr);align-items:start}.cap__figure{top:calc(var(--header-h) + var(--s-6));position:sticky}}.industry--art{padding:var(--s-4) var(--s-4) var(--s-5)}.industry__glyph{width:100%;max-width:11rem;height:auto;margin-bottom:var(--s-4);color:var(--text)}.industry__glyph .accent{stroke:var(--c-blue)}.flow{padding:var(--s-5) 0 0;gap:var(--s-5);margin:0;list-style:none;display:grid;position:relative}.flow:before,.flow:after{content:"";background:var(--line);width:100%;height:1.5px;position:absolute;top:0;left:0}.flow:after{background:var(--accent-text);transform:scaleX(var(--tl-progress,0));transform-origin:0;transition:transform var(--reveal) var(--ease)}.flow__step{gap:0 var(--s-4);transition:transform var(--dur-3) var(--ease);grid-template-columns:4rem minmax(0,1fr);align-items:center;display:grid}.flow__art{width:4rem;color:var(--text-muted);transition:color var(--dur-3) var(--ease);grid-row:span 2}.flow__art .accent{stroke:var(--accent-text)}.flow__step p{font-size:var(--fs-small);color:var(--text-muted)}.flow__step h3{transition:color var(--dur-3) var(--ease)}.js-motion .flow__step:not([data-reached=true]){transform:translateY(.5rem)}.js-motion .flow__step:not([data-reached=true]) h3{color:var(--text-muted)}.flow__step[data-reached=true] .flow__art{color:var(--text)}.flow__step[data-active=true] h3{color:var(--accent-text)}@media (min-width:900px){.flow{gap:var(--s-5);grid-template-columns:repeat(5,minmax(0,1fr))}.flow__step{gap:var(--s-2);grid-template-columns:minmax(0,1fr);align-content:start}.flow__art{width:5.5rem;margin-bottom:var(--s-2);grid-row:auto}}.tl-row__year{transform-origin:0 100%;transition:color var(--dur-3) var(--ease), transform var(--dur-3) var(--ease)}.tl-row__item[data-active=true] .tl-row__year{color:var(--accent-text);transform:scale(1.12)}@media (max-width:1023px){.tl-row{padding:0 0 0 var(--s-6);grid-template-columns:minmax(0,1fr)}.tl-row:before,.tl-row:after{width:1.5px;height:100%}.tl-row:after{transform:scaleY(var(--tl-progress,0));transform-origin:top}.tl-row__item:before{content:"";left:calc(-1 * var(--s-6) - 4px);background:var(--bg);border:1.5px solid var(--line);width:9px;height:9px;transition:background-color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease);position:absolute;top:1rem;transform:rotate(45deg)}.tl-row__item[data-reached=true]:before{background:var(--accent-text);border-color:var(--accent-text)}}.js-motion .locmap .locmap__route,.js-motion .locmap .locmap__spur,.js-motion .locmap .locmap__branch{stroke-dasharray:100;stroke-dashoffset:100px}.js-motion .locmap .locmap__point{opacity:0}.js-motion .locmap.is-inview .locmap__route{transition:stroke-dashoffset 1.6s var(--ease);stroke-dashoffset:0}.js-motion .locmap.is-inview .locmap__spur{transition:stroke-dashoffset .5s var(--ease) 1.25s;stroke-dashoffset:0}.js-motion .locmap.is-inview .locmap__branch{transition:stroke-dashoffset .7s var(--ease) 1.7s;stroke-dashoffset:0}.js-motion .locmap.is-inview .locmap__point{opacity:1;transition:opacity .4s var(--ease) calc(.25s + var(--i,0) * .3s)}.locmap .loop-flow{opacity:0}.locmap.is-inview .loop-flow,html:not(.js-motion) .locmap .loop-flow{opacity:1;transition:opacity .4s linear 1.6s}.mx__back{margin-top:var(--s-2)}.mx__panel{scroll-margin-top:calc(var(--header-h) + var(--s-4))}@media (min-width:1024px){.mx__back{display:none}}.pagehead__visual{margin-top:var(--s-5)}.svis{border:1px solid var(--line);display:grid}.svis .viewer{aspect-ratio:4/3;border:0}.svis__side{gap:var(--s-4);padding:var(--s-5);border-top:1px solid var(--line);align-content:center;display:grid}.svis__list{gap:var(--s-2);margin:0;padding:0;list-style:none;display:grid}.svis__list li{padding-left:var(--s-4);border-left:2px solid var(--line);color:var(--text-muted);transition:color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease)}ul.svis__list li,.svis__list li[data-active=true]{color:var(--text);border-left-color:var(--accent-text)}.svis__list button{gap:var(--s-3);width:100%;min-height:2.75rem;padding:var(--s-1) 0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;display:flex}.svis__list button:hover{color:var(--text)}.svis__list button .t-data{color:var(--accent-text)}.svis__note{color:var(--text-muted)}@media (min-width:640px){.svis .viewer{aspect-ratio:16/9}.svis__side{padding:var(--s-6)}}@media (min-width:1024px){.svis{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)}.svis .viewer{aspect-ratio:auto;min-height:30rem}.svis__side{border-top:0;border-left:1px solid var(--line)}}
