:root{
  --color-bg:#FAF3E6;
  --color-panel:#FFFDF7;
  --color-panel-alt:#F2E8D5;
  --color-border:#E4D7BE;
  --color-accent:#B7245C;
  --color-accent-dark:#8F1A47;
  --color-accent-soft:#F6E0EA;
  --color-text:#33261F;
  --color-muted:#7A6A5C;
  --color-success:#2E7D4F;
  --color-warn:#B97F1C;
  --color-error:#B3261E;
  --color-white:#FFFFFF;
  --color-flag-white:#FDFDFB;
  --color-flag-red:#C43A3A;
  --color-flag-blue:#31447E;
  --color-flag-gold:#E8C24A;
  --color-flag-black:#33302B;
  --color-dark-band:#33261F;
  --color-dark-band-text:#FAF3E6;
  --color-overlay:rgba(51,38,31,.44);
  --color-glow-warm:rgba(185,127,28,.13);
  --color-glow-accent:rgba(183,36,92,.07);
  --color-shadow-light:rgba(51,38,31,.10);
  --color-shadow-mid:rgba(51,38,31,.18);
  --color-shadow-heavy:rgba(51,38,31,.28);
  --color-accent-shadow:rgba(183,36,92,.55);
  --font-display:'Inter','Noto Sans SC',-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
  --font-body:'Inter','Noto Sans SC',-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
  --font-mono:'JetBrains Mono','SFMono-Regular',Consolas,'Liberation Mono',monospace;
  --radius-xs:8px;
  --radius-sm:12px;
  --radius-md:14px;
  --radius-lg:22px;
  --radius-xl:28px;
  --radius-pill:999px;
  --shadow-card:0 40px 80px -24px var(--color-shadow-heavy),0 14px 30px -12px var(--color-shadow-mid);
  --shadow-float:0 18px 40px -14px var(--color-shadow-heavy),0 4px 12px -4px var(--color-shadow-light);
  --shadow-button:0 12px 26px -10px var(--color-accent-shadow);
  --site-width:1392px;
  --content-width:1180px;
  --prose-width:780px;
  --gutter:clamp(16px,4vw,48px);
  --header-height:76px;
  --focus-width:2px;
  --motion-fast:150ms;
  --motion-base:360ms;
  --toc-offset:92px;
}
*,*::before,*::after{box-sizing:border-box}
html{min-width:320px;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 16px)}
html.nav-open{overflow:hidden}
body{min-width:320px;margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:clip}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:.32;background-image:radial-gradient(var(--color-border) .55px,transparent .55px);background-size:6px 6px}
main,section,article,aside,header,footer,nav,div{min-width:0}
img,svg,video{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--color-accent);text-decoration-thickness:.08em;text-underline-offset:.18em}
a:hover{color:var(--color-accent-dark)}
p,ul,ol,blockquote,pre,table{margin-top:0;margin-bottom:1.25em}
ul,ol{padding-left:1.35em}
code,kbd,samp{font-family:var(--font-mono);font-size:.9em}
:not(pre)>code{padding:.14em .42em;border-radius:var(--radius-xs);background:var(--color-panel-alt);overflow-wrap:anywhere}
pre{max-width:100%;padding:18px;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-text);color:var(--color-bg);-webkit-overflow-scrolling:touch}
pre code{overflow-wrap:normal}
hr{border:0;border-top:1px solid var(--color-border);margin:38px 0}
::selection{background:var(--color-accent-soft);color:var(--color-text)}
:where(a,button,input,select,textarea,summary,[role="tab"]):focus-visible{outline:var(--focus-width) solid var(--color-accent);outline-offset:3px}
.no-break{white-space:nowrap}
.wrap{width:100%;max-width:var(--site-width);margin-inline:auto;padding-inline:var(--gutter)}
.wrap-content{width:100%;max-width:var(--content-width);margin-inline:auto;padding-inline:var(--gutter)}
.prose{width:100%;max-width:var(--prose-width);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-top:clamp(68px,9vw,124px);padding-bottom:clamp(68px,9vw,124px);overflow-x:clip}
.section-tight{padding-top:48px;padding-bottom:48px;overflow-x:clip}
.eyebrow{margin:0 0 12px;color:var(--color-accent);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
h1,h2,h3,h4{margin-top:0;color:var(--color-text);font-family:var(--font-display);font-weight:800;line-height:1.16;text-wrap:balance}
h1,.hero-title{font-size:clamp(52px,5vw,72px);line-height:1.12;letter-spacing:-.015em}
h2,.section-title{font-size:clamp(34px,4vw,52px);letter-spacing:-.012em}
h3{font-size:clamp(22px,2.5vw,30px)}
h4{font-size:19px}
.lead{max-width:700px;color:var(--color-muted);font-size:clamp(18px,2vw,22px);line-height:1.72}
.text-muted{color:var(--color-muted)}
.text-accent,.hero-highlight{color:var(--color-accent)}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.card,.panel{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius-lg)}
.card{padding:clamp(22px,3vw,34px);box-shadow:0 8px 22px -18px var(--color-shadow-mid)}
.panel-alt{background:var(--color-panel-alt)}
.badge,.chip{
  display:inline-flex;min-height:30px;max-width:100%;align-items:center;gap:8px;padding:5px 13px;
  border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-panel);
  color:var(--color-muted);font-size:13px;line-height:1.35;overflow:hidden
}
.badge-dot,.status-dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:var(--color-accent)}
.badge-accent{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent);font-weight:700}
.button,.btn-primary,.btn-secondary,.btn-dark{
  display:inline-flex;min-width:24px;min-height:48px;align-items:center;justify-content:center;gap:9px;
  padding:12px 26px;border:1px solid transparent;border-radius:var(--radius-md);
  font-weight:700;line-height:1.2;text-align:center;text-decoration:none;
  transition:transform var(--motion-fast) ease,background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,opacity var(--motion-fast) ease
}
.btn-primary{background:var(--color-accent);color:var(--color-white);box-shadow:var(--shadow-button)}
.btn-primary:hover{background:var(--color-accent-dark);color:var(--color-white);transform:translateY(-1px)}
.btn-secondary{border-color:var(--color-border);background:var(--color-panel);color:var(--color-text)}
.btn-secondary:hover{border-color:var(--color-muted);color:var(--color-text);transform:translateY(-1px)}
.btn-dark{background:var(--color-text);color:var(--color-bg)}
.btn-dark:hover{color:var(--color-bg);opacity:.88}
.button[disabled],.is-disabled{cursor:not-allowed;opacity:.48;transform:none}
.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.site-header{position:sticky;top:0;z-index:80;background:var(--color-bg);border-bottom:1px solid var(--color-border)}
.site-head{position:relative;display:flex;min-height:var(--header-height);align-items:center;gap:24px;width:100%;max-width:var(--site-width);margin-inline:auto;padding:12px var(--gutter)}
.site-brand{display:flex;flex-shrink:0;align-items:center;gap:10px;color:var(--color-text);text-decoration:none}
.site-brand:hover{color:var(--color-text)}
.site-brand img{width:38px;height:38px}
.brand-word{font-family:var(--font-display);font-size:19px;font-weight:800;letter-spacing:-.02em}
.brand-local{color:var(--color-muted);font-size:14px;font-weight:500}
.desktop-nav{display:flex;align-items:center;gap:2px}
.desktop-nav a{min-height:40px;padding:8px 13px;border-radius:var(--radius-pill);color:var(--color-muted);font-size:14px;text-decoration:none}
.desktop-nav a:hover{color:var(--color-text)}
.desktop-nav a.is-active{background:var(--color-accent-soft);color:var(--color-accent);font-weight:700}
.header-tools{display:flex;align-items:center;gap:10px;margin-left:auto}
.login-link{display:inline-flex;min-height:42px;align-items:center;padding:8px 19px;border-radius:var(--radius-sm);background:var(--color-text);color:var(--color-bg);font-size:14px;font-weight:700;text-decoration:none}
.login-link:hover{color:var(--color-bg);opacity:.88}
.language-picker{position:relative}
.language-button,.menu-button{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-panel)}
.language-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:5;width:168px;padding:7px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-panel);box-shadow:var(--shadow-float)}
.language-menu[hidden]{display:none}
.language-menu a{display:block;min-height:42px;padding:8px 11px;border-radius:var(--radius-xs);color:var(--color-text);text-decoration:none}
.language-menu a:hover,.language-menu a[aria-current="true"]{background:var(--color-accent-soft);color:var(--color-accent)}
.menu-button{display:none;padding:10px}
.menu-button-lines,.menu-button-lines::before,.menu-button-lines::after{display:block;width:20px;height:2px;border-radius:var(--radius-pill);background:var(--color-text)}
.menu-button-lines{position:relative}
.menu-button-lines::before,.menu-button-lines::after{content:"";position:absolute;left:0}
.menu-button-lines::before{top:-6px}.menu-button-lines::after{top:6px}
.mobile-nav{display:none}
.nav-veil{display:none}
.site-footer{position:relative;padding-top:64px;background:var(--color-panel-alt);border-top:1px solid var(--color-border)}
.footer-grid{display:grid;grid-template-columns:1.25fr 1fr 1.35fr;gap:48px;padding-bottom:44px}
.footer-brand{display:flex;align-items:center;gap:11px;margin-bottom:16px;color:var(--color-text);text-decoration:none}
.footer-brand img{width:40px;height:40px}
.footer-copy{max-width:430px;color:var(--color-muted)}
.footer-title{margin-bottom:14px;font-size:14px;letter-spacing:.08em}
.footer-links,.keyword-links,.footer-languages{display:flex;flex-wrap:wrap;gap:8px 14px}
.footer-links{flex-direction:column;align-items:flex-start}
.footer-links a,.keyword-links a,.footer-languages a{color:var(--color-muted);font-size:14px;text-decoration:none}
.footer-links a:hover,.keyword-links a:hover,.footer-languages a:hover{color:var(--color-accent)}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;padding-top:22px;padding-bottom:28px;border-top:1px solid var(--color-border);color:var(--color-muted);font-size:13px}
.footer-legal{display:flex;flex-wrap:wrap;gap:16px}
.footer-legal a{color:inherit}
.reveal{transition:opacity var(--motion-base) ease,transform var(--motion-base) ease}
.reveal.pending{opacity:0;transform:translateY(16px)}
.reveal.shown{opacity:1;transform:none}
.prose h2,.prose h3{scroll-margin-top:var(--toc-offset)}
.prose h2{margin-top:2.2em}.prose h3{margin-top:1.8em}
.prose img{border-radius:var(--radius-md)}
.prose table{width:100%;border-collapse:collapse}
.prose th,.prose td{padding:12px;border:1px solid var(--color-border);text-align:left}
.prose th{background:var(--color-panel-alt);color:var(--color-text)}
@media (max-width:1120px){
  .desktop-nav{display:none}
  .menu-button{display:inline-flex}
  .header-tools{margin-left:auto}
  .site-head{z-index:71}
  .mobile-nav{
    position:absolute;top:100%;left:var(--gutter);right:var(--gutter);z-index:4;
    max-height:calc(100dvh - var(--header-height));padding:10px;overflow-y:auto;overscroll-behavior:contain;
    border:1px solid var(--color-border);border-radius:0 0 var(--radius-lg) var(--radius-lg);background:var(--color-panel);box-shadow:var(--shadow-float)
  }
  .mobile-nav.is-open{display:block}
  .mobile-nav a{display:flex;width:100%;min-height:46px;align-items:center;padding:10px 13px;border-radius:var(--radius-xs);color:var(--color-text);text-decoration:none}
  .mobile-nav a:hover,.mobile-nav a.is-active{background:var(--color-accent-soft);color:var(--color-accent)}
  .mobile-nav-group{padding-top:8px;margin-top:8px;border-top:1px solid var(--color-border)}
  .nav-veil.is-open{display:block;position:fixed;inset:var(--header-height) 0 0;z-index:70;background:var(--color-overlay)}
  .site-header{z-index:80}
}
@media (max-width:768px){
  h1,.hero-title{font-size:clamp(28px,9.5vw,40px);line-height:1.14;letter-spacing:-.01em}
  h2,.section-title{font-size:clamp(28px,8vw,38px)}
  .section{padding-top:64px;padding-bottom:64px}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .brand-local,.language-picker{display:none}
  .site-head{gap:10px}
  .login-link{min-height:40px;padding:8px 14px}
}
@media (max-width:640px){
  :root{--gutter:16px}
  .no-break{white-space:normal}
  .badge,.chip{flex-wrap:wrap;overflow:visible}
  .tilt,.tilt-card,[class*="tilt-"]{transform:none!important}
  .button-row{align-items:stretch}
  .button-row .button,.button-row .btn-primary,.button-row .btn-secondary{flex:1 1 140px}
  .footer-bottom{display:block}
  .footer-legal{margin-top:12px}
}
@media (max-width:380px){
  .brand-word{font-size:17px}
  .site-brand img{width:34px;height:34px}
  .login-link{padding-inline:11px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal,.reveal.pending{opacity:1;transform:none}
}