/* A simple ring of upright product tiles. No canvas, video or rendering library. */
.brand-orbit{--orbit-radius:168px;position:relative;isolation:isolate;width:100%;max-width:540px;margin:0 auto;padding:18px 0 0;text-align:center}
.orbit-stage{height:430px;position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse 48% 47% at 50% 50%,#548bcc1c,transparent 95%)}
.orbit-stage:before{content:'';position:absolute;left:50%;top:50%;width:calc(var(--orbit-radius)*2);height:calc(var(--orbit-radius)*2);border:1px solid #a1c4f115;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.orbit-path,.orbit-rotor{position:absolute;inset:0;transform-origin:center}
.orbit-rotor{animation:product-orbit-turn 32s linear infinite}
.orbit-item{position:absolute;left:50%;top:50%;width:60px;height:60px;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(calc(-1*var(--orbit-radius))) rotate(calc(-1*var(--angle)));pointer-events:none}
.orbit-tile{width:100%;height:100%;display:grid;place-items:center;border:1px solid #cadcf23b;border-radius:16px;background:linear-gradient(145deg,#1a2433,#0b111c);box-shadow:0 6px 20px #0005,inset 0 1px #ffffff0c;animation:product-orbit-upright 32s linear infinite}
.orbit-tile img{width:36px;height:36px;display:block;object-fit:contain;border:0!important;margin:0!important}
.orbit-tile svg{width:27px;height:27px;color:#c9dcef}
.orbit-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;gap:12px;width:160px}
.orbit-center>img{width:92px;height:92px;object-fit:contain;border:0!important;background:none!important;box-shadow:none!important}
.orbit-wordmark{font:500 19px/1.2 Arial,system-ui,sans-serif;letter-spacing:-.04em;color:#e9f0fb}
.brand-orbit figcaption{font:11px/1.7 Arial,system-ui,sans-serif;color:#a4b5c9;letter-spacing:.025em;margin:2px 12px 0}
.orbit-control{margin:14px auto 0;padding:7px 13px;min-height:44px;border:1px solid #a8bfd92b;border-radius:999px;background:#0a111b;color:#aebfd4;font:11px/1.5 Arial,sans-serif;cursor:pointer}
.orbit-control:hover{border-color:#c7dcf66b;color:#eef4ff}
.orbit-control:focus-visible{outline:2px solid #b9d7ff;outline-offset:4px}
.brand-orbit:not([data-orbit-ready]) *{animation:none!important}
.brand-orbit:not([data-orbit-ready]) .orbit-control{visibility:hidden}
.brand-orbit:is(.is-paused,.is-offscreen,.is-tab-hidden) *{animation-play-state:paused!important}
@keyframes product-orbit-turn{to{transform:rotate(360deg)}}
@keyframes product-orbit-upright{to{transform:rotate(-360deg)}}
.orbit-engine{display:none;position:absolute;left:50%;top:50%;width:232px;height:168px;transform:translate(-50%,-50%)}
.brand-orbit[data-mode=engine] .orbit-center{display:none}
.brand-orbit[data-mode=engine] .orbit-engine{display:block}
@media(max-width:1050px){.brand-orbit{--orbit-radius:128px}.orbit-item{width:54px;height:54px}.orbit-stage{height:390px}.orbit-engine{width:205px}.orbit-center>img{width:80px;height:80px}}
@media(max-width:760px){.orbit-control{display:block;margin-left:12px;margin-right:auto}.brand-orbit{--orbit-radius:136px;max-width:420px;margin-top:20px}.orbit-stage{height:345px}.orbit-item{width:49px;height:49px}.orbit-tile{border-radius:13px}.orbit-tile img{width:31px;height:31px}.orbit-center>img{width:76px;height:76px}.orbit-wordmark{font-size:17px}.orbit-engine{width:190px}.brand-orbit figcaption{font-size:10px}}
@media(max-width:360px){.brand-orbit{--orbit-radius:116px}.orbit-item{width:45px;height:45px}.orbit-stage{height:300px}.orbit-engine{width:164px}}
@media(prefers-reduced-motion:reduce){.brand-orbit *{animation:none!important}.brand-orbit .orbit-center{opacity:1!important;transform:translate(-50%,-50%)!important}.brand-orbit[data-mode=merge] .orbit-path{opacity:0}.orbit-control{display:none}}
@media(forced-colors:active){.orbit-tile,.orbit-control{border-color:CanvasText;box-shadow:none}.orbit-stage{background:none}}
/* Revised reference choreography: ring opens outward; the large mark settles into a wordmark. */
.orbit-stage{background:radial-gradient(ellipse 48% 47% at 50% 50%,#ffffff0b,transparent 95%)}
.orbit-stage:before{border-color:#ffffff13}
.orbit-tile{background:linear-gradient(145deg,#191c22,#0c0e13);border-color:#e0e5ee32;box-shadow:0 6px 20px #0005,inset 0 1px #ffffff0b}
.orbit-tile svg{color:#e1e5eb}
.orbit-message{display:none;position:absolute;inset:0;pointer-events:none}
.orbit-message span{position:absolute;left:50%;top:50%;width:190px;transform:translate(-50%,-50%);font:400 20px/1.35 Arial,sans-serif;letter-spacing:-.03em;color:#e1e5eb;opacity:0}
.brand-orbit[data-mode=merge] .orbit-message{display:block}
.brand-orbit[data-mode=merge] .orbit-message span:nth-child(1){animation:reference-copy-one 10.5s both}
.brand-orbit[data-mode=merge] .orbit-message span:nth-child(2){animation:reference-copy-two 10.5s both}
.brand-orbit[data-mode=merge] .orbit-message span:nth-child(3){animation:reference-copy-three 10.5s both}
.brand-orbit[data-mode=merge] .orbit-path{animation:reference-orbit-exit 10.5s cubic-bezier(.4,0,.2,1) both}
.brand-orbit[data-mode=merge] .orbit-rotor{animation:reference-turn 10.5s linear both}
.brand-orbit[data-mode=merge] .orbit-tile{animation:reference-upright 10.5s linear both}
.brand-orbit[data-mode=merge] .orbit-stage:before{animation:reference-guide-exit 10.5s cubic-bezier(.4,0,.2,1) both}
.brand-orbit[data-mode=merge] .orbit-center{display:block;width:300px;height:120px;animation:none}
.brand-orbit[data-mode=merge] .orbit-center>img{position:absolute;left:50%;top:50%;animation:reference-mark-settle 10.5s cubic-bezier(.22,.7,.24,1) both}
.brand-orbit[data-mode=merge] .orbit-wordmark{position:absolute;left:calc(50% - 20px);top:50%;transform:translateY(-50%);font-size:23px;white-space:nowrap;animation:reference-wordmark 10.5s both}
@keyframes reference-turn{0%{transform:rotate(0)}76%,100%{transform:rotate(132deg)}}
@keyframes reference-upright{0%{transform:rotate(0)}76%,100%{transform:rotate(-132deg)}}
@keyframes reference-orbit-exit{0%,55%{transform:scale(1);opacity:1}68%{opacity:1}76%,100%{transform:scale(2.25);opacity:0}}
@keyframes reference-guide-exit{0%,55%{transform:translate(-50%,-50%) scale(1);opacity:1}76%,100%{transform:translate(-50%,-50%) scale(2.25);opacity:0}}
@keyframes reference-mark-settle{0%,68%{opacity:0;transform:translate(-50%,-50%) scale(3.5)}71%{opacity:1;transform:translate(-50%,-50%) scale(3.5)}81%,86%{opacity:1;transform:translate(-50%,-50%) scale(1)}96%,100%{opacity:1;transform:translate(-50%,-50%) translateX(-65px) scale(.58)}}
@keyframes reference-wordmark{0%,89%{opacity:0}97%,100%{opacity:1}}
@keyframes reference-copy-one{0%,3%{opacity:0}8%,16%{opacity:1}20%,100%{opacity:0}}
@keyframes reference-copy-two{0%,19%{opacity:0}23%,34%{opacity:1}38%,100%{opacity:0}}
@keyframes reference-copy-three{0%,37%{opacity:0}41%,61%{opacity:1}66%,100%{opacity:0}}
.orbit-engine{width:270px;height:190px;overflow:visible}
.motor-piston,.motor-rod,.motor-crank,.motor-valve{transform-origin:0 0}
@media(max-width:1050px){.orbit-engine{width:206px;height:160px}}
@media(max-width:760px){.orbit-engine{width:202px;height:152px}.orbit-message span{font-size:17px}.brand-orbit[data-mode=merge] .orbit-wordmark{font-size:21px}}
@media(max-width:360px){.orbit-engine{width:176px;height:140px}}
@media(prefers-reduced-motion:reduce){.brand-orbit[data-mode=merge] .orbit-message{display:none}.brand-orbit[data-mode=merge] .orbit-center{display:grid;width:160px;height:auto;gap:12px}.brand-orbit[data-mode=merge] .orbit-center>img,.brand-orbit[data-mode=merge] .orbit-wordmark{position:static;opacity:1;transform:none;animation:none!important}.brand-orbit[data-mode=merge] .orbit-stage:before{opacity:0}}
.brand-orbit:is(.is-paused,.is-offscreen,.is-tab-hidden) .orbit-stage::before{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.brand-orbit .orbit-stage::before{animation:none!important}}
/* Cold steel, glass and restrained optical color around the monochrome marks. */
.orbit-tile{--tile-tint:119,172,221;background:radial-gradient(ellipse at 20% 0%,rgba(var(--tile-tint),.14),transparent 72%),linear-gradient(145deg,#18222f,#0b111a);border-color:rgba(var(--tile-tint),.36);box-shadow:0 7px 22px #0007,inset 0 1px #e2f1ff1a,0 0 18px rgba(var(--tile-tint),.055)}
.orbit-item:nth-child(2n) .orbit-tile{--tile-tint:124,179,178}
.orbit-item:nth-child(3n) .orbit-tile{--tile-tint:169,150,210}
.orbit-item:nth-child(4n) .orbit-tile{--tile-tint:194,164,132}
/* Keep the full app tile inside the available column throughout its orbit. */
.brand-orbit[data-mode=engine]{container-type:inline-size}
.brand-orbit[data-mode=engine] .orbit-stage{--orbit-radius:min(var(--engine-orbit-radius),calc(50cqw - 40px));background:radial-gradient(ellipse 45% 35% at 50% 50%,#628cb51c,transparent 95%)}
.motor-spring{transform-origin:0 35px}
@media(min-width:1051px){.orbit-engine{width:282px;height:196px}}
@media(forced-colors:active){.orbit-tile{background:Canvas;border-color:CanvasText;box-shadow:none}}
@media(min-width:1051px){.brand-orbit[data-mode=engine]{--engine-orbit-radius:188px}.brand-orbit[data-mode=engine] .orbit-stage{height:470px}}
@media(min-width:761px) and (max-width:1050px){.brand-orbit[data-mode=engine]{--engine-orbit-radius:136px}.orbit-engine{width:184px;height:150px}}
/* Filled, app-style product identities; 3D is loaded only for the engine variant. */
.brand-orbit.app-orbit .orbit-tile{background:#f3f6fa;border:0;border-radius:14px;box-shadow:0 6px 18px #0005,inset 0 1px #fff}
.brand-orbit.app-orbit .orbit-tile img{width:100%;height:100%;border-radius:inherit}
.engine3d-host{display:none;position:absolute;left:50%;top:50%;width:360px;height:330px;transform:translate(-50%,-50%);isolation:isolate}
.brand-orbit[data-mode=engine] .engine3d-host{display:block}
.engine3d-canvas,.engine3d-poster{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;object-fit:contain;border:0!important;box-shadow:none!important;background:none!important}
.engine3d-canvas{cursor:grab;opacity:0;transition:opacity .2s}
.engine3d-canvas:active{cursor:grabbing}
.engine3d-host[data-render-state=webgl] .engine3d-canvas{opacity:1}
.engine3d-host[data-render-state=webgl] .engine3d-poster{visibility:hidden}
@media(min-width:1051px){.brand-orbit[data-mode=engine]{--engine-orbit-radius:214px}.brand-orbit[data-mode=engine] .orbit-stage{height:530px}}
@media(min-width:761px) and (max-width:1050px){body.precision-home .hero:has(.brand-orbit[data-mode=engine]){grid-template-columns:1fr}.brand-orbit[data-mode=engine]{--engine-orbit-radius:194px;max-width:500px}.brand-orbit[data-mode=engine] .orbit-stage{height:490px}}
@media(max-width:760px){.brand-orbit.app-orbit .orbit-tile{border-radius:12px}.brand-orbit[data-mode=engine]{--engine-orbit-radius:140px}.brand-orbit[data-mode=engine] .orbit-stage{height:430px}.brand-orbit[data-mode=engine] .orbit-path{transform:scaleY(1.23)}.brand-orbit[data-mode=engine] .orbit-tile{animation-name:engine-app-upright}.brand-orbit[data-mode=engine] .orbit-stage:before{height:calc(var(--orbit-radius)*2.46)}.engine3d-host{width:260px;height:250px}}
@media(max-width:360px){.brand-orbit[data-mode=engine]{--engine-orbit-radius:116px}.engine3d-host{width:218px;height:220px}.brand-orbit[data-mode=engine] .orbit-stage{height:380px}}
@keyframes engine-app-upright{from{transform:rotate(0) scaleY(.813008)}to{transform:rotate(-360deg) scaleY(.813008)}}
@media(prefers-reduced-motion:reduce){.engine3d-canvas{transition:none}}

/* Engine output drives this ring; no independent CSS clock can drift from the crank. */
.brand-orbit[data-mode=engine] .orbit-rotor{animation:none;transform:rotate(var(--engine-drive-angle,0deg))}
.brand-orbit[data-mode=engine] .orbit-tile{animation:none;transform:rotate(calc(-1 * var(--engine-drive-angle,0deg)))}
@media(max-width:760px){.brand-orbit[data-mode=engine] .orbit-tile{transform:rotate(calc(-1 * var(--engine-drive-angle,0deg))) scaleY(.813008)}}

/* A quiet rev readout shares the engine clock; no independent timer or animation. */
.engine-speed{display:flex;align-items:baseline;justify-content:center;gap:6px;margin:4px auto 8px;color:#eef2f7;font:500 23px/1.2 Arial,system-ui,sans-serif;font-variant-numeric:tabular-nums}
.engine-speed-label{margin-inline-end:7px;color:#a4b5c9;font:10px/1.5 Arial,system-ui,sans-serif;letter-spacing:.025em}
.engine-speed-value{min-width:3ch;text-align:end}
.engine-speed-unit{font-size:12px;color:#a4b5c9}
.brand-orbit:not(:has(.engine3d-host[data-render-state=webgl])) .engine-speed{visibility:hidden}
