/* Mix hero flow: variant 1 look, original perspective plane, Opus step-by-step animation. Scoped to .mix-flow. */
.hero-visual:has(.mix-flow){padding:30px 30px 34px 8px;perspective:1400px;perspective-origin:30% 50%;overflow:visible}
.mix-flow{
 --mx-accent:var(--chosen-accent,#2f6bff);
 /* Critically damped spring (Apple: damping 1.0); 440ms = response .3, 590ms = response .4. */
 --mx-spring:linear(0, 0.057 4.2%, 0.179 8.3%, 0.319 12.5%, 0.453 16.7%, 0.571 20.8%, 0.669 25%, 0.748 29.2%, 0.811 33.3%, 0.859 37.5%, 0.895 41.7%, 0.923 45.8%, 0.944 50%, 0.959 54.2%, 0.97 58.3%, 0.979 62.5%, 0.985 66.7%, 0.992 75%, 0.996 83.3%, 0.999 95.8%, 1);
 --mx-ink:#11141b;--mx-muted:#8a91a0;--mx-green:#329978;
 position:relative;display:flex;flex-direction:column;color:var(--mx-ink);
 transform:rotateX(calc(9deg + var(--mx-rx,0deg))) rotateY(calc(-13deg + var(--mx-ry,0deg))) rotateZ(-3deg);transform-origin:center;
}
.mix-flow::before{content:"";position:absolute;inset:0 -16px -12px;z-index:-3;border:1px solid #e2e8ef;border-radius:30px;
 background:
 radial-gradient(ellipse at 85% 12%,color-mix(in srgb,var(--mx-accent) 7%,transparent),transparent 58%),
 linear-gradient(145deg,#ffffff 0%,#f4f7fb 52%,#fafcfe 100%);
 border-color:color-mix(in srgb,var(--mx-accent) 10%,#e2e8ef);
 box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 #e3e9f1,0 3px 0 #eaf0f6,0 18px 36px -22px #102b3b38}

.mix-flow-bar{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 6px 4px;font-size:12px;color:var(--mx-muted)}
.mix-flow-tally{display:inline-flex;align-items:baseline;gap:8px;padding:6px 12px;border:1px solid #e9edf4;border-radius:999px;background:#fff;box-shadow:0 6px 14px #26345c0d}
.mix-flow-tally b{min-width:2ch;font-size:15px;font-weight:750;color:var(--mx-ink);font-variant-numeric:tabular-nums;text-align:right}
.mix-flow-tally b{display:inline-block}

.mix-flow-stage{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.74fr) minmax(0,1.26fr);align-items:center;gap:28px;min-height:440px;padding:14px 0 10px;isolation:isolate}
.mix-flow-stage::before{content:"";position:absolute;left:18%;right:18%;top:8%;bottom:8%;z-index:-2;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--mx-accent) 13%,transparent),transparent 70%);filter:blur(12px)}
.mix-flow-wires{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:-1}
.mix-wire{fill:none;stroke:#d9dfeb;stroke-width:1.6}
.mix-comet{fill:none;stroke:var(--mx-accent);stroke-width:2.8;stroke-linecap:round;stroke-dasharray:.16 3;stroke-dashoffset:.16;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--mx-accent) 70%,transparent))}
.mix-end{fill:#cfd7e3;transition:fill .3s}
.mix-end.is-hit{fill:var(--mx-accent)}
.mix-ping{fill:none;stroke:var(--mx-accent);stroke-width:1.5;opacity:0}

.mix-flow-inputs,.mix-flow-outputs{display:flex;flex-direction:column;min-width:0}
.mix-flow-inputs{gap:30px}
.mix-flow-outputs{gap:14px}
/* Variant 1 rhythm: middle cards step out of the column (margins keep wire measurements exact). */
.mix-flow-inputs .mix-card:nth-child(2){margin-right:14px;margin-left:-12px}
.mix-flow-outputs .mix-card:nth-child(2),.mix-flow-outputs .mix-card:nth-child(3){margin-left:12px;margin-right:-6px}

.mix-card{position:relative;display:flex;align-items:center;gap:12px;min-width:0;min-height:76px;padding:14px;border:1px solid #e9edf4;border-radius:16px;
 background:linear-gradient(160deg,#fff,#fcfdff);box-shadow:0 14px 26px #26345c0b,0 2px 3px #26345c08;
 transition:border-color .3s,box-shadow .3s,transform 440ms var(--mx-spring)}
.mix-card-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:11px;color:var(--mx-accent);background:color-mix(in srgb,var(--mx-accent) 7%,white);transition:background .35s,color .35s}
.mix-card-icon .icon{width:19px;height:19px;stroke-width:1.6}
.mix-card-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.mix-card strong{font-size:14px;font-weight:650;line-height:1.25;color:var(--mx-ink)}
.mix-card small{display:block;font-size:12px;line-height:1.35;color:#a0a7b5;transition:opacity .16s,transform 440ms var(--mx-spring),color .3s}
.mix-flow-inputs .mix-card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Text swaps travel one way: the old line leaves upward, the new one rises from below. */
.mix-card small.is-leaving,.mix-hub-status span.is-leaving{opacity:0;transform:translateY(-5px);transition:opacity .14s,transform .14s ease-in}
.mix-card small.is-entering,.mix-hub-status span.is-entering{opacity:0;transform:translateY(5px);transition:none}

.mix-card.is-active{border-color:color-mix(in srgb,var(--mx-accent) 50%,white);transform:translateY(-3px);
 box-shadow:0 0 0 5px color-mix(in srgb,var(--mx-accent) 11%,transparent),0 18px 30px -12px #26345c30}
.mix-card.is-active .mix-card-icon{background:var(--mx-accent);color:#fff}
.mix-card.is-active small{color:var(--mx-ink)}

.mix-out{padding-right:40px}
.mix-out.has-history small{color:#7d8595}
.mix-out.is-done{border-color:color-mix(in srgb,var(--mx-green) 40%,white);animation:mix-land .7s ease-out}
.mix-out.is-done small{color:var(--mx-ink)}
.mix-out.is-done .mix-card-icon{background:var(--mx-accent);color:#fff}
.mix-check{position:absolute;top:50%;right:14px;display:grid;place-items:center;width:20px;height:20px;margin-top:-10px;border-radius:50%;color:#b7c0cd;background:#f1f4f8;transform:scale(.7);transition:background .3s,color .3s,transform 440ms var(--mx-spring)}
.mix-check svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.mix-out.is-done .mix-check{color:#fff;background:var(--mx-green);transform:none}

.mix-center{position:relative;display:flex;flex-direction:column;align-items:center;gap:20px;min-width:0}
.mix-hub{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;padding:26px 12px 20px;border:1px solid #555f70;border-radius:28px;text-align:center;color:#fff;
 background:linear-gradient(145deg,#303d50,#152031);transform:rotate(-5deg);
 box-shadow:0 26px 40px #25334e2a,0 5px 0 #111b29,inset 0 1px 2px #fff5;transition:box-shadow .4s}
.mix-hub::before{content:"";position:absolute;inset:-10px;border:1px solid color-mix(in srgb,var(--mx-accent) 14%,transparent);border-radius:36px;transition:border-color .4s,inset .4s}
.mix-hub>strong{font-size:15px;font-weight:650;line-height:1.3}
.mix-hub.is-busy{box-shadow:0 26px 46px -8px color-mix(in srgb,var(--mx-accent) 45%,transparent),0 5px 0 #111b29,inset 0 1px 2px #fff5}
.mix-hub.is-busy::before{inset:-13px;border-color:color-mix(in srgb,var(--mx-accent) 45%,transparent)}
.mix-hub-icon{display:grid;grid-template-columns:repeat(2,12px);grid-template-rows:repeat(2,12px);gap:6px;place-content:center;width:60px;height:60px;border-radius:18px;transform:rotate(-5deg);
 background:linear-gradient(135deg,color-mix(in srgb,var(--mx-accent) 45%,white),var(--mx-accent) 55%,color-mix(in srgb,var(--mx-accent),#0b1030 30%));
 box-shadow:0 6px 18px color-mix(in srgb,var(--mx-accent) 40%,transparent),inset 0 1px 2px #ffffffa6}
.mix-hub-icon i{border-radius:3px;background:#fff;box-shadow:0 1px 3px #00000020}
.mix-hub.is-busy .mix-hub-icon i{animation:mix-think 1.2s ease-in-out infinite}
.mix-hub.is-busy .mix-hub-icon i:nth-child(2){animation-delay:.15s}
.mix-hub.is-busy .mix-hub-icon i:nth-child(4){animation-delay:.3s}
.mix-hub.is-busy .mix-hub-icon i:nth-child(3){animation-delay:.45s}
.mix-hub-status{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:34px;padding:0 4px;font-size:12px;line-height:1.35;color:#b9c4d4}
.mix-hub-status::before{content:"";flex:0 0 6px;height:6px;border-radius:50%;background:var(--mx-accent)}
.mix-hub.is-busy .mix-hub-status::before{animation:mix-blink .8s ease-in-out infinite}
.mix-hub.is-done .mix-hub-status{color:#fff}
.mix-hub.is-done .mix-hub-status::before{background:#4cc79f;animation:none}
.mix-hub-status span{display:inline-block;transition:opacity .16s,transform 440ms var(--mx-spring)}
.mix-hub-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;width:min(108px,80%)}
.mix-hub-progress i{position:relative;height:4px;border-radius:4px;background:#ffffff1f;overflow:hidden}
.mix-hub-progress i::after{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--mx-accent);transform:scaleX(0);transform-origin:left;transition:transform 590ms var(--mx-spring)}
.mix-hub-progress i.is-on::after{transform:scaleX(1)}
.mix-hub.is-done .mix-hub-progress i::after{background:#4cc79f}

@keyframes mix-think{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}
@keyframes mix-blink{50%{opacity:.3}}
@keyframes mix-land{0%{background:color-mix(in srgb,var(--mx-green) 12%,white)}100%{background:#fff}}

@media(min-width:801px) and (max-width:1150px){
 .hero-visual:has(.mix-flow){padding:22px 10px 26px 26px}
 .mix-flow{transform:rotateX(calc(9deg + var(--mx-rx,0deg))) rotateY(calc(-13deg + var(--mx-ry,0deg))) rotateZ(-3deg) scale(.9)}
 .mix-flow-inputs .mix-card:nth-child(2){margin-left:-6px;margin-right:8px}
 .mix-flow-stage{gap:18px;min-height:420px}
 .mix-flow-inputs .mix-card small{display:none}
 .mix-card{min-height:62px;padding:10px;gap:9px;border-radius:14px}
 .mix-card-icon{flex-basis:30px;height:30px}
 .mix-card strong{font-size:12.5px}
 .mix-card small{font-size:11px}
 .mix-out{padding-right:32px}
 .mix-check{right:9px}
 .mix-hub{padding:20px 8px 16px}
 .mix-hub>strong{font-size:13px}
 .mix-tally-label{display:none}
}
@media(min-width:801px) and (max-width:960px){
 .mix-out small{display:none}
 .mix-card strong{font-size:11.5px}
 .mix-flow-stage{min-height:0}
 .mix-card{min-height:56px}
 .mix-card-icon{flex-basis:26px;height:26px}
 .mix-card-icon .icon{width:15px;height:15px}
}
@media(max-width:800px){
 .hero-visual:has(.mix-flow){padding:14px 8px 18px;perspective:none}
 .mix-flow{transform:none}
 .mix-flow::before{inset:0 -8px -10px;box-shadow:inset 0 1px 0 #fff,0 2px 0 #eaf0f6,0 12px 24px -18px #102b3b30}
}
@media(max-width:700px){
 .mix-flow-bar{padding:12px 4px 2px}
 .mix-flow-stage{display:flex;flex-direction:column;align-items:stretch;gap:38px;min-height:0;padding:14px 4px 20px}
 .mix-flow-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .mix-flow-inputs .mix-card,.mix-flow-inputs .mix-card:nth-child(2){flex-direction:column;justify-content:center;gap:7px;min-height:84px;margin:0;padding:11px 4px;text-align:center}
 .mix-flow-inputs .mix-card small{display:none}
 .mix-flow-inputs .mix-card strong{font-size:11.5px}
 .mix-center{align-self:center;width:200px;gap:14px}
  .mix-flow-outputs{margin-left:28px;gap:10px}
 .mix-flow-outputs .mix-card:nth-child(n){margin:0;min-height:64px;padding:11px 40px 11px 11px}
 .mix-card strong{font-size:13px}
 .mix-card small{font-size:11.5px}
 .mix-tally-label{display:none}
}
@media(max-width:360px){.mix-flow-inputs .mix-card strong{font-size:10.5px}}
@media(prefers-reduced-motion:reduce){
 .mix-flow *,.mix-flow *::before,.mix-flow *::after{animation:none!important;transition:none!important}
 .mix-comet,.mix-ping{display:none}
}

/* Background options for the plane (data-bg on .mix-flow; default: smooth light plane). */
.mix-flow[data-bg="none"]::before{border-color:transparent;background:none;box-shadow:none}
.mix-flow[data-bg="none"] .mix-flow-stage::before{left:6%;right:6%;background:radial-gradient(ellipse,color-mix(in srgb,var(--mx-accent) 18%,transparent),transparent 70%)}
.mix-flow[data-bg="grid"]::before{border-color:color-mix(in srgb,var(--mx-accent) 16%,white);
 background:linear-gradient(90deg,color-mix(in srgb,var(--mx-accent) 7%,transparent) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(color-mix(in srgb,var(--mx-accent) 7%,transparent) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(160deg,color-mix(in srgb,var(--mx-accent) 9%,white),#fff 60%)}
.mix-flow[data-bg="dark"]::before{border-color:#25405a;
 background:radial-gradient(#ffffff17 1px,transparent 1px) 0 0/19px 19px,radial-gradient(ellipse at 50% 45%,color-mix(in srgb,var(--mx-accent) 30%,#0f2233),#0b1b2a 70%);
 box-shadow:1px 2px 0 #ffffff14,3px 8px 0 #0a1622,4px 9px 0 #07111b,10px 30px 46px -18px #0b1b2a80}
.mix-flow[data-bg="dark"] .mix-wire{stroke:#ffffff26}
.mix-flow[data-bg="dark"] .mix-end{fill:#ffffff40}
.mix-flow[data-bg="dark"] .mix-hub{border-color:color-mix(in srgb,var(--mx-accent) 45%,#555f70)}
.mix-flow[data-bg="dark"] .mix-flow-stage::before{opacity:.4}
.mix-flow[data-bg="dark"] .mix-card{box-shadow:0 14px 26px #00000040,0 2px 3px #0000001f}
.mix-flow[data-bg="dark"] .mix-flow-tally{border-color:#ffffff1f;background:#ffffff12;color:#b9c4d4;box-shadow:none}
.mix-flow[data-bg="dark"] .mix-flow-tally b{color:#fff}
