.site-header[data-astro-cid-nen7h5rs]{background:var(--brand);color:var(--brand-fg);border-bottom:3px solid var(--teal-600)}.site-header__inner[data-astro-cid-nen7h5rs]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;min-height:4rem;padding-block:.6rem;display:flex}.brand[data-astro-cid-nen7h5rs]{color:inherit;letter-spacing:.01em;align-items:center;gap:.7rem;font-weight:700;text-decoration:none;display:inline-flex}.brand__ticker[data-astro-cid-nen7h5rs]{font-family:var(--font-mono);letter-spacing:.14em;border:1.5px solid var(--teal-500);color:var(--teal-100);border-radius:4px;padding:.2em .55em;font-size:.8rem;line-height:1.4}.brand__name[data-astro-cid-nen7h5rs]{font-size:1.05rem}.brand[data-astro-cid-nen7h5rs]:focus-visible{outline-color:var(--focus)}.site-nav[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{flex-wrap:wrap;justify-content:center;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{white-space:nowrap;color:var(--sand-100);border-bottom:2px solid #0000;border-radius:4px;padding:.35rem .7rem;font-size:.95rem;text-decoration:none;display:inline-block}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--white);background:var(--navy-700)}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--white);border-bottom-color:var(--amber-500);border-radius:4px 4px 0 0}@media (width<=30rem){.site-header__inner[data-astro-cid-nen7h5rs]{text-align:center;justify-content:center}.site-nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{padding-inline:.5rem;font-size:.88rem}}.site-footer[data-astro-cid-jo6i4kqk]{background:var(--navy-900);color:var(--sand-200);margin-top:auto;padding-block:2.5rem 2rem;font-size:.9rem}.site-footer__inner[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=48rem){.site-footer__inner[data-astro-cid-jo6i4kqk]{grid-template-columns:1.2fr 1fr}.site-footer__disclaimer[data-astro-cid-jo6i4kqk],.site-footer__copy[data-astro-cid-jo6i4kqk]{grid-column:1/-1}}.site-footer__name[data-astro-cid-jo6i4kqk]{color:var(--sand-50);font-size:1rem;font-weight:700}.site-footer__tagline[data-astro-cid-jo6i4kqk]{color:var(--sand-200);margin-top:.25rem}.site-footer__nav[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;gap:0 2.5rem;display:flex}.site-footer__nav[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{margin:0;padding:0;list-style:none}.site-footer__nav[data-astro-cid-jo6i4kqk] li[data-astro-cid-jo6i4kqk]{padding:.2rem 0}.site-footer[data-astro-cid-jo6i4kqk] a{color:var(--sand-50)}.site-footer[data-astro-cid-jo6i4kqk] a:hover{color:var(--teal-100)}.site-footer[data-astro-cid-jo6i4kqk] .todo[data-astro-cid-jo6i4kqk]{color:var(--amber-500);border-color:var(--amber-500);background:0 0}.site-footer[data-astro-cid-jo6i4kqk] .todo[data-astro-cid-jo6i4kqk]:before{color:var(--amber-500)}.site-footer__disclaimer[data-astro-cid-jo6i4kqk]{color:var(--sand-200);border-top:1px solid var(--navy-600);max-width:var(--measure);padding-top:1.25rem;font-size:.85rem}.site-footer__copy[data-astro-cid-jo6i4kqk]{font-family:var(--font-mono);color:var(--sand-200);font-size:.8rem}:root{--navy-900:#0b1a2b;--navy-800:#10253a;--navy-700:#17324d;--navy-600:#24466a;--teal-700:#14655e;--teal-600:#177a72;--teal-500:#1f8f86;--teal-100:#dcefec;--teal-50:#eef7f5;--sand-50:#f7f6f1;--sand-100:#efede6;--sand-200:#e2dfd5;--ink-900:#1b2430;--ink-600:#4d5966;--ink-500:#5f6b78;--line:#d8d5cb;--amber-500:#d9a621;--amber-100:#fbf1d3;--white:#fff;--bg:var(--sand-50);--surface:var(--white);--text:var(--ink-900);--text-muted:var(--ink-600);--link:var(--teal-700);--link-hover:var(--navy-800);--brand:var(--navy-900);--brand-fg:var(--sand-50);--accent:var(--teal-600);--focus:var(--amber-500);--font-sans:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Noto Sans CJK JP", "Yu Gothic Medium", "Yu Gothic", Meiryo, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", "Noto Sans Mono CJK JP", monospace;--measure:44rem;--wide:68rem;--gutter:clamp(1rem, 4vw, 2rem);--radius:6px}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:4.5rem;font-size:100%;line-height:1.8}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-feature-settings:"palt" 0;overflow-wrap:anywhere;flex-direction:column;min-height:100dvh;margin:0;display:flex}main{flex:1 0 auto}h1,h2,h3,h4{letter-spacing:.01em;color:var(--navy-900);text-wrap:balance;margin:0;font-weight:700;line-height:1.35}h1{font-size:clamp(1.75rem,1.2rem + 2.2vw,2.5rem)}h2{font-size:clamp(1.35rem,1.1rem + 1vw,1.7rem)}h3{font-size:1.15rem}p{margin:0}a{color:var(--link);text-underline-offset:.18em;text-decoration:underline 1px}a:hover{color:var(--link-hover);text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}img,svg,video,iframe{max-width:100%;height:auto}code,kbd,pre{font-family:var(--font-mono);font-size:.92em}code{background:var(--sand-100);border-radius:4px;padding:.1em .35em}pre{border-radius:var(--radius);border:1px solid var(--line);padding:1rem 1.25rem;line-height:1.6;overflow-x:auto}pre code{background:0 0;padding:0;font-size:.875rem}hr{border:0;border-top:1px solid var(--line);margin:2rem 0}.container{width:100%;max-width:var(--wide);padding-inline:var(--gutter);margin-inline:auto}.measure{max-width:var(--measure)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--amber-500);color:var(--navy-900);border-radius:var(--radius);padding:.5rem 1rem;font-weight:700;text-decoration:none;position:absolute;top:-100%;left:1rem}.skip-link:focus{top:1rem}.mono{font-family:var(--font-mono)}.muted{color:var(--text-muted)}.eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-700);margin-bottom:.5rem;font-size:.78rem;display:inline-block}.todo{font-family:var(--font-mono);color:var(--ink-600);background:var(--amber-100);border:1px dashed var(--amber-500);border-radius:4px;align-items:center;gap:.4em;padding:.15em .55em;font-size:.8rem;line-height:1.5;display:inline-flex}.todo:before{content:"TODO";color:#7a5a00;font-weight:700}.badge{letter-spacing:.04em;vertical-align:middle;border:1px solid;border-radius:999px;padding:.15em .6em;font-size:.75rem;font-weight:700;line-height:1.4;display:inline-block}.badge--wip{color:#7a5a00;background:var(--amber-100)}.badge--archived{color:var(--ink-600);background:var(--sand-100)}.badge--draft{color:#8a1f1f;background:#fbe4e4}.badge--network{color:var(--teal-700);background:var(--teal-50);font-weight:600}.button{border-radius:var(--radius);border:2px solid var(--navy-900);background:var(--navy-900);color:var(--sand-50);align-items:center;gap:.5em;padding:.65em 1.2em;font-weight:700;text-decoration:none;transition:background-color .15s;display:inline-flex}.button:hover{background:var(--navy-700);border-color:var(--navy-700);color:var(--white)}.button--secondary{color:var(--navy-900);background:0 0}.button--secondary:hover{background:var(--sand-100);color:var(--navy-900)}.section{padding-block:clamp(2.5rem,6vw,4.5rem)}.section+.section{border-top:1px solid var(--line)}.section__head{margin-bottom:1.75rem}.section__head p{color:var(--text-muted);max-width:var(--measure);margin-top:.5rem}.grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1.25rem;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}.card h3{margin-bottom:.5rem}.card p{color:var(--text-muted);font-size:.95rem}a.external-link:after,a[data-external]:after{content:"";vertical-align:.05em;background-color:currentColor;width:.7em;height:.7em;margin-left:.25em;display:inline-block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M9 7h8v8'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M9 7h8v8'/%3E%3C/svg%3E") 50%/contain no-repeat}.prose{max-width:var(--measure);font-size:1.02rem}.prose>*+*{margin-top:1.1em}.prose h2{border-top:1px solid var(--line);margin-top:2.75em;padding-top:1.25em;font-size:1.4rem}.prose h2:first-child{border-top:0;margin-top:0;padding-top:0}.prose h3{margin-top:2em;font-size:1.12rem}.prose h4{margin-top:1.5em;font-size:1rem}.prose ul,.prose ol{padding-left:1.5em}.prose li+li,.prose li>ul,.prose li>ol{margin-top:.35em}.prose blockquote{border-left:4px solid var(--teal-500);background:var(--teal-50);color:var(--ink-900);border-radius:0 var(--radius) var(--radius) 0;margin:1.25em 0;padding:.75em 1.25em}.prose blockquote>*+*{margin-top:.5em}.prose table{border-collapse:collapse;width:100%;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.5em .75em}.prose th{background:var(--sand-100);font-weight:700}.prose img{border-radius:var(--radius);border:1px solid var(--line)}.prose strong{color:var(--navy-900)}
