:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans)}.ek-home .ek-nav-actions a{display:inline-flex;align-items:center}.ek-home .ek-theme{font-size:21px}.ek-home .ek-plan-price{font-size:22px}.ek-guide{padding-block:64px 80px;max-width:900px}.ek-guide h1{font-size:clamp(30px,5vw,46px);line-height:1.25;letter-spacing:-1px;margin:18px 0 24px}.ek-guide h2{font-size:24px;line-height:1.4;margin-top:42px}.ek-guide h3{font-size:18px;margin-top:26px}.ek-guide p,.ek-guide li{font-size:16px;line-height:1.9;color:var(--ek-muted)}.ek-guide a,.ek-home .ek-plan-note a{color:var(--ek-brand);text-decoration:underline;text-underline-offset:3px}.ek-guide .ek-lede{font-size:19px;color:var(--ek-ink)}.ek-guide pre{background:var(--ek-soft);border:1px solid var(--ek-line);padding:20px;border-radius:14px;overflow-x:auto;line-height:1.7;font-size:13px}.ek-guide code{overflow-wrap:anywhere}.ek-guide pre code{overflow-wrap:normal}.ek-guide table{border-collapse:collapse;width:100%;font-size:14px}.ek-guide td,.ek-guide th{border:1px solid var(--ek-line);padding:12px;text-align:left;line-height:1.7}.ek-guide .table-wrap{overflow-x:auto}.ek-guide .ek-answer{padding:20px;border:1px solid var(--ek-line);border-radius:14px;margin:18px 0}.ek-guide .ek-answer h2{margin-top:0;font-size:20px}.ek-guide nav{line-height:2}.ek-guide .ek-related{border-top:1px solid var(--ek-line);margin-top:48px;padding-top:20px}@media(max-width:600px){.ek-guide{padding-block:28px 50px}.ek-guide pre{padding:14px}.ek-guide .ek-answer{padding:16px}.ek-home .ek-nav-actions{gap:8px}.ek-home .ek-nav-actions .ek-login{font-size:13px}}
.ek-home .ek-public-plans article>a{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--ek-line);padding-top:12px;font-size:12px;color:var(--ek-brand)}.ek-home .ek-nav-actions .ek-small{display:inline-flex}.ek-guide .ek-nav-actions{flex-shrink:0}
/* Three source paths merge into one gateway; all motion is slow and optional. */
.ek-protocol-demo .ek-routing{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.ek-protocol-demo .ek-route-chip{justify-self:center;min-width:108px;padding:11px 18px;font-size:12px;transition:background .2s,border-color .2s,color .2s;box-shadow:none}
.ek-protocol-demo .ek-route-chip:disabled{opacity:1;cursor:default}
.ek-protocol-demo .ek-route-chip.is-active{background:color-mix(in srgb,var(--ek-brand) 5%,var(--ek-paper));border-color:color-mix(in srgb,var(--ek-brand) 45%,var(--ek-line));color:var(--ek-brand);box-shadow:none}
.ek-demo-lines{display:block;width:100%;height:90px;overflow:visible;color:var(--ek-brand)}
.ek-demo-wire{fill:none;stroke:currentColor;stroke-width:1;opacity:.12;vector-effect:non-scaling-stroke}
.ek-demo-trail{fill:none;stroke:currentColor;stroke-width:1.5;stroke-dasharray:16 84;stroke-linecap:round;opacity:0;vector-effect:non-scaling-stroke;transition:opacity .8s;animation:ek-signal-flow 3.8s linear infinite;animation-play-state:paused}
.ek-demo-packet{fill:currentColor;opacity:0;transition:opacity .8s;filter:drop-shadow(0 0 3px currentColor)}
.ek-demo-route.is-active .ek-demo-trail{opacity:.4}.ek-demo-route.is-active .ek-demo-packet{opacity:.85}.ek-protocol-demo.is-running .ek-demo-route.is-active .ek-demo-trail{animation-play-state:running}
.ek-protocol-demo{position:relative;isolation:isolate;animation:ek-gateway-float 9s ease-in-out infinite}
.ek-protocol-demo:before{content:"";position:absolute;z-index:-1;inset:18% 2% -3%;border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--ek-brand) 10%,transparent),transparent 70%);filter:blur(20px);animation:ek-gateway-halo 9s ease-in-out infinite;pointer-events:none}
.ek-protocol-demo .ek-console{transform:none;transition:box-shadow 1.6s,border-color 1.6s;animation:ek-card-breathe 7.6s ease-in-out infinite}
.ek-demo-junction{fill:var(--ek-brand);opacity:.65}.ek-demo-junction-ring{fill:var(--ek-paper);stroke:var(--ek-brand);stroke-width:1;opacity:.3;transform-box:fill-box;transform-origin:center;animation:ek-junction-breathe 3.8s ease-in-out infinite}
.ek-protocol-demo:not(.is-running),.ek-protocol-demo:not(.is-running):before,.ek-protocol-demo:not(.is-running) .ek-console,.ek-protocol-demo:not(.is-running) .ek-demo-junction-ring{animation-play-state:paused}
@keyframes ek-signal-flow{from{stroke-dashoffset:16}to{stroke-dashoffset:-84}}
@keyframes ek-gateway-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes ek-gateway-halo{0%,100%{opacity:.45;transform:scale(.97)}50%{opacity:.85;transform:scale(1.04)}}
@keyframes ek-card-breathe{0%,100%{box-shadow:0 24px 70px #38224a0c,0 3px 8px #38224a04}50%{box-shadow:0 28px 75px #6953dd15,0 4px 16px #6953dd09}}
@keyframes ek-junction-breathe{0%,100%{opacity:.25;transform:scale(1)}70%{opacity:.55;transform:scale(1.2)}}
.ek-demo-controls{display:flex;align-items:center;gap:10px}.ek-demo-controls button{width:22px;height:22px;padding:0;border:0;border-radius:5px;color:var(--ek-muted);background:transparent;line-height:1;font-size:13px;opacity:.7}.ek-demo-controls button:hover{background:var(--ek-soft);opacity:1}
.ek-demo-controls button[hidden]{display:none}
.ek-protocol-demo .ek-demo-code{margin:0;height:auto;min-height:236px;max-height:none;padding:26px;overflow:visible;white-space:pre-wrap;overflow-wrap:anywhere;tab-size:4;box-sizing:border-box;font:12px/1.9 ui-monospace,SFMono-Regular,Consolas,monospace}
.ek-demo-code code{display:block;font:inherit;white-space:inherit;overflow-wrap:inherit}.ek-protocol-demo .ek-console-bottom{gap:10px}.ek-protocol-demo #demo-endpoint{flex:1;min-width:0;font-size:10px;line-height:1.6}
@media(max-width:600px){.ek-protocol-demo .ek-route-chip{min-width:88px;padding:10px 12px;font-size:11px}.ek-demo-lines{height:72px}.ek-protocol-demo .ek-demo-code{min-height:224px;padding:22px 18px;font-size:10.5px;line-height:1.9}.ek-protocol-demo #demo-endpoint{font-size:9px}.ek-demo-controls{gap:6px}}
@media(prefers-reduced-motion:reduce){.ek-protocol-demo,.ek-protocol-demo:before,.ek-protocol-demo .ek-console,.ek-demo-junction-ring,.ek-demo-trail{animation:none!important}.ek-protocol-demo .ek-route-chip,.ek-demo-trail,.ek-demo-packet{transition:none}}
