
:root{--bg:#fff;--ink:#1f2328;--muted:#656d76;--line:#e4e7eb;--accent:#2557a7;--code:#f4f6f8}*{box-sizing:border-box;min-width:0}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.85 "Hiragino Sans","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;overflow-wrap:anywhere}a{color:var(--accent);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}.wrap{max-width:760px;margin:0 auto;padding:0 22px}header{padding:28px 0 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:12px}header .site{font-weight:700;font-size:20px;color:var(--ink);text-decoration:none}header .site span{color:var(--accent)}header nav{display:flex;flex-wrap:wrap;gap:8px 16px}header nav a{font-size:13px;color:var(--muted);text-decoration:none}.sub,.meta{color:var(--muted);font-size:13px}.intro{margin:26px 0}.intro p{font-size:15px}.intro h1{font-size:24px;margin-bottom:8px}.notice{border-left:3px solid var(--accent);background:#f7f9fc;padding:12px 16px;font-size:13px;margin:20px 0}.categories{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}.categories a{font-size:13px;border:1px solid var(--line);padding:3px 10px;border-radius:3px;text-decoration:none}.section-title{font-size:17px;margin:30px 0 0;padding:6px 0;border-bottom:1px solid var(--line)}.post{padding:19px 0;border-bottom:1px solid var(--line)}.post h3{margin:4px 0;font-size:18px;line-height:1.6}.post h3 a{color:var(--ink);text-decoration:none}.post h3 a:hover{color:var(--accent)}.post p{margin:7px 0;color:var(--muted);font-size:14px}.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.tags span{font-size:11px;background:var(--code);border:1px solid var(--line);border-radius:3px;padding:0 6px;color:var(--muted)}article h1{font-size:27px;line-height:1.5;margin:28px 0 8px;letter-spacing:-.02em}article h2{font-size:19px;margin:32px 0 9px;padding-bottom:5px;border-bottom:1px solid var(--line);scroll-margin-top:12px}article p,article li{font-size:15px}article li+li{margin-top:7px}ul,ol{padding-left:24px}.toc{border:1px solid var(--line);padding:12px 16px;margin:24px 0;font-size:13px}.toc strong{font-size:13px}.toc ol{margin:8px 0 0}.toc li{font-size:13px}.toc a{text-decoration:none}pre{display:block;max-width:100%;background:var(--code);border:1px solid var(--line);border-radius:5px;padding:12px 14px;overflow-x:auto;white-space:pre;overflow-wrap:normal;word-break:normal;font:13px/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;tab-size:2}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:var(--code);padding:1px 4px;border-radius:3px}pre code{background:none;padding:0;font-size:inherit;white-space:inherit}.sources{font-size:13px}.sources li{font-size:13px}.related{border-top:1px solid var(--line);margin-top:30px;padding-top:15px;font-size:13px}footer{margin:42px 0 28px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}footer p{margin:3px 0}.skip{position:absolute;left:16px;top:-100px;background:white;padding:8px}.skip:focus{top:8px}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media(max-width:420px){.wrap{padding:0 17px}header{padding-top:20px}header nav{gap:7px 13px}article h1{font-size:24px}article h2{font-size:18px}pre{font-size:12px;padding:11px}body{line-height:1.9}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
