:root{
  --bg:#F7F0E4;--bg-panel:#FFFBF4;--bg-panel-2:#EFE5D3;--border:#E2D5BF;
  --accent:#2E5E7E;--accent-dark:#1F4560;--text:#2A211A;--text-muted:#6E6152;
  --success:#3F7D4E;--warn:#B7791F;--error:#B3412E;
  --halo-top:#FBF4EA;--halo-bottom:#F1E6D3;
  --aurora-apricot:#F4B48A;--aurora-rose:#E9A3B3;--aurora-sky:#9FC3E6;
  --glow-apricot:rgba(244,180,138,.46);--glow-apricot-soft:rgba(244,180,138,.22);
  --glow-rose-soft:rgba(233,163,179,.16);--tape:rgba(244,180,138,.42);
  --surface:#FFFEFB;--veil-white:rgba(255,253,248,.64);
  --ink-capsule:rgba(42,33,26,.88);--on-ink:#FFFBF4;--on-ink-soft:rgba(255,251,244,.28);
  --hi-line:rgba(255,255,255,.92);--hi-aurora:rgba(255,255,255,.18);--gloss:rgba(255,255,255,.24);
  --label-shadow:rgba(42,33,26,.18);--sea-08:rgba(46,94,126,.08);
  --sea-12:rgba(46,94,126,.12);--sea-16:rgba(46,94,126,.16);
  --ink-shadow:rgba(42,33,26,.26);--accent-ring:rgba(46,94,126,.15);--success-ring:rgba(63,125,78,.18);
  --dot-red:#E4877A;--dot-amber:#E6BE6A;--dot-green:#8FC096;
  --flag-red:#BC4A3E;--flag-white:#FFFDF8;--flag-blue:#2E3E6C;--flag-navy:#26335E;
  --clear:transparent;--grain-opacity:.03;
  --grain-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .16 0 0 0 0 .13 0 0 0 0 .10 0 0 0 .9 0'/></filter><rect width='180' height='180' filter='url(%23g)'/></svg>");
  --font-display:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC",serif;
  --font-body:"Inter","Noto Sans SC",-apple-system,"PingFang SC","Hiragino Sans","Microsoft YaHei","Malgun Gothic",sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --text-xs:11px;--text-sm:12px;--text-label:13px;--text-ui:14px;--text-nav:15px;
  --text-base:16px;--text-lead:17px;--text-large:20px;--text-brand:22px;
  --text-h3:26px;--text-h2:38px;--text-display:clamp(52px,4.6vw,66px);--text-display-mobile:36px;
  --weight-regular:400;--weight-medium:500;--weight-strong:600;
  --r-win:24px;--r-block:20px;--r-groove:16px;--r-card:14px;--r-seg:12px;--r-sm:10px;--r-flag:3px;--r-pill:999px;--r-circle:50%;
  --container:1200px;--reading:780px;--gutter:32px;--header-height:64px;--anchor-space:80px;--toc-offset:16px;--toc-clearance:96px;
  --shadow-panel:inset 0 1px 0 var(--hi-line),0 28px 56px -20px var(--sea-12),0 6px 14px -6px var(--sea-08);
  --shadow-window:inset 0 1px 0 var(--hi-line),0 56px 100px -36px var(--sea-12),0 20px 44px -20px var(--sea-12),0 2px 6px var(--sea-08);
  --ease:200ms ease;--reveal-time:350ms;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:var(--anchor-space);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body::after{content:"";position:fixed;inset:0;z-index:60;pointer-events:none;opacity:var(--grain-opacity);mix-blend-mode:multiply;background-size:180px 180px;background-image:var(--grain-image)}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed}
