:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbf7f9;--bg-shape:#f5ecf1;--bg-shape-2:#faf5f8;--surface:#fff;--surface-2:#f4ecf1;--fg:#1c1418;--fg-2:#5f4f58;--fg-prose:#1c1418;--muted:#6f5f68;--border:#e9dde4;--accent:#ff2e88;--accent-hover:#f0197a;--accent-strong:#c4005a;--accent-soft:#ffe3ef;--tag-bg:#fff3c4;--tag-fg:#7a5600;--on-accent:#fff;--shadow:0 8px 24px -12px #3c142840;--font-sans:-apple-system, "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif;--font-serif:"Noto Serif TC", "Songti TC", "Source Han Serif TC", "PMingLiU", Georgia, serif;--measure:65rem;--gutter:1.25rem;--radius:12px;--ease-out:cubic-bezier(.16, 1, .3, 1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141115;--bg-shape:#1e1723;--bg-shape-2:#161219;--surface:#1c171b;--surface-2:#241d22;--fg:#f2e8ed;--fg-2:#c8b9c1;--fg-prose:#e6dbe1;--muted:#a596a0;--border:#2f262c;--accent:#ff2e88;--accent-hover:#ff4d9a;--accent-strong:#ff6fae;--accent-soft:#3a1a2a;--tag-bg:#3a3014;--tag-fg:#ffd166;--on-accent:#fff;--shadow:0 8px 24px -12px #0009}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141115;--bg-shape:#1e1723;--bg-shape-2:#161219;--surface:#1c171b;--surface-2:#241d22;--fg:#f2e8ed;--fg-2:#c8b9c1;--fg-prose:#e6dbe1;--muted:#a596a0;--border:#2f262c;--accent:#ff2e88;--accent-hover:#ff4d9a;--accent-strong:#ff6fae;--accent-soft:#3a1a2a;--tag-bg:#3a3014;--tag-fg:#ffd166;--on-accent:#fff;--shadow:0 8px 24px -12px #0009}*,:before,:after{box-sizing:border-box}html{font-family:var(--font-sans);color:var(--fg);background:var(--bg);transition:background-color .25s var(--ease-out), color .25s var(--ease-out);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;scrollbar-color:var(--border) transparent;scrollbar-width:thin;accent-color:var(--accent);caret-color:var(--accent);font-size:16px;line-height:1.6}body{background:0 0;min-height:100dvh;margin:0}#root{flex-direction:column;min-height:100dvh;display:flex}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:var(--border);border:2px solid var(--bg);border-radius:999px}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}a{color:var(--accent-strong);text-underline-offset:.2em;text-decoration:none;text-decoration-thickness:1px}a:hover{text-decoration:underline}h1,h2,h3{text-wrap:balance;margin:0;font-weight:700;line-height:1.3}p{margin:0}time{font-variant-numeric:tabular-nums}img,svg{vertical-align:middle;max-width:100%;height:auto}button{font:inherit;color:inherit}.container{width:100%;max-width:calc(var(--measure) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto}.skip-link{z-index:100;background:var(--accent);color:var(--on-accent);border-radius:999px;padding:.5rem .9rem;font-weight:600;position:absolute;top:-3rem;left:1rem}.skip-link:focus{text-decoration:none;top:.75rem}.empty{color:var(--muted);text-align:center;padding:2.5rem 0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.backdrop{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.backdrop__capsule{position:absolute;overflow:visible}.backdrop__capsule stop{transition:stop-color .25s var(--ease-out)}.backdrop__capsule--tl{width:52vmax;height:52vmax;top:-30vmax;left:-22vmax}.backdrop__capsule--tr{width:22vmax;height:22vmax;top:-12vmax;right:6vw;transform:scaleX(.55)}.backdrop__capsule--br{width:80vmax;height:80vmax;bottom:-44vmax;right:-30vmax}.backdrop__capsule--bc{width:16vmax;height:16vmax;bottom:2vmax;left:58vw}.site-header{z-index:10;background:var(--bg);border-bottom:1px solid var(--border);transition:background-color .25s var(--ease-out), border-color .25s var(--ease-out);position:sticky;top:0}.site-header__inner{align-items:center;gap:1.25rem;height:3.5rem;display:flex}.brand{color:var(--fg);letter-spacing:-.01em;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:800;display:inline-flex}.brand:hover{color:var(--accent-strong);text-decoration:none}.brand .logo{flex:none}.site-nav{white-space:nowrap;gap:.25rem;margin-left:auto;display:flex}.site-nav a{color:var(--fg-2);border-radius:999px;padding:.4rem .7rem;font-weight:500}.site-nav a:hover{color:var(--fg);background:var(--surface-2);text-decoration:none}.site-nav a.active{color:var(--accent-strong);background:var(--accent-soft)}@media (width<=479px){.site-nav{gap:0;font-size:.88rem}.site-nav a{padding:.35rem .45rem}}.theme-toggle{border:1px solid var(--border);background:var(--surface);width:2.5rem;height:2.5rem;color:var(--fg-2);cursor:pointer;transition:background-color .25s var(--ease-out), color .2s var(--ease-out), border-color .25s var(--ease-out);border-radius:999px;place-items:center;padding:0;display:inline-grid}.theme-toggle:hover{color:var(--accent-strong);border-color:var(--accent-strong)}.theme-toggle__sun{display:none}:root[data-theme=dark] .theme-toggle__sun{display:block}:root[data-theme=dark] .theme-toggle__moon{display:none}.site-main{flex:1;padding-block:2rem 4rem}@media (width>=640px){.site-main{padding-block:2.75rem 5rem}}.site-footer{border-top:1px solid var(--border);color:var(--muted);padding-block:1.5rem 2rem;font-size:.85rem}.site-footer__inner{align-items:center;gap:.75rem;display:flex}.adult-badge{letter-spacing:.02em;border:1.5px solid;border-radius:4px;flex:none;padding:0 .35rem;font-size:.72rem;font-weight:800;line-height:1.5;display:inline-block}.intro{padding-block:.5rem 2rem}.intro__title{font-family:var(--font-serif);font-size:1.85rem;line-height:1.25}@media (width>=640px){.intro__title{font-size:2.35rem}}.intro__lead{color:var(--fg-2);max-width:34em;margin-top:.85rem;font-size:1.02rem;line-height:1.75}.page-head{padding-bottom:1.5rem}.page-head h1{font-family:var(--font-serif);font-size:1.85rem}@media (width>=640px){.page-head h1{font-size:2.25rem}}.page-head__sub{color:var(--muted);margin-top:.5rem;font-size:.9rem}.section-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:1rem;padding-bottom:.6rem;display:flex}.section-head h2{letter-spacing:.02em;color:var(--fg-2);font-size:1.05rem;font-weight:700}.section-head__more{align-items:center;gap:.2rem;font-size:.88rem;font-weight:600;display:inline-flex}.section-head__more svg{width:16px;height:16px}.section-head__count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.section-head__tools{align-self:center;align-items:center;gap:.5rem;display:inline-flex}.group+.group{margin-top:2.5rem}.group .section-head h2{scroll-margin-top:4.5rem}.card-list{flex-direction:column;display:flex}.card-grid{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.card{border-bottom:1px solid var(--border);color:var(--fg);padding:1.15rem 0 1.2rem;display:block}.card:hover{text-decoration:none}.card:hover .card__title{color:var(--accent-strong)}.card--boxed{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;transition:border-color .15s var(--ease-out), background-color .25s var(--ease-out);padding:1rem 1.15rem 1.1rem}.card--boxed:hover{border-color:var(--accent-strong)}.card__meta{color:var(--muted);align-items:center;gap:.6rem;font-size:.8rem;display:flex}.card__category{color:var(--accent-strong);font-weight:600}.card__author{color:var(--fg-2);font-weight:500}.card__title{font-family:var(--font-serif);transition:color .15s var(--ease-out);margin-top:.35rem;font-size:1.28rem;font-weight:700;line-height:1.4}.card__desc{color:var(--fg-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.4rem;font-size:.95rem;line-height:1.7;display:-webkit-box;overflow:hidden}.card__tags{flex-wrap:wrap;gap:.35rem;margin-top:.7rem;display:flex}.tag{background:var(--tag-bg);color:var(--tag-fg);transition:background-color .25s var(--ease-out);border-radius:999px;padding:.05rem .55rem;font-size:.75rem;font-weight:600;line-height:1.7;display:inline-block}.button{background:var(--accent);color:var(--on-accent);transition:background-color .15s var(--ease-out), transform .15s var(--ease-out);border-radius:999px;align-items:center;gap:.35rem;padding:.6rem 1.15rem;font-weight:700;line-height:1.2;display:inline-flex}.button:hover{background:var(--accent-hover);text-decoration:none}.button:active{transform:translateY(1px)}.resume{border-radius:var(--radius);background:var(--surface-2);transition:background-color .25s var(--ease-out);margin-bottom:2rem;padding:1rem 1.15rem}.resume__label{color:var(--muted);letter-spacing:.04em;font-size:.78rem;font-weight:600}.resume__link{color:var(--fg);justify-content:space-between;align-items:center;gap:1rem;margin-top:.35rem;display:flex}.resume__link:hover{text-decoration:none}.resume__link:hover .resume__cta{background:var(--accent-hover)}.resume__title{font-family:var(--font-serif);font-size:1.15rem;font-weight:700;line-height:1.4}.resume__cta{background:var(--accent);color:var(--on-accent);transition:background-color .15s var(--ease-out);border-radius:999px;flex:none;align-items:center;gap:.2rem;padding:.45rem .9rem;font-size:.9rem;font-weight:700;display:inline-flex}.resume__cta svg{width:16px;height:16px}.prev-next{grid-template-columns:1fr;gap:.75rem;display:grid}@media (width>=520px){.prev-next{grid-template-columns:1fr 1fr}}.prev-next__item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);transition:border-color .15s var(--ease-out), background-color .25s var(--ease-out);flex-direction:column;gap:.3rem;padding:.9rem 1rem;display:flex}.prev-next__item:hover{border-color:var(--accent-strong);text-decoration:none}.prev-next__item:hover .prev-next__title{color:var(--accent-strong)}.prev-next__item--next{text-align:right;align-items:flex-end}.prev-next__item--empty{pointer-events:none;background:0 0;border-color:#0000}@media (width<=519px){.prev-next__item--empty{display:none}}.prev-next__label{color:var(--muted);align-items:center;gap:.25rem;font-size:.78rem;font-weight:600;display:inline-flex}.prev-next__label svg{width:16px;height:16px}.prev-next__title{font-family:var(--font-serif);transition:color .15s var(--ease-out);font-size:1rem;font-weight:700;line-height:1.4}.not-found{text-align:center;padding-block:3rem}.not-found__code{font-family:var(--font-serif);color:var(--accent-strong);font-size:4rem;font-weight:700;line-height:1}.not-found h1{margin-top:.75rem;font-size:1.5rem}.not-found p+p{color:var(--fg-2);margin-top:.5rem}.not-found__actions{justify-content:center;align-items:center;gap:1.25rem;display:flex;margin-top:1.75rem!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.section-head__link{color:inherit}.section-head__link:hover{color:var(--accent-strong);text-decoration:none}.shelf+.shelf{margin-top:2.25rem}.slider__track{margin-top:1rem;margin-inline:calc(var(--gutter) * -1);padding:.25rem var(--gutter) .75rem;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:1rem;display:flex;overflow-x:auto}.slider__track::-webkit-scrollbar{display:none}.slider__btn{border:1px solid var(--border);background:var(--surface);width:2rem;height:2rem;color:var(--fg-2);cursor:pointer;transition:color .15s var(--ease-out), border-color .15s var(--ease-out), opacity .15s var(--ease-out);border-radius:999px;place-items:center;padding:0;display:inline-grid}.slider__btn svg{width:16px;height:16px}.slider__btn:hover:not(:disabled){color:var(--accent-strong);border-color:var(--accent-strong)}.slider__btn:disabled{opacity:.4;cursor:default}.slide{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--fg);scroll-snap-align:start;transition:border-color .15s var(--ease-out), background-color .25s var(--ease-out);flex-direction:column;flex:0 0 min(78vw,17.5rem);gap:.4rem;padding:1rem 1.05rem 1.1rem;display:flex}.slide:hover{border-color:var(--accent-strong);text-decoration:none}.slide:hover .slide__title{color:var(--accent-strong)}.slide__date,.slide__author{color:var(--muted);font-size:.78rem}.slide__author{color:var(--fg-2);font-weight:500}.slide__title{font-family:var(--font-serif);transition:color .15s var(--ease-out);font-size:1.15rem;font-weight:700;line-height:1.4}.slide__desc{color:var(--fg-2);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.9rem;line-height:1.65;display:-webkit-box;overflow:hidden}.slide__tags{flex-wrap:wrap;gap:.35rem;margin-top:auto;padding-top:.35rem;display:flex}.filter{border:0;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 1.75rem;padding:0;display:flex}.filter__clear{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.45rem .6rem;font-size:.9rem}.filter__clear:hover{color:var(--accent-strong);text-underline-offset:.2em;text-decoration:underline}.chip-check{border:1px solid var(--border);background:var(--surface);color:var(--fg-2);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s var(--ease-out), color .15s var(--ease-out), border-color .15s var(--ease-out);border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-weight:600;display:inline-flex;position:relative}.chip-check input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.chip-check:hover{border-color:var(--accent-strong);color:var(--accent-strong)}.chip-check:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.chip-check.is-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip-check.is-on .chip-check__count{color:var(--on-accent);opacity:.75}.chip-check__count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:500}.page-head--row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.page-head--row .button{flex:none;margin-top:.4rem}.button--ghost{background:var(--surface);color:var(--fg-2);border:1px solid var(--border);font-weight:600}.button--ghost:hover{background:var(--surface);color:var(--accent-strong);border-color:var(--accent-strong)}.history{flex-direction:column;gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.history__time{color:var(--muted);font-variant-numeric:tabular-nums;margin-bottom:.35rem;font-size:.78rem}.empty p+p{margin-top:1rem}.article__card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:background-color .25s var(--ease-out);padding:1.5rem 1.25rem 1.75rem}@media (width>=640px){.article__card{padding:2.5rem 2.5rem 2.75rem}}.article__head{border-bottom:1px solid var(--border);margin-bottom:1.75rem;padding-bottom:1.75rem}.article__category{font-size:.85rem;font-weight:600}.article__category a{color:var(--accent-strong)}.article__title{font-family:var(--font-serif);letter-spacing:.01em;margin-top:.5rem;font-size:1.9rem;line-height:1.3}@media (width>=640px){.article__title{font-size:2.35rem}}.article__lead{color:var(--fg-2);margin-top:.9rem;font-size:1.02rem;line-height:1.75}.article__meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1rem;font-size:.85rem;display:flex}.article__author{color:var(--fg-2);font-weight:500}.article__tags{flex-wrap:wrap;gap:.35rem;display:inline-flex}.article__foot{margin-top:3rem}.article__end{background:var(--muted);border:0;width:2.5rem;height:2px;margin:0 auto 2.5rem}.article__back{text-align:center;margin-top:1.5rem;font-size:.9rem}.prose{letter-spacing:.02em;color:var(--fg-prose);text-align:justify;overflow-wrap:anywhere;font-size:1.0625rem;line-height:1.95}@media (width>=640px){.prose{font-size:1.125rem}}.prose>:first-child{margin-top:0}.prose p{margin:0 0 1.4em}.prose>p:last-child{margin-bottom:0}.prose h2,.prose h3{font-family:var(--font-serif);text-align:left;margin:2.2em 0 .8em}.prose h2{font-size:1.4rem}.prose h3{font-size:1.2rem}.prose ul,.prose ol{margin:0 0 1.4em;padding-left:1.6em}.prose li+li{margin-top:.3em}.prose blockquote{border-left:1px solid var(--border);color:var(--fg-2);margin:0 0 1.4em;padding-left:1em}.prose hr{background:var(--border);border:0;width:2.5rem;height:1px;margin:2.5em auto}.prose img{border-radius:var(--radius);margin:1.5em auto;display:block}.prose code{background:var(--surface-2);border-radius:4px;padding:.1em .35em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.prose pre{border-radius:var(--radius);background:var(--surface-2);text-align:left;margin:0 0 1.4em;padding:1rem;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose table{border-collapse:collapse;text-align:left;width:100%;margin:0 0 1.4em;display:block;overflow-x:auto}.prose table th,.prose table td{border:1px solid var(--border);padding:.4em .7em}.prose table th{background:var(--surface-2)}.prose a{text-decoration:underline}
