:root{
  --color-dusk:#1E2433;
  --color-dusk-panel:#262D40;
  --color-dusk-ink:#F4EDE1;
  --color-dusk-muted:#A7A3B2;
  --color-dusk-line:rgba(244,237,225,.14);
  --color-dusk-chip:rgba(244,237,225,.05);
  --color-bg:#FDF3E7;
  --color-panel:#FFFFFF;
  --color-panel-alt:#F6E7D0;
  --color-border:#E8D6BC;
  --color-accent:#EE7B3F;
  --color-accent-dark:#C75A1E;
  --color-accent-soft:#F7A468;
  --color-accent-line:rgba(238,123,63,.55);
  --color-accent-tint:rgba(238,123,63,.09);
  --color-ink:#26190E;
  --color-muted:#71604C;
  --color-success:#3E9B63;
  --color-warning:#D99A2B;
  --color-error:#C94A2F;
  --color-violet:#8F82C9;
  --color-violet-deep:#6F63A8;
  --color-violet-tint:rgba(143,130,201,.14);
  --color-white:#FFFFFF;
  --color-flag-red:#CE4A38;
  --color-flag-blue:#3D4F8F;
  --color-glow-high:rgba(238,123,63,.30);
  --color-glow-low:rgba(238,123,63,.10);
  --color-shadow-deep:rgba(9,12,22,.55);
  --color-shadow-mid:rgba(9,12,22,.38);
  --color-shadow-paper:rgba(38,25,14,.12);
  --color-ring:rgba(255,255,255,.14);
  --color-card-edge:rgba(255,255,255,.60);
  --color-cta-glow:rgba(238,123,63,.38);
  --radius-xs:6px;
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:18px;
  --radius-pill:999px;
  --font-display:'Inter','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
  --font-body:'Inter','Noto Sans SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  --font-mono:'JetBrains Mono','SFMono-Regular',Consolas,'Courier New',monospace;
  --page-max:1320px;
  --reading-max:820px;
  --header-height:64px;
  --gutter:clamp(16px,3vw,32px);
  --section-space:clamp(64px,9vw,112px);
  --focus-ring:2px solid var(--color-accent);
  --shadow-card:0 18px 42px var(--color-shadow-paper);
  --transition-fast:160ms ease;
  --toc-offset:84px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px;-webkit-text-size-adjust:100%}
