.viz.scene{background:#f3f5f3;border-radius:8px}.viz .ln{fill:none;stroke:var(--teal-bright);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ph{transform-box:fill-box}@media (prefers-reduced-motion: no-preference){.ph{opacity:0}.tile:hover .ph{opacity:1;transition:opacity .3s ease .55s}.tile:hover .ph-slide{animation:phslide 1.7s ease .7s infinite}.tile:hover .ph-blink{animation:phblink 1.2s ease .7s infinite}.tile:hover .ph-drip{animation:phdrip 1.8s ease .7s infinite}.tile:hover .ph-osc{animation:phosc 1.8s ease-in-out .7s infinite}.tile:hover .ph-shl{animation:phshl 1.8s ease-in-out .7s infinite}.tile:hover .ph-shr{animation:phshr 1.8s ease-in-out .7s infinite}.tile:hover .ph-wave{animation:phwave 1.7s ease-out .7s infinite}}@keyframes phslide{0%{transform:translate(0)}55%{transform:translate(5px,3px)}to{transform:translate(0)}}@keyframes phblink{0%,to{opacity:.12}50%{opacity:1}}@keyframes phdrip{0%{transform:translateY(0);opacity:1}80%{opacity:1}to{transform:translateY(9px);opacity:0}}@keyframes phosc{0%,to{transform:translate(-2.5px)}50%{transform:translate(2.5px)}}@keyframes phshl{0%,to{transform:translate(0)}50%{transform:translate(4px)}}@keyframes phshr{0%,to{transform:translate(0)}50%{transform:translate(-4px)}}@keyframes phwave{0%{transform:scale(1);opacity:.85}70%{transform:scale(2.6);opacity:0}to{opacity:0}}.matrix{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.tile{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 22px 18px;transition:.2s;display:flex;flex-direction:column;min-height:214px;position:relative;overflow:hidden;box-shadow:0 2px #264a520a}.tile:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--taupe);transform:scaleY(0);transform-origin:bottom;transition:transform .25s ease}.tile:hover{border-color:var(--teal-bright);transform:translateY(-5px);box-shadow:0 26px 48px -28px #1a3a428c}.tile:hover:before{transform:scaleY(1)}.tile h3{font-size:19px;margin-bottom:4px;color:var(--teal)}.tile .desc{font-size:13.5px;color:var(--muted);line-height:1.45}.tile .viz{margin:14px 0 12px;height:54px;width:100%;background:#f3f5f3;border-radius:8px}.tile .more{margin-top:auto;font-size:13px;font-weight:700;color:var(--teal);display:inline-flex;align-items:center;gap:6px;transition:gap .18s}.tile:hover .more{gap:11px}.tile .viz path.sig{fill:none;stroke:var(--teal-bright);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.tile .viz .lim{stroke:var(--taupe-deep);stroke-width:1.2;stroke-dasharray:4 5;opacity:.75}.tile .viz .dot{fill:var(--taupe-deep)}@media (max-width:860px){.matrix{grid-template-columns:1fr 1fr}}@media (max-width:520px){.matrix{grid-template-columns:1fr}}.tile.tool{background:#e7efec;border-color:var(--taupe)}.tile.tool:before{transform:scaleY(1);background:var(--teal-bright)}.tile.tool .viz{background:transparent}.badge{display:inline-block;align-self:flex-start;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#fff;background:var(--taupe-deep);padding:4px 10px;border-radius:20px;margin-bottom:12px}.tile.tool .gf-r{transform:scaleX(0);transform-origin:left center;transform-box:fill-box;transition:transform .5s ease}.tile.tool:hover .gf-r.r1{transform:scaleX(1);transition-delay:.04s}.tile.tool:hover .gf-r.r2{transform:scaleX(.82);transition-delay:.15s}.tile.tool:hover .gf-r.r3{transform:scaleX(.62);transition-delay:.26s}.btn[data-astro-cid-6dt247gv]{font-family:var(--body);font-weight:600;font-size:14.5px;padding:12px 22px;border-radius:40px;border:1.5px solid transparent;cursor:pointer;display:inline-block;transition:.16s}.btn-ghost[data-astro-cid-6dt247gv]{border-color:var(--teal);color:var(--teal);background:transparent}.btn-ghost[data-astro-cid-6dt247gv]:hover{background:var(--teal);color:#fff}a[data-astro-cid-6dt247gv]:focus-visible,button[data-astro-cid-6dt247gv]:focus-visible{outline:2px solid var(--teal);outline-offset:3px}.crumb[data-astro-cid-6dt247gv]{padding:26px 0 0;font-size:13px;color:var(--muted)}.crumb[data-astro-cid-6dt247gv] a[data-astro-cid-6dt247gv]:hover{color:var(--teal)}.crumb[data-astro-cid-6dt247gv] span[data-astro-cid-6dt247gv]{color:var(--taupe-deep)}section[data-astro-cid-6dt247gv].blk{padding:40px 0 96px}.sol-head[data-astro-cid-6dt247gv]{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px;flex-wrap:wrap}.sol-head[data-astro-cid-6dt247gv] h2[data-astro-cid-6dt247gv]{font-size:clamp(28px,3.4vw,44px);margin-top:12px;max-width:16ch}
