:root{--bg0:#0c0e11;--bg1:#13161b;--bg2:#191d23;--bg3:#222831;--line1:rgba(255,255,255,.06);--line2:rgba(255,255,255,.10);--ink0:#e6e8ec;--ink1:#a8adb6;--ink2:#6a707b;--ink3:#43484f;--brand:#f5c414;--brand-hi:#ffd23f;--brand-soft:rgba(245,196,20,.14);--ok:#7fae6c;--warn:#d5a24e;--bad:#cf5a4b;--m-metro:#cf5a4b;--m-tram:#7fae6c;--m-bus:#e57346;--m-rail:#7d9bc4}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg0);color:var(--ink0);font-family:inter,helvetica neue,-apple-system,Segoe UI,Arial,sans-serif;-webkit-font-smoothing:antialiased}.mono{font-family:ibm plex mono,ui-monospace,sf mono,Menlo,monospace}.wrap{max-width:1180px;margin:0 auto;padding:0 28px}a{color:inherit}.glyph rect,.glyph circle{fill:var(--brand)}.glyph .dot{fill:var(--bg0)}nav{border-bottom:1px solid var(--line2)}.nav-in{display:flex;align-items:center;gap:28px;padding:16px 0}.mark{display:flex;align-items:center;gap:11px;font-weight:800;font-size:17px;text-decoration:none}.mark .glyph{height:26px;width:auto;display:block}.chip-wiki{font-size:10px;letter-spacing:.16em;color:var(--brand);border:1px solid var(--brand);border-radius:4px;padding:3px 7px;font-weight:700}.nav-links{margin-left:auto;display:flex;gap:22px;align-items:center;font-size:14px}.nav-links a{color:var(--ink1);text-decoration:none}.nav-links a:hover{color:var(--ink0)}.lang{letter-spacing:.14em;font-size:11px;color:var(--ink2)}.lang b{color:var(--ink0)}.lang a{color:var(--ink2);text-decoration:none}.lang a:hover{color:var(--ink0)}.shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:44px;padding-top:34px;min-height:60vh}.side{border-right:1px solid var(--line1);padding-right:24px}.side-box summary{list-style:none;cursor:default;font-size:11px;letter-spacing:.16em;color:var(--ink2);margin-bottom:14px}.side-box summary::-webkit-details-marker{display:none}.tree{list-style:none;font-size:14px}.tree>li{margin-bottom:14px}.tree>li>a{font-weight:700;color:var(--ink0);text-decoration:none}.tree>li>a:hover,.tree ul a:hover{color:var(--brand-hi)}.tree>li>a.on{color:var(--brand)}.tree ul{list-style:none;margin:7px 0 0 2px;border-left:1px solid var(--line2)}.tree ul li{margin:0}.tree ul a{display:block;color:var(--ink1);text-decoration:none;font-size:13.5px;padding:4px 0 4px 12px;border-left:2px solid transparent;margin-left:-1px}.tree ul a.on{color:var(--brand);border-left-color:var(--brand)}.crumbs{font-size:11.5px;letter-spacing:.06em;color:var(--ink2);margin-bottom:18px}.crumbs a{color:var(--ink2);text-decoration:none}.crumbs a:hover{color:var(--ink0)}.crumbs span{color:var(--ink1)}.doc{max-width:760px}.doc h1{font-size:clamp(28px,4.5vw,40px);font-weight:800;letter-spacing:-.02em;line-height:1.15}.ver{margin-top:10px;font-size:11px;letter-spacing:.1em;color:var(--ink2)}.toc{margin:22px 0 0;background:var(--bg1);border:1px solid var(--line1);border-radius:8px;padding:12px 16px;font-size:13.5px}.toc summary{cursor:pointer;font-size:11px;letter-spacing:.16em;color:var(--ink2)}.toc ul{list-style:none;margin:8px 0 2px 2px}.toc ul ul{margin:2px 0 2px 14px}.toc li{margin:5px 0}.toc a{color:var(--ink1);text-decoration:none}.toc a:hover{color:var(--brand-hi)}.body{margin-top:22px;font-size:16px;line-height:1.7;color:var(--ink1)}.body p+p{margin-top:14px}.body h2{margin:36px 0 12px;font-size:22px;font-weight:800;color:var(--ink0);line-height:1.3;padding-top:14px;border-top:1px solid var(--line1)}.body h3{margin:26px 0 8px;font-size:17px;font-weight:700;color:var(--ink0)}.body strong{color:var(--ink0)}.body a{color:var(--ink0);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--brand)}.body a:hover{color:var(--brand-hi)}.body ul,.body ol{margin:12px 0 12px 22px}.body li{margin:6px 0}.body hr{margin:28px 0;border:0;border-top:1px solid var(--line1)}.body code{font-family:ibm plex mono,ui-monospace,Menlo,monospace;font-size:.88em;background:var(--bg2);border:1px solid var(--line1);border-radius:5px;padding:2px 6px;color:var(--ink0)}.body pre{background:var(--bg1);border:1px solid var(--line1);border-radius:8px;padding:14px 16px;margin:16px 0;overflow-x:auto}.body pre code{background:0 0;border:0;padding:0;font-size:13px;line-height:1.6}.body blockquote{margin:16px 0;border-left:4px solid var(--brand);background:var(--bg1);border-radius:0 8px 8px 0;padding:12px 16px;color:var(--ink1)}.body img{max-width:100%;border-radius:8px;display:block;margin:18px 0}.body table{width:100%;border-collapse:collapse;margin:18px 0;font-size:14px}.body th,.body td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line2);vertical-align:top}.body th{font-weight:700;color:var(--ink0);font-size:12px;letter-spacing:.08em;border-bottom:2px solid var(--line2);white-space:nowrap}.body td{color:var(--ink1)}.body tr:hover td{background:var(--bg1)}.table-scroll{overflow-x:auto}.mdot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px;vertical-align:baseline}.mdot.bus{background:var(--m-bus)}.mdot.filobus{background:var(--m-rail)}.mdot.tram{background:var(--m-tram)}.mdot.metro{background:var(--m-metro)}.wip{display:flex;gap:12px;align-items:baseline;margin:20px 0 4px;background:var(--bg2);border:1px solid var(--line2);border-left:4px solid var(--brand);border-radius:8px;padding:11px 15px;font-size:13px;color:var(--ink1)}.wip b{letter-spacing:.14em;color:var(--brand-hi);font-size:11px}.vcard{display:grid;grid-template-columns:180px 1fr;gap:20px;margin:20px 0;background:var(--bg1);border:1px solid var(--line1);border-radius:12px;padding:20px}.vcard .art{width:100%;border-radius:8px;background:var(--bg2)}.vcard .art-ph{display:grid;place-items:center;aspect-ratio:1;color:var(--ink3);font-size:11px;letter-spacing:.14em}.vcard h3{margin:0 0 2px;font-size:19px;color:var(--ink0)}.vcard .sub{font-size:12px;letter-spacing:.1em;color:var(--ink2);margin-bottom:10px}.vcard dl{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;font-size:13.5px}.vcard dt{color:var(--ink2)}.vcard dd{color:var(--ink0)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:30px 0 10px;max-width:760px}.card{display:block;background:var(--bg1);border:1px solid var(--line1);border-radius:10px;padding:18px;text-decoration:none}.card:hover{border-color:var(--line2);background:var(--bg2)}.card h3{font-size:15.5px;color:var(--ink0)}.card p{margin-top:7px;font-size:13px;line-height:1.5;color:var(--ink2)}.page-meta{margin:34px 0 8px;font-size:12px;color:var(--ink2);letter-spacing:.06em}.searchbox{margin-top:24px}.pagefind-ui{--pagefind-ui-primary:var(--ink0);--pagefind-ui-text:var(--ink1);--pagefind-ui-background:var(--bg1);--pagefind-ui-border:var(--line2);--pagefind-ui-tag:var(--bg2);--pagefind-ui-border-radius:8px;--pagefind-ui-font:inherit}.foot{margin-top:72px;border-top:1px solid var(--line1)}.foot-in{display:flex;align-items:center;gap:20px;padding:22px 0 30px;font-size:13px;color:var(--ink2);flex-wrap:wrap}.foot a{color:var(--ink1);text-decoration:none}.foot a:hover{color:var(--brand-hi)}.foot-right{margin-left:auto;display:flex;gap:14px;align-items:center;flex-wrap:wrap}@media(max-width:860px){.shell{grid-template-columns:1fr;gap:10px;padding-top:20px}.side{border-right:0;padding-right:0;border-bottom:1px solid var(--line1);padding-bottom:16px}.side-box summary{cursor:pointer}.side-box summary::after{content:" ▾"}.nav-links a.hide-m{display:none}.vcard{grid-template-columns:1fr}.vcard .art,.vcard .art-ph{max-width:220px}}@media(min-width:861px){.side-box summary{pointer-events:none}}