:root {
  --c-bg:#FFFFFF;
  --c-surface:#FFFFFF;
  --c-panel:#F6F6F5;
  --c-panel-2:#EDEDEB;
  --c-border:#E4E4E1;
  --c-accent:#7DBE12;
  --c-accent-dark:#3F7A06;
  --c-accent-soft:#EEF7DA;
  --c-accent-softer:#F7FBEE;
  --c-grad-from:#A6DA2C;
  --c-grad-to:#6CB012;
  --c-text:#16181B;
  --c-on-accent:#16181B;
  --c-muted:#63666B;
  --c-success:#1F9D57;
  --c-warn:#D48A00;
  --c-error:#D93A3F;
  --c-clear:transparent;
  --c-veil:rgba(22,24,27,.24);
  --grad-accent:linear-gradient(135deg,var(--c-grad-from) 0%,var(--c-grad-to) 100%);
  --grad-accent-v:linear-gradient(180deg,var(--c-grad-from) 0%,var(--c-grad-to) 100%);
  --font-display:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans","Apple SD Gothic Neo","Malgun Gothic","Microsoft YaHei",system-ui,sans-serif;
  --font-body:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans","Apple SD Gothic Neo","Malgun Gothic","Microsoft YaHei",system-ui,sans-serif;
  --font-mono:"JetBrains Mono","SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
  --fs-micro:10px;
  --fs-tiny:11px;
  --fs-xs:12px;
  --fs-code:12.5px;
  --fs-sm:13px;
  --fs-ui:13.5px;
  --fs-label:14px;
  --fs-nav:15px;
  --fs-body:16px;
  --fs-lead:17px;
  --fs-large:20px;
  --fs-h3:24px;
  --fs-feature:28px;
  --fs-h2:32px;
  --fs-h1:clamp(34px,3.35vw,48px);
  --weight-normal:400;
  --weight-medium:500;
  --weight-semibold:600;
  --r-line:2px;
  --r-bar:3px;
  --r-xs:6px;
  --r-sm:8px;
  --r-control:10px;
  --r-md:12px;
  --r-lg:18px;
  --r-xl:24px;
  --r-tray:32px;
  --r-pill:999px;
  --r-round:50%;
  --sh-xs:0 1px 2px rgba(22,24,27,.06),0 2px 6px rgba(22,24,27,.04);
  --sh-soft:0 2px 6px rgba(22,24,27,.04),0 12px 32px -8px rgba(22,24,27,.10);
  --sh-btn:0 1px 2px rgba(22,24,27,.08),0 8px 20px -8px rgba(22,24,27,.22);
  --sh-window:0 1px 3px rgba(22,24,27,.05),0 18px 40px -14px rgba(22,24,27,.14),0 56px 110px -28px rgba(22,24,27,.20);
  --sh-strip:0 2px 6px rgba(22,24,27,.06),0 22px 44px -16px rgba(22,24,27,.22);
  --sh-float:0 3px 8px rgba(22,24,27,.07),0 26px 52px -16px rgba(22,24,27,.26),0 60px 90px -40px rgba(22,24,27,.22);
  --sh-seal:0 4px 10px rgba(22,24,27,.08),0 30px 60px -18px rgba(22,24,27,.30);
  --ring-focus:0 0 0 3px var(--c-accent-soft),0 0 0 5px var(--c-accent-dark);
  --gutter:56px;
  --width-shell:1440px;
  --width-reading:1120px;
  --width-article:800px;
  --header-height:76px;
  --ease-ui:.2s ease;
  --ease-reveal:.6s ease;
  --z-veil:30;
  --z-header:40;
  --z-fab:20;
}
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:24px; }
html.nav-open { overflow:hidden; }
body {
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:1.6;
  color:var(--c-text);
  background:var(--c-bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; }
img,svg { display:block; max-width:100%; }
svg,img { flex-shrink:0; }
img { height:auto; }
button { border:0; }
[hidden] { display:none !important; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline:2px solid var(--c-clear);
  box-shadow:var(--ring-focus);
  border-radius:var(--r-xs);
}
::selection { background:var(--c-accent-soft); color:var(--c-text); }
h1,h2,h3,h4 {
  font-family:var(--font-display);
  font-weight:var(--weight-normal);
  line-height:1.3;
  letter-spacing:-.018em;
  text-wrap:balance;
  overflow-wrap:break-word;
}
h1 { font-size:var(--fs-h1); line-height:1.16; }
h2 { font-size:var(--fs-h2); }
h3 { font-size:var(--fs-h3); }
strong,b { font-weight:var(--weight-semibold); }
em { font-style:normal; }
code,kbd,pre { font-family:var(--font-mono); }
code { overflow-wrap:anywhere; }
pre {
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  padding:24px;
  border-radius:var(--r-lg);
  background:var(--c-panel);
  color:var(--c-text);
  font-size:var(--fs-label);
  line-height:1.8;
  tab-size:2;
}
pre code { overflow-wrap:normal; word-break:normal; white-space:pre; }
hr { border:0; border-top:1px solid var(--c-border); margin-block:32px; }
:where(section,article,aside,main,nav,div) { min-width:0; }
.shell { max-width:var(--width-shell); margin-inline:auto; padding-inline:var(--gutter); }
.wrap { max-width:var(--width-reading); margin-inline:auto; padding-inline:var(--gutter); }
.reading { max-width:var(--width-article); margin-inline:auto; padding-inline:var(--gutter); }
.section { padding-top:96px; padding-bottom:96px; }
.section-head { margin-bottom:32px; }
.section-head p { margin-top:12px; color:var(--c-muted); }
.keep { white-space:nowrap; }
.muted { color:var(--c-muted); }
.mono { font-family:var(--font-mono); }
.text-link { color:var(--c-accent-dark); text-underline-offset:4px; }
.text-link:hover { text-decoration:underline; }
.sr-only {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
.prose { line-height:1.9; }
.prose :where(p,ul,ol,pre,blockquote,table,details) { margin-block:20px; }
.prose :where(ul,ol) { padding-inline-start:1.5em; }
.prose li + li { margin-top:8px; }
.prose h2 { margin-top:64px; margin-bottom:24px; }
.prose h3 { margin-top:36px; margin-bottom:16px; }
.prose a:not([class*="btn"]):not([class*="button"]) { color:var(--c-accent-dark); text-decoration:underline; text-underline-offset:4px; }
.prose :not(pre) > code {
  background:var(--c-panel); color:var(--c-text);
  padding:2px 5px; border-radius:var(--r-xs); font-size:.9em;
}
.card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.card,.panel {
  min-width:0; padding:32px; border-radius:var(--r-xl);
  background:var(--c-surface); color:var(--c-text); box-shadow:var(--sh-soft);
}
.panel { background:var(--c-panel); box-shadow:none; }
.card p,.panel p { margin-top:12px; color:var(--c-muted); }
.card > a.text-link { display:inline-flex; margin-top:20px; }
.tray {
  margin-inline:24px; border-radius:var(--r-tray);
  background:var(--c-panel); color:var(--c-text);
  padding-top:88px; padding-bottom:104px;
}
.tray-head { text-align:center; }
.tray-title { font-size:var(--fs-h2); font-weight:var(--weight-normal); letter-spacing:-.018em; line-height:1.25; }
.tray-sub { margin-top:12px; font-size:var(--fs-body); color:var(--c-muted); }
.btn {
  display:inline-flex; justify-content:center; align-items:center; gap:10px;
  min-height:54px; padding:12px 24px; max-width:100%;
  border:0; border-radius:var(--r-pill);
  font-family:var(--font-body); font-size:var(--fs-body); font-weight:var(--weight-medium);
  line-height:1.4; text-align:center;
  transition:transform var(--ease-ui),box-shadow var(--ease-ui),background var(--ease-ui);
}
.btn svg {
  width:18px; height:18px; fill:none; stroke:currentColor;
  stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
}
.btn-main { padding-inline:24px 28px; background:var(--grad-accent); color:var(--c-on-accent); box-shadow:var(--sh-btn); }
.btn-main:hover,.btn-main.is-hover { transform:translateY(-1px); }
.btn-sub { padding-inline:26px 22px; background:var(--c-panel); color:var(--c-text); }
.btn-sub:hover,.btn-sub.is-hover { background:var(--c-panel-2); color:var(--c-text); }
.btn-sub svg { width:16px; height:16px; }
.btn:active,.btn.is-active { transform:translateY(1px); box-shadow:var(--sh-xs); }
.btn:disabled,.btn[aria-disabled="true"] { background:var(--c-panel-2); color:var(--c-muted); box-shadow:none; transform:none; }
.btn.is-focus { box-shadow:var(--ring-focus); }
.cta-row { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:34px; }
.site-head,#site-header { position:relative; z-index:var(--z-header); background:var(--c-bg); color:var(--c-text); }
.topbar {
  height:var(--header-height); display:flex; align-items:center; justify-content:space-between; gap:32px;
}
.header-shell {
  width:100%; max-width:min(100%,calc(1280px + var(--gutter) * 2));
  margin-inline:auto; padding-inline:var(--gutter);
}
.brand {
  display:inline-flex; align-items:center; gap:11px; flex-shrink:0;
  font-family:var(--font-display); font-size:var(--fs-lead); font-weight:var(--weight-semibold); letter-spacing:-.01em;
}
.brand-mark { width:34px; height:34px; flex:none; }
.nav { display:flex; align-items:center; min-width:0; margin-left:auto; }
.nav-list {
  display:flex; align-items:center; gap:38px;
  list-style:none; margin:0; padding:0;
}
.nav-list a { display:block; padding-block:12px; font-size:var(--fs-nav); color:var(--c-muted); transition:color var(--ease-ui); white-space:nowrap; }
.nav-list a:hover { color:var(--c-text); }
.nav-list a[aria-current="page"] { color:var(--c-text); font-weight:var(--weight-medium); }
.header-tools { display:flex; align-items:center; gap:12px; flex-shrink:0; margin-left:12px; }
.language { position:relative; }
.lang {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  font-family:var(--font-body); font-size:var(--fs-label); color:var(--c-text);
  min-height:38px; padding:8px 16px; border:0; border-radius:var(--r-pill);
  background:var(--c-panel); cursor:pointer; white-space:nowrap; list-style:none;
  transition:background var(--ease-ui);
}
.lang::-webkit-details-marker { display:none; }
.lang:hover { background:var(--c-panel-2); color:var(--c-text); }
.lang-short { display:none; }
.language-menu {
  position:absolute; right:0; top:calc(100% + 10px); min-width:180px; padding:8px;
  list-style:none; border-radius:var(--r-lg); background:var(--c-surface); color:var(--c-text); box-shadow:var(--sh-float);
}
.language-menu a { display:block; min-height:44px; padding:10px 14px; border-radius:var(--r-md); font-size:var(--fs-label); }
.language-menu a:hover,.language-menu a[aria-current="true"] { background:var(--c-accent-soft); color:var(--c-accent-dark); }
.menu-toggle {
  display:none; min-width:44px; min-height:44px; place-items:center;
  border-radius:var(--r-pill); background:var(--c-panel); color:var(--c-text);
}
.menu-toggle svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.mobile-nav {
  position:absolute; left:0; right:0; top:100%; padding:16px var(--gutter) 24px;
  background:var(--c-surface); color:var(--c-text); box-shadow:var(--sh-soft);
  max-height:calc(100dvh - var(--header-height)); overflow-y:auto; overscroll-behavior:contain;
}
.mobile-nav ul { list-style:none; margin:0; padding:0; }
.mobile-nav a { display:block; width:100%; min-height:44px; padding:12px 16px; border-radius:var(--r-md); }
.mobile-nav a:hover,.mobile-nav a[aria-current] { background:var(--c-accent-soft); color:var(--c-accent-dark); }
.mobile-language-label { display:block; padding:20px 16px 8px; font-size:var(--fs-sm); color:var(--c-muted); }
.nav-veil { position:fixed; inset:0; z-index:var(--z-veil); background:var(--c-veil); color:var(--c-text); cursor:pointer; }
.site-footer { margin-top:96px; padding-top:64px; padding-bottom:32px; background:var(--c-panel); color:var(--c-text); }
.footer-grid { display:grid; grid-template-columns:1.3fr .8fr 1.1fr .8fr; gap:48px; }
.footer-about p { margin-top:20px; color:var(--c-muted); font-size:var(--fs-label); max-width:25em; }
.footer-title { font-size:var(--fs-nav); font-weight:var(--weight-medium); margin-bottom:18px; }
.footer-links { list-style:none; }
.footer-links li + li { margin-top:8px; }
.footer-links a { display:inline-block; padding-block:4px; font-size:var(--fs-label); color:var(--c-muted); }
.footer-links a:hover { color:var(--c-accent-dark); }
.footer-bottom {
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px;
  border-top:1px solid var(--c-border); margin-top:48px; padding-top:24px;
  color:var(--c-muted); font-size:var(--fs-sm);
}
.footer-legal { display:flex; flex-wrap:wrap; gap:24px; }
.footer-legal a:hover { color:var(--c-accent-dark); }
.reveal { opacity:1; transform:none; }
.reveal.reveal-pending { opacity:0; transform:translateY(18px); transition:opacity var(--ease-reveal),transform var(--ease-reveal); }
.reveal.shown { opacity:1; transform:none; }
.decorated,.hero-boundary { overflow-x:clip; }
@media (max-width:1280px) {
  .topbar { gap:24px; }
  .nav-list { gap:24px; }
  .header-tools { margin-left:0; }
}
@media (max-width:1240px) {
  :root { --gutter:40px; }
}
@media (max-width:1100px) {
  .desktop-nav { display:none; }
  .menu-toggle { display:grid; }
  .header-tools { margin-left:auto; }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:1101px) {
  .mobile-nav { display:none !important; }
}
@media (max-width:768px) {
  :root { --fs-h1:clamp(24px,6.4vw,30px); --fs-h2:26px; --fs-h3:22px; --fs-feature:24px; }
  .section { padding-top:64px; padding-bottom:64px; }
  .card-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  :root { --gutter:20px; --header-height:76px; }
  .tilt,[data-tilt] { transform:none !important; }
  .card,.panel { padding:24px; }
  .tray { margin-inline:10px; padding-top:64px; padding-bottom:72px; }
  .footer-grid { grid-template-columns:1fr; gap:32px; }
  .site-footer { margin-top:64px; }
  .lang-full { display:none; }
  .lang-short { display:inline; }
  .header-tools { gap:8px; margin-left:auto; }
  .topbar { gap:12px; }
}
@media (max-width:359px) {
  :root { --gutter:16px; }
  .brand { gap:8px; font-size:var(--fs-nav); }
  .brand-mark { width:30px; height:30px; }
  .lang { padding-inline:12px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; animation:none !important; }
  .reveal.reveal-pending { opacity:1; transform:none; }
}