.ph{--paper:#fbfaf7;--tint:#f2efe8;--ink:#1a1f1c;--body:#3d4340;--muted:#6b716d;--muted-strong:#656b67;--green-read:#2a6b45;--green-deep:#1d4f33;--rule:color-mix(in srgb,#1a1f1c 14%,transparent);--rule-soft:color-mix(in srgb,#1a1f1c 8%,transparent);--measure:40rem;--w-page:68rem;--r:3px;--serif:"Newsreader","Noto Serif TC","Songti TC","Source Han Serif TC",serif;--sans:"Noto Sans TC",system-ui,-apple-system,"PingFang TC","Microsoft JhengHei",sans-serif;background:var(--paper);color:var(--body);font-family:var(--sans);min-height:100vh;display:flex;flex-direction:column}.ph :focus-visible{outline:3px solid var(--green-deep);outline-offset:3px;border-radius:2px}:where(.ph a){color:inherit;text-decoration:none}:where(.ph img){display:block}:where(.ph h1,.ph h2,.ph h3,.ph p,.ph figure,.ph blockquote){margin:0}:where(.ph ul,.ph ol){margin:0;padding:0}:where(.ph li){list-style:none}.ph-wrap{width:100%;max-width:var(--w-page);margin:0 auto;padding:0 1.5rem}.ph-main{flex:1}.ph-header{border-bottom:1px solid var(--rule);background:var(--paper)}.ph-header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.125rem}.ph-wordmark{font-family:var(--serif);font-size:1.0625rem;font-weight:700;letter-spacing:.01em;color:var(--ink);line-height:1.3;padding:.6875rem .25rem;margin-inline-start:-.25rem;display:inline-flex;align-items:center;gap:.5rem}.ph-wordmark-logo{display:block;height:1.25rem;width:auto;flex:none}.ph-wordmark span{color:var(--green-read);font-weight:500}.ph-header-links{display:flex;gap:.25rem;font-size:.875rem}.ph-header-links a{color:var(--muted);line-height:1.4;padding:.75rem .5rem;display:inline-block;transition:color .16s ease-out}.ph-header-links a:hover{color:var(--green-read)}.ph-hero{padding-block:4rem 3rem;border-bottom:1px solid var(--rule)}.ph-hero h1{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:clamp(2rem,1.35rem + 3vw,3.25rem);line-height:1.25;letter-spacing:-.01em;max-width:22ch}.ph-hero-lede{margin-top:1.5rem;max-width:var(--measure);font-size:1.0625rem;line-height:1.85;color:var(--body)}.ph-hero-note{margin-top:1.25rem;max-width:var(--measure);font-size:.875rem;line-height:1.8;color:var(--muted)}.ph-wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;padding-block:2.5rem;align-items:start}@media (max-width:52rem){.ph-wall{grid-template-columns:minmax(0,1fr)}}.ph-card{position:relative;border:1px solid var(--rule);border-radius:var(--r);padding:1.75rem 1.75rem 1.25rem;background:var(--paper);transition:transform .18s ease-out,border-color .18s ease-out;animation:ph-rise .52s ease-out both}.ph-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,#1a1f1c 26%,transparent)}@keyframes ph-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ph-card-no{position:absolute;top:1.25rem;right:1.375rem;font-family:var(--serif);font-size:.9375rem;font-variant-numeric:tabular-nums;color:var(--muted)}.ph-card-head{display:flex;align-items:center;gap:1rem}.ph-card-name{font-family:var(--serif);font-size:1.375rem;font-weight:700;line-height:1.35;color:var(--ink)}.ph-card-name a{display:inline-block;padding-block:.5rem;background-image:linear-gradient(var(--green-read),var(--green-read));background-size:0 1px;background-position:0 calc(100% - .5rem);background-repeat:no-repeat;transition:background-size .2s ease-out}.ph-card-name a:hover{color:var(--green-read);background-size:100% 1px}.ph-card-aff{font-size:.875rem;line-height:1.6;color:var(--muted);margin-top:.125rem}.ph-card-quote{margin-top:1.125rem;font-family:var(--serif);font-size:1.125rem;line-height:1.9;color:var(--ink);text-indent:-.6em;padding-inline-start:.6em}.ph-card-quote-latin{font-style:italic;text-indent:0;padding-inline-start:0}.ph-works{margin-top:1.25rem;border-top:1px solid var(--rule-soft)}.ph-work{border-bottom:1px solid var(--rule-soft)}.ph-work:last-child{border-bottom:0}.ph-work a{display:block;padding:.8125rem 0;transition:color .16s ease-out}.ph-work a:hover{color:var(--green-read)}.ph-work-title{font-size:.9375rem;font-weight:500;line-height:1.65;color:var(--ink)}.ph-work a:hover .ph-work-title{color:var(--green-read)}.ph-work-meta{margin-top:.25rem;font-size:.8125rem;color:var(--muted)}.ph-work-meta .ph-dot{padding-inline:.5em;color:var(--muted)}.ph-avatar{position:relative;display:block;flex:none;width:var(--s);height:var(--s);border-radius:50%;overflow:hidden;background:var(--tint)}.ph-avatar img{object-fit:cover}.ph-avatar-letter{display:grid;place-items:center;font-family:var(--serif);font-weight:500;font-size:calc(var(--s) * .42);color:var(--green-deep);border:1px solid var(--rule);user-select:none}.ph-orphan{margin-block:1rem 4.5rem;padding:1.75rem;background:var(--tint);border-radius:var(--r)}.ph-orphan h2{font-family:var(--serif);font-size:1.125rem;font-weight:700;color:var(--ink)}.ph-orphan p{margin-top:.625rem;font-size:.9375rem;line-height:1.85;color:var(--muted-strong);max-width:var(--measure)}.ph-orphan-link{display:inline-block;margin-top:.75rem;padding:.75rem 0;line-height:1.5;color:var(--green-read);font-weight:500;font-size:.9375rem}.ph-orphan-link:hover{text-decoration:underline;text-underline-offset:4px}.ph-person-head{padding-block:3.5rem 2.5rem;display:flex;gap:2rem;align-items:center;flex-wrap:wrap}.ph-person-head h1{font-family:var(--serif);font-size:clamp(2rem,1.5rem + 2vw,2.75rem);font-weight:700;line-height:1.25;color:var(--ink)}.ph-person-aff{margin-top:.5rem;font-size:1rem;line-height:1.7;color:var(--muted)}.ph-person-count{margin-top:.75rem;font-size:.875rem;color:var(--green-read);font-weight:500}.ph-selfintro{background:var(--tint);border-radius:var(--r);padding:1.875rem 2rem;max-width:48rem}.ph-selfintro h2{font-size:.8125rem;font-weight:700;letter-spacing:.08em;color:var(--muted-strong)}.ph-selfintro-text{margin-top:.875rem;font-family:var(--serif);font-size:1.1875rem;line-height:1.95;color:var(--ink)}.ph-selfintro-src{margin-top:1.125rem;font-size:.8125rem;line-height:1.75;color:var(--muted-strong)}.ph-section-title{margin-top:3.25rem;font-family:var(--serif);font-size:1.375rem;font-weight:700;color:var(--ink);padding-bottom:.75rem;border-bottom:1px solid var(--rule)}.ph-list{max-width:48rem}.ph-list-item{border-bottom:1px solid var(--rule-soft)}.ph-list-item a{display:block;padding:1.5rem 0;transition:color .16s ease-out}.ph-list-title{font-family:var(--serif);font-size:1.25rem;font-weight:700;line-height:1.55;color:var(--ink);transition:color .16s ease-out}.ph-list-item a:hover .ph-list-title{color:var(--green-read)}.ph-list-abstract{margin-top:.625rem;font-size:.9375rem;line-height:1.85;color:var(--body)}.ph-list-meta{margin-top:.625rem;font-size:.8125rem;color:var(--muted)}.ph-pager{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-block:3rem 4.5rem;padding-top:1.5rem;border-top:1px solid var(--rule)}.ph-pager a{display:flex;align-items:center;gap:.75rem;padding:.625rem 0;font-size:.9375rem;color:var(--body);transition:color .16s ease-out}.ph-pager a:hover{color:var(--green-read)}.ph-pager-label{display:block;font-size:.8125rem;color:var(--muted);margin-bottom:.125rem}.ph-pager-name{font-family:var(--serif);font-size:1.0625rem;font-weight:700;color:var(--ink)}.ph-byline{position:sticky;top:0;z-index:20;background:color-mix(in srgb,#fbfaf7 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}.ph-byline-inner{display:flex;align-items:center;gap:.75rem;padding-block:.5rem;min-height:3.5rem}.ph-byline-link,.ph-byline-plain{display:flex;align-items:center;gap:.75rem;padding-block:.25rem;min-width:0}.ph-byline-text{min-width:0}.ph-byline-role{display:block;font-size:.8125rem;color:var(--muted);line-height:1.4}.ph-byline-name{display:block;font-family:var(--serif);font-size:1rem;font-weight:700;color:var(--ink);line-height:1.4;transition:color .16s ease-out}.ph-byline-link:hover .ph-byline-name{color:var(--green-read)}.ph-byline-aff{margin-inline-start:auto;padding-inline-start:1rem;font-size:.8125rem;color:var(--muted);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:34rem){.ph-byline-aff{display:none}}.ph-article{max-width:var(--measure);margin:0 auto}.ph-article-head{padding-top:3rem}.ph-article-meta{font-size:.8125rem;color:var(--muted)}.ph-article-cat{color:var(--green-read);font-weight:500}.ph-article h1{margin-top:.875rem;font-family:var(--serif);font-size:clamp(1.75rem,1.25rem + 2.4vw,2.625rem);font-weight:700;line-height:1.35;letter-spacing:-.005em;color:var(--ink)}.ph-article-abstract{margin-top:1.25rem;font-size:1.0625rem;line-height:1.9;color:var(--body);padding-inline-start:1rem;border-inline-start:2px solid var(--green-read)}.ph-cover{position:relative;width:100%;aspect-ratio:3/2;margin-block:2.5rem;border-radius:var(--r);overflow:hidden;background:var(--tint)}.ph-cover img{object-fit:cover}.ph-prose{font-size:1.0625rem;line-height:1.8;color:var(--body)}.ph-prose p{margin-block:1.4em 0}.ph-prose h2{margin-block:2.75rem 0;font-family:var(--serif);font-size:1.5rem;line-height:1.5}.ph-prose h2,.ph-prose h3{font-weight:700;color:var(--ink)}.ph-prose h3{margin-block:2.25rem 0;font-size:1.1875rem}.ph-prose ol,.ph-prose ul{margin-block:1.4em 0;padding-inline-start:1.5rem}.ph-prose li{list-style:disc;margin-block:.5em}.ph-prose ol li{list-style:decimal}.ph-prose blockquote{margin-block:2rem;padding:1.25rem 1.5rem;background:var(--tint);border-radius:var(--r);font-family:var(--serif);font-size:1.125rem;line-height:1.9;color:var(--ink)}.ph-prose a{color:var(--green-read);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.ph-prose figure{margin-block:2.25rem}.ph-prose figure img{width:100%;height:auto;border-radius:var(--r)}.ph-prose strong{font-weight:700;color:var(--ink)}.ph-about{max-width:var(--measure);margin:3.5rem auto 0;padding:2rem;background:var(--tint);border-radius:var(--r)}.ph-about-head{display:flex;align-items:center;gap:1rem}.ph-about-role{font-size:.8125rem;color:var(--muted-strong)}.ph-about-name{font-family:var(--serif);font-size:1.25rem;font-weight:700;color:var(--ink);line-height:1.4}.ph-about-aff{font-size:.875rem;color:var(--muted-strong);line-height:1.6;margin-top:.125rem}.ph-about-bio{margin-top:1.125rem;font-family:var(--serif);font-size:1.0625rem;line-height:1.9;color:var(--ink)}.ph-about-src{margin-top:.875rem;font-size:.8125rem;line-height:1.7;color:var(--muted-strong)}.ph-about-more{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--rule-soft)}.ph-about-more a{display:inline-block;padding:.6875rem 0;line-height:1.6;color:var(--green-read);font-weight:500;font-size:.9375rem}.ph-about-more a:hover{text-decoration:underline;text-underline-offset:4px}.ph-article-foot{max-width:var(--measure);margin:2.5rem auto 4.5rem;display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.9375rem}.ph-article-foot a{display:inline-block;padding:.6875rem 0;line-height:1.5;color:var(--green-read)}.ph-article-foot a:hover{text-decoration:underline;text-underline-offset:4px}.ph-footer{border-top:1px solid var(--rule);padding-block:2.5rem 3.5rem;font-size:.875rem;line-height:1.85;color:var(--muted)}.ph-footer p{max-width:44rem}.ph-footer p+p{margin-top:.75rem}.ph-footer a{color:var(--green-read);display:inline-block;padding-block:12px;margin-block:-12px}.ph-footer a:hover{text-decoration:underline;text-underline-offset:3px}