:root{color-scheme:dark;--ground:#0b0e14;--ground-2:#0f131e;--panel:#131826;--panel-2:#1a2031;--line:#232b3d;--line-strong:#35405a;--ink:#e8ecf4;--ink-2:#c3cad8;--muted:#8a94a8;--cloud:#5b9bff;--cloud-ink:#0b0e14;--cloud-soft:#5b9bff24;--signal:#ff6a1f;--signal-ink:#0b0e14;--signal-soft:#ff6a1f29;--ok:#3dc98a;--warn:#e0a83a;--font-display-stack:"Unbounded", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--font-body-stack:"PingFang TC", "Microsoft JhengHei", "Noto Sans CJK TC", "Noto Sans TC", system-ui, sans-serif;--font-heading-stack:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", "Noto Sans CJK TC", system-ui, sans-serif;--font-mono-stack:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--step--1:clamp(.82rem, .8rem + .15vw, .9rem);--step-0:clamp(1rem, .96rem + .2vw, 1.0625rem);--step-1:clamp(1.125rem, 1.05rem + .4vw, 1.3125rem);--step-2:clamp(1.375rem, 1.2rem + .8vw, 1.75rem);--step-3:clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem);--step-4:clamp(2.25rem, 1.6rem + 3vw, 3.75rem);--step-5:clamp(2.75rem, 1.8rem + 4.6vw, 5rem);--container:1200px;--gutter:clamp(1rem, 4vw, 2.5rem);--section:clamp(4rem, 9vw, 8rem);--radius:6px;--radius-lg:10px;--ease-out:cubic-bezier(.22, 1, .36, 1);--shadow-cta:0 10px 30px -10px #ff6a1f8c}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){color-scheme:light;--ground:#f5f7fb;--ground-2:#eef2f8;--panel:#fff;--panel-2:#f2f5fa;--line:#d5dce8;--line-strong:#b9c3d6;--ink:#0b0e14;--ink-2:#2a3245;--muted:#5a6478;--cloud:#2660c9;--cloud-ink:#fff;--cloud-soft:#2660c91f;--signal:#b8440a;--signal-ink:#fff;--signal-soft:#b8440a1f;--ok:#1e8e5a;--warn:#b7791f;--shadow-cta:0 10px 30px -12px #e85e1780}}:root[data-theme=light]{color-scheme:light;--ground:#f5f7fb;--ground-2:#eef2f8;--panel:#fff;--panel-2:#f2f5fa;--line:#d5dce8;--line-strong:#b9c3d6;--ink:#0b0e14;--ink-2:#2a3245;--muted:#5a6478;--cloud:#2660c9;--cloud-ink:#fff;--cloud-soft:#2660c91f;--signal:#b8440a;--signal-ink:#fff;--signal-soft:#b8440a1f;--ok:#1e8e5a;--warn:#b7791f;--shadow-cta:0 10px 30px -12px #e85e1780}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--ground);color:var(--ink);font-family:var(--font-body-stack);font-size:var(--step-0);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.7;overflow-x:hidden}img,svg,video,canvas{max-width:100%;height:auto;display:block}a{color:var(--cloud);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:3px}::selection{background:var(--signal);color:var(--signal-ink)}h1,h2,h3,h4{text-wrap:balance;font-weight:900;line-height:1.15;font-family:var(--font-heading-stack);margin:0}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}code,kbd,pre{font-family:var(--font-mono-stack)}.display{font-family:var(--font-display-stack);letter-spacing:-.01em;font-weight:800}.eyebrow{font-family:var(--font-mono-stack);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.eyebrow--signal{color:var(--signal)}.eyebrow a,.mono a{text-underline-offset:3px;text-decoration:underline;text-decoration-color:color-mix(in srgb, currentColor 45%, transparent)}.mono{font-family:var(--font-mono-stack);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.measure{max-width:64ch}.container{width:min(var(--container), 100% - 2 * var(--gutter));margin-inline:auto}.section{padding-block:var(--section)}.section--tight{padding-block:calc(var(--section) * .6)}.section-head{gap:.75rem;margin-bottom:clamp(2rem,5vw,3.5rem);display:grid}.section-head h2{font-size:var(--step-3)}.section-head p{color:var(--muted);max-width:60ch;font-size:var(--step-0)}.grid{gap:1rem;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=900px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.5rem}.panel--flush{padding:0;overflow:hidden}.rule{border:0;border-top:1px solid var(--line);margin:0}.btn{border-radius:var(--radius);font-weight:700;font-size:var(--step-0);transition:transform .2s var(--ease-out), background .2s, border-color .2s, box-shadow .2s;white-space:nowrap;border:1px solid #0000;align-items:center;gap:.5rem;padding:.8rem 1.25rem;line-height:1;display:inline-flex}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn--signal{background:var(--signal);color:var(--signal-ink);box-shadow:var(--shadow-cta)}.btn--signal:hover{filter:brightness(1.06)}.btn--ghost{border-color:var(--line-strong);color:var(--ink);background:0 0}.btn--ghost:hover{border-color:var(--ink);background:var(--panel)}.btn--sm{font-size:var(--step--1);padding:.55rem .9rem}.btn .arrow{transition:transform .2s var(--ease-out)}.btn:hover .arrow{transform:translate(3px)}.pill{font-family:var(--font-mono-stack);letter-spacing:.08em;border:1px solid var(--line);color:var(--muted);border-radius:3px;align-items:center;gap:.35rem;padding:.25rem .55rem;font-size:.7rem;display:inline-flex}.pill--cloud{color:var(--cloud);border-color:color-mix(in srgb, var(--cloud) 45%, transparent)}.pill--signal{color:var(--signal);border-color:color-mix(in srgb, var(--signal) 45%, transparent)}.prose{max-width:70ch;font-size:var(--step-0);overflow-x:auto}.prose>*+*{margin-top:1.1em}.prose h2{font-size:var(--step-2);border-top:1px solid var(--line);margin-top:2.2em;padding-top:.6em}.prose h3{font-size:var(--step-1);margin-top:1.8em}.prose ul,.prose ol{padding-left:1.4em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li{margin-top:.35em}.prose img{border-radius:var(--radius);border:1px solid var(--line)}.prose blockquote{border-left:3px solid var(--signal);color:var(--ink-2);margin-left:0;padding:.25em 0 .25em 1em}.prose code{background:var(--panel-2);border-radius:3px;padding:.1em .4em;font-size:.88em}.prose pre{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.2rem;font-size:.85rem;line-height:1.6;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;font-size:.92em}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:.5em .8em}.prose th{background:var(--panel-2)}.prose hr{border:0;border-top:1px solid var(--line)}.prose a{text-underline-offset:3px;text-decoration:underline}.reveal{opacity:1;transform:none}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.reveal{animation:reveal-in .9s var(--ease-out) both;animation-timeline:view();animation-range:entry entry 35%}}}@keyframes reveal-in{0%{opacity:.001;transform:translateY(18px)}to{opacity:1;transform:none}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--signal);color:var(--signal-ink);border-radius:var(--radius);z-index:100;padding:.5rem .8rem;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.logo[data-astro-cid-f7espo7c]{align-items:center;gap:.5rem;line-height:1;display:inline-flex}.logo__word[data-astro-cid-f7espo7c]{font-size:calc(var(--s) * .82);letter-spacing:-.02em;color:var(--ink);font-weight:800}.nav[data-astro-cid-wpvy4v7s]{z-index:50;background:color-mix(in srgb, var(--ground) 82%, transparent);-webkit-backdrop-filter:saturate(140%)blur(12px);border-bottom:1px solid #0000;transition:border-color .3s;position:sticky;top:0}.nav[data-astro-cid-wpvy4v7s][data-scrolled]{border-bottom-color:var(--line)}.nav__inner[data-astro-cid-wpvy4v7s]{align-items:center;gap:2rem;height:64px;display:flex}.nav__brand[data-astro-cid-wpvy4v7s]{color:var(--ink);align-items:baseline;gap:.6rem;display:flex}.nav__brand[data-astro-cid-wpvy4v7s]:hover{text-decoration:none}.nav__by[data-astro-cid-wpvy4v7s]{color:var(--muted);letter-spacing:.04em;font-size:.68rem}.nav__links[data-astro-cid-wpvy4v7s]{gap:1.5rem;margin-left:auto;display:flex}.nav__links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{color:var(--ink-2);border-bottom:2px solid #0000;padding:.4rem 0;font-size:.95rem;font-weight:500}.nav__links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]:hover{color:var(--ink);text-decoration:none}.nav__links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]{color:var(--ink);border-bottom-color:var(--signal)}.nav__actions[data-astro-cid-wpvy4v7s]{align-items:center;gap:.75rem;display:flex}.nav__theme[data-astro-cid-wpvy4v7s]{color:var(--muted);border-radius:var(--radius);place-items:center;padding:.4rem;display:grid}.nav__theme[data-astro-cid-wpvy4v7s]:hover{color:var(--ink);background:var(--panel)}.nav__burger[data-astro-cid-wpvy4v7s]{flex-direction:column;justify-content:center;align-items:center;gap:6px;width:40px;height:40px;display:none}.nav__burger[data-astro-cid-wpvy4v7s] span[data-astro-cid-wpvy4v7s]{background:var(--ink);width:20px;height:2px;transition:transform .25s var(--ease-out), opacity .2s;display:block}@media (width<=860px){.nav__by[data-astro-cid-wpvy4v7s]{display:none}.nav__links[data-astro-cid-wpvy4v7s]{background:var(--ground);border-bottom:1px solid var(--line);padding:.5rem var(--gutter) 1rem;opacity:0;pointer-events:none;visibility:hidden;transition:opacity .2s, transform .25s var(--ease-out), visibility 0s .25s;flex-direction:column;gap:0;margin:0;position:fixed;inset:64px 0 auto;transform:translateY(-8px)}.nav__links[data-astro-cid-wpvy4v7s][data-open]{opacity:1;pointer-events:auto;visibility:visible;transition-delay:0s;transform:none}.nav__links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{border-bottom:1px solid var(--line);padding:.8rem 0;font-size:1.05rem}.nav__links[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s][aria-current=page]{border-bottom-color:var(--line);color:var(--signal)}.nav__burger[data-astro-cid-wpvy4v7s]{display:flex}.nav__burger[data-astro-cid-wpvy4v7s][aria-expanded=true] span[data-astro-cid-wpvy4v7s]:first-child{transform:translateY(4px)rotate(45deg)}.nav__burger[data-astro-cid-wpvy4v7s][aria-expanded=true] span[data-astro-cid-wpvy4v7s]:last-child{transform:translateY(-4px)rotate(-45deg)}.nav__actions[data-astro-cid-wpvy4v7s] .btn[data-astro-cid-wpvy4v7s]{display:none}}.footer[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);background:var(--ground-2);margin-top:var(--section)}.footer__grid[data-astro-cid-jo6i4kqk]{grid-template-columns:2fr 1fr 1fr;gap:3rem;padding-block:3.5rem 2.5rem;display:grid}.footer__brand[data-astro-cid-jo6i4kqk]{align-content:start;gap:1rem;display:grid}.footer__brand[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{font-size:.92rem}.footer__contact[data-astro-cid-jo6i4kqk]{font-size:.8rem}.footer[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{gap:.45rem;margin-top:.8rem;display:grid}.footer[data-astro-cid-jo6i4kqk] nav[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--ink-2);font-size:.95rem}.footer[data-astro-cid-jo6i4kqk] nav[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--ink)}.footer__bottom[data-astro-cid-jo6i4kqk]{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-block:1.2rem;font-size:.72rem;display:flex}@media (width<=760px){.footer__grid[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr;gap:2rem}}
