:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--bg:#faf9f7;--text:#292824;--muted:#6d6b65;--line:#e3e1dc;--focus:#395e81;color-scheme:light dark;font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;font-size:17px;line-height:1.8}@media (prefers-color-scheme:dark){:root{--bg:#141413;--text:#e9e7e2;--muted:#aaa79f;--line:#34332f;--focus:#abc5df}}*,:before,:after{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:.23em;text-decoration-thickness:1px}a:hover{text-decoration:underline}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--focus);outline-offset:5px;border-radius:1px}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:pretty;overflow-wrap:anywhere;font-weight:600;line-height:1.45}.site-shell{width:min(38em,100% - clamp(24px,10vw,160px) - 24px);margin-left:clamp(24px,10vw,160px)}.site-header{margin-bottom:90px;padding-top:38px}.site-header nav{flex-wrap:wrap;align-items:center;gap:9px;font-size:15px;display:flex}.site-header a{color:var(--muted);padding-block:6px;text-decoration:none}.site-header a[aria-current=page],.site-header .site-name{color:var(--text)}.site-name{font-weight:500}.nav-dot{color:var(--muted);font-size:12px}main{min-height:40vh}.intro h1{letter-spacing:-.025em;font-size:clamp(28px,4.5vw,36px);font-weight:550;line-height:1.6}.placeholder-note{color:var(--muted);margin-top:16px;font-size:14px}.contact{margin-top:20px;font-size:15px}.contact button{text-underline-offset:.25em;background:0 0;border:0;padding:0;text-decoration:underline}.home-section{margin-top:80px}.section-heading{justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:34px;display:flex}.section-heading h2,.small-section-title{font-size:17px;font-weight:500}.section-heading>a{color:var(--muted);white-space:nowrap;font-size:14px;text-decoration:none}.page-title{letter-spacing:-.035em;margin-bottom:60px;font-size:34px}.journal-preview{margin-bottom:54px}.journal-preview .entry-title{letter-spacing:-.025em;margin-bottom:6px;font-size:24px}.journal-preview .entry-title a{text-decoration:none}.journal-preview .entry-title a:hover{text-decoration:underline}.entry-date{color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.025em;font-size:14px;line-height:1.6;display:block}.entry-excerpt{white-space:pre-line;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:9em;margin-top:17px;display:-webkit-box;overflow:hidden;mask-image:linear-gradient(#000 0% 60%,#0000 100%)}.read-more{color:var(--muted);margin-top:7px;padding-block:4px;font-size:15px;text-decoration:none;display:inline-block}.project-summary{margin-bottom:30px}.project-heading{flex-wrap:wrap;align-items:baseline;gap:18px;display:flex}.project-heading h2,.project-heading h3{letter-spacing:-.02em;font-size:23px}.project-heading a{text-decoration:none}.project-status{color:var(--muted);white-space:nowrap;font-size:13px}.project-summary p{color:var(--muted);margin-top:7px;font-size:16px}.article-heading{margin-bottom:35px}.article-heading h1{letter-spacing:-.035em;margin-bottom:12px;font-size:clamp(27px,4.5vw,34px)}.prose{overflow-wrap:anywhere}.prose p{margin-block:0 1.8em}.prose h2{margin-block:2em .75em;font-size:24px}.prose h3{margin-block:1.8em .6em;font-size:20px}.prose ul,.prose ol{margin-block:0 1.8em;padding-left:1.5em}.prose blockquote{border-left:2px solid var(--line);color:var(--muted);margin:1.8em 0;padding-left:1em}.prose pre{border:1px solid var(--line);padding:16px;font-size:14px;overflow-x:auto}.prose code{font-size:.9em}.prose .blank-line{height:1.8em}figure{margin:32px 0}figure img{border-radius:2px;width:100%;height:auto;display:block}figcaption{color:var(--muted);margin-top:9px;font-size:13px;line-height:1.7}.zoom-image{cursor:zoom-in;display:block}.related-project{color:var(--muted);margin-top:48px;font-size:14px}.adjacent-entries{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:30px;margin-top:64px;padding-top:30px;display:grid}.adjacent-entries a{overflow-wrap:anywhere;font-size:15px;text-decoration:none;display:block}.adjacent-entries a span{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.adjacent-entries>div:last-child{text-align:right}.back-link{color:var(--muted);margin-top:40px;font-size:14px;display:inline-block}.pagination{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:64px;font-size:14px;display:flex}.project-detail-heading{flex-wrap:wrap;align-items:baseline;gap:22px;display:flex}.project-detail-heading h1{letter-spacing:-.035em;font-size:36px}.project-tagline{color:var(--muted);margin-top:14px;margin-bottom:40px}.project-links{flex-wrap:wrap;gap:12px 24px;margin:-15px 0 36px;padding:0;font-size:14px;list-style:none;display:flex}.small-section-title{margin-bottom:32px}.muted{color:var(--muted)}.not-found h1{margin-block:10px 20px;font-size:30px}.not-found>a{margin-top:25px;display:inline-block}.site-footer{color:var(--muted);gap:22px;margin-top:100px;padding-block:26px 40px;font-size:12px;display:flex}.site-footer a{text-decoration:none}.skip-link{z-index:20;background:var(--bg);padding:8px 16px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:10px}dialog{background:var(--bg);color:var(--text);border:0;width:max-content;max-width:min(96vw,1400px);max-height:95dvh;padding:16px}dialog::backdrop{background:#000000d9}dialog img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:78dvh;margin-inline:auto;display:block}.viewer-close{background:0 0;border:0;margin:0 0 12px auto;padding:4px 9px;font-size:14px;display:block}.viewer-caption{color:var(--muted);margin-top:10px;font-size:13px}@media (width<=700px){.site-shell{width:calc(100% - 48px);margin-left:24px}.site-header{margin-bottom:60px;padding-top:22px}.home-section{margin-top:64px}.page-title{margin-bottom:42px;font-size:30px}.journal-preview .entry-title{font-size:23px}.journal-preview{margin-bottom:48px}.site-footer{margin-top:72px}.adjacent-entries{gap:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}
