:root{--bg:#ffffff;--bg-soft:#f4f6f9;--fg:#16181d;--muted:#5a6272;--line:#e2e6ec;--accent:#2563c9;--accent-ink:#ffffff;--accent-soft:#e8f0fc;--code-bg:#f1f3f7;--shell:#e9ecf1;--shell-line:#b9c0cc;--note:#2563c9;--tip:#1f8a5b;--warn:#b7791f;--danger:#c2413b;--radius:10px;--font:-apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, Arial, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111317;--bg-soft:#181b21;--fg:#e7e9ee;--muted:#9aa3b2;--line:#2a2f38;--accent:#6ea0ff;--accent-ink:#0b1220;--accent-soft:#1a2638;--code-bg:#1b1f27;--shell:#2a2e36;--shell-line:#49505d;--note:#6ea0ff;--tip:#4cc08a;--warn:#e0a84a;--danger:#ef6b65;color-scheme:dark}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font:17px/1.6 var(--font);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}img{max-width:100%;height:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:8px;background:var(--bg);padding:6px 10px;z-index:10}.wrap{max-width:1080px;margin:0 auto;padding:0 20px}.site-header{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4)blur(10px);-webkit-backdrop-filter:saturate(1.4)blur(10px);border-bottom:1px solid var(--line)}.bar{max-width:1240px;margin:0 auto;padding:0 20px;height:56px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:9px;color:var(--fg);font-weight:700;font-size:18px;letter-spacing:-.01em}.brand:hover{text-decoration:none}.brand b{color:var(--accent);font-weight:700}.brand-mark{width:26px;height:26px}.brand-mark rect:first-child{fill:var(--shell);stroke:var(--shell-line);stroke-width:3}.brand-mark .scr{fill:var(--accent)}.brand-mark circle{fill:none;stroke:var(--shell-line);stroke-width:3}.brand-mark .hub{fill:var(--shell-line);stroke:none}.top-nav{display:flex;gap:20px;margin-left:auto}.top-nav a{color:var(--muted);font-weight:600;font-size:15px}.top-nav a[aria-current]{color:var(--fg)}.search-open{display:inline-flex;align-items:center;gap:6px;font:600 14px var(--font);color:var(--muted);background:var(--bg-soft);border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer}.search-open[hidden]{display:none}.search-open svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}@media(max-width:560px){.bar{gap:12px;padding:0 16px}.brand{font-size:17px}.brand-mark{width:22px;height:22px}.top-nav{gap:14px}.top-nav a{font-size:14px}.top-nav .nav-source{display:none}.search-open{padding:6px 8px}.search-open span{display:none}}.hero{padding:64px 0 40px;background:linear-gradient(180deg,var(--bg-soft),var(--bg));border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:center}.eyebrow{margin:0 0 10px;color:var(--accent);font-weight:700;font-size:14px;letter-spacing:.02em;text-transform:uppercase}.hero h1{margin:0;font-size:clamp(34px,5vw,52px);line-height:1.08;letter-spacing:-.025em}.lede{font-size:20px;color:var(--muted);margin:18px 0 26px;max-width:34em}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:0}.btn{display:inline-block;padding:10px 18px;border-radius:999px;font-weight:700;font-size:15px;border:1px solid var(--line);color:var(--fg);background:var(--bg)}.btn:hover{text-decoration:none;border-color:var(--muted)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{background:0 0}.device{margin:0 auto;width:min(100%,270px)}.device img{display:block;width:100%;height:auto;image-rendering:pixelated;border-radius:5px;border:1px solid var(--shell-line)}.device .body{background:linear-gradient(160deg,#f7f8fa,var(--shell) 60%);border:1px solid var(--shell-line);border-radius:26px;padding:18px 18px 26px;box-shadow:0 24px 50px rgba(20,30,50,.18),inset 0 1px rgba(255,255,255,.7)}.device .wheel{width:74%;aspect-ratio:1;margin:22px auto 0;border-radius:50%;background:#fdfdfe;border:1px solid var(--shell-line);display:grid;place-items:center;box-shadow:inset 0 2px 6px rgba(0,0,0,6%)}.device .wheel i{width:38%;aspect-ratio:1;border-radius:50%;background:var(--shell);border:1px solid var(--shell-line)}@media(max-width:760px){.hero{padding:40px 0 28px}.hero-grid{grid-template-columns:1fr;gap:32px}.device{width:min(64%,220px)}}.features{padding:36px 0 8px}.features ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.features li{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.features strong{display:block;font-size:16px;margin-bottom:4px}.features span{color:var(--muted);font-size:15px;line-height:1.5}@media(max-width:900px){.features ul{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.features ul{grid-template-columns:1fr}}.home-body{padding:24px 0 56px}.home-body .article{max-width:760px}.doc{max-width:1240px;margin:0 auto;padding:32px 20px 64px}.doc.with-nav{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px}.guide-nav{position:sticky;top:76px;align-self:start;font-size:15px}.guide-nav summary{font-weight:700;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.04em;cursor:default;list-style:none;margin-bottom:8px}.guide-nav summary::-webkit-details-marker{display:none}.guide-nav ol{list-style:none;margin:0 0 16px;padding:0}.guide-nav li a{display:block;padding:6px 10px;border-radius:8px;color:var(--fg)}.guide-nav li a:hover{background:var(--bg-soft);text-decoration:none}.guide-nav a[aria-current]{background:var(--accent-soft);color:var(--accent);font-weight:700}.pdf-link{display:inline-block;font-size:14px;font-weight:600;padding:0 10px}@media(max-width:900px){.doc.with-nav{grid-template-columns:1fr;gap:16px}.guide-nav{position:static;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}.guide-nav summary{cursor:pointer;margin:0}.guide-nav summary::after{content:" ▾"}.guide-nav details:not([open]) summary::after{content:" ▸"}.guide-nav details[open] ol{margin-top:8px}}.article{max-width:720px;min-width:0}.article h1{font-size:clamp(30px,4vw,40px);line-height:1.15;letter-spacing:-.02em;margin:0 0 18px}.article h2{font-size:24px;letter-spacing:-.01em;margin:44px 0 10px;padding-top:8px}.article h3{font-size:19px;margin:30px 0 6px}.article p,.article ul,.article ol{margin:0 0 16px}.article li{margin:4px 0}.article strong{font-weight:700}.anchor{margin-left:8px;color:var(--line);font-weight:400;opacity:0}h2:hover .anchor,h3:hover .anchor{opacity:1}.anchor:hover{color:var(--accent);text-decoration:none}.crumb{margin:0 0 6px;font-size:14px;font-weight:600}.crumb:empty{display:none}.date{color:var(--muted);margin:-8px 0 20px}.article code{font:.88em var(--mono);background:var(--code-bg);padding:2px 5px;border-radius:5px}.article pre{background:var(--code-bg);padding:14px 16px;border-radius:var(--radius);overflow-x:auto;font-size:14px}.article pre code{background:0 0;padding:0}.article table{width:100%;border-collapse:collapse;margin:0 0 20px;font-size:15px;display:block;overflow-x:auto}.article th,.article td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}.article th{font-weight:700;background:var(--bg-soft)}.article hr{border:0;border-top:1px solid var(--line);margin:36px 0}.article blockquote{margin:0 0 16px;padding:2px 16px;border-left:3px solid var(--line);color:var(--muted)}.article figure{margin:20px 0}.article figcaption{color:var(--muted);font-size:14px;margin-top:6px}.article img[src*="/images/"]{display:block;width:min(100%,480px);image-rendering:pixelated;border-radius:6px;border:8px solid var(--shell);box-shadow:0 1px 0 var(--shell-line),0 10px 26px rgba(20,30,50,.14);margin:18px 0}.toc{background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;margin:0 0 24px;font-size:15px}.toc summary{font-weight:700;cursor:pointer}.toc ul{margin:8px 0 2px;padding-left:18px}.callout{border:1px solid var(--line);border-left:4px solid var(--note);border-radius:8px;background:var(--bg-soft);padding:12px 16px;margin:0 0 18px}.callout>:last-child{margin-bottom:0}.callout-title{font-weight:700;margin:0 0 4px!important;color:var(--note);font-size:15px}.callout-tip{border-left-color:var(--tip)}.callout-tip .callout-title{color:var(--tip)}.callout-warning,.callout-important{border-left-color:var(--warn)}.callout-warning .callout-title,.callout-important .callout-title{color:var(--warn)}.callout-caution{border-left-color:var(--danger)}.callout-caution .callout-title{color:var(--danger)}.cards{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px}.cards a{display:block;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);color:var(--fg)}.cards a:hover{border-color:var(--accent);text-decoration:none}.cards strong{display:block}.cards span{color:var(--muted);font-size:15px}.prevnext{display:flex;justify-content:space-between;gap:12px;margin-top:48px;padding-top:20px;border-top:1px solid var(--line)}.prevnext a{display:flex;flex-direction:column;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius);font-weight:700;max-width:48%}.prevnext a:hover{border-color:var(--accent);text-decoration:none}.prevnext small{color:var(--muted);font-weight:600;font-size:13px}.prevnext .next{margin-left:auto;text-align:right}.site-footer{border-top:1px solid var(--line);background:var(--bg-soft);padding:28px 0 36px;font-size:14px;color:var(--muted)}.site-footer p{margin:0 0 10px;max-width:760px}.site-footer .meta a{font-weight:600}.search-dialog{width:min(680px,calc(100vw - 32px));max-height:80vh;border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--bg);color:var(--fg)}.search-dialog::backdrop{background:rgba(10,14,22,.45)}.search-dialog form{text-align:right;margin-top:10px}.search-close{font:600 14px var(--font);background:0 0;border:0;color:var(--muted);cursor:pointer}.search-dialog{--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--fg);--pagefind-ui-background:var(--bg);--pagefind-ui-border:var(--line);--pagefind-ui-tag:var(--bg-soft);--pagefind-ui-font:var(--font)}@page{size:A5;margin:16mm 14mm 18mm;@bottom-center{content: counter(page); font: 9pt var(--font); color: #5a6272; }}@page:first{@bottom-center{content: none; }}@media print{:root{--bg:#fff;--fg:#111;--bg-soft:#f4f6f9;--line:#d9dee6;--muted:#4b5262;color-scheme:light}body{font-size:10.5pt;line-height:1.5}.site-header,.site-footer,.guide-nav,.prevnext,.anchor,.search-dialog,.toc{display:none!important}a{color:inherit}}.print-book{font-size:10.5pt;line-height:1.5;color:#111;background:#fff}.print-book .cover{height:170mm;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;page-break-after:always}.print-book .brand-mark.big{width:64px;height:64px;margin-bottom:18px}.print-book .cover h1{font-size:34pt;margin:0;letter-spacing:-.02em}.print-book .cover h1 b{color:var(--accent)}.print-book .cover-sub{font-size:18pt;margin:4pt 0 0;font-weight:700;color:#4b5262}.print-book .cover-ver{margin:18pt 0 0;font-weight:700;color:var(--accent)}.print-book .cover-hw{margin:4pt 0 0;color:#4b5262}.print-book .contents{page-break-after:always}.print-book .contents ol{padding-left:2.2em}.print-book .contents a{color:#111}.print-book .chapter{page-break-before:always}.print-book .chapter h1{font-size:20pt;letter-spacing:-.01em;margin:0 0 10pt;padding-bottom:6pt;border-bottom:2px solid var(--accent)}.print-book h2{font-size:13pt;margin:16pt 0 4pt;break-after:avoid}.print-book h3{font-size:11pt;margin:12pt 0 3pt;break-after:avoid}.print-book p,.print-book li{orphans:3;widows:3}.print-book img{break-inside:avoid;max-width:70%;image-rendering:pixelated;border:5px solid #e9ecf1;border-radius:4px;display:block;margin:8pt 0}.print-book figure,.print-book table,.print-book .callout,.print-book pre{break-inside:avoid}.print-book table{width:100%;border-collapse:collapse;font-size:9.5pt;margin:0 0 10pt}.print-book th,.print-book td{text-align:left;padding:4pt 6pt;border-bottom:1px solid #d9dee6;vertical-align:top}.print-book th{background:#f4f6f9}.print-book code{font:.9em var(--mono);background:#f1f3f7;padding:1px 3px;border-radius:3px}.print-book .callout{border:1px solid #d9dee6;border-left:3px solid var(--note);background:#f4f6f9;padding:6pt 9pt;margin:0 0 9pt;border-radius:4px}.print-book .callout>:last-child{margin-bottom:0}.print-book .anchor{display:none}.print-book .colophon{page-break-before:always;font-size:9pt;color:#4b5262;padding-top:120mm}