*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:88px}body{background:var(--bg);color:var(--fg);font-family:var(--font-ui);margin:0;font-size:16px;line-height:1.7;overflow-x:clip}h1,h2,h3,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}.wrap{width:min(1200px,100%);margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}.page-header{z-index:40;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(14px);height:68px;padding:12px clamp(16px,2.4vw,28px);position:sticky;top:0}h2{letter-spacing:-.01em;text-wrap:balance;font-size:clamp(26px,3.4vw,40px);line-height:1.2}:lang(ja) h2,:lang(zh-Hans) h2,:lang(zh-Hant) h2{letter-spacing:0;line-height:1.32}.lead{color:var(--muted);font-size:clamp(16px,1.5vw,18px)}.fine{color:var(--muted);font-size:13.5px}.btn{border:1px solid var(--line);min-height:46px;color:var(--fg);white-space:nowrap;transition:transform .22s var(--ease), background-color .16s var(--ease), box-shadow .16s var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:10px 24px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface)}.btn.primary{background:var(--inverse);color:var(--on-inverse);border-color:#0000}.btn.primary:hover{background:var(--inverse);transform:scale(1.035)}.btn.small{min-height:38px;padding:6px 16px;font-size:14px}.btn.disabled{color:var(--muted);border-style:dashed;font-weight:500}.btn.disabled:hover{background:0 0}:is(a,button):focus-visible{outline:2px solid var(--accent);outline-offset:3px}.text-link{color:var(--accent-ink);align-items:center;gap:6px;font-weight:600;text-decoration:none;display:inline-flex}.text-link:hover{text-underline-offset:3px;text-decoration:underline}.hero{padding-block:clamp(28px,5vw,60px) clamp(36px,5vw,64px)}.hero-copy{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:end;gap:clamp(20px,4vw,56px);margin-bottom:clamp(24px,3.5vw,44px);display:grid}.hero h1{letter-spacing:-.015em;font-size:clamp(36px,5.6vw,68px);font-weight:800;line-height:1.16}:lang(ja) .hero h1{letter-spacing:0;font-size:clamp(30px,4.5vw,54px);line-height:1.3}.hero h1 span{display:block}.hero-side{gap:18px;display:grid}.cta-row{flex-wrap:wrap;gap:10px;display:flex}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding-block:8px clamp(56px,8vw,104px);display:grid}.stats div{border-top:1px solid var(--line);gap:2px;padding-top:14px;display:grid}.stats strong{font-size:clamp(34px,4.4vw,52px);font-weight:800;line-height:1.1}.stats div:first-child strong{color:var(--accent-ink)}.stats span{color:var(--muted);font-size:14.5px;line-height:1.5}.section-head{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:end;gap:clamp(16px,4vw,56px);margin-bottom:clamp(24px,3vw,40px);display:grid}.section-head p{color:var(--muted)}.shelf{padding-bottom:clamp(56px,8vw,104px)}.band{background:var(--inverse);color:var(--on-inverse);padding-block:clamp(56px,7vw,96px)}.steps{counter-reset:step;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,44px);margin-top:clamp(28px,4vw,48px);display:grid}.steps li{counter-increment:step;border-top:2px solid color-mix(in srgb, var(--on-inverse) 28%, transparent);padding-top:18px}.steps li:before{content:counter(step);color:var(--accent);margin-bottom:10px;font-size:30px;font-weight:800;line-height:1;display:block}.steps h3{margin-bottom:6px;font-size:19px}.steps p{color:color-mix(in srgb, var(--on-inverse) 72%, transparent);font-size:15px}.sync{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:clamp(28px,5vw,72px);padding-block:clamp(64px,9vw,120px);display:grid}.sync-copy{justify-items:start;gap:14px;display:grid}.sync-copy>p:not(.fine){color:var(--muted)}.sync-visual{background:var(--surface);border-radius:22px;gap:14px;padding:clamp(18px,2.4vw,28px);display:grid}.sync-nodes{grid-template-columns:1fr 22px 1fr 22px 1fr;align-items:center;display:grid}.node{background:var(--bg);text-align:center;border-radius:14px;justify-items:center;gap:6px;padding:14px 6px;font-size:13.5px;line-height:1.35;display:grid}.node.cloud{color:var(--accent-ink);font-weight:600}.link{background:var(--muted);opacity:.5;height:2px}.timeline{background:var(--bg);border-radius:14px;padding:14px 16px 16px;position:relative}.timeline-label{color:var(--muted);font-size:13px;display:block}.timeline svg{width:100%;height:auto;margin-top:4px;display:block;overflow:visible}.timeline .line{fill:none;stroke:var(--muted);stroke-width:2.5px;opacity:.6}.timeline circle{fill:var(--fg)}.timeline circle.fork{fill:var(--accent)}.timeline-fork{color:var(--accent-ink);white-space:nowrap;font-size:12.5px;font-weight:600;position:absolute;bottom:13px;left:76%;transform:translate(-4%)}.control{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(28px,5vw,72px);padding-bottom:clamp(64px,9vw,120px);display:grid}.control>div:last-child{gap:14px;display:grid}.control p{color:var(--muted)}.ratios{grid-template-rows:auto auto;grid-template-columns:1.78fr 1.33fr;gap:12px;display:grid}.ratio{background:var(--surface);color:var(--muted);border-radius:12px;place-items:center;font-size:15px;font-weight:700;display:grid}.r169{aspect-ratio:16/9;background:var(--inverse);color:var(--on-inverse)}.r43{aspect-ratio:4/3;align-self:end}.r11{aspect-ratio:1;justify-self:end;width:62%}.rdual{aspect-ratio:4/5;grid-template-rows:1fr 1fr;gap:6px;width:62%;padding:8px;position:relative}.rdual i{background:var(--surface-2);border-radius:6px;width:100%;height:100%}.rdual i+i{justify-self:center;width:76%}.rdual span{color:var(--fg);place-items:center;display:grid;position:absolute;inset:0}.keys{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin-top:4px;font-size:13.5px;display:flex}.keys span{align-items:center;gap:5px;display:inline-flex}.keys kbd{background:var(--surface-2);color:var(--fg);font:700 11.5px var(--font-ui);border-radius:99px;padding:2px 8px}.ext{padding-bottom:clamp(56px,8vw,96px)}.ext-list{border-top:1px solid var(--line)}.ext-list li{border-bottom:1px solid var(--line)}.ext-list a{color:inherit;transition:padding-inline .22s var(--ease), background-color .16s var(--ease);grid-template-columns:minmax(120px,.6fr) minmax(0,1.4fr) auto 20px;align-items:center;gap:16px;padding:18px 8px;text-decoration:none;display:grid}.ext-list a:hover{background:var(--surface);padding-inline:16px 4px}.ext-list strong{font-size:18px}.ext-list span{color:var(--muted);font-size:15px}.ext-list svg{color:var(--muted)}.code-tag{background:var(--surface);color:var(--muted);white-space:nowrap;border-radius:99px;padding:2px 10px;font-size:12.5px;font-style:normal}.code-tag.runs{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.plugin-band{background:var(--inverse);color:var(--on-inverse);padding-block:clamp(56px,7vw,96px)}.eyebrow{color:var(--accent);margin-bottom:8px;font-size:15px;font-weight:700}.plugin-head{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:end;gap:clamp(16px,4vw,56px);margin-bottom:clamp(28px,4vw,48px);display:grid}.plugin-head p{color:color-mix(in srgb, var(--on-inverse) 72%, transparent)}.plugin-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start;gap:clamp(24px,4vw,56px);display:grid}.plugin-points{gap:18px;display:grid}.plugin-points li{border-top:1px solid color-mix(in srgb, var(--on-inverse) 22%, transparent);padding-top:14px}.plugin-points h3{margin-bottom:2px;font-size:17px}.plugin-points p{color:color-mix(in srgb, var(--on-inverse) 72%, transparent);font-size:14.5px;line-height:1.65}.plugin-demo{min-width:0;padding-bottom:72px;position:relative}.code-panel{background:color-mix(in srgb, var(--on-inverse) 8%, var(--inverse));border-radius:16px;gap:6px;padding:18px 20px;display:grid;overflow:hidden}.code-file{color:var(--accent);font:700 12.5px var(--font-mono)}.code-panel pre{font:12.5px / 1.65 var(--font-mono);color:color-mix(in srgb, var(--on-inverse) 88%, transparent);white-space:pre;margin:0 0 8px;overflow:hidden}.permission-sheet{background:var(--bg);width:min(300px,86%);color:var(--fg);border-radius:16px;gap:6px;padding:16px 18px;font-size:13.5px;line-height:1.5;display:grid;position:absolute;bottom:0;right:16px;box-shadow:0 16px 40px #00000059}.permission-sheet strong{font-size:15px}.permission-sheet>span:not(.permission-allow){color:var(--muted)}.permission-sheet ul{gap:2px;display:grid}.permission-sheet li:before{content:"✓ ";color:var(--accent-ink);font-weight:700}.permission-allow{background:var(--inverse);color:var(--on-inverse);border-radius:99px;justify-self:end;margin-top:4px;padding:5px 14px;font-size:13px;font-weight:600}.plugin-cta{margin-top:clamp(28px,4vw,44px)}.plugin-band .btn{border-color:color-mix(in srgb, var(--on-inverse) 28%, transparent);color:var(--on-inverse)}.plugin-band .btn:hover{background:color-mix(in srgb, var(--on-inverse) 10%, transparent)}.plugin-band .btn.primary{background:var(--accent);color:#1c120b;border-color:#0000}.plugin-band .btn.primary:hover{background:var(--accent)}.published{padding-block:clamp(56px,8vw,96px) clamp(40px,5vw,64px)}.published-list{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;display:grid}.published-list li{background:var(--surface);border-radius:16px;align-content:start;gap:4px;padding:16px 18px;display:grid}.published-list strong{font-size:15.5px;line-height:1.4}.published-list span{color:var(--muted);font-size:13.5px;line-height:1.55}.closing{text-align:center;justify-items:center;gap:16px;padding-block:clamp(40px,6vw,80px) clamp(64px,8vw,112px);display:grid}.closing img{border-radius:18px}.page-footer{border-top:1px solid var(--line);color:var(--muted);padding-block:28px 36px;font-size:13px;line-height:1.65}.footer-grid{grid-template-columns:minmax(0,1fr) auto;gap:8px 40px;display:grid}.copyright{white-space:nowrap}.page-title{gap:10px;padding-block:clamp(28px,4vw,56px) clamp(20px,3vw,36px);display:grid}.page-title h1,.profile h1{font-size:clamp(34px,4.6vw,56px);font-weight:800;line-height:1.16}.page-title .lead{max-width:44em}.releases{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.release{background:var(--surface);border-radius:22px;flex-direction:column;align-items:stretch;gap:16px;padding:clamp(18px,2.4vw,28px);display:flex}.release header{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.release-icon{background:var(--bg);width:54px;height:54px;color:var(--accent-ink);border-radius:14px;place-items:center;display:grid}.release h2{font-size:21px;line-height:1.3}.release header p{color:var(--muted);font-size:14px}.version{background:var(--inverse);color:var(--on-inverse);border-radius:99px;padding:4px 12px;font-size:13.5px;font-weight:700}.release-desc{color:var(--muted);font-size:15px}.mirrors{gap:8px;display:grid}.mirrors li{background:var(--bg);border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 10px 10px 16px;display:flex}.mirror-name{align-items:center;gap:10px;margin-inline-end:auto;font-size:15px;font-weight:600;display:inline-flex}.specs{gap:6px;margin-top:2px;font-size:13.5px;display:grid}.specs>div{grid-template-columns:76px minmax(0,1fr);align-items:baseline;gap:12px;display:grid}.specs dt{color:var(--muted)}.specs dd{overflow-wrap:anywhere}.specs .sha dd{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.specs code{font-family:var(--font-mono);overflow-wrap:anywhere;word-break:break-all;font-size:12px;line-height:1.5}.chip{border:1px solid var(--line);min-height:28px;color:var(--fg);font:inherit;cursor:pointer;background:0 0;border-radius:99px;padding:3px 11px;font-size:12.5px}.chip:hover{background:var(--surface-2)}.release-links{flex-wrap:wrap;gap:8px 24px;margin-top:auto;display:flex}.notes{gap:28px;padding-block:18px clamp(56px,7vw,88px);display:grid}.ext-note{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;padding-top:28px;display:flex}.ext-note h2{margin-bottom:2px;font-size:21px}.ext-note p{color:var(--muted);font-size:15px}.changelog-filter{background:var(--surface);border-radius:999px;gap:4px;width:fit-content;margin-top:8px;padding:4px;display:inline-flex}.changelog-filter button{min-height:34px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:99px;padding:5px 16px;font-size:14px}.changelog-filter button[aria-pressed=true]{background:var(--inverse);color:var(--on-inverse);font-weight:600}.changelog-list{padding-bottom:clamp(56px,7vw,88px)}.changelog-entry{border-top:1px solid var(--line);grid-template-columns:190px minmax(0,1fr);gap:8px 32px;padding-block:22px;scroll-margin-top:90px;display:grid}.changelog-entry:target{background:linear-gradient(90deg, var(--accent-soft), transparent 60%)}.changelog-entry[hidden]{display:none}.changelog-meta{align-content:start;gap:2px;display:grid}.changelog-meta strong{font-size:19px}.changelog-meta span{color:var(--muted);font-size:13.5px}.changelog-tag{background:var(--surface);border-radius:99px;justify-self:start;padding:1px 10px;font-weight:600;color:var(--fg)!important;font-size:12.5px!important}.changelog-tag.is-3ds{background:var(--accent-soft);color:var(--accent-ink)!important}.changelog-entry ul{gap:6px;padding-inline-start:1.1em;list-style:outside;display:grid}.changelog-entry li::marker{color:var(--muted)}.pager{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding-top:24px;display:flex}.pager[hidden]{display:none}.pager-pages{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.pager button{background:var(--surface);min-width:40px;min-height:40px;color:var(--fg);font:inherit;cursor:pointer;border:0;border-radius:99px;padding:6px 14px;font-size:14px}.pager button:hover:not(:disabled){background:var(--surface-2)}.pager button[aria-current=page]{background:var(--inverse);color:var(--on-inverse);font-weight:600}.pager button:disabled{color:var(--muted);opacity:.55;cursor:default}.profile{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(18px,3vw,36px);padding-block:clamp(32px,5vw,72px) clamp(32px,4vw,56px);display:grid}.profile img{border-radius:24%;width:clamp(84px,11vw,136px);height:auto}.profile-role{color:var(--accent-ink);font-size:15px;font-weight:600}.profile .lead{max-width:40em;margin-top:8px}.small-head{margin-bottom:16px;font-size:20px}.social{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.social a{background:var(--surface);color:inherit;transition:transform .22s var(--ease), box-shadow .16s var(--ease);border-radius:18px;grid-template-columns:auto minmax(0,1fr) 18px;align-items:center;gap:2px 14px;padding:18px;text-decoration:none;display:grid}.social a:hover{box-shadow:0 0 0 2px var(--fg);transform:scale(1.02)}.social-icon{background:var(--bg);border-radius:14px;grid-row:span 2;place-items:center;width:52px;height:52px;display:grid}.social-icon.github{color:var(--fg)}.social-icon.bilibili{color:#e0668f}.social-icon.xiaohongshu{color:#e5344b}.social strong{font-size:17px;line-height:1.4}.social a>span:not(.social-icon){color:var(--muted);grid-column:2;font-size:13.5px;line-height:1.4}.social a>svg{color:var(--muted);grid-area:1/3/span 2}.about-project{padding-block:clamp(32px,5vw,64px) clamp(56px,7vw,96px)}@media (width<=880px){.hero-copy,.section-head,.sync,.control,.plugin-head,.plugin-grid{grid-template-columns:minmax(0,1fr)}.hero-copy,.section-head{align-items:start}.releases,.changelog-entry,.social{grid-template-columns:minmax(0,1fr)}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ratios{max-width:520px}}@media (width<=760px){.page-header{height:108px;padding-block:8px}html{scroll-padding-top:124px}.steps,.footer-grid{grid-template-columns:minmax(0,1fr)}.ext-list a{grid-template-columns:minmax(0,1fr) auto 20px}.ext-list a span{grid-area:2/1/auto/-1}.ext-list a svg{grid-area:1/3}.ext-list a .code-tag{grid-area:1/2}.timeline-fork{left:auto;right:16px;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}.btn.primary:hover,.social a:hover{transform:none}}
