:root{--c-blue:#7d97b8;--c-blue-light:#bfcbea;--c-wakaba:#c4d491;--c-fujimurasaki:#9d9cc1;--c-kehai:#9475b6;--c-sumire:#7e6cbc;--c-rindo:#62548f;--bg:#f5f6fa;--surface:#fff;--ink:#26232e;--ink-soft:#5e586b;--line:#e2e4ec;--link:var(--c-rindo);--link-hover:#4a3f72;--accent:var(--c-sumire);--spot:var(--c-blue-light);--focus:#4a3f72;--tone-violet-bg:#e6e2f3;--tone-violet-ink:#4a3f72;--tone-blue-bg:#dfe6f0;--tone-blue-ink:#38506e;--tone-leaf-bg:#e9efd3;--tone-leaf-ink:#3d4a1f;--font-body:"PingFang TC", "Noto Sans TC", "Microsoft JhengHei", "Heiti TC", system-ui, sans-serif;--font-display-stack:var(--font-display), cursive;--step--1:.875rem;--step-0:1.0625rem;--step-1:1.25rem;--step-2:1.5625rem;--step-3:1.953rem;--step-4:2.441rem;--measure:40rem;--article:66rem;--wide:112rem;--radius-s:6px;--radius-m:10px;--radius-l:18px;color-scheme:light}:root[data-theme=dark]{--bg:#1b1922;--surface:#24212d;--ink:#eceaf1;--ink-soft:#aba6b8;--line:#363241;--link:#bdbbe0;--link-hover:#dcdbf2;--accent:var(--c-fujimurasaki);--spot:#46527a;--focus:var(--c-blue-light);--tone-violet-bg:#3a3452;--tone-violet-ink:#dcd7f3;--tone-blue-bg:#2c3646;--tone-blue-ink:#d9e3f1;--tone-leaf-bg:#323a26;--tone-leaf-ink:#e3ebc9;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);letter-spacing:.01em;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;margin:0;line-height:1.75;display:flex}main{flex:1}img{max-width:100%;height:auto;display:block}a{color:var(--link);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--link-hover)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}h1,h2,h3,h4{letter-spacing:.02em;text-wrap:pretty;text-spacing-trim:trim-start;margin:0;font-weight:700;line-height:1.35}p{margin:0}.wrap{width:min(100% - 2rem, max(70%, 72rem), var(--wide));margin-inline:auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{background:var(--surface);z-index:10;padding:.5rem 1rem;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.tone-violet{--tone-bg:var(--tone-violet-bg);--tone-ink:var(--tone-violet-ink);--tone-dot:var(--c-sumire)}.tone-blue{--tone-bg:var(--tone-blue-bg);--tone-ink:var(--tone-blue-ink);--tone-dot:var(--c-blue)}.tone-leaf{--tone-bg:var(--tone-leaf-bg);--tone-ink:var(--tone-leaf-ink);--tone-dot:var(--c-wakaba)}.page-head{padding-block:3.5rem 2rem}.page-head h1{font-size:var(--step-4)}.page-head p{color:var(--ink-soft);max-width:36rem;margin-top:.75rem}.prose{max-width:var(--article);font-size:1.0625rem;line-height:1.9}.prose>*+*{margin-top:1.25em}.prose h2{font-size:var(--step-2);border-left:4px solid var(--accent);margin-top:2.4em;padding-left:.75rem}.prose h3{font-size:var(--step-1);margin-top:2em}.prose h2+*,.prose h3+*{margin-top:.75em}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:3px solid var(--c-blue);color:var(--ink-soft);margin-inline:0;padding:.25em 0 .25em 1.25em}.prose img{border-radius:var(--radius-m)}.prose figure{margin-inline:0}.prose figcaption{font-size:var(--step--1);color:var(--ink-soft);text-align:center;margin-top:.5em}.prose hr{background:var(--line);border:0;height:1px;margin-block:2.5em}.prose code{background:var(--tone-violet-bg);color:var(--tone-violet-ink);border-radius:4px;padding:.1em .35em;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.9em}.prose pre{border-radius:var(--radius-m);padding:1rem 1.25rem;font-size:.875rem;line-height:1.6;overflow-x:auto}.prose pre code{color:inherit;background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.55em .8em}.prose th{background:var(--surface)}.prose iframe{aspect-ratio:16/9;border-radius:var(--radius-m);border:0;width:100%}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.site-footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);color:var(--ink-soft);margin-top:5rem;padding-block:2.5rem 2rem;font-size:.925rem}.cols[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;align-items:flex-start;gap:2rem clamp(3rem,6vw,6rem);display:flex}.cols[data-astro-cid-jo6i4kqk]>[data-astro-cid-jo6i4kqk]:first-child{flex:0 28rem;margin-right:auto}.name[data-astro-cid-jo6i4kqk]{font-family:var(--font-display-stack);color:var(--ink);font-size:1.9rem;font-weight:400;line-height:1.1}.note[data-astro-cid-jo6i4kqk]{max-width:26rem;margin-top:.4rem}.links[data-astro-cid-jo6i4kqk]{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--ink-soft);text-decoration:none}.links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--link);text-decoration:underline}.copy[data-astro-cid-jo6i4kqk]{margin-top:2rem;font-size:.85rem}@media (width<=640px){.cols[data-astro-cid-jo6i4kqk]>[data-astro-cid-jo6i4kqk]:first-child{flex-basis:100%}}.site-header[data-astro-cid-nen7h5rs]{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 92%, transparent);backdrop-filter:blur(8px);z-index:5;position:sticky;top:0}.bar[data-astro-cid-nen7h5rs]{align-items:center;gap:1.5rem;min-height:4rem;display:flex}.wordmark[data-astro-cid-nen7h5rs]{font-family:var(--font-display-stack);color:var(--c-rindo);white-space:nowrap;letter-spacing:0;font-size:2.15rem;font-weight:400;line-height:1;text-decoration:none}[data-theme=dark] .wordmark[data-astro-cid-nen7h5rs]{color:var(--link)}nav[data-astro-cid-nen7h5rs]{margin-left:auto}ul[data-astro-cid-nen7h5rs]{margin:0;padding:0;list-style:none}.nav-desktop[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{gap:1.6rem;display:flex}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--ink);font-size:.975rem;text-decoration:none}nav[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{color:var(--link)}.nav-desktop[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{border-bottom:2px solid #0000;padding-block:.3rem}.nav-desktop[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{border-bottom-color:var(--c-blue)}.nav-mobile[data-astro-cid-nen7h5rs]{display:none;position:relative}.menu[data-astro-cid-nen7h5rs] summary[data-astro-cid-nen7h5rs]{cursor:pointer;border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:.35rem .9rem;font-size:.95rem;list-style:none}.menu[data-astro-cid-nen7h5rs] summary[data-astro-cid-nen7h5rs]::-webkit-details-marker{display:none}.menu[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);min-width:10rem;padding:.5rem;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 12px 30px -12px #26232e40}.menu[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{border-radius:var(--radius-s);padding:.55rem .75rem;display:block}.menu[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{background:var(--tone-blue-bg)}.theme[data-astro-cid-nen7h5rs]{cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;padding:0}.track[data-astro-cid-nen7h5rs]{border:1px solid var(--line);background:var(--surface);width:3.6rem;height:1.9rem;color:var(--ink-soft);border-radius:999px;justify-content:space-between;align-items:center;padding:0 .45rem;display:flex;position:relative}.icon[data-astro-cid-nen7h5rs]{z-index:1;transition:color .25s;position:relative}.knob[data-astro-cid-nen7h5rs]{background:var(--c-blue-light);border-radius:50%;width:calc(1.9rem - 6px);height:calc(1.9rem - 6px);transition:transform .3s cubic-bezier(.3,.7,.2,1),background-color .3s;position:absolute;top:2px;left:2px}.sun[data-astro-cid-nen7h5rs]{color:var(--c-rindo)}[data-theme=dark] .knob[data-astro-cid-nen7h5rs]{background:var(--c-rindo);transform:translate(1.7rem)}[data-theme=dark] .sun[data-astro-cid-nen7h5rs]{color:var(--ink-soft)}[data-theme=dark] .moon[data-astro-cid-nen7h5rs]{color:#fff}.theme[data-astro-cid-nen7h5rs]:hover .track[data-astro-cid-nen7h5rs]{border-color:var(--c-blue)}@media (width<=760px){.bar[data-astro-cid-nen7h5rs]{gap:.75rem}.nav-desktop[data-astro-cid-nen7h5rs]{display:none}.nav-mobile[data-astro-cid-nen7h5rs]{display:block}}
