@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Noto+Sans+SC:wght@400;500;600;700;900&display=swap";
body:has(.luban-releases){background:#f7f9f5;margin:0;animation:none;overflow:visible}body:has(.luban-releases):before{display:none}body:has(.luban-releases):after{display:none}.luban-releases,.luban-releases :where(:not(svg,svg *,img)),.luban-releases :before,.luban-releases :after{all:revert;box-sizing:border-box}.luban-releases{isolation:isolate;min-height:100vh;display:block;position:relative}.luban-releases svg{vertical-align:baseline;display:inline}.luban-releases img{vertical-align:baseline}.luban-releases svg,.luban-releases svg *,.luban-releases img{border:0}.luban-releases{color:#16282e;font-synthesis:none;text-rendering:optimizelegibility;--ink:#16282e;--muted:#718287;--line:#d9e3df;--blue:#3568e8;--lime:#d7f46e;--coral:#ff9862;--canvas:#f7f9f5;background:#f7f9f5;font-family:Manrope,Noto Sans SC,sans-serif}.luban-releases *{box-sizing:border-box}.luban-releases{scroll-behavior:smooth;min-width:320px;color:var(--ink);background:var(--canvas);margin:0}.luban-releases:before{content:"";z-index:-1;pointer-events:none;opacity:.45;background-image:radial-gradient(#c8d5d1 .8px,#0000 .8px);background-size:24px 24px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 65%);mask-image:linear-gradient(#000,#0000 65%)}.luban-releases a{color:inherit;text-decoration:none}.luban-releases button{font:inherit}.luban-releases .site-shell{overflow-x:clip}.luban-releases .site-header{z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffb8;border:1px solid #d9e3dfe6;border-radius:8px;align-items:center;width:min(1160px,100% - 48px);height:62px;margin:14px auto 0;padding:0 14px;display:flex;position:relative;box-shadow:0 8px 26px #273e3c0f}.luban-releases .brand-lockup{color:var(--ink);align-items:center;gap:9px;display:inline-flex}.luban-releases .brand-glyph{border-radius:7px;width:28px;height:28px;display:inline-flex;overflow:hidden;box-shadow:0 5px 12px #3568e833}.luban-releases .brand-glyph img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.luban-releases .brand-name{letter-spacing:0;font-size:21px;font-weight:800}.luban-releases .site-nav{color:#718186;align-items:center;gap:28px;margin-left:auto;margin-right:25px;font-size:11px;font-weight:700;display:flex}.luban-releases .site-nav a{transition:color .2s}.luban-releases .site-nav a:hover{color:var(--blue)}.luban-releases .header-download{border:1px solid var(--ink);color:#fff;background:var(--ink);border-radius:5px;align-items:center;gap:7px;padding:10px 13px;font-size:10px;font-weight:800;transition:transform .2s,background .2s;display:inline-flex}.luban-releases .header-download:hover{background:var(--blue);border-color:var(--blue);transform:translateY(-2px)}.luban-releases .download-section h1 em{color:var(--blue);background:linear-gradient(100deg, var(--blue), #7195f5 45%, var(--blue));-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;font-style:normal;animation:6s linear infinite luban-text-shine}.luban-releases .new-btn{cursor:pointer;border:0;border-radius:5px;align-items:center;gap:8px;padding:13px 16px;font-size:10px;font-weight:800;display:inline-flex}.luban-releases .new-btn-primary{color:#fff;background:var(--blue);position:relative;overflow:hidden;box-shadow:0 13px 25px #3568e838}.luban-releases .new-btn-primary:before{content:"";background:linear-gradient(105deg,#0000 20%,#ffffff6b 48%,#0000 75%);animation:3.2s ease-in-out infinite luban-shimmer;position:absolute;inset:0;transform:translate(-110%)}.luban-releases .new-btn-primary>*{z-index:1;position:relative}.luban-releases .new-btn-primary:hover{transform:translateY(-2px);box-shadow:0 17px 31px #3568e84d}.luban-releases .new-section{width:min(1100px,100% - 48px);margin:0 auto;padding:125px 0}.luban-releases .download-section h1{color:var(--ink);letter-spacing:0;margin:20px 0 0;font-size:clamp(40px,5.3vw,65px);line-height:1.02}.luban-releases .download-section{grid-template-columns:1fr 1fr;align-items:center;gap:75px;padding-bottom:140px;display:grid}.luban-releases .download-card{background:#fff;border:1px solid #0000;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px 20px;padding:23px;display:grid;box-shadow:0 0 0 1px #d4e1da,0 17px 35px #22393914}.luban-releases .download-label{color:#91a09f;letter-spacing:0;font-family:DM Mono,monospace;font-size:8px;display:block}.luban-releases .download-platform{border-bottom:1px solid var(--line);color:#6c7e80;grid-column:1/-1;align-items:center;gap:12px;padding-bottom:14px;font-size:12px;display:flex}.luban-releases .download-platform select{min-width:150px;min-height:36px;color:var(--ink);font:inherit;background:#fff;border:1px solid #d4e1da;border-radius:4px;padding:6px 10px}.luban-releases .download-platform select:focus-visible,.luban-releases .download-card a:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.luban-releases .download-version-info{overflow-wrap:anywhere;min-width:0}.luban-releases .download-card strong{color:var(--blue);margin:7px 0 3px;font-family:DM Mono,monospace;font-size:28px;font-weight:500;display:block}.luban-releases .download-card p{color:#6c7e80;margin:0;font-size:10px}.luban-releases .download-card .new-btn{grid-area:2/2;min-height:42px}.luban-releases .download-card .new-btn:disabled{opacity:.55;cursor:not-allowed}.luban-releases .download-all-assets{color:var(--blue);grid-column:2;justify-content:flex-end;align-items:center;gap:4px;font-size:11px;display:inline-flex}.luban-releases .release-state{color:#82918f;grid-column:1;font-family:DM Mono,monospace;font-size:10px}.luban-releases .site-footer{border-top:1px solid var(--line);color:#829093;align-items:center;gap:22px;width:min(1160px,100% - 48px);min-height:74px;margin:0 auto;font-size:10px;display:flex}.luban-releases .site-footer .brand-lockup{margin-right:auto}.luban-releases .site-footer a{align-items:center;gap:5px;display:inline-flex}.luban-releases .site-footer a:hover{color:var(--blue)}.luban-releases .back-to-top{z-index:90;color:#fff;opacity:0;pointer-events:none;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#3568e8eb;border:1px solid #3568e840;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding:0;transition:opacity .25s,transform .25s,box-shadow .25s;display:inline-flex;position:fixed;bottom:24px;right:24px;transform:translateY(12px)scale(.9);box-shadow:0 12px 28px #3568e83d}.luban-releases .back-to-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.luban-releases .back-to-top:hover{transform:translateY(-2px)scale(1);box-shadow:0 16px 34px #3568e857}.luban-releases .back-to-top:focus-visible{outline-offset:3px;outline:2px solid #fff}@media (max-width:640px){.luban-releases .back-to-top{width:38px;height:38px;bottom:16px;right:16px}}.luban-releases .site-footer{color:#a9bfbd;background:#102c2f;border-top:0;grid-template-columns:minmax(260px,1fr) auto;align-items:start;gap:42px;width:100%;min-height:0;margin:0;padding:52px max(24px,50vw - 580px) 28px;display:grid}.luban-releases .site-footer .brand-lockup{color:#fff}.luban-releases .footer-product p{color:#a9bfbd;margin:14px 0 0;font-size:11px}.luban-releases .footer-links{align-items:center;gap:26px;display:flex}.luban-releases .site-footer .footer-links a{color:#bed0ce;font-size:11px}.luban-releases .site-footer .footer-links a:hover{color:#fff}.luban-releases .footer-bottom{color:#78918f;border-top:1px solid #ffffff1f;grid-column:1/-1;align-items:center;gap:22px;padding-top:24px;font-size:9px;display:flex}.luban-releases .footer-bottom img{width:112px;height:auto;margin-right:auto}@media (max-width:640px){.luban-releases .site-footer{grid-template-columns:1fr;gap:26px;padding:44px 20px 26px}.luban-releases .footer-links{flex-direction:column;align-items:flex-start;gap:13px}.luban-releases .footer-bottom{flex-direction:column;align-items:flex-start;gap:10px}}.luban-releases .releases-page{width:min(1060px,100% - 48px);margin:0 auto}.luban-releases .releases-hero{border-bottom:1px solid var(--line);padding:76px 0 80px}.luban-releases .back-link{color:#718286;align-items:center;gap:6px;font-size:10px;display:inline-flex}.luban-releases .back-link:hover{color:var(--blue)}.luban-releases .releases-hero .eyebrow{margin-top:45px}.luban-releases .eyebrow{color:#718489;letter-spacing:.1em;align-items:center;gap:8px;font-family:DM Mono,monospace;font-size:9px;display:flex}.luban-releases .eyebrow-dot{background:var(--blue);border-radius:50%;width:7px;height:7px}.luban-releases .releases-hero h1{color:var(--ink);margin:20px 0;font-size:clamp(47px,6vw,78px);line-height:1}.luban-releases .releases-hero h1 span{color:#87969a}.luban-releases .releases-hero p{color:#718286;max-width:520px;margin:0;font-size:13px;line-height:1.8}.luban-releases .history-page-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;padding-bottom:20px;display:flex}.luban-releases .history-page-heading h2{color:var(--ink);margin:10px 0 0;font-size:29px}.luban-releases .sync-indicator{color:#769087;align-items:center;gap:7px;font-family:DM Mono,monospace;font-size:8px;display:inline-flex}.luban-releases .sync-indicator>span{background:#7fb24a;border-radius:50%;width:6px;height:6px}.luban-releases .sync-indicator.loading>span{background:#e0a454}.luban-releases .sync-indicator.unavailable>span{background:#c38470}.luban-releases .sync-indicator small{color:#a0ada9}.luban-releases .release-entry{border-bottom:1px solid var(--line);grid-template-columns:190px 1fr;gap:45px;padding:30px 0 33px;display:grid}.luban-releases .release-entry-top{color:#8a999a;align-items:flex-start;gap:10px;font-family:DM Mono,monospace;font-size:9px;display:flex}.luban-releases .entry-index{color:#a4b0ae}.luban-releases .entry-version{color:var(--blue)}.luban-releases .entry-date{margin-left:auto}.luban-releases .entry-content h3{color:#2d4549;margin:0 0 9px;font-size:17px}.luban-releases .entry-content p{color:#718286;max-width:590px;margin:0;font-size:11px;line-height:1.7}.luban-releases .entry-content>a{color:var(--blue);align-items:center;gap:5px;margin-top:14px;font-size:10px;font-weight:700;display:inline-flex}.luban-releases .change-tags{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.luban-releases .change-tags span{color:#738486;background:#edf2ef;border-radius:3px;padding:4px 7px;font-family:DM Mono,monospace;font-size:8px}.luban-releases .history-empty{color:#819092;align-items:center;gap:8px;padding:30px 0;font-size:11px;display:flex}@keyframes luban-text-shine{to{background-position:200%}}@keyframes luban-shimmer{0%,45%{transform:translate(-110%)}75%,to{transform:translate(110%)}}@media (max-width:900px){.luban-releases .download-section{grid-template-columns:1fr;gap:42px;padding-bottom:100px}}@media (max-width:640px){.luban-releases:before{background-size:20px 20px}.luban-releases .site-header,.luban-releases .new-section,.luban-releases .site-footer,.luban-releases .releases-page{width:min(100% - 34px,560px)}.luban-releases .site-header{height:68px}.luban-releases .site-nav{display:none}.luban-releases .header-download{margin-left:auto;padding:9px 10px}.luban-releases .new-section{padding:88px 0}.luban-releases .download-section h1{font-size:43px}.luban-releases .download-card{grid-template-columns:1fr}.luban-releases .download-card .new-btn{grid-area:auto/1;justify-self:start}.luban-releases .release-state{grid-column:1}.luban-releases .download-all-assets{grid-column:1;justify-content:flex-start}.luban-releases .site-footer{flex-wrap:wrap;gap:12px 18px;padding:20px 0}.luban-releases .site-footer .brand-lockup{width:100%}.luban-releases .releases-hero{padding:48px 0 60px}.luban-releases .releases-hero h1{font-size:49px}.luban-releases .history-page-heading{flex-direction:column;align-items:flex-start;gap:14px}.luban-releases .release-entry{grid-template-columns:1fr;gap:14px}.luban-releases .entry-date{margin-left:auto}}@media (prefers-reduced-motion:reduce){.luban-releases *,.luban-releases :before,.luban-releases :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --beam-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.luban-releases .site-header{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-color:#0000;margin:14px 0 0;position:absolute;top:0;left:50%;transform:translate(-50%)}.luban-releases .releases-hero{padding-top:122px}@media (max-width:640px){.luban-releases .site-header{margin-top:8px}.luban-releases .releases-hero{padding-top:106px}}.luban-releases .magic-border-beam{border-radius:inherit;pointer-events:none;-webkit-mask-composite:xor;padding:1.5px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source;z-index:4!important;position:absolute!important;inset:-1px!important}.luban-releases .magic-border-beam__runner{filter:saturate(1.15)}.luban-releases .release-detail{background:#ffffffd1;border:1px solid #d2dfda;border-radius:8px;margin:58px 0 105px;padding:34px;position:relative;overflow:hidden;box-shadow:0 20px 55px #243b3917}.luban-releases .release-detail-head{border-bottom:1px solid var(--line);justify-content:space-between;gap:40px;padding-bottom:28px;display:flex}.luban-releases .release-detail-head>div:first-child{min-width:0}.luban-releases .detail-label{color:#7c8d8f;font-family:DM Mono,monospace;font-size:9px}.luban-releases .detail-version{color:var(--blue);margin-top:13px;font-family:DM Mono,monospace;font-size:39px;font-weight:500}.luban-releases .release-detail h2{color:#243b40;margin:7px 0 10px;font-size:24px}.luban-releases .release-detail-head p{color:#6e8083;max-width:660px;margin:0;font-size:12px;line-height:1.8}.luban-releases .detail-meta{color:#819193;flex:none;align-items:flex-start;gap:13px;font-family:DM Mono,monospace;font-size:8px;display:flex}.luban-releases .detail-meta span{align-items:center;gap:6px;display:inline-flex}.luban-releases .detail-download{background:#f5f8f5;border:1px solid #d5e0dc;border-radius:6px;justify-content:space-between;align-items:center;gap:25px;margin:25px 0 32px;padding:18px 20px;display:flex}.luban-releases .detail-download>div{min-width:0}.luban-releases .detail-download span{color:#819192;font-family:DM Mono,monospace;font-size:8px;display:block}.luban-releases .detail-download strong{color:#344a4e;text-overflow:ellipsis;white-space:nowrap;margin:5px 0 3px;font-size:11px;display:block;overflow:hidden}.luban-releases .detail-download small{color:#93a19f;font-family:DM Mono,monospace;font-size:8px}.luban-releases .detail-download a{color:#fff;background:var(--blue);border-radius:5px;flex:none;align-items:center;gap:7px;padding:11px 14px;font-size:10px;font-weight:800;display:inline-flex}.luban-releases .detail-download.unavailable{color:#859391;justify-content:flex-start}.luban-releases .detail-download.unavailable>span{font-family:inherit;font-size:10px}.luban-releases .release-assets{margin:25px 0 32px}.luban-releases .release-assets-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding-bottom:12px;display:flex}.luban-releases .release-assets-heading h3{margin:0;font-size:13px}.luban-releases .release-assets-heading>span{color:#6c7e80;font-size:11px}.luban-releases .release-assets-list{margin:0;padding:0;list-style:none}.luban-releases .release-asset{border-bottom:1px solid var(--line);grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 0;display:grid}.luban-releases .release-asset-icon{color:#6c7e80}.luban-releases .release-asset-info{min-width:0}.luban-releases .release-asset-info strong{color:#344a4e;overflow-wrap:anywhere;font-size:12px;display:block}.luban-releases .release-asset-meta{color:#6c7e80;flex-wrap:wrap;gap:4px 10px;margin-top:5px;font-size:10px;display:flex}.luban-releases .release-asset-download{color:#fff;background:var(--blue);border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:9px 14px;font-size:11px;font-weight:700;display:inline-flex}.luban-releases .release-asset-download:hover{background:#2854c7}.luban-releases .release-asset-download:focus-visible{outline:2px solid var(--blue);outline-offset:3px}@media (max-width:640px){.luban-releases .release-asset{grid-template-columns:20px minmax(0,1fr);gap:10px}.luban-releases .release-asset-download{grid-column:2;justify-self:start}}.luban-releases .release-markdown{color:#53676b;font-size:12px;line-height:1.85}.luban-releases .release-markdown h1,.luban-releases .release-markdown h2,.luban-releases .release-markdown h3{color:#263d41;margin:30px 0 12px;line-height:1.35}.luban-releases .release-markdown h1{font-size:22px}.luban-releases .release-markdown h2{font-size:18px}.luban-releases .release-markdown h3{font-size:15px}.luban-releases .release-markdown p{margin:10px 0}.luban-releases .release-markdown ul,.luban-releases .release-markdown ol{margin:10px 0;padding-left:22px}.luban-releases .release-markdown li{margin:5px 0}.luban-releases .release-markdown code{color:#315b9d;background:#edf2f8;border-radius:3px;padding:2px 5px;font-family:DM Mono,monospace;font-size:.9em}.luban-releases .release-markdown pre{color:#e7f0ed;background:#17292f;border-radius:5px;padding:15px;overflow-x:auto}.luban-releases .release-markdown pre code{color:inherit;background:0 0;padding:0}.luban-releases .release-markdown blockquote{color:#708185;border-left:3px solid #a9c2f8;margin:17px 0;padding-left:15px}.luban-releases .release-markdown table{border-collapse:collapse;width:100%;margin:18px 0;font-size:11px}.luban-releases .release-markdown th,.luban-releases .release-markdown td{border:1px solid var(--line);text-align:left;padding:9px 10px}.luban-releases .release-markdown th{color:#3f565a;background:#f0f5f2}.luban-releases .release-markdown a{color:var(--blue);text-underline-offset:3px;text-decoration:underline}.luban-releases .history-page-heading>div:first-child p{color:#849395;margin:7px 0 0;font-size:10px}.luban-releases .release-entry{transition:background .2s}.luban-releases .release-entry:hover{background:#ffffff80}.luban-releases .release-not-found,.luban-releases .release-loading{border:1px solid var(--line);color:#718285;background:#fff;border-radius:7px;margin:60px 0 100px;padding:35px}.luban-releases .release-not-found h2{color:#31494d;margin:13px 0 8px}.luban-releases .release-not-found p{margin:0;font-size:11px}.luban-releases .release-not-found a{color:var(--blue);align-items:center;gap:6px;margin-top:18px;font-size:10px;font-weight:800;display:inline-flex}.luban-releases .release-loading{align-items:center;gap:8px;font-size:11px;display:flex}.luban-releases .offline-detail .change-tags{margin:24px 0 0}@media (max-width:640px){.luban-releases .release-detail{margin:40px 0 75px;padding:22px 17px}.luban-releases .release-detail-head{flex-direction:column;gap:17px}.luban-releases .detail-version{font-size:32px}.luban-releases .release-detail h2{font-size:20px}.luban-releases .detail-download{flex-direction:column;align-items:flex-start;padding:16px}.luban-releases .release-markdown{font-size:11px}.luban-releases .release-markdown table{display:block;overflow-x:auto}.luban-releases .release-not-found,.luban-releases .release-loading{margin:40px 0 75px;padding:24px}}.luban-releases .download-section{isolation:isolate;position:relative}.luban-releases .download-section>.magic-blur-fade{z-index:1;position:relative}@media (max-width:640px){.luban-releases .site-footer{background:#102c2f;grid-template-columns:1fr;gap:26px;width:100%;margin:0;padding:44px 20px 26px;display:grid}.luban-releases .site-footer .brand-lockup{width:auto}}
