:root{
  color-scheme:dark;
  --vm-bg:#030405;
  --vm-bg-deep:#000000;
  --vm-surface:#0a0c10;
  --vm-surface-raised:#0d1015;
  --vm-surface-high:#11141a;
  --vm-ink:#ecebe6;
  --vm-ink-strong:#f4f2ed;
  --vm-muted:#969ca5;
  --vm-muted-dim:#6f757e;
  --vm-line:color-mix(in srgb,#ecebe6 18%,transparent);
  --vm-line-soft:color-mix(in srgb,#ecebe6 11%,transparent);
  --vm-line-bright:color-mix(in srgb,#ecebe6 18%,transparent);
  --vm-primary:#173c9e;
  --vm-accent:#2b62c9;
  --vm-accent-bright:#7fa7ff;
  --vm-code-warm:#e7d889;
  --vm-code-alert:#e4867f;
  --vm-success:#82c9a4;
  --vm-font-heading:"Inter",-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  --vm-font-body:"Inter",-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  --vm-font-zh-hant:"Inter",-apple-system,"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif;
  --vm-font-ja:"Inter",-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
  --vm-font-ko:"Inter",-apple-system,"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;
  --vm-font-mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
  --vm-text-0:.6875rem;
  --vm-text-1:.75rem;
  --vm-text-2:.875rem;
  --vm-text-3:1rem;
  --vm-text-4:1.25rem;
  --vm-text-5:clamp(1.75rem,3vw,2.75rem);
  --vm-text-6:clamp(2.75rem,5.2vw,4.25rem);
  --vm-leading-tight:1.15;
  --vm-leading-heading:1.18;
  --vm-leading-body:1.72;
  --vm-leading-code:1.65;
  --vm-space-1:.5rem;
  --vm-space-2:1rem;
  --vm-space-3:1.5rem;
  --vm-space-4:2.5rem;
  --vm-space-5:4rem;
  --vm-space-6:6rem;
  --vm-space-7:8rem;
  --vm-space-section:clamp(6rem,11vw,10rem);
  --vm-hero-pad:clamp(5rem,9vw,8rem);
  --vm-hero-pad-crumb:2.5rem;
  --vm-radius-sm:6px;
  --vm-radius-md:8px;
  --vm-radius-lg:14px;
  --vm-radius-pill:999px;
  --vm-shadow-panel:0 24px 100px rgba(0,0,0,.55);
  --vm-shadow-focus:0 0 0 3px rgba(43,98,201,.28);
  --vm-container-narrow:46rem;
  --vm-container-standard:76rem;
  --vm-container-wide:88rem;
  --vm-gutter:clamp(1rem,3.5vw,2rem);
  --vm-duration-fast:180ms;
  --vm-duration-slow:700ms;
  --vm-ease:cubic-bezier(.22,.75,.25,1);
  --vm-header-height:4.875rem;
  --vm-z-header:100;
}
*,
*::before,
*::after{box-sizing:border-box}
html{background:var(--vm-bg);scroll-behavior:auto}
body{
  margin:0;
  min-width:0;
  color:var(--vm-ink);
  background:
    radial-gradient(62rem 38rem at 77% 4%,rgba(33,52,85,.16),transparent 68%),
    var(--vm-bg);
  font-family:var(--vm-font-body);
  font-size:var(--vm-text-2);
  line-height:var(--vm-leading-body);
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
html[lang="zh-Hant"] body{font-family:var(--vm-font-zh-hant)}
html[lang="ja"] body{font-family:var(--vm-font-ja)}
html[lang="ko"] body{font-family:var(--vm-font-ko)}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:90;
  pointer-events:none;
  opacity:.18;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.1'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
}
main{display:block;overflow-x:clip}
header,footer,main,section,article,aside,nav,figure{min-width:0}
img,svg,video,canvas{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
h1,h2,h3,h4,h5,h6{
  margin:0;
  color:var(--vm-ink-strong);
  font-family:var(--vm-font-heading);
  font-weight:400;
  line-height:var(--vm-leading-heading);
  overflow-wrap:anywhere;
}
h1{font-size:var(--vm-text-6);letter-spacing:-.045em}
h2{font-size:var(--vm-text-5);letter-spacing:-.035em}
h3{font-size:var(--vm-text-4);letter-spacing:-.018em}
h4{font-size:var(--vm-text-3);line-height:1.35}
h5{font-size:var(--vm-text-2);line-height:1.4}
h6{font-size:var(--vm-text-1);line-height:1.45}
p{
  margin:0;
  color:var(--vm-muted);
  font-family:var(--vm-font-body);
  font-size:var(--vm-text-2);
  line-height:var(--vm-leading-body);
  overflow-wrap:anywhere;
}
li{
  color:inherit;
  font-family:var(--vm-font-body);
  font-size:var(--vm-text-2);
  line-height:var(--vm-leading-body);
  overflow-wrap:anywhere;
}
small{
  color:inherit;
  font-family:var(--vm-font-body);
  font-size:var(--vm-text-0);
  line-height:1.55;
}
figcaption{
  color:var(--vm-muted);
  font-family:var(--vm-font-body);
  font-size:var(--vm-text-1);
  line-height:1.6;
}
blockquote{
  margin:0;
  color:var(--vm-ink);
  font-family:var(--vm-font-heading);
  font-size:var(--vm-text-4);
  line-height:1.5;
}
code,kbd,samp{
  color:var(--vm-code-warm);
  font-family:var(--vm-font-mono);
  font-size:var(--vm-text-1);
  line-height:var(--vm-leading-code);
  font-variant-numeric:tabular-nums;
}
pre{
  max-width:100%;
  margin:0;
  overflow-x:auto;
  color:var(--vm-ink);
  font-family:var(--vm-font-mono);
  font-size:var(--vm-text-1);
  line-height:var(--vm-leading-code);
  tab-size:2;
  -webkit-overflow-scrolling:touch;
}
th{
  color:var(--vm-ink);
  font-family:var(--vm-font-body);
  font-size:var(--vm-text-1);
  font-weight:600;
  line-height:1.5;
  text-align:left;
}
td{
  color:var(--vm-muted);
  font-family:var(--vm-font-body);
  font-size:var(--vm-text-2);
  line-height:1.55;
}
dt{
  color:var(--vm-muted);
  font-family:var(--vm-font-body);
  font-size:var(--vm-text-1);
  line-height:1.5;
}
dd{
  margin:0;
  color:var(--vm-ink);
  font-family:var(--vm-font-mono);
  font-size:var(--vm-text-2);
  line-height:1.55;
  font-variant-numeric:tabular-nums;
}
label{
  color:var(--vm-ink);
  font-family:var(--vm-font-body);
  font-size:var(--vm-text-2);
  font-weight:550;
  line-height:1.45;
}
strong{color:inherit;font-weight:600}
::selection{color:#f7f8fb;background:#244fae}
:focus-visible{outline:2px solid var(--vm-accent-bright);outline-offset:3px}
[hidden]{display:none!important}
.vm-container,
.vm-container-standard{
  width:min(calc(100% - (var(--vm-gutter) * 2)),var(--vm-container-standard));
  margin-inline:auto;
}
.vm-container-narrow{
  width:min(calc(100% - (var(--vm-gutter) * 2)),var(--vm-container-narrow));
  margin-inline:auto;
}
.vm-container-wide{
  width:min(calc(100% - (var(--vm-gutter) * 2)),var(--vm-container-wide));
  margin-inline:auto;
}
.vm-grid{display:grid;min-width:0}
.vm-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.vm-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.vm-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.vm-grid-auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
.vm-gap-1{gap:var(--vm-space-1)}
.vm-gap-2{gap:var(--vm-space-2)}
.vm-gap-3{gap:var(--vm-space-3)}
.vm-gap-4{gap:var(--vm-space-4)}
.vm-stack>*+*{margin-top:var(--vm-space-2)}
.vm-stack-lg>*+*{margin-top:var(--vm-space-4)}
.vm-section{padding-block:var(--vm-space-section)}
.vm-section-top{padding-top:var(--vm-space-section)}
.vm-section-bottom{padding-bottom:var(--vm-space-section)}
.vm-mono{
  font-family:var(--vm-font-mono);
  font-variant-numeric:tabular-nums;
}
.vm-muted{color:var(--vm-muted)}
.vm-center{text-align:center}
.vm-center>*{margin-inline:auto}
.vm-sr-only{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.reveal{
  opacity:0;
  transform:translate3d(0,1rem,0);
  transition:opacity var(--vm-duration-slow) var(--vm-ease),transform var(--vm-duration-slow) var(--vm-ease);
}
.reveal.reveal-left{transform:translate3d(-1rem,0,0)}
.reveal.reveal-right{transform:translate3d(1rem,0,0)}
.reveal.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
}
@media (max-width:64rem){
  .vm-grid-4,.vm-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:44rem){
  .vm-grid-2,.vm-grid-3,.vm-grid-4{grid-template-columns:1fr}
  .vm-section{padding-block:var(--vm-space-6)}
  .vm-section-top{padding-top:var(--vm-space-6)}
  .vm-section-bottom{padding-bottom:var(--vm-space-6)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  .reveal,.reveal.reveal-left,.reveal.reveal-right{
    opacity:1;
    transform:none;
  }
}
