:root{--bg-void:#fff;--bg-ink:#f6f8fb;--bg-paper:#eef1f6;--bg-elevated:#e4e9f0;--bg-raised:#d7dee8;--text-primary:#0b0e14;--text-secondary:#525a6b;--text-tertiary:#878e9c;--text-inverse:#fff;--border-subtle:#0b0e140f;--border-standard:#0b0e141a;--border-strong:#0b0e1429;--shadow-panel:0 20px 60px #0b0e141a;--shadow-card:0 14px 44px #0b0e1414;--accent:#2563eb;--accent-dim:#1d4ed8;--accent-glow:color-mix(in srgb, var(--accent) 14%, transparent);--accent-subtle:color-mix(in srgb, var(--accent) 7%, transparent);--accent-border:color-mix(in srgb, var(--accent) 30%, transparent);--font-sans:-apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", system-ui, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-en:var(--font-sans);--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", monospace;--sp-xs:5px;--sp-sm:10px;--sp-md:14px;--sp-lg:20px;--sp-xl:28px;--sp-2xl:40px;--sp-3xl:56px;--sp-4xl:88px;--sp-5xl:128px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--ease:cubic-bezier(.32, .72, 0, 1);--ease-soft:cubic-bezier(.4, 0, .2, 1);--dur-fast:.18s;--dur:.36s;--dur-slow:.52s;--max-content:1120px;--site-nav-height:68px}*,:before,:after{box-sizing:border-box}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur:0s;--dur-slow:0s}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}html,body{margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg-void);color:var(--text-primary);font-family:var(--font-en);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;min-height:100dvh;font-size:16px;line-height:1.6;display:flex}main{flex:1 0 auto}a{color:var(--text-primary);text-decoration:underline;-webkit-text-decoration-color:var(--accent-border);text-decoration-color:var(--accent-border);text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-soft), text-decoration-color var(--dur-fast) var(--ease-soft)}a:hover{color:var(--accent-dim);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}img{max-width:100%;height:auto;display:block}button{font-family:inherit}h1,h2,h3,h4{font-family:var(--font-en);color:var(--text-primary);letter-spacing:-.01em;margin:0;line-height:1.15}p{margin:0}.container{width:100%;max-width:var(--max-content);padding:0 var(--sp-lg);margin:0 auto}.section{padding:var(--sp-4xl) 0}.section--tight{padding:var(--sp-2xl) 0}.section__title{letter-spacing:-.025em;margin:0 0 var(--sp-2xl);font-size:clamp(26px,3.2vw,38px);font-weight:800}.site-header{height:var(--site-nav-height);border-bottom:1px solid var(--border-subtle);background:color-mix(in srgb, var(--bg-void) 92%, transparent);-webkit-backdrop-filter:saturate(1.1)blur(8px);backdrop-filter:saturate(1.1)blur(8px);z-index:10;align-items:center;display:flex;position:sticky;top:0}.site-header__inner{justify-content:space-between;align-items:center;width:100%;display:flex}.site-header__left,.site-header__right{align-items:center;gap:var(--sp-xl);display:flex}.site-header__right{gap:var(--sp-md)}.site-header__brand{align-items:center;gap:var(--sp-sm);color:var(--text-primary);font-weight:600;text-decoration:none;display:inline-flex}.site-header__brand:hover{color:var(--text-primary)}.site-header__logo{width:auto;height:22px;display:block}.site-header__lang{color:var(--text-secondary);border-radius:var(--radius-sm);padding:6px 10px;font-size:14px;text-decoration:none}.site-header__lang:hover{color:var(--text-primary);background:var(--bg-ink)}.site-header__cta{height:36px;padding:0 var(--sp-md);border-radius:var(--radius-sm);background:var(--text-primary);color:var(--text-inverse);transition:background var(--dur-fast) var(--ease-soft);align-items:center;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.site-header__cta:hover{color:var(--text-inverse);background:var(--accent)}.site-header__nav{gap:var(--sp-lg);align-items:center;display:flex}.site-header__nav a{color:var(--text-secondary);font-size:14.5px;text-decoration:none}.site-header__nav a:hover{color:var(--text-primary)}@media (max-width:640px){.site-header__left{gap:var(--sp-md)}.site-header__nav{display:none}}.hero{padding:var(--sp-5xl) 0 var(--sp-4xl)}.hero__inner{text-align:center}.hero__title{letter-spacing:-.03em;margin:0 auto var(--sp-xl);font-size:clamp(34px,5.6vw,68px);font-weight:800;line-height:1.12}.hero__ctas{justify-content:center;align-items:center;gap:var(--sp-lg);flex-wrap:wrap;display:flex}.hero__note{margin:var(--sp-xl) auto 0;max-width:54ch;color:var(--text-tertiary);font-size:13.5px;line-height:1.6}.cta{justify-content:center;align-items:center;gap:var(--sp-sm);min-height:50px;padding:0 var(--sp-xl);border-radius:var(--radius-md);background:var(--accent);color:var(--text-inverse);transition:transform var(--dur-fast) var(--ease-soft), background var(--dur-fast) var(--ease-soft);border:1px solid #0000;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}.cta:hover{color:var(--text-inverse);background:var(--accent-dim);transform:translateY(-1px)}.cta-link{color:var(--text-primary);transition:color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft);border-bottom:1px solid #0000;align-items:center;gap:6px;padding-bottom:2px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.cta-link:hover{color:var(--accent);border-bottom-color:var(--accent-border)}@media (max-width:560px){.hero{padding:var(--sp-3xl) 0 var(--sp-2xl)}.hero__ctas{gap:var(--sp-md)}.cta{flex:1 0 100%}.cta-link{flex:none}}.skill{padding-top:0}.skill__inner{text-align:center}.skill__title{margin-bottom:var(--sp-sm);font-size:clamp(22px,2.4vw,30px)}.skill__lede{color:var(--text-secondary);max-width:40em;margin:0 auto var(--sp-xl);text-wrap:pretty;font-size:15.5px;line-height:1.65}.skill__box{justify-content:space-between;align-items:center;gap:var(--sp-lg);max-width:660px;padding:var(--sp-md) var(--sp-md) var(--sp-md) var(--sp-lg);background:var(--text-primary);border-radius:var(--radius-md);text-align:left;margin:0 auto;display:flex}.skill__cmd{font-family:var(--font-mono);color:var(--text-inverse);white-space:nowrap;font-size:14.5px;overflow-x:auto}.skill__cmd:before{content:"$ ";color:#ffffff73}.skill__copy{color:var(--text-inverse);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease-soft);background:#ffffff14;border:1px solid #ffffff38;flex:none;padding:7px 14px;font-size:13.5px;font-weight:600}.skill__copy:hover{background:#ffffff2e}.skill__note{margin:var(--sp-lg) auto 0;max-width:44em;color:var(--text-tertiary);text-wrap:pretty;font-size:13.5px;line-height:1.6}@media (max-width:560px){.skill__box{align-items:stretch;gap:var(--sp-md);padding:var(--sp-md);flex-direction:column}.skill__copy{width:100%}}.coming-soon{padding:var(--sp-3xl) 0;background:var(--bg-ink);border-top:1px solid var(--border-subtle);text-align:center}.coming-soon__text{color:var(--text-tertiary);text-wrap:pretty;margin:0;font-size:15px;line-height:1.65}.site-footer{padding:var(--sp-3xl) 0 var(--sp-2xl);border-top:1px solid var(--border-standard);background:var(--bg-void);color:var(--text-tertiary);font-size:14px}.site-footer__inner{align-items:flex-start;gap:var(--sp-lg);flex-direction:column;display:flex}.site-footer__brand{letter-spacing:-.01em;color:var(--text-primary);font-size:17px;font-weight:700}.site-footer__links{gap:var(--sp-xl);flex-wrap:wrap;display:flex}.site-footer__links a{color:var(--text-secondary);font-size:14.5px;text-decoration:none}.site-footer__links a:hover{color:var(--accent)}.site-footer__rights{color:var(--text-tertiary);font-size:13.5px}.cl-main{padding:var(--sp-3xl) var(--sp-lg) var(--sp-3xl)}.cl-head h1{letter-spacing:-.02em;margin:0 0 var(--sp-sm);color:var(--text-primary);font-size:34px}.cl-head-row{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.cl-lang{flex:none;gap:4px;display:inline-flex}.cl-lang-btn{border:1px solid var(--border,#e5e0d8);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:999px;padding:4px 12px;font-size:13px}.cl-lang-btn.is-on{background:var(--text-primary);border-color:var(--text-primary);color:var(--bg,#faf7f2)}.cl-sub{color:var(--text-secondary);margin:0;font-size:15px}.cl-entries{margin-top:var(--sp-2xl);gap:var(--sp-2xl);flex-direction:column;display:flex}.cl-entry{padding-top:var(--sp-xl);border-top:1px solid var(--border-standard)}.cl-entry__head{align-items:baseline;gap:var(--sp-md);flex-wrap:wrap;display:flex}.cl-entry__version{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:19px;font-weight:650;text-decoration:none}.cl-entry__version:hover{color:var(--accent-dim)}.cl-entry__date{color:var(--text-tertiary);font-variant-numeric:tabular-nums;font-size:13.5px}.cl-entry__note{color:var(--text-tertiary);font-size:13px}.cl-entry__lead{margin:var(--sp-md) 0 0;color:var(--text-primary);text-wrap:balance;font-size:16.5px;font-weight:600}.cl-group{margin-top:var(--sp-lg)}.cl-badge{letter-spacing:.05em;border:1px solid var(--border-standard);color:var(--text-secondary);background:var(--bg-ink);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-block}.cl-badge--new{color:var(--accent-dim);border-color:var(--accent-border);background:var(--accent-subtle)}.cl-badge--latest{color:var(--text-inverse);background:var(--accent-dim);border-color:#0000}.cl-items{margin:var(--sp-sm) 0 0;flex-direction:column;gap:6px;padding-left:1.15em;display:flex}.cl-items li{color:var(--text-secondary);max-width:46em;font-size:15px;line-height:1.65}.cl-items li::marker{color:var(--accent)}.cl-items strong{color:var(--text-primary);font-weight:600}.cl-figure{margin:var(--sp-md) 0 0;max-width:46em;font-size:15px}.cl-figure img{border:1px solid var(--border-standard);border-radius:var(--radius-md);background:var(--bg-ink);max-width:100%;height:auto}.cl-figure figcaption{margin-top:var(--sp-xs);color:var(--text-tertiary);font-size:13px;line-height:1.55}.cl-dev-note{margin-top:var(--sp-3xl);padding-top:var(--sp-lg);border-top:1px solid var(--border-subtle);color:var(--text-tertiary);font-size:13.5px}.cl-dev-note a{color:var(--text-secondary)}
