@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ls-ink: #121212;--ls-ink-2: #1c1c1c;--ls-primary: #027AFF;--ls-primary-hover: #1268FF;--ls-primary-active: #015FAF;--ls-primary-soft: #E6F2FF;--ls-accent: #027AFF;--ls-accent-2: #5BC7FF;--ls-brand-blue: #027AFF;--ls-brand-cyan: #5BC7FF;--ls-brand-gradient: linear-gradient(108deg, #3370FF 0%, #4EB2FD 100%);--ls-banner-wash: linear-gradient(120deg, #F5F9FF 0%, #EAF2FD 100%);--ls-blue-wash: linear-gradient(180deg, #F5F9FF 0%, #FFFFFF 100%);--ls-bg: #F6F8FA;--ls-surface: #FFFFFF;--ls-surface-2: #F2F5F9;--ls-border: rgba(18,18,18,.1);--ls-border-strong: rgba(18,18,18,.16);--ls-text: #121212;--ls-text-2: rgba(18,18,18,.6);--ls-text-3: rgba(18,18,18,.4);--ls-on-ink: #FFFFFF;--ls-on-ink-2: rgba(255,255,255,.64);--ls-success: #0FB776;--ls-warning: #F5A623;--ls-danger: #F54A45;--ls-r-sm: 6px;--ls-r-md: 8px;--ls-r-lg: 12px;--ls-r-xl: 16px;--ls-shadow-sm: 0 0 12px 0 rgba(57,70,85,.05);--ls-shadow-md: 0 0 15px 0 rgba(57,70,85,.08);--ls-shadow-lg: 0 0 20px 0 rgba(57,70,85,.12);--ls-shadow-glow: 0 0 20px 0 rgba(15,98,254,.15);--ls-font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--ls-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--ls-font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--ls-ease: cubic-bezier(.25, .1, .25, 1);--ls-ease-out: cubic-bezier(.16, 1, .3, 1)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--ls-font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--ls-text);background:var(--ls-bg);font-feature-settings:"cv11","ss01"}a{text-decoration:none;color:inherit}.ls-mono,.ant-statistic-content-value,.ant-statistic-content{font-family:var(--ls-font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}h1,h2,h3,h4,h5{font-family:var(--ls-font-display)}.ls-hero-ink{position:relative;background:radial-gradient(ellipse 70% 55% at 80% 0%,rgba(91,199,255,.18) 0%,transparent 58%),radial-gradient(ellipse 56% 48% at 8% 100%,rgba(2,122,255,.08) 0%,transparent 55%),#fff;color:var(--ls-text);overflow:hidden;isolation:isolate}.ls-hero-ink:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(2,122,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(2,122,255,.05) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 30%,#000 25%,transparent 72%);mask-image:radial-gradient(ellipse 90% 80% at 50% 30%,#000 25%,transparent 72%);z-index:-1}.ls-hero-ink:after{content:"";position:absolute;width:460px;height:460px;right:-120px;top:-160px;background:radial-gradient(circle,rgba(2,122,255,.1) 0%,transparent 70%);filter:blur(8px);z-index:-1;animation:ls-float 14s var(--ls-ease) infinite alternate}@keyframes ls-float{0%{transform:translate(0) scale(1)}to{transform:translate(-40px,50px) scale(1.12)}}.ls-dotgrid{background-image:radial-gradient(rgba(2,122,255,.08) 1px,transparent 1px);background-size:22px 22px}.ls-surface-soft{background:linear-gradient(180deg,var(--ls-bg) 0%,var(--ls-surface) 100%)}.ls-gradient-text{background:linear-gradient(100deg,#3370ff,#4eb2fd 60%,#5bc7ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.ls-brand-text{background:var(--ls-brand-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.ls-banner-light{position:relative;background:var(--ls-banner-wash);overflow:hidden;isolation:isolate}.ls-banner-light:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 50% 60% at 90% 15%,rgba(91,199,255,.22) 0%,transparent 62%),radial-gradient(ellipse 46% 54% at 10% 92%,rgba(19,104,254,.12) 0%,transparent 58%)}.ls-banner-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:url(/banner-hero.svg) center / cover no-repeat;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 40%,#000 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 40%,#000 100%);opacity:.9;pointer-events:none}.ls-wash-dot{position:relative;background:linear-gradient(120deg,#eef3fb,#e2edfb);overflow:hidden;isolation:isolate}.ls-wash-dot:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 60% 70% at 90% 10%,rgba(91,199,255,.2) 0%,transparent 62%),radial-gradient(rgba(19,104,254,.1) 1px,transparent 1px);background-size:auto,22px 22px}.ls-panel-brand{position:relative;background:#fff;border:1px solid var(--ls-border);overflow:hidden;isolation:isolate}.ls-panel-brand:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--ls-brand-gradient)}.ls-panel-brand:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 40% 80% at 100% 0%,rgba(91,199,255,.12) 0%,transparent 60%)}.ls-underline-grad{display:block;width:28px;height:3px;margin-top:8px;background:var(--ls-brand-gradient);border-radius:2px}.ls-kicker{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-family:var(--ls-font-mono)}.ls-reveal{opacity:0;transform:translateY(18px);animation:ls-rise .7s var(--ls-ease-out) forwards}@keyframes ls-rise{to{opacity:1;transform:translateY(0)}}.ls-lift{transition:transform .28s var(--ls-ease-out),box-shadow .28s var(--ls-ease-out)}.ls-lift:hover{transform:translateY(-4px);box-shadow:var(--ls-shadow-lg)}.ls-products-bento{display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}.ls-products-bento>.ls-product-featured{grid-column:span 2}@media(max-width:768px){.ls-products-bento{grid-template-columns:1fr 1fr}.ls-products-bento>.ls-product-featured{grid-column:span 2}}@media(max-width:560px){.ls-products-bento{grid-template-columns:1fr}.ls-products-bento>.ls-product-featured{grid-column:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.ls-hero-ink:after{animation:none}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--ls-border-strong);border-radius:8px;border:2px solid var(--ls-bg)}::-webkit-scrollbar-thumb:hover{background:#b6c4d6}@media(max-width:860px){.ls-auth-brand{display:none!important}}.ant-card.ant-card-hoverable{transition:box-shadow .28s var(--ls-ease-out)}.ant-card.ant-card-hoverable:hover{box-shadow:var(--ls-shadow-md)}.ant-btn-primary{background:var(--ls-primary)}.ant-btn.ls-cta{background:linear-gradient(90deg,#5bc7ff,#1368fe,#5996fe);border:none;color:#fff;box-shadow:0 6px 18px #0f62fe38;transition:box-shadow .2s var(--ls-ease-out),transform .12s var(--ls-ease)}.ant-btn.ls-cta:hover{background:linear-gradient(90deg,#5bc7ff,#1368fe,#5996fe);box-shadow:inset 0 0 0 100px #1212121a,0 6px 18px #0f62fe38;color:#fff}.ant-btn.ls-cta:active{color:#fff}@media(prefers-reduced-motion:reduce){.ant-btn.ls-cta{transition:box-shadow .2s var(--ls-ease-out)}}.ant-input-affix-wrapper,.ant-input{border-radius:var(--ls-r-sm)}.ant-statistic-title{font-size:13px;color:var(--ls-text-2)}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}:where(a,button,[role=button],[tabindex]):focus-visible{outline:none;box-shadow:0 0 0 3px #027aff52;border-radius:var(--ls-r-sm)}.ant-btn:not(:disabled):active{transform:translateY(1px) scale(.985)}.ant-btn{transition:transform .12s var(--ls-ease),background .2s var(--ls-ease),box-shadow .2s var(--ls-ease)}.ls-skip-link{position:fixed;top:8px;left:8px;z-index:2000;background:var(--ls-primary);color:#fff;padding:10px 18px;border-radius:var(--ls-r-sm);font-size:14px;font-weight:600;transform:translateY(-160%);transition:transform .2s var(--ls-ease-out)}.ls-skip-link:focus{transform:translateY(0)}.ls-navlink{position:relative;cursor:pointer;color:var(--ls-text);font-weight:500;transition:color .2s var(--ls-ease)}.ls-navlink:hover{color:var(--ls-primary)}.ls-desktop-nav{display:flex}.ls-hamburger,.ls-mobile-drawer{display:none}@media(max-width:880px){.ls-desktop-nav{display:none}.ls-hamburger{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--ls-r-sm);border:1px solid var(--ls-border);background:var(--ls-surface);cursor:pointer;color:var(--ls-text);font-size:20px}.ls-header-secondary{display:none!important}}.ls-mobile-drawer.open{display:block;position:fixed;top:56px;left:0;right:0;bottom:0;background:var(--ls-surface);z-index:1100;overflow-y:auto;padding:12px 16px 32px;animation:ls-rise .28s var(--ls-ease-out)}.ls-mobile-item{display:flex;align-items:center;justify-content:space-between;padding:15px 12px;font-size:16px;font-weight:500;color:var(--ls-text);border-bottom:1px solid var(--ls-border);cursor:pointer}.ls-mobile-item:active{background:var(--ls-surface-2)}.ls-spotlight{position:relative}.ls-spotlight:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;pointer-events:none;opacity:0;background:linear-gradient(135deg,#027aff4d,#5bc7ff2e);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;transition:opacity .3s var(--ls-ease)}.ls-spotlight:hover:before{opacity:1}.ls-grain:after{content:none}.ls-tray-panel{background:var(--ls-surface);border-radius:var(--ls-r-xl);box-shadow:var(--ls-shadow-md),inset 0 1px #fffc;overflow:hidden}.ls-console-sider>.ant-layout-sider-children{display:flex;flex-direction:column;height:100%}.ant-table-wrapper .ant-table-thead>tr>th{font-weight:600;letter-spacing:.01em}.ant-table-wrapper .ant-table-tbody>tr>td{transition:background .18s var(--ls-ease)}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background:var(--ls-primary-soft)!important}.ant-table-wrapper .ant-table-cell a{color:var(--ls-primary);transition:color .18s var(--ls-ease)}.ant-table-wrapper .ant-table-cell a:hover{color:var(--ls-primary-hover)}.ant-pagination .ant-pagination-item-active{background:var(--ls-primary);border-color:var(--ls-primary)}.ant-pagination .ant-pagination-item-active a{color:#fff!important}.ant-layout-sider .ant-menu-inline .ant-menu-item,.ant-layout-sider .ant-menu-inline .ant-menu-submenu-title{border-radius:var(--ls-r-sm);margin-inline:8px;width:calc(100% - 16px)}.ant-layout-sider .ant-menu-item-selected{font-weight:600;background:#027aff0f;color:var(--ls-primary)}.ant-form-item-explain-error{font-size:12.5px}.ant-input:hover,.ant-input-affix-wrapper:hover{border-color:var(--ls-primary-hover)}.ls-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:56px 24px}.ls-empty-icon{width:88px;height:88px;border-radius:22px;margin-bottom:20px;display:flex;align-items:center;justify-content:center;font-size:38px;color:var(--ls-primary);background:var(--ls-primary-soft);box-shadow:inset 0 0 0 1px #027aff1f}.ls-empty-title{font-size:16px;font-weight:600;color:var(--ls-text);margin-bottom:8px}.ls-empty-desc{font-size:13.5px;color:var(--ls-text-2);line-height:1.6;max-width:360px;margin-bottom:22px;text-wrap:pretty}.ls-skeleton{position:relative;overflow:hidden;background:var(--ls-surface-2);border-radius:var(--ls-r-md)}.ls-skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:ls-shimmer 1.4s var(--ls-ease) infinite}@keyframes ls-shimmer{to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.ls-skeleton:after{animation:none}}@keyframes ls-nav-dropdown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.ls-nav-dropdown{animation:ls-nav-dropdown .26s var(--ls-ease-out) both}
