:root{color-scheme:dark;--bg:#050505;--text:#f3f3f3;--secondary:#9a9a9a;--muted:#666;--line:#262626}
*{box-sizing:border-box}
html{background:var(--bg);scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#424242 var(--bg);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a,button{-webkit-tap-highlight-color:transparent}
html[lang="zh-CN"] [data-locale="en"],html[lang="en"] [data-locale="zh"]{display:none}
a:focus-visible,button:focus-visible,.screenshot-gallery:focus-visible{outline:1px solid #aaa;outline-offset:5px}
html::-webkit-scrollbar{width:6px}html::-webkit-scrollbar-track{background:var(--bg)}html::-webkit-scrollbar-thumb{background:#424242;border-radius:6px}
.skip-link{position:fixed;z-index:10;left:22px;top:10px;transform:translateY(-180%);background:#222;padding:12px}.skip-link:focus{transform:none}
.product-header,main{width:min(100% - 12vw,1120px);margin-inline:auto}
.product-header{height:90px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{font-size:16px;font-weight:600;letter-spacing:-.03em}.header-actions{display:flex;align-items:center;gap:26px}.all-projects{font-size:11px;color:var(--secondary)}.all-projects:hover{color:var(--text)}
.language-toggle{border:1px solid #343434;border-radius:20px;background:transparent;padding:8px 12px;font-size:10px;cursor:pointer}.language-divider{color:#555}.language-en,.language-zh{color:#666}html[lang="en"] .language-en,html[lang="zh-CN"] .language-zh{color:var(--text)}
.breadcrumbs{margin:28px 0 40px;display:flex;align-items:center;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:10px;line-height:1.7}.breadcrumbs a:hover{color:var(--text)}
.product-hero{display:grid;grid-template-columns:112px minmax(0,1fr)auto;align-items:center;gap:28px}
.product-icon{display:block;width:112px;height:112px;object-fit:contain;border-radius:24px}
h1,h2,h3,p{margin:0}h1{margin-top:0;font-size:clamp(30px,3.9vw,47px);font-weight:500;letter-spacing:-.045em;line-height:1.15}
.tagline{margin-top:11px;font-size:13px;line-height:1.7;color:var(--secondary)}.hero-summary{max-width:540px;margin-top:8px;font-size:13px;line-height:1.8;color:var(--secondary)}
.product-download{display:flex;align-items:center;flex-direction:column;gap:12px;padding-left:15px}.download-control{position:relative;display:grid;width:178px;height:44px;background:#f3f3f3;color:#080808;border-radius:28px;--system-icon-cutout:#f3f3f3}.download-toggle{display:flex;align-items:center;justify-content:center;gap:13px;width:100%;height:100%;padding:0 22px;border:0;border-radius:inherit;background:transparent;font-size:13px;cursor:pointer;transition:opacity 160ms ease,transform 160ms ease}.download-toggle:hover{background:#ddd}.download-options{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:6px;padding:0 14px;opacity:0;visibility:hidden;transform:translateX(-6px);pointer-events:none;transition:opacity 160ms ease,transform 160ms ease,visibility 160ms ease}.download-control[data-expanded="true"] .download-toggle{opacity:0;visibility:hidden;transform:translateX(6px);pointer-events:none}.download-control[data-expanded="true"] .download-options{opacity:1;visibility:visible;transform:none;pointer-events:auto}.system-choice{display:flex;align-items:center;justify-content:center;flex:0 0 32px;width:32px;height:32px;padding:0;border:0;background:transparent;border-radius:50%;color:#080808}.system-choice:hover:not(:disabled){background:#d9d9d9}.system-choice:disabled{color:#999;cursor:not-allowed}.system-icon{display:block;width:21px;height:21px}.download-note{font-size:10px;color:var(--muted)}
.product-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:38px 0 0;padding:28px 0 30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.product-facts div{min-width:0}.product-facts dt{font-size:10px;color:var(--muted);margin-bottom:10px}.product-facts dd{margin:0;font-size:14px;line-height:1.5;color:#c9c9c9}
.platform-icons{display:flex;align-items:center;gap:7px;min-height:1.5em}.platform-badge{display:flex;align-items:center;justify-content:center;width:25px;height:1.5em;color:#c9c9c9}.platform-badge.is-unavailable{color:#565656}.platform-badge:focus-visible{outline:1px solid #777;outline-offset:3px;border-radius:3px}
.screenshots-section{margin-top:44px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:22px}h2{font-size:20px;font-weight:500;letter-spacing:-.025em;line-height:1.4}.gallery-hint{font-size:10px;color:var(--muted)}
.screenshot-gallery{display:grid;grid-auto-flow:column;grid-auto-columns:218px;justify-content:start;gap:24px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#424242 transparent;padding:0 0 14px;touch-action:pan-x pan-y pinch-zoom}
.screenshot-gallery::-webkit-scrollbar{height:4px}.screenshot-gallery::-webkit-scrollbar-thumb{background:#424242;border-radius:4px}.screenshot-card{display:block;padding:0;border:0;background:transparent;text-align:left;cursor:zoom-in;scroll-snap-align:start}.screenshot-card img{display:block;width:100%;height:auto;aspect-ratio:390 / 844;object-fit:contain;border-radius:14px;background:#151515;border:1px solid #2a2a2a}.screenshot-caption{display:block;margin-top:13px;color:var(--secondary);font-size:11px;line-height:1.5}
.screenshot-card[hidden]{display:none}.preview-tabs{display:flex;gap:24px;margin:0 0 20px}.preview-tab{display:flex;align-items:center;gap:8px;padding:0 0 11px;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--muted);font-size:12px;cursor:pointer}.preview-tab .system-icon{width:18px;height:18px}.preview-tab[aria-selected="true"]{color:var(--text);border-bottom-color:#aaa}.preview-mobile-selector{display:none;align-items:center;gap:10px;min-height:42px;margin-top:4px;color:var(--secondary)}.preview-select-wrap{position:relative;flex:1}.preview-system-select{appearance:none;width:100%;padding:10px 26px 10px 0;border:0;background:transparent;color:inherit;font:inherit;font-size:12px;cursor:pointer}.preview-system-select option{background:#111;color:#ddd}.preview-select-arrow{position:absolute;right:0;top:50%;width:16px;height:16px;transform:translateY(-50%);pointer-events:none}.preview-system-select:focus-visible{outline:1px solid #aaa;outline-offset:2px}
.screenshot-card img{aspect-ratio:auto}.screenshot-gallery[data-system="windows"],.screenshot-gallery[data-system="macos"]{grid-auto-columns:min(70vw,560px)}
@media(max-width:650px){.preview-tabs{display:none}.preview-mobile-selector{display:flex}.screenshots-section .screenshot-gallery{grid-auto-columns:min(74vw,270px);scroll-snap-type:x mandatory}}
.description-section{margin-top:55px;padding-top:35px;border-top:1px solid var(--line)}.description-body{margin-top:22px;max-width:880px}.description-body p{font-size:15px;line-height:1.95;color:#acacac}.description-body p+p{margin-top:16px}.product-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:35px}.product-feature{padding-top:20px;border-top:1px solid var(--line)}h3{font-size:14px;font-weight:500;line-height:1.6}.product-feature p{margin-top:10px;font-size:12px;line-height:1.9;color:var(--secondary)}
.development-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:44px;padding:25px 0;border-top:1px solid var(--line);font-size:14px}.development-entry span:last-child{color:var(--muted)}
.release-section,.permissions-section{margin-top:46px;padding-top:32px;border-top:1px solid var(--line)}.release-list{margin-top:24px}.release-entry+.release-entry{margin-top:27px;padding-top:25px;border-top:1px solid var(--line)}.release-heading{display:flex;align-items:baseline;justify-content:space-between;gap:24px}.release-heading h3{font-size:15px}.release-date,.permission-scope{font-size:10px;color:var(--muted)}.release-summary{margin-top:11px;font-size:13px;color:#bdbdbd}.release-entry ul{margin:14px 0 0;padding-left:17px;max-width:880px;color:var(--secondary);font-size:13px;line-height:1.95}.permission-summary{font-size:14px;line-height:1.9;color:#bdbdbd;max-width:880px}.permission-access{margin:24px 0 0}.permission-access div{display:grid;grid-template-columns:148px minmax(0,1fr);gap:24px;padding:17px 0;border-top:1px solid #202020}.permission-access dt{font-size:12px;color:#c4c4c4}.permission-access dd{margin:0;font-size:12px;line-height:1.8;color:var(--secondary)}.declared-permissions{font-size:12px;line-height:1.8;color:var(--secondary);overflow-wrap:anywhere}
.product-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:62px;padding:28px 0 36px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.product-footer a:hover{color:var(--text)}
.release-tabs{display:flex;align-items:center;gap:24px;margin-top:22px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#424242 transparent}.release-tab{display:flex;align-items:center;gap:8px;flex-shrink:0;padding:8px 0 12px;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--muted);font-size:12px;cursor:pointer;transition:color 160ms ease,border-color 160ms ease}.release-tab .system-icon{width:18px;height:18px}.release-tab:hover,.release-tab[aria-selected="true"]{color:#e5e5e5}.release-tab[aria-selected="true"]{border-bottom-color:#bdbdbd}.release-viewport{overflow:hidden;min-height:170px}.release-panel:focus-visible{outline:1px solid #777;outline-offset:-1px}.release-empty{font-size:13px;line-height:1.95;color:var(--secondary)}
.permission-card{padding:32px 36px 14px;border:1px solid #252525;border-radius:22px;background:#0d0d0d}.permission-card-symbol{display:block;width:38px;height:38px;margin:0 auto 16px;color:#d4d4d4}.permission-card-title{text-align:center;font-size:20px;font-weight:500;line-height:1.45}.permission-card .permission-summary{max-width:560px;margin:12px auto 0;text-align:center;font-size:13px;line-height:1.9}.permission-card .permission-access{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin:28px 0 0}.permission-card .permission-access div{display:block;padding:20px 0;border-top:1px solid #252525}.permission-card .permission-access dt{display:flex;align-items:center;gap:11px;font-size:13px;color:#dedede;line-height:1.6}.permission-access dt svg{width:21px;height:21px;flex-shrink:0}.permission-card .permission-access dd{margin:8px 0 0;padding-left:32px;font-size:12px;line-height:1.8;color:var(--secondary)}
@media(max-width:650px){.permission-card{padding:27px 22px 9px;border-radius:19px}.permission-card-title{font-size:18px}.permission-card .permission-summary,.permission-card .permission-access dd{display:none}.permission-card .permission-access{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;margin-top:23px}.permission-card .permission-access div{padding:17px 0}.permission-card .permission-access dt{gap:7px;font-size:12px}.permission-access dt svg{width:18px;height:18px}}
body.media-open{overflow:hidden}.media-viewer{position:fixed;inset:0;width:100%;height:100%;height:100svh;max-width:none;max-height:none;margin:0;padding:0 5vw;border:0;background:#050505;color:var(--text)}.media-viewer::backdrop{background:#050505}.media-viewer[open]{display:grid;grid-template-rows:72px minmax(0,1fr)72px;gap:12px}.viewer-top{display:flex;align-items:center;justify-content:space-between;gap:25px}.viewer-caption{font-size:13px;color:var(--secondary)}.viewer-close,.viewer-prev,.viewer-next{width:40px;height:40px;border:1px solid #333;background:transparent;border-radius:50%;font-size:18px;cursor:pointer}.viewer-close{border:0}.viewer-image-wrap{min-height:0;display:flex;align-items:center;justify-content:center}.viewer-image{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:10px}.viewer-bottom{display:flex;align-items:center;justify-content:center;gap:24px}.viewer-count{font-size:11px;color:var(--secondary);font-variant-numeric:tabular-nums}
@media(max-width:900px){.product-hero{grid-template-columns:96px minmax(0,1fr);gap:24px}.product-icon{width:96px;height:96px;border-radius:22px}.product-download{grid-column:2;flex-direction:row;justify-content:flex-start;padding-left:0}.product-features{gap:24px}}
@media(max-width:650px){.product-header,main{width:calc(100% - 44px)}.product-header{height:70px}.header-actions{gap:17px}.all-projects{font-size:10px}.breadcrumbs{margin:23px 0 29px;gap:9px}.product-hero{grid-template-columns:76px minmax(0,1fr);gap:20px;align-items:start}.product-icon{width:76px;height:76px;border-radius:17px}h1{font-size:28px;margin-top:0}.tagline{font-size:12px;margin-top:9px}.hero-summary{font-size:12px;line-height:1.9;grid-column:1/-1}.product-download{grid-column:1/-1;flex-direction:row;gap:17px;margin-top:5px}.download-control{height:41px}.download-toggle{font-size:12px}.product-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 20px;padding:23px 0 26px;margin-top:28px}.product-facts dd{font-size:13px}.screenshots-section{margin-top:34px}.section-heading{align-items:center;gap:15px;margin-bottom:19px}h2{font-size:18px}.gallery-hint{font-size:9px;text-align:right}.screenshot-gallery{grid-auto-columns:min(74vw,270px);gap:18px}.description-section{margin-top:37px;padding-top:28px}.description-body{margin-top:20px}.description-body p{font-size:14px;line-height:1.95}.product-features{grid-template-columns:1fr;gap:20px;margin-top:28px}.product-feature{padding-top:17px}.product-feature p{font-size:13px}.release-section,.permissions-section{margin-top:36px;padding-top:28px}.release-entry ul{font-size:12px}.permission-access div{grid-template-columns:1fr;gap:7px;padding:15px 0}.permission-summary{font-size:13px}.product-footer{margin-top:40px;font-size:9px}.media-viewer{padding:0 18px}.media-viewer[open]{grid-template-rows:60px minmax(0,1fr)66px;gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}.screenshot-gallery{scroll-snap-type:none}}

.template-notice{margin:25px 0 0;color:var(--muted);font-size:11px;line-height:1.8}.system-choice.is-example{cursor:default}.template-status-list{display:flex;flex-wrap:wrap;gap:12px 22px;margin-top:14px}.template-status{display:inline-flex;align-items:center;gap:7px;font-size:11px;color:var(--secondary)}.template-status::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--status)}.template-status.available{--status:#4caf6a}.template-status.in-progress{--status:#c9823b}.template-status.planned{--status:#555}.template-status.unavailable{--status:#b84a4a}

/* Mobile download: right-aligned circular trigger and a separate platform panel. */
.download-toggle .mobile-download-icon{display:none}
@media(max-width:650px){
 .product-hero{grid-template-columns:76px minmax(0,1fr) 44px;column-gap:12px;row-gap:0;align-items:center}
 .product-identity{min-width:0}
 .product-download{grid-column:3;grid-row:1;align-self:center;justify-self:end;position:relative;z-index:2;flex-direction:column;align-items:center;justify-content:center;gap:8px;margin-top:0;padding-left:0}
 .product-download .download-control{width:44px;height:44px;border-radius:50%}
 .product-download .download-toggle{padding:0;gap:0}
 .product-download .download-toggle>span{display:none}
 .product-download .download-toggle .mobile-download-icon{display:block;width:20px;height:20px}
 .product-download .download-control[data-expanded="true"] .download-toggle{opacity:1;visibility:visible;transform:none;pointer-events:auto}
 .product-download .download-options{inset:auto 0 auto auto;top:calc(100% + 10px);width:178px;height:44px;border-radius:28px;background:#f3f3f3;box-shadow:0 0 0 1px #262626}
}

/* Preview changes keep their size while fading and resize without scroll anchoring. */
html.preview-switching{overflow-anchor:none;scroll-behavior:auto}
.screenshot-gallery{align-items:start}
.screenshot-gallery.is-switching{overflow-y:hidden;scroll-snap-type:none;will-change:height,opacity,transform}

/* The loading graphic is an explicit SVG arc with a stable, contrasting track. */
.download-control .download-toggle{position:relative}
.download-control .download-toggle .download-spinner{position:absolute;left:50%;top:50%;display:block;width:22px;height:22px;border:0;margin:0;opacity:0;color:#080808;transform:translate(-50%,-50%) scale(.85);transition:opacity 280ms ease,transform 280ms cubic-bezier(.16,1,.3,1);pointer-events:none}
.download-spinner .spinner-rotor{transform-origin:12px 12px;animation:labdow-download-spin .8s linear infinite;animation-play-state:paused}
@keyframes labdow-download-spin{to{transform:rotate(360deg)}}
:is(.download-control[data-loading="true"],.download-control[data-loading="morphing"]) .download-toggle>span{display:none}
:is(.download-control[data-loading="true"],.download-control[data-loading="morphing"]) .download-toggle .download-spinner{opacity:1;transform:translate(-50%,-50%) scale(1)}
.download-control[data-loading="true"] .spinner-rotor{animation-play-state:running}
.download-toggle[aria-busy="true"]{cursor:wait;background:transparent}
@media(max-width:650px){
 .product-download .download-options{inset:0 0 auto auto;top:0;width:44px;height:44px;padding:0;overflow:hidden;transform:none;transition:width 240ms cubic-bezier(.16,1,.3,1),padding 240ms ease,opacity 160ms ease,visibility 160ms ease}
 .product-download .download-control[data-expanded="true"] .download-options{width:178px;padding:0 14px}
 .product-download .download-control[data-expanded="true"] .download-toggle{opacity:0;visibility:hidden;transform:none;pointer-events:none}
 .product-download .download-control[data-loading="restoring"] .download-toggle,.product-download .download-control[data-loading="true"] .download-toggle{opacity:1;visibility:visible;transform:none;pointer-events:none}
 .product-download .download-control .download-toggle .mobile-download-icon{display:block;width:22px;height:22px;opacity:1;transform:none;transition:opacity 280ms ease,transform 280ms cubic-bezier(.16,1,.3,1)}
 .product-download :is(.download-control[data-loading="true"],.download-control[data-loading="morphing"]) .download-toggle .mobile-download-icon{opacity:0;transform:translateY(3px) scale(.85)}
}
@media(prefers-reduced-motion:reduce){.download-spinner .spinner-rotor{animation-duration:1.6s}.download-control .download-toggle .download-spinner,.product-download .download-control .download-toggle .mobile-download-icon{transition:opacity 180ms linear!important}}

@media(max-width:650px){.product-download .download-control[data-loading="morphing"] .download-toggle .mobile-download-icon{transform:none}}
