@font-face{font-family:Inter;src:url(/fonts/InterVariable.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}@layer reset{*,:before,:after{box-sizing:border-box}body,h1,h2,h3,p{margin:0}button,input{font:inherit}img,svg{max-width:100%}}@layer base{:root{color-scheme:light;--ink:#0e0f0c;--muted:#454745;--paper:#fff;--surface:#e8ebe6;--accent:#9fe870;--link:#245e24;--line:#a4aaa0;--soft:#e2f6d5;--hero-field:#e8ebe6;--signal:#9fe870;--danger:#a72027;--ease-out:cubic-bezier(.23, 1, .32, 1);--space:1.5rem;--radius:1.5rem;--radius-control:.75rem;font-family:Inter,system-ui,-apple-system,PingFang TC,Noto Sans TC,sans-serif}body{background:var(--paper);min-height:100svh;color:var(--ink);overflow-wrap:anywhere;flex-direction:column;line-height:1.7;display:flex}a{color:inherit;text-underline-offset:.23em}:focus-visible{outline:3px solid var(--link);outline-offset:3px}::selection{background:var(--accent);color:var(--ink)}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}h1{letter-spacing:-.035em;text-wrap:balance;font-size:clamp(2.25rem,4.2vw,3.5rem);font-weight:850;line-height:1.08}h2{letter-spacing:-.025em;text-wrap:balance;font-size:clamp(1.5rem,2.4vw,2rem);font-weight:750;line-height:1.2}p+p{margin-top:1rem}[hidden]{display:none!important}.wrap{width:100%;max-width:1200px;margin-inline:auto;padding-inline:clamp(1rem,3vw,3rem)}.muted{color:var(--muted)}}@layer components{.skip{z-index:10;background:var(--surface);padding:.7rem 1rem;position:absolute;top:-6rem;left:1rem}.skip:focus{top:.5rem}.header{background:var(--paper);border-bottom:1px solid var(--surface)}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-height:76px;padding-block:1rem;display:flex}.brand{letter-spacing:-.025em;align-items:center;gap:.6rem;min-height:44px;font-size:1.15rem;font-weight:800;text-decoration:none;display:flex}.brand-mark{flex:none;width:36px;height:36px;display:inline-flex}.brand-mark svg{width:100%;height:100%}nav{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}nav a{align-items:center;min-height:44px;padding-inline:.25rem;text-decoration:none;display:inline-flex}nav a[aria-current=page]{color:var(--ink);text-decoration:underline;text-decoration-color:var(--link);text-underline-offset:.45em;text-decoration-thickness:2px}.button.menu-toggle{display:none}main{flex:1;padding-block:clamp(2rem,5vw,4.5rem) 4rem}.hero{gap:1.25rem;max-width:740px;margin-bottom:2.5rem;display:grid}.home-hero{background:var(--surface);border-radius:1.5rem;grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:1.5rem 3rem;max-width:none;margin-bottom:3rem;padding:clamp(1.5rem,4vw,3rem)}.home-hero h1{letter-spacing:-.035em;grid-column:1;align-self:end;font-size:clamp(3rem,6.5vw,5.5rem);font-weight:900;line-height:1}.hero-action{flex-wrap:wrap;grid-column:1;align-self:start;gap:.75rem;display:flex}.mechanism{aspect-ratio:1.55;background:var(--paper);border-radius:1.5rem;grid-area:1/2/4;place-items:center;width:100%;display:grid;overflow:hidden}.mechanism svg{width:76%;height:auto;display:block}.hero .intro{color:var(--muted);max-width:36rem;font-size:1.125rem}.home-hero .intro{color:var(--ink);text-wrap:balance;grid-column:1;align-self:start}.catalog-panel{background:var(--paper)}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;display:flex}.count{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.875rem}.empty{background:var(--surface);border-radius:var(--radius);padding:1.5rem}.empty p{max-width:42rem;color:var(--muted)}.search{gap:.65rem;max-width:740px;margin-bottom:2rem;display:grid}.search>label{font-weight:600}.search-row{gap:.75rem;display:flex}.search-row input{flex:1;min-width:0}input[type=search],input[type=text]{background:var(--paper);border:1px solid var(--line);min-height:48px;color:var(--ink);width:100%;caret-color:var(--link);border-radius:.75rem;padding:.75rem 1rem}input::placeholder{color:var(--muted);opacity:1}.button{min-width:44px;min-height:48px;color:var(--ink);background:var(--accent);border:0;border-radius:1.5rem;justify-content:center;align-items:center;padding:.65rem 1.5rem;font-weight:700;text-decoration:none;display:inline-flex}.button.secondary{background:var(--paper);color:var(--ink);border:1px solid var(--line)}.text-button{min-height:44px;color:inherit;text-underline-offset:.25em;background:0 0;border:0;padding:.5rem 0;text-decoration:underline}.note{color:var(--muted);margin-top:1.5rem;font-size:.9375rem}.search .note{min-height:1.7em;margin-top:0}.footer{background:var(--ink);color:var(--surface);padding-block:2rem}.footer-inner{color:var(--surface);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1rem 2rem;font-size:.9375rem;display:grid}.footer-brand{flex-wrap:wrap;gap:.25rem 1rem;display:flex}.footer-brand>:first-child{color:var(--paper);font-weight:700}.site-author{overflow-wrap:anywhere}.site-author a{min-height:44px;color:var(--paper);align-items:center;font-weight:600;display:inline-flex}.footer :focus-visible{outline-color:var(--accent)}.footer a:hover{color:var(--accent)}.cards{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.cards:empty{padding:0}.cards li{background:var(--surface);border-radius:var(--radius);grid-template-columns:minmax(12rem,1fr) minmax(0,2fr);align-items:baseline;gap:.5rem 2rem;padding:1.25rem clamp(1rem,2vw,1.75rem);display:grid}.cards a{font-weight:650}.cards li>a{font-size:1.125rem}.cards p{color:var(--muted);max-width:72ch}.language-choices{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.language-choices a{background:var(--surface);border-radius:.75rem;padding:.65rem 1rem;display:inline-block}.article-page{max-width:44rem;margin-inline:auto}.article-page .back{min-height:44px;color:var(--muted);align-items:center;margin-bottom:1rem;display:inline-flex}.article-page .hero{gap:1.25rem;margin-bottom:0}.article-page h1{text-wrap:balance}.article-page .hero .intro{max-width:42rem;color:var(--ink);line-height:1.65}.article-meta{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:.25rem 1.25rem;padding-top:1rem;font-size:.875rem;line-height:1.6;display:flex}.article-tags{color:var(--muted);margin:0;font-size:.875rem}.article-toc{border-block:1px solid var(--line);margin-top:2.75rem;padding-block:1.5rem;display:block}.article-toc h2{font-size:1.125rem;line-height:1.4}.article-toc ol{gap:.25rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.article-toc a{min-height:44px;color:var(--link);text-underline-offset:.25em;align-items:center;padding:.35rem 0;text-decoration:underline;display:inline-flex}.article-toc a:hover{text-decoration-thickness:2px}.prose{max-width:44rem;margin-block:3rem 2rem;font-size:clamp(1rem,1.4vw,1.125rem);line-height:1.85}.article-page .prose{margin-block:3rem 3.5rem}.article-page .prose h2{margin-block:3.5rem 1rem;scroll-margin-top:1rem}.article-page .prose h3{margin-block:2.5rem .75rem}.article-end{border-top:1px solid var(--line);padding-top:1.25rem}.article-end .back{margin-bottom:0}.prose>*{max-width:44rem}.prose h2{text-wrap:balance;margin-block:2.75rem 1rem;font-size:clamp(1.375rem,2.2vw,1.625rem);font-weight:700;line-height:1.4}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p,.prose ul,.prose ol{margin-block:1rem}.prose ul,.prose ol{padding-inline-start:1.5rem}.prose li{padding-inline-start:.25rem}.prose li+li{margin-top:.65rem}.prose li::marker{color:var(--link);font-weight:650}.prose h3{margin-block:2rem .625rem;line-height:1.45}.prose h2+p,.prose h3+p{margin-top:.625rem}.prose pre,.prose table{max-width:100%;overflow-x:auto}.prose pre{background:var(--surface);border-radius:var(--radius-control);padding:1rem}.prose table{border-collapse:collapse;display:block}.prose th,.prose td{text-align:start;vertical-align:top;min-width:8rem;padding:.7rem .9rem}.prose th{background:var(--soft)}.prose tbody tr:nth-child(2n){background:var(--surface)}.prose a{color:var(--link)}.prose strong{font-weight:700}.prose blockquote{background:var(--soft);border-radius:var(--radius-control);margin:1rem 0;padding:1.25rem 1.5rem}.prose blockquote p{margin:0}.actions{flex-wrap:wrap;gap:.7rem;display:flex}.field{gap:.4rem;margin-block:1rem;display:grid}.error{color:var(--danger)}.status{min-height:1.8em;margin-block:1rem}dialog{color:var(--ink);background:var(--paper);border:0;border-radius:1.5rem;max-width:min(560px,100% - 2rem);max-height:85dvh;padding:2rem;overflow:auto;box-shadow:0 20px 60px #0e0f0c33}dialog::backdrop{background:#0a211c88}dialog h2{margin-bottom:1rem}.preference{align-items:center;gap:.8rem;padding:.7rem 0;display:flex}.preference input{width:20px;height:20px;accent-color:var(--link);flex-shrink:0}.ad-slot{background:var(--soft);contain:layout;text-align:center;min-height:290px;margin:3rem 0;padding:12px;overflow:hidden}.ad-slot small{height:22px;color:var(--muted);display:block}.ad-slot ins{width:100%;height:250px;display:block}.fixture{background:var(--soft);margin-block:2rem;padding:2rem}[data-press-motion]{transition:transform .12s var(--ease-out)}[data-pressed]:not(:disabled){transform:scale(.98)}dialog[open][data-enter-motion]{transition:opacity .2s var(--ease-out), transform .2s var(--ease-out)}@starting-style{dialog[open][data-enter-motion]{opacity:0;transform:scale(.98)}}@media (hover:hover) and (pointer:fine){a:hover{color:var(--link)}.button:hover{color:var(--ink);background:#cdffad}.button.secondary:hover{background:var(--surface);color:var(--ink)}.text-button:hover,nav a:hover,.site-author a:hover{opacity:.75}}@media (width<=600px){main{padding-block:2rem 3rem}.header-inner{min-height:80px}.js .menu-toggle{display:inline-flex}.js #main-nav{background:var(--soft);flex-direction:column;flex-basis:100%;align-items:stretch;gap:.25rem;padding:.5rem;display:none}.js #main-nav[data-open=true]{display:flex}.js #main-nav[data-open=true][data-enter-motion]{transform-origin:100% 0;transition:opacity .18s var(--ease-out), transform .18s var(--ease-out)}@starting-style{.js #main-nav[data-open=true][data-enter-motion]{opacity:0;transform:translateY(-4px)scale(.98)}}.hero{margin-bottom:2rem}.empty{padding:1.25rem}.footer-inner{grid-template-columns:minmax(0,1fr);gap:.5rem 1rem}.footer-brand{grid-column:1/-1}.cards{padding:0}.cards li{grid-template-columns:1fr}dialog{padding:1.25rem}.fixture{padding:1rem}}@media (width<=767px){.home-hero{grid-template-columns:minmax(0,1fr) 96px;gap:1.5rem 1rem;margin-bottom:2rem;padding:1.25rem}.home-hero h1{align-self:center;font-size:clamp(2.75rem,9.8vw,4rem)}.home-hero .intro,.hero-action{grid-column:1/-1}.mechanism{aspect-ratio:1;grid-row:1}.mechanism svg{width:90%}}@media (width<=359px){.home-hero{grid-template-columns:minmax(0,1fr) 64px;gap:1.5rem .75rem}.home-hero h1{font-size:2.6rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}[data-pressed]:not(:disabled){transform:none}}}
