:root {
  --c-bg:#FFFFFF;
  --c-panel:#F5F6F8;
  --c-panel-2:#2B2D31;
  --c-border:#E1E4EA;
  --c-accent:#1A47B8;
  --c-accent-dark:#0B2554;
  --c-text:#1C1E24;
  --c-muted:#5E6573;
  --c-success:#1F6B4F;
  --c-warn:#E8B73A;
  --c-error:#C8443A;
  --c-card-edge:#CBD3E2;
  --c-page-edge:#D9DEE7;
  --c-tab:#E6E9EF;
  --c-dot:#C5CAD4;
  --c-toggle-off:#D2D7E0;
  --c-h1-tint:#B8C8F3;
  --c-on-dark:#FFFFFF;
  --c-on-dark-muted:rgba(255,255,255,.76);
  --c-on-dark-soft:rgba(255,255,255,.68);
  --c-on-dark-line:rgba(255,255,255,.16);
  --c-on-dark-stroke:rgba(255,255,255,.44);
  --c-arch-line:rgba(255,255,255,.18);
  --c-veil:rgba(11,37,84,.42);
  --c-clear:transparent;
  --f-display:"Inter","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --f-body:"Inter","Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
  --r-shell:32px;
  --r-card:20px;
  --r-page:16px;
  --r-sm:8px;
  --r-logo:10px;
  --r-index:6px;
  --r-line:2px;
  --r-round:50%;
  --r-pill:999px;
  --gutter:56px;
  --shell-max:1328px;
  --reading-max:840px;
  --header-height:72px;
  --s-1:4px;
  --s-2:8px;
  --s-3:12px;
  --s-4:16px;
  --s-5:24px;
  --s-6:32px;
  --s-7:48px;
  --s-8:64px;
  --s-9:88px;
  --fs-body:16px;
  --fs-small:14px;
  --fs-h1:clamp(34px,3.25vw,48px);
  --fs-h2:clamp(26px,2.6vw,36px);
  --fs-h3:22px;
  --weight-body:400;
  --weight-medium:500;
  --weight-bold:700;
  --weight-display:800;
  --leading-body:1.6;
  --leading-heading:1.2;
  --tracking-heading:-.018em;
  --motion-reveal:480ms;
  --motion-control:160ms;
  --ease-out:cubic-bezier(.2,.7,.2,1);
  --focus-width:3px;
  --focus-offset:4px;
}
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:96px; }
html.nav-open { overflow:hidden; }
body {
  margin:0;
  background:var(--c-bg);
  color:var(--c-text);
  font-family:var(--f-body);
  font-size:var(--fs-body);
  line-height:var(--leading-body);
  font-weight:var(--weight-body);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:not-allowed; }
