:root{--fg:#1a1a1a;--muted:#6b7280;--bg:#fff;--bg-alt:#f4f4f5;--accent:#b23b2e;--gold:#b6903f;--border:#e6e6e9;--maxw:42rem;--wide:1080px;--gutter:1.5rem}@media (prefers-color-scheme:dark){:root{--fg:#e8e8ea;--muted:#9aa0ab;--bg:#101012;--bg-alt:#1b1b1f;--accent:#e07a5f;--gold:#c9a24b;--border:#2a2a2e}}*{box-sizing:border-box}html{font-size:19px}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif;line-height:1.85}main{max-width:var(--maxw);margin:0 auto;padding:27px 1.25rem 54px}.site-header{max-width:var(--wide);padding:1.75rem var(--gutter) 1rem;border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.5rem;margin:0 auto;display:flex;position:relative}.site-title-group{flex-direction:column;gap:.5rem;display:flex}.site-title{color:var(--fg);letter-spacing:.02em;font-size:1.5rem;font-weight:700;line-height:1.2;text-decoration:none}.site-tagline{color:var(--muted);margin:0;font-size:.92rem;font-weight:400;line-height:1.3}.site-header nav{gap:1.2rem;display:flex}.site-header nav a{color:var(--muted);font-size:.9rem;line-height:1.2;text-decoration:none}.site-header nav a:hover{color:var(--accent)}.nav-toggle,.nav-toggle-label{display:none}.nav-wrap{position:relative}@media (width<=640px){.site-header{align-items:center}.nav-toggle-label{box-sizing:content-box;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:22px;height:16px;margin:-13px;padding:13px;display:flex}.nav-toggle-label span{background:var(--fg);border-radius:2px;width:100%;height:2px;transition:transform .2s,opacity .2s;display:block}.site-header nav{background:var(--bg);border:1px solid var(--border);min-width:140px;box-shadow:0 12px 28px -10px color-mix(in srgb, var(--fg) 30%, transparent);z-index:20;border-radius:10px;flex-direction:column;gap:0;padding:.35rem;display:none;position:absolute;top:calc(100% + .65rem);right:0}.site-header nav a{border-radius:6px;padding:.65rem .85rem}.site-header nav a:hover{background:var(--bg-alt)}.nav-toggle:checked~nav{display:flex}.nav-toggle:checked~.nav-toggle-label span:first-child{transform:translateY(6px)rotate(45deg)}.nav-toggle:checked~.nav-toggle-label span:nth-child(2){opacity:0}.nav-toggle:checked~.nav-toggle-label span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}}.cover-image{object-fit:cover;border-radius:12px;width:100%;max-height:420px;margin-bottom:.8rem}.post header time{color:var(--muted);font-size:.85rem}.post header h1{margin:.3rem 0 1.5rem;font-size:1.95rem;font-weight:700;line-height:1.4}.prose img{border-radius:8px;max-width:100%;height:auto;margin:.6rem 0}.prose p:has(>img){margin:0}.prose p:has(+p>img){margin-bottom:0}.prose p:has(>img)+p{margin-top:0}.prose figure{margin:.8rem 0}.prose figure img{margin:0}.prose figcaption{text-align:center;color:var(--muted);margin-top:.5rem;font-size:.85rem}.prose .bento-gallery{grid-template-columns:repeat(4,1fr);grid-auto-rows:9rem;gap:.6rem;margin:1.6rem 0;display:grid}.prose .bento-gallery img{object-fit:cover;border-radius:10px;width:100%;height:100%;margin:0}.prose .bento-gallery img:first-child{grid-area:span 2/span 2}.prose .bento-gallery img:nth-child(2){grid-area:span 1/span 2}.prose .bento-gallery img:nth-child(3),.prose .bento-gallery img:nth-child(4){grid-area:span 1/span 1}@media (width<=560px){.prose .bento-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:7rem}.prose .bento-gallery img:first-child{grid-area:span 2/span 2}.prose .bento-gallery img:nth-child(2){grid-area:span 1/span 2}}.prose blockquote{border-left:3px solid var(--accent);background:var(--bg-alt);color:var(--muted);border-radius:0 6px 6px 0;margin:1.4rem 0;padding:.6rem 1.2rem;font-style:italic}.prose a{color:var(--accent);text-decoration-color:color-mix(in srgb, var(--accent) 40%, transparent)}.prose strong{color:var(--accent)}.prose hr{text-align:center;border:none;height:1em;margin:2.5rem 0}.prose hr:before{content:"❖";color:var(--gold);letter-spacing:1rem;font-size:.9rem}.prose pre{border-radius:8px;padding:1rem;font-size:.9rem;overflow-x:auto}.back{margin-top:3rem}.back a{color:var(--muted);text-decoration:none}.back a:hover{color:var(--accent)}.site-footer{max-width:var(--wide);padding:2rem var(--gutter) 3rem;border-top:1px solid var(--border);color:var(--muted);margin:0 auto;font-size:.85rem}.site-footer .social a{color:var(--muted);margin-right:1rem;text-decoration:none}.site-footer .social a:hover{color:var(--accent)}.site-footer .social .rss-icon{vertical-align:middle;margin-right:0;display:inline-flex}.page-title{margin:0 0 .2rem;font-size:1.6rem}.archive-count{color:var(--muted);margin:0 0 1.5rem;font-size:.9rem}.archive-year h2{color:var(--muted);border-bottom:1px solid var(--border);margin:2rem 0 .6rem;padding-bottom:.4rem;font-size:1.15rem}.archive-year ul{margin:0;padding:0;list-style:none}.archive-year li{align-items:baseline;gap:1rem;padding:.35rem 0;display:flex}.archive-year time{color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.85rem}.archive-year a{color:var(--fg);text-decoration:none}.archive-year a:hover{color:var(--accent)}.post-nav{justify-content:space-between;gap:1rem;margin-top:3.5rem;display:flex}.post-nav a{color:var(--fg);max-width:46%;text-decoration:none}.post-nav a:hover{color:var(--accent)}.post-nav a span{color:var(--muted);margin-bottom:.15rem;font-size:.78rem;display:block}.post-nav .older{text-align:right;margin-left:auto}.notfound{text-align:center;padding:4rem 0}.notfound h1{margin:0 0 .5rem;font-size:4rem}.notfound a{color:var(--accent)}.post>header{margin:.5rem 0 2rem}.post header time{color:var(--muted);margin-top:.6rem;font-size:.88rem;display:block}.post header h1{letter-spacing:-.01em;margin:0;font-size:2.15rem;font-weight:800;line-height:1.3}.prose p{margin:1.3rem 0}.prose h2+p,.prose h3+p{margin-top:0}.site-header{border-bottom:none;padding-bottom:.5rem}.site-footer{border-top:none}.prose h2,.prose h3{color:var(--fg);margin:2.2rem 0 .4rem;font-weight:600}.prose h2{font-size:1.35rem}.prose h3{font-size:1.12rem}.prose strong{color:var(--fg);font-weight:700}.prose em{color:inherit;font-style:italic}.prose code{background:var(--bg-alt);color:var(--fg);border-radius:4px;padding:.1em .4em;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.86em}.prose pre{background:var(--bg-alt);border:1px solid var(--border);border-radius:6px}.prose pre code{color:var(--fg);background:0 0;border-radius:0;padding:0}.prose blockquote{border-left-color:var(--accent);background:var(--bg-alt);color:var(--fg);border-left-width:3px;font-style:normal}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin:.4rem 0}.prose ul li::marker{color:var(--muted)}.prose table{border-collapse:collapse;width:100%;margin:1.6rem 0;font-size:.95rem}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--border);padding:.65rem .9rem}.prose th{color:var(--fg);background:var(--bg-alt);font-weight:700}.prose tbody tr:nth-child(2n){background:color-mix(in srgb, var(--bg-alt) 50%, transparent)}.home{width:100vw;margin-left:-50vw;padding:1rem 0 4rem;position:relative;left:50%}.home-inner{max-width:var(--wide);padding:0 var(--gutter);margin:0 auto}.cf-grid{grid-template-columns:1fr 1fr;display:grid}.cf-cell{border-bottom:1px dashed color-mix(in srgb, var(--fg) 25%, transparent);color:inherit;padding:2rem 2rem 2.2rem .5rem;text-decoration:none;transition:background-color .25s,transform .25s,box-shadow .25s;position:relative}.cf-cell:nth-child(odd){border-right:1px dashed color-mix(in srgb, var(--fg) 25%, transparent)}.cf-cell:nth-child(2n){padding-left:2rem;padding-right:.5rem}.cf-cell:hover{background-color:var(--bg-alt);box-shadow:0 12px 28px -10px color-mix(in srgb, var(--fg) 30%, transparent);z-index:1;transform:translateY(-4px)}.cf-cell time{color:var(--muted);font-size:.8rem}.cf-cell h3{margin:.5rem 0 .6rem;font-size:1.3rem;font-weight:700;line-height:1.4}.cf-cell:hover h3{color:var(--accent)}.cf-cell p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.92rem;line-height:1.75;display:-webkit-box;overflow:hidden}@media (width<=720px){.cf-grid{grid-template-columns:1fr}.cf-cell:nth-child(odd){border-right:none}.cf-cell:nth-child(2n){padding-left:.5rem}}
