@import url('/static/icon/iconfont.css');#opensource-page{--opensource-color-ink:var(--ym-deep-color,#1b262c);--opensource-color-primary:var(--ym-main-color,#0f4c75);--opensource-color-link:var(--ym-link-color,#6585ed);--opensource-color-text:#42505a;--opensource-color-muted:#71808b;--opensource-color-line:#dce4e9;--opensource-color-card-border:#e9eef1;--opensource-color-surface:#f7f9fa;--opensource-color-surface-blue:#f3f7fa;--opensource-color-surface-warm:#f8f5f5;--opensource-color-warm:#8a6266;--opensource-color-white:#fff;--opensource-color-current:#afc9de;--opensource-content-width:1200px;--opensource-radius-large:12px;--opensource-radius-medium:8px;--opensource-section-gap:24px;width:min(calc(100% - 48px),var(--opensource-content-width));margin:0 auto;padding:52px 0 34px;color:var(--opensource-color-text);font-family:Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif;line-height:1.7}#opensource-page *,#opensource-page *::before,#opensource-page *::after{box-sizing:border-box}#opensource-page h1,#opensource-page h2,#opensource-page p,#opensource-page ul,#opensource-page dl,#opensource-page dd{margin-top:0}#opensource-page dd{margin-right:0;margin-bottom:0;margin-left:0}#opensource-page h1,#opensource-page h2,#opensource-page strong{color:var(--opensource-color-ink)}.opensource-hero{position:relative;display:flex;min-height:clamp(340px,36vw,432px);align-items:center;overflow:hidden;margin-bottom:36px}.opensource-eyebrow,.opensource-section-index{margin-bottom:8px;color:var(--opensource-color-primary);font-size:12px;font-weight:700;letter-spacing:.14em}.opensource-hero h1{margin-bottom:24px;font-size:clamp(38px,4.2vw,58px);font-weight:700;line-height:1.32;letter-spacing:-.04em}.opensource-hero-copy>p:last-child{max-width:520px;margin-bottom:0;color:var(--opensource-color-text);font-size:16px}.opensource-hero-visual{position:absolute;z-index:0;top:50%;right:0;left:auto;display:block;width:min(64%,768px);height:auto;border:1px solid var(--opensource-color-card-border);border-radius:var(--opensource-radius-large);object-fit:cover;object-position:center;transform:translateY(-50%);-webkit-mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.12) 16%,rgba(0,0,0,.72) 40%,#000 58%);mask-image:linear-gradient(to right,transparent 0,rgba(0,0,0,.12) 16%,rgba(0,0,0,.72) 40%,#000 58%)}.opensource-hero-copy{position:relative;z-index:1;width:min(48%,520px)}.opensource-hero-visual-title{font-size:24px;font-weight:600}.opensource-hero-visual-hint{margin-top:8px;color:var(--opensource-color-muted);font-size:14px}.opensource-strategies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--opensource-section-gap);margin-bottom:var(--opensource-section-gap)}.opensource-strategy{display:flex;min-width:0;flex-direction:column;padding:clamp(28px,3.2vw,44px);border:1px solid var(--opensource-color-card-border);border-radius:var(--opensource-radius-large)}.opensource-strategy-data{background:var(--opensource-color-surface-blue)}.opensource-strategy-support{background:var(--opensource-color-surface-warm)}.opensource-strategy-support .opensource-section-index,.opensource-strategy-support .opensource-points li::before{color:var(--opensource-color-warm)}.opensource-strategy-header h2,.opensource-section-heading h2,.opensource-usage h2{margin-bottom:14px;font-size:clamp(24px,2.2vw,32px);line-height:1.35}.opensource-strategy-header>p:last-child{max-width:54ch;margin-bottom:32px;color:var(--opensource-color-muted);font-size:15px;line-height:1.8}.opensource-points{display:grid;gap:16px;margin:0 0 32px;padding:0;list-style:none}.opensource-points li{position:relative;padding-left:22px}.opensource-points li::before{position:absolute;top:0;left:0;color:var(--opensource-color-primary);content:'•';font-size:22px;line-height:1.25}.opensource-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:auto 0 0;padding:24px 0;border-top:1px solid var(--opensource-color-line);border-bottom:1px solid var(--opensource-color-line)}.opensource-stats>div{min-width:0;padding:0 12px;text-align:center}.opensource-stats>div:first-child{padding-left:0}.opensource-stats>div:last-child{padding-right:0}.opensource-stats dt{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:6px;color:var(--opensource-color-muted);font-size:12px;white-space:nowrap}.opensource-stats dt>.iconfont{color:var(--opensource-color-primary);font-size:15px}.opensource-stats dd{margin-bottom:0;color:var(--opensource-color-primary);font-size:clamp(15px,1.2vw,18px);font-weight:700;letter-spacing:-.025em;line-height:1.3;white-space:nowrap}.opensource-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px}.opensource-action{display:block;min-width:0;color:var(--opensource-color-text);text-decoration:none}.opensource-action strong>.iconfont{color:var(--opensource-color-primary);font-size:20px}.opensource-action>span:last-child{display:flex;min-width:0;flex-direction:column}.opensource-action strong{display:flex;align-items:center;gap:10px;margin-bottom:6px;font-size:15px}.opensource-action small{min-height:64px;color:var(--opensource-color-muted);font-size:12px;line-height:1.7}.opensource-action em{margin-top:7px;color:var(--opensource-color-primary);font-size:13px;font-style:normal;font-weight:600}.opensource-action:hover em,.opensource-action:focus em,.opensource-usage>a:hover,.opensource-usage>a:focus{color:var(--opensource-color-link)}.opensource-support-highlight{margin-top:auto;padding:24px;border:1px solid rgba(27,38,44,.22);border-radius:var(--opensource-radius-medium);background:rgba(255,255,255,.52)}.opensource-support-highlight p{margin-bottom:20px;color:var(--opensource-color-ink);font-size:16px;font-weight:600}.opensource-support-highlight .opensource-support-note{color:var(--opensource-color-muted);font-size:13px;font-weight:400}.opensource-primary-button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:9px;padding:0 22px;border-radius:6px;background:var(--opensource-color-primary);color:var(--opensource-color-white);font-weight:600;text-decoration:none;transition:background-color .2s ease}.opensource-primary-button:hover,.opensource-primary-button:focus{background:var(--opensource-color-ink);color:var(--opensource-color-white)}.opensource-api-usage{margin-bottom:var(--opensource-section-gap);padding:clamp(28px,3.2vw,44px);border:1px solid var(--opensource-color-card-border);border-radius:var(--opensource-radius-large);background:var(--opensource-color-white)}.opensource-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:34px}.opensource-section-heading h2,.opensource-section-heading p{margin-bottom:0}.opensource-section-heading>p{max-width:520px;color:var(--opensource-color-muted);font-size:13px;text-align:right}.opensource-chart{display:grid;height:330px;grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:clamp(16px,3vw,42px);padding:24px 26px 0;border-bottom:1px solid var(--opensource-color-line);background-image:repeating-linear-gradient(to top,transparent 0,transparent 69px,rgba(220,228,233,.7) 70px)}.opensource-chart-column{display:grid;height:100%;grid-template-rows:minmax(0,1fr) 28px 24px;align-items:end;text-align:center}.opensource-chart-count,.opensource-chart-month,.opensource-chart-status{white-space:nowrap}.opensource-chart-count{position:absolute;bottom:calc(var(--opensource-bar-value)+6px);left:50%;transform:translateX(-50%);color:var(--opensource-color-ink);font-size:13px;font-weight:600}.opensource-chart-track{position:relative;display:flex;width:100%;height:100%;align-items:flex-end;justify-content:center}.opensource-chart-bar{display:block;width:min(58px,64%);height:var(--opensource-bar-value);min-height:2px;border-radius:5px 5px 0 0;background:var(--opensource-color-primary)}.opensource-chart-column.is-current .opensource-chart-bar{background:var(--opensource-color-current)}.opensource-chart-month{padding-top:8px;color:var(--opensource-color-muted);font-size:12px}.opensource-chart-status{align-self:start;color:var(--opensource-color-link);font-size:11px}.opensource-chart-empty{margin-bottom:0;padding:56px 24px;border:1px dashed var(--opensource-color-card-border);color:var(--opensource-color-muted);text-align:center}.opensource-usage{display:grid;grid-template-areas:'title action' 'rules rules';grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:28px;row-gap:22px;padding:26px 30px;border:1px solid var(--opensource-color-card-border);border-radius:var(--opensource-radius-large);background:var(--opensource-color-surface-blue)}.opensource-usage-title{display:flex;grid-area:title;align-items:center;gap:14px}.opensource-usage-title>.iconfont{color:var(--opensource-color-primary);font-size:32px}.opensource-usage h2,.opensource-usage .opensource-section-index{margin-bottom:0}.opensource-usage h2{font-size:22px}.opensource-usage ul{display:grid;grid-area:rules;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:0;padding:0;list-style:none}.opensource-usage li{display:flex;min-width:0;align-items:center;justify-content:center;gap:10px;padding:0 20px;border-right:1px solid var(--opensource-color-line);font-size:13px;line-height:1.65}.opensource-usage li:last-child{border-right:0}.opensource-usage li>.iconfont{flex:0 0 auto;color:var(--opensource-color-primary);font-size:24px}.opensource-usage li>span:last-child{min-width:0;text-align:center}.opensource-usage>a{grid-area:action;color:var(--opensource-color-primary);font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap}#opensource-page .opensource-closing{margin:18px 0 0;color:var(--opensource-color-muted);font-size:12px;text-align:center}@media(max-width:1080px){.opensource-hero{min-height:clamp(340px,40vw,420px)}.opensource-strategies{grid-template-columns:1fr}.opensource-action small{min-height:0}.opensource-usage ul{width:100%}}@media(max-width:760px){#opensource-page{--opensource-section-gap:16px;width:min(calc(100% - 32px),var(--opensource-content-width));padding:28px 0 30px}.opensource-hero{display:grid;min-height:0;grid-template-columns:1fr;gap:26px;margin-bottom:24px;overflow:visible}.opensource-hero h1{margin-bottom:16px;font-size:34px}.opensource-hero-visual-title{font-size:20px}.opensource-hero-copy{width:auto}.opensource-hero-visual{position:static;width:100%;height:auto;object-fit:contain;transform:none;-webkit-mask-image:none;mask-image:none}.opensource-strategy,.opensource-api-usage{padding:24px 20px}.opensource-stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px}.opensource-stats>div,.opensource-stats>div:first-child,.opensource-stats>div:last-child{padding:0 12px;border-right:0}.opensource-actions{grid-template-columns:1fr}.opensource-primary-button{display:none}.opensource-action{padding-bottom:18px;border-bottom:1px solid var(--opensource-color-line)}.opensource-action:last-child{padding-bottom:0;border-bottom:0}.opensource-section-heading{display:block;margin-bottom:26px}.opensource-section-heading>p{margin-top:12px;text-align:left}.opensource-chart{display:flex;height:auto;flex-direction:column;align-items:stretch;gap:14px;padding:0;border-bottom:0;background:0}.opensource-chart-column{display:grid;height:auto;grid-template-columns:70px minmax(0,1fr) auto;grid-template-rows:auto auto;gap:4px 10px;align-items:center;text-align:left}.opensource-chart-month{grid-column:1;grid-row:1;padding:0}.opensource-chart-track{width:auto;height:10px;grid-column:2 / 4;grid-row:1;align-items:center;justify-content:flex-start;border-radius:5px;background:var(--opensource-color-surface)}.opensource-chart-bar{width:var(--opensource-bar-value);height:10px;border-radius:5px}.opensource-chart-count{top:50%;right:0;bottom:auto;left:auto;padding-left:10px;transform:translateY(-50%);background:var(--opensource-color-white)}.opensource-chart-status{grid-column:2 / 4;grid-row:2}.opensource-usage ul{display:grid;grid-template-columns:1fr;gap:10px}.opensource-usage{grid-template-areas:'title' 'action' 'rules';grid-template-columns:1fr;row-gap:14px}.opensource-usage li,.opensource-usage li:first-child,.opensource-usage li:last-child{padding:10px 0;border-right:0}.opensource-usage li:not(:last-child){border-bottom:1px solid var(--opensource-color-line)}}@media(prefers-reduced-motion:reduce){.opensource-primary-button{transition:none}}