button, a { -webkit-tap-highlight-color:var(--c-clear); }
:focus-visible { outline:var(--focus-width) solid var(--c-accent); outline-offset:var(--focus-offset); }
[hidden] { display:none !important; }
img,svg { display:block; max-width:100%; }
img { height:auto; }
svg, .icon, .status-dot { flex-shrink:0; }
button svg,a svg { flex-shrink:0; }
h1,h2,h3,h4,p,dl { margin-top:0; }
h1,h2,h3,h4 {
  font-family:var(--f-display);
  line-height:var(--leading-heading);
  letter-spacing:var(--tracking-heading);
  text-wrap:balance;
  overflow-wrap:break-word;
}
h1 { font-size:var(--fs-h1); font-weight:var(--weight-display); }
h2 { font-size:var(--fs-h2); font-weight:var(--weight-display); }
h3 { font-size:var(--fs-h3); font-weight:var(--weight-bold); }
p { margin-bottom:1.25em; }
code,kbd,pre { font-family:var(--f-mono); }
code { overflow-wrap:anywhere; font-size:.9em; }
pre {
  max-width:100%;
  min-width:0;
  overflow-x:auto;
  padding:var(--s-5);
  border:1px solid var(--c-border);
  border-radius:var(--r-page);
  background:var(--c-panel);
  color:var(--c-text);
  line-height:1.75;
  tab-size:2;
}
pre code { white-space:pre; overflow-wrap:normal; word-break:normal; font-size:13px; }
hr { border:0; border-top:1px solid var(--c-border); margin-block:var(--s-7); }
.wrap {
  width:100%;
  max-width:calc(var(--shell-max) + var(--gutter) * 2);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.reading { max-width:calc(var(--reading-max) + var(--gutter) * 2); }
.section { padding-top:var(--s-8); padding-bottom:var(--s-8); }
.section-heading { margin-bottom:var(--s-6); }
.muted { color:var(--c-muted); }
.mono { font-family:var(--f-mono); }
.keep { white-space:nowrap; }
.eyebrow { font-family:var(--f-mono); font-size:12px; letter-spacing:.06em; color:var(--c-muted); }
.text-link { color:var(--c-accent); text-decoration:underline; text-underline-offset:4px; }
.grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-5); }
.grid > *, .wrap > *, .panel > *, .card > *, .prose, .prose > *, .manual-layout > * { min-width:0; }
.stack > * + * { margin-top:var(--s-5); }
.card,.panel {
  padding:var(--s-6);
  border:1px solid var(--c-border);
  border-radius:var(--r-card);
  background:var(--c-bg);
  color:var(--c-text);
  min-width:0;
}
.panel--soft { background:var(--c-panel); color:var(--c-text); }
.dark-section {
  position:relative;
  overflow-x:clip;
  background:var(--c-panel-2);
  color:var(--c-on-dark);
  border-radius:var(--r-shell);
  padding:var(--s-7);
}
.navy-section { background:var(--c-accent-dark); color:var(--c-on-dark); }
.prose { line-height:1.85; }
.prose h2 { margin-top:2.2em; margin-bottom:.8em; }
.prose h3 { margin-top:1.8em; }
.prose a:not(.btn) { color:var(--c-accent); text-decoration:underline; text-underline-offset:3px; }
.prose li + li { margin-top:.5em; }
.prose :not(pre) > code { background:var(--c-panel); color:var(--c-accent-dark); padding:2px 5px; border-radius:var(--r-sm); }
.btn {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:12px 26px;
  max-width:100%;
  border:1.5px solid var(--c-clear);
  border-radius:var(--r-pill);
  background:var(--c-accent);
  color:var(--c-on-dark);
  font-family:var(--f-body);
  font-size:16px;
  font-weight:var(--weight-bold);
  line-height:1.4;
  letter-spacing:.005em;
  text-align:center;
  transition:background var(--motion-control),border-color var(--motion-control);
}
.btn svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.btn:hover,.btn.is-hover { background:var(--c-accent-dark); color:var(--c-on-dark); }
.btn:active,.btn.is-active { background:var(--c-text); color:var(--c-on-dark); }
.btn--solid { background:var(--c-bg); color:var(--c-accent-dark); }
.btn--solid:hover { background:var(--c-panel); color:var(--c-accent-dark); }
.btn--ghost { background:var(--c-clear); border-color:var(--c-on-dark-stroke); color:var(--c-on-dark); }
.btn--ghost:hover { background:var(--c-clear); border-color:var(--c-on-dark); color:var(--c-on-dark); }
.btn--outline { background:var(--c-bg); color:var(--c-text); border-color:var(--c-border); }
.btn--outline:hover { background:var(--c-panel); color:var(--c-text); border-color:var(--c-text); }
.btn:disabled,.btn[aria-disabled="true"] { background:var(--c-panel); border-color:var(--c-border); color:var(--c-muted); }
.btn.is-focus { outline:var(--focus-width) solid var(--c-accent); outline-offset:var(--focus-offset); }
.button-row { display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-3); }
.masthead { height:var(--header-height); position:relative; z-index:50; background:var(--c-bg); color:var(--c-text); }
.masthead__bar {
  width:100%;
  max-width:min(100%,calc(1280px + var(--gutter) * 2));
  height:100%;
  padding-inline:var(--gutter);
  margin-inline:auto;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:var(--s-4);
}
.brandmark { justify-self:start; display:inline-flex; align-items:center; gap:11px; flex-shrink:0; }
.brandmark__logo { width:34px; height:34px; flex-shrink:0; }
.brandmark__name { font-family:var(--f-display); font-size:17px; font-weight:800; letter-spacing:-.01em; }
.primary-nav { min-width:0; }
.primary-nav ul { display:flex; align-items:center; list-style:none; margin:0; padding:0; gap:4px; }
.primary-nav a {
  display:block;
  padding:7px 17px;
  border:1px solid var(--c-clear);
  border-radius:var(--r-pill);
  font-size:15px;
  font-weight:500;
  color:var(--c-muted);
  white-space:nowrap;
}
.primary-nav a:hover { color:var(--c-text); }
.primary-nav a[aria-current="page"] { background:var(--c-panel); color:var(--c-text); border-color:var(--c-border); font-weight:600; }
.masthead__tools { justify-self:end; display:flex; align-items:center; gap:var(--s-2); flex-shrink:0; position:relative; z-index:5; }
.language { position:relative; }
.lang-switch {
  display:inline-flex; align-items:center; gap:8px;
  min-height:40px; padding:0 16px 0 14px;
  background:var(--c-bg); color:var(--c-text);
  border:1.5px solid var(--c-text); border-radius:var(--r-pill);
  font-size:14.5px; font-weight:600; white-space:nowrap;
}
.lang-switch svg { width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.6; }
.lang-switch__caret { font-size:11px; color:var(--c-muted); }
.lang-short { display:none; }
.language__list {
  position:absolute; top:calc(100% + 10px); right:0;
  min-width:180px; padding:8px; margin:0;
  list-style:none; background:var(--c-bg); color:var(--c-text);
  border:1px solid var(--c-border); border-radius:var(--r-page);
}
.language__list a { display:block; min-height:44px; padding:10px 14px; border-radius:var(--r-sm); }
.language__list a:hover,.language__list a[aria-current] { background:var(--c-panel); color:var(--c-text); }
.menu-toggle { display:none; min-width:44px; min-height:44px; align-items:center; justify-content:center; background:var(--c-bg); color:var(--c-text); border:1px solid var(--c-border); border-radius:var(--r-pill); }
.menu-toggle svg { width:20px; height:20px; stroke:currentColor; fill:none; stroke-width:1.8; }
.nav-veil { position:fixed; inset:var(--header-height) 0 0; z-index:1; background:var(--c-veil); color:var(--c-on-dark); border:0; width:100%; }
.mobile-nav {
  position:fixed; top:var(--header-height); left:0; right:0; z-index:3;
  max-height:calc(100dvh - var(--header-height)); overflow-y:auto; overscroll-behavior:contain;
  padding:var(--s-5) var(--gutter);
  background:var(--c-bg); color:var(--c-text);
  border-bottom:1px solid var(--c-border);
}
.mobile-nav ul { list-style:none; padding:0; margin:0; }
.mobile-nav a { display:block; width:100%; min-height:48px; padding:12px 16px; border-radius:var(--r-sm); }
.mobile-nav a:hover,.mobile-nav a[aria-current] { background:var(--c-panel); color:var(--c-text); }
.mobile-nav__languages { border-top:1px solid var(--c-border); margin-top:16px !important; padding-top:16px !important; }
.site-footer { margin-top:var(--s-8); padding-top:var(--s-8); padding-bottom:var(--s-6); border-top:1px solid var(--c-border); background:var(--c-bg); color:var(--c-text); }
.footer-grid { display:grid; grid-template-columns:1.2fr .8fr 1.2fr .8fr; gap:var(--s-7); }
.footer-grid > * { min-width:0; }
.footer-brand p { margin-top:20px; max-width:28em; font-size:14px; color:var(--c-muted); }
.footer-heading { font-size:14px; margin-bottom:18px; }
.footer-links { list-style:none; padding:0; margin:0; }
.footer-links li + li { margin-top:10px; }
.footer-links a { font-size:14px; color:var(--c-muted); overflow-wrap:anywhere; }
.footer-links a:hover { color:var(--c-accent); text-decoration:underline; }
.footer-bottom { margin-top:var(--s-7); padding-top:var(--s-5); border-top:1px solid var(--c-border); display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; font-size:13px; color:var(--c-muted); }
.footer-legal { display:flex; gap:20px; flex-wrap:wrap; }
.reveal { opacity:1; }
.reveal.reveal-pending { opacity:0; transform:translateY(16px); transition:opacity var(--motion-reveal) var(--ease-out),transform var(--motion-reveal) var(--ease-out); }
.reveal.shown { opacity:1; transform:none; }
.decorated,.tilt-frame { position:relative; overflow-x:clip; }
@media (max-width:1279px) {
  .masthead__bar { display:flex; }
  .primary-nav { display:none; }
  .masthead__tools { margin-left:auto; }
  .menu-toggle { display:inline-flex; }
}
@media (max-width:768px) {
  :root { --gutter:24px; --fs-h1:28px; }
  .grid { grid-template-columns:minmax(0,1fr); }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
  .section { padding-top:48px; padding-bottom:48px; }
}
@media (max-width:640px) {
  :root { --gutter:16px; }
  .tilt,.manual-page,.settings-win { transform:none !important; }
  .card,.panel,.dark-section { padding:24px; }
  .masthead__bar { gap:8px; }
  .brandmark { gap:8px; }
  .brandmark__name { font-size:14px; }
  .brandmark__logo { width:30px; height:30px; }
  .lang-switch { padding-inline:10px; min-height:44px; gap:6px; }
  .lang-full { display:none; }
  .lang-short { display:inline; }
  .footer-grid { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none !important; animation:none !important; }
  .reveal.reveal-pending { opacity:1; transform:none; }
}