img{display:block;max-width:100%;height:auto}
svg{vertical-align:middle;flex-shrink:0}
button,a,summary{ -webkit-tap-highlight-color:var(--accent-ring)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-sm)}
[hidden]{display:none!important}
h1,h2,h3{font-family:var(--font-display);font-weight:var(--weight-regular);letter-spacing:-.02em;text-wrap:balance;overflow-wrap:break-word}
h1{font-size:var(--text-display);line-height:1.1}
h2{font-size:var(--text-h2);line-height:1.2}
h3{font-size:var(--text-h3);line-height:1.3}
p{margin:0 0 1.25em}
code{font-family:var(--font-mono);font-size:.9em;overflow-wrap:anywhere}
pre{max-width:100%;overflow-x:auto;padding:24px;background:var(--bg-panel-2);border-radius:var(--r-groove)}
pre code{overflow-wrap:normal;white-space:pre}
table{border-collapse:collapse}
input,textarea,select{max-width:100%;border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 14px;background:var(--surface)}
.no-break{white-space:nowrap}
.wrap{width:100%;max-width:calc(var(--container) + 64px);margin-inline:auto;padding-inline:var(--gutter)}
.reading-wrap{width:100%;max-width:calc(var(--reading) + 64px);margin-inline:auto;padding-inline:var(--gutter)}
.sec{padding-top:88px;padding-bottom:104px}
.section-head{margin-bottom:40px;text-align:center}
.section-head h2{margin:0 0 12px}
.section-head p{margin:0;color:var(--text-muted)}
.prose{min-width:0;overflow-wrap:break-word}
.prose h2{margin:2em 0 .6em}
.prose h3{margin:1.5em 0 .6em}
.prose a:not(.btn){color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.prose li{margin-bottom:.5em}
.prose code{background:var(--bg-panel-2);border-radius:var(--r-flag);padding:2px 4px}
.prose pre code{padding:0;background:var(--clear)}
.grid{display:grid;gap:24px;grid-template-columns:repeat(3,minmax(0,1fr))}
.grid>*{min-width:0}
.panel,.card{min-width:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-win);box-shadow:var(--shadow-panel)}
.card{padding:28px}
.muted{color:var(--text-muted)}
.mono{font-family:var(--font-mono)}
.ic{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px;flex:none}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:12px 28px;border:1px solid var(--clear);border-radius:var(--r-pill);font-size:var(--text-base);font-weight:var(--weight-medium);line-height:1.4;white-space:nowrap;flex-shrink:0;transition:transform var(--ease),box-shadow var(--ease),background-color var(--ease),border-color var(--ease)}
.btn-primary{padding-left:22px;background:var(--accent-dark);color:var(--on-ink);box-shadow:0 16px 30px -14px var(--sea-16),0 4px 10px -4px var(--sea-12),inset 0 1px 0 var(--hi-aurora)}
.btn-primary:hover,.btn-primary.is-hover{background:var(--accent);transform:translateY(-1px)}
.btn-primary .ic{stroke-width:2.2}
.btn-ghost,.btn-secondary{border-color:var(--border);background:var(--veil-white);color:var(--text);box-shadow:inset 0 1px 0 var(--hi-line)}
.btn-ghost:hover,.btn-secondary:hover{border-color:var(--text-muted);transform:translateY(-1px)}
.btn:active,.btn.is-pressed{transform:translateY(1px)}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.5;transform:none;pointer-events:none}
.btn.is-focus{outline:2px solid var(--accent);outline-offset:3px}
.cta-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:0 0 20px}
.badge{display:inline-flex;align-items:center;gap:10px;min-height:30px;max-width:100%;margin:0 0 20px;padding:4px 14px 4px 12px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--veil-white);box-shadow:inset 0 1px 0 var(--hi-line);font-size:var(--text-label);color:var(--text-muted);overflow-wrap:anywhere}
.badge-dot{width:7px;height:7px;flex:none;border-radius:var(--r-circle);background:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}
.site-head{position:relative;z-index:40}
.head-inner{display:flex;align-items:center;flex-wrap:nowrap;gap:24px;height:var(--header-height)}
.brand{display:inline-flex;align-items:center;gap:10px;flex:none;min-height:32px}
.brand-mark{width:30px;height:30px;flex:none;filter:drop-shadow(0 4px 8px var(--sea-16))}
.brand-word{font-family:var(--font-display);font-size:var(--text-brand);letter-spacing:-.01em;line-height:1;white-space:nowrap}
.brand-word em{font-style:italic;color:var(--accent)}
.nav{flex:1;min-width:0;display:flex;justify-content:center}
.nav-list{display:flex;align-items:center;list-style:none;margin:0;padding:0;gap:2px}
.nav-link{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:36px;padding:6px 14px;border:0;border-radius:var(--r-pill);background:var(--clear);font-size:var(--text-nav);color:var(--text-muted);white-space:nowrap;transition:color var(--ease),background-color var(--ease)}
.nav-link:hover{color:var(--text);background:var(--veil-white)}
.nav-link[aria-current="page"]{color:var(--text);font-weight:var(--weight-medium)}
.nav-link .ic{width:14px;height:14px}
.nav-more{position:relative}
.nav-more-panel{position:absolute;top:calc(100% + 10px);left:50%;z-index:45;min-width:216px;margin:0;padding:8px;list-style:none;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-groove);box-shadow:var(--shadow-panel);display:none;transform:translateX(-50%)}
.nav-more.is-open .nav-more-panel,.nav-more[open] .nav-more-panel{display:block}
.nav-more>summary{list-style:none;cursor:pointer}
.nav-more>summary::-webkit-details-marker{display:none}
.nav-more-panel a{display:flex;flex-direction:column;gap:2px;min-height:44px;padding:10px 12px;border-radius:var(--r-sm);font-size:var(--text-ui);color:var(--text)}
.nav-more-panel a:hover,.nav-more-panel a[aria-current="page"]{background:var(--bg-panel-2)}
.nav-more-panel small{font-size:var(--text-sm);color:var(--text-muted)}
.head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}
.lang-picker{position:relative}
.lang{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;min-width:44px;width:auto;padding:6px 12px;border:0;border-radius:var(--r-pill);background:var(--clear);font-size:var(--text-ui);color:var(--text-muted);white-space:nowrap}
.lang:hover{color:var(--text);background:var(--veil-white)}
.lang .ic{width:16px;height:16px}
.lang-label{white-space:nowrap}
.lang-panel{display:none;position:absolute;z-index:48;top:calc(100% + 10px);right:0;width:192px;padding:8px;border:1px solid var(--border);border-radius:var(--r-groove);background:var(--bg-panel);box-shadow:var(--shadow-panel)}
.lang-picker.is-open .lang-panel{display:block}
.lang-panel a{display:flex;align-items:center;min-height:44px;padding:8px 12px;border-radius:var(--r-sm);font-size:var(--text-ui)}
.lang-panel a:hover,.lang-panel a[aria-current="true"]{background:var(--bg-panel-2);color:var(--accent-dark)}
.head-sep{width:1px;height:20px;background:var(--border)}
.login{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:6px 20px;border:1px solid var(--text);border-radius:var(--r-pill);background:var(--veil-white);color:var(--text);font-size:var(--text-ui);font-weight:var(--weight-medium);white-space:nowrap;transition:background-color var(--ease),color var(--ease)}
.login:hover{background:var(--text);color:var(--on-ink)}
.menu-toggle{display:none;align-items:center;justify-content:center;flex-direction:column;gap:4px;min-width:44px;min-height:44px;padding:8px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--bg-panel);color:var(--text)}
.menu-line{display:block;width:20px;height:2px;background:currentColor}
.mobile-drawer{display:none}
.menu-veil{display:none}
html.nav-open{overflow:hidden}
.site-footer{border-top:1px solid var(--border);background:var(--bg-panel-2);padding-top:56px;padding-bottom:28px}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px}
.footer-grid>*{min-width:0}
.footer-brand p{max-width:28em;margin:18px 0 0;color:var(--text-muted);font-size:var(--text-ui)}
.footer-title{margin:0 0 14px;font-family:var(--font-body);font-size:var(--text-ui);font-weight:var(--weight-strong)}
.footer-links{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;margin:0;padding:0}
.footer-links li{min-width:0}
.footer-links a{display:inline-flex;align-items:center;min-height:32px;font-size:var(--text-ui);color:var(--text-muted);overflow-wrap:anywhere}
.footer-links a:hover{color:var(--accent-dark);text-decoration:underline;text-underline-offset:4px}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:40px;padding-top:20px;border-top:1px solid var(--border);font-size:var(--text-label);color:var(--text-muted)}
.footer-bottom p{margin:0}
.footer-languages{margin-top:28px}
.reveal{transition:opacity var(--reveal-time) ease,transform var(--reveal-time) ease}
.reveal.pending{opacity:0;transform:translateY(16px)}
.reveal.shown{opacity:1;transform:none}
#server-status{position:relative;display:block;min-height:120px;max-width:100%;overflow:hidden;margin-block:24px}
#server-status+*{margin-top:32px}
#server-status>*{min-width:0;max-width:100%}
.decor-zone{position:relative;overflow-x:clip;isolation:isolate}
.decor-halo{position:absolute;inset:0;z-index:-1;pointer-events:none;max-width:100%;background:radial-gradient(ellipse at 80% 20%,var(--glow-apricot),var(--clear) 70%)}
.counter-number,[data-counter]{display:inline-block;min-width:3ch;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";text-align:center}
@media(min-width:901px) and (max-width:1120px){
  .head-inner{gap:12px}.nav-link{padding-inline:9px}.head-actions{gap:4px}.lang{padding-inline:8px}
}
@media(max-width:900px){
  .head-inner{gap:10px}
  .nav{display:none}
  .head-actions{margin-left:auto}
  .head-sep{display:none}
  .menu-toggle{display:inline-flex}
  .mobile-drawer{position:fixed;top:var(--header-height);right:0;left:0;z-index:38;height:calc(100dvh - var(--header-height));max-height:calc(100dvh - var(--header-height));overflow-y:auto;overscroll-behavior:contain;padding:16px var(--gutter) 40px;background:var(--bg-panel);border-top:1px solid var(--border)}
  .mobile-drawer.is-open{display:block}
  .mobile-drawer a{display:flex;align-items:center;min-height:44px;width:100%;padding:12px 16px;border-radius:var(--r-sm);font-size:var(--text-base)}
  .mobile-drawer a:hover,.mobile-drawer a[aria-current="page"]{background:var(--bg-panel-2);color:var(--accent-dark)}
  .drawer-languages{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}
  .menu-veil{position:fixed;inset:var(--header-height) 0 0;z-index:37;border:0;background:var(--ink-shadow)}
  .menu-veil.is-open{display:block}
}
@media(max-width:768px){
  :root{--gutter:16px;--text-h2:30px;--text-h3:24px}
  h1{font-size:var(--text-display-mobile);line-height:1.2}
  .sec{padding-top:56px;padding-bottom:64px}
  .grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:28px}
  .footer-bottom{align-items:flex-start}
}
@media(max-width:640px){
  .no-break{white-space:normal}
  .tilt,.note{transform:none}
  .decor-zone,.decor-halo{max-width:100%}
  .brand{gap:6px}.brand-word{font-size:var(--text-large)}
  .brand-mark{width:26px;height:26px}
  .head-actions{gap:3px}.head-inner{gap:6px}
  .login{padding-inline:12px}
  .lang{padding-inline:8px}
  .lang-label{display:none}
  .card{padding:22px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
  .reveal,.reveal.pending{opacity:1;transform:none}
}