html:has(.coco-releases){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;overflow:visible}body:has(.coco-releases){background:#fbfcfe;margin:0;animation:none;overflow:visible}body:has(.coco-releases):before{display:none}body:has(.coco-releases):after{display:none}.coco-releases,.coco-releases :where(:not(svg,svg *,img)),.coco-releases :before,.coco-releases :after{all:revert;box-sizing:border-box}.coco-releases svg,.coco-releases svg *,.coco-releases img{border:0}.coco-releases{-webkit-font-smoothing:auto;display:block}@font-face{font-family:CoCo Display;src:url(/product-intro/coco/fonts/harmonyos-sans/HarmonyOS_Sans_SC_Bold.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:700 900}.coco-releases{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;--surface:#fbfcfe;--surface-strong:#fff;--surface-soft:#f2f6fa;--ink:#142033;--ink-soft:#314056;--muted:#5b6b80;--faint:#8290a2;--line:#dce4ee;--line-strong:#c8d3df;--blue:#2885ef;--blue-deep:#1767c2;--blue-soft:#dcecff;--green:#258362;--green-soft:#dff3ea;--amber:#a96517;--amber-soft:#f6ead8;--night:#0d1a2a;--night-soft:#14263a;--focus:#0d72dc;--content:1180px;font-family:HarmonyOS Sans SC,Segoe UI,Microsoft YaHei,sans-serif}.coco-releases *{box-sizing:border-box}.coco-releases{scroll-behavior:smooth;scrollbar-color:#aab6c5 #eef2f6;scrollbar-width:thin;background:var(--surface);min-width:320px;color:var(--ink);letter-spacing:0;margin:0;font-size:16px;line-height:1.65}.coco-releases::-webkit-scrollbar{width:10px}.coco-releases::-webkit-scrollbar-track{background:#eef2f6}.coco-releases::-webkit-scrollbar-thumb{background:#aab6c5;border:2px solid #eef2f6;border-radius:999px}.coco-releases ::selection{color:#0c2746;background:#b9dcff}.coco-releases button,.coco-releases a,.coco-releases summary{-webkit-tap-highlight-color:transparent}.coco-releases a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}.coco-releases button,.coco-releases input,.coco-releases select,.coco-releases textarea{font:inherit;letter-spacing:0}.coco-releases :focus-visible{outline:3px solid color-mix(in srgb, var(--focus) 42%, transparent);outline-offset:3px}.coco-releases img,.coco-releases svg{display:block}.coco-releases h1,.coco-releases h2,.coco-releases h3,.coco-releases p{margin-top:0}.coco-releases h1,.coco-releases h2,.coco-releases h3{letter-spacing:0;text-wrap:balance}.coco-releases h1,.coco-releases h2{font-family:CoCo Display,sans-serif}.coco-releases .site-shell{min-height:100vh;overflow:clip}.coco-releases .site-header{z-index:100;width:100%;height:68px;padding:0 max(24px, calc((100vw - var(--content)) / 2));background:#fffffff5;border-bottom:1px solid #8e9eb152;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:fixed;top:0;left:0}.coco-releases .skip-link{z-index:200;background:var(--ink);color:#fff;border-radius:6px;min-height:42px;padding:8px 14px;font-size:13px;font-weight:720;text-decoration:none;transition:transform .17s cubic-bezier(.16,1,.3,1);position:fixed;top:10px;left:12px;transform:translateY(-160%)}.coco-releases .skip-link:focus{transform:translateY(0)}.coco-releases .brand-link{justify-self:start;text-decoration:none}.coco-releases .brand{color:#111c2c;letter-spacing:0;align-items:center;gap:9px;font-family:CoCo Display,sans-serif;font-size:28px;font-weight:800;line-height:1;display:inline-flex}.coco-releases .brand img{width:31px;height:31px}.coco-releases .brand-compact{font-size:22px}.coco-releases .brand-compact img{width:25px;height:25px}.coco-releases .desktop-nav{align-items:center;gap:30px;display:flex}.coco-releases .desktop-nav a{color:var(--muted);font-size:14px;font-weight:650;text-decoration:none;transition:color .17s}.coco-releases .desktop-nav a:hover{color:var(--ink)}.coco-releases .header-download{background:var(--ink);color:#fff;border-radius:6px;justify-content:center;justify-self:end;align-items:center;gap:8px;min-height:38px;padding:0 15px;font-size:13px;font-weight:700;text-decoration:none;transition:background-color .17s,transform .17s;display:inline-flex}.coco-releases .header-download:hover{background:var(--blue-deep);transform:translateY(-1px)}.coco-releases .mobile-menu-button,.coco-releases .mobile-nav{display:none}.coco-releases .release-download-section h2{color:var(--ink);margin-bottom:16px;font-size:44px;font-weight:760;line-height:1.22}.coco-releases .release-download{min-height:580px;padding:110px max(24px, calc((100vw - var(--content)) / 2));background:#dfeefe;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);align-items:center;gap:90px;display:grid}.coco-releases .release-download__summary,.coco-releases .release-download__action-area{min-width:0}.coco-releases .release-download__version-row{color:#4d6680;align-items:center;gap:14px;margin-bottom:26px;font-size:12px;font-weight:720;display:flex}.coco-releases .release-download__version-row span,.coco-releases .release-download__targets span,.coco-releases .release-detail__version>span,.coco-releases .release-history__status{background:#ffffffc7;border-radius:999px;padding:5px 10px}.coco-releases .release-download h2{margin-bottom:14px}.coco-releases .release-download__version{color:var(--blue-deep);font-variant-numeric:tabular-nums;margin-bottom:20px;font-size:22px;font-weight:760}.coco-releases .release-download__summary>p{color:#4c6076;max-width:58ch;margin-bottom:0}.coco-releases .release-download__action-area{border-left:1px solid #a9c6e5;padding:42px 0 42px 52px}.coco-releases .release-download__primary,.coco-releases .release-download__pending{border-radius:7px;justify-content:center;align-items:center;gap:9px;min-height:50px;padding:0 20px;font-size:15px;font-weight:750;text-decoration:none;display:inline-flex}.coco-releases .release-download__primary{background:var(--blue);color:#fff;transition:background-color .17s,transform .17s,box-shadow .17s;box-shadow:0 13px 28px #1e67b83d}.coco-releases .release-download__primary:hover{background:var(--blue-deep);transform:translateY(-2px);box-shadow:0 16px 34px #1e67b84a}.coco-releases .release-download__pending{color:#4b627b}.coco-releases .release-download__pending svg{animation:.9s linear infinite coco-release-spin}.coco-releases .release-download__hint{color:#4c6076;max-width:48ch;margin:18px 0 16px;font-size:13px}.coco-releases .release-download__targets{flex-wrap:wrap;gap:7px;margin:0 0 22px;display:flex}.coco-releases .release-download__targets span{color:#3d5873;font-size:10px;font-weight:700}.coco-releases .release-download__notes{color:#24486d;align-items:center;gap:5px;font-size:13px;font-weight:720;text-decoration:none;display:inline-flex}.coco-releases .release-download__notes:hover{color:var(--blue-deep)}.coco-releases .release-page{min-height:100vh;padding:132px max(24px, calc((100vw - var(--content)) / 2)) 120px;background:#f7f9fc}.coco-releases .release-page__header{border-bottom:1px solid var(--line-strong);grid-template-columns:160px 1fr 160px;align-items:start;gap:34px;margin-bottom:76px;padding-bottom:42px;display:grid}.coco-releases .release-page__back,.coco-releases .release-page__all{color:var(--muted);align-items:center;gap:7px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.coco-releases .release-page__all{justify-self:end}.coco-releases .release-page__back:hover,.coco-releases .release-page__all:hover{color:var(--blue-deep)}.coco-releases .release-page__heading h1{margin-bottom:12px;font-size:50px;line-height:1.12}.coco-releases .release-page__heading p{max-width:54ch;color:var(--muted);margin-bottom:0}.coco-releases .release-detail{max-width:980px;margin:0 auto;scroll-margin-top:90px}.coco-releases .release-catalog__status,.coco-releases .release-artifact__unavailable{color:var(--muted);font-size:11px}.coco-releases .release-state button{background:var(--blue-deep);color:#fff;cursor:pointer;border:0;border-radius:6px;align-items:center;gap:8px;min-height:40px;padding:0 16px;display:inline-flex}.coco-releases .release-detail__header{border-bottom:1px solid var(--line-strong);grid-template-columns:230px 1fr;gap:54px;padding-bottom:52px;display:grid}.coco-releases .release-detail__version{flex-wrap:wrap;align-content:start;gap:7px;display:flex}.coco-releases .release-detail__version>span{color:#52657a;background:#e5edf6;font-size:10px;font-weight:730}.coco-releases .release-detail__version strong{width:100%;color:var(--blue-deep);font-variant-numeric:tabular-nums;margin-top:18px;font-size:30px}.coco-releases .release-detail__summary h2{color:var(--ink);margin-bottom:14px;font-size:34px;line-height:1.24}.coco-releases .release-detail__summary>p{max-width:62ch;color:var(--muted)}.coco-releases .release-detail__date{align-items:center;gap:7px;margin-bottom:0;font-size:12px;display:flex}.coco-releases .release-detail__downloads,.coco-releases .release-markdown{border-bottom:1px solid var(--line-strong);padding:58px 0}.coco-releases .release-detail__downloads>h3,.coco-releases .release-markdown>h3{color:var(--ink);margin-bottom:28px;font-size:22px}.coco-releases .release-artifacts{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.coco-releases .release-artifact{border-bottom:1px solid var(--line);grid-template-columns:minmax(250px,1.2fr) minmax(190px,.8fr) auto;align-items:center;gap:24px;min-height:112px;display:grid}.coco-releases .release-artifact__identity{align-items:center;gap:16px;min-width:0;display:flex}.coco-releases .release-artifact__platform{min-width:82px;color:var(--ink);font-size:14px;font-weight:750;display:grid}.coco-releases .release-artifact__platform small,.coco-releases .release-artifact__identity>div span{color:var(--faint);font-size:10px;font-weight:600}.coco-releases .release-artifact__identity>div{min-width:0;display:grid}.coco-releases .release-artifact__identity strong{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.coco-releases .release-artifact__checksum{gap:4px;min-width:0;display:grid}.coco-releases .release-artifact__checksum span{color:var(--faint);font-size:9px;font-weight:720}.coco-releases .release-artifact__checksum code{color:#5e6c7d;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.coco-releases .release-artifact__action,.coco-releases .release-artifacts--empty>a,.coco-releases .release-state>a,.coco-releases .release-state__actions a{background:var(--ink);color:#fff;border-radius:6px;justify-content:center;align-items:center;gap:6px;min-height:38px;padding:0 13px;font-size:11px;font-weight:720;text-decoration:none;display:inline-flex}.coco-releases .release-artifact__action:hover,.coco-releases .release-artifacts--empty>a:hover,.coco-releases .release-state>a:hover,.coco-releases .release-state__actions a:hover{background:var(--blue-deep)}.coco-releases .release-artifact__action--external{background:#52667d}.coco-releases .release-artifacts--empty{border-bottom:1px solid var(--line);grid-template-columns:36px 1fr;align-items:center;gap:14px;min-height:110px;display:grid}.coco-releases .release-artifacts--empty strong{color:var(--ink)}.coco-releases .release-artifacts--empty p{color:var(--muted);margin:2px 0 0;font-size:12px}.coco-releases .release-markdown{color:var(--ink-soft)}.coco-releases .release-markdown h1,.coco-releases .release-markdown h2,.coco-releases .release-markdown h3,.coco-releases .release-markdown h4{color:var(--ink);margin-top:42px;margin-bottom:14px}.coco-releases .release-markdown p,.coco-releases .release-markdown li{max-width:72ch}.coco-releases .release-markdown pre{background:var(--night);color:#dce8f5;border-radius:6px;padding:18px;overflow-x:auto}.coco-releases .release-markdown code{font-family:Cascadia Code,Consolas,monospace}.coco-releases .release-markdown table{border-collapse:collapse;width:100%}.coco-releases .release-markdown th,.coco-releases .release-markdown td{border-bottom:1px solid var(--line);text-align:left;padding:11px 12px}.coco-releases .release-history{max-width:980px;margin:92px auto 0}.coco-releases .release-history__heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:26px;display:flex}.coco-releases .release-history__heading h2{margin-bottom:6px;font-size:30px}.coco-releases .release-history__heading p{color:var(--muted);margin-bottom:0;font-size:13px}.coco-releases .release-history__status{color:#51677e;white-space:nowrap;background:#e4edf6;font-size:10px;font-weight:720}.coco-releases .release-history__list{border-top:1px solid var(--line-strong);margin:0;padding:0;list-style:none}.coco-releases .release-history__item{border-bottom:1px solid var(--line)}.coco-releases .release-history__item a{grid-template-columns:130px 1fr 110px 20px;align-items:center;gap:24px;min-height:108px;text-decoration:none;display:grid}.coco-releases .release-history__item a:hover .release-history__content strong{color:var(--blue-deep)}.coco-releases .release-history__version,.coco-releases .release-history__item time{color:#607187;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.coco-releases .release-history__version{overflow-wrap:anywhere;gap:5px;display:grid}.coco-releases .release-history__version small{font-size:10px;font-weight:600}.coco-releases .header-download[aria-busy=true],.coco-releases .mobile-nav-download[aria-busy=true]{cursor:progress;opacity:.65}.coco-releases .release-history__content{min-width:0;display:grid}.coco-releases .release-history__content strong{color:var(--ink);font-size:15px;transition:color .17s}.coco-releases .release-history__content>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.coco-releases .release-history__empty{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);padding:28px 0}.coco-releases .release-state{min-height:420px;color:var(--muted);text-align:center;align-content:center;place-items:center;display:grid}.coco-releases .release-state svg{color:var(--blue-deep);margin-bottom:18px}.coco-releases .release-state--loading svg{animation:.9s linear infinite coco-release-spin}.coco-releases .release-state h2{color:var(--ink);margin-bottom:8px;font-size:27px}.coco-releases .release-state p{max-width:52ch;margin-bottom:24px}.coco-releases .release-state__actions{gap:10px;display:flex}@keyframes coco-release-spin{to{transform:rotate(360deg)}}.coco-releases .site-footer{padding:58px max(24px, calc((100vw - var(--content)) / 2));background:var(--night);color:#c4cfdb;grid-template-columns:1fr auto;align-items:start;gap:36px;display:grid}.coco-releases .site-footer .brand{color:#fff}.coco-releases .site-footer>div>p{color:#90a0b2;margin:15px 0 0;font-size:13px}.coco-releases .footer-links{gap:28px;display:flex}.coco-releases .footer-links a{color:#bec9d6;align-items:center;gap:4px;font-size:13px;text-decoration:none;display:inline-flex}.coco-releases .footer-links a:hover{color:#fff}.coco-releases .footer-note{color:#7f90a2;border-top:1px solid #ffffff1f;grid-column:1/-1;margin:24px 0 0;padding-top:22px;font-size:11px}@media (max-width:820px){.coco-releases .site-header{grid-template-columns:1fr auto;height:62px;padding:0 18px}.coco-releases .desktop-nav,.coco-releases .header-download{display:none}.coco-releases .mobile-menu-button{width:38px;height:38px;color:var(--ink);background:0 0;border:0;border-radius:6px;place-items:center;display:grid}.coco-releases .mobile-menu-button svg{width:21px}.coco-releases .mobile-nav{background:#fff;border-radius:8px;padding:10px;display:grid;position:absolute;top:62px;left:12px;right:12px;box-shadow:0 18px 48px #1b2d4333}.coco-releases .mobile-nav a{color:var(--ink-soft);padding:11px 12px;font-size:14px;font-weight:680;text-decoration:none}.coco-releases .mobile-nav .mobile-nav-download{background:var(--blue);color:#fff;border-radius:6px;align-items:center;gap:8px;display:flex}.coco-releases .release-download-section h2{font-size:36px}.coco-releases .release-download{grid-template-columns:1fr;gap:48px;min-height:auto;padding:92px 24px}.coco-releases .release-download__action-area{border-top:1px solid #a9c6e5;border-left:0;padding:34px 0 0}.coco-releases .release-page{padding:108px 24px 92px}.coco-releases .release-page__header{grid-template-columns:1fr auto;gap:26px}.coco-releases .release-page__heading{grid-area:2/1/auto/-1}.coco-releases .release-page__all{grid-area:1/2}.coco-releases .release-detail__header{grid-template-columns:1fr;gap:28px}.coco-releases .release-artifact{grid-template-columns:1fr auto;gap:14px;padding:20px 0}.coco-releases .release-artifact__checksum{grid-column:1}.coco-releases .release-artifact__action{grid-area:1/2/3}.coco-releases .release-history__item a{grid-template-columns:100px 1fr 18px}.coco-releases .release-history__item time{display:none}}@media (max-width:540px){.coco-releases{font-size:15px}.coco-releases .release-download-section h2{font-size:29px;line-height:1.22}.coco-releases .site-footer{grid-template-columns:1fr;padding:48px 20px}.coco-releases .footer-links{flex-wrap:wrap;gap:14px 22px}.coco-releases .footer-note{grid-column:auto}.coco-releases .release-download{padding:78px 20px}.coco-releases .release-page{padding:96px 20px 78px}.coco-releases .release-page__heading h1{font-size:38px}.coco-releases .release-detail__summary h2{font-size:27px}.coco-releases .release-artifact,.coco-releases .release-artifacts--empty{grid-template-columns:1fr}.coco-releases .release-artifact__action{grid-area:auto;justify-self:start}.coco-releases .release-artifacts--empty>a{justify-self:start}.coco-releases .release-history__heading{flex-direction:column;align-items:start}.coco-releases .release-history__item a{grid-template-columns:1fr 18px;gap:8px 16px;padding:18px 0}.coco-releases .release-history__version,.coco-releases .release-history__content{grid-column:1}.coco-releases .release-history__item svg{grid-area:1/2/3}}@media (prefers-reduced-motion:reduce){.coco-releases{scroll-behavior:auto}.coco-releases *,.coco-releases :before,.coco-releases :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.coco-releases .footer-note{justify-content:space-between;align-items:center;gap:20px;display:flex}.coco-releases .footer-note img{width:116px;height:auto;margin-right:auto}@media (max-width:540px){.coco-releases .footer-note{flex-direction:column;align-items:flex-start}}