html.nav-open{overflow:hidden}
body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:16px;line-height:1.65;overflow-wrap:break-word}
body,header,main,footer,section,article,aside,nav,div{min-width:0}
img,svg,video{display:block;max-width:100%}
img{height:auto}
svg{flex-shrink:0}
button,input,select,textarea{font:inherit}
button{color:inherit}
a{color:inherit;text-decoration:none}
p,h1,h2,h3,h4,ul,ol,dl,dd,figure,blockquote{margin-top:0}
ul,ol{padding-left:1.25rem}
table{border-collapse:collapse}
code,kbd,pre{font-family:var(--font-mono)}
code{overflow-wrap:anywhere}
pre{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
summary{cursor:pointer}
.no-break{white-space:nowrap}
.wrap{width:100%;max-width:var(--page-max);margin-inline:auto;padding-inline:var(--gutter)}
.reading-wrap{width:100%;max-width:var(--reading-max);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-top:var(--section-space);padding-bottom:var(--section-space)}
.section-tight{padding-top:clamp(42px,6vw,72px);padding-bottom:clamp(42px,6vw,72px)}
.paper-zone{background:var(--color-bg);color:var(--color-ink)}
.dusk-zone{background:var(--color-dusk);color:var(--color-dusk-ink)}
.eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:16px;color:var(--color-muted);font-size:13px;font-weight:700;letter-spacing:.08em}
.eyebrow::before{width:7px;height:7px;border-radius:50%;background:var(--color-violet);content:"";flex-shrink:0}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.2;text-wrap:balance}
h1{font-size:clamp(52px,5vw,72px);font-weight:800;letter-spacing:-.02em}
h2{font-size:clamp(34px,4vw,52px);font-weight:800;letter-spacing:-.018em}
h3{font-size:clamp(20px,2.4vw,28px);font-weight:750}
h4{font-size:18px}
.lead{font-size:clamp(18px,2vw,21px);line-height:1.75;color:var(--color-muted)}
.muted{color:var(--color-muted)}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.text-link{color:var(--color-accent-dark);font-weight:700;text-decoration:underline;text-decoration-color:var(--color-accent-line);text-underline-offset:4px}
:is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:var(--focus-ring);outline-offset:3px;border-radius:var(--radius-xs)}
.btn{display:inline-flex;min-height:46px;min-width:24px;align-items:center;justify-content:center;gap:8px;padding:11px 24px;border:1px solid transparent;border-radius:var(--radius-md);font-weight:750;line-height:1.2;cursor:pointer;transition:transform var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast)}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--color-accent);color:var(--color-white);box-shadow:0 10px 26px var(--color-cta-glow)}
.btn-primary:hover{background:var(--color-accent-dark)}
.btn-secondary{border-color:var(--color-border);background:var(--color-panel);color:var(--color-ink)}
.btn-secondary:hover{border-color:var(--color-accent-line);background:var(--color-accent-tint)}
.btn-dark-outline{border-color:var(--color-dusk-line);background:var(--color-dusk-chip);color:var(--color-dusk-ink)}
.btn-dark-outline:hover{border-color:var(--color-accent-line)}
.btn-quiet{background:transparent;color:var(--color-accent-dark)}
.btn[disabled],.btn.is-disabled{cursor:not-allowed;opacity:.55;transform:none}
.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.panel,.card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-panel)}
.card{padding:clamp(20px,3vw,30px);box-shadow:var(--shadow-card)}
.badge,.chip{display:inline-flex;max-width:100%;min-height:24px;align-items:center;gap:7px;padding:4px 10px;border-radius:var(--radius-pill);overflow:hidden;font-size:12px;font-weight:700}
.badge{border:1px solid var(--color-accent-line);background:var(--color-accent-tint);color:var(--color-accent-dark)}
.chip{background:var(--color-violet-tint);color:var(--color-violet-deep)}
.badge-dot{width:7px;height:7px;border-radius:50%;background:var(--color-violet);flex-shrink:0}
.reveal{transition:opacity .65s ease,transform .65s ease}
.reveal.pending{opacity:0;transform:translateY(16px)}
.reveal.shown{opacity:1;transform:none}
.topbar{position:relative;z-index:50;height:var(--header-height);border-bottom:1px solid var(--color-dusk-line);background:var(--color-dusk);color:var(--color-dusk-ink)}
.topbar-wrap{display:flex;height:100%;max-width:var(--page-max);margin-inline:auto;padding-inline:var(--gutter);align-items:center;gap:30px}
.brand{display:flex;align-items:center;gap:10px;flex:none;min-height:44px}
.brand-logo{width:30px;height:30px}
.brand-copy{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.brand-name{font-family:var(--font-display);font-size:19px;font-weight:800;letter-spacing:-.01em}
.brand-local{color:var(--color-dusk-muted);font-size:12px;font-weight:600}
.desktop-nav{display:flex;height:var(--header-height);align-items:stretch;gap:3px}
.desktop-nav a{position:relative;display:flex;min-height:44px;align-items:center;padding-inline:12px;color:var(--color-dusk-muted);font-size:14px;transition:color var(--transition-fast)}
.desktop-nav a:hover,.desktop-nav a[aria-current="page"]{color:var(--color-dusk-ink)}
.desktop-nav a[aria-current="page"]{font-weight:700}
.desktop-nav a[aria-current="page"]::after{position:absolute;right:10px;bottom:-1px;left:10px;height:2px;border-radius:2px 2px 0 0;background:var(--color-accent);content:""}
.header-tools{position:relative;display:flex;align-items:center;gap:10px;margin-left:auto}
.language-control{position:relative}
.language-button{display:inline-flex;min-height:44px;align-items:center;gap:6px;padding:7px 8px;border:0;background:transparent;color:var(--color-dusk-muted);cursor:pointer}
.language-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:70;width:170px;padding:7px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-card);color:var(--color-ink)}
.language-menu[hidden]{display:none}
.language-menu a{display:flex;min-height:40px;align-items:center;padding:8px 10px;border-radius:var(--radius-sm);font-size:13px}
.language-menu a:hover,.language-menu a[aria-current="true"]{background:var(--color-accent-tint);color:var(--color-accent-dark)}
.header-login{display:inline-flex;min-height:40px;align-items:center;padding:7px 18px;border:1px solid var(--color-accent-line);border-radius:10px;font-size:14px;font-weight:700}
.header-login:hover{border-color:var(--color-accent);background:var(--color-accent);color:var(--color-white)}
.menu-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid var(--color-dusk-line);border-radius:var(--radius-sm);background:transparent;color:var(--color-dusk-ink);cursor:pointer}
.menu-toggle svg{width:22px;height:22px}
.mobile-nav{display:none}
.nav-veil{display:none}
.site-footer{border-top:1px solid var(--color-dusk-line);background:var(--color-dusk);color:var(--color-dusk-ink)}
.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1.2fr 1fr;gap:clamp(28px,5vw,64px);padding-top:64px;padding-bottom:48px}
.footer-intro{max-width:330px;color:var(--color-dusk-muted);font-size:14px}
.footer-title{margin-bottom:14px;color:var(--color-dusk-ink);font-size:13px;letter-spacing:.08em}
.footer-links{display:grid;gap:5px}
.footer-links a{display:flex;min-height:32px;align-items:center;color:var(--color-dusk-muted);font-size:13px}
.footer-links a:hover{color:var(--color-dusk-ink)}
.footer-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:20px;padding-bottom:24px;border-top:1px solid var(--color-dusk-line);color:var(--color-dusk-muted);font-size:12px}
.footer-legal-links{display:flex;flex-wrap:wrap;gap:18px}
.prose{font-size:17px;line-height:1.85}
.prose h2,.prose h3{scroll-margin-top:var(--toc-offset)}
.prose h2{margin-top:2.8em;margin-bottom:.8em}
.prose h3{margin-top:2em;margin-bottom:.6em}
.prose p,.prose ul,.prose ol{margin-bottom:1.25em}
.prose img{border-radius:var(--radius-md)}
.prose pre{padding:18px;border:1px solid var(--color-dusk-line);border-radius:var(--radius-md);background:var(--color-dusk-panel);color:var(--color-dusk-ink)}
body:has(.toc-tabs) section[id]{scroll-margin-top:var(--toc-offset)}
[data-counter]{display:inline-block;min-width:3ch;font-variant-numeric:tabular-nums}
[data-decorative],.decorative-layer{pointer-events:none}
@media (max-width:1120px){
  .desktop-nav a{padding-inline:8px;font-size:13px}
  .brand-local{display:none}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  h1{font-size:clamp(34px,8vw,40px)}
  .desktop-nav,.language-control{display:none}
  .header-tools{margin-left:auto}
  .menu-toggle{display:inline-flex}
  .mobile-nav{position:absolute;top:var(--header-height);right:0;left:0;z-index:65;max-height:calc(100dvh - var(--header-height));padding:10px var(--gutter) 18px;overflow-y:auto;overscroll-behavior:contain;border-bottom:1px solid var(--color-border);background:var(--color-dusk);color:var(--color-dusk-ink)}
  .mobile-nav.is-open{display:block}
  .mobile-nav a{display:flex;width:100%;min-height:46px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--color-dusk-line);color:var(--color-dusk-muted)}
  .mobile-nav a[aria-current="page"]{color:var(--color-dusk-ink);font-weight:700}
  .mobile-language-list{margin-top:12px;padding-top:4px}
  .mobile-language-label{padding:8px 12px;color:var(--color-dusk-muted);font-size:12px;letter-spacing:.08em}
  .nav-veil{position:fixed;inset:var(--header-height) 0 0;z-index:40;background:var(--color-shadow-mid)}
  .nav-veil.is-open{display:block}
}
@media (max-width:640px){
  :root{--gutter:16px;--section-space:62px}
  .tilt,.client-card{transform:none!important}
  .absolute-decor,.hero-decoration-text{display:none!important}
  .footer-grid{grid-template-columns:1fr}
  .footer-legal{flex-direction:column}
  .brand-copy{gap:4px}
  .brand-local{display:none}
  .header-login{padding-inline:13px}
  .button-row .btn{flex:1 1 150px}
}
@media (max-width:360px){
  .brand-name{font-size:17px}
  .header-login{padding-inline:10px;font-size:13px}
  .topbar-wrap{gap:8px}
}
@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.pending{opacity:1!important;transform:none!important}
}