:root {
  --bg:#FBFCFC;
  --bg-panel:#FFFFFF;
  --bg-panel-2:#F3EFFB;
  --border:#E4E5E9;
  --border-soft:#EEEFF2;
  --border-lav:#E5DDF4;
  --accent:#8457D6;
  --accent-dark:#5E3BAE;
  --text:#16161A;
  --text-muted:#62636B;
  --text-faint:#9A9BA3;
  --success:#2F8F5B;
  --warn:#B7791F;
  --error:#CF4436;
  --chrome:#F7F7F9;
  --sidebar:#FAFAFB;
  --row-active:#EEEEF1;
  --track-off:#D9DADF;
  --code-bg:#FCFCFD;
  --on-dark:#FFFFFF;
  --clear:transparent;
  --accent-grad:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);
  --accent-tint:rgba(132,87,214,.08);
  --accent-ring:rgba(132,87,214,.45);
  --glyph-lo:rgba(132,87,214,.13);
  --glyph-hi:rgba(132,87,214,.22);
  --veil:rgba(255,255,255,.72);
  --dot-edge:rgba(22,22,26,.14);
  --mask-solid:rgba(0,0,0,1);
  --mask-clear:rgba(0,0,0,.2);
  --scrim:rgba(22,22,26,.25);
  --shadow-chip:0 1px 2px rgba(22,22,26,.05);
  --shadow-near:0 1px 2px rgba(22,22,26,.06),0 6px 16px -6px rgba(22,22,26,.10);
  --shadow-far:0 36px 90px -28px rgba(94,59,174,.30),0 70px 150px -40px rgba(22,22,26,.16);
  --shadow-knob:0 1px 2px rgba(22,22,26,.22);
  --font-display:'Inter','Noto Sans SC','PingFang SC','Hiragino Sans','Apple SD Gothic Neo','Malgun Gothic','Microsoft YaHei',sans-serif;
  --font-body:'Inter','Noto Sans SC','PingFang SC','Hiragino Sans','Yu Gothic','Apple SD Gothic Neo','Malgun Gothic','Microsoft YaHei',sans-serif;
  --font-mono:'JetBrains Mono','SFMono-Regular','Menlo','Consolas','Liberation Mono',monospace;
  --radius-btn:3px;
  --radius-inset:4px;
  --radius:6px;
  --radius-lg:8px;
  --radius-round:50%;
  --radius-pill:999px;
  --wrap:1200px;
  --reading:800px;
  --gutter:40px;
  --header-height:64px;
  --weight-regular:400;
  --weight-medium:500;
  --size-h1:clamp(2.125rem,3.4vw,3rem);
  --size-h2:clamp(1.5rem,2.5vw,2rem);
  --ease:220ms ease;
}
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:24px; }
html.nav-open { overflow:hidden; }
body { margin:0; background:var(--bg); color:var(--text); font:16px/1.6 var(--font-body); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
[hidden] { display:none!important; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--accent-dark); }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; }
:where(a,button,input,select,textarea,summary):focus-visible { outline:2px solid var(--accent-dark); outline-offset:3px; border-radius:var(--radius-btn); }
img,svg { display:block; max-width:100%; }
img { height:auto; }
svg,.tag__dot,.state::before { flex-shrink:0; }
h1,h2,h3 { font-family:var(--font-display); font-weight:var(--weight-regular); text-wrap:balance; }
h1 { font-size:var(--size-h1); line-height:1.12; letter-spacing:-.008em; }
h2 { font-size:var(--size-h2); line-height:1.25; }
h3 { font-size:1.25rem; line-height:1.4; }
p { margin:0 0 1.25em; }
strong { font-weight:var(--weight-medium); }
code,kbd,pre { font-family:var(--font-mono); }
code { overflow-wrap:anywhere; }
pre { max-width:100%; overflow-x:auto; padding:20px; border:1px solid var(--border); border-radius:var(--radius); background:var(--code-bg); color:var(--text); font-size:.8125rem; line-height:1.8; }
pre code { overflow-wrap:normal; word-break:normal; white-space:pre; }
.wrap { width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.reading { max-width:var(--reading); margin-inline:auto; padding-inline:var(--gutter); }
.section { padding-top:96px; padding-bottom:104px; }
.section--panel { background:var(--bg-panel); color:var(--text); }
.section--lavender { position:relative; overflow-x:clip; background:var(--bg-panel-2); color:var(--text); }
.grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.grid > *, .win__body > *, .feature-window > *, .footer-grid > * { min-width:0; }
.keep { white-space:nowrap; }
.muted { color:var(--text-muted); }
.eyebrow { font-family:var(--font-mono); font-size:12px; letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); }
.prose { min-width:0; line-height:1.85; }
.prose h2 { margin-top:2.5em; }
.prose h3 { margin-top:1.8em; }
.prose a { text-decoration:underline; text-underline-offset:4px; }
.prose li + li { margin-top:.5em; }
.prose :where(p,li) { overflow-wrap:break-word; }
.prose pre { line-height:1.8; }
.panel,.card { min-width:0; padding:28px; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--bg-panel); color:var(--text); box-shadow:var(--shadow-near); }
.card h3,.panel h3 { margin:0 0 12px; }
.card p:last-child,.panel p:last-child { margin-bottom:0; }
.actions { margin-top:28px; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:18px 30px; }
.btn-primary,.btn-secondary { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:46px; padding:10px 22px; border:1px solid var(--clear); border-radius:var(--radius-btn); font:13.5px/1.5 var(--font-mono); letter-spacing:.1em; text-transform:uppercase; text-align:center; }
.btn-primary { background:var(--text); color:var(--on-dark); box-shadow:var(--shadow-near); }
.btn-primary:hover,.btn-primary.is-hover { background:var(--accent-dark); color:var(--on-dark); }
.btn-primary:active,.btn-primary.is-pressed { background:var(--text-muted); color:var(--on-dark); box-shadow:none; }
.btn-primary:disabled,.btn-primary[aria-disabled="true"] { background:var(--row-active); color:var(--text-muted); box-shadow:none; }
.btn-secondary { border-color:var(--border); background:var(--bg-panel); color:var(--text); }
.btn-secondary:hover { border-color:var(--accent-dark); background:var(--bg-panel); color:var(--accent-dark); }
.btn-text { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:4px 0; border-bottom:1px solid var(--text); font:13.5px/1.6 var(--font-mono); letter-spacing:.1em; text-transform:uppercase; color:var(--text); }
.btn-text:hover { color:var(--accent-dark); border-bottom-color:var(--accent-dark); }
.btn-primary svg,.btn-secondary svg { width:15px; height:15px; }
.topbar { position:relative; z-index:40; background:var(--bg); color:var(--text); border-bottom:1px solid var(--border-soft); }
.topbar__in { max-width:min(100%,calc(1280px + var(--gutter) * 2)); margin:0 auto; padding-inline:var(--gutter); height:var(--header-height); display:flex; align-items:stretch; gap:12px; }
.brand { display:inline-flex; align-items:center; gap:10px; flex-shrink:0; font-family:var(--font-display); font-size:17px; font-weight:var(--weight-medium); letter-spacing:-.005em; }
.brand img { width:26px; height:26px; flex-shrink:0; }
.tabs-wrap { min-width:0; margin-left:auto; }
.tabs { display:flex; align-items:center; list-style:none; margin:0; padding:0; height:100%; gap:0; }
.tabs li { height:100%; }
.tabs a { position:relative; display:flex; align-items:center; justify-content:center; height:100%; padding:0 15px; font-size:14.5px; color:var(--text-muted); white-space:nowrap; }
.tabs a::after { content:""; position:absolute; left:15px; right:15px; bottom:-1px; height:2px; background:var(--border); color:var(--text); transform:scaleX(0); transform-origin:left center; transition:transform var(--ease); }
.tabs a:hover { color:var(--accent-dark); }
.tabs a:hover::after { transform:scaleX(1); }
.tabs a[aria-current="page"] { color:var(--text); }
.tabs a[aria-current="page"]::after { background:var(--accent-grad); color:var(--text); transform:scaleX(1); }
.header-tools { display:flex; align-items:center; flex-shrink:0; gap:8px; margin-left:10px; }
.language { position:relative; }
.lang { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:32px; padding:5px 12px; border:1px solid var(--border); border-radius:var(--radius); background:var(--bg-panel); color:var(--text-muted); font:13px/1.5 var(--font-body); white-space:nowrap; }
.lang svg { width:14px; height:14px; }
.lang-short { display:none; }
.language-menu { position:absolute; top:calc(100% + 10px); right:0; width:190px; padding:6px; border:1px solid var(--border); border-radius:var(--radius); background:var(--bg-panel); color:var(--text); box-shadow:var(--shadow-near); z-index:45; }
.language-menu a { display:flex; align-items:center; min-height:44px; padding:8px 12px; border-radius:var(--radius-inset); }
.language-menu a:hover,.language-menu a[aria-current="true"] { background:var(--row-active); color:var(--text); }
.menu-toggle { display:none; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:10px; border:1px solid var(--border); border-radius:var(--radius); background:var(--bg-panel); color:var(--text); }
.menu-toggle svg { width:20px; height:20px; }
.mobile-drawer { position:absolute; top:100%; left:0; right:0; padding:16px var(--gutter) 24px; max-height:calc(100dvh - var(--header-height)); overflow-y:auto; overscroll-behavior:contain; border-bottom:1px solid var(--border); background:var(--bg-panel); color:var(--text); z-index:44; }
.mobile-drawer ul { list-style:none; margin:0; padding:0; }
.mobile-drawer a { display:flex; align-items:center; width:100%; min-height:44px; padding:10px 12px; border-bottom:1px solid var(--border-soft); }
.mobile-drawer a[aria-current] { background:var(--row-active); color:var(--text); }
.mobile-drawer__languages { margin-top:20px; }
.nav-veil { position:fixed; inset:var(--header-height) 0 0; border:0; background:var(--scrim); color:var(--text); z-index:30; }
.static-language summary { list-style:none; cursor:pointer; }
.static-language summary::-webkit-details-marker { display:none; }
.site-footer { border-top:1px solid var(--border); background:var(--bg-panel); color:var(--text); padding-top:64px; padding-bottom:28px; }
.footer-grid { display:grid; grid-template-columns:1.25fr .8fr 1.4fr .7fr; gap:40px; }
.footer-brand p { max-width:280px; margin:20px 0 0; font-size:14px; color:var(--text-muted); }
.site-footer h2 { margin:0 0 18px; font:12px/1.6 var(--font-mono); letter-spacing:.12em; color:var(--text-muted); }
.footer-links { list-style:none; margin:0; padding:0; }
.footer-links a { display:inline-flex; align-items:center; min-height:36px; font-size:13px; }
.footer-bottom { display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; margin-top:44px; padding-top:22px; border-top:1px solid var(--border-soft); font:12px/1.7 var(--font-mono); color:var(--text-muted); }
.reveal { opacity:1; transform:none; }
.reveal.is-observed { opacity:0; transform:translateY(14px); transition:opacity 650ms ease,transform 650ms ease; }
.reveal.shown { opacity:1; transform:none; }
@media (max-width:1279px) {
  .topbar__in { gap:8px; }
  .tabs-wrap { display:none; }
  .header-tools { margin-left:auto; }
  .menu-toggle { display:inline-flex; }
}
@media (min-width:1280px) {
  .mobile-drawer,.nav-veil { display:none!important; }
}
@media (max-width:768px) {
  :root { --gutter:24px; --size-h1:clamp(1.5rem,6.4vw,1.875rem); }
  .section { padding-top:64px; padding-bottom:64px; }
  .grid { grid-template-columns:minmax(0,1fr); }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 24px; }
}
@media (max-width:640px) {
  :root { --gutter:18px; --header-height:64px; }
  .tilt,[data-tilt] { transform:none!important; }
  .brand { font-size:15px; gap:8px; }
  .header-tools { margin-left:auto; gap:6px; }
  .lang { padding-inline:9px; }
  .lang-full { display:none; }
  .lang-short { display:inline; }
  .card,.panel { padding:20px; }
  .footer-grid { grid-template-columns:minmax(0,1fr); }
  .footer-brand p { max-width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .reveal.is-observed { opacity:1; transform:none; }
}