/* Lux Motion — shared process animations (Sept 2026)
   Every figure: starts only when on screen, pauses off screen, has a pause button,
   and renders a still frame for visitors who prefer reduced motion. */
.lm{--lm-bg:#fff;--lm-ink:#16362b;--lm-muted:#536b60;--lm-acc:#b08a45;--lm-acc2:#07523a;--lm-line:#d9e2dd;--lm-soft:#eef3f0;--lm-hot:#c98a3a;
  position:relative;margin:0;color:var(--lm-ink);font-family:"DM Sans",Arial,sans-serif}
.lm--dark{--lm-bg:#022b1f;--lm-ink:#f5f3ec;--lm-muted:#b4c7bd;--lm-acc:#d4bd8d;--lm-acc2:#8fc0a6;--lm-line:rgba(212,189,141,.26);--lm-soft:rgba(245,243,236,.06)}
.lm svg{display:block;width:100%;height:auto;overflow:visible}
.lm .t-lbl{font:600 15px "Manrope",sans-serif;fill:var(--lm-ink);letter-spacing:.01em}
.lm .t-sub{font:500 12px "DM Sans",sans-serif;fill:var(--lm-muted)}
.lm .t-mono{font:500 11px ui-monospace,"IBM Plex Mono",Menlo,monospace;letter-spacing:.12em;fill:var(--lm-muted);text-transform:uppercase}
.lm-note{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:12px;font:500 11px ui-monospace,Menlo,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--lm-muted)}
.lm-ctl{appearance:none;border:1px solid var(--lm-line);background:transparent;color:var(--lm-ink);border-radius:999px;min-height:32px;padding:0 12px;font:600 11px ui-monospace,Menlo,monospace;letter-spacing:.1em;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.lm-ctl:hover{border-color:var(--lm-acc)}
.lm-ctl i{width:8px;height:10px;border-left:3px solid currentColor;border-right:3px solid currentColor;box-sizing:border-box}
.lm-ctl[aria-pressed="true"] i{border:0;width:0;height:0;border-left:9px solid currentColor;border-top:5px solid transparent;border-bottom:5px solid transparent}
@media (prefers-reduced-motion:reduce){.lm-ctl{display:none}}

/* ---------- ORBIT (home hero) ---------- */
.hero-orbit{display:flex;align-items:center;justify-content:center;padding:clamp(20px,4vw,56px);background:radial-gradient(circle at 50% 48%,rgba(212,189,141,.14),transparent 62%),#022b1f;position:relative;overflow:hidden}
.hero-orbit .lm{width:min(100%,640px)}
.lm-orbit .ring{fill:none;stroke:var(--lm-line)}
.lm-orbit .ring.d{stroke-dasharray:3 9}
.lm-orbit .spoke{stroke:var(--lm-line);stroke-width:1.2}
.lm-orbit .spoke.on{stroke:var(--lm-acc);stroke-width:2}
.lm-orbit .core{fill:#07523a;stroke:var(--lm-acc);stroke-width:1.5}
.lm-orbit .core-t{font:700 16px "Manrope";letter-spacing:.2em;fill:#f5f3ec}
.lm-orbit .core-s{font:600 11px ui-monospace,Menlo,monospace;letter-spacing:.24em;fill:var(--lm-acc)}
.lm-orbit .node circle.b{fill:#033e2c;stroke:var(--lm-acc);stroke-width:1.4;transition:fill .3s}
.lm-orbit .node .ic{fill:none;stroke:var(--lm-acc);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.lm-orbit .node.on circle.b,.lm-orbit a.node:hover circle.b,.lm-orbit a.node:focus-visible circle.b{fill:#07523a}
.lm-orbit a.node{cursor:pointer;outline:none}
.lm-orbit a.node:focus-visible circle.b{stroke-width:3}
.lm-orbit .fmt{font:600 11.5px ui-monospace,Menlo,monospace;letter-spacing:.34em;fill:var(--lm-muted)}
.lm-orbit .t-lbl{font-size:19px}.lm-orbit .t-sub{font-size:13.5px}
@media (max-width:560px){.lm-orbit .t-lbl{font-size:23px}.lm-orbit .t-sub{display:none}}

/* ---------- STEPPER (chain + quality gate) ---------- */
.lm-step{--p:0}
.lm-step .st-track{position:relative;display:grid;grid-template-columns:repeat(var(--n),1fr);gap:0}
.lm-step .st-rail{position:absolute;left:calc(50% / var(--n));right:calc(50% / var(--n));top:38px;height:2px;background:var(--lm-line)}
.lm-step .st-fill{position:absolute;inset:0 auto 0 0;width:calc(var(--p) * 100%);background:linear-gradient(90deg,var(--lm-acc),var(--lm-acc2))}
.lm-step .st-tok{position:absolute;top:50%;left:calc(var(--p) * 100%);width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--lm-acc);box-shadow:0 0 0 6px color-mix(in srgb,var(--lm-acc) 22%,transparent)}
.lm-step button.st{appearance:none;background:none;border:0;padding:0 8px;color:inherit;font:inherit;text-align:center;cursor:pointer;position:relative;z-index:1}
.lm-step .st-dot{width:76px;height:76px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--lm-line);background:var(--lm-bg);color:var(--lm-acc2);transition:background .35s,color .35s,border-color .35s,transform .35s}
.lm-step .st-dot svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.lm-step .st.done .st-dot{border-color:var(--lm-acc)}
.lm-step .st.on .st-dot{background:#07523a;color:#fff;border-color:#07523a;transform:translateY(-4px)}
.lm-step .st-n{display:block;color:var(--lm-acc);font:700 11px ui-monospace,Menlo,monospace;letter-spacing:.1em}
.lm-step .st-t{display:block;color:var(--lm-acc2);font:600 15px "Manrope";margin-top:4px}
.lm--dark.lm-step .st-t{color:var(--lm-ink)}
.lm-step .st-tick{position:absolute;top:0;right:calc(50% - 44px);width:22px;height:22px;border-radius:50%;background:var(--lm-acc);color:#033e2c;display:grid;place-items:center;font:700 12px sans-serif;transform:scale(0);transition:transform .3s}
.lm-step .st.done .st-tick,.lm-step .st.on.ticked .st-tick{transform:scale(1)}
.lm-step .st-cap{margin-top:28px;display:grid;grid-template-columns:auto 1fr auto;gap:18px 26px;align-items:center;padding:22px 26px;border:1px solid var(--lm-line);background:var(--lm-soft)}
.lm-step .st-cap b{font:500 clamp(1.4rem,2.4vw,2rem) "Manrope";letter-spacing:-.03em;color:var(--lm-acc2)}
.lm--dark.lm-step .st-cap b{color:var(--lm-acc)}
.lm-step .st-cap p{margin:0;color:var(--lm-muted);font-size:1rem;line-height:1.55}
.lm-step .st-cap .st-code{font:600 12px ui-monospace,Menlo,monospace;letter-spacing:.12em;color:var(--lm-muted);white-space:nowrap}
@media (max-width:760px){
  .lm-step .st-track{grid-template-columns:1fr;gap:10px}
  .lm-step .st-rail{left:37px;right:auto;top:38px;bottom:38px;width:2px;height:auto}
  .lm-step .st-fill{width:auto;inset:0 0 auto 0;height:calc(var(--p) * 100%)}
  .lm-step .st-tok{left:50%;top:calc(var(--p) * 100%)}
  .lm-step button.st{display:grid;grid-template-columns:76px 1fr;gap:0 18px;text-align:left;align-items:center;padding:0}
  .lm-step .st-dot{margin:0;grid-row:span 2}
  .lm-step .st-tick{left:54px;right:auto}
  .lm-step .st-cap{grid-template-columns:1fr}
}

/* ---------- CHROMATOGRAM ---------- */
.lm-chrom .ax{stroke:var(--lm-line)}
.lm-chrom .band{fill:var(--lm-soft)}
.lm-chrom .band.hot{fill:color-mix(in srgb,var(--lm-acc) 18%,transparent)}
.lm-chrom .tr-b{fill:none;stroke:var(--lm-muted);stroke-width:1.6;stroke-dasharray:5 4}
.lm-chrom .tr-l{fill:none;stroke:var(--lm-acc);stroke-width:2.4;stroke-linejoin:round}
.lm-chrom .scan{stroke:var(--lm-acc);stroke-width:1}
.lm-chrom .key{font:600 12px "DM Sans";fill:var(--lm-ink)}
.lm-chrom .flag{font:600 12px ui-monospace,Menlo,monospace;letter-spacing:.08em;fill:var(--lm-acc)}

/* ---------- PLANT CONTROL ROOM ---------- */
.lm-plant{background:#021f16;color:#f5f3ec;border:1px solid rgba(212,189,141,.22);--lm-bg:#021f16;--lm-ink:#f5f3ec;--lm-muted:#a9bdb2;--lm-acc:#d4bd8d;--lm-line:rgba(212,189,141,.24)}
.lm-plant .pl-bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 18px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--lm-line)}
.lm-plant .pl-tabs{display:flex;flex-wrap:wrap;gap:6px}
.lm-plant .pl-tab{appearance:none;position:relative;overflow:hidden;border:1px solid var(--lm-line);background:transparent;color:var(--lm-muted);border-radius:999px;min-height:40px;padding:0 14px;font:600 13px "DM Sans";cursor:pointer;display:inline-flex;gap:8px;align-items:center}
.lm-plant .pl-tab small{font:500 10.5px ui-monospace,Menlo,monospace;letter-spacing:.06em;opacity:.8}
.lm-plant .pl-tab[aria-selected="true"]{background:var(--lm-acc);border-color:var(--lm-acc);color:#022b1f}
.lm-plant .pl-tab .pb{position:absolute;left:0;bottom:0;height:2px;background:#022b1f;width:0}
.lm-plant .pl-stat{display:flex;gap:16px;font:500 11px ui-monospace,Menlo,monospace;letter-spacing:.1em;color:var(--lm-muted);text-transform:uppercase}
.lm-plant .pl-stat b{color:#f5f3ec;font-weight:600}
.lm-plant .led{display:inline-block;width:8px;height:8px;border-radius:50%;background:#7fd19b;margin-right:7px;box-shadow:0 0 8px #7fd19b;vertical-align:1px}
.lm-plant .pl-body{display:grid;grid-template-columns:minmax(0,1fr) 260px}
.lm-plant .pl-stage{position:relative;min-width:0;border-right:1px solid var(--lm-line)}
.lm-plant canvas{display:block;width:100%;height:auto;aspect-ratio:1000/560}
.lm-plant.pl-narrow .pl-cap{position:static;padding:8px 14px 12px}
.lm-plant .pl-cap{position:absolute;left:16px;bottom:14px;right:16px;display:flex;justify-content:space-between;gap:12px;pointer-events:none;font:500 11px ui-monospace,Menlo,monospace;letter-spacing:.1em;color:var(--lm-muted);text-transform:uppercase}
.lm-plant .pl-panel{padding:14px;display:grid;gap:8px;align-content:start}
.lm-plant .pl-h{font:600 11px ui-monospace,Menlo,monospace;letter-spacing:.14em;color:var(--lm-acc);text-transform:uppercase;margin:2px 0 4px}
.lm-plant .pl-g{border:1px solid var(--lm-line);padding:10px 12px;display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:end}
.lm-plant .pl-g span{font:500 10.5px ui-monospace,Menlo,monospace;letter-spacing:.1em;color:var(--lm-muted)}
.lm-plant .pl-g b{font:600 20px "Manrope";letter-spacing:-.02em;color:#f5f3ec;grid-column:1;font-variant-numeric:tabular-nums}
.lm-plant .pl-g em{font-style:normal;font:500 11px "DM Sans";color:var(--lm-muted);grid-column:2;grid-row:2}
.lm-plant .pl-g i{grid-column:1/-1;height:3px;background:rgba(245,243,236,.08);margin-top:6px;position:relative}
.lm-plant .pl-g i s{position:absolute;inset:0 auto 0 0;background:var(--lm-acc);width:50%}
.lm-plant .pl-cap-big{margin-top:6px;padding:12px;background:rgba(212,189,141,.1);border:1px solid var(--lm-line)}
.lm-plant .pl-cap-big b{display:block;font:500 26px "Manrope";letter-spacing:-.03em;color:var(--lm-acc)}
.lm-plant .pl-cap-big span{font:500 10.5px ui-monospace,Menlo,monospace;letter-spacing:.1em;color:var(--lm-muted);text-transform:uppercase}
.lm-plant .pl-desc{max-width:none!important;font-size:.9rem!important;font-size:.9rem;line-height:1.55;color:var(--lm-muted);margin:0;padding:14px 16px;border-top:1px solid var(--lm-line)}
.lm-plant .pl-desc b{color:#f5f3ec}
.lm-plant .pl-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--lm-line);font:500 11px ui-monospace,Menlo,monospace;letter-spacing:.1em;color:var(--lm-muted);text-transform:uppercase}
@media (max-width:980px){.lm-plant .pl-body{grid-template-columns:1fr}.lm-plant .pl-stage{border-right:0;border-bottom:1px solid var(--lm-line)}.lm-plant .pl-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.lm-plant .pl-h,.lm-plant .pl-cap-big{grid-column:1/-1}}
@media (max-width:560px){.lm-plant .pl-stat{display:none}.lm-plant .pl-tab{padding:0 11px;font-size:12.5px}.lm-plant .pl-tab small{display:none}.lm-plant .pl-g b{font-size:17px}}

/* ---------- WAYFINDING ---------- */
.lm-way{--w-bg:#022b1f;--w-road:#011f14;--w-block:#033e2c;--w-lux:rgba(212,189,141,.16);--w-acc:#d4bd8d;--w-line:rgba(212,189,141,.3);--w-ink:#f5f3ec;--w-muted:#b4c7bd;--w-soft:#022b1f;
  background:var(--w-bg);color:var(--w-ink);padding-block:clamp(56px,7vw,104px)}
.lm-way .wf-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 40px;margin-bottom:clamp(24px,3vw,40px)}
.lm-way h2{font:500 clamp(2.2rem,4.2vw,4.2rem)/1.02 "Manrope";letter-spacing:-.05em;margin:12px 0 0;color:var(--w-ink)}
.lm-way h2 em{font-style:normal;color:var(--w-acc)}
.lm-way address{font-style:normal;max-width:36ch;color:var(--w-muted);line-height:1.6}
.lm-way address b{display:block;color:var(--w-ink);font-weight:600}
.lm-way .wf-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(16px,2.4vw,32px)}
.lm-way .wf-card{border:1px solid var(--w-line);min-width:0;display:flex;flex-direction:column;background:var(--w-soft)}
.lm-way .wf-draw{padding:clamp(12px,2vw,20px)}
.lm-way ol{list-style:none;margin:0;padding:0 clamp(12px,2vw,20px) clamp(16px,2vw,20px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.lm-way li{display:flex;gap:10px;padding:12px;border:1px solid var(--w-line);font-size:.9rem;line-height:1.45;color:var(--w-muted);transition:.3s}
.lm-way li b{display:block;color:var(--w-ink);font-weight:600}
.lm-way li .n{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font:600 12px ui-monospace,monospace;border:1px solid var(--w-acc);color:var(--w-acc)}
.lm-way li.on{border-color:var(--w-acc);color:var(--w-ink);background:color-mix(in srgb,var(--w-acc) 10%,transparent)}
.lm-way li.on .n{background:var(--w-acc);color:var(--w-bg)}
.lm-way .wf-frame{position:relative;flex:1;min-height:340px;background:var(--w-block)}
.lm-way iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lm-way .wf-btns{display:flex;flex-wrap:wrap;gap:10px;padding:14px;border-top:1px solid var(--w-line)}
.lm-way .wf-btns .button{border-color:var(--w-acc)!important;color:var(--w-ink)!important;background:transparent!important}
.lm-way .wf-btns .button.primary{background:var(--w-acc)!important;color:var(--w-bg)!important}
.lm-way .wf-lbl{font:600 13px "DM Sans",sans-serif;fill:var(--w-ink)}
.lm-way .wf-sm{font:500 10.5px ui-monospace,Menlo,monospace;letter-spacing:.08em;fill:var(--w-muted)}
.lm-way .w-hi{fill:var(--w-acc)}
.lm-way .w-road{fill:var(--w-road)}.lm-way .w-dash{stroke:var(--w-line);stroke-width:2;stroke-dasharray:14 12}
.lm-way .w-gate{fill:var(--w-acc)}.lm-way .w-wall{stroke:var(--w-line);stroke-width:2}
.lm-way .w-blk{fill:var(--w-block);stroke:var(--w-line)}
.lm-way .w-lux{fill:var(--w-lux);stroke:var(--w-acc);stroke-width:2}
.lm-way .w-ghost{fill:none;stroke:var(--w-line);stroke-width:4;stroke-linecap:round;stroke-dasharray:2 9}
.lm-way .w-route{fill:none;stroke:var(--w-acc);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.lm-way .w-badge{fill:var(--w-bg);stroke:var(--w-acc)}
.lm-way .w-dot{fill:var(--w-acc)}.lm-way .w-ring{fill:none;stroke:var(--w-acc);stroke-width:2}.lm-way .w-car-in{fill:var(--w-bg)}
.lm-way .wf-note{margin:12px 0 0;font:500 11px ui-monospace,monospace;letter-spacing:.06em;color:var(--w-muted)}
@media (max-width:900px){.lm-way .wf-grid{grid-template-columns:1fr}.lm-way ol{grid-template-columns:1fr}}

/* page glue */
.lm-section{padding:clamp(64px,8vw,112px) 0}
.lm-section.darkband{background:#033e2c;color:#fff}
.lm-section.darkband .section-head h2{color:#fff}.lm-section.darkband .section-head p{color:#cbdad3}
.lm-illus{font:500 11px ui-monospace,Menlo,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--lm-muted)}

/* ---------- SPEC BAND ---------- */
.lm-band .bandfill{fill:color-mix(in srgb,var(--lm-acc2) 12%,transparent)}
.lm-band .lim{stroke:var(--lm-acc2);stroke-width:1.5;stroke-dasharray:7 6;opacity:.7}
.lm-band .std{stroke:var(--lm-acc);stroke-width:1.5}
.lm-band .dot .mk{fill:var(--lm-acc2);stroke:none}
.lm-band .dot.out .mk{fill:none;stroke:#b8721f;stroke-width:3}
.lm-band .dot.out .stem{stroke:#b8721f;stroke-width:1.5;stroke-dasharray:3 4}
.lm-band .flagOK{font:600 12px ui-monospace,Menlo,monospace;letter-spacing:.1em;fill:var(--lm-acc2)}
.lm-band .flagHold{font:600 12px ui-monospace,Menlo,monospace;letter-spacing:.1em;fill:#b8721f}
.lm-band .sb-count b{font-variant-numeric:tabular-nums}
.lm-band .sb-count .ok{color:var(--lm-acc2)}.lm-band .sb-count .hold{color:#b8721f}
.lm--dark.lm-band .dot .mk{fill:#8fc0a6}.lm--dark.lm-band .flagOK{fill:#8fc0a6}
.lm--dark.lm-band .dot.out .mk,.lm--dark.lm-band .dot.out .stem{stroke:#e0a94a}
.lm--dark.lm-band .flagHold{fill:#e0a94a}

/* ---------- STRATA (about timeline) ---------- */
.timeline.lm-consumed{display:none}
.lm-strata{--st0:#07523a;--st1:#2f6b4c;--st2:#57855f;--st3:#86a06a;--st4:#b3903f;--st5:#d9c07f}
.lm--dark.lm-strata,.site-dark .lm-strata{--st0:#0c6b4a;--st1:#2f8b62;--st2:#5aa277;--st3:#8fb87f;--st4:#c2a04d;--st5:#e2cb92}
.lm-strata .stratum{stroke:var(--lm-bg);stroke-width:1.5;opacity:.82;transition:opacity .4s}
.lm-strata .stratum.lit{opacity:1}
.lm-strata .s0{fill:var(--st0)}.lm-strata .s1{fill:var(--st1)}.lm-strata .s2{fill:var(--st2)}
.lm-strata .s3{fill:var(--st3)}.lm-strata .s4{fill:var(--st4)}.lm-strata .s5{fill:var(--st5)}
.lm-strata .axis{stroke:var(--lm-line);stroke-width:1.5}
.lm-strata .tick{stroke:var(--lm-line);stroke-width:1.5}
.lm-strata .knob{fill:var(--lm-bg);stroke:var(--lm-line);stroke-width:2}
.lm-strata .mk.past .knob{stroke:var(--lm-acc)}
.lm-strata .mk.on .knob{fill:var(--lm-acc);stroke:var(--lm-acc);r:8}
.lm-strata .yr{font:500 17px "Manrope",sans-serif;fill:var(--lm-muted);letter-spacing:-.01em}
.lm-strata .mk.on .yr{fill:var(--lm-acc2);font-weight:600}
.lm--dark.lm-strata .mk.on .yr,.site-dark .lm-strata .mk.on .yr{fill:var(--lm-ink)}
.lm-strata .lay{font:500 11px ui-monospace,Menlo,monospace;letter-spacing:.06em;fill:var(--lm-muted);text-transform:uppercase;opacity:.55}
.lm-strata .mk.on .lay{opacity:1;fill:var(--lm-acc)}
.lm-strata .onband{font:600 12px ui-monospace,Menlo,monospace;letter-spacing:.08em;fill:#fbfaf6;text-transform:uppercase}
.lm-strata .onband.dk{fill:#102f22}
.lm-strata .play{stroke:var(--lm-acc);stroke-width:1.5;stroke-dasharray:4 5}
.lm-strata .hit{cursor:pointer;outline:none}
.lm-strata .hit:focus-visible rect{fill:color-mix(in srgb,var(--lm-acc) 12%,transparent)}
.lm-strata .st-card{margin-top:18px;display:grid;grid-template-columns:auto 1fr;gap:6px 24px;align-items:baseline;padding:20px 24px;border:1px solid var(--lm-line);background:var(--lm-soft)}
.lm-strata .st-card b{font:500 clamp(1.5rem,2.6vw,2.2rem) "Manrope";letter-spacing:-.03em;color:var(--lm-acc2)}
.site-dark .lm-strata .st-card b,.lm--dark.lm-strata .st-card b{color:var(--lm-acc)}
.lm-strata .st-card p{margin:0;color:var(--lm-muted);font-size:1rem;line-height:1.55;max-width:70ch}
@media (max-width:640px){.lm-strata .st-card{grid-template-columns:1fr}.lm-strata .lay{display:none}}

/* ---------- TIMELINE (three versions) ---------- */
.lm .tl-bar.is-hidden{display:none}
.lm .tl-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.lm .tl-tab{appearance:none;border:1px solid var(--lm-line);background:transparent;color:var(--lm-muted);border-radius:999px;min-height:40px;padding:0 16px;font:600 13px "DM Sans",Arial,sans-serif;cursor:pointer}
.lm .tl-tab[aria-selected="true"]{background:var(--lm-acc2);border-color:var(--lm-acc2);color:#fff}
.site-dark .lm .tl-tab[aria-selected="true"],.lm--dark .tl-tab[aria-selected="true"]{background:var(--lm-acc);color:#022b1f}
.lm .tl-card{margin-top:20px;display:grid;grid-template-columns:auto 1fr;gap:6px 24px;align-items:baseline;padding:20px 24px;border:1px solid var(--lm-line);background:var(--lm-soft)}
.lm .tl-card b{font:500 clamp(1.5rem,2.6vw,2.1rem) "Manrope",sans-serif;letter-spacing:-.03em;color:var(--lm-acc2)}
.site-dark .lm .tl-card b,.lm--dark .tl-card b{color:var(--lm-acc)}
.lm .tl-card p{margin:0;color:var(--lm-muted);font-size:1rem;line-height:1.55;max-width:70ch}
@media (max-width:640px){.lm .tl-card{grid-template-columns:1fr}}
/* A — tree */
.lm .limb{fill:none;stroke:var(--lm-acc2);stroke-width:2;stroke-linecap:round;opacity:.55}
.site-dark .lm .limb,.lm--dark .limb{stroke:var(--lm-acc2);opacity:.7}
.lm .tn .knob{fill:var(--lm-bg);stroke:var(--lm-acc2);stroke-width:2.5}
.lm .tn.on .knob{fill:var(--lm-acc);stroke:var(--lm-acc)}
.lm .tyr{font:500 19px "Manrope",sans-serif;fill:var(--lm-acc2)}
.site-dark .lm .tyr,.lm--dark .tyr{fill:var(--lm-ink)}
.lm .tlab{font:500 12.5px ui-monospace,Menlo,monospace;letter-spacing:.06em;fill:var(--lm-muted);text-transform:uppercase}
.lm .tn.on .tlab{fill:var(--lm-acc)}
/* B — site plan */
.lm .plot{fill:none;stroke:var(--lm-line);stroke-width:1.5;stroke-dasharray:5 7}
.lm .rm{fill:color-mix(in srgb,var(--lm-acc2) 12%,transparent);stroke:var(--lm-acc2);stroke-width:1.6}
.lm .room.on .rm{fill:color-mix(in srgb,var(--lm-acc) 26%,transparent);stroke:var(--lm-acc);stroke-width:2.4}
.lm .ryr{font:500 18px "Manrope",sans-serif;fill:var(--lm-acc2)}
.site-dark .lm .ryr,.lm--dark .ryr{fill:var(--lm-ink)}
.lm .rname{font:500 12.5px ui-monospace,Menlo,monospace;letter-spacing:.05em;fill:var(--lm-muted);text-transform:uppercase}
.lm .rsq{font:600 13px "DM Sans",sans-serif;fill:var(--lm-acc)}
/* C — dial */
.lm .tl-dial{display:grid;grid-template-columns:150px minmax(0,1fr);gap:clamp(16px,3vw,36px);align-items:center}
.lm .dl-years{display:flex;flex-direction:column;gap:6px;transform:translateY(var(--shift,0));transition:transform .5s cubic-bezier(.4,0,.2,1)}
.lm .dl-y{appearance:none;border:0;background:none;text-align:left;cursor:pointer;padding:4px 0;color:var(--lm-muted);opacity:calc(1 - var(--d,2)*.24);
  font:500 clamp(1.5rem,2.4vw,2rem)/1.4 "Manrope",sans-serif;letter-spacing:-.03em;transition:.35s}
.lm .dl-y.on{color:var(--lm-acc2);opacity:1;font-weight:600}
.site-dark .lm .dl-y.on,.lm--dark .dl-y.on{color:var(--lm-acc)}
.lm .dl-y span{border-left:3px solid transparent;padding-left:12px}
.lm .dl-y.on span{border-left-color:var(--lm-acc)}
.lm .dl-pane{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--lm-line)}
.lm .dl-fig{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .6s}
.lm .dl-fig.on{opacity:1}
.lm .dl-fig img{width:100%;height:100%;object-fit:cover}
.lm .dl-fig figcaption{position:absolute;left:0;bottom:0;right:0;padding:12px 16px;background:linear-gradient(0deg,rgba(2,31,22,.88),transparent);color:#f5f3ec;font:500 12px ui-monospace,Menlo,monospace;letter-spacing:.08em;text-transform:uppercase}
@media (max-width:700px){.lm .tl-dial{grid-template-columns:1fr}.lm .dl-years{flex-direction:row;overflow-x:auto;transform:none;gap:14px}.lm .dl-y{font-size:1.2rem}}
/* D — tree + archive */
.lm .tl-mix{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(16px,2.6vw,32px);align-items:center}
.lm .tl-mix .mx-pane .tl-dial.solo{grid-template-columns:1fr}
.lm .tl-mix .dl-pane{aspect-ratio:4/5}
@media (max-width:820px){.lm .tl-mix{grid-template-columns:1fr}.lm .tl-mix .dl-pane{aspect-ratio:16/9}}

/* ---------- TECHNOLOGY ANIMATIONS (batch 2) ---------- */
.lm .phase{font:600 13px ui-monospace,Menlo,monospace;letter-spacing:.14em;fill:var(--lm-acc)}
.lm .phased{font:500 14px "DM Sans",Arial,sans-serif;fill:var(--lm-muted)}
/* capsule */
.lm-caps .shell{fill:color-mix(in srgb,var(--lm-acc) 16%,transparent);stroke:var(--lm-line)}
.lm-caps .wall{fill:none;stroke:var(--lm-acc);stroke-width:7}
.lm-caps .oil{fill:var(--lm-acc2);opacity:.9}
.lm--dark.lm-caps .oil{fill:#8fc0a6}
.lm-caps .aro{fill:var(--lm-acc)}
.lm-caps .water{fill:none;stroke:var(--lm-acc2);stroke-width:2}
/* wetting */
.lm-wet .glass{fill:none;stroke:var(--lm-line);stroke-width:2.5}
.lm-wet .liq{fill:color-mix(in srgb,var(--lm-acc2) 10%,transparent);stroke:var(--lm-acc2);stroke-width:1.2;stroke-opacity:.4}
.lm-wet .pw{fill:var(--lm-acc)}
.lm-wet .pw.f{fill:var(--lm-muted)}
.lm-wet .verdict{font:600 13px "DM Sans",Arial,sans-serif;fill:var(--lm-acc2)}
.lm--dark.lm-wet .verdict{fill:var(--lm-ink)}
/* taste curves */
.lm .tc-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.lm .tc-tab{appearance:none;border:1px solid var(--lm-line);background:transparent;color:var(--lm-muted);border-radius:999px;min-height:38px;padding:0 15px;font:600 13px "DM Sans",Arial,sans-serif;cursor:pointer}
.lm .tc-tab[aria-selected="true"]{background:var(--lm-acc);border-color:var(--lm-acc);color:#022b1f}
.lm-taste .ax{stroke:var(--lm-line);stroke-width:1.5}
.lm-taste .cv{fill:none;stroke-width:2.6;stroke-linecap:round}
.lm-taste .cv.base{stroke:var(--lm-muted);stroke-dasharray:6 5}
.lm-taste .cv.mod{stroke:var(--lm-acc)}
.lm-taste .cvlab{font:600 12.5px "DM Sans",Arial,sans-serif}
.lm-taste .cvlab.base{fill:var(--lm-muted)}.lm-taste .cvlab.mod{fill:var(--lm-acc)}
/* dairy */
.lm-dairy .sub{fill:color-mix(in srgb,var(--lm-acc) 12%,transparent);stroke:var(--lm-line);stroke-width:1.5}
.lm-dairy .glob{fill:var(--lm-acc);opacity:.85}
.lm-dairy .enz{fill:none;stroke:var(--lm-acc2);stroke-width:2.4;stroke-linecap:round}
.lm--dark.lm-dairy .enz{stroke:#8fc0a6}
.lm-dairy .chip rect{fill:color-mix(in srgb,var(--lm-acc) 18%,transparent);stroke:var(--lm-acc)}
.lm-dairy .chipt{font:600 15px "Manrope",sans-serif;fill:var(--lm-ink)}
.lm-dairy .arw{stroke:var(--lm-acc);stroke-width:2.5;marker-end:none;stroke-dasharray:8 7}
/* cocoa */
.lm-cocoa .trk{fill:color-mix(in srgb,var(--lm-muted) 14%,transparent)}
.lm-cocoa .bar{fill:var(--lm-muted);opacity:.5}
.lm-cocoa .gain{fill:var(--lm-acc)}
.lm-cocoa .axl{font:500 15px "DM Sans",Arial,sans-serif;fill:var(--lm-ink)}
/* extracts */
.lm-extr .cand circle{fill:none;stroke:var(--lm-muted);stroke-width:2}
.lm-extr .cand.keep circle{stroke:var(--lm-acc);fill:color-mix(in srgb,var(--lm-acc) 22%,transparent)}
.lm-extr .srcl{font:500 11.5px ui-monospace,Menlo,monospace;letter-spacing:.04em;fill:var(--lm-muted);text-transform:uppercase}
.lm-extr .sieve{fill:none;stroke:var(--lm-line);stroke-width:2}
.lm-extr .vial{fill:none;stroke:var(--lm-acc2);stroke-width:2.4}
.lm--dark.lm-extr .vial{stroke:var(--lm-ink)}
.lm-extr .vfill{fill:var(--lm-acc);opacity:.85}

/* ---------- STORY ANIMATIONS (batch 3) ---------- */
.lm-narrow svg{max-width:560px;margin-inline:auto}
.lm-fb .nd rect,.lm-rt .rs rect,.lm-rt .rc rect{fill:var(--lm-soft);stroke:var(--lm-line);stroke-width:1.6;transition:fill .3s,stroke .3s}
.lm-fb .nd.on rect,.lm-rt .rs.on rect,.lm-rt .rc.on rect{fill:color-mix(in srgb,var(--lm-acc) 22%,transparent);stroke:var(--lm-acc);stroke-width:2.4}
.lm-fb .nl{font:600 18px "Manrope",sans-serif;fill:var(--lm-ink)}
.lm-fb .nn{font:600 11px ui-monospace,Menlo,monospace;letter-spacing:.14em;fill:var(--lm-muted)}
.lm-fb .nd.on .nn{fill:var(--lm-acc)}
.lm-fb .eg{fill:none;stroke:var(--lm-line);stroke-width:2}
.lm-fb .eg.ret{stroke:var(--lm-acc2);stroke-dasharray:6 6;opacity:.8}
.lm-fb .lit{fill:none;stroke:var(--lm-acc);stroke-width:3.4;stroke-linecap:round}
.lm-fb .ah{fill:var(--lm-line)}.lm-fb .ah.ret{fill:var(--lm-acc2)}.lm-fb .ah.lit{fill:var(--lm-acc);stroke:none}
.lm-fb .tok,.lm-rt .tok{fill:var(--lm-acc)}
/* sensory panel */
.lm-sp .grid{fill:none;stroke:var(--lm-line);stroke-width:1.2}
.lm-sp .axis{stroke:var(--lm-line);stroke-width:1.2}
.lm-sp .axn{font:600 16px "Manrope",sans-serif;fill:var(--lm-ink)}
.lm-sp .spread{fill:color-mix(in srgb,var(--lm-acc2) 34%,transparent);stroke:none}
.lm-sp .cons{fill:var(--lm-acc);stroke:var(--lm-acc);stroke-width:2.6;stroke-linejoin:round}
.lm-sp .cons.lg{stroke-width:3}
.lm-sp .ev{fill:var(--lm-acc2);fill-opacity:.85;stroke:var(--lm-bg);stroke-width:1.2}
/* problem router */
.lm-rt .rbase{fill:none;stroke:color-mix(in srgb,var(--lm-muted) 50%,transparent);stroke-width:1.6;transition:opacity .3s}
.lm-rt .rbase.hot{opacity:.3}
.lm-rt .rlit{fill:none;stroke:var(--lm-acc);stroke-width:3.4;stroke-linecap:round}
.lm-rt .rq{font:600 16px "Manrope",sans-serif;fill:var(--lm-ink)}
.lm-rt .rs{cursor:pointer;outline:none}
.lm-rt .rs:hover rect{stroke:var(--lm-acc)}
.lm-rt .rs:focus-visible rect{stroke:var(--lm-acc);stroke-width:3}
/* mango wheel */
.lm-mw .sg{stroke:var(--lm-bg);stroke-width:1.5;fill-opacity:.14;transition:fill-opacity .45s}
.lm-mw .sg.a{fill:var(--lm-acc)}.lm-mw .sg.b{fill:var(--lm-acc2)}
.lm-mw .sl{font:600 16px "Manrope",sans-serif;fill:var(--lm-muted);transition:fill .3s}
.lm-mw .sl.on{fill:var(--lm-ink)}
.lm-mw .mwc{font:500 26px "Manrope",sans-serif;letter-spacing:-.02em;fill:var(--lm-ink)}
.lm-mw .mws{font:600 11px ui-monospace,Menlo,monospace;letter-spacing:.12em;fill:var(--lm-acc)}
/* base variables */
.lm-bv .vn{font:600 16px "Manrope",sans-serif;fill:var(--lm-ink)}
.lm-bv .vr{font:600 12px ui-monospace,Menlo,monospace;letter-spacing:.06em;fill:var(--lm-acc);text-transform:uppercase}
.lm-bv .trk{stroke:var(--lm-line);stroke-width:4;stroke-linecap:round}
.lm-bv .tfill{stroke:var(--lm-acc);stroke-width:4;stroke-linecap:round;opacity:.6}
.lm-bv .gh{fill:none;stroke:var(--lm-muted);stroke-width:1.4;opacity:.6}
.lm-bv .kn{fill:var(--lm-acc);stroke:var(--lm-bg);stroke-width:2.5}
.lm-bv .card{fill:var(--lm-soft);stroke:var(--lm-line);stroke-width:1.6}
.lm-bv .pn{font:500 25px "Manrope",sans-serif;letter-spacing:-.03em;fill:var(--lm-acc)}
.lm-bv .ps{font:500 14px "DM Sans",Arial,sans-serif;fill:var(--lm-muted)}
.lm-bv .li circle,.lm-bv .pp{fill:none;stroke:var(--lm-muted);stroke-width:1.6}
.lm-bv .li.on circle,.lm-bv .pp.on{fill:var(--lm-acc);stroke:var(--lm-acc)}
.lm-bv .lt{font:500 15px "DM Sans",Arial,sans-serif;fill:var(--lm-muted)}
.lm-bv .li.on .lt{fill:var(--lm-ink);font-weight:600}
@media (max-width:760px){.lm-bv .pn{font-size:24px}}
.lm-narrow.lm-mw .mwc{font-size:20px}
