/* CATS: independently addressable modules, never an animated raster. */
.cats-section{padding-block:90px 80px;border-top:1px solid var(--line)}
.cats-heading{max-width:800px;margin-bottom:44px}.cats-kicker{color:var(--accent);font-size:13px;margin:0 0 20px;font-weight:600}
.cats-heading h2{font:500 clamp(38px,5.4vw,76px)/1.08 var(--font-body);letter-spacing:-.05em;margin:0 0 24px}.cats-heading h2 span{color:var(--fg-muted)}.cats-heading>p:last-child{max-width:630px;color:var(--fg-muted);font-size:16px;line-height:1.8}
.cats-figure{margin:0}.cats-diagram{isolation:isolate;position:relative;display:grid;grid-template-columns:1fr 1.3fr .8fr 1.3fr 1fr;grid-template-rows:auto 74px 270px 136px;gap:26px 22px;padding:30px 26px 28px;border:1px solid var(--line);border-radius:12px;overflow:hidden;color:var(--fg)}
.cats-world{position:absolute;inset:0 50% 0 0;z-index:-2;background:#e9edfb}.cats-on{inset:0 0 0 50%;background:#e7f3ed;border-left:1px dashed #b4c5c6}.cats-world-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding-bottom:8px}.cats-off-label{grid-area:1/1/2/3;color:#304db0}.cats-on-label{grid-area:1/4/2/6;color:#27645c;text-align:right}
.cats-wires{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:visible;color:var(--accent)}.cats-wires>path{fill:none;stroke:currentColor;stroke-width:1.5;marker-end:url(#cats-arrow);opacity:.65}.cats-wires>[data-cats-wire=api]{marker-start:url(#cats-arrow)}.cats-transaction{opacity:0;fill:var(--accent);stroke:var(--demo-bg);stroke-width:2}
.cats-providers{grid-area:3/1;align-self:center}.cats-chains{grid-area:3/5;align-self:center}.cats-small-title{font-size:11px;font-weight:600;margin:0 0 14px;line-height:1.6}.cats-provider-list{display:grid;gap:7px}.cats-provider-list span{border:1px solid #c4cde5;background:#ffffffb8;border-radius:5px;padding:10px 12px;font-size:12px;font-weight:500}.cats-chains .cats-provider-list span{border-color:#b9d3cc}.cats-micro{font-size:10px;line-height:1.7;color:var(--fg-muted);margin:12px 0 0}
.cats-wallet{grid-area:2/4;display:flex;gap:10px;align-items:center;background:var(--demo-bg);padding:12px;border:1px solid #b9d3cc;border-radius:7px;align-self:start}.cats-wallet-mark{display:grid;place-items:center;width:30px;height:30px;font-size:12px;border:1px solid var(--line);border-radius:5px}.cats-wallet strong{display:block;font-size:13px;font-weight:600}.cats-wallet div>span{display:block;font-size:10px;color:var(--fg-muted);margin-top:5px}
.cats-module{position:relative;border:1px solid #aebee9;border-radius:9px;background:var(--demo-bg);padding:23px 16px 0;text-align:center;display:flex;flex-direction:column;box-shadow:0 8px 24px #203b6610}.cats-tee{grid-area:3/2}.cats-contract{grid-area:3/4;border-color:#a9cdc3}.cats-module-index{position:absolute;top:12px;left:12px;color:var(--fg-dim);font:10px var(--font-mono)}.cats-module h3{font-size:24px;line-height:1.25;letter-spacing:-.03em;font-weight:600;margin:11px 0 5px}.cats-contract h3{font-size:20px}.cats-module-subtitle{color:var(--fg-muted);font-size:10px;margin:0}.cats-key{margin:auto;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 0}.cats-key-symbol{font:10px var(--font-mono);color:var(--accent);width:40px;height:40px;background:var(--accent-tint);border-radius:50%;display:grid;place-items:center}.cats-key strong{font-size:13px}.cats-key>span:last-child{font-size:10px;color:var(--fg-muted)}.cats-module-footer{font-size:11px;padding:16px 0;border-top:1px solid var(--line);margin:0}.cats-contract-code{margin:auto;font:48px var(--font-mono);color:#307064;letter-spacing:4px}.cats-contract-code span{font-size:26px;vertical-align:middle;letter-spacing:0}.cats-bridge{grid-area:3/3;align-self:center;text-align:center;padding-bottom:60px}.cats-bridge>span{font-size:11px;line-height:1.5;font-weight:600;display:block;color:var(--accent)}.cats-bridge small{display:block;font-size:9px;line-height:1.6;color:var(--fg-muted);margin-top:8px}
.cats-token{align-self:end;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center}.cats-ai-token{grid-area:4/2}.cats-crypto-token{grid-area:4/4}.cats-token-disc{width:60px;height:40px;display:grid;place-items:center;background:#3155c2;color:white;border-radius:50%;font-size:17px;font-weight:600;box-shadow:0 4px 0 #e9edfb,0 8px 0 #3155c2,0 12px 0 #e9edfb,0 16px 0 #3155c2;margin-bottom:19px}.cats-crypto-token .cats-token-disc{background:#367b70;box-shadow:0 4px 0 #e7f3ed,0 8px 0 #367b70,0 12px 0 #e7f3ed,0 16px 0 #367b70}.cats-token strong{font-size:13px}.cats-token>span:last-child{font-size:11px;color:var(--fg-muted)}.cats-token-link{grid-area:4/3;align-self:end;text-align:center;padding-bottom:20px}.cats-token-link>span{font-size:30px;line-height:1;color:var(--accent)}.cats-token-link p{font-size:10px;line-height:1.6;margin:10px 0 0}
.cats-figure figcaption{display:grid;gap:12px;padding:28px 0 24px;border-bottom:1px solid var(--line)}.cats-figure figcaption strong{font-size:19px;line-height:1.5;font-weight:500;letter-spacing:-.02em}.cats-figure figcaption>span{max-width:800px;font-size:13px;line-height:1.8;color:var(--fg-muted)}.cats-footnote{display:flex;align-items:start;justify-content:space-between;gap:30px;margin-top:20px}.cats-footnote p{margin:0;color:var(--fg-dim);font-size:11px;line-height:1.8;max-width:740px}.cats-replay{min-height:44px;display:none;flex-shrink:0;border:0;border-bottom:1px solid var(--line);padding:7px 0 10px;background:transparent;color:var(--fg);font:12px var(--font-body);cursor:pointer}.cats-replay span{margin-left:12px;color:var(--accent)}.cats-replay:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.cats-motion .cats-replay{display:block}.cats-motion [data-cats-stage]{opacity:0;transform:translateY(12px);transition:opacity .65s ease,transform .65s ease}.cats-motion [data-cats-stage].cats-shown{opacity:1;transform:translateY(0)}
:root:not([data-theme=light]) .cats-off{background:#19243c}:root:not([data-theme=light]) .cats-on{background:#162c28;border-color:#34504c}:root:not([data-theme=light]) .cats-off-label{color:#b1c3ff}:root:not([data-theme=light]) .cats-on-label{color:#a3d6c8}:root:not([data-theme=light]) .cats-provider-list span{background:#1b2534;border-color:#394b69}:root:not([data-theme=light]) .cats-chains .cats-provider-list span{background:#1b302b;border-color:#3e6258}:root:not([data-theme=light]) .cats-contract-code{color:#a3d6c8}
@media(max-width:1000px) and (min-width:701px){.cats-diagram{padding:24px 18px;gap:24px 14px;grid-template-columns:1fr 1.25fr .7fr 1.25fr 1fr}.cats-module{padding:22px 10px 0}.cats-provider-list span{padding:10px 7px;font-size:11px}.cats-contract h3{font-size:17px}.cats-module h3{overflow-wrap:normal}.cats-wallet{padding:10px;gap:6px}.cats-wallet-mark{display:none}.cats-bridge>span{font-size:10px}}
@media(max-width:700px){.cats-section{padding-block:60px}.cats-heading{margin-bottom:28px}.cats-heading>p:last-child{font-size:14px}.cats-diagram{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto 72px 254px auto 146px auto;padding:22px 16px;gap:20px 24px}.cats-off-label{grid-area:1/1;font-size:9px;letter-spacing:.06em}.cats-on-label{grid-area:1/2;font-size:9px;letter-spacing:.06em}.cats-providers{grid-area:2/1/3/3;max-width:100%;background:var(--demo-bg);padding:14px;border-radius:6px}.cats-provider-list{display:flex;flex-wrap:wrap;gap:6px}.cats-provider-list span{padding:7px 9px;font-size:10px}.cats-small-title{margin-bottom:9px}.cats-micro{margin-top:8px}.cats-wallet{grid-area:3/2;padding:10px;gap:0;align-self:center}.cats-wallet-mark{display:none}.cats-wallet strong{font-size:12px}.cats-wallet div>span{font-size:9px;line-height:1.4}.cats-tee{grid-area:4/1}.cats-contract{grid-area:4/2}.cats-module{padding:22px 9px 0}.cats-module h3{font-size:22px}.cats-contract h3{font-size:18px}.cats-module-subtitle{font-size:9px;line-height:1.6}.cats-module-footer{font-size:10px}.cats-key strong{font-size:12px}.cats-chains{grid-area:5/1/6/3;background:var(--demo-bg);padding:14px;border-radius:6px}.cats-ai-token{grid-area:6/1;align-self:center}.cats-crypto-token{grid-area:6/2;align-self:center}.cats-token-link{grid-area:7/1/8/3;display:flex;align-items:center;justify-content:center;gap:14px;padding:0}.cats-token-link p{margin:0;font-size:11px}.cats-bridge{grid-area:3/1;align-self:center;padding:0;text-align:left}.cats-bridge>span{font-size:10px}.cats-bridge small{font-size:9px;margin-top:4px}.cats-footnote{display:block}.cats-replay{margin-top:18px}.cats-figure figcaption strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){.cats-section [data-cats-stage]{opacity:1!important;transform:none!important;transition:none!important}.cats-transaction{display:none}.cats-wires>path{stroke-dashoffset:0!important}.cats-replay{display:none!important}}

@media(max-width:700px){.cats-diagram:not(.cats-wired) .cats-wires{visibility:hidden}}

/* Keep the existing header within the narrowest supported viewport. */
@media(max-width:360px){body.landing nav.top{gap:8px;padding-inline:14px}body.landing nav.top .brand{gap:6px;font-size:14px}body.landing nav.top .brand img{width:24px;height:24px}}

@media(min-width:701px){.cats-bridge{position:relative;top:-22px}.cats-token-link>span{visibility:hidden}}

/* Three scroll-controlled acts; native sticky preserves wheel/touch navigation. */
.cats-motion .cats-scroll-track{position:relative;height:calc(100svh - 90px + var(--cats-run,210vh))}
.cats-motion .cats-pin{position:sticky;top:76px;min-height:calc(100svh - 90px);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px}
.cats-pin .cats-diagram{width:100%;box-sizing:border-box}
.cats-steps{display:none}
.cats-motion .cats-steps{display:flex;width:100%;justify-content:space-between;gap:12px;font:12px var(--font-mono);color:var(--fg-dim)}
.cats-steps span{padding:10px 0;border-bottom:2px solid transparent;transition:color .3s,border-color .3s}
.cats-steps .active{color:var(--accent);border-color:var(--accent)}
.cats-motion [data-cats-stage]{transform:translateY(48px) scale(.94);transition:opacity .45s,transform .65s cubic-bezier(.22,1,.36,1)}
.cats-motion .cats-providers,.cats-motion .cats-tee{transform:translateX(-70px) scale(.94)}
.cats-motion .cats-chains,.cats-motion .cats-contract{transform:translateX(70px) scale(.94)}
.cats-motion [data-cats-stage].cats-shown{transform:translate(0) scale(1)}
.cats-swapping .cats-token-disc{animation:cats-coin 2.4s ease-in-out infinite}
.cats-swapping .cats-crypto-token .cats-token-disc{animation-delay:-1.2s}
.cats-swapping .cats-token-link>span{visibility:visible;display:block;animation:cats-swap 1.8s ease-in-out infinite}
@keyframes cats-coin{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes cats-swap{0%{opacity:0;transform:translateX(15px)}35%,65%{opacity:1}100%{opacity:0;transform:translateX(-15px)}}
@media(max-width:700px){.cats-motion .cats-steps{font-size:9px;gap:7px}.cats-motion .cats-pin{gap:8px}.cats-pin .cats-diagram{flex-shrink:0}}
@media(prefers-reduced-motion:reduce){.cats-scroll-track{height:auto!important}.cats-pin{position:static!important;min-height:0!important}.cats-steps{display:none!important}.cats-token-disc,.cats-token-link>span{animation:none!important}}
.cats-wires>.cats-flow{opacity:0;stroke-width:3;stroke-dasharray:5 18;marker-end:none}
.cats-swapping .cats-wires>.cats-flow{opacity:1;animation:cats-flow 1.2s linear infinite}
@keyframes cats-flow{to{stroke-dashoffset:-46}}
@media(prefers-reduced-motion:reduce){.cats-wires>.cats-flow{display:none}}
/* The two existing worlds are the starting frame, not incoming actors. */
.cats-motion .cats-providers,.cats-motion .cats-chains{opacity:1;transform:none;transition:none}
/* Brand marks travel with their parent provider/chain, never as separate actors. */
.cats-provider-list>span{display:flex;align-items:center;gap:8px;min-width:0}
.cats-provider-list img{width:22px;height:22px;box-sizing:border-box;padding:3px;object-fit:contain;background:#fff;border-radius:4px;flex-shrink:0}
.cats-brand-more{width:22px;text-align:center;font-style:normal;font-size:18px;line-height:22px;flex-shrink:0}
.cats-chains .cats-provider-list{gap:5px}
.cats-chains .cats-provider-list>span{padding-block:5px}
@media(max-width:1000px) and (min-width:701px){.cats-provider-list>span{gap:5px}.cats-provider-list img{width:19px;height:19px;padding:2px}.cats-chains .cats-provider-list>span{font-size:10px}}
@media(max-width:700px){.cats-provider-list>span{gap:5px}.cats-provider-list img{width:20px;height:20px;padding:2px}.cats-chains .cats-provider-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.cats-chains .cats-provider-list>span{padding:6px 5px;font-size:10px;gap:4px}.cats-chains .cats-provider-list img{width:17px;height:17px}}
@media(max-width:360px){.cats-chains .cats-provider-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* A composed opening frame, then a clear handoff to the mechanism. */
.cats-intro{display:none}
.cats-motion .cats-intro{display:flex;grid-area:3/2/4/5;align-self:center;justify-self:center;flex-direction:column;align-items:center;text-align:center;max-width:420px;pointer-events:none;opacity:var(--cats-intro-opacity,1);transform:translateY(var(--cats-intro-y,0px)) scale(var(--cats-intro-scale,1));transform-origin:center;will-change:opacity,transform}
.cats-intro strong{font:500 clamp(64px,7vw,104px)/1 var(--font-body);letter-spacing:-.065em;color:var(--fg)}
.cats-intro>span{font-size:14px;letter-spacing:.015em;margin-top:17px;color:var(--accent);font-weight:500}
.cats-intro p{font-size:15px;line-height:1.7;max-width:280px;color:var(--fg-muted);margin:14px 0 0}
@media(max-width:700px){.cats-motion .cats-intro{grid-area:3/1/5/3;max-width:280px}.cats-intro strong{font-size:76px}.cats-intro>span{font-size:15px}.cats-intro p{font-size:15px;max-width:240px}}
@media(prefers-reduced-motion:reduce){.cats-intro{display:none!important}}

/* Read left to right: crypto funds become AI usage. */
.cats-on{inset:0 50% 0 0;border-left:0;border-right:1px dashed #b4c5c6}
.cats-off{inset:0 0 0 50%}
.cats-on-label{grid-area:1/1/2/3;text-align:left}
.cats-off-label{grid-area:1/4/2/6;text-align:right}
.cats-chains{grid-area:3/1}.cats-contract{grid-area:3/2}.cats-wallet{grid-area:2/2}
.cats-tee{grid-area:3/4}.cats-providers{grid-area:3/5}
.cats-crypto-token{grid-area:4/2}.cats-ai-token{grid-area:4/4}
.cats-motion .cats-contract{transform:translateX(-70px) scale(.94)}
.cats-motion .cats-tee{transform:translateX(70px) scale(.94)}
.cats-motion .cats-contract.cats-shown,.cats-motion .cats-tee.cats-shown{transform:none}
/* Scroll gathers the existing ecosystems before revealing their connection. */
.cats-motion .cats-provider-list>span{transform:translate(calc(var(--cats-fan-x,0px)*var(--cats-spread,1)),calc(var(--cats-fan-y,0px)*var(--cats-spread,1))) rotate(calc(var(--cats-fan-angle,0deg)*var(--cats-spread,1)));will-change:transform}
.cats-motion .cats-chains{transform:translateY(calc(-22px*var(--cats-spread,1)))}
.cats-motion .cats-providers{transform:translateY(calc(22px*var(--cats-spread,1)))}
@keyframes cats-swap{0%{opacity:0;transform:translateX(-15px)}35%,65%{opacity:1}100%{opacity:0;transform:translateX(15px)}}
@media(max-width:700px){
 .cats-on-label{grid-area:1/1;text-align:left}.cats-off-label{grid-area:1/2;text-align:right}
 .cats-chains{grid-area:2/1/3/3}.cats-providers{grid-area:5/1/6/3}
 .cats-contract{grid-area:4/1}.cats-tee{grid-area:4/2}.cats-wallet{grid-area:3/1}.cats-bridge{grid-area:3/2;text-align:right}
 .cats-crypto-token{grid-area:6/1}.cats-ai-token{grid-area:6/2}
 .cats-motion .cats-provider-list>span{transform:translateY(calc(var(--cats-fan-y,0px)*var(--cats-spread,1)*.45)) rotate(calc(var(--cats-fan-angle,0deg)*var(--cats-spread,1)*.6))}
 .cats-motion .cats-chains{transform:translateY(calc(-12px*var(--cats-spread,1)))}
 .cats-motion .cats-providers{transform:translateY(calc(12px*var(--cats-spread,1)))}
}
@media(prefers-reduced-motion:reduce){.cats-provider-list>span{transform:none!important}}
.cats-motion .cats-small-title{transform:translateY(calc(-30px*var(--cats-spread,1)))}
.cats-motion .cats-micro{transform:translateY(calc(30px*var(--cats-spread,1)))}
@media(max-width:700px){.cats-motion .cats-small-title{transform:translateY(calc(-12px*var(--cats-spread,1)))}.cats-motion .cats-micro{transform:translateY(calc(12px*var(--cats-spread,1)))}}

/* Keep CATS as the final heading, with a dedicated clear area above the story. */
.cats-motion .cats-diagram{padding-top:170px;padding-inline:64px;--cats-outward:36px}
.cats-motion .cats-intro{position:absolute;grid-area:auto;left:50%;top:30px;width:min(420px,90%);max-width:none;opacity:1;transform:translate(-50%,var(--cats-intro-y,0px)) scale(var(--cats-intro-scale,1));transform-origin:top center}
.cats-motion .cats-chains{transform:translate(calc(-1*var(--cats-outward)*var(--cats-spread,1)),calc(-22px*var(--cats-spread,1)))}
.cats-motion .cats-providers{transform:translate(calc(var(--cats-outward)*var(--cats-spread,1)),calc(22px*var(--cats-spread,1)))}
@media(min-width:701px) and (max-width:1000px){.cats-motion .cats-diagram{padding-inline:30px;--cats-outward:12px}}
@media(max-width:700px){.cats-motion .cats-diagram{padding-top:170px;padding-inline:20px;--cats-outward:10px}.cats-motion .cats-chains{transform:translate(calc(-1*var(--cats-outward)*var(--cats-spread,1)),calc(-12px*var(--cats-spread,1)))}.cats-motion .cats-providers{transform:translate(calc(var(--cats-outward)*var(--cats-spread,1)),calc(12px*var(--cats-spread,1)))}}
/* Preserve readable supporting copy as the wordmark settles into its header. */
.cats-motion .cats-intro>span{font-size:calc(14px / var(--cats-intro-scale,1))}
.cats-motion .cats-intro p{font-size:calc(15px / var(--cats-intro-scale,1));max-width:400px}
@media(max-width:700px){.cats-motion .cats-intro>span{font-size:calc(18px / var(--cats-intro-scale,1))}.cats-motion .cats-intro p{font-size:calc(18px / var(--cats-intro-scale,1));max-width:360px}}

/* Centered wordmark becomes a left-aligned title with one clear introduction. */
.cats-motion .cats-intro{left:0;top:30px;width:100%;max-width:none;height:130px;display:block;text-align:left;transform:none;opacity:1}
.cats-motion .cats-intro strong{position:absolute;left:0;top:0;width:max-content;transform:translate(var(--cats-title-x,0px),var(--cats-intro-y,0px)) scale(var(--cats-intro-scale,1));transform-origin:top left;will-change:transform}
.cats-motion .cats-intro p{position:absolute;left:var(--cats-copy-left,300px);right:64px;top:10px;max-width:660px;margin:0;font-size:18px;line-height:1.65;color:var(--fg-muted);opacity:var(--cats-copy-opacity,0);transform:translateX(var(--cats-copy-x,24px));will-change:opacity,transform}
@media(min-width:701px) and (max-width:1000px){.cats-motion .cats-intro p{right:30px;font-size:17px}}
@media(max-width:700px){.cats-motion .cats-intro p{right:20px;top:0;font-size:17px;line-height:1.6;max-width:none}}

/* Recognizable symbols, paired with text rather than unexplained initials. */
.cats-world-label{display:flex;align-items:center;gap:9px}
.cats-off-label{justify-content:flex-end}.cats-on-label{justify-content:flex-start}
.cats-world-label svg{width:22px;height:22px;flex-shrink:0}
.cats-wallet-mark svg{width:20px;height:20px}
@media(max-width:1000px){.cats-wallet-mark{display:grid;width:24px;height:24px;flex-shrink:0}.cats-wallet{gap:7px}.cats-wallet-mark svg{width:17px;height:17px}}
@media(max-width:700px){.cats-world-label{gap:6px}.cats-world-label svg{width:18px;height:18px}.cats-wallet{padding:9px 7px}.cats-wallet strong{font-size:11px}.cats-wallet div>span{font-size:8px}.cats-bridge{padding-left:4px}}

/* Center the wordmark and its explanation as one horizontal composition. */
.cats-motion .cats-intro p{right:auto;width:var(--cats-copy-width,660px)}

/* A quiet duration cue, shown only while this scroll story is in view. */
.cats-scroll-meter{display:none}
.cats-motion .cats-scroll-meter{display:block;position:fixed;right:15px;top:50%;width:2px;height:88px;transform:translateY(-50%);background:color-mix(in srgb,var(--fg) 12%,transparent);border-radius:3px;opacity:0;pointer-events:none;transition:opacity .3s}
.cats-motion .cats-scroll-meter.cats-meter-visible{opacity:1}
.cats-scroll-meter>span{display:block;width:100%;height:100%;border-radius:inherit;background:var(--fg-muted);opacity:.65;transform:scaleY(var(--cats-meter-progress,0));transform-origin:top}
@media(max-width:700px){.cats-motion .cats-scroll-meter{right:6px;height:64px}}
@media(prefers-reduced-motion:reduce){.cats-scroll-meter{display:none!important}}

/* Keep the progress cue attached to the tinted story frame. */
.cats-motion .cats-scroll-meter{position:absolute;right:9px;top:50%;width:3px;height:88px;z-index:2}
@media(max-width:700px){.cats-motion .cats-scroll-meter{right:5px;width:2px;height:64px}}
